OSDN Git Service

2004-05-31 Paolo Bonzini <bonzini@gnu.org>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2004-05-31  Paolo Bonzini  <bonzini@gnu.org>
2
3         Revert this patch:
4         2004-05-27  Paolo Bonzini  <bonzini@gnu.org>
5
6         * combine.c (gen_binary): Remove.
7         (known_cond, simplify_shift_const
8         find_split_point, combine_simplify_rtx,
9         simplify_if_then_else, simplify_set,
10         simplify_logical, expand_field_assignment,
11         extract_left_shift, force_to_mode,
12         if_then_else_cond, apply_distributive_law,
13         simplify_and_const_int, simplify_shift_const,
14         gen_lowpart_for_combine, simplify_comparison,
15         reversed_comparison): Replace with
16         simplify_gen_binary, simplify_gen_relational or
17         distribute_and_simplify_rtx.
18         (distribute_and_simplify_rtx): New function.
19
20 2004-05-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
21
22         * pa.c (emit_move_sequence): Fix loading of non 14-bit CONST operands
23         when generating PIC code.
24
25 2004-05-30  Andrew Pinski  <pinskia@physics.uc.edu>
26
27         * c-decl.c (c_expand_body_1): Remove and fold back into ...
28         (c_expand_body): here.
29         (c_expand_decl): Move to ...
30         * c-common.c (c_expand_decl): Here and remove check for nested
31         functions.
32         * c-common.h (c_expand_decl): Add prototype.
33         * c-tree.h (c_expand_decl): Remove.
34
35 2004-05-30  Roger Sayle  <roger@eyesopen.com>
36
37         * fold-const.c (combine_comparisons, optimize_bit_field_compare,
38         range_binop, fold_truthop, fold_binary_op_with_conditional_arg,
39         fold_mathfn_compare, fold_inf_compare, fold,
40         fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
41         Use constant_boolean_node where appropriate.  Don't bother using
42         fold_convert on the second argument to omit_one_operand.
43
44 2004-05-30  Roger Sayle  <roger@eyesopen.com>
45
46         * doc/c-tree.texi (Expressions): Document FLOOR_DIV_EXPR,
47         CEIL_DIV_EXPR, ROUND_DIV_EXPR, FLOOR_MOD_EXPR, CEIL_MOD_EXPR,
48         ROUND_MOD_EXPR, EXACT_DIV_EXPR.  Improve documentation of
49         TRUNC_DIV_EXPR, TRUNC_MOD_EXPR and comparison operations.
50         Add missing (but documented) tree nodes to the index.
51
52 2004-05-30  Steven Bosscher  <stevenb@suse.de>
53
54         PR tree-optimization/14819
55         * builtins.c (fold_builtin_strchr): New.
56         (fold_builtin_1): Handle BUILT_IN_STRCHR and BUILT_IN_STRRCHR
57         with fold_builtin_strchr().
58
59 2004-05-30  Kazu Hirata  <kazu@cs.umass.edu>
60
61         * bb-reorder.c, builtins.c, c-common.c, c-gimplify.c,
62         c-incpath.c, cgraphunit.c, ddg.c, defaults.h, dwarf2out.c,
63         expmed.c, flags.h, gcc.c, gensupport.c, gimplify.c, global.c,
64         passes.c, reg-stack.c, target.h, toplev.c, tree-alias-ander.c,
65         tree-alias-common.c, tree-cfg.c, tree-complex.c, tree-dfa.c,
66         tree-eh.c, tree-mudflap.c, tree-mudflap.h, tree-outof-ssa.c,
67         tree-phinodes.c, tree-pretty-print.c, tree-ssa-alias.c,
68         tree-ssa-ccp.c, tree-ssa-live.c, tree-ssa-live.h,
69         tree-ssa-pre.c, tree.h, value-prof.h, varasm.c: Fix comment
70         formatting.
71
72 2004-05-30  Steven Bosscher  <stevenb@suse.de>
73
74         * gimplify.c (sort_case_labels): New.  Split out from...
75         (gimplify_switch_expr): ...here.  Use it.
76         * tree-eh.c (lower_try_finally_switch): Sort the labels of
77         the SWITCH_EXPR created here before leaving the function.
78         * tree.c (sort_case_labels): Add prototype.
79
80 2004-05-30  Andrew Pinski  <pinskia@physics.uc.edu>
81
82         * fold-const.c (fold) [case TRUTH_NOT_EXPR]: Make sure the type is
83         of BOOLEAN_TYPE.
84
85 2004-05-30  Kazu Hirata  <kazu@cs.umass.edu>
86
87         * c-common.c, calls.c, cfgcleanup.c, cgraph.c, cgraphunit.c,
88         ddg.c, ddg.h, df.c, df.h, except.c, expr.c, flags.h,
89         fold-const.c, gcc.c, gimplify.c, haifa-sched.c,
90         modulo-sched.c, tree-inline.c, tree-into-ssa.c, tree-nested.c,
91         tree-nrv.c, tree-ssa-ccp.c, tree-ssa-dom.c, tree-ssa-live.c,
92         tree-ssa-loop.c, tree-ssa-pre.c, tree-tailcall.c, tree.h: Fix
93         comment typos.  Follow spelling conventions.
94
95 2004-05-29  Geoffrey Keating  <geoffk@apple.com>
96
97         * gengtype-yacc.y: Add NESTED_PTR token.
98         (option): Record `nested_ptr' option.
99         * gengtype-lex.l: Handle `nested_ptr' keyword.
100         * gengtype.c (walk_type): Process `nested_ptr' option.
101         * gengtype.h (struct nested_ptr_data): New.
102         * doc/gty.texi (GTY Options): Document `nested_ptr' option.
103         * stringpool.c (struct string_pool_data): Make 'entries' point to
104         ht_identifier instead of tree.
105         (gt_pch_save_stringpool): Don't adjust pointers.
106         (gt_pch_restore_stringpool): Call ht_load.
107
108 2004-05-29  Jason Merrill  <jason@redhat.com>
109
110         * gimplify.c (gimplify_expr): Don't build a statement list
111         if no gimplification was necessary.
112
113 2004-05-29  Joseph S. Myers  <jsm@polyomino.org.uk>
114
115         * pretty-print.c (pp_base_format_text): Support %< instead of %`
116         and %> as well as %'.
117         * c-format.c: Use %< and %>.
118         (gcc_diag_char_table, gcc_cdiag_char_table,
119         gcc_cxxdiag_char_table): Update.
120
121 2004-05-29  Joseph S. Myers  <jsm@polyomino.org.uk>
122
123         * c-typeck.c (common_type): Correct comment.
124
125 2004-05-29  Peter Barada  <peter@the-baradas.com>
126
127         * config/m68k/m68k.c (CONST_METHOD): Add MVZ, MVS.
128         * config/m68k/m68k.c (const_method): Likewise.
129         * config/m68k/m68k.c (const_int_cost): Likewise.
130         * config/m68k/m68k.c (const_int_cost): Likewise.
131         * config/m68k/m68k.c (output_move_const_into_data_reg): Likewise.
132
133 2004-05-29  Peter Barada  <peter@the-baradas.com>
134
135         * config/m68k/m68k.h (EXTRA_CONSTRAINT): add 'U' for register offset
136         addressing.
137         * config/m68k/m68k.md: Add 'U,U' alternative to ColdFire variants of
138         movsi,movhi,movqi insn patterns.
139
140 2005-05-28  Andrew Pinski  <pinskia@physics.uc.edu>
141
142         * c-semantics.c (emit_local_var): Remove code for DECL_INITIAL.
143
144         PR target/15720
145         * config/darwin.c (machopic_indirect_call_target): Copy
146         the SYMBOL_REF_DECL from the original RTX for the new
147         stub RTX.
148
149 2004-05-28  DJ Delorie  <dj@redhat.com>
150
151         * stor-layout.c (place_field): Revert erroneous commit.
152
153 2004-05-28  Ziemowit Laski  <zlaski@apple.com>
154
155         * config/rs6000/altivec.h (vec_ctf, vec_vcfsx, vec_vcfux, vec_cts,
156         vec_ctu, vec_dss, vec_dst, vec_dstst, vec_dststt, vec_dstt, vec_ld,
157         vec_ldl, vec_lvsl, vec_lvsr, vec_sld, vec_splat, vec_vspltw,
158         vec_vsplth, vec_vspltb, vec_splat_s8, vec_splat_s16, vec_splat_s32,
159         vec_splat_u8, vec_splat_u16, vec_splat_u32, vec_st, vec_stl,
160         vec_ste): Remove type checks for integral parameters and literals
161         from '..._args_eq' macros.
162
163 2004-05-28  Aldy Hernandez  <aldyh@redhat.com>
164
165         * c-common.c (fname_as_string): Fix xcalloc to xmalloc.
166
167 2004-05-28  Aldy Hernandez  <aldyh@redhat.com>
168
169         * testsuite/g++.dg/charset/function.cc: New.
170
171         * testsuite/gcc.dg/charset/function.c: New.
172
173         * c-decl.c (c_make_fname_decl): Free return value from
174         fname_as_string.
175
176         * cp/decl.c (cp_make_fname_decl): Free return value from
177         fname_as_string.
178
179         * c-common.c (fname_as_string): Translate if necessary.
180
181 2004-05-28  Geoffrey Keating  <geoffk@apple.com>
182
183         * stringpool.c: Add comments to PCH saving/restoring routines.
184
185 2004-05-28  Andrew Pinski  <pinskia@physics.uc.edu>
186
187         * c-common.c (c_estimate_num_insns_1): Kill.
188         (c_estimate_num_insns): Kill.
189         * c-common.h (c_estimate_num_insns): Kill.
190
191         * gthr-posix.h: Check for _POSIX_PRIORITY_SCHEDULING
192         when checking for _POSIX_THREAD_PRIORITY_SCHEDULING.
193         Remove comment about not checking for
194         _POSIX_PRIORITY_SCHEDULING.
195         * gthr-posix.c: Likewise.
196
197 2004-05-28  Paolo Bonzini  <bonzini@gnu.org>
198             Roger Sayle  <roger@eyesopen.com>
199
200         PR rtl-optimization/15649
201         Add LTGT_EXPR and improve pretty-printing of unordered
202         comparisons.
203         * c-common.c (c_common_truthvalue_conversion):
204         Handle LTGT_EXPR.
205         * c-typeck.c (build_binary_op): Likewise.
206         * dojump.c (do_jump): Likewise.
207         * expr.c (expand_expr_real_1, do_store_flag): Likewise.
208         * predict.c (tree_predict_by_opcode): Likewise.
209         * real.c (real_compare): Likewise.
210         * tree-cfg.c (verify_expr): Likewise.
211         * tree-inline.c (estimate_num_insns_1): Likewise.
212         * tree-pretty-print.c (dump_generic_node): Likewise.
213         Handle ORDERED_EXPR, UNORDERED_EXPR.
214         (op_symbol): Print unordered comparisons differently
215         than ordered ones.
216         * tree.def (LTGT_EXPR): New '<' tree code.
217         * doc/c-tree.texi (Expressions): Document floating-point
218         comparison nodes.
219
220         Fold comparisons between floating point values.
221         * fold-const.c (enum comparison_code): New, from
222         #define'd constants.  Define compcodes for unordered
223         comparisons and for invalid transformations.
224         (invert_tree_comparison): Add "honor_nans" parameter.
225         (fold_truthop): Revamp to work on floating-point types too.
226         (comparison_to_compcode): Support unordered comparisons.
227         Use new enum comparison_code.
228         (compcode_to_comparison): Likewise.
229         (combine_compcodes): New function.
230         (invert_truthvalue): Let invert_tree_comparison decide
231         whether it is valid to fold the comparison.  Fold ORDERED
232         and UNORDERED even if flag_unsafe_math_optimizations is off,
233         and the remaining even if flag_unsafe_math_optimizations
234         is off but we are under -fno-trapping-math.
235         (fold_relational_const): Integer modes do not honor NaNs.
236         
237 2004-05-28  Paul Brook  <paul@codesourcery.com>
238
239         * config/arm/arm.c (arm_output_epilogue): Remove redundant code.
240
241 2004-05-28  Paul Brook  <paul@codesourcery.com>
242
243         * config/arm/arm.c (thumb_force_lr_save): New function.
244         (arm_get_frame_offsets, thumb_unexpanded_epilogue,
245         thumb_output_function_prologue): Use it.
246         (thumb_expand_prologue): Set lr_save_eliminated.
247
248 2004-05-28  Richard Sandiford  <rsandifo@redhat.com>
249
250         * config/mips/mips.md (extendsidi2): Tie the source and destination
251         of the register alternative.  Split it into nothing.
252
253 2004-05-28  Richard Sandiford  <rsandifo@redhat.com>
254
255         * rtl.h (skip_consecutive_labels): Declare.
256         * emit-rtl.c (skip_consecutive_labels): New function.
257         * reorg.c (relax_delay_slots, dbr_schedule): Use it.
258         * jump.c (follow_jumps): Say what null return values mean.
259
260 2004-05-28  Kaz Kojima  <kkojima@gcc.gnu.org>
261
262         PR target/13250
263         * config/sh/sh.md (rotlsi3): Use emit_move_insn.
264
265 2004-05-27  Kaz Kojima  <kkojima@gcc.gnu.org>
266
267         * config/sh/t-linux (SHLIB_MAPFILES): Use sh specific
268         libgcc-std.ver.
269         * config/sh/libgcc-std.ver: New file.
270
271 2004-05-27  Bryce McKinlay  <mckinlay@redhat.com>
272
273         * except.c: Revert change of 2004-05-26.
274         * config/i386/i386.md: Revert change of 2004-05-27.
275
276 2004-05-27  Bryce McKinlay  <mckinlay@redhat.com>
277
278         * configure.ac: Remove --enable-tree-browser option.
279         Define TREEBROWSER when ac_tree_checking is defined.
280         * configure: Rebuilt.
281
282 2004-05-27  Olivier Hainque  <hainque@act-europe.fr>
283
284         * expr.c (store_constructor): Restore sanity check on
285         the size of the type before clearing.
286
287 2004-05-27  Jan Hubicka  <jh@suse.cz>
288
289         * cfgbuild.c (control_flow_insn_p):  Notice noreturn call
290
291 2004-05-27  Paolo Bonzini  <bonzini@gnu.org>
292
293         * combine.c (gen_binary): Remove.
294         (known_cond, simplify_shift_const
295         find_split_point, combine_simplify_rtx,
296         simplify_if_then_else, simplify_set,
297         simplify_logical, expand_field_assignment,
298         extract_left_shift, force_to_mode,
299         if_then_else_cond, apply_distributive_law,
300         simplify_and_const_int, simplify_shift_const,
301         gen_lowpart_for_combine, simplify_comparison,
302         reversed_comparison): Replace with
303         simplify_gen_binary, simplify_gen_relational or
304         distribute_and_simplify_rtx.
305         (distribute_and_simplify_rtx): New function.
306         * simplify-rtx.c (simplify_binary_operation):
307         Use nonzero_bits to simplify ANDs where we are
308         turning off bits already known to be off in OP0.
309
310 2004-05-27  Alan Modra  <amodra@bigpond.net.au>
311
312         PR target/14478
313         * config/rs6000/rs6000.c (reg_or_neg_short_operand): Don't allow zero.
314
315 2004-05-27  Josef Zlomek  <zlomekj@suse.cz>
316
317         PR middle-end/14084
318         * emit-rtl.c (gen_rtx_REG_offset): Adjust the offset according
319         to size of decl.
320
321 2004-05-26  Aldy Hernandez  <aldyh@redhat.com>
322
323         PR/14924
324         * config/rs6000/rs6000.c (spe_expand_stv_builtin): New.
325
326 2004-05-26  Roger Sayle  <roger@eyesopen.com>
327
328         * tree.h: Fix comment typo.
329
330 2004-05-27  Steven Bosscher  <stevenb@suse.de>
331
332         * gimplify.c (compare_case_labels): New function.
333         (gimplify_switch_expr): Sort case labels, and make sure the
334         last label in the label vector is the default case.
335         * tree-cfg.c (group_case_labels): New function.
336         (build_tree_cfg): Cleanup redundant labels and group case labels
337         before creating edges.
338         (cleanup_dead_labels): Handle GOTO_EXPRs.
339         (find_case_label_for_value): Use a binary search to find the
340         case label for the given value.
341         * tree-gimple.c: Mention that labels are sorted, and that the
342         last label must be the default.
343
344 2004-05-27  Jan Hubicka  <jh@suse.cz>
345
346         * cfgcleanup.c (try_optimize_cfg): Do not merge across jumptables.
347
348 2004-05-27  Jan Hubicka  <jh@suse.cz>
349
350         * i386.md (UNSPECV_EH_RETURN): Kill.
351         (eh_return): Use jump_insn.
352         (eh_return_si, eh_return_di): Change pattern to jump instruction.
353
354 2004-05-26  Jan Hubicka  <jh@suse.cz>
355
356         * cfgcleanup.c (try_forward_edges):  Do not check loop structure when
357         not loop optimizing.
358
359 2004-05-26  Jan Hubicka  <jh@suse.cz>
360
361         * except.c (can_throw_internal):  Notice RESX instructions.
362
363 2004-05-26  Eric Botcazou  <ebotcazou@act-europe.fr>
364
365         * varasm.c (output_constant) <INTEGER_TYPE>: Pass the minimum
366         of the two sizes to assemble_integer.
367
368 2004-05-25  Paul Brook  <paul@codesourcery.com>
369
370         * config/arm/arm.c (thumb_exit, thumb_unexpanded_epilogue): Remove
371         pointless #ifdef.
372
373 2004-04-25  Paolo Bonzini  <bonzini@gnu.org>
374
375         * Makefile.in (top_builddir): Define to .
376
377 2004-05-25  Alexandre Oliva  <aoliva@redhat.com>
378
379         * configure.ac (gcc_cv_ld): Prefer in-tree ld over whatever the
380         top-level detects, except when in-tree ld is being cross-built.
381         (gcc_cv_as): Likewise for as.  Use AS_FOR_TARGET otherwise, and
382         then AS only if target is host.
383         * configure: Rebuilt.
384
385 2004-05-25  Vladimir Makarov  <vmakarov@redhat.com>
386
387         * global.c (global_alloc): Call make_accurate_live_analysis.
388         (record_one_conflict): Remove dead code.
389         (mark_reg_clobber): Remove ATTRIBUTE_UNUSED for parameter data.
390         (bb_info): New structure.
391         (BB_INFO, BB_INFO_BY_INDEX): New macros.
392         (allocate_bb_info, free_bb_info, mark_reg_change,
393         calculate_local_reg_bb_info, set_up_bb_rts_numbers, rpost_cmp,
394         modify_bb_reg_pav, calculate_reg_pav,
395         make_accurate_live_analysis): New functions.
396         
397 2004-05-25  Devang Patel  <dpatel@apple.com>
398
399         * alias.c (init_alias_analysis): Use ggc_calloc instead of
400         xrealloc.
401         (end_alias_analysis): Use ggc_free instead fo free.
402         
403 2004-05-25  Andrew Pinski  <pinskia@physics.uc.edu>
404
405         PR target/15546
406         * config/ia64/ia64.h (ASM_OUTPUT_FDESC): Mark the DECL
407         as needed to be outputted.
408
409 2004-05-25  Jan Hubicka  <jh@suse.cz>
410
411         * builtins.def (__builtin_expect):  Mark the function as const&nothrow.
412
413 2004-05-25  Ayal Zaks  <zaks@il.ibm.com>
414         Mostafa Hagog  <mustafa@il.ibm.com>
415
416         * Makefile.in (modulo-sched.o, ddg.o): New.
417         * ddg.h, ddg.c, modulo-sched.c: New files.
418         * cfglayout.c (duplicate_insn_chain): Remove "static" and push
419         internals to "dupicate_insn".
420         (duplicate_insn): New function.
421         * cfglayout.h (duplicate_insn_chain, duplicate_insn): New
422         declarations.
423         * common.opt (fmodulo-sched): New flag.
424         * df.c (df_bb_regno_last_use_find, df_bb_regno_first_def_find):
425         Remove static and forward declaration.
426         (df_find_def, df_reg_used, df_bb_regno_last_def_find): New
427         functions.
428         * df.h (df_bb_regno_last_use_find, df_bb_regno_first_def_find,
429         df_bb_regno_last_def_find, df_find_def, df_reg_used): New
430         declarations.
431         * flags.h (flag_modulo_sched): New flag.
432         * opts.c (common_handle_option): Handle modulo-sched flag.
433         * params.def (max-sms-loop-number, sms-max-ii-factor,
434         sms-dfa-history, sms-loop-average-count-threshold): New
435         parameters.
436         * params.h (MAX_SMS_LOOP_NUMBER, SMS_MAX_II_FACTOR,
437         SMS_DFA_HISTORY, SMS_LOOP_AVERAGE_COUNT_THRESHOLD): New
438         parameters.
439         * passes.c ("sms", "sms-vcg"): New dumps.
440         (rest_of_handle_sched): Call sms_schedule.
441         * rtl.h (sms_schedule): New declaration.
442         * timevar.def (TV_SMS): New.
443         * toplev.c (flag_modulo_sched): Initialize.
444         (f_options): Handle -fmodulo-sched option.
445         * docs/invoke.texi: Document -fmodulo-sched & -dm options.
446         * docs/passes.texi: Document new SMS pass.
447
448 2004-05-25  Paolo Bonzini  <bonzini@gnu.org>
449
450         * Makefile.in (OBJS): Add rtlhooks.o.
451         (rtlanal.o): Depend on function.h.
452         (cse.o): Depend on rtlhooks-def.h.
453         (combine.o): Depend on rtlhooks-def.h.
454         (rtlhooks.o): New rule.
455         * combine.c: Include rtlhooks-def.h.
456         (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
457         num_sign_bit_copies, cached_num_sign_bit_copies,
458         num_sign_bit_copies1): Move most of the code to rtlanal.c.
459         (reg_nonzero_bits_for_combine,
460         reg_num_sign_bit_copies_for_combine): New functions holding
461         the remnants of the above.
462         (combine_rtl_hooks): New.
463         (combine_instructions): Set rtl_hooks instead of gen_lowpart.
464         * cse.c: Include rtlhooks-def.h.
465         (cse_rtl_hooks): New.
466         (cse_main): Set rtl_hooks instead of gen_lowpart.
467         * emit-rtl.c (gen_lowpart): Remove.
468         (gen_lowpart_general): Move to rtlhooks.c.
469         * rtl.h (nonzero_bits, num_sign_bit_copies,
470         struct rtl_hooks, rtl_hooks, general_rtl_hooks): New.
471         (gen_lowpart_general): Remove.
472         (gen_lowpart): Temporarily redefine as a macro.
473         * rtlanal.c: Include function.h.
474         (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
475         num_sign_bit_copies, cached_num_sign_bit_copies,
476         num_sign_bit_copies1): New, from combine.c.
477         * rtlhooks.c: New file. 
478
479 2004-05-25  Svein E. Seldal  <Svein.Seldal@solidas.com>
480
481         * config/avr/avr.h (LONG_LONG_TYPE_SIZE): Changed long long type
482         to support 32-bit -mint8 mode.
483
484         * doc/invoke.texi (-mint8): Added documentation for the -mint8
485         option in the AVR architecture. 
486
487 2004-05-24  Mike Stump  <mrs@apple.com>
488
489         * doc/install.texi: Document that dejagnu 1.4.4 is required.
490
491 2004-05-24  Joseph S. Myers  <jsm@polyomino.org.uk>
492
493         * intl.h (open_quote, close_quote): New.
494         * intl.c (open_quote, close_quote): New.
495         (gcc_init_libintl): Set them.
496         * pretty-print.c: Include "intl.h".
497         (pp_base_format_text): Support 'q' format flag and %` and %'
498         formats.  Use ' instead of ` in comments.
499         * c-format.c (gcc_diag_flag_specs, gcc_cxxdiag_flag_specs,
500         gcc_diag_char_table, gcc_cdiag_char_table, gcc_cxxdiag_char_table,
501         foramt_types_orig): Describe these new formats.
502         (decode_format_attr, check_function_format,
503         check_format_info_main): Use these new formats.
504         (status_warning): Use ATTRIBUTE_GCC_DIAG.
505         * toplev.c (ATTRIBUTE_GCC_DIAG): Increase required GCC version to
506         check these formats to 3.5.
507
508 2004-05-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
509
510         * Makefile.in (CPPLIBS): Renamed to CPPLIB.
511         (BACKEND): Reflect this.
512         (LIBDEPS): Move CPPLIB before LIBIBERTY.
513         (LIBS): Likewise.
514
515 2004-05-24  Ulrich Weigand  <uweigand@de.ibm.com>
516
517         PR tree-optimization/14197
518         * builtins.c: Include "tree-gimple.h"
519         (readonly_data_expr): Use get_base_address.  Make sure to call 
520         decl_readonly_section only on trees it can handle.
521         * tree-gimple.c (get_base_address): Accept STRING_CST and
522         CONSTRUCTOR expressions.
523         * Makefile.in: Update dependencies.
524
525 2004-05-23  Paolo Bonzini  <bonzini@gnu.org>
526
527         Move libcpp to the toplevel.
528         * Makefile.in: Remove references to libcpp files,
529         use CPPLIBS instead of libcpp.a.  Define SYMTAB_H
530         and change hashtable.h to that.
531         * aclocal.m4 (gcc_AC_HEADER_STDBOOL,
532         gcc_AC_HEADER_STRING, gcc_AC_C__BOOL): Remove.
533         * configure.ac (gcc_AC_C__BOOL, HAVE_UCHAR): Remove tests.
534         * configure: Regenerate.
535         * config.in: Regenerate.
536         * c-ppoutput.c: Include ../libcpp/internal.h instead of cpphash.h.
537         * cppcharset.c: Removed.
538         * cpperror.c: Removed.
539         * cppexp.c: Removed.
540         * cppfiles.c: Removed.
541         * cpphash.c: Removed.
542         * cpphash.h: Removed.
543         * cppinit.c: Removed.
544         * cpplex.c: Removed.
545         * cpplib.c: Removed.
546         * cpplib.h: Removed.
547         * cppmacro.c: Removed.
548         * cpppch.c: Removed.
549         * cpptrad.c: Removed.
550         * cppucnid.h: Removed.
551         * cppucnid.pl: Removed.
552         * cppucnid.tab: Removed.
553         * hashtable.c: Removed.
554         * hashtable.h: Removed.
555         * line-map.c: Removed.
556         * line-map.h: Removed.
557         * mkdeps.c: Removed.
558         * mkdeps.h: Removed.
559         * stringpool.h: Include symtab.h instead of hashtable.h.
560         * tree.h: Include symtab.h instead of hashtable.h.
561         * system.h (O_NONBLOCK, O_NOCTTY): Do not define.
562
563 2004-05-23 Paolo Bonzini <bonzini@gnu.org>
564
565         * gcc.c (struct prefix_list): Add forward declaration.
566         (do_spec_path): New function, extracted from...
567         (do_spec_1) <'D'>: ... here.  Drop support for
568         SPACE_AFTER_L_OPTION.
569         (do_spec_1) <'I'>: Use do_spec_path.
570         (process_command): Do not store the 'include' suffix
571         in include_prefixes.
572         * system.h: Poison SPACE_AFTER_L_OPTION.
573
574 2002-05-23  Roger Sayle  <roger@eyesopen.com>
575
576         * fold-const.c (non_lvalue): Explicitly list the tree codes that
577         need to be wrapped by NON_LVALUE_EXPR, instead of those that don't.
578
579 2004-05-23  Joseph S. Myers  <jsm@polyomino.org.uk>
580
581         * doc/gcc.texi, doc/gccint.texi, doc/include/gcc-common.texi:
582         Update based on printed manual.  Enable setting of offsets for
583         FSFPRINT and move it to gcc-common.texi.
584         * doc/gcc.texi: Update FSF printing details.
585         * doc/gccint.texi: Remove FSF printing details.
586
587 2004-05-23  Andrew Pinski  <pinskia@physics.uc.edu>
588
589         * config/rs6000/t-rs6000: Remove the disabling -Werror.
590
591 2004-05-22  Roger Sayle  <roger@eyesopen.com>
592
593         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
594         expand_builtin_strrchr, expand_builtin_strpbrk,
595         expand_builtin_mempcpy, expand_builtin_memcmp,
596         expand_builtin_strcmp, expand_builtin_strncmp,
597         expand_builtin_strcat, std_expand_builtin_va_start,
598         std_expand_builtin_va_arg, expand_builtin_va_copy,
599         expand_builtin_signbit, fold_builtin_cabs,
600         fold_builtin_logarithm, fold_builtin_mempcpy,
601         fold_builtin_signbit, fold_builtin_isascii,
602         fold_builtin_toascii, fold_builtin_isdigit,
603         fold_builtin_1, build_function_call_expr,
604         simplify_builtin_strchr, simplify_builtin_strrchr,
605         simplify_builtin_strpbrk, simplify_builtin_strncpy,
606         simplify_builtin_memcmp, simplify_builtin_strcmp,
607         simplify_builtin_strncmp, simplify_builtin_strncat,
608         simplify_builtin_strspn, simplify_builtin_strcspn,
609         simplify_builtin_fputs, simplify_builtin_sprintf): Replace calls
610         to build with calls to build2, build3 or omit_one_operand.
611
612 2004-05-22  Richard Sandiford  <rsandifo@redhat.com>
613
614         * config/mips/mips.c (mips_file_start): Emit a .gcc_compiled_longXX
615         section when generating EABI code.
616
617 2004-05-22  Andrew Pinski  <pinskia@physics.uc.edu>
618
619         PR 15546
620         * config/i386/i386.c (output_pic_addr_const <case SYMBOL_REF>):
621         Call mark_decl_referenced on the SYMBOL_REF_DECL.
622
623 2004-05-22  Andrew Pinski  <pinskia@physics.uc.edu>
624
625         * c-common.c (c_common_truthvalue_conversion): Handle
626         UNEQ_EXPR, UNLE_EXPR, UNGE_EXPR, UNLT_EXPR, UNGT_EXPR,
627         ORDERED_EXPR, and UNORDERED_EXPR as comparison operators,
628         i.e. set the type to truthvalue_type_node and return.
629
630 2004-05-22  Zack Weinberg  <zack@codesourcery.com>
631
632        * tree.h (struct tree_decl): Add possibly_inlined bit.
633         (DECL_POSSIBLY_INLINED): New accessor macro.
634         * cgraph.h: Remove declaration of cgraph_inline_hash.
635         * cgraph.c: Remove definition of cgraph_inline_hash.
636         (hash_node): Revert to hashing DECL_UID.
637         (eq_node): Take two pointers to cgraph_node structures.
638         Compare DECL_UIDs.
639         (cgraph_remove_node): Pass the node directly to htab_find_slot.
640         (cgraph_varpool_hash_node): Rename hash_varpool_node;
641         hash on DECL_UID.
642         (eq_cgraph_varpool_node): Rename eq_varpool_node; take two
643         pointers to cgraph_varpool_node structures; compare DECL_UIDs.
644         (cgraph_node): Allocate a temporary node on the stack, fill in
645         its DECL field, and pass that to htab_find_slot.
646         (cgraph_varpool_node): Likewise.
647         (cgraph_function_possibly_inlined_p): If global info is ready,
648         return the DECL_POSSIBLY_INLINED bit.
649         * cgraphunit.c (cgraph_mark_inline_edge): Set DECL_POSSIBLY_INLINED
650         instead of mucking with cgraph_inline_hash.
651
652 2004-05-22  Joseph S. Myers  <jsm@polyomino.org.uk>
653
654         * doc/contrib.texi: Add g77 contributors.
655
656 2004-05-22  Richard Sandiford  <rsandifo@redhat.com>
657
658         * calls.c (initialize_argument_information): Forbid sibcalls if a
659         callee-copied argument is stored in the current function's frame.
660
661 2004-05-22  Eric Christopher  <echristo@redhat.com>
662
663         * fix-header.c (read_scan_file): Update for add_path change.
664
665 2004-05-22  Ben Elliston  <bje@au.ibm.com>
666
667         * c.opt (Wmissing-include-dirs): New.
668         * c-opts.c (c_common_handle_option): Pass true for user_supplied_p
669         to add_path () for -I, but false for OPT_idirafter, OPT_iquote and
670         OPT_isystem. Handle case OPT_Wmissing_include_dirs.
671         * c-incpath.h (add_path): Add fourth (bool) argument.
672         * c-incpath.c (add_env_var_paths): Pass false to add_path ().
673         (add_standard_paths): Likewise.
674         (remove_duplicates) [REASON_NOENT]: Warn if -Wmissing-include-dirs
675         is used and the directory was user-supplied via -I.
676         (add_path): Set p->user_supplied_p.  Remove duplicated code by
677         using add_cpp_dir_path ().
678         * cpplib.h (struct cpp_options): Add warn_missing_include_dirs.
679         (struct cpp_dir): Add user_supplied_p.
680         * doc/invoke.texi (Warning Options): Document new option.
681
682 2004-05-21  Ulrich Weigand  <uweigand@de.ibm.com>
683
684         * fold-const.c (fold_read_from_constant_string): Convert result to
685         requested type.
686
687 2004-05-21  Richard Henderson  <rth@redhat.com>
688
689         * gimplify.c (mostly_copy_tree_r): Don't attempt to copy decls.
690         (copy_if_shared_r): Don't copy decls, types, constants, BINDs.
691         Don't mark VA_ARG_EXPRs volatile here.
692         (gimplify_modify_expr): Unshare TYPE_SIZE_UNIT.
693
694 2004-05-21  Richard Henderson  <rth@redhat.com>
695
696         * Makefile.in (tree-dump.o): Depend on tree-iterator.h.
697         * tree-dump.c (dequeue_and_dump): Dump STATEMENT_LISTs.
698
699 2004-05-21  Roger Sayle  <roger@eyesopen.com>
700
701         * fold-const.c (fold, fold_relational_hi_lo,
702         nondestructive_fold_binary_to_constant,
703         fold_read_from_constant_string): Use fold_convert instead of convert.
704         * builtins.c (simplify_builtin, simplify_builtin_strstr,
705         simplify_builtin_strchr, simplify_builtin_strrchr,
706         simplify_builtin_strpbrk): Use fold_convert instead of convert.
707
708 2004-05-21  Diego Novillo  <dnovillo@redhat.com>
709
710         * tree-flow-inline.h (num_immediate_uses): Don't abort if DF
711         is NULL.
712
713 2004-05-21  Jakub Jelinek  <jakub@redhat.com>
714
715         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): If SPARC_BI_ARCH,
716         override sparc.h definition.
717
718 2004-05-20  Roger Sayle  <roger@eyesopen.com>
719
720         * tree.c (array_type_nelts, save_expr, substitute_in_expr,
721         get_unwidened, get_narrower): Replace build with build2.
722         * fold-const.c (negate_expr, associate_trees, size_binop,
723         fold_convert, eval_subst, omit_one_operand, invert_truthvalue,
724         pedantic_omit_one_operand, distribute_bit_expr,
725         make_bit_field_ref, optimize_bit_field_compare,
726         decode_field_reference, range_binop, make_range,
727         build_range_check, fold_range_test, fold_truthop,
728         optimize_minmax_comparison, extract_muldiv_1,
729         fold_binary_op_with_conditional_arg, fold_mathfn_compare,
730         fold_inf_compare, fold_single_bit_test, fold,
731         fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
732         Likewise replace build with either build2 or build3.
733
734 2004-05-20  Ian Lance Taylor  <ian@wasabisystems.com>
735
736         * system.h: Poison NO_RECURSIVE_FUNCTION_CSE.
737         * calls.c (prepare_call_address): Don't test
738         NO_RECURSIVE_FUNCTION_CSE.
739         * config/arc/arc.h (NO_RECURSIVE_FUNCTION_CSE): Don't define.
740         * config/arm/arm.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
741         * config/avr/avr.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
742         * config/frv/frv.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
743         * config/i386/i386.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
744         * config/ip2k/ip2k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
745         * config/iq2000/iq2000.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
746         * config/m32r/m32r.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
747         * config/m68k/m68k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
748         * config/mcore/mcore.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
749         * config/mips/mips.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
750         * config/stormy16/stormy16.h (NO_RECURSIVE_FUNCTION_CSE):
751         Likewise.
752         * config/xtensa/xtensa.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
753         * config/sh/sh.h: Remove NO_RECURSIVE_FUNCTION_CSE comment.
754         * doc/tm.texi (Costs): Remove documentation for
755         NO_RECURSIVE_FUNCTION_CSE.
756
757 2004-05-20  Paul Brook  <paul@codesourcery.com>
758
759         * unwind-dw2-fde.c (get_cie_encoding): Handle dwarf3 CIE format.
760         * unwind-dw2.c (extract_cie_info): Ditto.
761         (_Unwind_FrameState): Change retaddr_column to word type.
762
763 2004-05-20  Roger Sayle  <roger@eyesopen.com>
764
765         PR middle-end/3074
766         * fold-const.c (strip_compound_expr): Delete function.
767         (count_cond): Delete function.
768         (fold_binary_op_with_conditional_arg): Only perform transformations
769         "a + (b?c:d) -> b ? a+c : a+d" and "(b?c:d) + a -> b ? c+a : d+a"
770         when a is constant.  This greatly simplifies this routine.
771
772         * tree.c (saved_expr_p): Delete function.
773         * tree.h (saved_expr_p): Delete function prototype.
774
775 2004-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
776
777         * common.opt (ftree-loop-optimize): Remove.
778
779 2004-05-20  Daniel Jacobowitz  <dan@debian.org>
780
781         * Makefile.in (AR_FOR_TARGET, RANLIB_FOR_TARGET)
782         (NM_FOR_TARGET): Use := and $(shell).
783         (mainversion): Remove unused variable.
784
785 2004-05-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
786
787         * reorg.c (delete_from_delay_slot): If we have a barrier after the
788         sequence containing the insn to be deleted, always reemit it.
789
790 2004-05-20  Richard Henderson  <rth@redhat.com>
791
792         PR 15454
793         * tree-nested.c (get_chain_decl): Create a PARM_DECL by hand.
794         * function.c (expand_function_start): Expand static_chain_decl by hand.
795         * gimplify.c (create_tmp_var_name): Export.
796         * tree-gimple.h (create_tmp_var_name): Declare.
797
798 2004-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
799
800         * rs6000.c (print_operand) <case 'z'>: Call
801         mark_decl_referenced before assemble_name.
802
803 2004-05-20  Zack Weinberg  <zack@codesourcery.com>
804
805         * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
806         (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
807         (cgraph_varpool_node): Hash on the pointer to the decl, not
808         the DECL_UID.  Fixes 64-bit bootstrap failure.
809
810 2004-05-20  Richard Earnshaw <rearnsha@arm.com>
811
812         * arm.md (ite_ne_zeroextractsi, ite_ne_zeroextractsi_shifted): Ensure
813         we don't earlyclobber operands used in the second insn.
814
815 2004-05-20  Steven Bosscher  <stevenb@suse.de>
816
817         * tree-mudflap.c: Formatting fixes.
818
819 2004-05-20  J"orn Rennecke <joern.rennecke@superh.com>
820
821         * Makefile.in (GTFILES): Add $(srcdir)/reload.h.
822         * gengtype.c (open_base_files): Include reload.h in ifiles.
823         * reload.h (reg_equiv_memory_loc_varray): Declare.
824         * reload1.c (reg_equiv_memory_loc_varray): New variable.
825         (init_reload): Initialize it.
826         (reload): Instead of freeing reg_equiv_memory_loc, 'grow'
827         reg_equiv_memory_loc_varray to size 0.
828         * ra.c (reg_alloc): Allocate reg_equiv_memory_loc by
829         growing reg_equiv_memory_loc_varray to the desired size.
830         * passes.c (rest_of_handle_old_regalloc): Likewise.
831         * reload.c: Amend comment on calling init_reload.
832
833 2004-05-20  Nick Clifton  <nickc@redhat.com>
834
835         * config/c4x/c4x.h (INITIALIZE_TRAMPOLINE): Replace 'tramp'
836         with 'TRAMP' in the body of the macro definition.
837
838 2004-05-19  H.J. Lu  <hongjiu.lu@intel.com>
839
840         PR target/15383
841         * config/ia64/ia64.c (ia64_expand_compare): Don't check
842         TARGET_HPUX for TFmode compare. Abort if op0 is in TFmode and
843         cmptf_libfunc isn't set.
844         (ia64_init_libfuncs): Rename TFmode libfuncs using the HPUX
845         conventions.
846         (ia64_sysv4_init_libfuncs): New.
847
848         * config/ia64/sysv4.h (TARGET_INIT_LIBFUNCS): New. Defined as
849         ia64_sysv4_init_libfuncs.
850
851 2004-05-20  Falk Hueffner  <falk@debian.org>
852
853         PR other/15526
854         * libgcc2.c (__mulvsi3): Fix overflow test.
855
856 2004-05-19  Andrew Pinski  <pinskia@physics.uc.edu>
857
858         PR c/14171
859         * reg-stack.c (nan): Rename to ...
860         (not_a_num): Here.
861         (reg_to_stack): Rename nan to not_a_num.
862         (subst_stack_regs_pat): Likewise.
863         (convert_regs_entry): Likewise.
864         (convert_regs_1): Likewise.
865
866         * tree-cfg.c (find_case_label_for_value): Replace call to
867         simple_cst_equal with tree_int_cst_equal.
868
869 2004-05-19  Jeff Law <law@redhat.com>
870
871         * tree-into-ssa.c (prepare_operand_for_rename): New argument is_use.
872         If the operand is for a use, then strip away the SSA_NAME, do not
873         strip away the SSA_NAME for a set.  Never call release_ssa_name.
874         (mark_def_sites): Appropriately pass additional argument to
875         prepare_operand_for_rename.  If a VDEF_RESULT is not an SSA_NAME,
876         then set the VDEF_RESULT to the VDEF_OP.
877         (set_def_block): Strip away any SSA_NAME to get to the real
878         underlying variable.
879
880         * tree-ssa-phiopt.c (value_replacement): Handle the case where
881         the desired edge out of COND_BLOCK reaches OTHER_BLOCK rather than
882         BB directly.
883
884 2004-05-19  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
885
886         PR c++/15463
887         * loop-iv.c (iv_number_of_iterations):  Use trunc_int_for_mode on
888         result of inverse.
889
890         PR rtl-optimization/15274
891         * loop-iv.c (determine_max_iter, shorten_into_mode,
892         iv_number_of_iterations): Handle constants correctly.
893         * rtl.h (get_mode_bounds): Declaration changed.
894         * stor-layout.c (get_mode_bounds): Return a constant suitable for
895         the target mode.
896
897         PR rtl-optimization/14692
898         * loop-unswitch.c (may_unswitch_on): Try folding the result.
899         (unswitch_single_loop): Work correctly when may_unswitch_on
900         returns a folded constant.
901
902         * loop-iv.c (implies_p): Handle A < B ==> A + 1 <= B.
903         * simplify-rtx.c (simplify_const_relational_operation): Optimize
904         comparisons with mode bounds.
905
906         * function.c (struct temp_slot): Add new field prev.
907         (free_after_compilation, init_temp_slots): Free new fields.
908         (cut_slot_from_list, insert_slot_to_list,
909         temp_slots_at_level, max_slot_level, move_slot_to_level,
910         make_slot_available): New functions.
911         (assign_stack_temp_for_type, combine_temp_slots,
912         find_temp_slot_from_address, preserve_temp_slots,
913         preserve_rtl_expr_result, free_temp_slots,
914         free_temps_for_rtl_expr, pop_temp_slots): Work with
915         the new structure of lists.
916         (mark_all_temps_used): Removed.
917         * function.h (struct function): Field x_temp_slots
918         replaced by x_used_temp_slots and x_avail_temp_slots.
919         (temp_slots): Replaced by ...
920         (used_temp_slots, avail_temp_slots): New.
921         * tree.h (mark_all_temps_used): Declaration removed.
922
923         * loop-iv.c (mark_single_set, get_biv_step_1, iv_analyze,
924         simplify_using_assignment): Take the expression out of
925         the expr_list wrapper.
926
927         * loop-iv.c (iv_number_of_iterations): Improve clasification of
928         infinite loops.
929
930 2004-05-19  Roger Sayle  <roger@eyesopen.com>
931
932         * doc/tm.texi (TARGET_RTX_COSTS): Document that instruction
933         costs should be based on code size when optimizing for size.
934
935 2004-05-19  Paolo Bonzini  <bonzini@gnu.org>
936
937         * fold-const.c: Remove non-printable character 160.
938
939 2004-05-19  Nick Clifton  <nickc@redhat.com>
940
941         * doc/invoke.texi (ARM Options): Fix typo.
942         Remove descrption of -mshort-load-bytes and
943         -mno-short-load-bytes.
944
945         * config/ip2k/ip2k.c (ip2k_composite_xexp_not_uses_reg_p): Add
946         missing parenthesis.
947         * config/ip2k/ip2k.c (ip2k_unary_operator): Likewise.
948         * config/ip2k/ip2k.c (ip2k_binary_operator): Likewise.
949
950 2004-05-19  Steven Bosscher  <stevenb@suse.de>
951
952         * expr.c (store_constructor): Build loop start and end by hand
953         instead of via loop functions from stmt.c.
954         (expand_expr_real_1): Abort if we see an EXIT_EXPR or a LOOP_EXPR.
955         Remove the code to expand them.
956
957         * stmt.c (loop_stack): Remove this and everything related.
958         (struct nesting, enum nesting_desc): Update.
959         (expand_fixup): Likewise.
960         (expand_loop_start, expand_start_loop_continue_elsewhere,
961         expand_start_null_loop, expand_loop_continue_here, expand_end_loop,
962         expand_end_null_loop, expand_continue_loop, expand_exit_loop,
963         expand_exit_loop_if_false, expand_exit_loop_top_cond,
964         expand_exit_something): Remove.
965         * tree.h: Remove prototypes.
966
967 2004-05-18  Mike Stump  <mrs@apple.com>
968             Devang Patel  <dpatel@apple.com>
969
970         * doc/tm.texi (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument to indicate
971         if this label is for eh.
972         * config/darwin-protos.h (darwin_emit_unwind_label): Likewise.
973         * config/darwin.c (darwin_emit_unwind_label): Likewise.
974         * dwarf2out.c (output_call_frame_info): Likewise.
975         * output.h (default_emit_unwind_label): Likewise.
976         * target.h (unwind_label): Likewise.
977         * varasm.c (default_emit_unwind_label): Likewise.
978
979         * config/darwin.h (DWARF2_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE,
980         DEBUG_FRAME_SECTION, DEBUG_INFO_SECTION, DEBUG_ABBREV_SECTION,
981         DEBUG_ARANGES_SECTION, DEBUG_MACINFO_SECTION, DEBUG_LINE_SECTION,
982         DEBUG_LOC_SECTION, DEBUG_PUBNAMES_SECTION, DEBUG_STR_SECTION,
983         DEBUG_RANGES_SECTION): Define.
984
985 2004-05-18  Zack Weinberg  <zack@codesourcery.com>
986
987         * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
988         (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
989         (cgraph_varpool_node):
990         Use DECL_UID for the key, not DECL_ASSEMBLER_NAME.
991         (cgraph_function_possibly_inlined_p): Use the decl itself for
992         the key, not DECL_ASSEMBLER_NAME.
993         (change_decl_assembler_name): No need to muck with the hash tables.
994         (cgraph_node_for_identifier, cgraph_varpool_node_for_identifier):
995         Delete.
996         * cgraphunit.c (cgraph_mark_inline_edge): Use the decl itself
997         for the key, not DECL_ASSEMBLER_NAME.
998         * cgraph.h: Remove prototypes of deleted functions.
999         * varasm.c (mark_referenced): Just set TREE_SYMBOL_REFERENCED.
1000         (mark_decl_referenced): New function.
1001         * tree.h: Prototype mark_decl_referenced.
1002         * final.c (output_addr_const) <case SYMBOL_REF>: Call
1003         mark_decl_referenced before assemble_name.
1004         * c-decl.c (finish_decl): Use mark_decl_referenced.
1005
1006 2004-05-18  Andrew Pinski  <pinskia@physics.uc.edu>
1007             Jeff Law <law@redhat.com>
1008
1009         * tree-ssa-phiopt.c (abs_replacement): New function.
1010         (empty_block_p): New function extracted from...
1011         (candidate_bb_for_phi_optimization): Break out empty block test.
1012         (conditional_replacement): Use empty_block_p.
1013         (value_replacement): Similarly.
1014
1015         * Makefile.in (tree-ssa-phiopt.o): Depends on flags.h.
1016         * tree-ssa-phiopt.c: Include flags.h.
1017         (conditional_replacement): Remove argument names from prototype.
1018         Minor formatting and comment fixes.
1019         (tree_ssa_phiopt): If conditional_replacement returns false, then
1020         call value_replacement.
1021         (value_replacement): New function.
1022
1023 2004-05-18  Jeff Law  <law@redhat.com>
1024
1025         * tree-ssa-phiopt.c (replace_phi_with_stmt): New function extracted
1026         from conditional_replacement.
1027         (candidate_bb_for_phi_optimization): Similarly.
1028         (conditional_replacement): Use replace_phi_with_stmt and
1029         candidate_bb_for_phi_optimization.
1030
1031         * tree-ssa-phiopt.c: Fix various formatting issues.
1032
1033 2004-05-18  Steven Bosscher  <stevenb@suse.de>
1034
1035         * config/s390/s390.c (s390_expand_movstr, s390_expand_clrstr,
1036         s390_expand_cmpmem): Do not use expand_start_loop and
1037         expand_end_loop, instead build the loop manually.
1038
1039 2004-05-18  Alan Modra  <amodra@bigpond.net.au>
1040
1041         * config/rs6000/rs6000.md (ctrsi_internal3): Delete.
1042         (ctrsi_internal4, ctrdi_internal3, ctrdi_internal4): Delete.
1043
1044 2004-05-17  Jeff Law  <law@redhat.com>
1045
1046         * toplev.h (flag_delete_null_pointer_checks): Move from here to...
1047         * flags.h (flag_delete_null_pointer_checks): Here.
1048         * tree-flow.h (cprop_into_successor_phis): Add argument to prototype.
1049         * tree-phinodes.c (resize_phi_node): Initialize PHI_ARG_NONZERO.
1050         (add_phi_arg, remove_phi_arg_num): Similarly.
1051         * tree-ssa-copy.c (cprop_into_successor_phis): Propagate nonzero
1052         property into PHI nodes.
1053         * tree-ssa-dom.c: Remove redundant inclusion of flags.h.
1054         (record_equivalences_from_phis): If all PHI arguments are known to be
1055         nonzero, then the result must be nonzero as well.
1056         (cprop_into_phis): Pass nonzero_vars bitmap to cprop_into_successor_phis.
1057         (record_equivalences_from_stmt): Check flag_delete_null_pointer_checks
1058         appropriately.  Walk the USE-DEF chains and propagate nonzero property
1059         as appropriate.
1060         * tree.h (PHI_ARG_NONZERO): Define.
1061         (phi_arg_d): Add nonzero flag.
1062
1063 2004-05-17  Zack Weinberg  <zack@codesourcery.com>
1064
1065         * f: Entire directory removed
1066
1067         * c-common.h (CTI_G77_INTEGER_TYPE, CTI_G77_UINTEGER_TYPE)
1068         (CTI_G77_LONGINT_TYPE, CTI_G77_ULONGINT_TYPE)
1069         (g77_integer_type_node, g77_uinteger_type_node)
1070         (g77_longint_type_node, or g77_ulongint_type_node): Delete.
1071         * c-common.c (c_common_nodes_and_builtins): Do not initialize
1072         the above set of variables.
1073
1074         * config/i386/uwin.h: No need to define WIN32_UWIN_TARGET.
1075         * doc/invoke.texi, doc/standards.texi: Remove cross-references
1076         to g77 manual.
1077
1078 2004-05-17  Steven Bosscher  <stevenb@suse.de>
1079
1080         PR tree-optimization/15438
1081         * tree-ssa-operands.c (get_expr_operands): Do not treat malloc
1082         attributed functions as pure or const.
1083
1084 2004-05-17  Frank Ch. Eigler  <fche@redhat.com>
1085
1086         * tree-mudflap.c (mx_register_decls): Tolerate decl trees resulting
1087         from source code with errors.
1088
1089 2004-05-17  Ranjit Mathew  <rmathew@hotmail.com>
1090
1091         Enable tree browser for all front ends.
1092         * Makefile.in (cc1): Moved @TREEBROWSER@ from here...
1093         (BACKEND): ...to here.
1094
1095 2004-05-17  Jan Hubicka  <jh@suse.cz>
1096
1097         * i386.c (construct_container): Do not produce BLKmode registers.
1098         (classify_argument): Properly compute alignment of complex types.
1099
1100 2004-05-17  H.J. Lu  <hongjiu.lu@intel.com>
1101
1102         PR target/15084
1103         * config/i386/i386.md (*movsi_insv_1_rex64): Changed to DImode
1104         and renamed to movdi_insv_1_rex64.
1105         (insv): Support SImode for 32bit and DImode for 64bit.
1106
1107 2004-05-17  Richard Sandiford  <rsandifo@redhat.com>
1108
1109         * config/mips/mips.h (MASK_DEBUG_G, TARGET_DEBUG_G_MODE): Delete.
1110         (TARGET_SWITCHES): Remove debugg.
1111         * config/mips/mips.md (adddi3, ashldi3, ashrdi3, lshrdi3): Only handle
1112         TARGET_64BIT.
1113         (subdi3): Replace the define_expand with a define_insn, the latter
1114         renamed from subdi3_internal_3.
1115         (negdi2): Likewise negdi2_internal_2.
1116         (adddi3_internal_[12], subdi3_internal, ashldi3_internal{,2,3})
1117         (ashrdi3_internal{,2,3}, lshrdi3_internal{,2,3}): Remove patterns
1118         and associated define_splits.
1119         (adddi3_internal): Renamed from adddi3_internal_3.
1120         (ashldi3_internal): Likewise ashldi3_internal4.
1121         (ashrdi3_internal): Likewise ashrdi3_internal4.
1122         (lshrdi3_internal): Likewise lshrdi3_internal4.
1123
1124 2004-05-17  Richard Sandiford  <rsandifo@redhat.com>
1125
1126         * optabs.c (expand_unop): Try implementing negation using subtraction
1127         from zero.
1128
1129 2004-05-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1130
1131         * pa.md:  Fix typo from last change.  Remove DFmode move to and from
1132         SAR register.
1133
1134 2004-05-16  Richard Earnshaw  <rearnsha@arm.com>
1135
1136         PR target/10982
1137         * arm.md (ne_zeroextractsi): Convert to insn-and-split.
1138         (ne_zeroextractsi_shifted): New pattern.
1139         (ite_ne_zeroextractsi): New pattern.
1140         (ite_ne_zeroextractsi_shifted): New pattern.
1141
1142 2004-05-15  Steven Bosscher  <stevenb@suse.de>
1143
1144         * c-gimplify.c (c_genericize):
1145         Replace calls via (*lang_hooks.foo) with lang_hooks.foo.
1146         * c-parse.in <expr_no_commas>: Likewise.
1147         <if_prefix>: Likewise.
1148         <select_or_iter_stmt>: Likewise.
1149         * expr.c (expand_var, expand_expr_real_1): Likewise.
1150         * expr.h (expand_expr): Make it a static inline function.
1151         Move prototype for expand_expr_real up before this.
1152         * fold-const.c (fold_relational_hi_lo, fold_relational_const):
1153         Likewise.
1154         * gimplify.c (gimple_boolify, gimplify_addr_expr,
1155         gimplify_asm_expr, gimplify_expr): Likewise.
1156         * tree-cfg.c (dump_tree_cfg, dump_cfg_stats, tree_cfg2vcg,
1157         dump_function_to_file): Likewise.
1158         * tree-dfa.c (dump_immediate_uses, dump_dfa_stats): Likewise.
1159         * tree-inline.c (remap_block, save_body, walk_tree): Likewise.
1160         * tree-into-ssa.c (dump_tree_ssa): Likewise.
1161         * tree-mudflap.c (mf_varname_tree, mf_file_function_line_tree):
1162         Likewise.
1163         * tree-optimize.c (execute_one_pass): Likewise.
1164         * tree-pretty-print.c (dump_generic_bb_buff): Likewise.
1165         * tree-ssa-alias.c (dump_alias_stats, dump_alias_info): Likewise.
1166
1167         * objc/objc-act.c (objc_build_try_enter_fragment,
1168         objc_build_try_epilogue, objc_build_catch_stmt,
1169         objc_build_finally_prologue): Replace calls via (*lang_hooks.foo)
1170         with lang_hooks.foo ().
1171
1172 2004-05-15  Roger Sayle  <roger@eyesopen.com>
1173
1174         * builtins.c (simplify_builtin_strcpy): Avoid use of chainon, so
1175         that simplify_builtin doesn't destructively modify its argument.
1176
1177 2004-05-15  Richard Earnshaw  <reanrsha@arm.com>
1178
1179         * arm/lib1funcs.asm (_lshrdi3, _ashrdi3, _ashldi3): Add ASM
1180         implementations for ARM and Thumb.
1181         * arm/t-arm-elf (LIB1ASMFUNCS): Use them.
1182
1183 2004-05-15  Thomas Quinot  <quinot@act-europe.fr>
1184
1185         * prefix.c (update_path): Replace PREFIX with KEY only
1186         when it matches a full directory name in PATH.
1187
1188 2004-05-15  Richard Earnshaw  <reanrsha@arm.com>
1189
1190         * arm.h (TARGET_APCS_32): Delete.
1191         (TARGET_MMU_TRAPS): Delete.
1192         (TARGET_CPU_CPP_BUILTINS): Unconditionally define __APCS_32__.  Never
1193         define __APCS_26__.
1194         (CPP_SPEC): Remove checking of -mapcs-{26,32}.
1195         (ARM_FLAG_APCS_32, ARM_FLAG_MMU_TRAPS): Delete.
1196         (TARGET_SWITCHES): Remove alignment_traps and apcs-{26,32} switches.
1197         (prog_mode_type): Delete.
1198         (PROMOTE_MODE): Always promote unsigned for HImode.
1199         (SECONDARY_INPUT_RELOAD_CLASS): Simplify.
1200         (MASK_RETURN_ADDR): Simplify.
1201         * arm.c (arm_prgmode): Delete.
1202         (arm_override_options, arm_gen_rotated_half_load): Simplify.
1203         (print_multi_reg, output_return_instruction): Simplify.
1204         (arm_output_epilogue, arm_final_prescan_insn): Simplify.
1205         (arm_return_addr): Simplify.
1206         * arm.md (prog_mode): Delete.
1207         (conds): Simplify.
1208         (zero_extendhisi2, extendhisi2, movhi, movhi_bytes): Simplify.
1209         (rotated_loadsi, movhi_insn_littleend, movhi_insn_bigend): Delete.
1210         (loadhi_si_bigend, loadhi_preinc, loadhi_shiftpreinc): Delete.
1211         (loadhi_shiftpredec): Delete.
1212         (peephole for post-increment on HImode load): Delete.
1213         * arm/crtn.asm: (FUNC_END): Simplify.
1214         * arm/lib1funcs.asm: Remove APCS-26 return macros.
1215         * arm/aof.h, arm/coff.h arm/elf.h arm/linux-elf.h arm/netbsd-elf.h
1216         * arm/netbsd.h arm/pe.h arm/semi.h arm/semiaof.h arm/unknown-elf.h
1217         * arm/vxworks.h arm/wince-pe.h: Tidy TARGET_DEFAULTS and
1218         MULTILIB_DEFAULTS as required.
1219         * arm/t-arm-elf arm/t-linux arm/t-pe arm/t-semi arm/t-wince-pe
1220         * arm/t-xscale-coff arm/t-xscale-elf arm/uclinux-elf: Tidy MULTILIB
1221         variables as required.
1222         * doc/invoke.texi (ARM Options): Remove obsolete flags.
1223
1224 2004-05-15  Alan Modra  <amodra@bigpond.net.au>
1225
1226         * config/rs6000/rs6000.c (rs6000_va_arg <ABI_V4>): Don't use
1227         UNITS_PER_WORD to calculate gpr size.  Re-instate code to set reg
1228         count to 8 to handle n_reg > 2.
1229
1230 2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>
1231
1232         * doc/extend.texi: Update WG14 URL.
1233
1234 2004-05-15  Steven Bosscher  <stevenb@suse.de>
1235
1236         * basic-block.h (life_analysis, delete_noop_moves):
1237         Update prototypes.
1238         * bt-load.c (branch_target_load_optimize): Don't take the
1239         insns stream as an argument.  Update the life_analysis calls.
1240         * combine.c (combine_instructions): Update delete_noop_moves
1241         calls.
1242         * flow.c (notice_stack_pointer_modification): Don't take the
1243         insns stream as an argument.  Work on the flow graph.
1244         (life_analysis): Likewise.
1245         (delete_noop_moves): Likewise.
1246         * passes.c (rest_of_handle_stack_regs): Update reg_to_stack call.
1247         (rest_of_handle_life): Update life_analysis call.
1248         (rest_of_compilation): Likewise, and also update
1249         branch_target_load_optimize call.
1250         * ra.c (reg_alloc): Update life_analysis call.
1251         * reg-stack.c (reg_to_stack): Likewise.  Also, don't take
1252         the insns stream as an argument.
1253         * regrename.c (copyprop_hardreg_forward): Update delete_noop_moves
1254         call.
1255         * rtl.c (branch_target_load_optimize, reg_to_stack): Update
1256         prototypes.
1257         * value-profile.c (branch_prob): Update life_analysis call.
1258         * web.c (web_main): Work on the CFG, not on the insns stream.
1259
1260         * config/ip2k/ip2k.c (ip2k_reorg): Update life_analysis calls.
1261         * config/m68hc11/m68hc11.c (m68hc11_reorg): Likewise.
1262         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
1263
1264 2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>
1265
1266         PR c/15444
1267         * c-format.c (avoid_dollar_number): New function.
1268         (check_format_info_main): Call avoid_dollar_number when operand
1269         numbers might occur but has_operand_number == 0.
1270
1271 2004-05-14  Richard Earnshaw  <rearnsha@arm.com>
1272
1273         * arm.md (all peephole2 patterns): Use predicates that validate
1274         register classes as appropriate.
1275
1276 2004-05-14  Steven Bosscher  <stevenb@suse.de>
1277
1278         PR opt/14472
1279         * tree-tailcall.c (process_assignment): Use STRIP_NOPS to
1280         ignore type conversions that do not inhibit tail calling.
1281         (find_tail_calls): Likewise.
1282
1283 2004-05-14  Jeff Law  <law@redhat.com>
1284
1285         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Don't even
1286         bother marking bypassed virtuals for out-of-ssa.  Instead merge
1287         bypassed virtuals into vars_to_rename just before into-ssa pass.
1288
1289         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Reorganize
1290         so that it picks up more opportunities to eliminate ABS expressions
1291         or turn them into negations.
1292
1293 2004-05-14  Steven Bosscher  <stevenb@suse.de>
1294
1295         * passes.c (rest_of_handle_null_pointer): Remove.
1296         (rest_of_handle_cse): Don't call rest_of_handle_null_pointer.
1297         (rest_of_compilation): Likewise.
1298         * rtl.h (delete_null_pointer_checks): Remove prototype.
1299         * gcse.c (rd_kill, rd_gen, reaching_defs, rd_out, ae_in, ae_out):
1300         Remove declarations.
1301         (get_bitmap_width, alloc_rd_mem, free_rd_mem, handle_rd_kill_set,
1302         compute_kill_rd, compute_rd, alloc_avail_expr_mem,
1303         free_avail_expr_mem, compute_ae_gen, expr_killed_p, compute_ae_kill,
1304         expr_reaches_here_p, computing_insn, def_reaches_here_p,
1305         can_disregard_other_sets, handle_avail_expr, classic_gcse,
1306         one_classic_gcse_pass, invalidate_nonnull_info,
1307         delete_null_pointer_checks_1, delete_null_pointer_checks,
1308         expr_reached_here_p_work): Remove.
1309         (gcse_main): Do not perform classic GCSE when optimizing for size.
1310         (alloc_pre_mem, free_pre_mem): Don't touch ae_in and ae_out, they
1311         are never used.
1312
1313 2004-05-14  Andrew Pinski  <pinskia@physics.uc.edu>
1314
1315         PR optimization/14466
1316         * tree-complex.c (make_temp): Remove.
1317         (gimplify_val): Replace make_temp with make_rename_temp
1318         and add NULL as the second argument.
1319         (expand_complex_div_wide): Likewise.
1320         * tree-dfa.c (make_rename_temp): New function.
1321         * tree-flow.h (make_rename_temp): Declare.
1322         * tree-sra.c (make_temp): Remove.
1323         (lookup_scalar): Replace make_temp with make_rename_temp.
1324         (create_scalar_copies): Likewise.
1325         * tree-ssa-phiopt.c (conditional_replacement): When we
1326         get non gimple create a temporary variable to hold the
1327         casted expression.
1328
1329 2004-05-14  Paul Brook  <paul@codesourcery.com>
1330
1331         * stor-layout.c (update_alignment_for_field): Use
1332         targetm.align_anon_bitfield.
1333         * target-def.h (TARGET_ALIGN_ANON_BITFIELD): Define.
1334         (TARGET_INITIALIZER): Use it.
1335         * target.h (struct gcc_target): Add align_anon_bitfield.
1336         * config/arm/arm.c (arm_align_anon_bitfield):  New function.
1337         (TARGET_ALIGN_ANON_BITFIELD): Define.
1338         * doc/tm.texi: Document TARGET_ALIGN_ANON_BITFIELD.
1339
1340 2004-05-13  Zack Weinberg  <zack@codesourcery.com>
1341
1342         * tree.def (documentation): Remove mention of class 'b'.
1343         (BLOCK): Now in class 'x'.
1344         * c-common.c (verify_tree): Remove case 'b'.
1345         * c-typeck.c (same_translation_unit_p): Change 'b' to 'x'.
1346         * calls.c (calls_function_1): Control cannot get past the switch
1347         when exp is a BLOCK.
1348         * print-tree.c (print_node): Move code for class 'b' to the class
1349         'c'/'x' switch, as case BLOCK.
1350         * tree.c (tree_size, make_node_stat, tree_node_structure): Likewise.
1351         (unsafe_for_reeval, substitute_placeholder_in_expr)
1352         (stabilize_reference_1): Remove case 'b'.
1353         * tree-browser.c (browse_tree): Change all tests for TREE_CODE_CLASS
1354         of something being 'b' to tests for TREE_CODE of something being
1355         BLOCK.
1356         * tree-ssa-operands.c (get_expr_operands): Likewise.
1357
1358 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
1359
1360         * tree-gimple.c: Rename from tree-simple.c.
1361         * tree-gimple.h: Rename from tree-simple.h.
1362         * c-gimplify.c: Rename from c-simplify.c
1363         * Makefile.in, c-decl.c, gimple-low.c, gimplify.c,
1364         langhooks.c, tree-alias-ander.c, tree-alias-common.c,
1365         tree-complex.c, tree-dfa.c, tree-flow.h, tree-inline.c,
1366         tree-into-ssa.c, tree-iterator.c, tree-mudflap.c,
1367         tree-nested.c, tree-nomudflap.c, tree-outof-ssa.c, tree-sra.c,
1368         tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-copyrename.c,
1369         tree-ssa-dce.c, tree-ssa-live.c, tree-ssa-pre.c, tree-ssa.c:
1370         Update.
1371
1372 2004-05-14  Ranjit Mathew  <rmathew@hotmail.com>
1373
1374         * doc/sourcebuild.texi: Mention libbanshee and libmudflap.
1375
1376 2004-05-13  Andrew Pinski  <pinskia@physics.uc.edu>
1377
1378         * tree-ssa.c (delete_tree_ssa): XFREE
1379         bitmaps allocated with BITMAP_XMALLOC.
1380
1381         * tree-ssa-pre.c (execute_pre): Free ephi_use_pool and
1382         idfs_cache at the end of the function.
1383
1384         * tree-ssa-live.c (calculate_live_on_entry): Free saw_def
1385         at the end of the function.
1386
1387         * tree-ssa-dce.c (perform_tree_ssa_dce): Free
1388         el at the end of the function.
1389
1390         * tree-into-ssa.c (insert_phi_nodes_for): XFREE
1391         bitmaps allocated with BITMAP_XMALLOC.
1392
1393         * loop-unswitch.c (unswitch_single_loop): Free bbs at
1394         the end.
1395
1396         * final.c (shorten_branches): Free uid_shuid before
1397         reallocating it.
1398
1399         * bb-reoder.c (connect_traces): Free cold_traces at the end.
1400
1401 2004-05-13  Jeff Law  <law@redhat.com>
1402
1403         * tree-ssa-live.c (calculate_live_on_entry): Ignore virtual
1404         variables.  Simplify slightly by using USE_OP/DEF_OP instead
1405         of USE_OP_PTR/DEF_OP_PTR and dereferencing the result.
1406
1407         * tree-into-ssa.c (compute_global_livein): Use EXECUTE_IF_SET_IN_BITMAP
1408         rather than iterating through the blocks testing each bit in
1409         livein to initialize the worklist.
1410         (mark_def_sites): Remove useless checks of KILLS for virtual
1411         operands.
1412
1413         * tree-ssa-forwprop.c (record_single_argument_cond_exprs): Accept
1414         new parameters for the statement and variable worklist as well
1415         as a bitmap of interesting SSA_NAMEs.  Walk over the statement
1416         worklist recording interesting variables in the variable worklist
1417         and bitmap.  Handle casts between integral and boolean types.
1418         (substitute_single_use_vars): Accept new parameters for the statement
1419         and variable worklist.  When a substitution is made add a new
1420         entry to the statement worklist.  Handle casts between integral
1421         and boolean types.
1422         (tree_ssa_forward_propagate_single_use_vars): Rework to pass
1423         worklists to children.  Iterate until the statement worklist
1424         is empty.
1425
1426 2004-05-13  Andrew Pinski  <pinskia@physics.uc.edu>
1427
1428         * tree-outof-ssa.c (rewrite_vars_out_of_ssa): Free map at
1429         the end of the block.
1430
1431         * tree-into-ssa.c (def_blocks_free): XFREE bitmaps allocated
1432         with BITMAP_XMALLOC.
1433
1434         * tree-ssa-alias.c (delete_alias_info): XFREE bitmaps allocated
1435         with BITMAP_XMALLOC.
1436
1437         * tree-ssa-dom.c (tree_ssa_dominator_optimize):
1438         Free nonzero_vars at the end of the function.
1439
1440         * convert.c (convert_to_integer): Make a CONVERT_EXPR when there is a
1441         need to generate code instead of a NOP_EXPR.
1442
1443 2004-05-13  Ian Lance Taylor  <ian@wasabisystems.com>
1444
1445         * gcc.c (default_compilers): Fill out initializers for new Fortran
1446         entries.
1447
1448 2004-05-13  Paul Brook  <paul@codesourcery.com>
1449
1450         * config/arm/arm.h (PCC_BITFIELD_TYPE_MATTERS): Define.
1451
1452 2004-05-13  Paul Brook  <paul@codesourcery.com>
1453
1454         * config/arm/arm.c (arm_default_short_enums): New function.
1455         (TARGET_DEFAULT_SHORT_ENUMS): Define.
1456
1457 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
1458
1459         Merge from tree-ssa-20020619-branch.
1460
1461         * Makefile.in (reload1.o-warn): Add.
1462         (tree-alias-ander.o-warn): Add.
1463         (GMPLIBS): Define.
1464         (GMPINC): Define.
1465         (BANSHEELIB): Define.
1466         (BANSHEEINC): Define.
1467         (TREE_DUMP_H): Define.
1468         (TREE_SIMPLE_H): Define.
1469         (TREE_FLOW_H): Define.
1470         (LIBDEPS): Add BANSHEELIB.
1471         (INCLUDES): Add BANSHEEINC and GMPINC.
1472         (C_AND_OBJC_OBJS): Add c-simplify.o, tree-mudflap.o,
1473         c-mudflap.o and c-pretty-print.o.
1474         (C_OBJS): Remove c-pretty-print.o.
1475         (OBJS-common): Remove sibcall.o.
1476         Add tree-cfg.o, tree-dfa.o, tree-eh.o,
1477         tree-ssa.o, tree-optimize.o, tree-simple.o,
1478         tree-alias-type.o, gimplify.o, tree-pretty-print.o,
1479         tree-into-ssa.o, tree-outof-ssa.o, tree-alias-common.o,
1480         tree-ssa-ccp.o, @ANDER@, tree-ssa-dce.o, tree-ssa-copy.o,
1481         tree-nrv.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
1482         tree-ssa-live.o, tree-ssa-operands.o, tree-ssa-alias.o,
1483         tree-ssa-phiopt.o, tree-ssa-forwprop.o, tree-nested.o,
1484         tree-ssa-dse.o, tree-ssa-dom.o, domwalk.o,
1485         tree-tailcall.o, gimple-low.o, tree-iterator.o,
1486         tree-phinodes.o, tree-ssanames.o, tree-sra.o,
1487         tree-complex.o, tree-ssa-loop.o, rtl-profile.o and
1488         tree-profile.o.
1489         (OBJC-archive): Add tree-nomudflap.o.
1490         (cc1): Add dependency on @TREEBROWSER@.
1491         (c-decl.o): Add dependency on TREE_DUMP_H.
1492         (c-dump.o): Likewise.
1493         (c-common.o): Add dependency on tree-iterator.h
1494         (c-pretty-print.o): Add dependency on DIAGNOSTIC_H.
1495         (gtype-desc.o): Add dependency on TREE_FLOW_H.
1496         (tree.o): Add dependency on tree-iterator.h,
1497         BASIC_BLOCK_H and TREE_FLOW_H.
1498         (tree-dump.o): Depend on TREE_DUMP_H instead of tree-dump.h.
1499         (langhooks.o): Add dependency on TREE_SIMPLE_H.
1500         (tree-alias-type.o, tree-alias-ander.o,
1501         tree-alias-common.o, tree-ssa.o, tree-into-ssa.o,
1502         tree-outof-ssa.o, tree-ssa-dse.o, tree-ssa-forwprop.o,
1503         tree-ssa-phiopt.o, tree-nrv.o, tree-ssa-copy.o,
1504         tree-ssa-dom.o, tree-ssanames.o, tree-phinodes.o,
1505         domwalk.o, tree-ssa-live.o, tree-ssa-copyrename.o,
1506         tree-ssa-pre.o, tree-cfg.o, tree-tailcall.o,
1507         tree-nested.o, tree-iterator.o, tree-dfa.o,
1508         tree-ssa-operands.o, tree-eh.o, tree-ssa-loop.o,
1509         tree-ssa-alias.o, tree-optimize.o, c-simplify.o,
1510         gimplify.o, gimple-low.o, tree-browser.o, tree-simple.o,
1511         tree-mudflap.o, c-mudflap.o, tree-nomudflap.o,
1512         tree-pretty-print.o, tree-ssa-dce.o, tree-ssa-ccp.o,
1513         tree-sra.o, tree-complex.o, tree-profile.o,
1514         rtl-profile.o): New rules.
1515         (function.o): Add dependency on basic-block.h
1516         (expr.o): Add dependency on tree-iterator.h.
1517         (sibcall.o): Remove.
1518         (profile.o): Depend on TREE_FLOW_H instead of TREE_H.
1519         (cfg.o): Add dependency on TIMEVAR_H.
1520         (cfghooks.o): Add dependency on TREE_FLOW_H.
1521         (reg-stack.o): Add dependency on basic-block.h.
1522         (GTFILES): Add hwint.h, tree-mudflaph.c, tree-flow.h,
1523         c-objc-common.c, c-common.c, c-parse.in, tree-ssanames.c,
1524         tree-eh.c, tree-phinodes.c, tree-cfg.c, tree-dfa.c,
1525         tree-ssa-ccp.c, tree-iterator.c, gimplify.c,
1526         tree-alias-type.h, tree-alias-common.h,
1527         tree-alias-type.c, tree-alias-common.c,
1528         tree-ssa-operands.h, tree-ssa-operands.c, tree-profile.c,
1529         rtl-profile.c and tree-nested.c.
1530         (gt-tree-alias-common.h, gt-tree-mudflap.h,
1531         gt-tree-ssa-ccp.h, gt-tree-eh.h, gt-tree-ssanames.h,
1532         gt-tree-iterator.h, gt-gimplify.h, gt-tree-phinodes.h,
1533         gt-tree-cfg.h, gt-tree-nested.h): New rules.
1534         (TEXI_GCCINT_FILES): Add cfg.texi and tree-ssa.texi.
1535         * basic-block.h: Include predict.h
1536         (struct edge_def): Add GTY marker.
1537         Change field 'insns' to be a union of tree and rtx.
1538         (EDGE_TRUE_VALUE): Define.
1539         (EDGE_FALSE_VALUE): Define.
1540         (EDGE_EXECUTABLE): Define.
1541         (struct bb_ann_d): Forward declare.
1542         (struct basic_block_def): Add GTY marker.
1543         Remove fields head_tree and end_tree.
1544         Add fields stmt_list, rbi and tree_annotations.
1545         (struct reorder_block_def): Define.
1546         (basic_block_info): Add GTY marker.
1547         (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Change to global
1548         variables instead of macros.
1549         (flow_call_edges_add): Remove declaration.
1550         (make_eh_edge): Remove declaration.
1551         (brief_dump_cfg, find_edge, tree_predicted_by_p,
1552         rtl_predicted_by_p, tree_predict_edge, rtl_predict_edge,
1553         predict_edge_def, rtl_make_eh_edge, find_basic_blocks,
1554         cleanup_cfg, delete_unreachable_blocks, merge_seq_blocks,
1555         alloc_rbi_pool, initialize_bb_rbi, free_rbi_pool): Declare.
1556         (try_redirect_by_replacing_jump): Modfiy return type to
1557         edge instead of bool.
1558         * bb-reorder.c (copy_bb): Call duplicate_block
1559         instead of cfg_layout_duplicate_bb.
1560         (copy_bb_p): Call can_duplicate_block_p instead of
1561         cfg_layout_can_duplicate_bb_p.
1562         * bitmap.c (bitmap_first_set_bit): Abort if word
1563         wasn't found.
1564         (bitmap_last_set_bit): Likewise.
1565         * builtin-types.def (DEF_FUNCTION_TYPE_2): Add
1566         (DEF_FUNCTION_TYPE_3): Add.
1567         * builtins.c (c_strlen): Make extern.
1568         (builtin_save_expr): New.
1569         (expand_builtin_nonlocal_goto): New.
1570         (expand_builtin_constant_p): Remove.
1571         (expand_builtin_mathfn): Call builtin_save_expr instead
1572         of save_expr.
1573         (expand_builtin_mathfn_2): Likewise.
1574         (expand_builtin_strcmp): Likewise.
1575         (expand_builtin_strncmp): Likewise.
1576         (expand_builtin_strcat): Likewise.
1577         (fold_builtin_cabs): Likewise.
1578         (expand_builtin_alloca): Don't trigger if -fmudflap is
1579         given.
1580         (build_string_literal): Set TREE_INVARIANT on new node.
1581         (expand_builtin_profile_fun): New.
1582         (round_trampoline_addr): New.
1583         (expand_builtin_init_trampoline): New.
1584         (expand_builtin_adjust_trampoline): New.
1585         (expand_builtin) <BUILT_IN_NEXT_ARG>: Call simplify_builtin_next_arg.
1586         <BUILT_IN_CONSTANT_P>: Return const0_rtx;
1587         <BUILT_IN_STACK_ALLOC, BUILT_IN_STACK_SAVE,
1588         BUILT_IN_STACK_RESTORE, BUILT_IN_NONLOCAL_GOTO,
1589         BUILT_IN_PROFILE_FUNC_ENTER, BUILT_IN_PROFILE_FUNC_EXIT,
1590         BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE>:
1591         Handle.
1592         (fold_builtin_expect): New.
1593         (fold_builtin_isascii): Don't return non-constant results
1594         in GIMPLE form.
1595         (fold_builtin_isdigit): Likewise.
1596         (fold_builtin_1): New.
1597         (fold_builtin): Call it.
1598         (build_function_call_expr): Update call to build a new
1599         CALL_EXPR.
1600         (purge_builtin_constant_p): Remove.
1601         (simplify_builtin, simplify_builtin_memcmp,
1602         simplify_builtin_strcmp, simplify_builtin_strncmp,
1603         simplify_builtin_strpbrk, simplify_builtin_strstr,
1604         simplify_builtin_strchr, simplify_builtin_strrchr,
1605         simplify_builtin_strcat, simplify_builtin_strncat,
1606         simplify_builtin_strspn, simplify_builtin_strcspn,
1607         simplify_builtin_next_arg, simplify_builtin_va_start,
1608         simplify_builtin_sprintf): New.
1609         * builtins.def (BUILT_IN_STACK_ALLOC,
1610         BUILT_IN_STACK_SAVE, BUILT_IN_STACK_RESTORE,
1611         BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE,
1612         BUILT_IN_NONLOCAL_GOTO, BUILT_IN_PROFILE_FUNC_ENTER,
1613         BUILT_IN_PROFILE_FUNC_EXIT): Define.
1614         * c-common.c: Include tree-iterator.h and hashtab.h.
1615         (lang_statement_code_p): Declare.
1616         (lang_gimplify_stmt): Declare.
1617         (fix_string_type): Set TREE_INVARIANT for value.
1618         (pointer_int_sum): Rely on build to set TREE_CONSTANT.
1619         (c_type_hash): New.
1620         (c_common_get_alias_set): Handle multiple type nodes
1621         referring to "the same" type, currently for C90 only.
1622         (c_add_case_label): Use create_artificial_label.
1623         (finish_label_address_expr): Don't set TREE_CONSTANT on
1624         result.
1625         (c_expand_expr): Don't handle STMT_EXPR.
1626         (handle_alias_attribute): Marke aliased variables to be
1627         TREE_STATIC.
1628         (handle_nonnull_attribute): Initialize arg_num.
1629         (check_function_nonnull): Likewise.
1630         (c_walk_subtrees): New.
1631         (c_estimate_num_insns_1): Don't handle
1632         EXPR_WITH_FILE_LOCATION nor FILE_STMT.
1633         (c_decl_uninit_1): Remove.
1634         (c_decl_uninit): Remove.
1635         (c_warn_unused_result): New.
1636         * c-common.def (ASM_STMT): Change number of operands
1637         to 4.
1638         (FILE_STMT): Remove.
1639         * c-common.h (lang_expand_stmt, lang_expand_decl_stmt):
1640         Remove.
1641         (lang_gimplify_stmt): Add.
1642         (expand_stmt): Remove.
1643         (ASM_CV_QUAL, ASM_STRING, ASM_OUTPUTS, ASM_INPUTS,
1644         ASM_CLOBBERS, STMT_EXPR_WARN_UNUSED_RESULT,
1645         ASM_VOLATILE_P, FILE_STMT_FILENAME_NODE,
1646         FILE_STMT_FILENAME, STMT_LINENO, STMT_LINENO_FOR_FN_P,
1647         ASM_INPUT_P, DECL_C_HARD_REGISTER): Remove.
1648         (genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
1649         genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
1650         genrtl_while_stmt, genrtl_do_stmt, genrtl_return_stmt,
1651         genrtl_for_stmt, genrtl_break_stmt, genrtl_continue_stmt,
1652         genrtl_scope_stmt, genrtl_switch_stmt, genrtl_case_label,
1653         genrtl_compound_stmt, genrtl_asm_stmt,
1654         genrtl_cleanup_stmt, c_decl_uninit): Remove.
1655         (c_do_switch_warnings, c_gimplify_expr, c_walk_subtrees,
1656         c_tree_chain_matters_p, c_warn_unused_result,
1657         c_genericize, c_gimplify_stmt, stmt_expr_last_stmt):
1658         Declare.
1659         * c-convert.c (convert): Make convert work when
1660         converting to compatible types across translation unit.
1661         * c-decl.c: Include langhooks.h, tree-mudflap.h,
1662         tree-simple.h, diagnostic.h and tree-dump.h
1663         (merge_decls): Initialize oldtype to NULL.
1664         (finish_decl): Use DECL_HARD_REGISTER instead of
1665         DECL_C_HARD_REGISTER.
1666         (check_bitfield_type_and_width): Check for null
1667         lang_type_specific when check the precision of an enum.
1668         (grokdeclarator): Immediately layout an ARRAY_TYPE used
1669         in a pointer-to-array declarator.
1670         (finish_struct): Clear allocated struct lang_type.
1671         (finish_enum): Set enum_min and enum_max.  Set
1672         TYPE_MIN/MAX_VALUE to the limits of the compatible type,
1673         not to the enumerators.
1674         (set_decl_nonlocal): New.
1675         (store_parm_decls): Use it via walk_tree.
1676         (c_finalize): New.
1677         (finish_function): When !targetm.have_ctors_dtors,
1678         record static constructors and destructors here...
1679         (c_expand_body_1): ... not here.
1680         (c_expand_decl): Rename from c_expand_decl_stmt.
1681         Handle all C-specific expansion semantics.
1682         * c-dump.c (dump_stmt): Use EXPR_LOCUS instead of
1683         STMT_LINENO.
1684         * c-format.c (handle_format_arg_attribute): Initialize
1685         format_num.
1686         * c-lang.c: Include tree-inline.h
1687         (LANG_HOOKS_EXPAND_DECL,
1688         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
1689         LANG_HOOKS_TREE_INLINING_WALK_SUBTREES,
1690         LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P,
1691         LANG_HOOKS_GIMPLIFY_EXPR, LANG_HOOKS_TYPES_COMPATIBLE_P): Define.
1692         (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
1693         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS): Remove.
1694         (c_types_compatible_p): New.
1695         * c-mudflap.c: New file.
1696         * c-objc-common.c: Include tree-mudflap.h
1697         (start_cdtor, finish_cdtor): Collapse
1698         together into
1699         (build_cdtor): ...here.  Update to construct a complete tree
1700         for the function.  No need to call push_scope, pop_scope, or
1701         clear_last_expr, or set current_function_cannot_inline.
1702         (c_missing_noreturn_ok_p): Change prototype to return
1703         bool.
1704         (c_objc_common_init): Don't set lang_missing_noreturn_ok_p.
1705         * c-opts.c (c_common_handle_option): Move handling of -fdump- to
1706         opts.c.
1707         (c_common_post_options): Don't ever use rtl inlining.
1708         * c-parse.in: Use EXPR_LOCUS instead of STMT_LINENO.
1709         * c-pragma.c (handle_pragma_redefine_extname): Define
1710         always.
1711         (init_pragma): Activate #pragma redefine_extname for mudflap.
1712         * c-pretty-print.c (pp_c_statement): Remove FILE_STMT.
1713         (pp_c_initializer): Accept any type CONSTRUCTOR.
1714         (pp_c_initializer_list): Fix code expectations for VECTOR_TYPE and
1715         COMPLEX_TYPE.
1716         (decl_name_str): New local function.
1717         (pp_c_direct_declarator): Call it.
1718         (pp_c_primary_expression): Call it.
1719         (pp_c_id_expression): Call it.
1720         (pp_c_statement): Call it.
1721         (print_c_tree): Create new pp object.
1722         * c-pretty-print.h (pp_c_tree_decl_identifier,
1723         print_c_tree): Declare.
1724         * c-semantics.c: Include langhooks.h
1725         (lang_expand_stmt, lang_expand_decl_stmt,
1726         find_reachable_label_1, find_reachable_label,
1727         expand_unreachable_if_stmt, expand_unreachable_stmt,
1728         genrtl_do_stmt_1): Remove.
1729         (begin_stmt_tree): Don't check for changed filename.
1730         Call annotate_with_locus.
1731         (finish_stmt_tree): Don't set line for end of function.
1732         (build_stmt): Don't check type nodes for
1733         side effects.
1734         (build_stmt): Set TREE_SIDE_EFFECTS.
1735         Set EXPR_LOCUS instead of STMT_LINENO.
1736         (lang_expand_stmt, lang_expand_decl_stmt,
1737         expand_cond, genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
1738         genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
1739         genrtl_while_stmt, genrtl_do_stmt_1, genrtl_do_stmt,
1740         genrtl_return_stmt, genrtl_for_stmt, genrtl_break_stmt,
1741         genrtl_continue_stmt, genrtl_scope_stmt, genrtl_switch_stmt,
1742         genrtl_case_label, genrtl_compound_stmt, genrtl_asm_stmt,
1743         genrtl_cleanup_stmt, expand_stmt, find_reachable_label,
1744         find_reachable_label_1, expand_unreachable_if_stmt,
1745         expand_unreachable_stmt): Remove.
1746         (prep_stmt): Use EXPR_LOCUS instead of STMT_LINENO.
1747         * c-simplify.c: New file.
1748         * c-tree.h (C_LANG_TREE_NODE_CHAIN_NEXT): Define.
1749         (struct lang_type): Add fields enum_min and enum_max.
1750         (c_expand_decl_stmt, c_missing_noreturn_ok_p): Remove.
1751         (c_expand_decl, c_missing_noreturn_ok_p,
1752         c_types_compatible_p): Declare.
1753         * c-typeck.c (tagged_types_tu_compatible_p): Allow for
1754         compiler-generated TYPE_DECLs without a DECL_ORIGINAL_TYPE.
1755         (default_function_array_conversion): Rely on build to
1756         set TREE_CONSTANT.
1757         (parser_build_binary_op, pointer_diff): Likewise.
1758         (build_unary_op, build_binary_op): Likewise.
1759         (build_array_ref):
1760         (build_external_ref): Set TREE_INVARIANT.
1761         (build_c_cast, pop_init_level): Likewise.
1762         (process_init_element): Use ASM_VOLATILE_P.
1763         (build_asm_expr): Adapt to GENERIC/GIMPLE syntax.
1764         (c_finish_case): Call c_do_switch_warnings.
1765         * c.opt (fdump-): Remove.
1766         * calls.c (try_to_integrate): Remove.
1767         (prepare_call_address): Replace fndecl arg with a
1768         precomputed static chain value.
1769         (emit_call_1): New argument for full call expr.
1770         (flags_from_decl_or_type): Call special_function_p.
1771         (initialize_argument_information): Add argument
1772         may_tailcall.
1773         (purge_reg_equiv_notes): New.
1774         (expand_call): Do not try to expand calls inline.
1775         (fixup_tail_calls): New.
1776         * cfg.c: Include timevar.h and ggc.h.
1777         (bb_pool, edge_pool): Remove.
1778         (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Declare.
1779         (entry_exit_blocks): Remove.
1780         (rbi_pool): Declare.
1781         (init_flow): Do not create pools.
1782         Allocate entry/exit block.
1783         (free_edge, alloc_block, expunge_block, unchecked_make_edge): Use GGC.
1784         (alloc_rbi_pool, free_rbi_pool, initialize_bb_rbi): New.
1785         (unlink_block): Clear b->prev_bb and b->next_bb.
1786         (compact_blocks): Clear all slots of BASIC_BLOCK array.
1787         (dump_flow_info): Work on trees too.
1788         (dump_cfg_bb_info): New.
1789         (brief_dump_cfg): New.
1790         * cfganal.c (need_fake_edge_p, flow_call_edges_add): Remove.
1791         (find_edge): New.
1792         * cfgbuild.c (rtl_make_eh_edge): Rename from
1793         make_eh_edge.  Update all users.
1794         (find_basic_blocks): Don't call VARRAY_FREE on
1795         basic_block_info.
1796         * cfgcleanup.c (outgoing_edges_match): Initialize newpos1
1797         and newpos2.
1798         (delete_unreachable_blocks): Return changed status.
1799         (merge_seq_blocks): New.
1800         * cfghooks.c: Include tree-flow.h
1801         (tree_register_cfg_hooks, ir_type): New.
1802         (redirect_edge_and_branch): Change return type to edge.
1803         (predict_edge, predicted_by_p, can_duplicate_block_p,
1804         duplicate_block, block_ends_with_call_p,
1805         block_ends_with_condjump_p, flow_call_edges_add): New.
1806         * cfghooks.h (redirect_edge_and_branch): Change return
1807         type to edge.
1808         (predict_edge, predicted_by_p, can_duplicate_block_p,
1809         duplicate_block, block_ends_with_call_p,
1810         block_ends_with_condjump_p, flow_call_edges_add): Declare.
1811         (redirect_edge_and_branch): Change return type to edge.
1812         (struct cfg_hooks): Add fields block_ends_with_call_p,
1813         block_ends_with_condjump_p, flow_call_edges_add,
1814         predict_edge, predicted_by_p, can_duplicate_block_p and
1815         duplicate_block.
1816         (tree_cfg_hooks, ir_type, tree_register_cfg_hooks): Declare.
1817         * cfglayout.c (cfg_layout_pool, cfg_layout_initialize_rbi): Removed.
1818         (fixup_reorder_chain): Use initialize_bb_rbi.
1819         (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Hookized.
1820         (cfg_layout_initialize): Use cfg.c rbi pool manipulation functions.
1821         (can_copy_bbs_p, copy_bbs): Use cfghooks for bb duplication.
1822         (insn_locators_initialize): Use new info about blocks.
1823         * cfglayout.h (typedef struct reorder_block_def): Moved to
1824         basic_block.h.
1825         (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Declaration
1826         removed.
1827         * cfgloop.c: Include tree.h and tree-flow.h.
1828         * cfgloop.h (create_loop_notes): Declare.
1829         * cfgloopmanip.c (create_loop_notes): New.
1830         * cfgrtl.c (cfg_layout_create_basic_block): Use initialize_bb_rbi.
1831         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Fill in can_duplicate_block_p
1832         and duplicate_block fields.
1833         (create_basic_block_structure): Don't look at
1834         RTX_INTEGRATED_P.
1835         (rtl_block_ends_with_call_p): New.
1836         (rtl_block_ends_with_condjump_p): New.
1837         (need_fake_edge_p): Moved from cfganal.c.
1838         (rtl_flow_call_edges_add): Moved from cfganal.c (flow_call_edges_add).
1839         (rtl_cfg_hooks): Add rtl_block_ends_with_call_p,
1840         rtl_block_ends_with_condjump_p, rtl_flow_call_edges_add.
1841         (cfg_layout_rtl_cfg_hooks): Ditto.
1842         * cgraph.c (cgraph_mark_reachable_node): Don't force nested
1843         functions to be reachable.
1844         * cgraphunit.c (decide_is_function_needed):
1845         * cgraphunit.c (decide_is_function_needed): Nested functions of extern
1846         inline functions don't need to be output.
1847         (cgraph_assemble_pending_functions): Don't do anything
1848         special for nested functions.
1849         (cgraph_mark_functions_to_output): Likewise.
1850         (cgraph_finalize_function): Don't zap DECL_STRUCT_FUNCTION.
1851         (cgraph_analyze_function): Use estimate_num_insns.
1852         (cgraph_mark_functions_to_output): Likewise.
1853         (cgraph_estimate_growth, cgraph_clone_inlined_nodes): Likewise.
1854         (cgraph_expand_function): Allow functions to not be
1855         emitted.
1856         (cgraph_remove_unreachable_nodes):
1857         (cgraph_recursive_inlining_p): Simplify.
1858         (lookup_recursive_calls,
1859         cgraph_decide_recursive_inlining): New.
1860         (cgraph_decide_inlining_*): Update calls of
1861         cgraph_mark_inline.
1862         * combine.c (get_pos_from_mask): Always set *plen.
1863         * common.opt (fdump-, fmudflap, fmudflapth, fmudflapir,
1864         ftree-based-profiling, ftree-ccp, ftree-ch,
1865         ftree-combine-temps, ftree-copyrename, ftree-dce,
1866         ftree-dominator-opts, ftree-dse, ftree-loop-optimize,
1867         ftree-points-to, ftree-pre, ftree-sra, ftree-ter,
1868         ftree-lrs): Add.
1869         * config.in (HAVE_LD_PIE, HAVE_BANSHEE, PREFIX_INCLUDE_DIR):
1870         Undefine.
1871         * configure.ac: Add --enable-tree-browser option.
1872         Add --with-libbanshee option.
1873         Add GMPLIBS and GMPINC.
1874         * configure: Regenerate.
1875         * coverage.c (tree_ctr_tables): New.
1876         (coverage_counter_alloc): Use it.
1877         (build_ctr_info_value): Ditto.
1878         (coverage_counter_ref): Ditto.  Rename to rtl_coverage_counter_ref.
1879         (tree_coverage_counter_ref): New.
1880         * coverage.h (coverage_counter_ref): Remove declaration.
1881         (rtl_coverage_counter_ref): Declare.
1882         (tree_coverage_counter_ref): Declare.
1883         * cppexp.c (append_digit): Rearrange unsignedp/overflow setting.
1884         (eval_token, num_binary_op, num_part_mul, num_div_op): Likewise.
1885         * cse.c (fold_rtx): Do not handle CONSTANT_P_RTX.
1886         (struct cse_basic_block_data): Rename enum values to not
1887         conflict with profile.h; update all uses.
1888         * dbxout.c (dbxout_symbol_location): Don't mention integrate.c
1889         in comments.
1890         * defaults.h (TRAMPOLINE_ALIGNMENT): Move from function.c.
1891         * diagnostic.h (debug_output_buffer, dump_generic_node,
1892         print_generic_stmt, print_generic_stmt_indented,
1893         print_generic_expr, print_generic_decl,
1894         debug_generic_expr, debug_generic_stmt, debug_c_tree):
1895         Declare.
1896         * dominance.c: Cache immediate dominators.
1897         * domwalk.c: New file.
1898         * domwalk.h: New file.
1899         * dwarf2out.c (is_fortran): Support DW_LANG_Fortran95.
1900         (gen_subprogram_die): Generate a DIE for a named
1901         return value.
1902         (loc_descriptor_from_tree): Treat RESULT_DECL like VAR_DECL.
1903         (add_location_or_const_value_attribute): Likewise.
1904         (add_bound_info): Likewise.
1905         (gen_decl_die): Likewise.
1906         * emit-rtl.c (maybe_set_first_label_num): New.
1907         (copy_most_rtx): Don't copy the integrated flag.
1908         Copy the new return_val flag.
1909         * et-forest.c (MAX_NODES): Define.
1910         (record_path_before_1): Abort if len is greater than
1911         MAX_NODES.
1912         * except.c (gen_eh_region, gen_eh_region_cleanup, gen_eh_region_try,
1913         gen_eh_region_catch, gen_eh_region_allowed,
1914         gen_eh_region_must_not_throw, get_eh_region_number,
1915         get_eh_region_may_contain_throw, get_eh_region_tree_label,
1916         set_eh_region_tree_label, expand_resx_expr): New.
1917         (expand_eh_region_start, expand_start_catch): Use them.
1918         (expand_end_catch): Tidy.
1919         (note_eh_region_may_contain_throw): Take region argument.
1920         (note_current_region_may_contain_throw): New.
1921         (get_exception_filter): Export.
1922         (collect_eh_region_array): Export.
1923         (remove_unreachable_regions): Check ERT_TRY based on reachability
1924         of catches, not reachability of continue_label.  Never remove
1925         ERT_MUST_NOT_THROW regions.
1926         (collect_rtl_labels_from_trees): New.
1927         (convert_from_eh_region_ranges): Use it.
1928         (connect_post_landing_pads): Handle dying cleanups.
1929         (struct reachable_info): Add callback data.
1930         (add_reachable_handler): Invoke the callback.
1931         (foreach_reachable_handler): New.
1932         (reachable_handlers): Use it.
1933         (arh_to_landing_pad, arh_to_label): New.
1934         (can_throw_internal_1): Split out from can_throw_internal.
1935         (can_throw_external_1): Similarly.
1936         * except.h: Update.
1937         * explow.c (emit_stack_save): Remove savearea mode check.
1938         (update_nonlocal_goto_save_area): New.
1939         (allocate_dynamic_stack_space): Use it.
1940         (probe_stack_range): Never emit loop notes.
1941         * expmed.c (extract_fixed_bit_field): Always propagate the
1942         target for the shift if it is a REG.
1943         * expr.c: Include tree-iterator.h
1944         (is_zeros_p): Remove.
1945         (categorize_ctor_elements_1, categorize_ctor_elements): New.
1946         (count_type_elements): New.
1947         (mostly_zeros_p): Use them.
1948         (expr_wfl_stack): Remove.
1949         (convert_move): Do nothing if to and from are the same.
1950         (emit_block_move_via_loop): Don't emit LOOP notes.
1951         (emit_move_insn): Don't handle CONSTANT_P_RTX.
1952         (emit_move_insn_1): Don't generate inline warnings.
1953         (expand_vars, expand_var): Split from ...
1954         (expand_expr_1): ... here.
1955         (expand_expr_real, expand_expr_real_1):  Use new macros
1956         EXPR_LOCATION and EXPR_HAS_LOCATION.
1957         * expr.h (simplify_builtin_fputs,
1958         simplify_builtin_strcpy, simplify_builtin_strncpy,
1959         expand_var, fixup_tail_calls,
1960         update_nonlocal_goto_save_area): Declare.
1961         (lookup_static_chain, expand_inline_function,
1962         mark_seen_cases): Remove.
1963         (prepare_call_address): Change type of 2nd argument to
1964         rtx.
1965         * final.c (profile_function): Update static chain test.
1966         (final): Don't look at RTX_INTEGRATED_P.
1967         * flags.h (flag_mudflap, flag_mudflap_threads,
1968         flag_mudflap_ignore_reads, flag_tree_pre, flag_tree_ccp,
1969         flag_tree_dce, flag_tree_combine_temps,
1970         flag_tree_live_range_split, flag_tree_dom, flag_tree_ch,
1971         flag_tree_dse, flag_tree_sra, flag_tree_copyrename,
1972         flag_tree_points_to): Declare.
1973         (enum pta_type): Declare.
1974         * flow.c (lang_missing_noreturn_ok_p): Remove.
1975         (check_function_return_warnings): Remove.
1976         (update_life_info): Update comments.
1977         (free_basic_block_vars): Don't call VARRAY_FREE for
1978         basic_block_info.
1979         (regno_uninitialized): Remove.
1980         * fold-const.c (int_const_binop): Make extern.
1981         (non_lvalue): Rely on build to set TREE_CONSTANT.
1982         (operand_equal_p): Replace only_const argument with
1983         flags.  Allow pure functions if OEP_PURE_SAME.
1984         (fold): Use OEP_ONLY_CONST.
1985         (invert_truthvalue) <NOP_EXPR> Break if argument is of
1986         boolean type.
1987         (fold_relational_hi_lo,
1988         nondestructive_fold_binary_to_constant,
1989         nondestructive_fold_unary_to_constant,
1990         fold_read_from_constant_string): New.
1991         * function.c (struct function): Remove calls_constant_p.
1992         (current_function_calls_constant_p): Remove.
1993         (inline_function_decl): Remove.
1994         (put_var_into_stack): Don't use it.
1995         (fix_lexical_addr): Likewise.
1996         (inline_function_decl): Remove extern declaration.
1997         (TRAMPOLINE_ALIGNMENT): Move to defaults.h.
1998         (trampolines_created): Move to varasm.c.
1999         (free_after_compilation): Update for removed fields.
2000         (allocate_struct_function): Likewise.
2001         (delete_handlers, lookup_static_chain): Remove.
2002         (fix_lexical_addr): Don't consider non-local variable refs.
2003         (trampoline_address): Remove.
2004         (round_trampoline_addr): Move to builtins.c.
2005         (adjust_trampoline_addr): Remove.
2006         (expand_function_start): Update for changes to static chain
2007         and nonlocal goto handling.
2008         (initial_trampoline): Move to varasm.c.
2009         (expand_function_end): Don't build trampolines or kill
2010         unreferenced nonlocal goto labels.
2011         (free_after_compilation): Don't set it.
2012         (expand_function_end): Likewise.
2013         (setjmp_vars_warning): Rename from
2014         uninitialized_vars_warning, remove uninitialized vars warning.
2015         (uninitialized_vars_warning): Remove old comment
2016         and check for DECL_INITIAL, replace with a check of TREE_NO_WARNING
2017         and do not call the langhook.
2018         (expand_function_start, expand_function_end): Don't do
2019         function instrumentation here.
2020         (clear_block_marks): Rename from reorder_blocks_0, export.
2021         (blocks_nreverse): Export.
2022         (uninitialized_vars_warning): Use DECL_RTL_SET_P to test for presence
2023         of rtl.
2024         (reset_block_changes, record_block_change, finalize_block_changes,
2025         check_block_change, free_block_changes): New functions.
2026         (assign_parms): Setting of current_function_stdarg
2027         moved ...
2028         (allocate_struct_function): ... here.
2029         * function.h (struct function): Remove x_nonlocal_labels,
2030         x_nonlocal_goto_handler_slots, x_nonlocal_goto_stack_level,
2031         x_context_display, x_trampoline_list, needs_context.
2032         Add static_chain_decl, nonlocal_goto_save_area.
2033         (struct function): Remove x_clobber_return_insn.
2034         Add tail_call_emit field, last_label_uid,
2035         unexpanded_var_list, dont_emit_block_notes,
2036         ib_boundaries_block, function_end_locus and saved_tree/saved_args.
2037         (clear_block_marks): Declare.
2038         * gcc.c (MFWRAP_SPEC, MFLIB_SPEC): Add -fmudflapth support.
2039         (mfwrap_spec, mflib_spec): Declare.
2040         (cpp_unique_options, cc1_options): Ditto.
2041         (default_compilers): Add .F and .f90.
2042         (static_specs): Add mfwrap and mflib.
2043         * gcse.c (want_to_gcse_p, gcse_constant_p): Don't handle
2044         CONSTANT_RTX_P.
2045         (reg_used_on_edge, reg_killed_on_edge, bypass_block):
2046         Update to match insns field in struct edge_def.
2047         * gdbinit.in (pgs, pge): Define.
2048         * genattrtab.c (ATTR_PERMANENT_P): Use the return_val flag
2049         instead of the integrated flag.
2050         * gengtype-lex.l (IWOrD): Add HOST_WIDEST_INT
2051         * gengtype-yacc.y (bitfieldlen): Add empty action.
2052         (struct_fields): Accept unnamed bitfields.
2053         (bitfieldlen): Split from ...
2054         (bitfieldopt): ... here.
2055         * gengtype.c (ifiles): Add tree-alias-type.h and
2056         tree-flow.h.
2057         * genrecog.c (validate_pattern): Do not handle
2058         CONSTANT_P_RTX.
2059         * gimple-low.c: New file.
2060         * gimplify.c: New file.
2061         * haifa-sched.c (priority): Do not handle CONSTANT_P_RTX.
2062         (restore_line_notes): Do not set RTX_INTEGRATED_P.
2063         * ifcvt.c (dead_or_predicable): Initialize local variable
2064         'earliest'.
2065         * input.h (expr_wfl_stack): Remove.
2066         * integrate.c (INTEGRATE_THRESHOLD): Remove.
2067         (setup_initial_hard_reg_value_integration): Likewise.
2068         (initialize_for_inline): Likewise.
2069         (note_modified_parmregs): Likewise.
2070         (integrate_parm_decls): Likewise.
2071         (process_reg_param): Likewise.
2072         (save_parm_insns): Likewise.
2073         (copy_insn_list): Likewise.
2074         (copy_insn_notes): Likewise.
2075         (compare_blocks): Likewise.
2076         (find_block): Likewise.
2077         (inlining): Likewise.
2078         (function_cannot_inline_p): Likewise.
2079         (parmdecl_map): Likewise.
2080         (in_nonparam_insns): Likewise.
2081         (save_for_inline): Likewise.
2082         (FIXED_BASE_PLUS): Likewise.
2083         (expand_inline_function): Likewise.
2084         (copy_rtx_and_substitute): Don't look at map->integrating,
2085         map->inline_target, and inlining, since we are never copying
2086         for integrating.
2087         Don't abort on RTX_INTEGRATED_P.
2088         (old_fun): Remove.
2089         (output_inline_function): Remove.
2090         * integrate.h (struct inline_map): Remove fields integrating,
2091         block_map, leaf_reg_map, inline_target, and local_return_label.
2092         * jump.c (next_nonnote_insn_in_loop, duplicate_loop_exit_test,
2093         copy_loop_headers, never_reached_warning): Removed.
2094         (any_uncondjump_p): Reject nonlocal goto.
2095         * langhooks-def.h (lhd_types_compatible_p,
2096         lhd_expand_decl, lhd_gimplify_expr): Declare.
2097         (LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
2098         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
2099         LANG_HOOKS_FUNCTION_LEAVE_NESTED,
2100         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
2101         LANG_HOOKS_GIMPLIFY_EXPR,
2102         LANG_HOOKS_GIMPLE_BEFORE_INLINING,
2103         LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
2104         LANG_HOOKS_GIMPLIFY_EXPR,
2105         LANG_HOOKS_GIMPLE_BEFORE_INLINING): Define.
2106         (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_START,
2107         LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_RTL_EXPAND_END,
2108         LANG_HOOKS_FUNCTION_LEAVE_NESTED,
2109         LANG_HOOKS_RTL_EXPAND_INITIALIZER,
2110         LANG_HOOKS_DECL_UNINIT,
2111         LANG_HOOKS_RTL_EXPAND_INITIALIZER): Remove.
2112         * langhooks.c: Include tree-simple.h.
2113         (lhd_expand_decl): New.
2114         (lhd_types_compatible_p): New.
2115         (lhd_decl_uninit): Remove.
2116         (lhd_gimplify_expr): New.
2117         * langhooks.h (struct lang_hooks_for_rtl_expansion):
2118         Remove.
2119         (struct lang_hooks_for_functions): Add field
2120         missing_noreturn_ok_p.
2121         (struct lang_hooks): Add field expand_decl,
2122         types_compatible_p, gimplify_expr and
2123         gimple_before_inlining.
2124         Remove fields decl_uninit and rtl_expand
2125         * opts.c (decode_options): Set flag_tree_ccp,
2126         flag_tree_dce, flag_tree_dom, flag_tree_dse,
2127         flag_tree_pre, flag_tree_ter,
2128         flag_tree_live_range_split, flag_tree_sra,
2129         flag_tree_copyrename and flag_tree_ch at -O1 and higher.
2130         (common_handle_option): Handle OPT_fdump_, OPT_fmudflap,
2131         OPT_fmudflapth, OPT_fmudflapir,
2132         OPT_ftree_based_profiling, OPT_ftree_ccp, OPT_ftree_dce,
2133         OPT_ftree_combine_temps, OPT_ftree_ter, OPT_ftree_lrs,
2134         OPT_ftree_dominator_opts, OPT_ftree_copyrename,
2135         OPT_ftree_ch, OPT_ftree_dse, OPT_ftree_sra,
2136         OPT_ftree_points_to_ and OPT_ftree_pre.
2137         * output.h (regno_uninitialized, find_basic_blocks,
2138         cleanup_cfg, delete_unreachable_blocks,
2139         check_function_return_warnings): Remove.
2140         * params.def (PARAM_MAX_INLINE_INSNS_RECURSIVE,
2141         PARAM_MAX_INLINE_INSNS_RECURSIVE_AUTO,
2142         PARAM_MAX_INLINE_RECURSIVE_DEPTH,
2143         PARAM_MAX_INLINE_RECURSIVE_DEPTH_AUTO,
2144         PARAM_GLOBAL_VAR_THRESHOLD, PARAM_MAX_ALIASED_VOPS):
2145         * params.h (GLOBAL_VAR_THRESHOLD, MAX_ALIASED_VOPS):
2146         Define.
2147         * passes.c (rest_of_decl_compilation):
2148         (rest_of_handle_sibling_calls): Remove.
2149         (rest_of_handle_inlining): Remove.
2150         (rest_of_handle_gcse): Do not run
2151         purge_builtin_constant_p.
2152         (rest_of_compilation): Update.
2153         Do not call copy_loop_headers.
2154         Do rtl-based profiling only when
2155         !flag_tree_based_profiling.  Register rtl-based profiling
2156         hooks.
2157         * predict.c:  Include tree-flow.h, ggc.h, tree-dump.h
2158         (predicted_by_p): Rename to ...
2159         (rtl_predicted_by_p): .. this one; make global
2160         (tree_predicted_by_p): New.
2161         (dump_prediction): Add FILE argument.
2162         (predict_edge): Rename to ...
2163         (rtl_predict_edge): .. this one.
2164         (tree_predict_edge): New.
2165         (combine_predictions_for_insn): Update calls of predict_edge.
2166         (predict_loops): Break out from ...
2167         (estimate_probability): ... here; update comments; move updating
2168         of unknown probabilities from ...
2169         (estimate_bb_frequencies): ... here.
2170         (combine_predictions_for_bb): New.
2171         (tree_predict_by_opcode): New.
2172         (tree_estimate_probability): New.
2173         * predict.def (PRED_TREE_POINTER, PRED_TREE_OPCODE_POSITIVE,
2174         PRED_TREE_OPCODE_NONEQUAL, PRED_TREE_FPOPCODE): New predictors.
2175         * predict.h: Add include guard.
2176         (predict_edge, predict_edge_def): Move prototypes to basic_block.h
2177         * pretty-print.c (pp_write_text_to_stream): Make extern.
2178         * pretty-print.h (pp_write_text_to_stream): Declare.
2179         * print-rtl.c (print_rtx): Don't print the integrated flag.
2180         Print the return_val flag.
2181         * print-tree.c: Use TREE_FILENAME and TREE_LINENO instead
2182         of DECL_SOURCE_FILE and DECL_SOURCE_LINE respectively.
2183         Remove support for EXPR_WITH_FILE_LOCATION nodes.
2184         (print_node): Print TREE_INVARIANT and TREE_VISITED.
2185         * profile.c: Include cfghooks.h, tree-flow.h.
2186         (profile_hooks): New.
2187         (profile_dump_file): New.
2188         (instrument_edges): Use hooks instead of RTL-specific code.
2189         (instrument_values): Ditto.
2190         (get_exec_counts): Ditto.
2191         (compute_branch_probabilities): Ditto.
2192         (compute_value_histograms): Ditto.
2193         (branch_prob): Ditto.
2194         (find_spanning_tree): Ditto.
2195         (end_branch_prob): Ditto.
2196         (gen_edge_profiler): Move to rtl-profile.c (rtl_gen_edge_profiler).
2197         (gen_interval_profiler): Ditto (rtl_gen_interval_profiler).
2198         (gen_pow2_profiler): Ditto (rtl_gen_pow2_profiler).
2199         (gen_one_value_profiler): Ditto (rtl_gen_one_value_profiler).
2200         (tree_register_profile_hooks): New.
2201         (rtl_register_profile_hooks): New.
2202         * ra-rewrite.c (rewrite_program): Clear variable info.
2203         * recog.c (immediate_operand): Do not handle CONSTANT_P_RTX.
2204         * regs.h: Add include guards.
2205         * reload.c (decompose): Clear val using memset.
2206         * rtl.def (CONSTANT_P_RTX): Remove.
2207         * rtl.h (CONSTANT_P): Do not handle CONSTANT_P_RTX.
2208         (copy_loop_headers): Remove.
2209         (struct rtx_def): Replace the integrated flag with the
2210         return_val flag.
2211         (maybe_set_first_label_num): Declare.
2212         (init_branch_prob): Move declaration to value-prof.h.
2213         (end_branch_prob): Ditto.
2214         (branch_prob): Ditto.
2215         (never_reached_warning): Don't declare it.
2216         * rtlanal.c (get_related_value): Initialize get_jump_table_offset
2217         (hoist_insn_to_edge): Update to match field insns in
2218         struct edge_def.
2219         * sbitmap.c (sbitmap_realloc): New.
2220         * sbitmap.h (sbitmap_realloc): Declare.
2221         * sibcall.c: Remove file.
2222         * simplify-rtx.c (simplify_rtx): Do not handle
2223         CONSTANT_P_RTX.
2224         * stmt.c (parse_output_constraint): Don't warn for read-write
2225         memory operand.
2226         (tail_recursion_args): Use types_compatible_p langhook.
2227         (force_label_rtx): Don't look at inline_function_decl.
2228         (label_rtx): Set LABEL_PRESERVE_P appropriately.
2229         (expand_label): Handle DECL_NONLOCAL and FORCED_LABEL.
2230         (declare_nonlocal_label): Remove.
2231         (expand_goto): Don't handle nonlocal gotos.
2232         (expand_nl_handler_label): Remove.
2233         (expand_nl_goto_receivers): Remove.
2234         (expand_end_bindings): Don't expand_nl_goto_receivers.  Use
2235         update_nonlocal_goto_save_area.
2236         (expand_expr_stmt_value): Check TREE_NO_WARNING.
2237         (warn_if_unused_value): Likewise.
2238         (expand_start_loop, expand_loop_continue_here,
2239         expand_end_loop): Don't create loop notes.
2240         (all_cases_count, BITARRAY_TEST, BITARRAY_SET,
2241         mark_seen_cases, check_for_full_enumeration_handling): Remove.
2242         (expand_end_case_type): Don't do warn_switch handling.
2243         (pushcase, pushcase_range) Update add_case_node calls.
2244         (add_case_node): Add dont_expand_label argument.
2245         (same_case_target_p): Don't search rtl.
2246         (expand_start_bindings_and_block, expand_end_bindings):
2247         Don't emit block notes when dont_emit_block_notes.
2248         (using_eh_for_cleanups_p): Export.
2249         (expand_return): Allow any typed rhs.
2250         (expand_stack_alloc): New.
2251         (expand_stack_save, expand_stack_restore): New.
2252         (containing_blocks_have_cleanups_or_stack_level): New
2253         function.
2254         (asm_op_is_mem_input): New fn.
2255         (expand_asm_expr): New fn.
2256         (warn_if_unused_value): Check operand 0 of SAVE_EXPR
2257         nodes.
2258         * stor-layout.c (layout_type): Just return if type is
2259         error_mark_node.
2260         (update_alignment_for_field): Export.
2261         (variable_size): We don't care about global_bindings_p if
2262         the frontend doesn't want a list of the expressions.
2263         * system.h: Poison INTEGRATE_THRESHOLD.
2264         * timevar.def (TV_TREE_GIMPLIFY, TV_TREE_EH, TV_TREE_CFG,
2265         TV_TREE_CLEANUP_CFG, TV_TREE_PTA, TV_TREE_MAY_ALIAS,
2266         TV_TREE_INSERT_PHI_NODES, TV_TREE_SSA_REWRITE_BLOCKS,
2267         TV_TREE_SSA_OTHER, TV_TREE_OPS,
2268         TV_TREE_SSA_DOMINATOR_OPTS, TV_TREE_SRA, TV_TREE_CCP,
2269         TV_TREE_SPLIT_EDGES, TV_TREE_PRE, TV_TREE_PHIOPT,
2270         TV_TREE_FORWPROP, TV_TREE_DCE, TV_TREE_CD_DCE,
2271         TV_TREE_DSE, TV_TREE_LOOP, TV_TREE_CH,
2272         TV_TREE_SSA_TO_NORMAL, TV_TREE_SSA_TO_NORMAL,
2273         TV_TREE_NRV, TV_TREE_COPY_RENAME, TV_TREE_SSA_VERIFY,
2274         TV_TREE_STMT_VERIFY, TV_DOM_FRONTIERS,
2275         TV_CONTROL_DEPENDENCES): Define.
2276         * toplev.c: Include tree-alias-common.h
2277         (current_file_decl, flag_mudflap, flag_mudflap_threads,
2278         flag_mudflap_ignore_reads, flag_tree_based_profiling,
2279         flag_tree_gvn, flag_tree_points_to, flag_tree_ccp,
2280         flag_tree_dce, flag_tree_ch, flag_tree_sra,
2281         flag_tree_combine_temps, flag_tree_ter,
2282         flag_tree_live_range_split, flag_tree_dom,
2283         flag_tree_copyrename, flag_tree_dse): Declare.
2284         (f_options): Add tree-based-profiling, tree-gvn,
2285         tree-pre, tree-ccp, tree-dce,
2286         tree-dominator-opts, tree-copyrename, tree-dse,
2287         tree-combine-temps, tree-ter, tree-lrs and tree-ch.
2288         (wrapup_global_declarations): Don't output nested inlined functions.
2289         (general_init): Call init_tree_optimization_passes.
2290         (process_options): Sorry for -ftree-based-profiling plus
2291         -ftest-coverage or -fprofile-values.
2292         * toplev.h (init_tree_optimization_passes,
2293         flag_tree_based_profiling): Declare.
2294         * tracer.c (tail_duplicate): Use cfghooks for bb duplication.
2295         * tree-alias-ander.c: New file.
2296         * tree-alias-ander.h: New file.
2297         * tree-alias-common.c: New file.
2298         * tree-alias-common.h: New file.
2299         * tree-alias-type.c: New file.
2300         * tree-alias-type.h: New file.
2301         * tree-browser.c: New file.
2302         * tree-browser.def: New file.
2303         * tree-cfg.c: New file.
2304         * tree-complex.c: New file.
2305         * tree-dfa.c: New file.
2306         * tree-dump.c (dump_enable_all): New.
2307         (dequeue_and_dump): Do not handle EXPR_WITH_FILE_LOCATION.
2308         (dump_node): Remove const from field suffix and swtch.
2309         (dump_files): Add null entry, .generic, .nested, .vcg,
2310         .xml and a match-all entry.
2311         (extra_dump_files, extra_dump_files_in_use,
2312         extra_dump_files_alloced): Declare
2313         (dump_option_value_info): Add raw, details, stats,
2314         blocks, vops, lineno, uid and all.
2315         (dump_register): New.
2316         (get_dump_file_info): New.
2317         (dump_begin): Call it.
2318         Do nothing for TDI_none.
2319         (dump_begin): Include phase number in dump filename.
2320         (dump_enable_all): New.
2321         (dump_switch_p_1): Split out from dump_switch_p.
2322         (dump_switch_p): Handle extra_dump_files.
2323         Start our scan at TDI_none + 1.
2324         If -fdump-tree-all was given, call dump_enable_all.
2325         * tree-dump.h: Include splay-tree.h.
2326         (dump_function, dump_function_to_file, dump_register):
2327         Declare.
2328         * tree-eh.c: New file.
2329         * tree-flow-inline.h: New file.
2330         * tree-flow.h: New file.
2331         * tree-inline.c: Re-write to handle inlining on GIMPLE.
2332         * tree-inline.h (walk_tree,
2333         walk_tree_without_duplicates): Move to tree.h.
2334         (estimate_num_insns): Declare.
2335         * tree-into-ssa.c: New file.
2336         * tree-iterator.c: New file.
2337         * tree-iterator.h: New file.
2338         * tree-mudflap.c: New file.
2339         * tree-mudflap.h: New file.
2340         * tree-nested.c: New file.
2341         * tree-nomudflap.c: New file.
2342         * tree-nrv.c: New file.
2343         * tree-optimize.c (dump_flags, vars_to_rename,
2344         in_gimple_form, all_passes, pass_gimple,
2345         pass_rebuild_bind, pass_all_optimizations, pass_del_cfg): Declare.
2346         (execute_gimple, execute_rebuild_bind,
2347         gate_all_optimizations, execute_del_cfg,
2348         register_one_dump_file, register_dump_files, dup_pass_1,
2349         init_tree_optimization_passes, execute_todo,
2350         execute_one_pass, execute_pass_list): New.
2351         (clear_decl_rtl): Remove.
2352         (tree_rest_of_compilation): Update to use tree
2353         optimizers.
2354         * tree-outof-ssa.c: New file.
2355         * tree-pass.h: New file.
2356         * tree-phinodes.c: New file.
2357         * tree-pretty-print.c: New file.
2358         * tree-profile.c: New file.
2359         * tree-simple.c: New file.
2360         * tree-simple.h: New file.
2361         * tree-sra.c: New file.
2362         * tree-ssa-alias.c: New file.
2363         * tree-ssa-ccp.c: New file.
2364         * tree-ssa-copy.c: New file.
2365         * tree-ssa-copyrename.c: New file.
2366         * tree-ssa-dce.c: New file.
2367         * tree-ssa-dom.c: New file.
2368         * tree-ssa-dse.c: New file.
2369         * tree-ssa-forwprop.c: New file.
2370         * tree-ssa-live.c: New file.
2371         * tree-ssa-live.h: New file.
2372         * tree-ssa-loop.c: New file.
2373         * tree-ssa-operands.c: New file.
2374         * tree-ssa-operands.h: New file.
2375         * tree-ssa-phiopt.c: New file.
2376         * tree-ssa-pre.c: New file.
2377         * tree-ssa.c: New file.
2378         * tree-ssanames.c: New file.
2379         * tree-tailcall.c: New file.
2380         * tree.c: Include tree-iterator.h, basic-block.h and
2381         tree-flow.h.
2382         (tree_node_kind): Add phi_nodes and ssa names.
2383         (tree_size): Handle PHI_NODE, EPHI_NODE, SSA_NAME,
2384         EUSE_NODE, EKILL_NODE, EEXIT_NODE and STATEMENT_LIST.
2385         (make_node_stat): Handle PHI_NODE and SSA_NAME.
2386         <'c'> Set TREE_INVARIANT.
2387         (copy_node_stat): Abort if trying to copy a
2388         STATEMENT_LIST.
2389         Clear TREE_VISITED.
2390         Clear annotation field.
2391         (build_constructor): Copy TREE_INVARIANT from vals.
2392         Don't clear TREE_CONSTANT.
2393         (expr_first, expr_last, expr_length): Remove.
2394         (staticp): Pass unknown component references to the language.
2395         (save_expr): Check TREE_INVARIANT instead of TREE_CONSTANT.
2396         (skip_simple_arithmetic): Likewise.
2397         (stabilize_reference_1): Likewise.
2398         (tree_node_structure): Handle PHI_NODE, EPHI_NODE,
2399         EUSE_NODE, EKILL_NODE, EEXIT_NODE, SSA_NAME and
2400         STATEMENT_LIST.
2401         (lhd_unsave_expr_now): Remove.
2402         (unsafe_for_reeval): Handle LABEL_EXPR and BIND_EXPR.
2403         (recompute_tree_invarant_for_addr_expr): New.
2404         (build1_stat): Clear EXPR_LOCUS and TREE_BLOCK.
2405         Call recompute_tree_invarant_for_addr_expr.
2406         Set TREE_INVARIANT accordingly.
2407         (build2_stat): Don't handle CALL_EXPR.
2408         (build3_stat): Don't call build2_stat for CALL_EXPRs.
2409         (build_expr_wfl): Remove.
2410         (annotate_with_file_line, annotate_with_locus): New.
2411         (simple_cst_equal): Call simple_cst_list_equal to compare
2412         CONSTRUCTOR_ELTS pointers.
2413         (iterative_hash_expr): Don't hash types associated
2414         with conversions.  Instead hash on the signedness of the
2415         toplevel object and the operand of the conversion.
2416         (dump_tree_statistics): Call ssanames_print_statistics
2417         and phinodes_print_statistics.
2418         (ephi_node_elt_check_failed, phi_node_elt_check_failed,
2419         add_var_to_bind_expr, build_empty_stmt, is_essa_node,
2420         needs_to_live_in_memory): New.
2421         (initializer_zerop): Handle VECTOR_CST.  Don't check
2422         AGGREGATE_TYPE_P for CONSTRUCTOR.
2423         * tree.def (FILTER_EXPR, CASE_LABEL_EXPR, RESX_EXPR,
2424         SSA_NAME, EUSE_NODE, EKILL_NODE, EPHI_NODE, EEXIT_NODE,
2425         PHI_NODE, CATCH_EXPR, EH_FILTER_EXPR, STATEMENT_LIST): Define.
2426         (GOTO_SUBROUTINE_EXPR): Change type to 's'.
2427         (CALL_EXPR): Add another operand.
2428         (EXPR_WITH_FILE_LOCATION): Remove.
2429         (SWITCH_EXPR): Add another operand.
2430         * tree.h: Update various comments.
2431         (union tree_ann_d): Forward declare.
2432         (struct tree_common): Add fields nowarning_flag,
2433         invariant_flag and visited.
2434         (EREF_NODE_CHECK, EPHI_NODE_ELT_CHECK,
2435         PHI_NODE_ELT_CHECK, EREF_NODE_CHECK, PHI_NODE_ELT_CHECK,
2436         EPHI_NODE_ELT_CHECK, TREE_BLOCK,
2437         STRIP_USELESS_TYPE_CONVERSION, CALL_EXPR_TAILCALL,
2438         TREE_NO_WARNING, FORCED_LABEL, TREE_INVARIANT,
2439         IS_EMPTY_STMT, EXPR_LOCUS, SET_EXPR_LOCUS, EXPR_FILENAME,
2440         EXPR_LINENO, EXPR_LOCATION, EXPR_HAS_LOCATION,
2441         EXIT_EXPR_COND, SWITCH_COND, SWITCH_BODY, SWITCH_LABELS,
2442         CASE_LOW, CASE_HIGH, CASE_LABEL, BIND_EXPR_VARS,
2443         BIND_EXPR_BODY, BIND_EXPR_BLOCK, GOTO_DESTINATION,
2444         ASM_STRING, ASM_OUTPUTS, ASM_INPUTS, ASM_CLOBBERS,
2445         ASM_INPUT_P, ASM_VOLATILE_P, COND_EXPR_COND,
2446         COND_EXPR_THEN, COND_EXPR_ELSE, LABEL_EXPR_LABEL,
2447         CATCH_TYPES, CATCH_BODY, EH_FILTER_TYPES,
2448         EH_FILTER_FAILURE, EH_FILTER_MUST_NOT_THROW,
2449         SSA_NAME_VAR, SSA_NAME_DEF_STMT, SSA_NAME_VERSION,
2450         SSA_NAME_OCCURS_IN_ABNORMAL_PHI, SSA_NAME_IN_FREE_LIST,
2451         PHI_RESULT, PHI_REWRITTEN, PHI_NUM_ARGS,
2452         PHI_ARG_CAPACITY, PHI_ARG_ELT, PHI_ARG_EDGE, PHI_ARG_DEF,
2453         EREF_PROCESSED, EREF_ID, EREF_NAME, EREF_STMT,
2454         EREF_RELOAD, EREF_SAVE, EREF_CLASS, EREF_INJURED,
2455         EREF_TEMP, EUSE_DEF, EUSE_PHIOP, EUSE_INSERTED,
2456         EUSE_LVAL, EPHI_NUM_ARGS, EPHI_ARG_CAPACITY,
2457         EPHI_ARG_ELT, EPHI_ARG_EDGE, EPHI_ARG_PRED, EPHI_ARG_DEF,
2458         EPHI_ARG_INJURED, EPHI_ARG_DELAYED_RENAME,
2459         EPHI_ARG_HAS_REAL_USE, EPHI_ARG_STOPS,
2460         EPHI_ARG_PROCESSED2, EPHI_IDENTITY, EPHI_IDENT_INJURED,
2461         EPHI_REP_OCCUR_KNOWN, EPHI_IDENTICAL_TO, EPHI_DOWNSAFE,
2462         EPHI_CANT_BE_AVAIL, EPHI_DEAD, EPHI_USES, EPHI_STOPS,
2463         TREE_VISITED, SSA_VAR_P, DECL_NUM_STMTS,
2464         DECL_HARD_REGISTER, DECL_PTA_ALIASVAR, LABEL_DECL_UID,
2465         DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL,
2466         STATEMENT_LIST_HEAD, STATEMENT_LIST_TAIL, TDF_RAW,
2467         TDF_DETAILS, TDF_STATS, TDF_BLOCKS, TDF_VOPS, TDF_LINENO,
2468         TDF_UID,): Define.
2469         (TREE_NO_UNUSED_WARNING, EXPR_WFL_EMIT_LINE_NOTE,
2470         EXPR_WFL_NODE, EXPR_WFL_FILENAME_NODE, EXPR_WFL_FILENAME,
2471         EXPR_WFL_LINECOL, EXPR_WFL_LINENO, EXPR_WFL_COLNO,
2472         EXPR_WFL_SET_LINECOL): Remove.
2473         (phi_node_elt_check_failed, ephi_node_elt_check_failed,
2474         make_phi_node, init_phinodes, fini_phinodes,
2475         release_phi_node, phinodes_print_statistics,
2476         init_ssanames, fini_ssanames, make_ssa_name,
2477         release_ssa_name, ssanames_print_statistics,
2478         annotate_with_file_line, build_empty_stmt,
2479         annotate_with_locus, expr_only, categorize_ctor_elements,
2480         count_type_elements, add_var_to_bind_expr, is_essa_node,
2481         expand_stack_alloc, expand_stack_save,
2482         expand_stack_restore, add_case_node, operand_equal_p,
2483         nondestructive_fold_unary_to_constant,
2484         nondestructive_fold_binary_to_constant,
2485         fold_read_from_constant_string, int_const_binop,
2486         strip_float_extensions, simplify_builtin, c_strlen,
2487         recompute_tree_invarant_for_addr_expr,
2488         needs_to_live_in_memory, make_vector,
2489         setjmp_vars_warning, update_alignment_for_field,
2490         expand_asm_expr, asm_op_is_mem_input,
2491         containing_blocks_have_cleanups_or_stack_level,
2492         create_artificial_label, gimplify_function_tree,
2493         get_name, unshare_expr, walk_tree,
2494         walk_tree_without_duplicates, in_gimple_form): Declare.
2495         (struct tree_exp): Add fields locus and block.
2496         (struct tree_ssa_name, struct edge_def, struct
2497         tree_phi_node, struct tree_eref_common, struct
2498         tree_euse_node, struct ephi_arg_d, struct tree_ephi_node,
2499         union alias_var_def, struct tree_statement_list_node,
2500         struct tree_statement_list, enum operand_equal_flag): Declare.
2501         (enum tree_node_structure_enum): Add TS_SSA_NAME,
2502         TS_PHI_NODE, TS_EPHI_NODE, TS_EUSE_NODE, TS_EREF_NODE,
2503         TS_STATEMENT_LIST.
2504         (union tree_node): Add fields ssa_name, phi, eref, ephi,
2505         euse and stmt_list.
2506         (function_cannot_inline_p, uninitialized_vars_warning,
2507         save_for_inline, output_inline_function, all_cases_count,
2508         check_for_full_enumeration_handling,
2509         declare_nonlocal_label): Remove.
2510         (enum tree_dump_index): Add TDI_none, TDI_tu,
2511         TDI_generic, TDI_nested, TDI_vcg, TDI_xml.
2512         * unroll.c (unroll_loop): Don't clear map->inline_target.
2513         * unwind-sjlj.c (uw_install_context): Make a proper static inline
2514         function.
2515         * value-prof.c (value_prof_hooks): New.
2516         (find_values_to_profile): Rename to rtl_find_values_to_profile.
2517         Move rtl-specific bits in from branch_prob.
2518         (value_profile_transformations): Rename to
2519         rtl_value_profile_transformations.
2520         (struct value_prof_hooks): New.
2521         (rtl_value_prof_hooks): New.
2522         (rtl_register_value_prof_hooks): New.
2523         (tree_find_values_to_profile): New stub.
2524         (tree_value_profile_transformations): New stub.
2525         (tree_value_prof_hooks): New stub.
2526         (tree_register_value_prof_hooks): New stub.
2527         (find_values_to_profile): New.
2528         (value_profile_transformations): New.
2529         * value-prof.h: Add multiple inclusion guard.
2530         (struct histogram_value): Change rtx fields to void *.
2531         (rtl_register_value_prof_hooks): New declaration.
2532         (tree_register_value_prof_hooks): New declaration.
2533         (find_values_to_profile): New declaration.
2534         (free_profiled_values): New declaration.
2535         (value_profile_transformations): New declaration.
2536         (struct profile_hooks): New declaration.
2537         (init_branch_prob): Declaration moved from rtl.h.
2538         (branch_prob): Declaration moved from rtl.h.
2539         (end_branch_prob): Declaration mooved from rtl.h.
2540         (tree_register_profile_hooks): New declaration.
2541         (rtl_register_profile_hooks): New declaration.
2542         (tree_profile_hooks): New declaration.
2543         (rtl_profile_hooks): New declaration.
2544         * varasm.c: Include tree-mudflap.h.
2545         (TRAMPOLINE_ALIGNMENT): Remove.
2546         (make_decl_rtl): Call mudflap_enqueue_decl.
2547         (assemble_static_space):
2548         (assemble_trampoline_template): Set and return
2549         TRAMPOLINE_ALIGNMENT.
2550         * varray.c (element): Add GENERIC_PTR_NOGC entry.
2551         Add entry for 'tree *'.
2552         Add entry for struct edge_def *.
2553         (varray_copy): New.
2554         * varray.h (enum varray_data_enum): Add
2555         VARRAY_DATA_GENERIC_NOGC, VARRAY_DATA_EDGE and
2556         VARRAY_DATA_TREE_PTR.
2557         (union varray_data_tag): Corresponding changes.
2558         (VARRAY_GENERIC_PTR_NOGC_INIT, VARRAY_EDGE_INIT,
2559         VARRAY_TREE_PTR_INIT, VARRAY_GENERIC_PTR_NOGC,
2560         VARRAY_EDGE, VARRAY_TREE_PTR,
2561         VARRAY_PUSH_GENERIC_PTR_NOGC, VARRAY_PUSH_EDGE,
2562         VARRAY_PUSH_TREE_PTR, VARRAY_TOP_GENERIC_PTR_NOGC,
2563         VARRAY_TOP_EDGE, VARRAY_TOP_TREE_PTR): Define.
2564
2565         * config/*/*: Various updates for changed macros, tree
2566         codes, etc.  Check ChangeLog.tree-ssa.
2567
2568         * doc/cfg.texi: New file.
2569         * doc/tree-ssa.texi: New file.
2570         * doc/c-tree.texi: Document new codes.
2571         * doc/gccint.texi: Include new files.
2572         * doc/install.texi: Document new features.
2573         * doc/invoke.texi: Document new switches.
2574         * doc/passes.texi: Document new passes.
2575         * doc/rtl.texi: Update changed RTL codes.
2576         * doc/sourcebuild.texi: Update build instructions.
2577         * doc/standards.texi: Document Fortran changes.
2578         * doc/tm.texi: Update.
2579
2580 2004-05-12  Paolo Bonzini  <bonzini@gnu.org>
2581
2582         Replace several arrays with a struct of arrays.
2583         * combine.c (struct reg_stat): New.
2584         (init_reg_last_arrays): Renamed to...
2585         (init_reg_last): ...this.  Callers adjusted.
2586         (reg_stat): New.
2587         (combine_instructions): Allocate it and use it.
2588         (reg_last_death, reg_last_set, reg_last_set_value,
2589         reg_last_set_label, reg_last_set_table_tick,
2590         reg_last_set_invalid, reg_nonzero_bits, reg_sign_bit_copies,
2591         reg_last_set_mode, reg_last_set_nonzero_bits,
2592         reg_last_set_sign_bit_copies): Replace throughout
2593         with items of reg_stat.
2594
2595 2004-05-11  Kaz Kojima  <kkojima@gcc.gnu.org>
2596
2597         PR optimization/15100
2598         * combine.c (distribute_notes): Don't create a dangling
2599         REG_LIBCALL/REG_RETVAL note.
2600
2601 2004-05-11  Aldy Hernandez  <aldyh@redhat.com>
2602
2603         * config/rs6000/spe.md (spe_evneg): Rename to negv2si2.
2604
2605         * config/rs6000/rs6000.c (bdesc_1arg): Change spe_evneg to
2606         negv2si2.
2607
2608 2004-05-11  Aldy Hernandez  <aldyh@redhat.com>
2609
2610         * doc/md.texi (Standard Names): Fix typo in vec_init description.
2611
2612 2004-05-11  Geoffrey Keating  <geoffk@apple.com>
2613
2614         * doc/gty.texi (GTY Options): Clarify example.
2615
2616 2004-05-11  Fariborz Jahanian  <fjahanian@apple.com>
2617
2618         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute):
2619         Add const qualifier to altivec vector type if one is needed.
2620
2621 2004-05-11  Paul Brook  <paul@codesourcery.com>
2622
2623         * flags.h (flag_short_enums): Update comment.
2624         * opts.c (decode_options): Set flag_short_enums to 2.
2625         * toplev.c (flag_short_enums): Update comment.
2626         (process_options): Call default_short_enums target hook.
2627
2628 2004-05-11  Andrew Pinski  <pinskia@gcc.gnu.org>
2629
2630         PR target/14063
2631         * config/rs6000/altivec.md (altivec_dssall):
2632         Change to unspec_volatile.
2633         (altivec_dss): Likewise.
2634
2635 2004-05-10  Aldy Hernandez  <aldyh@redhat.com>
2636
2637         * config/rs6000/altivec.md ("one_cmplv16qi2"): Change vnot to
2638         vnor.
2639         ("one_cmplv8hi2"): Same.
2640         ("one_cmplv4si2"): Same.
2641
2642 2004-05-10  Kaz Kojima  <kkojima@gcc.gnu.org>
2643
2644         PR target/15130
2645         * config/sh/sh-protos.h (sh_expand_epilogue): Change prototype.
2646         * config/sh/sh.c (output_stack_adjust): Take the sibcall epilogue
2647         into account.  Compute the correct number of general registers
2648         for the return value.  Generate a special push/pop sequence when
2649         failing to get a temporary register for non SHmedia epilogue.
2650         (sh_expand_epilogue): Add an argument to show whether it's for
2651         sibcall or not.  Set the 3rd argument of output_stack_adjust to
2652         -1 if needed.
2653         (sh_need_epilogue): Call sh_expand_epilogue with 0.
2654         * config/sh/sh.md (sibcall_epilogue): Call sh_expand_epilogue
2655         with 1.
2656         (epilogue): Call sh_expand_epilogue with 0.
2657
2658 2004-05-10  Andrew Pinski  <pinskia@physics.uc.edu>
2659
2660         * gcse.c (eliminate_partially_redundant_loads): Instead of returning early,
2661         goto a cleanup label.  After the cleanup, free the allocated memory.
2662
2663 2004-05-10  Ziemowit Laski  <zlaski@apple.com>
2664
2665         * config/rs6000/altivec.h (vec_sld): Add overloads for
2666         argument/return types of 'vector bool int', 'vector bool short'
2667         and 'vector bool char'.
2668
2669 2004-05-10  Zack Weinberg  <zack@codesourcery.com>
2670
2671         * c-decl.c (store_parm_decls_newstyle): Correct test for a
2672         nested function.
2673
2674 2004-05-10  Richard Sandiford  <rsandifo@redhat.com>
2675
2676         * read-rtl.c (read_rtx): Allow 's' and 'T' strings to be omitted,
2677         treating missing ones as "".
2678         * config/mips/mips.md: Remove constraints from match_operands and
2679         match_scratches if they appear in define_expands (except reload*),
2680         define_peephole2s, define_splits or attribute specifications.
2681         * config/mips/7000.md, config/mips/sb1.md: Remove match_operand
2682         constraint strings.
2683
2684 2004-05-10  Alan Modra  <amodra@bigpond.net.au>
2685
2686         * config/rs6000/rs6000.c (function_arg_boundary): Always align
2687         AltiVec vectors.
2688         (function_arg_advance): Pass TARGET_32BIT -mabi=no-altivec AltiVec
2689         vectors by refererence.  Align the same for TARGET_64BIT to a 16
2690         byte boundary.  Remove useless code.  Add function comment.
2691         (function_arg): Similarly.  Move gpr rs6000_mixed_function_arg
2692         call to where it belongs.
2693         (function_arg_partial_nregs): Return true for all TARGET_32BIT
2694         -mabi=no-altivec AltiVec vectors.  Fix debug output.
2695         (rs6000_va_arg): Adjust for AltiVec change.
2696
2697 2004-05-10  Paul Brook  <paul@codesourcery.com>
2698
2699         * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
2700         * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
2701         (TARGET_DOUBLEWORD_ALIGN): Use it.
2702         (WCHAR_TYPE): Define.
2703         (WCHAR_SIZE_TYPE): Define.
2704         (SIZE_TYPE): Define.
2705
2706 2004-05-10  Alan Modra  <amodra@bigpond.net.au>
2707
2708         * config/rs6000/rs6000.c (function_arg_boundary): Align for ABI_V4
2709         when size is 8 bytes.
2710         (function_arg_advance): Account for stack space used by AltiVec
2711         args when -mabi=altivec.  Simplify alignment calculations.  For
2712         ABI_V4, pass AltiVec vectors by reference when -mabi=no-altivec.
2713         (function_arg): Similarly.
2714         (function_arg_pass_by_reference): True for ABI_V4 AltiVec when
2715         not AltiVec ABI.
2716         (rs6000_va_arg): Correct fp arg test.  Adjust for AltiVec change.
2717         Correct alignment, and align before testing reg count.  Remove
2718         TREE_THIS_VOLATILE from reg.  Don't emit unused labels.
2719         (rs6000_complex_function_value): Check TARGET_HARD_FLOAT and
2720         TARGET_FPRS here..
2721         (rs6000_function_value): .. not here before call.
2722
2723 2004-05-09  Aldy Hernandez  <aldyh@redhat.com>
2724
2725         * config/rs6000/spe.md ("tstsflt_gpr"): Fix typo in unspec.
2726
2727 2004-05-09  Zack Weinberg  <zack@codesourcery.com>
2728
2729         PR 15007
2730         * c-decl.c (current_file_decl): Rename to all_translation_units,
2731         adjust comment.
2732         (pop_scope): If popping file_scope, construct a
2733         TRANSLATION_UNIT_DECL and make it the context of all the
2734         symbols in the scope.
2735         (push_file_scope): Don't construct a TRANSLATION_UNIT_DECL here.
2736         (pushdecl): Clarify comment.  Do not set DECL_CONTEXT of
2737         anything to current_file_decl.
2738         (pushdecl_top_level): Likewise.
2739         (store_parm_decls_newstyle): Adjust check for nested function.
2740         (c_write_global_declarations): Update for renamed variable.
2741
2742 2004-05-09  Aldy Hernandez  <aldyh@redhat.com>
2743
2744         * config/rs6000/rs6000-protos.h
2745         (rs6000_conditional_register_usage): Protoize.
2746
2747         * config/rs6000/rs6000.c (rs6000_conditional_register_usage): New.
2748
2749         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Call
2750         function.
2751
2752 2004-05-08  Roger Sayle  <roger@eyesopen.com>
2753
2754         * fold-const.c (fold_div_compare): New function to optimize X/C1 op C2
2755         where op is a comparison operator and C1 and C2 are integer constants
2756         into a range check.
2757         (fold): Call fold_div_compare.
2758
2759 2004-05-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
2760
2761         * doc/install.texi (sparc-sun-solaris2*): Document bootstrap
2762         problems with earlier versions of the GNU compiler.
2763
2764 2004-05-07  Aldy Hernandez  <aldyh@redhat.com>
2765
2766         * config/rs6000/rs6000-protos.h (rs6000_hard_regno_mode_ok_p):
2767         Declare.
2768
2769         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok_p): New.
2770         (rs6000_hard_regno_mode_ok): New.
2771         (rs6000_init_hard_regno_mode_ok): New.
2772         (rs6000_override_options): Call rs6000_init_hard_regno_mode_ok.
2773
2774         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Use precomputed
2775         result.
2776
2777 2004-05-07  Ziemowit Laski  <zlaski@apple.com>
2778
2779         * config/rs6000/altivec.h (vector, pixel, bool): Do not
2780         define as macros #ifdef __APPLE_ALTIVEC__.
2781
2782 2004-05-07  Fariborz Jahanian  <fjahanian@apple.com>
2783
2784         * config/rs6000/rs6000.c (rs6000_mixed_function_arg):
2785         Generate appropriate parallels for vector arguments
2786         passed to vararg functions. (function_arg): make the call
2787         to rs6000_mixed_function_arg for vector args as needed.
2788
2789 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
2790
2791         * config/mips/mips.c (mips_va_arg): Fix calculation of osize for
2792         EABI_FLOAT_VARARGS_P.
2793
2794 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
2795
2796         * config/mips/mips.h (ISA_HAS_BRANCHLIKELY): Remove TARGET_MIPS5500.
2797         * config/mips/mips.c (override_options): Disable branch likely
2798         instructions if TUNE_MIPS5500.
2799
2800 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
2801
2802         * config/mips/mips.c (override_options): Allow the hi and lo registers
2803         to store any integral mode, not just MODE_INTs.
2804
2805 2004-05-07  Paul Brook  <paul@codesourcery.com>
2806
2807         * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
2808         * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
2809         (TARGET_DOUBLEWORD_ALIGN): Use it.
2810         (WCHAR_TYPE): Define.
2811         (WCHAR_SIZE_TYPE): Define.
2812         (SIZE_TYPE): Define.
2813
2814 2004-05-07  Uros Bizjak  <uros@kss-loka.si>
2815
2816         * config/i386/i386.c (ix86_emit_fp_unordered_jump): Use
2817         testb $4, %ah insn instead of sahf insn if !TARGET_USE_SAHF.
2818
2819 2004-05-07  Andrew Pinski  <pinskia@physics.uc.edu>
2820
2821         * loop-doloop.c (doloop_valid_p): Make sure that body
2822         gets freed.
2823
2824 2004-05-07  Eric Botcazou  <ebotcazou@act-europe.fr>
2825
2826         * config/sparc/sparc-protos.h (sparc_skip_caller_unimp): New
2827         declaration.
2828         * config/sparc/sparc.c (SKIP_CALLERS_UNIMP_P): Delete.
2829         (sparc_skip_caller_unimp): New global variable.
2830         (sparc_function_epilogue): Set 'sparc_skip_caller_unimp'.
2831         Use it instead of SKIP_CALLERS_UNIMP_P.
2832         * config/sparc/sparc.md (call expander): Add sanity check.
2833         (call_address_struct_value_sp32): Re-sync with expander.
2834         (call_symbolic_struct_value_sp32): Likewise.
2835         (return peepholes): Use 'sparc_skip_caller_unimp' instead
2836         of custom predicate.
2837
2838 2004-05-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
2839
2840         PR c++/14962
2841         * c-pragma.c (handle_pragma_redefine_extname): Only change
2842         the assembler name of FUNCTION_DECLs and VAR_DECLs.
2843
2844 2004-05-07  Uros Bizjak  <uros@kss-loka.si>
2845
2846         * optabs.h (enum optab_index): Add new OTI_log1p.
2847         (log1p_optab): Define corresponding macro.
2848         * optabs.c (init_optabs): Initialize log1p_optab.
2849         * genopinit.c (optabs): Implement log1p_optab using log1p?f2
2850         patterns.
2851         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG1P{,F,L}
2852         using log1p_optab.
2853         (expand_builtin): Expand BUILT_IN_LOG1P{,F,L} using
2854         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
2855
2856         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FYL2XP1.
2857
2858         * config/i386/i386.c (ix86_emit_i387_log1p): New function.
2859         * config/i386/i386-protos.h (ix86_emit_i387_log1p):
2860         Prototype here.
2861         * config/i386/i386.md (UNSPEC_FYL2XP1): New unspec to represent
2862         x87's fyl2xp1 instruction.
2863         (*fyl2x_xf3): Rename insn definition to fyl2x_xf3.
2864         (fyl2xp1_xf3): New pattern to implement fyl2xp1 x87 instruction.
2865         (log1psf2, log1pdf2, log1pxf2): New expanders to implement log1pf,
2866         log1p  and log1pl built-ins as inline x87 intrinsics.
2867
2868 2004-05-07  Loren James Rittle  <ljrittle@acm.org>
2869
2870         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Proper redefinition.
2871         * config/arm/freebsd.h: Likewise.
2872         * config/ia64/freebsd.h: Likewise.
2873         * config/sparc/freebsd.h: Likewise.
2874
2875 2004-05-07  Hans-Peter Nilsson  <hp@axis.com>
2876
2877         PR optimization/15296
2878         * reorg.c (fill_simple_delay_slots): Use next_real_insn when
2879         getting last consecutive label at a branch.
2880         (relax_delay_slots): Similar, near top of loop.
2881
2882 2004-05-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2883
2884         PR target/15202
2885         * pa.md (movdi, movsi, movhi, movqi): Support move from shift amount
2886         register to general register.
2887
2888 2004-05-07  Alan Modra  <amodra@bigpond.net.au>
2889
2890         * config/rs6000/rs6000.h (STACK_BOUNDARY): Use 128 bit for either
2891         TARGET_ALTIVEC or TARGET_ALTIVEC_ABI.
2892         * config/rs6000/sysv4.h (ABI_STACK_BOUNDARY): Likewise.
2893         (STACK_BOUNDARY): Delete.
2894
2895 2004-05-06  Stuart Hastings  <stuart@apple.com>
2896
2897         * gcc/doc/invoke.texi: Restore -fgcse-after-reload doc from 1.421,
2898         mistakenly clobbered by 1.423.
2899
2900 2004-05-06  Richard Sandiford  <rsandifo@redhat.com>
2901
2902         * doc/invoke.texi: Document -mvr4130-align.
2903         * config/mips/mips.h (MASK_VR4130_ALIGN, TARGET_VR4130_ALIGN)
2904         (TUNE_MIPS4120, TUNE_MIPS4130): New macros.
2905         (TUNE_MACC_CHAINS): Include TUNE_MIPS4120 and TUNE_MIPS4130.
2906         (TARGET_SWITCHES): Add -mvr4130-align and -mno-vr4130-align.
2907         * config/mips/mips.md: Include sched-int.h.
2908         (USEFUL_INSN_P, SEQ_BEGIN, SEQ_END, FOR_EACH_SUBINSN): New macros.
2909         (mips_rtx_costs): Set integer multiplication costs for TUNE_MIPS4130.
2910         (override_options): Enable -mvr4130-align at -O3 and above.
2911         (mips_sim_insn): New variable.
2912         (mips_sim): New structure.
2913         (mips_sim_reset, mips_sim_init, mips_sim_next_cycle, mips_sim_wait_reg)
2914         (mips_sim_wait_regs_2, mips_sim_wait_regs_1, mips_sim_wait_regs)
2915         (mips_sim_wait_units, mips_sim_wait_insn, mips_sim_record_set)
2916         (mips_sim_issue_insn, mips_sim_issue_nop, mips_sim_finish_insn)
2917         (vr4130_avoid_branch_rt_conflict, vr4130_align_insns): New functions.
2918         (mips_reorg): Call vr4130_align_insns.
2919         (vr4130_last_insn): New variable.
2920         (vr4130_true_reg_dependence_p_1, vr4130_true_reg_dependence_p)
2921         (vr4130_swap_insns_p, vr4130_reorder): New functions.
2922         (mips_sched_reorder, mips_variable_issue): Hook in vr4130 code.
2923         (mips_issue_rate): Return 2 for PROCESSOR_R4130.
2924         (mips_use_dfa_pipeline_interface): Return true for the same.
2925         * config/mips/4130.md: New file.
2926         * config/mips/mips.md: Include it.  Add a peephole2 to convert
2927         "mult;mflo" into "mtlo;macc".
2928         (*macc, *umul_acc_di, *smul_acc_di): Use $1 rather than $0 as the
2929         target of maccs.
2930         (*msac_using_macc): New pattern.
2931
2932 2004-05-06  Richard Sandiford  <rsandifo@redhat.com>
2933
2934         * config/mips/5500.md (ir_vr55_store): Set latency to 0.
2935         (ir_vr55_hilo): Split into...
2936         (ir_vr55_mfhilo, ir_vr55_mthilo): ...these new reservations.
2937         (ir_vr55_imul_si, ir_vr55_imadd): Change latency to 5.
2938         (ir_vr55_imul_di): Change latency to 9.  Reserve vr55_mac for 4 cycles.
2939         Add various multiplication bypasses.
2940         * config/mips/mips.c (mips_rtx_costs): Adjust VR5500 costs for integer
2941         multiplication.
2942
2943 2004-05-06  Uros Bizjak  <uros@kss-loka.si>
2944
2945         * config/i386/i386.md (*fscalexf4): Correct insn "mode"
2946         attribute to "XF".
2947
2948 2004-05-05  Uros Bizjak  <uros@kss-loka.si>
2949
2950         * optabs.h (enum optab_index): Add new OTI_fmod and OTI_drem.
2951         (fmod_optab, drem_optab): Define corresponding macros.
2952         * optabs.c (init_optabs): Initialize fmod_optab and drem_optab.
2953         * genopinit.c (optabs): Implement fmod_optab and drem_optab
2954         using fmod?f3 and drem?f3 patterns.
2955         * builtins.c (expand_builtin_mathfn_2): Handle BUILT_IN_FMOD{,F,L}
2956         using fmod_optab and BUILT_IN_DREM{,F,L} using drem_optab.
2957         (expand_builtin): Expand BUILT_IN_FMOD{,F,L} and
2958         BUILT_IN_DREM{,F,L} using expand_builtin_mathfn_2 if
2959         flag_unsafe_math_optimizations is set.
2960
2961         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FPREM_F,
2962         UNSPEC_FPREM_U, UNSPEC_FPREM1_F and UNSPEC_FPREM1_U.
2963
2964         * config/i386/i386.c (ix86_emit_fp_unordered_jump): New function.
2965         * config/i386/i386-protos.h (ix86_emit_fp_unordered_jump):
2966         Prototype here.
2967         * config/i386/i386.md (UNSPEC_FPREM_F, UNSPEC_FPREM_U,
2968         UNSPEC_FPREM1_F, UNSPEC_FPREM1_U): New unspecs to represent x87's
2969         fprem and fprem1 instructions.
2970         (*x86_fnstsw_1): Change input parameter to (reg:CCFP 18).
2971         Rename insn definition to x86_fnstsw_1.
2972         (fpremxf4, fprem1xf4): New patterns to implement fprem and fprem1
2973         x87 instructions.
2974         (fmodsf3, fmoddf3, fmodxf3): New expanders to implement fmodf, fmod
2975         and fmodl built-ins as inline x87 intrinsics.
2976         (dremsf3, dremdf3, dremxf3): New expanders to implement dremf, drem
2977         and dreml built-ins as inline x87 intrinsics.
2978
2979 2004-05-05  Roger Sayle  <roger@eyesopen.com>
2980
2981         * reload1.c (inherit_piecemeal_p): Mark parameters potentially unused.
2982
2983 2004-05-05  Ian Lance Taylor  <ian@wasabisystems.com>
2984
2985         PR driver/9822
2986         * doc/invoke.texi (Spec Files): Remove documentation of %c.
2987
2988 2004-05-05  Chris Demetriou  <cgd@broadcom.com>
2989
2990         * config/mips/mips.md: Update the msub define_split for new mflo/mfhi
2991         representation.
2992
2993 2004-05-06  Paul Brook  <paul@codesourcery.com>
2994
2995         * config/arm/arm-protots.h (vfp_mem_operand): Rename ...
2996         (arm_coproc_mem_operand): ... To this.
2997         * config/arm/arm.c (arm_legitimate_address_p): Allow ldrd modes.
2998         (arm_legitimate_index_p): Ditto.
2999         (vfp_mem_operand): Rename ...
3000         (arm_coproc_mem_operand): ... To this.  Handle writeback modes.
3001         (vfp_secondary_reload_class): Use it.
3002         (output_move_double): Use doubleword load/store instructions.
3003         (arm_hard_regno_mode_ok): Only allow even reg pairs for ldrd.
3004         * config/arm/arm.h (TARGET_LDRD): Define.
3005         (EXTRA_CONSTRAINT_STR_ARM): Add 'Uy'.
3006         * config/gcc/arm/arm.md (arm_movdi): Allow all valid memory operands.
3007         New splitter for invalid doubleword loads.
3008         * config/arm/iwmmxt.md (iwmmxt_arm_movdi): Use Uy constraint.
3009         * config/arm/vfp.md (arm_movdi_vfp): Allow all valid memory operands.
3010         * doc/md.texi: Document Uy constraint.
3011
3012 2004-05-05  Jan Hubicka  <jh@suse.cz>
3013
3014         PR opt/14980
3015         * cgraphunit.c (cgraph_remove_unreachable_nodes): Deal properly with
3016         inline clones.
3017
3018 2004-05-05  H.J. Lu  <hongjiu.lu@intel.com>
3019
3020         PR target/15290
3021         * config/i386/i386.c (ix86_split_to_parts): Use real_to_target
3022         instead of REAL_VALUE_TO_TARGET_LONG_DOUBLE.
3023
3024 2004-05-05  Mike Stump  <mrs@apple.com>
3025
3026         * config/darwin-c.c (add_framework): Copy the directory name as it
3027         can be freed later.  Also, ensure we always allocate enough room
3028         for the cached framework information.
3029         (find_subframework_header): Keep track of the directory where the
3030         subframework header was found.
3031         (framework_construct_pathname): Speed up by not trying to re-add a
3032         framework.
3033         * cppfiles.c (search_path_exhausted): Arrange for the missing
3034         header callback to be able to set the directory where the header
3035         was found.
3036         (cpp_get_dir): Add.
3037         * cpplib.h (missing_header_cb): Add a parameter.
3038         (cpp_get_dir): Add.
3039
3040 2004-05-03  Mike Stump  <mrs@apple.com>
3041
3042         * doc/invoke.texi (Directory Options): Document -iquote.
3043         * doc/cpp.texi: Likewise.
3044         * doc/cppopts.texi: Likewise.
3045         * c-opts.c (c_common_missing_argument): Add -iquote processing.
3046         (c_common_handle_option): Likewise.
3047         * c.opt (iquote): Add.
3048         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add -iquote.
3049         * c-incpath.c (merge_include_chains): Update comment to use -iquote.
3050
3051         * c-opts.c (case OPT_I): Deprecate -I- support.
3052         * doc/invoke.texi: Likewise.
3053         * doc/cpp.texi: Likewise.
3054         * doc/cppopts.texi: Likewise.
3055
3056 2004-05-05  Steven Bosscher  <stevenb@suse.de>
3057
3058         * basic-block.h (free_basic_block_vars): Update prototype.
3059         * flow.c (free_basic_block_vars): Remove the keep_head_end_p
3060         argument.
3061         (life_analysis): Update call.
3062         * ifcvt.c (if_convert): Likewise.
3063         * sibcall.c (optimize_sibling_and_tail_recursive_call): Likewise.
3064         * passes.c (rest_of_handle_final): Likewise.
3065         (rest_of_compilation): Likewise.
3066         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
3067
3068         * emit-rtl.c (next_real_insn): Use INSN_P.
3069         (prev_real_insn): Likewise.
3070
3071 2004-05-05  Eric Christopher  <echristo@redhat.com>
3072
3073         * config/mips/mips.md: Update the madd define_split for new mflo/mfhi
3074         representation.
3075
3076 2004-05-05  Paolo Bonzini  <bonzini@gnu.org>
3077
3078         * config/rs6000/rs6000.c (build_opaque_vector_type):
3079         New function.
3080         (rs6000_init_builtins): Use it.
3081
3082 2004-05-04  Bernard Giroud  <bgiroud2@free.fr>
3083
3084         * gcc/gcc/vmsdbgout.c (vms_func_node, vms_func_ref): New.
3085         (func_table): Change type from char ** to vms_func_ref.
3086         (write_rtnbeg):  Update to reflect func_table change.  Use
3087         fde->funcdef_number instead of rtnnum in output.
3088         (write_rtnend, vmxdbgout_begin_function, vmsdbgout_init): Likewise.
3089
3090 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
3091             Richard Henderson  <rth@redhat.com>
3092
3093         PR target/14899
3094
3095         * c-common.c (vector_types_convertible_p): New function.
3096         * c-typeck.c (comptypes): Recurse on vector types.
3097         (convert_for_assignment): Use vector_types_convertible_p.
3098         (digest_init): Use vector_types_convertible_p to check
3099         validness of constant vector initializers; otherwise treat
3100         them as scalars.
3101         * tree.c (make_or_reuse_type): New.
3102         (build_common_tree_nodes): Use it.
3103         * cp/call.c (standard_conversion): Likewise.
3104         * cp/typeck.c (comptypes): Recurse on vector types.
3105         (convert_for_assignment): Use vector_types_convertible_p.
3106
3107 2004-05-04  Chris Demetriou  <cgd@broadcom.com>
3108
3109         * config/mips/mips.c (override_options): Default to no
3110         generation of branch-likely operations when tuning for
3111         CPUs where they tend to have a negative performance impact
3112         (e.g., SB-1).
3113
3114 2004-05-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3115
3116         * expr.c (store_constructor_field): Don't call store_constructor
3117         if bitsize is not a multiple of a byte.
3118
3119 2004-05-04  Richard Sandiford  <rsandifo@redhat.com>
3120
3121         * reload1.c (inherit_piecemeal_p): New function.
3122         (emit_reload_insns): When reloading a group of hard registers, use
3123         inherit_piecemeal_p to decide whether the values of individual hard
3124         registers can be inherited.
3125
3126 2004-05-04  H.J. Lu  <hongjiu.lu@intel.com>
3127
3128         * config/ia64/t-ia64 (LIB2ADDEH): Remove gthr-gnat.c.
3129         * config/s390/t-tpf (LIB2ADDEHDEP): Likewise.
3130         * config/t-linux (LIB2ADDEHDEP): Likewise.
3131
3132 2004-05-04  Paul Brook  <paul@codesourcery.com>
3133
3134         * config/arm/crti.asm: Push an even number of registers.
3135         * config/arm/crtn.asm: And restore them.  Load via sp.
3136
3137 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
3138
3139         * ggc-zone.c (ggc_alloc_zone_1): Add MEM_STAT_DECL parameter.
3140         Collect overhead information.
3141         (ggc_alloc_stat): New name of ggc_alloc.  Add MEM_STAT_DECL
3142         parameter and pass it through.
3143         (ggc_alloc_typed_stat): New name of ggc_alloc_typed.  Add
3144         MEM_STAT_DECL parameter and pass it through.
3145         (ggc_alloc_zone_stat): New name of ggc_alloc_zone.  Add
3146         MEM_STAT_DECL parameter and pass it through.
3147
3148 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
3149
3150         * config/rs6000/rs6000-protos.h: Protoize rs6000_hard_regno_nregs.
3151
3152         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs): New.
3153
3154         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Call
3155         rs6000_hard_regno_nregs.
3156
3157 2004-05-03  Eric Christopher  <echristo@redhat.com>
3158
3159         * config/s390/s390.c (s390_emit_prologue): Call unspec tpf
3160         prologue insn instead of setting up call.
3161         (s390_emit_epilogue): Ditto.
3162         * config/s390/s390.md (prologue_tpf, epilogue_tpf): New patterns.
3163         (define_constants): Add numbers for above patterns.
3164
3165 2004-05-03  Eric Christopher  <echristo@redhat.com>
3166
3167         * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Move body...
3168         * config/s390/s390.c (s390_conditional_register_usage): ...here.
3169         * config/s390/s390-protos.h: Prototype.
3170
3171 2004-05-03  Joe Buck <jbuck@welsh-buck.org>
3172
3173         * cppfiles.c (pchf_adder): Eliminate use of |= in d->have_once_only
3174         assignment.
3175
3176 2004-05-03  Eric Christopher  <echristo@redhat.com>
3177
3178         * config/mips/mips.md: Fix branch length attribute definition.
3179
3180 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
3181
3182         * config.gcc: Remove --enable-altivec support.
3183
3184         * config/rs6000/altivec-defs.h: Remove.
3185
3186 2004-05-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3187
3188         * fixinc/inclhack.def (svr4_profil): Don't apply on IRIX 5/6.
3189         * fixinc/fixincl.x: Regenerate.
3190
3191 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
3192
3193         * config/i386/i386.md (*fyl2x_sfxf3, *fyl2x_dfxf3): Remove insn
3194         definition.
3195         (log?f2, log10?f2, log2?f2): Reimplement expanders with
3196         float_truncate insn.
3197         (*fxtractsf3, *fxtractdf3): Remove insn definition.
3198         (logb?f2): Reimplement expanders with float_truncate insn.
3199
3200 2004-05-03  Graham Stott  <graham.stott@btinternet.com>
3201
3202         PR 14718
3203         * dwarf2out.c (dwarf2out_imported_module_or_decl): Use
3204         force_type_die for CONST_DECL.
3205
3206 2004-05-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
3207             Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3208
3209         * config.gcc (sparc64-*-solaris2*, sparcv9-*-solaris2*): Add
3210         tm-dwarf2.h to tm_file.
3211         (sparc-*-solaris2*): Add tm-dwarf2.h to tm_file for Solaris 7+.
3212         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Delete.
3213         (ASM_DEBUG_SPEC): Delete.
3214
3215 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
3216
3217         * optabs.h (enum optab_index): Add new OTI_expm1.
3218         (expm1_optab): Define corresponding macro.
3219         * optabs.c (init_optabs): Initialize expm1_optab.
3220         * genopinit.c (optabs): Implement expm1_optab using expm1?f2
3221         patterns.
3222         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXPM1{,F,L}
3223         using expm1_optab.
3224         (expand_builtin): Expand BUILT_IN_EXPM1{,F,L} using
3225         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
3226
3227         * config/i386/i386.md (expm1df2, expm1sf2, expm1xf2): New expanders
3228         to implement expm1, expm1f and expm1l built-ins as inline x87
3229         intrinsics.
3230
3231 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
3232
3233         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
3234         * config/frv/frv.md (*return_true, *return_false): New patterns.
3235
3236 2004-05-02  Kazu Hirata  <kazu@cs.umass.edu>
3237
3238         * rtl.h (PHI_NODE_P): Remove.
3239
3240 2004-05-02  Eric Botcazou  <ebotcazou@act-europe.fr>
3241
3242         PR middle-end/14988
3243         * function.c (assign_stack_local_1): Use BITS_PER_UNIT alignment
3244         when passed -2 as 'align'.
3245         (put_var_into_stack): Use 'bool' as the type for the three local
3246         predicates.  Adjust calls to put_reg_into_stack.
3247         When passed a CONCAT, instruct put_reg_into_stack to use
3248         a consecutive stack slot for the second part.
3249         (put_reg_into_stack): Remove 'promoted_mode' parameter, add
3250         'consecutive_p' parameter.  Turn the three predicates into 'bool'
3251         parameters.  Retrieve the register mode from 'reg'.
3252         When consecutive_p is true, instruct assign_stack_local_1 to use
3253         BITS_PER_UNIT alignment.
3254         (put_addressof_into_stack): Use 'bool' as the type for the two
3255         local predicates. Adjust call to put_reg_into_stack.
3256
3257 2004-05-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3258
3259         * fold-const.c (fold_convert_const, fold): Add missing
3260         FIX_ROUND_EXPR case.
3261
3262 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
3263
3264         * configure.ac (FLEX, BISON): Only use tools from the build tree
3265         if build equals host.
3266         * configure: Rebuilt.
3267
3268         * config/frv/frv-protos.h (frv_expand_epilogue,
3269         frv_expand_fdpic_call): Add bool argument.
3270         * config/frv/frv.c (frv_function_ok_for_sibcall): New.
3271         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to it.
3272         (frv_expand_epilogue): Use new argument to decide whether to emit
3273         return instruction or copy the return address to LR.
3274         (frv_expand_fdpic_call): Inline PLT entry when emitting direct
3275         sibcalls.
3276         (sibcall_operand): New.
3277         * config/frv/frv.h (PREDICATE_CODES): call_operand doesn't match
3278         PLUS nor LABEL_REF.  Add sibcall_operand.
3279         * config/frv/frv.md (call, call_value): Pass false to
3280         frv_expand_fdpic_call.
3281         (call_fdpicdi, call_value_fdpicdi): Insert %i0 in calll.
3282         (sibcall, sibcall_internal, sibcall_fdpicdi, sibcall_value,
3283         sibcall_value_internal, sibcall_value_fdpicdi): New.
3284         (return_unsigned_true, return_unsigned_false): New.
3285         (epilogue): Adjust call to frv_expand_epilogue.
3286         (sibcall_epilogue): New.
3287
3288         * config/frv/frv.h (ASM_SPEC): Pass -mno-fdpic as -mnopic.
3289         (CPP_SPEC, CPP_SIMPLE_SPEC): Undefine __FRV_ACC__ and __FRV_FPR__
3290         before redefining them.
3291
3292 2004-05-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3293
3294         * builtins.c (fold_fixed_mathfn): New function.
3295         (fold_builtin_lround, fold_builtin): Use it.
3296
3297 2004-05-01  Jakub Jelinek  <jakub@redhat.com>
3298
3299         * config/sparc/linux64.h (TARGET_DEFAULT): Make 64-bit by default
3300         also for TARGET_CPU_DEFAULT == TARGET_CPU_ultrasparc3.
3301
3302 2004-05-01  Kazu Hirata  <kazu@cs.umass.edu>
3303
3304         * config/cris/cris.h: Revert my "fix comment typos" patch.
3305
3306 2004-05-01  Richard Sandiford  <rsandifo@redhat.com>
3307
3308         * config/mips/mips.h (TUNE_MACC_CHAINS): Fix comment.
3309
3310 2004-05-01  Falk Hueffner  <falk@debian.org>
3311
3312         * config/alpha/alpha.md (builtin_insbl, builtin_inswl,
3313         builtin_insll): Disallow 0 as first input operand.
3314
3315 2004-05-01  Falk Hueffner  <falk@debian.org>
3316
3317         * config/alpha/alpha.c (alpha_rtx_costs): Fix shiftadd costs.
3318
3319 2004-05-01  Ulrich Weigand  <uweigand@de.ibm.com>
3320
3321         PR middle-end/15054
3322         * expr.c (expand_expr_real): Do not call preserve_temp_slots
3323         on a TARGET_EXPR temp.
3324         * function.c (assign_stack_temp_for_type): Set 'keep' flag for
3325         TARGET_EXPR temp slots.
3326
3327 2004-05-01  Paolo Bonzini  <bonzini@gnu.org>
3328
3329         * simplify-rtx.c (simplify_ternary_operation): When
3330         converting an IF_THEN_ELSE to a relational op, return
3331         correct mode.
3332
3333 2004-04-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3334
3335         * builtins.c (fold_builtin_round): Fix comment typo.
3336         (fold_builtin_lround): New function.
3337         (fold_builtin): Use it.
3338
3339 2004-04-20  Andrew Pinski  <pinskia@physics.uc.edu>
3340
3341         PR target/11608
3342         * config/sh/elf.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Update and make it
3343         more like the one in config/dbxelf.h.
3344
3345 2004-04-30  Zack Weinberg  <zack@codesourcery.com>
3346
3347         * tree.h (SET_ARRAY_OR_VECTOR_CHECK): Rename to SET_OR_ARRAY_CHECK
3348         and adjust definition accordingly.
3349         (TYPE_DOMAIN): Allow only SET_TYPE and ARRAY_TYPE.
3350         (TYPE_DEBUG_REPRESENTATION_TYPE): Allow only VECTOR_TYPE.
3351         * expr.c (store_constructor): Do not access TYPE_DOMAIN of a
3352         VECTOR_TYPE.
3353
3354 2004-04-30  Jason Merrill  <jason@redhat.com>
3355
3356         PR c++/14587
3357         * config/i386/winnt.c (associated_type): Look for attributes on
3358         the TYPE_MAIN_VARIANT of *this.
3359         * attribs.c (decl_attributes): If ATTR_FLAG_TYPE_IN_PLACE, also
3360         apply the attributes to the variants.
3361
3362 2004-04-30  Paul Brook  <paul@codesourcery.com>
3363
3364         * config.gcc: Simplify arm --with-{cpu,tune} test.
3365         * config/arm/arm-cores.def: Document whitespace restrictions.
3366
3367 2004-04-30  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3368
3369         PR other/1963
3370         * config/alpha/osf.h (SWITCHES_NEED_SPACES): Define.
3371
3372 2004-04-30  Brian Ford  <ford@vss.fsi.com>
3373             DJ Delorie  <dj@redhat.com>
3374
3375         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
3376         (DWARF2_DEBUGGING_INFO): Define to enable.
3377         (DBX_REGISTER_NUMBER): Define to use the svr4 register map for
3378         DWARF2.
3379         * configure.ac (Target-specific assembler checks)
3380         <i[34567]86-*-[cygwin*|pe|mingw32*]>: New test for .secrel32
3381         relocs.
3382         * configure: Regenerate.
3383         * config.in: Likewise.
3384
3385         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
3386         (ASM_OUPUT_DWARF_OFFSET): Define.
3387
3388 2004-04-29  Andreas Krebbel  <krebbel1@de.ibm.com>
3389
3390         * config/s390/s390-protos.h (s390_emit_epilogue): Parameter added.
3391         (s390_emit_call): New function prototype added.
3392         (s390_tls_get_offset): Function removed.
3393         * config/s390/s390.c (s390_function_ok_for_sibcall,
3394         s390_call_saved_register_used_p): New functions.
3395         (TARGET_FUNCTION_OK_FOR_SIBCALL): Definition of target macro added.
3396         (s390_tls_get_offset): Function merged into s390_emit_tls_call_insn.
3397         (s390_emit_tls_call_insn): New function.
3398         (legitimize_tls_address): Call s390_emit_tls_call_insn instead of
3399         emit_call_insn.
3400         (s390_emit_prologue): Use s390_emit_call instead of emit_call_insn.
3401         (s390_emit_epilogue): Like s390_emit_prologue. Parameter for sibcalls
3402         added.
3403         * config/s390/s390.h (SIBCALL_REGNUM): New macro representing the
3404         register number used to hold the target address for sibcalls.
3405         * config/s390/s390.md ("sibcall", "sibcall_value", "sibcall_epilogue"):
3406         New expanders.
3407         ("*sibcall_br", "*sibcall_brc", "*sibcall_brcl", "*sibcall_value_br",
3408         "*sibcall_value_brc", "*sibcall_value_brcl"): New insns.
3409         ("call_exp", "call_value_exp", "call_value_tls", "call_value_tls_exp"):
3410         Expanders removed.
3411         ("call", "call_value"): Call s390_emit_call to emit the call patterns.
3412         ("*bras", "*brasl", "*bras_r", "*brasl_r", "*bras_tls", "*brasl_tls",
3413         "*basr", "*basr_r", "*basr_tls"): Added constraint: !SIBLING_CALL_P.
3414         ("epilogue"): Changed the call to s390_emit_epilogue to use the
3415         new parameter.
3416
3417 2004-04-30  Kazu Hirata  <kazu@cs.umass.edu>
3418
3419         * bb-reorder.c, c-opts.c, cfglayout.c, cgraph.c, cgraphunit.c,
3420         cppfiles.c, fold-const.c, ggc-zone.c, loop-doloop.c, optabs.c,
3421         reg-stack.c, varasm.c, config/alpha/ev4.md,
3422         config/alpha/ev5.md, config/alpha/ev6.md, config/arm/arm.c,
3423         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.c,
3424         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
3425         config/frv/frv.h, config/frv/frv.md, config/h8300/h8300.c,
3426         config/i386/i386.c, config/i386/i386.md, config/i386/winnt.c,
3427         config/ia64/itanium2.md, config/ip2k/ip2k.c,
3428         config/mips/mips.c, config/mips/mips.h, config/mips/sr71k.md,
3429         config/pa/pa.c, config/s390/s390.c, config/sh/sh.c: Fix
3430         comment typos.
3431
3432 2004-04-30  Paul Brook  <paul@codesourcery.com>
3433
3434         * config.gcc: Default ep9312 to hard-float.
3435         * config/arm/arm-cores.def: Add ARCH field.
3436         * config/arm/arm.c (FL_FOR_ARCH*): Define.
3437         (arm_arch_cirrus): New variable.
3438         (all_cores): Set and use arch.
3439         (all_architectures): Ditto.
3440         (arm_arch_name): New variable.
3441         (arm_override_options): Set it. Use [SUB]TARGET_CPU_DEFAULT.
3442         Set and use arm_arch_cirrus.
3443         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set arch defines.
3444         (enum processor_type): Update ARM_CORE define.
3445         (enum target_cpus): Add.  Replaces TARGET_CPU_* defines.
3446         (CPP_SPEC): Remove %(cpp_cpu_arch).
3447         (CPP_ARCH_DEFAULT_SPEC): Remove.
3448         (CPP_CPU_ARCH_SPEC): Remove.
3449         (EXTRA_SPECS): Don't use CPP_*ARCH*_SPEC.
3450         (FPUTYPE_DEFAULT): Don't define here.
3451
3452 2004-04-30  J"orn Rennecke <joern.rennecke@superh.com>
3453
3454         * flow.c (propagate_one_insn): Call mark_set_regs for stack pointer
3455         updates too.
3456
3457 2004-04-30  Paul Brook  <paul@codesourcery.com>
3458
3459         * arm.c (arm_needs_doubleword_align): Use mode alignment.
3460
3461 2004-04-30  Paolo Bonzini  <bonzini@gnu.org>
3462
3463         * config/altivec/altivec.h [__cplusplus] (vec_subsubs): Rename to
3464         vec_sububs.
3465         [__cplusplus] (vec_subsuhs): Rename to vec_subuhs, without
3466         duplicates.
3467
3468 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
3469
3470         * config/i386/i386.md (atansf2, atandf2, atanxf2): Move near
3471         atan2?f3 expanders.
3472
3473 2004-04-29  Nick Clifton  <nickc@redhat.com>
3474
3475         Bug 14093
3476         * config/sh/sh-protos.h (sh_promote_prototypes): Declare.
3477         * config/sh/sh.c (sh_promote_prototypes): Remove declaration.
3478         Delete static from definition.
3479         * config/sh/sh.h (FUNCTION_VALUE): Add sh_promote_prototypes call.
3480
3481 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
3482
3483         * reg-stack.c (subst_stack_regs_pat): <UNSPEC_SIN, UNSPEC_COS,
3484         UNSPEC_FRNDINT, UNSPEC_F2XM1>: abort() if src1 dies.
3485         <UNSPEC_SINCOS_COS, UNSPEC_TAN_ONE, UNSPEC_XTRACT_FRACT>: Same.
3486         <UNSPEC_SINCOS_SIN, UNSPEC_TAN_TAN, UNSPEC_XTRACT_EXP>: Same.
3487
3488 2004-04-29  Richard Guenther  <richard.guenther@uni-tuebingen.de>
3489
3490         * commom.opt (Wfatal-errors): Add it.
3491         * diagnostic.c (flag_fatal_errors): Define it.
3492         (diagnostic_action_after_output): Check for flag_fatal_errors.
3493         * flags.h (flag_fatal_errors): Declare it.
3494         * opts.c (common_handle_option): Add OPT_Wfatal_errors.
3495         * doc/invoke.texi (Warning Options): Document -Wfatal-errors.
3496
3497 2004-04-30  Josef Zlomek  <zlomekj@suse.cz>
3498
3499         * gcse.c (remove_reachable_equiv_notes): Delete notes also in
3500         blocks which have kill flag set.
3501
3502 2004-04-29  Ben Elliston  <bje@au.ibm.com>
3503
3504         * configure.ac (--with-as): Abort if user-supplied assembler
3505         cannot be executed.
3506         (--with-ld): Likewise for the linker.
3507         * configure: Regenerate.
3508
3509 2004-04-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3510
3511         * convert.c (convert_to_integer): Ensure `long_integer_type_node'
3512         isn't NULL before using it.
3513
3514 2004-04-29  Richard Sandiford  <rsandifo@redhat.com>
3515
3516         PR target/15189
3517         * config/mips/mips.md (load_df_low): Use default length.
3518         (load_df_high, store_df_high): Likewise.
3519
3520 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
3521
3522         * config/mips/mips.md, config/mips/sb1.md,
3523         config/rs6000/rs6000.c: Fix comment typos.
3524
3525 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
3526
3527         * builtins.c, cgraph.c, cgraphunit.c, final.c, fold-const.c:
3528         Fix comment typos.
3529
3530 2004-04-29  Douglas B Rupp  <rupp@gnat.com>
3531
3532         * gcc.c (DELETE_IF_ORDINARY): New macro default definition.
3533         (delete_if_ordinary): Use above macro.
3534         * config/alpha/xm-vms.h (DELETE_IF_ORDINARY): New macro VMS definition.
3535         Update copyright.
3536         * doc/hostconfig.texi (DELETE_IF_ORDINARY): Document new macro.
3537
3538 2004-04-29  Richard Earnshaw  <rearnsha@arm.com>
3539
3540         * c-decl.c (get_parm_info): Use the correct tag keywords when
3541         warning about type declarations in prototypes.
3542
3543 2004-04-29  Paul Brook  <paul@codesourcery.com>
3544
3545         * config.gcc: Pull list of cores from arm-cores.def.
3546
3547 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
3548
3549         * combine.c (combine_simplify_rtx): Adjust call to use
3550         simplify_relational_operation.  Do not use SELECT_CC_MODE
3551         when a comparison already has a MODE_CC mode.
3552
3553 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
3554
3555         (simplify_set): simplify_relational_operation may now
3556         return another relational expression.
3557         * cse.c (fold_rtx): simplify_relational_operation now
3558         takes of computing the comparison mode.
3559         * dojump.c (compare_from_rtx): Use simplify_relational_operation,
3560         remove dead code.
3561         (do_compare_rtx_and_jump): Likewise.
3562         * integrate.c (subst_constants): simplify_relational_operation
3563         may now return another relational expression.
3564         * simplify-rtx.c (simplify_gen_relational): Move most code to
3565         the new simplify_relational_operation and
3566         simplify_relational_operation_1 functions.
3567         (simplify_relational_operation): Rewritten.
3568         (simplify_relational_operation_1): New function.
3569         (simplify_ternary_operation): simplify_relational_operation
3570         may now return another relational expression.
3571         (simplify_rtx): Remove unnecessary temp variable.
3572
3573 2004-04-29  Uros Bizjak  <uros@kss-loka.si>
3574
3575         * reg-stack.c (swap_to_top): New function.
3576         (subst_stack_regs_pat): UNSPEC_FPATAN, UNSPEC_FYL2X: Use
3577         swap_to_top().
3578         (subst_stack_regs_pat): UNSPEC_FSCALE: Remove.
3579         (subst_stack_regs_pat): Handle UNSPEC_FSCALE_FRACT and
3580         UNSPEC_FSCALE_EXP.
3581
3582         * config/i386/i386.md (UNSPEC_FSCALE): Remove.
3583         (*fscale_sfxf3, *fscale_dfxf3, *fscale_xf3): Remove insn pattern.
3584         (UNSPEC_FSCALE_FRACT, UNSPEC_FSCALE_EXP): New unspecs to represent
3585         x87's fscale insn.
3586         (*fscalexf4: Define new insn pattern to implement x87 fscale insn.
3587         (exp?f2, exp10?f2, exp2?f2): Use *fscalexf4 and float_truncate
3588         patterns.
3589
3590 2004-04-28  Serge Belyshev  <1319@bot.ru>
3591
3592         PR 14944
3593         * coverage.c (read_counts_file): Fix usage of warning () call.
3594         * pretty-print.c (pp_base_format_text): Fix typo in the comment.
3595
3596 2004-04-28  Ben Elliston  <bje@au.ibm.com>
3597
3598         * doc/invoke.texi (Objective-C Dialect Options): Don't prefix
3599         options with "-" in the option index.
3600         (SPARC Options): Likewise.
3601         (M32R/D Options): Likewise.
3602
3603 2004-04-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3604
3605         * convert.c (convert_to_integer): Convert (long)round -> lround,
3606         etc.
3607
3608 2004-04-28  Andrew Pinski  <pinskia@physics.uc.edu>
3609
3610         * config/rs6000/rs6000.c (registers_ok_for_quad_peep):
3611         Return false if we do not have fp register.
3612         (addrs_ok_for_quad_peep): Rename to ...
3613         (mems_ok_for_quad_peep): this.
3614         Add check for volatile memory.
3615         * config/rs6000/rs6000-protos.h (addrs_ok_for_quad_peep):
3616         Rename to ...
3617         (mems_ok_for_quad_peep): this.
3618         * config/rs6000/rs6000.md: Change peephole's for lfq/stq
3619         to peephole2's.
3620         (lfq_power2): New instruction.
3621         (stfq_power2): Likewise.
3622
3623 2004-04-28  Jan Hubicka  <jh@suse.cz>
3624
3625         PR c/15004
3626         * function.c (do_warn_unused_parameter): Break out form ...
3627         (expand_function_end): ... here; warn only when not using cgraphunit.
3628         * function.h (do_warn_unused_parameter): Declare.
3629         * cgraphunit.c: Include function.h.
3630         (cgraph_finalize_function): Do unused parameter warning.
3631         * Makefile.in (cgraphunit.o): Depend on function.h
3632
3633 2004-04-28  Joseph S. Myers  <jsm@polyomino.org.uk>
3634
3635         * Makefile.in ($(DESTDIR)$(infodir)/%.info): Don't condition
3636         calling install-info on $(DESTDIR)$(infodir)/dir already being
3637         present.
3638
3639 2004-04-28  Paul Brook  <paul@codesourcery.com>
3640
3641         * dwarf2out.c (mem_loc_descriptor): Handle shifts.
3642
3643 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
3644
3645         * gcse.c (find_moveable_store): Do not accept store insns with
3646         REG_EH_REGION note.
3647
3648 2004-04-28  Paul Brook  <paul@codesourcery.com>
3649
3650         * calls.c (precompute_arguments): Remove PROMOTE_FOR_CALL_ONLY.
3651         * function.c (assign_temp): Ditto.
3652         * system.h (PROMOTE_FOR_CALL_ONLY): Poison.
3653
3654 2004-04-28  Paul Brook  <paul@codesourcery.com>
3655
3656         * config/arm/lib1funcs.asm: Recognize armv5tej and armv6.
3657
3658 2004-04-28  Josef Zlomek  <zlomekj@suse.cz>
3659
3660         * var-tracking.c (variable_different_p): Add a parameter
3661         compare_current_location, compare current location of variable parts
3662         if it is true.
3663         (dataflow_set_different_1): Pass compare_current_location == false.
3664         (dataflow_set_different_2): Pass compare_current_location == false.
3665         (emit_notes_for_differences_1): Pass compare_current_location == true.
3666
3667 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
3668
3669         * config/s390/s390.md ("casesi"): Mark jump table access as
3670         non-trapping and unchanging.
3671
3672 2004-04-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3673
3674         PR debug/14829
3675         * dwarf2out.c (reg_number): Rename to dbx_reg_number.  Adjust all
3676         callers.
3677         (multiple_reg_loc_descriptor, reg_loc_descriptor): Use gcc register
3678         number for indexing hard_regno_nregs array.
3679
3680 2004-04-27  Geoffrey Keating  <geoffk@apple.com>
3681
3682         * config/darwin.h (STARTFILE_SPEC): Use %s to find crt2.o.
3683         * config/darwin-crt2.c: Only have contents on __ppc__.
3684
3685 2004-04-27  Bob Wilson  <bob.wilson@acm.org>
3686
3687         * config/xtensa/xtensa.c (call_insn_operand): Check
3688         SYMBOL_REF_EXTERNAL_P in addition to SYMBOL_REF_LOCAL_P.
3689         * config/xtensa/xtensa.h (LEGITIMATE_PIC_OPERAND): Likewise.
3690         * config/xtensa/xtensa.md (call, call_value): Likewise.
3691
3692 2004-04-27  Wu Yongwei  <adah@sh163.net>
3693
3694         * gthr-win32.h (__gthread_mutex_t): Change typedef to new structure.
3695         (__GTHREAD_MUTEX_INIT_DEFAULT): Adjust.
3696         (__gthread_mutex_init_function): Replace CreateMutex with
3697         initialization of custom mutex using CreateSemaphore.
3698         (__gthread_mutex_lock): Use InterlockedIncrement.
3699         (__gthread_mutex_trylock): Use InterlockedCompareExchange.
3700         (__gthread_mutex_unlock): Use InterlockedDecrement and
3701         ReleaseSemaphore to unlock
3702         * config/i386/gthr-win32.c (__gthread_mutex_init_function,
3703         __gthread_mutex_lock, __gthread_mutex_trylock,
3704         __gthread_mutex_unlock): Adjust to match inline versions in
3705         gthr-win32.h.
3706
3707 2004-04-27  Paul Brook  <paul@codesourcery.com>
3708
3709         * config/arm/arm.c (arm_promote_prototypes): New function.
3710         (TARGET_PROMOTE_PROTOTYPES): Use it.
3711
3712 2004-04-27  Paul Brook  <paul@codesourcery.com>
3713
3714         * config/arm/arm.c (arm_expand_epilogue): Count blocks of 4 regs.
3715
3716 2004-04-26  Bernard Giroud  <bgiroud@free.fr>
3717
3718         * config/alpha.c (alpha_end_function): For OpenVMS gas,
3719         correctly output .pdesc directive before .end.
3720
3721 2004-04-26  James E Wilson  <wilson@specifixinc.com>
3722
3723         Bug 14927
3724         * config/ia64/ia64.md (movxf): New local op0.  Handle case where
3725         operands[0] is a SUBREG.  Handle case where operands[1] is a GR reg.
3726
3727 2004-04-26  Zack Weinberg  <zack@codesourcery.com>
3728
3729         * config/ia64/hpux.h: Predefine __STDCPP__ when compiling C++.
3730         * config/pa/pa-hpux10.h: Likewise.
3731         * config/pa/pa-hpux11.h: Likewise.
3732
3733 2004-04-26  Geoffrey Keating  <geoffk@apple.com>
3734
3735         * doc/invoke.texi (Overall Options): Document default for -o
3736         for PCH files.
3737
3738 2004-04-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3739
3740         * builtins.c (expand_builtin_update_setjmp_buf): New function.
3741         (expand_builtin, case BUILT_IN_UPDATE_SETJMP_BUF): New case.
3742         * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): New code.
3743
3744 2004-04-26  Paul Brook  <paul@codesourcery.com>
3745
3746         * config/arm/arm.c (arm_legitimate_index_p): Correct iwmmxt offsets.
3747
3748 2004-04-26  Paul Brook  <paul@codesourcery.com>
3749
3750         * config/arm/arm.c (arm_legitimate_index_p): Correct maverick offsets.
3751
3752 2004-04-25  Roger Sayle  <roger@eyesopen.com>
3753
3754         * fold-const.c (fold): Prefer fold_convert (negate_expr (...)) to
3755         fold (build1 (NEGATE_EXPR, ...)).  Optimize X / -1 as -X and
3756         X % -1 as 0.
3757
3758 2004-04-26  Hans-Peter Nilsson  <hp@bitrange.com>
3759
3760         PR bootstrap/15141
3761         * except.c (connect_post_landing_pads): Delete insns after the
3762         barrier when generating a unwind_resume_libfunc call.
3763
3764 2004-04-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3765
3766         PR/c++ 15119
3767         * tree.c (substitute_placeholder_in_expr, case 4): New case,
3768         for TARGET_EXPR.
3769
3770 2004-04-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3771
3772         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
3773         __gcov_execv, __gcov_execvp, __gcov_execve): Do not declare when
3774         inhibit_libc is defined.
3775
3776 2004-04-25  Richard Sandiford  <rsandifo@redhat.com>
3777
3778         * config/mips/mips-protos.h (mips_linked_macc_p): Declare.
3779         * config/mips/mips.h (TUNE_MACC_CHAINS): New macro.
3780         * config/mips/mips.c (TARGET_SCHED_REORDER): Define.
3781         (TARGET_SCHED_VARIABLE_ISSUE): Define.
3782         (mips_adjust_cost): Move later in file, next to other sched hooks.
3783         (mips_macc_chains_last_hilo): New variable.
3784         (mips_linked_madd_p, mips_macc_chains_record, mips_macc_chains_reorder)
3785         (mips_promote_ready, mips_sched_reorder, mips_variable_issue): New.
3786         * config/mips/mips.md (may_clobber_hilo): New attribute.
3787
3788 2004-04-24  Roger Sayle  <roger@eyesopen.com>
3789             Bruce Korb  <bkorb@gnu.org>
3790
3791         * fixinc/inclhack.def (aix_syswait_2): New fix.
3792         * fixinc/fixincl.x: Regenerate.
3793         * fixinc/tests/base/sys/wait.h: Update for new test.
3794
3795 2004-04-24  Alan Modra  <amodra@bigpond.net.au>
3796
3797         PR target/14960
3798         * config/rs6000/rs6000.c (rs6000_stack_info): Rename total_raw_size
3799         to non_fixed_size, and leave out fixed_size from the sum.
3800         (generate_set_vrsave): Correct clobbers.
3801         (rs6000_emit_epilogue): Test TARGET_ALTIVEC with TARGET_ALTIVEC_SAVE.
3802         (rs6000_function_value): Test TARGET_ALTIVEC and TARGET_ALTIVEC_ABI.
3803         (rs6000_libcall_value): Likewise.
3804         * config/rs6000/rs6000.h (FUNCTION_VALUE_REGNO_P): Likewise.
3805         (FUNCTION_ARG_REGNO_P): Likewise.
3806
3807 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
3808
3809         * expmed.c (expand_mult_highpart_adjust): Do not assume OP1
3810         is a CONST_INT.
3811         (expand_mult_highpart_optab): Call expand_mult_highpart_adjust
3812         with NARROW_OP1 instead of OP1.
3813
3814 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
3815
3816         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __s390__
3817         and __s390x__ hosts.
3818
3819 2004-03-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3820
3821         * Makefile.in (LIBGCOV): Add _gcov_fork, _gcov_execl, _gcov_execlp,
3822         _gcov_execle, _gcov_execv, _gcov_execvp, _gcov_execve.
3823         * builtin-types.def (BT_PID, BT_PTR_CONST_STRING, BT_FN_PID,
3824         BT_FN_INT_CONST_STRING_PTR_CONST_STRING,
3825         BT_FN_INT_CONST_STRING_PTR_CONST_STRING_PTR_CONST_STRING): New.
3826         * builtins.c (expand_builtin_fork_or_exec): New.
3827         (expand_builtin): Call it.
3828         * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP,BUILT_IN_EXECLE,
3829         BUILT_IN_EXECV, BUILT_IN_EXECVP, BUILT_IN_EXECVE, BUILT_IN_FORK): New.
3830         * c-common.c (PID_TYPE): New macro.
3831         (c_common_nodes_and_builtins): Initialize pid_type_node.
3832         * calls.c (special_function_p): Do not handle fork and exec.
3833         (expand_call): Do not handle ECF_FORK_OR_EXEC.
3834         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
3835         __gcov_execv, __gcov_execvp, __gcov_execve): Declare.
3836         * libgcov.c (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
3837         __gcov_execv, __gcov_execvp, __gcov_execve): New.
3838         * tree.h (enum tree_index): Add TI_PID_TYPE.
3839         (pid_type_node): New macro.
3840         (ECF_FORK_OR_EXEC): Removed.
3841
3842 2004-04-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
3843
3844         PR optimization/13985
3845         * cfgloopmanip.c (fix_loop_placements): New prototype.
3846         Call fix_bb_placements on the preheader of loops that have
3847         been reparented.
3848         (remove_path): Adjust call to fix_loop_placements.
3849
3850 2004-04-23  Andrew Pinski  <pinskia@physics.uc.edu>
3851
3852         * config/darwin7.h: New file.
3853         * config.gcc (*-*-darwin*): Add darwin7.h if the
3854         version is greater than 6.
3855         * config/darwin.h (TARGET_C99_FUNCTIONS): Define.
3856         (MATH_LIBRARY): Wrap in ifdefs.
3857
3858 2004-04-23  Daniel Jacobowitz  <drow@mvista.com>
3859
3860         * config/arm/arm.c (arm_output_epilogue): Reverse the order of
3861         loading iWMMXt registers with a frame pointer.  Use post-increment
3862         without a frame pointer.
3863         (arm_expand_prologue): Reverse the order of saving iWMMXt registers.
3864
3865 2004-04-23  Paolo Bonzini  <bonzini@gnu.org>
3866
3867         * doc/invoke.texi (Optimize Options): Refer to "unit-at-a-time
3868         mode" rather than "-funit-at-a-time" since -O2 enables it
3869         without requiring -f* options.  Refer to -fprofile-generate and
3870         -fprofile-use correctly.  Move -funit-at-a-time among options
3871         enabled by -O.  Add information about unit-at-a-time caveats.
3872
3873 2004-04-22  Per Bothner  <per@bothner.com>
3874
3875         * line-map.h (struct line_maps):  New field highest_line.
3876         (linemap_position_for_column):  Make non-inline function.
3877         (LINEMAP_POSITION_FOR_COLUMN):  New macro.
3878         * line-map.c (linemap_init):  Clear highest_line field.
3879         (linemap_add):  Set highest_line field.
3880         (linemap_line_start):  Minor optimization - use highest_line field.
3881         Reduce maximum column hint to 10000.  Update highest_line field.
3882         (linemap_position_for_column):  Moved from line-map.h.  Optimize a bit.
3883         * cpphash.h (struct cpp_reader):  Remove line field - instead use
3884         line_table->highest_line.
3885         (saved_line):  Remove unused field.
3886         (CPP_INCREMENT_FILE):  Don't do linemap_lookup - just use newest map.
3887         Use  line_table's highest_line field instead of cpp_reader's line.
3888         * cpplib.c (start_directive):  Likewise use highest_line field.
3889         (do_line, do_linemarker):  Likewise just use newest map.
3890         (_cpp_do_file_change):  Don't need to set cpp_reader's line field.
3891         * cpperror.c (cpp_error):  Likewise use highest_line field.
3892         * cppfiles.c (open_file_failed:  Likewise.
3893         (cpp_make_system_header):  Likewise use newest map and highest_line.
3894         * cppinit.c (cpp_create_reader):  Don't initialize removed field.
3895         * cpplex.c (_cpp_process_line_notes, _cpp_skip_block_comment,
3896         skip_line_comment, skip_whitespace, _cpp_get_fresh_line,
3897         _cpp_lex_direct):  Likewise use highest_line.
3898         (_cpp_lex_direct):  Use new LINEMAP_POSITION_FOR_COLUMN macro.
3899         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use highest_line,
3900         and use newest map.
3901         * cpppch.c (cpp_read_state):  Don't save+restore cpp_reader's line.
3902         * cpptrad.c (_cpp_overlay_buffer):  Don't save cpp_reader's line.
3903         (copy_comment, _cpp_scan_out_logical_line):  Likewise use highest_line.
3904
3905 2004-04-23  Alan Modra  <amodra@bigpond.net.au>
3906
3907         PR bootstrap/14992
3908         * gcc.c (init_gcc_specs): Test USE_LD_AS_NEEDED, not HAVE_LD_AS_NEEDED.
3909         * config/linux.h (USE_LD_AS_NEEDED): Define.
3910         * gcc/config/alpha/linux.h (USE_LD_AS_NEEDED): Define.
3911         * gcc/config/arm/linux-elf.h (USE_LD_AS_NEEDED): Define.
3912         * gcc/config/rs6000/linux.h (USE_LD_AS_NEEDED): Define.
3913         * gcc/config/rs6000/linux64.h (USE_LD_AS_NEEDED): Define.
3914         * gcc/config/sh/linux.h (USE_LD_AS_NEEDED): Define.
3915         * gcc/config/sparc/linux.h (USE_LD_AS_NEEDED): Define.
3916         * gcc/config/sparc/linux64.h (USE_LD_AS_NEEDED): Define.
3917
3918 2004-04-22  Per Bothner  <per@bothner.com>
3919
3920         * cppinit.c (cpp_read_main_file):  Return NULL rather than false.
3921         Fixes PR preprocessor/15067.
3922
3923 2004-04-23  Andreas Schwab  <schwab@suse.de>
3924
3925         * config/ia64/ia64intrin.h: Add intermediate cast to void * to
3926         avoid aliasing warning.
3927
3928 2004-04-22  Jan Hubicka  <jh@suse.cz>
3929             Mostafa Hagog <mustafa@il.ibm.com>
3930
3931       * cfgloopmanip.c (scale_bbs_frequencies): Use RDIV macro
3932       * cfgloopanal.c (expected_loop_iterations): Change the return value
3933
3934 2004-04-22  Jakub Jelinek  <jakub@redhat.com>
3935
3936         * cselib.h (struct elt_loc_list): Remove canon_loc field.
3937         * cselib.c (new_elt_loc_list): Remove canon_loc initialization.
3938         (cselib_invalidate_mem): Remove all canon_loc and canon_x
3939         traces.
3940
3941 2004-04-22  Josef Zlomek  <zlomekj@suse.cz>
3942
3943         Revert
3944         2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
3945
3946                 * var-tracking.c (variable_part_different_p): Variable parts
3947                 differ when the most recent locations differ.
3948
3949 2004-04-22  Richard Sandiford  <rsandifo@redhat.com>
3950
3951         * doc/invoke.texi: Remove the MIPS -membedded-pic option.
3952         * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): Delete.
3953         (embedded_pic_offset): Delete.
3954         * config/mips/mips.h (MASK_EMBEDDED_PIC): Delete.  Shuffle other
3955         MASK_* constants.
3956         (TARGET_EMBEDDED_PIC): Delete.
3957         (TARGET_SWITCHES): Remove -m{no-,}embedded-pic.
3958         (ASM_SPEC): Remove -membedded-pic.
3959         (ASM_OUTPUT_ADDR_DIFF_ELT): Remove embedded-pic handling.
3960         (ASM_OUTPUT_CASE_LABEL): Likewise.
3961         * config/mips/vxworks.h (ASM_SPEC): Remove -membedded-pic.
3962         * config/mips/windiss.h (ASM_SPEC): Likewise.
3963         * config/mips/mips.c (struct machine_function): Remove
3964         embedded_pic_fnaddr_rtx.
3965         (TARGET_ENCODE_SECTION_INFO): Remove override.
3966         (embedded_pic_fnaddr_reg, embedded_pic_offset): Delete.
3967         (override_options): Remove -membedded-pic handling.
3968         (print_operand): Remove handling of '%S'.
3969         (mips_select_section: Remove -membedded-pic handling.
3970         (mips_encode_section_info): Delete.
3971         (mips_output_conditional_branch): Remove mention of -membedded-pic.
3972         * config/mips/mips.md (define_attr length, movsi, movdi, jump): Remove
3973         -membedded-pic handling.
3974         (casesi, casesi_internal, casesi_internal_di, get_fnaddr): Delete.
3975
3976 2004-04-22  Alan Modra  <amodra@bigpond.net.au>
3977
3978         * var-tracking.c (frame_base_decl): Remove useless GTY.
3979
3980 2004-04-21  Aldy Hernandez  <aldyh@redhat.com>
3981
3982         * config/rs6000/rs6000.c (rs6000_override_options): Error when
3983         user wants altivec and e500 instructions.
3984
3985 2004-04-21  H.J. Lu  <hongjiu.lu@intel.com>
3986
3987         PR target/14813
3988         * config/ia64/crtend.asm: Move pointer to __do_global_ctors_aux
3989         in .init_array section to ...
3990         * config/ia64/crtbegin.asm: Here.
3991
3992         * config/ia64/crtend.asm: Mark __do_global_ctors_aux global
3993         and hidden if HAVE_INITFINI_ARRAY is defined.
3994
3995 2004-04-21  James E Wilson  <wilson@specifixinc.com>
3996
3997         * config/mips/mips-protos.h (fp_register_operand, lo_operand): Declare.
3998         * config/mips/mips.c (mips_multipass_dfa_lookahead): Declare.
3999         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): New.
4000         (fp_register_operand, lo_operand): New.
4001         (mips_rtx_costs): Add TUNE_SB1 support.
4002         (mips_issue_rate): Add comment.  Add PROCESSOR_SB1 support.
4003         (mips_use_dfa_pipeline_interface): Add PROCESSOR_SB1 support.
4004         (mips_multipass_dfa_lookahead): New.
4005         * config/mips/mips.h (MASK_FP_EXCEPTIONS, TARGET_FP_EXCEPTIONS,
4006         TUNE_SB1): New.
4007         (TARGET_SWITCHES): Add -mfp-exceptions support.
4008         (TARGET_FP_EXCEPTIONS_DEFAULT): New.
4009         (BRANCH_COST): Fix whitespace.
4010         * config/mips/mips.md: Include sb1.md.
4011         * config/mips/sb1.md: New file.
4012         * doc/invoke.texi: Document -mfp-exceptions.
4013
4014         * Makefile.in (fixinc.sh): Don't set or export WARN_CFLAGS.  Fix
4015         comment.
4016         * fixinc/Makefile.in (FL_LIST): Don't mention WARN_CFLAGS.
4017         (fixincl.o-warn): Delete.
4018
4019 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
4020
4021         * config/rs6000/rs6000 (print_operand) ['z']:
4022         Change ifdef of TARGET_MACHO to if TARGET_MACHO.
4023
4024 2004-04-21 Daniel Jacobowitz  <drow@mvista.com>
4025
4026         * config.gcc: Support --with-arch=iwmmxt for ARM.
4027
4028 2004-04-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4029
4030         * expmed.c (expand_mult_highpart_optab): Use narrower version of OP1
4031         in two more places; remove unneeded force_reg
4032
4033 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
4034
4035         * config/rs6000/rs6000.c (symbol_ref_operand): Remove hack
4036         for TARGET_MACHO.
4037         (print_operand): For TARGET_MACHO check to see if we need a stub
4038         and output one if we need it.
4039
4040         PR debug/15033
4041         * dwarf2out.c (rtl_for_decl_location): Check for NULL
4042         rtl.
4043
4044 2004-04-20  James E Wilson  <wilson@specifixinc.com>
4045
4046         * config/ia64/ia64.md (call_value_nogp): Add constraints for op0.
4047         (vall_value_gp): Likewise.
4048
4049 2004-04-20  DJ Delorie  <dj@redhat.com>
4050
4051         * dwarf2out.c (rtl_for_decl_location): Adjust rtl for byte
4052         variables stored in word registers, then in memory.
4053
4054 2004-04-20  Eric Christopher  <echristo@redhat.com>
4055
4056         * cp/parser.c (cp_parser_declaration): Move translate
4057         up before tokens are lexed.
4058
4059 2004-04-20  Uros Bizjak  <uros@kss-loka.si>
4060
4061         * optabs.h (enum optab_index): Add new OTI_asin and OTI_acos.
4062         (asin_optab, acos_optab): Define corresponding macros.
4063         * optabs.c (init_optabs): Initialize asin_optab and acos_optab.
4064         * genopinit.c (optabs): Implement asin_optab and acos_optab
4065         using asin?f2 and acos?f2 patterns.
4066         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_ASIN{,F,L}
4067         using asin_optab, and BUILT_IN_ACOS{,F,L} using acos_optab.
4068         (expand_builtin): Expand BUILT_IN_ASIN{,F,L} and BUILT_IN_ACOS{,F,L}
4069         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
4070
4071         * config/i386/i386.md (asindf2, asinsf2, asinxf2, acosdf2,
4072         acossf2, acosxf2): New expanders to implement asin, asinf, asinl,
4073         acos, acosf and acosl built-ins as inline x87 intrinsics.
4074
4075 2004-04-20  Paul Brook  <paul@codesourcery.com>
4076
4077         * config/arm/arm.c (arm_legitimate_address_p): Use rtx_equal_p.
4078
4079 2004-04-20  Paul Brook  <paul@codesourcery.com>
4080
4081         * config/arm/arm.c (arm_expand_prologue): Fix size calculation.
4082
4083 2004-04-20  Paolo Bonzini  <bonzini@gnu.org>
4084
4085         Revert part of 2004-04-17 change that moved -frename-registers
4086         to -O1.  -frename-registers is buggy.
4087
4088         * toplev.c (flag_rename_registers): Initialize to 0.
4089         * doc/invoke.texi (Optimize options): Move -frename-registers
4090         to "Not triggered by any -O level" section.  Adjust commentary
4091         accordingly.
4092
4093 2004-04-20  Anil Paranjpe <anilp1@kpitcummins.com>
4094
4095         * toplev.c (compile_file): Move targetm.asm_out.file_end call to end.
4096
4097 2004-04-20  Richard Sandiford  <rsandifo@redhat.com>
4098
4099         * config/mips/mips.c (mips_legitimize_move): Generate special patterns
4100         for mflo and mfhi instructions.
4101         (mips_output_move): Remove mflo and mfhi handling.
4102         * config/mips/mips.md (UNSPEC_MFHILO): New unspec.
4103         (*mulsidi3_64bit): Update for new mfhi/mflo representation.
4104         Likewise various define_peephole2s.
4105         (*movdi_32bit, *movdi_64bit, *movsi_internal): Merge x<-J and x<-d
4106         alternatives.
4107         (*movdi_64bit, *movdi_64bit_mips16, *mov[shq]i_internal)
4108         (*mov[shq]i_mips16): Remove mflo and mfhi alternatives.
4109         (mfhilo_di, mfhilo_si): New patterns.
4110
4111 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
4112
4113         * function.c (assign_parms): Force
4114         MEM_EXPR (DECL_INCOMING_RTL (parm)) == parm.
4115
4116 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
4117
4118         * var-tracking.c (variable_part_different_p): Variable parts differ
4119         when the most recent locations differ.
4120
4121 2004-04-19  James E Wilson  <wilson@specifixinc.com>
4122
4123         * rtl.h (reg_set_last): Delete declaration.
4124         * rtlanal.c (reg_set_last): Delete.
4125
4126 2004-04-19  Roger Sayle  <roger@eyesopen.com>
4127
4128         * fold-const.c (fold_convert): Make function extern/public.
4129         * tree.h (fold_convert): Prototype here.
4130         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
4131         expand_builtin_strrchr, expand_builtin_strpbrk,
4132         expand_builtin_mempcpy, expand_builtin_bcopy,
4133         expand_builtin_bzero, expand_builtin_memcmp,
4134         expand_builtin_strcmp, expand_builtin_strncmp,
4135         stabilize_va_list, expand_builtin_sprintf,
4136         fold_trunc_transparent_mathfn, fold_builtin_logarithm,
4137         fold_builtin_exponent, fold_builtin_mempcpy,
4138         fold_builtin_strcpy, fold_builtin_strcmp, fold_builtin_strncmp,
4139         fold_builtin_signbit, fold_builtin_isdigit, fold_builtin): Prefer
4140         fold_convert to "convert" or "fold (build1 (NOP_EXPR, ...))".
4141
4142 2004-04-19  Aldy Hernandez  <aldyh@redhat.com>
4143
4144         * config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): New constant.
4145         (move_from_CR_gt_bit): New.
4146         (cceq_ior_compare): Name previously unnamed pattern.  Disable for
4147         E500.
4148         (cceq_rev_compare): Name previously unnamed pattern.  Allow for
4149         E500.
4150
4151         * config/rs6000/spe.md (cmpsfeq_gpr): Rewrite as unspec.
4152         (tstsfeq_gpr): Same.
4153         (cmpsfgt_gpr): Same.
4154         (tstsfgt_gpr): Same.
4155         (cmpsflt_gpr): Same.
4156         (tstsflt_gpr): Same.
4157         (e500_cceq_ior_compare): New.
4158         (e500_flip_gt_bit): New.
4159
4160         * config/rs6000/rs6000.c (ccr_bit): Remove E500 specific code.
4161         (print_operand): Add 'c' and 'D'.
4162         (rs6000_generate_compare): Rewrite to generate correct rtl.
4163         (rs6000_emit_sCOND): Handle E500.
4164         (output_cbranch): Adjust for changes in rs6000_generate_compare.
4165         (output_e500_flip_gt_bit): New.
4166
4167         * config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit):
4168         Protoize.
4169
4170 2004-04-19  Eric Christopher  <echristo@redhat.com>
4171
4172         * config/mips/mips.h (DWARF2_ADDR_SIZE): New.
4173
4174 2004-04-19  David Edelsohn  <edelsohn@gnu.org>
4175
4176         * doc/install.texi (*-ibm-aix*): Add AIX 5.1 assembler and archiver
4177         fix information.
4178
4179 2004-04-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4180
4181         * doc/install.texi (Specific, mips-sgi-irix5): Fix IRIX 5.3 IDO
4182         download URL.
4183
4184 2004-04-19  Daniel Jacobowitz  <drow@mvista.com>
4185
4186         * stor-layout.c (layout_decl): Check DECL_PACKED before calling
4187         ADJUST_FIELD_ALIGN.  Check maximum_field_alignment after.
4188
4189 2004-04-19  Andrew PInski  <pinskia@physics.uc.edu>
4190
4191         * builtins.c (fold_builtin_cabs): Remove fndecl parameter.
4192         (fold_builtin): Update caller to match.
4193
4194         PR bootstrap/15009
4195         * bb-reorder.c (fix_up_fall_thru_edges): Init cond_jump.
4196
4197         PR bootstrap/14999
4198         * builtins.c (fold_builtin_cabs): Mark fndecl as unused.
4199
4200 2004-04-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4201
4202         * varasm.c (compare_constant, case VIEW_CONVERT_EXPR): Add case.
4203
4204         * expmed.c (expand_mult_highpart_adjust): Make OP1 valid for MODE.
4205         (expand_mult_highpart_optab): Likewise.
4206         (expand_mult_highpart): Make OP1 valid for WIDER_MODE, not MODE.
4207
4208 2004-04-19  Paul Brook  <paul@codesourcery.com>
4209
4210         * config/arm/arm.md (fixuns_truncsfsi2, fixuns_truncdfsi2,
4211         floatunssisf2, floatunssidf2): New patterns.
4212
4213 2004-04-18  Mark Mitchell  <mark@codesourcery.com>
4214
4215         PR other/14918
4216         * doc/invoke.texi (-fprofile-generate): Document requirement to
4217         use -fprofile-generate when linking.
4218
4219         * doc/extend.texi (Strong Using): Warn users against using this
4220         feature.
4221
4222 2004-04-18  Richard Sandiford  <rsandifo@redhat.com>
4223
4224         * config/mips/mips-protos.h (m16_usym8_4, m16_usym5_4): Delete.
4225         * config/mips/mips.h (mips_entry, mips_string_length): Delete.
4226         (CONSTANT_POOL_BEFORE_FUNCTION, ASM_OUTPUT_POOL_EPILOGUE): Undefine.
4227         * config/mips/mips.c (struct mips16_constant): Renamed from struct
4228         constant.  Propogate change throughout file.
4229         (struct machine_function): Remove insns_len.
4230         (mips_string_length, mips16_strings, string_constants): Delete.
4231         (mips_classify_symbol): Return SYMBOL_CONSTANT_POOL for LABEL_REFs
4232         when generating mips16 code.  Remove special mips16 treatment of
4233         string constants.
4234         (mips_symbolic_constant_p): Allow mips16 constant pool accesses
4235         to have the form LABEL+CONSTANT.
4236         (mips_symbolic_address_p): Fix comment.
4237         (m16_usym8_4, m16_usym5_4): Delete.
4238         (mips_output_function_epilogue): Remove mips16 string handling.
4239         (mips_output_mi_thunk): Call mips16_lay_out_constants.
4240         (mips_select_section, mips_encode_section_info): Remove mips16
4241         string handling.
4242         (struct mips16_constant_pool): New.
4243         (add_constant): Take a mips16_constant_pool structure.  Keep pool
4244         sorted into order of ascending mode size.  Keep track of the highest
4245         possible start address, taking padding and the masking of the base PC
4246         value into account.
4247         (dump_constants_1): New function, split out from dump_constants.
4248         Handle vector constants.  Use gen_consttable_{int,float} rather than
4249         separate functions for each mode.
4250         (dump_constants): Simplify.  Use GET_MODE_ALIGNMENT.  Use gen_align
4251         rather than separate functions for each alignment.
4252         (mips_find_symbol): Delete.
4253         (mips16_insn_length): New function, split out from
4254         mips16_lay_out_constants.
4255         (mips16_rewrite_pool_refs): New function.
4256         (mips16_lay_out_constants): Rework. Remove string handling.
4257         Always create an inline constant pool.
4258         * config/mips/mips.md (UNSPEC_CONSTTABLE_INT, UNSPEC_CONSTTABLE_FLOAT)
4259         (UNSPEC_ALIGN): New constants.
4260         (UNSPEC_CONSTTABLE_[QHSD]I, UNSPEC_CONSTTABLE_[SD]F): Delete.
4261         (UNSPEC_ALIGN_[248]): Delete.
4262         (consttable_int, consttable_float, align): New patterns.
4263         (consttable_[qhsd]i, consttable_[sd]f, align_[248]): Delete.
4264
4265 2004-04-17  Aldy Hernandez  <aldyh@redhat.com>
4266
4267         * config/rs6000/altivec.h (vec_any_numeric): Correct typo in
4268         __unn_args_eq.
4269
4270 2004-04-17  Alan Modra  <amodra@bigpond.net.au>
4271
4272         PR target/14715
4273         * config/rs6000/rs6000.c (rs6000_stack_info): Make parm_size agree
4274         with STARTING_FRAME_OFFSET.
4275
4276 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
4277
4278         * config/mips/mips.h (PREDICATE_CODES): Add macc_msac_operand.
4279         * config/mips/mips.c (macc_msac_operand): New function.
4280         * config/mips/mips.md (*msac): Move after *macc.
4281         (*msac2): New.  Generalize macc-related peepholes so that they apply
4282         to msac too.
4283
4284 2004-04-17  Paolo Bonzini  <bonzini@gnu.org>
4285
4286         * opts.c (decode_options): Do not enable flag_rename_registers
4287         and flag_web at -O3.
4288         * toplev.c (flag_rename_registers): Initialize
4289         flag_rename_registers and flag_web to
4290         AUTODETECT_FLAG_VAR_TRACKING.
4291         (default_debug_hooks): New global.
4292         (process_options): Initialize default_debug_hooks.  Warn if
4293         -fvar-tracking specified but not supported by the current
4294         debug format.  Do not run var tracking at -O0 or if not
4295         supported by the current debug format, even if
4296         -fvar-tracking was given.  If -fno-rename-registers
4297         is not specified, always run register renaming if var
4298         tracking is supported by the default debugging information
4299         format for the target, and we are at -O1 or higher; similarly
4300         for -fweb, but only at -O2 or higher.
4301         * doc/invoke.texi (Optimize Options): Document this.
4302
4303 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
4304
4305         * configure.ac (gcc_cv_ld_as_needed): Use AC_CACHE_CHECK.
4306         * configure: Regenerate.
4307
4308 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
4309
4310         * gcc.c (used_arg): Check whether an option has been removed.
4311
4312 2004-04-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4313
4314         * config.gcc (i[34567]86-*-solaris2*): Default to DWARF-2
4315         debugging on Solaris 7 and up.
4316
4317 2004-04-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4318
4319         * doc/install.texi (Specific, mips-sgi-irix5): Reflect working
4320         IRIX 5 port.
4321         Remove -save-temps workaround, handled automatically.
4322         Require GNU binutils 2.15 for debugging.
4323         Remove SGI make warnings since GNU make is now required.
4324         (Specific, mips-sgi-irix6): Some markup fixes.
4325         Describe MIPSpro C problems and workarounds.
4326         Mention working O32 ABI support.
4327         Recommend GNU as 2.15 for O32 with debugging.
4328         Remove description of fixed structure pass/return bug.
4329
4330 2004-04-16  DJ Delorie  <dj@redhat.com>
4331
4332         * sdbout.c (sdbout_one_type): Use TYPE_VALUES for enums, not
4333         TYPE_FIELDS.
4334         (sdbout_finish): Don't free deferred_global_decls; it's GC'd.
4335
4336 2004-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4337
4338         * pa.md: Remove unnecessary declarations for asm_out_file.
4339
4340         * pa64-regs.h (DBX_REGISTER_NUMBER): Simplify and correct mapping of
4341         SAR register.  Fix comment.
4342         (ADDITIONAL_REGISTER_NAMES): Correct register number of SAR register
4343         (%cr11).
4344
4345         * pa64-hpux.h (LIB_SPEC): Fix library specification used with GNU ld.
4346
4347 2004-04-16  Nick Clifton  <nickc@redhat.com>
4348
4349         * config/arm/arm.c (arm_override_options): Revert previous patch.
4350         * config/arm/t-xscale-elf: Disable iwmmxt multilibs until they can
4351         be safely built.
4352
4353 2004-04-16  Kazuhiro Inaoka <inaoka dot kazuhiro at renesas dot com>
4354
4355         * config/m32r/m32r.h (BIG_ENDIAN_BIT): Deleted to fix endian
4356         bug.
4357         (TARGET_LITTLE_ENDIAN, TARGET_BIG_ENDIAN,
4358         TARGET_DEFAULT): Changed. Ditto.
4359         (LITTLE_ENDIAN_BIT, TARGET_CPU_DEFAULT,
4360         TARGET_ENDIAN_DEFAULT): Added. Ditto.
4361         * config/m32r/little.h (TARGET_LITTLE_ENDIAN): Deleted.
4362         (TARGET_ENDIAN_DEFAULT): Added.
4363
4364 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4365
4366         * builtins.def (BUILT_IN_ISDIGIT, BUILT_IN_ISXDIGIT): Mark with
4367         ATTR_CONST_NOTHROW_LIST.
4368
4369 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4370
4371         PR/middle-end 14915
4372         * builtins.c (expand_builtin_signbit): Test BYTES_BIG_ENDIAN, not
4373         BITS_BIG_ENDIAN.
4374
4375 2004-04-15  Pat Haugen  <pthaugen@us.ibm.com>
4376
4377         * ra-debug.c (ra_print_rtx): Add break's to case legs.
4378
4379 2004-04-14  James E Wilson  <wilson@specifixinc.com>
4380
4381         * Makefile.in (fixinc.sh): Set WARN_CFLAGS to empty string.
4382
4383 2004-04-14  Nathanael Nerode  <neroden@gcc.gnu.org>
4384
4385         * libada-mk.in: New file.
4386         * configure.ac: Create libada-mk from libada-mk.in.
4387         * configure: Regenerate.
4388
4389 2004-04-14  Uros Bizjak  <uros@kss-loka.si>
4390
4391         * optabs.h (enum optab_index): Add new OTI_logb and OTI_ilogb.
4392         (logb_optab, ilogb_optab): Define corresponding macros.
4393         * optabs.c (init_optabs): Initialize logb_optab and ilogb_optab.
4394         * genopinit.c (optabs): Implement logb_optab and ilogb_optab
4395         using logb?f2 and ilogb?i2 patterns.
4396         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOGB{,F,L}
4397         using logb_optab, and BUILT_IN_ILOGB{,F,L} using ilogb_optab.
4398         (expand_builtin): Expand BUILT_IN_LOGB{,F,L} and BUILT_IN_ILOGB{,F,L}
4399         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
4400
4401         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_XTRACT_FRACT
4402         and UNSPEC_XTRACT_EXP.
4403
4404         * config/i386/i386.md (*fxtractdf3, *fxtractsf3, *fxtractxf3): New
4405         patterns to implement fxtract x87 instruction.
4406         (logbdf2, logbsf2, logbxf2, ilogbsi2): New expanders to implement
4407         logb, logbf, logbl, ilogb, ilogbf and ilogbl built-ins as inline x87
4408         intrinsics.
4409         (UNSPEC_XTRACT_FRACT, UNSPEC_XTRACT_EXP): New unspecs to represent
4410         x87's fxtract insn.
4411
4412 2004-04-14  Eric Christopher  <echristo@redhat.com>
4413
4414         * config/mips/t-elf: Enable multilibs by default.
4415
4416 2004-04-14  Andreas Tobler  <a.tobler@schweiz.ch>
4417
4418         * bb-reorder.c (fix_crossing_conditional_branches): Adjust the
4419         previous fix to check HAVE_return at runtime too.
4420
4421 2004-04-14  Nick Clifton  <nickc@redhat.com>
4422
4423         * config/arm/arm.c (arm_override_options): If the user has not
4424         specified an ABI, then default to AAPCS for the iWMMXt processor.
4425         * config/arm/t-xscale-elf: Remove redundant multilib specifications.
4426         * config/arm/t-xscale-coff: Likewise.
4427
4428 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4429
4430         * builtins.c (fold_builtin_isdigit): New.
4431         (fold_builtin): Handle BUILT_IN_ISDIGIT.
4432         * defaults.h: Add TARGET_DIGIT0 and sort.
4433         * doc/tm.texi: Add TARGET_BS and TARGET_DIGIT0.
4434
4435 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4436
4437         * builtins.c (fold_builtin_cabs, fold_builtin): Use
4438         `mathfn_built_in' to determine the new builtin.
4439         * fold-const.c (fold): Likewise.
4440
4441 2004-04-14  Richard Sandiford  <rsandifo@redhat.com>
4442
4443         * doc/invoke.texi: Rename MIPS's -mfix-vr4122-bugs to -mfix-vr4120.
4444         * config/mips/mips.h (MASK_FIX_VR4120): Renamed from MASK_FIX_VR4122.
4445         (TARGET_FIX_VR4120): Likewise TARGET_FIX_VR4122.
4446         (TARGET_SWITCHES): Replace -mfix-vr4122-bugs with -mfix-vr4120.
4447         (ASM_SPEC): Update accordingly.
4448         * config/mips/mips.c: Update after above renaming.
4449         * config/mips/mips.md, config/mips/t-vr, config/mips/vr.h: Likewise.
4450         * config/mips/vr4120-div.S: Renamed from vr4122-div.S.
4451
4452 2004-04-13  James E Wilson  <wilson@specifixinc.com>
4453
4454         * c-opt.c (c_common_post_options): If this_input_filename is NULL,
4455         increment errorcount and return false instead of true.
4456
4457 2004-04-13  Uros Bizjak  <uros@kss-loka.si>:
4458
4459         * optabs.c (expand_twoval_unop): Reorder function arguments.
4460         * builtins.c (expand_builtin_mathfn_3): Update calls to
4461         expand_twoval_unop.
4462
4463         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_TAN_ONE
4464         and UNSPEC_TAN_TAN. Add missing comment.
4465
4466         * config/i386/i386.md (*tandf3_1, *tansf3_1, *tanxf3_1): New
4467         patterns to implement fptan x87 instruction.
4468         (tandf2, tansf2, tanxf2): New expanders to implement tan, tanf
4469         and tanl built-ins as inline x87 intrinsics. Define corresponding
4470         peephole2 optimizers for 'fptan; fstp %st(0); fld1' sequence.
4471         (UNSPEC_TAN_ONE, UNSPEC_TAN_TAN): New unspecs to represent
4472         x87's fptan insn.
4473
4474 2004-03-13  Richard Henderson  <rth@redhat.com>
4475
4476         * bb-reorder.c (fix_crossing_unconditional_branches): Use Pmode
4477         for LABEL_REFs.
4478
4479         * defaults.h (HOT_TEXT_SECTION_NAME): Add leading dot.
4480         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Likewise.
4481         * doc/invoke.texi: Update to match.
4482
4483         * varasm.c (unlikely_text_section): Use assemble_align instead of
4484         ASM_OUTPUT_ALIGN.  Use it in the correct place with an approximately
4485         correct alignment argument.
4486
4487 2004-04-13  Ulrich Weigand  <uweigand@de.ibm.com>
4488
4489         * reload1.c (emit_reload_insns): Set reg_has_output_reload to one
4490         after setting reg_last_reload_reg for optional output reloads.
4491
4492 2004-04-12  Fariborz Jahanian <fjahanian@apple.com>
4493
4494         * config/rs6000/altivec.h (vec_mergeh, vec_mergel):
4495         Definition of these two macros are corrected by adding
4496         matchine right paren.
4497
4498 2004-04-12  Jonathan Larmour  <jifl@eCosCentric.com>
4499
4500         * fix-header.c: kill(), putenv() and tzset() are POSIX not ANSI.
4501
4502 2004-04-12  Roger Sayle  <roger@eyesopen.com>
4503
4504         * config/i386/i386.c (output_387_reg_move): New function.
4505         * config/i386/i386-protos.h (output_387_reg_move): Prototype here.
4506         * config/i386/i386.md (*movsf_1, *movsf1_nointerunit,
4507         *movdf_nointeger, *movdf_integer, *movxf_nointeger, *movxf_integer,
4508         *extendsfdf2_1,  *extendsfxf2_1, *extenddfxf2_1, truncdfsf2_noop,
4509         truncxfsf2_noop, truncxfdf2_noop): Call output_387_reg_move.
4510
4511 2004-04-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4512
4513         * c-decl.c (finish_decl): Make a decl_stmt for a variable-sized
4514         TYPE_DECL.
4515         * c-semantics.c (genrtl_decl_stmt): Handle TYPE_DECL.
4516         * stmt.c (expand_decl): Remove redundant expansion of TYPE_DOMAIN.
4517         * stor-layout.c (variable_size): Don't check for MINUS_EXPR.
4518         Use skip_simple_arithmetic to find SAVE_EXPR.
4519         (force_type_save_exprs, force_type_save_exprs_1): New functions.
4520         * tree-inline.c (remap_type, case POINTER_TYPE, case REFERENCE_TYPE):
4521         Properly chain multiple pointers.
4522         (copy_tree_r): Copy a TYPE_DECL.
4523         * tree.c (variably_modified_type_p): Add some missing tests and
4524         make some other minor changes.
4525         * tree.h (force_type_save_exprs): New declaration.
4526
4527 2004-04-12  Roger Sayle  <roger@eyesopen.com>
4528
4529         * simplify-rtx.c (simplify_binary_operation) <UDIV, DIV, UMOD, MOD>:
4530         Remove fall throughs.  Convert 0/x and 0%x into x&0 when x has
4531         side-effects.  Don't convert x/1.0 into x if we honor signaling NaNs.
4532         Convert x/-1.0 into -x if we don't honor signaling NaNs.  Convert
4533         x/-1 into -x.  Optimize x%1 into x&0 if x has side-effects.  Optimize
4534         x%-1 into 0 (or x&0 if x has side-effects).
4535
4536 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
4537
4538         * config/rs6000/rs6000.md: Document why a pattern is not
4539         available.
4540
4541         * config/rs6000/rs6000.c (rs6000_emit_cmove): Disable comparisons
4542         of floats on the E500.
4543         (branch_positive_comparison_operator): Do not allow NE even on the
4544         E500.
4545
4546 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
4547
4548         * config/rs6000/rs6000.c (rs6000_assemble_integer): Change
4549         in_text_unlikely_section to in_unlikely_text_section.
4550
4551 2004-04-11  Roger Sayle  <roger@eyesopen.com>
4552
4553         * fold-const.c (fold_binary_op_with_conditional_arg):  Tweak
4554         calling convention to allow a NULL_TREE to be returned.  Factor
4555         sanity checks from callers, return NULL_TREE when appropriate.
4556         (fold): Handle COMPOUND_EXPR operands of binary expressions
4557         before COND_EXPR operands.  Use reorder_operands_p(a,b) to check
4558         whether a op (b,c) can be rewritten as (b, a op c).  Simplify
4559         calls to fold_binary_op_with_conditional_arg.
4560
4561 2004-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4562
4563         * config/mips/iris5.h (current_section_flags):  Add
4564         in_unlikely_executed_text and default case.
4565
4566 2004-04-11  Andreas Tobler  <a.tobler@schweiz.ch>
4567
4568         * bb-reorder.c (fix_crossing_conditional_branches): Fix bootstrap
4569         failure on solaris. Place ifdef HAVE_return around gen_ret call.
4570         * cfgrtl.c (force_nonfallthru_and_redirect): Remove ifdef
4571         HAVE_return and place it around the place where it is needed.
4572
4573 2004-04-11  Andrew Pinski  <pinskia@physics.uc.edu>
4574
4575         * varasm.c (text_section): Use TEXT_SECTION_ASM_OP and
4576         ASM_OUTPUT_ALIGN instead of SECTION_FORMAT_STRING
4577         and NORMAL_TEXT_SECTION_NAME.
4578         (unlikely_text_section): Check targetm.have_named_sections
4579         instead of TARGET_ASM_NAMED_SECTION and use TEXT_SECTION_ASM_OP
4580         instead of SECTION_FORMAT_STRING.
4581         * config/mips/iris5.h (current_section_name): Add
4582         in_unlikely_executed_text case and move the abort into the switch.
4583         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME): Remove.
4584         (NORMAL_TEXT_SECTION_NAME): Remove.
4585         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
4586         (SECTION_FORMAT_STRING): Remove.
4587         * defaults.h (SECTION_FORMAT_STRING): Remove.
4588         * tm.texi (NORMAL_TEXT_SECTION_NAME): Remove.
4589         (SECTION_FORMAT_STRING): Remove.
4590
4591 2004-04-10  Joseph S. Myers  <jsm@polyomino.org.uk>
4592
4593         * c-typeck.c (common_type): Prefer long long to long when same
4594         precision.
4595
4596 2004-04-09  Zack Weinberg  <zack@codesourcery.com>
4597
4598         PR 14887
4599         * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Look only at
4600         mode argument.
4601         * config/ia64/ia64.c (ia64_hpux_file_end): Check
4602         TREE_SYMBOL_REFERENCED on DECL_ASSEMBLER_NAME, not DECL_NAME.
4603
4604 2004-04-09  Roger Sayle  <roger@eyesopen.com>
4605
4606         * simplify-rtx.c (mode_signbit_p): New function to check whether
4607         an RTX is an immediate constant that represents the most significant
4608         bit of a given machine mode.
4609         (simplify_unary_operation) <NOT>: Optimize ~(X+C) as X ^ ~C, where
4610         C is the sign bit.
4611         (simplify_binary_operation) <PLUS>: Optimize (X^C1) + C2 as X^(C1^C2)
4612         when C2 is the sign bit.
4613         (simplify_binary_operation) <XOR>: Canonicalize X^C as X+C when C
4614         is the sign bit.  Optimize (X+C1) ^ C2 as X^(C1^C2) when C1 is the
4615         sign bit.
4616
4617 2004-04-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4618
4619         * builtins.c (mathfn_built_in): Check TYPE_MAIN_VARIANT, not
4620         TYPE_MODE.
4621
4622 2004-04-09  Andrew Pinski  <pinskia@physics.uc.edu>
4623
4624         * c-common.c (handle_noreturn_attribute): Use TYPE_READONLY instead
4625         of TREE_READONLY for types.
4626
4627 2004-04-09  Caroline Tice  <ctice@apple.com>
4628
4629         * basic-block.h (struct edge_def):  Add new field, crossing_edge.
4630         (struct basic_block_def):  Add new field, partition.
4631         (UNPARTITIONED, HOT_PARTITION, COLD_PARTITION):  New constant macro
4632         definitions.
4633         (partition_hot_cold_basic_blocks): Add extern function
4634         declaration.
4635         * bb-reorder.c (function.h, obstack.h, expr.h, regs.h):  Add four new
4636         include statements.
4637         (N_ROUNDS): Increase the maximum number of rounds by 1.
4638         (branch_threshold): Add array value for new round.
4639         (exec_threshold): Add array value for new round.
4640         (push_to_next_round_p): New function.
4641         (add_unlikely_executed_notes): New function.
4642         (find_rarely_executed_basic_blocks_and_crossing_edges): New function.
4643         (mark_bb_for_unlikely_executed_section): New function.
4644         (add_labels_and_missing_jumps): New function.
4645         (add_reg_crossing_jump_notes): New function.
4646         (fix_up_fall_thru_edges): New function.
4647         (find_jump_block): New function.
4648         (fix_crossing_conditional_branches): New function.
4649         (fix_crossing_unconditional_branches): New function.
4650         (fix_edges_for_rarely_executed_code): New function.
4651         (partition_hot_cold_basic_blocks): New function.
4652         (find_traces):  Add an extra round for partitioning hot/cold
4653         basic blocks.
4654         (find_traces_1_round): Add a parameter.  Modify to push all cold blocks,
4655         and only cold blocks, into the last (extra) round of collecting traces.
4656         (better_edge_p): Add a parameter.  Modify to favor non-crossing edges
4657         over crossing edges.
4658         (bb_to_key):  Add code to correctly identify cold blocks when
4659         doing partitioning.
4660         (connect_traces): Modify to connect all the non-cold traces first, then
4661         go back and connect up all the cold traces.
4662         (reorder_basic_blocks):  Add call to add_unlikely_executed_notes.
4663         * cfg.c (entry_exit_blocks): Add initialization for partition field in
4664         entry and exit blocks.
4665         * cfgbuild.c (make_edges): Update current_function_has_computed_jump
4666         if we are doing hot/cold partitioning.
4667         * cfgcleanup.c (cfglayout.h): Add new include statement.
4668         (try_simplify_condjump): Modify to not attempt on blocks with jumps
4669         that cross section boundaries.
4670         (try_forward_edges): Likewise.
4671         (merge_blocks_move_predecessor_nojumps): Likewise.
4672         (merge_blocks_move_successor_nojumps): Likewise.
4673         (merge_blocks_move): Likewise.
4674         (try_crossjump_to_edge): Modify to not attempt after we have done
4675         the block partitioning.
4676         (try_crossjump_bb): Modify to not attempt on blocks with jumps that
4677         cross section boundaries.
4678         (try_optimize_cfg): Likewise.
4679         * cfghooks.c (tidy_fallthru_edges): Modify to not remove indirect
4680         jumps that cross section boundaries.
4681         * cfglayout.c (flags.h): Add new include statement.
4682         (update_unlikely_executed_notes):  New function.
4683         (fixup_reorder_chain):  Add code so when a new jumping basic block is
4684         added, it's UNLIKELY_EXECUTED_CODE and REG_CROSSING_JUMP notes are
4685         updated appropriately.
4686         (duplicate_insn_chain):  Add code to duplicate the new NOTE insn
4687         introduced by this optimization.
4688         * cfglayout.h (scan_ahead_for_unlikely_executed_note):  Add new
4689         extern function declaration.
4690         * cfgrtl.c (can_delete_note_p):  Add NOTE_INSN_UNLIKELY_EXECUTED_CODE to
4691         list of notes that can be deleted.
4692         (create_basic_block_structure):  Add initialization for partition field.
4693         (rtl_can_merge_blocks):  Modify to test blocks for jumps that cross
4694         section boundaries.
4695         (try_redirect_by_replacing_jump):  Modify to not attempt on jumps that
4696         cross section boundaries.
4697         (commit_one_edge_insertion): Add code so newly created basic block
4698         ends up in correct (hot or cold) section.  Modify to disallow
4699         insertions before NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
4700         (rtl_verify_flow_info_1):  Add code to verify that no fall_thru edge
4701         crosses section boundaries.
4702         (cfg_layout_can_merge_blocks_p): Modify to test blocks for jumps that
4703         cross section boundaries.
4704         (force_nonfallthru_and_redirect): Modify to make sure new basic block
4705         ends up in correct section, with correct notes attached.
4706         * common.opt (freorder-blocks-and-partition):  Add new flag for this
4707         optimization.
4708         * dbxout.c (dbx_function_end):  Add code to make sure scope labels at
4709         the end of functions are written into the correct (hot or cold)
4710         section.
4711         (dbx_source_file): Add code so writing debug file information
4712         doesn't incorrectly change sections.
4713         * defaults.h (NORMAL_TEXT_SECTION_NAME): New constant macro, for use
4714         in partitioning hot/cold basic blocks into separate sections.
4715         (SECTION_FORMAT_STRING): New constant macro, for linux/i386 hot/cold
4716         section partitioning.
4717         (HAS_LONG_COND_BRANCH): New constant macro, indicating whether or not
4718         conditional branches can span all of memory.
4719         (HAS_LONG_UNCOND_BRANCH): New constant macro, indicationg whether or not
4720         unconditional branches can span all of memory.
4721         * final.c (scan_ahead_for_unlikely_executed_note):  New function.
4722         (final_scan_insn):  Add code to check for NOTE instruction indicating
4723         whether basic block belongs in hot or cold section, and to make sure
4724         the current basic block is being written to the appropriate section.
4725         Also added code to ensure that jump table basic blocks end up in the
4726         correct section.
4727         * flags.h (flag_reorder_blocks_and_partition):  New flag.
4728         * ifcvt.c (find_if_case_1):  Modify to not attempt if conversion if
4729         one of the branches has a jump that crosses between sections.
4730         (find_if_case_2): Likewise.
4731         (ifcvt): Modify to not attempt to mark loop exit edges after
4732         hot/cold partitioning has occurred.
4733         * opts.c (decode_options): Code to handle new flag,
4734         flag_reorder_blocks_and_partition; also to turn it off if
4735         flag_exceptions is on.
4736         (common_handle_option): Code to handle new flag,
4737         flag_reorder_blocks_and_partition.
4738         * output.h (unlikely_text_section): New extern function declaration.
4739         (in_unlikely_text_section): New extern function declaration.
4740         * passes.c (rest_of_handle_stack_regs):  Add
4741         flag_reorder_blocks_and_partition as an 'or' condition for calling
4742         reorder_basic_blocks.
4743         (rest_of_handle_reorder_blocks):  Add flag_reorder_blocks_and_partition
4744         as an 'or' condition for calling reorder_basic_blocks.
4745         (rest_of_compilation):  Add call to partition_hot_cold_basic_blocks.
4746         * print-rtl.c (print_rtx): Add code for handling new note,
4747         NOTE_INSN_UNLIKELY_EXECUTED_CODE
4748         * rtl.c  (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note insn (see below).
4749         (REG_CROSSING_JUMP): New kind of reg_note, to mark jumps that
4750         cross between section boundaries.
4751         * rtl.h (NOTE_INSN_UNLIKELY_EXECUTED_CODE):  New note instruction,
4752         indicating the basic block containing it belongs in the cold section.
4753         (REG_CROSSING_JUMP): New type of reg_note, to mark jumps that cross
4754         between hot and cold sections.
4755         * toplev.c (flag_reorder_blocks_and_partition):  Add code to
4756         initialize this flag, and to tie it to the command-line option
4757         freorder-blocks-and-partition.
4758         * varasm.c (cfglayout.h):  Add new include statement.
4759         (unlikely_section_label_printed):  New global variable, used for
4760         determining when to output section name labels for cold sections.
4761         (in_section):  Add in_unlikely_executed_text to enum data structure.
4762         (text_section):  Modify code to use SECTION_FORMAT_STRING and
4763         NORMAL_TEXT_SECTION_NAME macros.
4764         (unlikely_text_section):  New function.
4765         (in_unlikely_text_section):  New function.
4766         (function_section):  Add code to make sure beginning of function is
4767         written into correct section (hot or cold).
4768         (assemble_start_function):  Add code to make sure stuff is written to
4769         the correct section.
4770         (assemble_zeros):  Add in_unlikely_text_section as an 'or' condition
4771         to an if statement that was checking 'in_text_section'.
4772         (assemble_variable):  Add 'in_unlikely_text_section' as an 'or'
4773         condition to an if statement that was checking 'in_text_section'.
4774         (default_section_type_flags_1):  Add check: if in cold section
4775         flags = SECTION_CODE.
4776         * config/darwin.c (darwin_asm_named_section):  Modify to use
4777         SECTION_FORMAT_STRING if we are partitioning hot/cold blocks.
4778         * config/i386/i386.h (HAS_LONG_COND_BRANCH): Defined this macro
4779         specifically for the i386.
4780         (HAS_LONG_UNCOND_BRANCH):  Defined this macro specifically for the i386.
4781         * config/rs6000/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Change
4782         text string to something more informative.
4783         (NORMAL_TEXT_SECTION_NAME): Add new definition.
4784         (SECTION_FORMAT_STRING):  Add new definition.
4785         * config/rs6000/rs6000.c (rs6000_assemble_integer):  Add
4786         '!in_unlikely_text_section' as an 'and' condition to an if statement
4787         that was already checking '!in_text_section'.
4788         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME,NORMAL_TEXT_SECTION_NAME,
4789         UNLIKELY_EXECUTED_TEXT_SECTION_NAME,SECTION_FORMAT_STRING): Make
4790         sure these are properly defined for linux on ppc.
4791         * doc/invoke.texi  (freorder-blocks-and-partition): Add documentation
4792         for this new flag.
4793         * doc/rtl.texi (REG_CROSSING_JUMP):  Add documentation for new
4794         reg_note.
4795         * doc/tm.texi (NORMAL_TEXT_SECTION_NAME, SECTION_FORMAT_STRING,
4796         HAS_LONG_COND_BRANCH, HAS_LONG_UNCOND_BRANCH): Add documentation for
4797         these new macros.
4798
4799 2004-04-08  Roger Sayle  <roger@eyesopen.com>
4800
4801         * function.c (gen_mem_addressof): When changing the RTX from a REG
4802         to a MEM, clear MEM_VOLATILE_P which was formerly REG_USERVAR_P.
4803
4804 2004-04-08  Roger Sayle  <roger@eyesopen.com>
4805
4806         PR target/14888
4807         * config/i386/i386.md (truncdfsf2_noop, truncxfsf2_noop,
4808         truncxfdf2_noop): Provide dummy "fmov" implementations.
4809
4810 2004-04-08  Ian Lance Taylor  <ian@wasabisystems.com>
4811
4812         * gcc.c (default_compilers): Add missing initializers.
4813
4814         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
4815         Return 1 if file was successfully mapped.
4816
4817 2004-04-08  Geoffrey Keating  <geoffk@apple.com>
4818
4819         PR pch/13419
4820         PR pch/14137
4821         Radar #: 3315288
4822         * doc/invoke.texi (Precompiled Headers): Suggest -o
4823         to put an output file in a particular place.  Be more detailed
4824         about which options affect PCH validity and which options
4825         might not work.
4826         * c-pch.c (pch_matching): New.
4827         (MATCH_SIZE): New.
4828         (struct c_pch_validity): New field 'match'.
4829         (pch_init): Handle pch_matching.
4830         (c_common_valid_pch): Check pch_matching.
4831
4832         * explow.c: Fix typo defining default of PROMOTE_FUNCTION_MODE.
4833
4834 2004-04-08  Mark Mitchell  <mark@codesourcery.com>
4835
4836         * doc/invoke.texi (Precompiled Headers): Warn about known
4837         problems.
4838
4839 2004-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
4840
4841         PR c++/14808
4842         * defaults.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): New macro. Default
4843         to 1 if ASM_OUTPUT_DEF is defined.
4844         * doc/tm.texi (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document.
4845         * config/i386/cygming.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): Define.
4846         Set to non-zero iff not a one_only decl.
4847
4848 2004-04-08  Paul Brook  <paul@codesourcery.com>
4849
4850         * arm.h (CLASS_LIKELY_SPILLED_P): Define.
4851
4852 2004-04-08  Paul Brook  <paul@codesourcery.com>
4853
4854         * explow.c (promote_mode): Use PROMOTE_FUNCTION_MODE instead of
4855         PROMOTE_FOR_CALL_ONLY.
4856         * config/arm/arm-protos.h (arm_function_value): Declare.
4857         * config/arm/arm.h (TARGET_PROMOTE_FUNCTION_ARGS): Define.
4858         (TARGET_PROMOTE_PROTOTYPES): Return false.
4859         (arm_function_value): New function.
4860         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Define.
4861         (FUNCTION_VALUE): Call arm_function_value.
4862         * config/cris/cris.h (PROMOTE_MODE): Rename ...
4863         (PROMOTE_FUNCTION_MODE): ... to this.
4864         (PROMOTE_FOR_CALL_ONLY): Remove.
4865         * config/mmix/mmix.h: Likewise.
4866         * config/s390/s390.h: Likewise.
4867         * config/sparc/sparc.h: Likewise.
4868         * config/sparc/sparc.c: Update comments about PROMOTE_MODE.
4869         * doc/tm.texi (PROMOTE_FUNCTION_MODE): Document.
4870         (TARGET_PROMOTE_FUNCTION_MODE, TARGET_PROMOTE_FUNCTION_RETURN): Update.
4871         (PROMOTE_FOR_CALL_ONLY): Remove.
4872
4873 2004-04-08  Joel Sherrill <joel@oarcorp.com>
4874
4875         PR ada/14538
4876         * ada/5rosinte.adb: Remove fake mprotect() body.
4877         * ada/5rosinte.ads: Add SA_SIGINFO.
4878         * ada/5rtpopsp.adb: Rewrite to use new interface.
4879         * ada/init.c: Reorder so the simple single OS conditional __rtems__
4880         is tested before more complex ones which mix UNIX and embedded
4881         systems in the conditional.
4882
4883 2004-04-08  Joel Sherrill  <joel@oarcorp.com>
4884
4885         PR ada/14665
4886         * ada/osint.adb (Find_Program_Name): Rework to properly handle
4887         filenames which end in .exe or have versioning suffixes like VMS.
4888
4889 2004-04-08  Andrew Pinski  <pinskia@physics.uc.edu>
4890
4891         PR target/10129
4892         * config/darwin.c (darwin_encode_section_info): When the decl has
4893         a DECL_INITIAL, it is only defined also when it is not a common.
4894
4895 2004-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4896
4897         * builtins.c (fold_builtin_isascii, fold_builtin_toascii): New.
4898         (fold_builtin): Handle BUILT_IN_ISASCII and BUILT_IN_TOASCII.
4899
4900 2004-04-07  H.J. Lu  <hongjiu.lu@intel.com>
4901
4902         * config/ia64/ia64.c (ia64_encode_section_info): Don't prod
4903         global register variables.
4904
4905 2004-04-07  Joseph S. Myers  <jsm@polyomino.org.uk>
4906
4907         * fixinc/inclhack.def (rpc_xdr_lvalue_cast_a,
4908         rpc_xdr_lvalue_cast_b): New fixes.
4909         * fixinc/fixincl.x: Regenerate.
4910         * fixinc/tests/base/rpc/xdr.h: Add new tests.
4911
4912 2004-04-07  David Edelsohn  <edelsohn@gnu.org>
4913
4914         * config/rs6000/rs6000.c (processor_target_table): Add MASK_MFCRF
4915         to power4 and power5 entries.
4916
4917 2004-04-06  Geoffrey Keating  <geoffk@apple.com>
4918
4919         * c-common.h (pending_lang_change): Mark for PCH.
4920
4921 2004-04-07  Caroline Tice  <ctice@apple.com>
4922
4923         * gcc.c (main): Move 'break' in main loops (on an error)
4924         to wait until error processing has occurred.
4925
4926 2004-04-06  Nathanael Nerode  <neroden@gcc.gnu.org>
4927
4928         * config.gcc: Stop changing enable_threads midstream.
4929         Replace uses of enable_threads_flag with enable_threads.
4930         * configure.ac: Replace uses of enable_threads_flag with
4931         enable_threads.  Improve autoconf quotation in one place.
4932         * configure: Regenerate.
4933
4934 2004-04-06  Uros Bizjak  <uros@kss-loka.si>
4935
4936         * builtins.c: Implement support for sincos function.
4937         (expand_builtin_mathfn): Remove BUILT_IN_SIN{,F,L} and
4938         BUILT_IN_COS{,F,L}.
4939         (expand_builtin_mathfn_3): New function.
4940         (expand_builtin): Expand BUILT_IN_SIN{,F,L} and
4941         BUILT_IN_COS{,F,L} using expand_builtin_mathfn_3 if
4942         flag_unsafe_math_optimization is set.
4943
4944         * optabs.h (enum optab_index): Add new OTI_sincos.
4945         (sincos_optab): Define corresponding macro.
4946
4947         * optabs.c (init_optabs): Initialize sincos_optab.
4948         (expand_twoval_unop): New function.
4949
4950         * genopinit.c (optabs): Implement sincos_optab using sincos?f3
4951         patterns.
4952
4953         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_SINCOS_COS
4954         and UNSPEC_SINCOS_SIN.
4955
4956         * config/i386/i386.md (sincosdf3, sincossf3, *sincosextendsfdf3,
4957         sincosxf3): New patterns to implement sincos, sincosf and sincosl
4958         built-ins as inline x87 intrinsics. Define splits for
4959         sindf2, sinsf2, *sinextendsfdf2, sinxf2, cosdf2,
4960         cossf2, *cosextendsfdf2 and cosxf2 patterns from corresponding
4961         sincos patterns.
4962         (sindf2, sinsf2, sinxf2): Rename to *sindf2, *sinsf2, *sinxf2.
4963         (cosdf2, cossf2, cosxf2): Rename to *cosdf2, *cossf2, *cosxf2.
4964
4965         (UNSPEC_SINCOS_SIN, UNSPEC_SINCOS_COS): New unspecs to represent
4966         x87's fsincos insn.
4967
4968 2004-04-06  Devang Patel  <dpatel@apple.com>
4969
4970         PR 14467
4971         * config/darwin.h (LINK_COMMAND_SPEC): Use c++filt instead of c++filt3.
4972
4973 2004-04-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4974
4975         * doc/install.texi: Update HP-UX 11 installation procedure.
4976
4977 2004-04-06  Paul Brook  <paul@codesourcery.com>
4978
4979         * doc/sourcebuild.texi: Remove obsolete contraint on testcases.
4980
4981 2004-04-05  Kaz Kojima  <kkojima@gcc.gnu.org>
4982
4983         * config/sh/sh.c (prepare_move_operands): Use emit_call_insn
4984         when the TLS address is generated by a function call.
4985         * config/sh/sh.md (tls_global_dynamic): Use a call expression.
4986         (tls_local_dynamic): Likewise.
4987
4988 2004-04-05  Andrew Pinski  <pinskia@physics.uc.edu>
4989
4990         * tree.c (reconstruct_complex_type): Use TYPE_READONLY
4991         and TYPE_VOLATILE.
4992
4993 2004-04-05  Caroline Tice  <ctice@apple.com>
4994
4995         * gcc.c (combine_flag): New global variable, for new driver option.
4996         (struct compiler): Add two new fields, to be used when
4997         combining multiple input files in a single pass (IMA).
4998         (default_compilers):  Add values for the new fields to all
4999         compiler entries. Modify the "@c" compiler entry for doing IMA
5000         properly with "-save-temps" and the "combine" flag.
5001         (option_map):  Add new driver option, "--combine", to tell driver
5002         to pass multiple input files to compiler at one time.
5003         (have_o_argbuf_index): New global variable.
5004         (store_arg): Modify to assign value to have_o_argbuf_index.
5005         (struct infile):  Add three new fields, to help with IMA.
5006         (display_help): Add help for new "combine" option.
5007         (process_command): Remove local variable have_o; add code to check
5008         for new "combine" option; remove assignment to combine_inputs.
5009         (do_spec_1):  Modify to deal with IMA better.
5010         (main): Make variable 'lang_n_infiles' local to entire function
5011         rather than to a single block.  Use flag combine_flag to
5012         determine whether to do IMA or not; Modify loop initializing
5013         infiles to deal properly with linker files.
5014         Add code for doing preprocessing in presence of
5015         IMA with "-save-temps" flag.  Modify "main" loop to handle
5016         multiple input files, in multiple languages, with or without
5017         preprocessing,  gracefully.
5018         * toplev.c (set_src_pwd): Modify to not complain if attempting to
5019         re-set it to same directory it's previously been set to (avoid
5020         irritating, meaningless warning messages when doing IMA with
5021         save-temps).
5022         * doc/invoke.texi: Add "-combine" to list of Overall Options;
5023         remove documentation about IMA that is no longer accurate; Add
5024         documentation explaining what "-combine" does.
5025         * ada/lang-specs.h: Add initialization values for new fields in
5026         "struct compiler".
5027         * cp/lang-specs.h: Likewise.
5028         * f/lang-specs.h: Likewise.
5029         * java/lang-specs.h: Likewise.
5030         * objc/lang-specs.h: Likewise.
5031         * treelang/lang-specs.h: Likewise.
5032
5033 2004-04-05  David Edelsohn
5034
5035         * config/rs6000/rs6000.c (VTABLE_NAME_P): Add _ZTI to special
5036         symbol handling.
5037
5038 2004-04-05  Jakub Jelinek  <jakub@redhat.com>
5039             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5040
5041         PR optimization/13424 (hppa), bootstrap/14462, c/14828
5042         * pa.md: Use replace_equiv_address to retain the attributes of the
5043         memory operands used in the split and peephole2 patterns for optimizing
5044         the pre-reload movstrsi, movstrdi, clrstrsi and clrstrdi patterns.
5045
5046 2004-04-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5047
5048         * c-decl.c (build_compound_literal): Use TYPE_READONLY.
5049         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
5050         * objc/objc-act.c (adorn_decl, gen_declspecs): Likewise.
5051         * c-typeck.c (decl_constant_value): Don't access DECL_INITIAL of a
5052         PARM_DECL.
5053         * calls.c (flags_from_decl_or_type): Use TYPE_READONLY and do so only
5054         for a type.
5055         * print-tree.c (print_node): Properly handle side-effects, readonly,
5056         and constant flags.
5057         * tree.c (build1_stat, build_expr_wfl): Only look at TREE_SIDE_EFFECTS
5058         and TREE_CONSTANT if not a type.
5059         * tree.h (IS_NON_TYPE_CODE_CLASS): New macro.
5060         (IS_EXPR_CODE_CLASS): Write 'E', not 'e'.
5061         (NON_TYPE_CHECK): New macro.
5062         (TREE_SIDE_EFFECT, TREE_READONLY, TREE_CONSTANT: Add check.
5063
5064 2004-04-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
5065
5066         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Set
5067         to DWARF2_DEBUG unconditionally.
5068         (ASM_DEBUG_SPEC): Set the default to --gdwarf2 unconditionally.
5069
5070 2004-04-04  Ian Lance Taylor  <ian@wasabisystems.com>
5071             Nathanael Nerode  <neroden@gcc.gnu.org>
5072
5073         PR target/14548
5074         * config.host: Set the shell variable host_can_use_collect2.
5075         Set it to yes by default, and to no for alpha*-dec-*vms*,
5076         i[34567]86-*-mingw32*, and powerpc-*-beos*.
5077         * configure.ac: Set and substitute the shell variable collect2.
5078         Give an error if use_collect2 is yes and host_can_use_collect2 is
5079         no.
5080         * Makefile.in (COLLECT2): Rename from USE_COLLECT2.  Change all
5081         uses.  Initialize to @collect2@.
5082         (STAGESTUFF): Remove $(USE_COLLECT2).
5083         * config/alpha/x-vms (USE_COLLECT2): Don't set.
5084         * config/i386/t-mingw32 (USE_COLLECT2): Likewise.
5085         * config/rs6000/t-beos (USE_COLLECT2): Likewise.
5086         * config/pa/t-pa64: Remove commented out USE_COLLECT2.
5087         * configure: Regenerate.
5088
5089 2004-04-04  Roger Sayle  <roger@eyesopen.com>
5090
5091         * simplify-rtx.c (simplify_binary_operation): Constant fold
5092         DIV, MOD, UDIV and UMOD using div_and_round_double.
5093
5094 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
5095
5096         PR c++/14804
5097         * varasm.c (initializer_constant_valid_p): Allow NOP_EXPRs to
5098         RECORD_TYPEs.
5099
5100 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
5101
5102         * doc/invoke.texi (-mabi=o64): Create link to O64 ABI
5103         documentation.
5104
5105 2004-04-04  Roger Sayle  <roger@eyesopen.com>
5106
5107         * cse.c (cse_insn): Correct usage of simplify_replace_rtx when
5108         updating the REG_EQUAL note on an insn's libcall_insn.
5109
5110 2004-04-04  Roger Sayle  <roger@eyesopen.com>
5111
5112         * df.h: Tidy up whitespace in the definitions of the DF_ flags.
5113
5114 2004-04-03  Roger Sayle  <roger@eyesopen.com>
5115
5116         * fold-const.c (fold) <PLUS_EXPR>: Guard (-A)+B -> B-A transformation
5117         with reorder_operands_p.
5118
5119 2004-04-03  Jan Hubicka  <jh@suse.cz>
5120
5121         * md.texi (vec_set, vec_extract, vec_init): Document.
5122
5123 2004-04-02  Gabor Loki <loki@inf.u-szeged.hu>
5124
5125        * opts.c (decode_options): Do function inlining with very small
5126        max-inline-insns-* parameters when optimizing for size.
5127
5128 2004-04-02  Vladimir Makarov  <vmakarov@redhat.com>
5129
5130         * config/i386/i386.h (TARGET_NOCONA): New macro.
5131         (TARGET_CPU_CPP_BUILTINS): Add code for Nocona.
5132         (processor_type): Add PROCESSOR_NOCONA.
5133
5134         * config/i386/i386.md (cpu): Add nocona to the attribute values.
5135
5136         * config/i386/i386.c (nocona_cost): New variable.
5137         (m_NOCONA): New macro.
5138         (x86_push_memory, x86_movx, x86_cmove, x86_deep_branch,
5139         x86_branch_hints, x86_use_sahf, x86_single_stringop,
5140         x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8,
5141         x86_integer_DFmode_moves, x86_partial_reg_dependency,
5142         x86_memory_mismatch_stall, x86_accumulate_outgoing_args,
5143         x86_decompose_lea, x86_arch_always_fancy_math_387,
5144         x86_sse_partial_reg_dependency, x86_sse_load0_by_pxor,
5145         x86_ext_80387_constants, x86_four_jump_limit):
5146         (override_options): Add nocona_cost to processor_target_table.
5147         Set up PROCESSOR_NOCONA for Nocona entry in processor_alias_table.
5148         (incdec_operand): Prevent inc/dec generation for Nocona too.
5149         (ix86_issue_rate): Add PROCESSOR_NOCONA.
5150
5151 2004-04-01  Andrew Pinski  <pinskia@physics.uc.edu>
5152
5153         * rtlanal.c (find_reg_note): Manually
5154         unswitch the loop.
5155
5156 2004-04-01  Mark Mitchell  <mark@codesourcery.com>
5157
5158         * genemit.c (gen_split): Change prototype of generated code.
5159         * genrecog.c (write_action): Adjust prototype for and calls to
5160         gen_split_*.
5161         * gensupport.c (struct queue_elem): Add split field.
5162         (queue_pattern): Return a value.  Clear the split field.
5163         (process_rtx): Maintain an association between an insn and the
5164         split generated from it for a define_insn_and_split.
5165         (process_one_cond_exec): Generate a new split for a
5166         define_insn_and_split.
5167         * config/arm/arm-protos.h (arm_split_constant): Add insn
5168         parameter.
5169         (emit_constant_insn): New function.
5170         (arm_gen_constant): Use it.
5171         * config/arm/arm.md: Adjust calls to arm_split_constant.
5172
5173 2004-04-02  Jan Hubicka  <jh@suse.cz>
5174
5175         * cgraph.c: Add overall comment.
5176         (cgraph_inline_hash): New global variable.
5177         (cgraph_create_node): Break out from ...
5178         (cgraph_node): ... here.
5179         (cgraph_edge): New function.
5180         (cgraph_create_edge): New CALL_EXPR argument; some sanity checking.
5181         (cgraph_remove_edge): Accept edge, intead of source and destination.
5182         (cgraph_redirect_edge_callee): New.
5183         (cgraph_remove_node): Update all new datastructures.
5184         (cgraph_record_call, cgraph_remove_call): Kill.
5185         (dump_cgraph_node): Break out from ... ; dump new datastructures.
5186         (dump_cgraph): ... here.
5187         (cgraph_function_possibly_inlined_p): Use new hashtable.
5188         (cgraph_clone_edge, cgraph_clone_node): New.
5189         * cgraph.h: Include hashtab.h
5190         (struct cgraph_global_info): Kill cloned_times, inline_once, will_be_output
5191         fields, add inlined_to pointer.
5192         (cgraph_node): Add pointer to next_clone.
5193         (cgraph_remove_edge, cgraph_create_edge): Update prototype.
5194         (cgraph_remove_call, cgraph_record_call): Kill.
5195         (cgraph_inline_hash): Declare.
5196         (dump_cgraph_node, cgraph_edge, cg4raph_clone_edge, cgraph_clone_node,
5197         cgraph_redirect_edge_callee): Declare.
5198         (cgraph_create_edges, cgraph_inline_p): Update prorotype.
5199         (cgraph_preserve_function_body_p, verify_cgraph, verify_cgraph_node,
5200         cgraph_mark_inline_edge, cgraph_clone_inlined_nodes): Declare.
5201         * cgraphunit.c: Add overall comment.
5202         (cgraph_optimize_function): Kill.
5203         (cgraph_assemble_pending_functions): Do not assemble inline clones.
5204         (cgraph_finalize_function): Update call of cgraph_remove_node
5205         (record_call_1): Record call sites.
5206         (cgraph_create_edges): Accept node instead of decl argument.
5207         (error_found): New static variable.
5208         (verify_cgraph_node_1, verify_cgraph_node, verify_cgraph): New functions.
5209         (cgraph_analyze_function): Update for new datastructures.
5210         (cgraph_finalize_compilation_unit): Plug memory leak.
5211         (cgraph_optimize_function): Kill.
5212         (cgraph_expand_function): Do not use cgraph_optimize_function.
5213         (INLINED_TIMES, SET_INLINED_TIMES, cgraph_inlined_into,
5214         cgraph_inlined_callees): Kill.
5215         (cgraph_remove_unreachable_nodes): Verify cgraph; update handling of
5216         clones.
5217         (estimate_growth): Simplify.
5218         (cgraph_clone_inlined_nodes): New function.
5219         (cgraph_mark_inline_edge): Re-implement.
5220         (cgraph_mark_inline): Likewise.
5221         (cgraph_check_inline_limits): Simplify.
5222         (cgraph_recursive_inlining_p): New.
5223         (update_callee_keys): Break out from ...
5224         (cgraph_decide_inlining_of_small_functions): ... here; simplify.
5225         (cgraph_decide_inlining, cgraph_decide_inlining_incrementally):
5226         Likewise.
5227         (cgraph_expand_all_functions):  Remove inline clones from the ordered
5228         list.
5229         (cgraph_preserve_function_body_p): New predicate.
5230         (cgraph_optimize): Verify cgraph.
5231         * function.h (struct function): Add fields saved_tree/saved_args.
5232         * timevar.def (TV_CGRAPH_VERIFY): Use verifier.
5233         * toplev.c (rest_of_compilation): Do not free cfun.
5234         * tree-inline.c: Include function.h
5235         (struct inline_data): Add saving_p field; replace decl/current_decl by
5236         node/current_node.
5237         (insert_decl_map): New function.
5238         (copy_body_r): Handle saving; update cgraph datastructure.
5239         (copy_body): Handle recursive inlining.
5240         (initialize_inlined_parameters): Likewise.
5241         (expand_call_inline): Propagate node attributes; update cgraph.
5242         (optimize_inline_calls): Verify that datastructure still match.
5243         (save_body): New function.
5244         * tree-inline.h (save_body): New.
5245         * tree-optimize.c (tree_rest_of_compilation): preserve function body; do inlining.
5246         * langhooks-def.c (LANG_HOOKS_UPDATE_DECL_AFTER_SAVING): New.
5247         * langhooks.c (lang_hooks): Add update_decl_after_saving.
5248
5249 2004-04-01  Serge Belyshev  <1319@bot.ru>
5250
5251         PR target/14702
5252         * config/i386/i386.md: fix source operand constraints in
5253         mmx_pshufw, sse2_pshufd, sse2_pshuflw, sse2_pshufhw
5254
5255 2004-04-01  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
5256
5257         * fold-const.c (folda): Preserve types of comparisons.
5258
5259 2004-04-01  Richard Henderson  <rth@redhat.com>
5260
5261         * toplev.c (backend_init): Move init_optimization_passes call ...
5262         (lang_dependent_init): ... here.
5263
5264 2004-04-01  Alan Modra  <amodra@bigpond.net.au>
5265             Jakub Jelinek  <jakub@redhat.com>
5266
5267         * gcc.c (init_gcc_specs): If HAVE_LD_AS_NEEDED, link with
5268         -lgcc --as-needed -lgcc_s --no-as-needed by default.
5269         * configure.ac (HAVE_LD_AS_NEEDED): Check for ld --as-needed.
5270         * configure: Rebuilt.
5271         * config.in: Rebuilt.
5272         * Makefile.in (stage1-start): Copy also libgcc_s*$(SHLIB_EXT).
5273         (stage2-start, stage3-start, stage4-start): Likewise.
5274         (stageprofile-start, stagefeedback-start): Likewise.
5275
5276 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
5277
5278         * config/sparc/sparc.h (DITF_CONVERSION_LIBFUNCS): Define to 0.
5279         * config/sparc/linux.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
5280         * config/sparc/linux64.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
5281         * config/sparc/sol2.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
5282         (SOLARIS_CONVERSION_LIBFUNCS): Rename to SUN_CONVERSION_LIBFUNCS.
5283         * config/sparc/sparc.c (sparc_init_libfuncs): Initialize optabs
5284         with _Q_qtoll, _Q_qtoull and _Q_lltoq if DITF_CONVERSION_LIBFUNCS.
5285         * config.gcc (sparc-*-linux*): Revert 2004-03-23 change.
5286         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Likewise.
5287         * config/sparc/t-linux: Removed.
5288
5289 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
5290
5291         PR c++/14755
5292         * fold-const.c (fold) <EQ_EXPR>: Properly compute newconst in
5293         "bitfld++ == const" to "++bitfld == const + incr" transformations.
5294
5295 2004-04-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5296
5297         * expr.c (get_inner_reference): Use DECL_UNSIGNED, not TREE_UNSIGNED.
5298         * stor-layout.c (layout_decl): Likewise.
5299         * tree.c (get_narrower): Likewise and also use BIT_FIELD_REF_UNSIGNED.
5300         * fold-const.c (make_bit_field_ref): Use BIT_FIELD_REF_UNSIGNED.
5301         * print-tree.c (print_node): Handle various used of unsigned_flag.
5302         * tree.def (BIT_FIELD_REF): Update comment.
5303         * tree.h (TREE_UNSIGNED): Deleted.
5304         (DECL_UNSIGNED, BIT_FIELD_REF_UNSIGNED): New macros.
5305
5306 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5307
5308         * builtins.c, c-aux-info.c, c-common.c, c-cppbuiltin.c, c-decl.c:
5309         Change most occurrences of TREE_UNSIGNED to TYPE_UNSIGNED.
5310         * c-format.c, c-opts.c, c-pretty-print.c, c-typeck.c: Likewise.
5311         * calls.c, convert.c, dbxout.c, dojump.c, dwarf2out.c: Likewise.
5312         * expmed.c, expr.c, fold-const.c, function.c, integrate.c: Likewise.
5313         * optabs.c, sdbout.c, stmt.c, stor-layout.c, tree-dump.c: Likewise.
5314         * tree.c, config/iq2000/iq2000.c, config/m32r/m32r.c: Likewise.
5315         * config/mips/mips.c, config/rs6000/rs6000.c: Likewise.
5316         * config/s390/s390.c, config/sparc/sparc.c, objc/objc-act.c: Likewise.
5317         * stor-layout.c (layout_type, case COMPLEX_TYPE): Test for
5318         REAL_TYPE, not INTEGER_TYPE.
5319         (layout_type, case VECTOR_TYPE): Simplify code.
5320         * tree.c (build_vector_type_for_mode): Remove dup unsigned setting.
5321         * tree.h: Update comments.
5322         (STRIP_NOPS): Use TYPE_UNSIGNED.
5323         (TYPE_UNSIGNED): New macro.
5324         (TYPE_TRAP_SIGNED): Remove now redundant check.
5325         (SAVE_EXPR_NOPLACEHOLDER): Don't use TREE_UNSIGNED.
5326
5327 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5328
5329         * function.c (put_var_into_stack): Properly set orig_reg for indirect.
5330
5331 2004-03-31  Andrew Pinski  <pinskia@physics.uc.edu>
5332
5333         * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA):
5334         Add darwin-fpsave.asm, darwin-vecsave.asm,
5335         and darwin-world.asm.
5336         (TARGET_LIBGCC2_CFLAGS): Add -Wa,-force_cpusubtype_ALL
5337         as the asm files contain altivec instructions.
5338         * config/rs6000/darwin-fpsave.asm: New file.
5339         * config/rs6000/darwin-vecsave.asm: New file.
5340         * config/rs6000/darwin-world.asm: New file.
5341
5342 2004-03-31  Zack Weinberg  <zack@codesourcery.com>
5343
5344         * gengtype-yacc.y (option, stringseq): Add missing
5345         terminating semicolon.
5346
5347 2004-03-30  David Edelsohn  <edelsohn@gnu.org>
5348
5349         * config/rs6000/rs6000.md (tls_gd_32, tls_gd_64,
5350         tls_ld_32, tls_ld_64, tls_dtprel_32, tls_dtprel_64,
5351         tls_dtprel_ha_32, tls_dtprel_ha_64,
5352         tls_dtprel_lo_32, tls_dtprel_lo_64,
5353         tls_got_dtprel_64, tls_tprel_32, tls_tprel_64,
5354         tls_tprel_ha_32, tls_tprel_ha_64,
5355         tls_tprel_lo_32, tls_tprel_lo_64,
5356         tls_got_tprel_32, tls_got_tprel_64,
5357         tls_tls_32, tls_tls_64): Replace register_operand with
5358         gpc_reg_operand.
5359
5360 2004-03-30  Mostafa Hagog  <mustafa@il.ibm.com>
5361
5362         * config/rs6000/rs6000.md (*ctrsi_internal1, *ctrsi_internal2,
5363         *ctrdi_internal1, *ctrdi_internal2, *ctrsi_internal3,
5364         *ctrsi_internal4, *ctrdi_internal3, *ctrdi_internal4,
5365         *ctrsi_internal5, *ctrsi_internal6, *ctrdi_internal5,
5366         *ctrdi_internal6): Replace register_operand with
5367         nonimmediate_operand.
5368
5369 2004-03-29  Fariborz Jahanian <fjahanian@apple.com>
5370
5371         * fold-const.c (fold): Reassociate multiply expression
5372         with an adjacent non-multiply expression to use
5373         architecture's multiply-add instruction.
5374
5375 2004-03-30  Zack Weinberg  <zack@codesourcery.com>
5376
5377         * gengtype.c (create_option): New function.
5378         * gengtype.h: Prototype it.
5379         * gengtype-yacc.y (stringseq): New rule.
5380         (option): Use create_option.  Add new bare ID production.  Use
5381         stringseq, not STRING directly.
5382
5383         * alias.c, bitmap.c, c-decl.c, cgraph.h, cpplib.h, cselib.h
5384         * dwarf2out.c, emit-rtl.c, function.h, lists.c, tree.h
5385         * varray.h, config/alpha/alpha.c:
5386         Use new shorter form of GTY markers.
5387
5388         * doc/gty.texi: Rewrite.
5389
5390 2004-03-30  Andrew Pinski  <pinskia@physics.uc.edu>
5391
5392         * config/darwin.c (machopic_function_base_name):
5393         Remove current_name and getting the name of the
5394         current function.
5395
5396 2004-03-30  Nick Clifton  <nickc@redhat.com>
5397
5398         * config/arm/arm.md (thumb_jump): Reduce the backward branch
5399         range, and increase the forward branch range, to allow for
5400         the fact that the PC will be off by 4.
5401
5402 2004-03-30  Alan Modra  <amodra@bigpond.net.au>
5403
5404         * .cvsignore: Add GPATH, GRTAGS, GSYMS and GTAGS (GNU GLOBAL)
5405
5406 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
5407
5408         * config/rs6000/rs6000.c (output_vec_const_move):
5409         Find all cases of EASY_VECTOR_15_ADD_SELF.
5410         (easy_vector_constant_add_self): Accept
5411         all vector constant loadable by vsplt* and vadd*.
5412         (easy_vector_same): Use easy_vector_splat_const.
5413         (easy_vector_const): Use easy_vector_splat_const.
5414         (easy_vector_splat_const): New function.
5415         (gen_easy_vector_constant_add_self): New function.
5416
5417         * config/rs6000/rs6000-protos.c (gen_easy_vector_constant_add_self):
5418         New prototype.
5419
5420         * config/rs6000/altivec.md (movv4si splitter): Change to
5421         emit move insn with halfed vector constant.
5422         (*movv8hi splitter): Likewise.
5423         (*movv16qi splitter): Likewise.
5424
5425 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
5426
5427         PR 11591
5428         * config/rs6000/rs6000.c (rs6000_legitimate_address):
5429         Allow any offset to argument pointer in no-strict case.
5430
5431 2004-03-30  Jan Hubicka  <jh@suse.cz>
5432
5433         * toplev.c (backend_init): Add missing call to inint_optimization_passes.
5434         * passes.c (init_optimization_passes, finish_optimization_passes): Output cgraph
5435         dump file in non-unit-at-a-time mode.
5436
5437 2004-03-29  Hans-Peter Nilsson  <hp@axis.com>
5438
5439         * config/cris/cris.h: Correct #ifdef to test for
5440         HAVE_AS_NO_MUL_BUG_ABORT_OPTION, not
5441         HAVE_AS_MUL_BUG_ABORT_OPTION.
5442
5443 2004-03-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5444
5445         * function.c (put_var_into_stack): If old RTL was ADDRESSOF, update
5446         the address inside the old RTL.
5447
5448 2004-03-28  Zack Weinberg  <zack@codesourcery.com>
5449
5450         * c-decl.c: Verify that C_SIZEOF_STRUCT_LANG_IDENTIFIER is correct.
5451         (struct c_binding, struct c_scope): Add chain_next
5452         attributes to GTY markers.
5453         (struct lang_identifier, struct lang_tree_node): Define
5454         here...
5455         * c-tree.h: ... not here.  No longer need to declare struct
5456         c_binding either.  Do define C_SIZEOF_STRUCT_LANG_IDENTIFIER.
5457         * c-lang.c, objc/objc-lang.c: Set LANG_HOOKS_IDENTIFIER_SIZE
5458         to C_SIZEOF_STRUCT_LANG_IDENTIFIER.
5459
5460         PR 14734, 11944
5461         * c-decl.c (get_parm_info): If error_mark_node is encountered
5462         in the bindings chain, unbind and discard it; don't abort.
5463
5464 2004-03-28  Olga Golovonevsky <olga@il.ibm.com>
5465             Dorit Naishlos <dorit@il.ibm.com>
5466
5467         * config/rs6000/altivec.md: (andvv16qi3, andv8hi3, one_cmplv16qi2,
5468         one_cmplv8hi2, one_cmplv4si2, iorv16qi3, iorv8hi3,): New modelling.
5469
5470 2004-03-28  Stephane Carrez  <stcarrez@nerim.fr>
5471
5472         * config/m68hc11/m68hc11-protos.h (m68hc11_page0_symbol_p): Declare.
5473
5474         * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute): New.
5475         (m68hc11_attribute_table): New attribute "page0" to mark a global
5476         variable as being allocated from within page0 section.
5477         (m68hc11_encode_label): New function.
5478         (m68hc11_strip_name_encoding): New function.
5479         (m68hc11_page0_symbol_p): New function.
5480         (m68hc11_indirect_p): Accept global variables marked in page0.
5481         (m68hc11_encode_section_info): Lookup "page0" attribute.
5482
5483         * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): 'R' constraint also
5484         represents access to page0 variables.
5485
5486         * config/m68hc11/m68hc11.md ("*logicalsi3_zexthi"): Use gen_rtx_REG.
5487         ("*logicalsi3_silshl16_zext"): Likewise.
5488         ("*ashldi3_const32"): Likewise.
5489         (peephole2 ashift): Likewise.
5490
5491 2004-03-28  Joseph S. Myers  <jsm@polyomino.org.uk>
5492
5493         * c-tree.h (C_DECL_REGISTER): New.
5494         * c-aux-info.c (gen_decl), c-decl.c (objc_mark_locals_volatile,
5495         finish_decl, grokdeclarator, get_parm_info), c-typeck.c
5496         (build_array_ref, c_mark_addressable): Set and use it.
5497         * c-decl.c (grokdeclarator), c-typeck.c (c_mark_addressable):
5498         Allow structures with volatile fields to be declared register.
5499         Don't check TREE_ADDRESSABLE before warning about taking address
5500         of register.
5501         * c-decl.c (finish_decl): Don't allow structures with volatile
5502         fields to be placed in named register.
5503         * doc/trouble.texi: Remove reference to structures with volatile
5504         fields in registers.
5505
5506 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
5507
5508         * function.c (thread_prologue_and_epilogue): Move
5509         NOTE_INSN_FUNCTION_END and NOTE_INSN_FUNCTION_BEG notes
5510         before the epilogue.
5511
5512 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
5513
5514         * expr.c (store_constructor): Use gen_int_mode to correctly
5515         sign-extend CONST_INT value.
5516
5517 2004-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5518
5519         * builtin-types.def (BT_WINT, BT_FN_INT_WINT, BT_FN_WINT_WINT): New.
5520         * builtins.def (DEF_C94_BUILTIN): New.  Add wctype builtins.
5521         * doc/extend.texi: Likewise.
5522
5523 2004-03-26  Diego Novillo  <dnovillo@redhat.com>
5524
5525         * c-typeck.c (comptypes): Replace calls to TYPE_DOMAIN
5526           with TYPE_ORIG_SIZE_TYPE.
5527
5528 2004-03-25  Aldy Hernandez  <aldyh@redhat.com>
5529
5530         PR 14219
5531         * c-typeck.c (build_binary_op): Do not allow comparisons of
5532         vectors.
5533
5534 2004-03-26  James A. Morrison  <ja2morri@uwaterloo.ca>
5535
5536         * config.gcc: Remove sparc-tti-*.
5537         * config/sparc/pbd.h: Delete.
5538
5539         * config/sparc/sol2.h: Remove note about Sun OS 4.x.
5540         * config/sparc/aout.h: Likewise.
5541
5542         * config/sparc/sparc.h: Remove if 0'd code.
5543         * config/sparc/sparc.md (call): Remove if 0'd code.
5544         (call_value): Likewise.
5545         (nonlocal_goto): Likewise.
5546         (unimp_insn): Delete.
5547
5548 2004-03-25  Roger Sayle  <roger@eyesopen.com>
5549
5550         * fold-const.c (tree_expr_nonnegative_p): Handle BIT_XOR_EXPR like
5551         BIT_IOR_EXPR; A^B is nonnegative when A and B are nonnegative.
5552
5553 2004-03-25  Richard Henderson  <rth@redhat.com>
5554
5555         PR 11527
5556         * c-typeck.c (pop_init_level): Emit pending init elements earlier
5557         rather than later.
5558
5559 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5560
5561         * builtins.c (fold_builtin): Fix error in last change.
5562
5563 2004-03-25  Richard Sandiford  <rsandifo@redhat.com>
5564
5565         * config/mips/mips.h: Formatting fix.
5566
5567 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5568
5569         * builtins.def: Add ctype builtins.
5570         * doc/extend.texi: Likewise.
5571
5572 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5573
5574         * builtins.c (fold_builtin): Add new builtin optimizations for
5575         sqrt and/or cbrt.
5576         * fold-const.c (fold): Likewise.
5577
5578 2004-03-25  David Edelsohn  <edelsohn@gnu.org>
5579
5580         * config/rs6000/rs6000.c (rs6000_always_hint): New variable.
5581         (rs6000_sched_groups): New variable.
5582         (processor_target_table): Add power5.
5583         (rs6000_override_options): Set rs6000_sched_insert_nops,
5584         rs6000_sched_costly_dep and rs6000_sched_restricted_insns_priority
5585         from rs6000_sched_groups.
5586         (output_cbranch): Use rs6000_always_hint.
5587         (rs6000_variable_issue): Use rs6000_sched_groups.
5588         (rs6000_adjust_cost): Add CPU_POWER5.
5589         (is_microcoded_insn): Use rs6000_sched_groups.
5590         (is_dispatch_slot_restricted): Use rs6000_sched_groups.
5591         Return 2 for POWER5 cracked instructions.
5592         (is_cracked_insn): Use rs6000_sched_groups.
5593         (is_branch_slot_insn): Use rs6000_sched_groups.
5594         (rs6000_issue_rate): Add CPU_POWER5.
5595         (rs6000_sched_finish): Use rs6000_sched_groups.
5596         (rs6000_rtx_costs): Add PROCESSOR_POWER5.
5597         * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER5.
5598         (DEFAULT_SCHED_COSTLY_DEP): Delete.
5599         (DEFAULT_RESTRICTED_INSNS_PRIORITY): Delete.
5600         (DEFAULT_SCHED_FINISH_NOP_INSERTION_SCHEME): Delete.
5601         * config/rs6000/rs6000.md (define_attr "cpu"): Add power5.
5602         * config/rs6000/power5.md: New file.
5603         * doc/invoke.texi: Add power5 option.
5604
5605 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
5606
5607         * cfgrtl.c, dbxout.c, tree.def, config/darwin.h,
5608         config/arm/arm.c, objc/objc-act.c: Fix comment typos.
5609         * doc/invoke.texi: Fix a typo.
5610
5611 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
5612
5613         PR optimization/9707.
5614         * stmt.c (emit_case_nodes): Emit equality comparisons instead
5615         of recursing if both children are single-valued cases with no
5616         children.
5617
5618 2004-03-25  Paul Brook  <paul@codesourcery.com>
5619
5620         * config/arm/arm.c (vfp_print_multi): Remove.
5621         (arm_output_fldmx): New function.
5622         (vfp_emit_fstmx): Return block size, not insn. Add ARM10 VFPr1 bugfix.
5623         (arm_expand_prologue): Update to match.
5624         (arm_get_vfp_saved_size): New Function.
5625         (arm_get_frame_offsets): Use it.
5626         (arm_output_epilogue): Use new functions.
5627
5628 2004-03-24  Richard Henderson  <rth@redhat.com>
5629
5630         * alias.c (alias_invariant, alias_invariant_size): Mark GTY.
5631         (reg_known_value, reg_known_value_size): Likewise; make static.
5632         (reg_known_equiv_p): Make static.
5633         (clear_reg_alias_info): Update for new indexing.
5634         (get_reg_known_value, set_reg_known_value): New.
5635         (get_reg_known_equiv_p, set_reg_known_equiv_p): New.
5636         (canon_rtx): Use them.
5637         (init_alias_analysis): Likewise.  Allocate reg_known_value with gc.
5638         Don't play queer offsetting games with reg_known_value and
5639         reg_known_equiv_p.
5640         (end_alias_analysis): Free reg_known_value with gc.
5641         * rtl.h (get_reg_known_value, get_reg_known_equiv_p): Declare.
5642         * sched-deps.c (reg_known_equiv_p, reg_known_value): Remove.
5643         (deps_may_trap_p, sched_analyze_1, sched_analyze_2): Use the new
5644         functions instead.
5645
5646 2004-03-24  Kazu Hirata  <kazu@cs.umass.edu>
5647
5648         * dwarf2asm.c, loop.h, pretty-print.c, pretty-print.h,
5649         config/i386/mmintrin.h: Update copyright.
5650
5651 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
5652
5653         * configure.ac: Add --enable-werror-always (for top level bootstrap
5654         support).
5655         * configure: Regenerate.
5656
5657 2004-03-24  Ziemowit Laski  <zlaski@apple.com>
5658
5659         * objc/objc-act.c (objc_comptypes): Treat comparisons
5660         between 'Class' and '<class> *' as explicitly invalid.
5661
5662 2004-03-24  David Edelsohn  <edelsohn@gnu.org>
5663
5664         * doc/invoke.texi (-frename-registers): Add enabled at -O3.
5665         (-fprofile-values): Add enabled with profile-{generate,use}.
5666         (-fvpt): Same.
5667         (-ftracer): Add enabled with profile-use.
5668         (-funit-at-a-time): Add enabled at -O2,-O3.
5669         (-funroll-loops): Add enabled with profile-use.
5670         (-funswitch-loops): Add enabled with profile-use.  Remove duplicates.
5671         (max-gcse-passes): Mention default.
5672         (max-cse-path-length): Mention default.
5673
5674 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
5675
5676         * Makefile.in (STRICT2_WARN): Reorder.
5677         * configure.ac: Check for -Wold-style-definition, and use it
5678         in strict1_warn if it's available.
5679         * configure: Regnerate.
5680
5681 2004-03-24  Paul Brook  <paul@nowt.org>
5682
5683         * config.gcc <arm>: Add --with-abi=
5684         * config/arm/arm-protos.h (arm_get_frame_size, thumb_get_frame_size,
5685         thumb_far_jump_used): Remove prototypes.
5686         (arm_needs_doubleword_align): Add prototype.
5687         (thumb_compute_initial_elimination_offset): Ditto.
5688         * config/arm/arm.c (arm_get_frame_offsets): New function.
5689         (use_return_insn, output_return_instruction, arm_output_epilogue,
5690         arm_output_function_epilogue, arm_compute_initial_elimination_offset,
5691         arm_expand_prologue, thumb_expand_epilogue): Use it.
5692         (arm_abi, target_abi_name, all_arm_abis): New variables.
5693         (arm_override_options): Set them.  Set structure padding for AAPCS.
5694         (arm_return_in_memory): Update ABI check.
5695         (arm_init_cumulative_args): Initialize can_split.
5696         (arm_needs_doubleword_align): New function.
5697         (arm_function_arg): Don't split args after pushing to stack. Handle
5698         doubleword/even reg alignment.
5699         (arm_va_arg): Handle all doubleword aligned args.
5700         (add_minpoolforward ref, dump_minpool, push_minpool_fix): Align based
5701         on ABI, not CPU.
5702         (arm_compute_save_reg0_reg12_mask): Fix comment.
5703         (thumb_get_frame_size, thumb_get_frame_size): Remove.
5704         (thumb_jump_far_used_p): Remove superfluous argument.  Return save
5705         value for alignment.
5706         (thumb_unexpanded_epilogue, thumb_output_function_prologue): Change
5707         to match.
5708         (thumb_compute_initial_elimination_offset): New function.
5709         (thumb_expand_prologue): Use arm_get_frame_offsets.  Remove
5710         unneccessary rounding.
5711         * config/arm/arm.h (target_abi_name): Declare.
5712         (ARM_DOUBLEWORD_ALIGN, DOUBLEWORD_ALIGNMENT, TARGET_IWMMXT_ABI,
5713         arm_abi_type, ARM_DEFAULT_ABI): Define.
5714         (ARM_FLAG_ATPCS): Remove.
5715         (TARGET_OPTIONS, OPTION_DEFAULT_SPECS): Add -mabi=.
5716         (BIGGEST_ALIGNMENT, PREFERRED_STACK_BOUNDARY, STACK_BOUNDARY): Use it.
5717         (ADJUST_FIELD_ALIGN, DATA_ALIGNMENT, LOCAL_ALIGNMENT,
5718         TYPE_NEEDS_IWMMXT_ALIGNMENT): Remove.
5719         (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P, FUNCTION_ARG_REGNO_P):
5720         Contitionalize on ABI, not CPU.
5721         (struct arm_stack_offsets): Define.
5722         (struct machine_function): Add stack_offsets.  Remove frame_size.
5723         (FUNCTION_ARG_PARTIAL_NREGS): Don't split if previous args have been
5724         pushed.
5725         (FUNCTION_ARG_ADVANCE, FUNCTION_ARG_BOUNDARY): Handle general
5726         doubleword alignment.
5727         (THUMB_INITIAL_ELIMINATION_OFFSET,
5728         ARM_INITIAL_ELIMINATION_OFFSET): Remove.
5729         (INITIAL_ELIMINATION_OFFSET): Call functions directly.
5730         * config/arm/arm.md (align_8): Enable for all targets.
5731         * config/arm/netbsd-elf.h (TARGET_DEFAULT): Remove TARGET_ATPCS.
5732         (ARM_DEFAULT_ABI): Define.
5733         * doc/invoke.texi <ARM>: Document -mabi=. Update documentation for
5734         -mstructure-size-boundary.
5735
5736 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
5737
5738         * configure.ac: Check for -Wno-variadic-macros; don't use
5739         -pedantic (in stage 1 or a simple 'make all') unless it's available,
5740         and if it's available, use it.  Also, clean up check for
5741         -Wno-long-long.
5742         * configure: Regenerate.
5743
5744 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
5745
5746         * config.gcc (mips64vr-*-elf*, mips64vrel-*-elf*): Remove tm_defines.
5747         * config/mips/vr.h (DEFAULT_VR_ARCH): New macro, defined to vr4130.
5748         (MULTILIB_DEFAULTS): Use it.
5749         (MIPS_CPU_STRING_DEFAULT): Remove.
5750         (MIPS_ABI_DEFAULT, MIPS_MARCH_CONTROLS_SOFT_FLOAT): Define.
5751         (DRIVER_SELF_SPECS): Make -mfix-vr4122-bugs imply -march=vr4120.  Make
5752         EABI64 -mlong32 the default ABI.  Enforce the default architecture.
5753         * config/mips/t-vr (MULTILIB_OPTIONS): Add mfix-vr4122-bugs,
5754         march=vr4130, march=vr4300, march=vr5000 and march=vr5500.
5755         (MULTILIB_MATCHES): Use -mfix-vr4122-bugs multilibs for -march=vr4120.
5756         (MULTILIB_EXCEPTIONS): Change choice of multilibs.  Update comments
5757         accordingly.
5758
5759 2004-03-24  DJ Delorie  <dj@redhat.com>
5760             Richard Sandiford  <rsandifo@redhat.com>
5761
5762         * config/mips/mips.h (MASK_FIX_VR4122, TARGET_FIX_VR4122): New macros.
5763         (TARGET_SWITCHES): Add -mfix-vr4122-bugs and -mno-fix-vr4122-bugs.
5764         (ASM_SPEC): Pass down -mfix-vr4122-bugs.
5765         * config/mips/mips.c (mips_avoid_hazards): Don't emit whole functions
5766         in .set noreorder and .set nomacro if TARGET_FIX_VR4122.
5767         (mips_init_libfuncs): Use special functions for divsi3 and modsi3
5768         if TARGET_FIX_VR4122.
5769         * config/mips/mips.md (define_attr length): Account for nops inserted
5770         after macc and dmult when using -mfix-vr4122-bugs.
5771         (umuldi3_highpart, divmodsi4, divmoddi4): Disable if TARGET_FIX_VR4122.
5772         * config/mips/t-vr (LIB2FUNCS_STATIC_EXTRA): Define instead of
5773         LIB2FUNCS_EXTRA.  Add config/mips/vr4122-div.S.
5774         * config/mips/vr4122-div.S: New file.
5775         * doc/invoke.texi: Document -mfix-vr4122-bugs.
5776
5777 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
5778
5779         * config/mips/mips.h (PROCESSOR_R4130): New processor_type.
5780         (TARGET_MIPS4130): New macro.
5781         (ISA_HAS_MACC): Return true if TARGET_MIPS4130 && !TARGET_MIPS16.
5782         * config/mips/mips.c (mips_cpu_info_table): Add a vr4130 entry.
5783         (override_options): Extend MIPS_MARCH_CONTROLS_SOFT_FLOAT to deal
5784         with PROCESSOR_R4130.
5785         * config/mips/mips.md (define_attr cpu): Add r4130.
5786         * doc/invoke.texi: Document vr4130 as a supported MIPS architecture.
5787
5788 2004-03-24  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
5789             Richard Sandiford  <rsandifo@redhat.com>
5790
5791         * doc/invoke.texi: Apply missed hunk from 2004-03-03 change.
5792
5793 2004-03-24  Alexandre Oliva  <aoliva@redhat.com>
5794
5795         PR preprocessor/14438
5796         * cpplib.c (do_pragma): Remove line_change call after pragma
5797         handler.
5798
5799 2004-03-23  Ian Lance Taylor  <ian@wasabisystems.com>
5800
5801         * doc/extend.texi (ARM Built-in Functions): Replace with correct
5802         declarations.
5803
5804 2004-03-23  Roger Sayle  <roger@eyesopen.com>
5805
5806         * reg-stack.c (get_true_reg): Handle FLOAT_TRUNCATE like FLOAT_EXTEND
5807         if flag_unsafe_math_optimizations.
5808         * config/i386/i386.md (truncdfsf2): If flag_unsafe_math_optimizations
5809         and TARGET_80387 expand using truncdfsf2_noop pattern.
5810         (truncxfsf2): Likewise using truncxfsf2_noop.
5811         (truncxfdf2): Likewise using truncxfdf2_noop.
5812         (truncdfsf2_noop, truncxfsf2_noop, truncxfdf2_noop): New patterns.
5813
5814 2004-03-23  Ziemowit Laski  <zlaski@apple.com>
5815
5816         * hooks.c (hook_constcharptr_tree_null): New hook.
5817         * hooks.h (hook_constcharptr_tree_null): New prototype.
5818         * target-def.h (TARGET_MANGLE_FUNDAMENTAL_TYPE): New target hook.
5819         * target.h (mangle_fundamental_type): New target hook.
5820         * config/rs6000/rs6000.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Point
5821         target hook at rs6000_mangle_fundamental_type.
5822         (rs6000_mangle_fundamental_type): New function.
5823         * doc/tm.texi (TARGET_MANGLE_FUNDAMENTAL_TYPE): Document.
5824
5825 2004-03-23  Zack Weinberg  <zack@codesourcery.com>
5826
5827         PR 12267, 12391, 12560, 13129, 14114, 14133
5828         * c-tree.h: Forward declare struct c_binding.  Declare
5829         c_override_bindings_to_false.  Update prototypes.
5830         (struct lang_identifier): Update comments.  Change fields to be
5831         struct c_binding *.
5832         (IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE)
5833         (IDENTIFIER_LABEL_VALUE, C_DECL_INVISIBLE)
5834         (KEEP_NO, KEEP_YES, KEEP_MAYBE): Delete.
5835         (C_DECL_IN_EXTERNAL_SCOPE, C_DECL_DECLARED_BUILTIN): New.
5836         * c-common.h: Update prototypes.
5837         * c-decl.c (struct c_scope): Update commentary.  Remove names,
5838         names_last, parms, parms_last, tags, and shadowed fields.  Add
5839         bindings and depth fields.
5840         (scope_freelist): Move to more appropriate location.
5841         (c_print_identifier): Update for changes to struct lang_identifier.
5842         (objc_mark_locals_volatile): Update for new bindings structures.
5843         (global_bindings_p): Honor c_override_global_bindings_to_false.
5844         (pushlevel): Rename to push_scope; take no arguments; use the
5845         scope_freelist; initialize scope->depth and check for overflow.
5846         (poplevel): Rename to pop_scope; totally rewritten for new bindings
5847         structures.
5848         (diagnose_mismatched_decls): Use C_DECL_DECLARED_BUILTIN, not
5849         C_DECL_INVISIBLE, for certain decisions.  Adjust some diagnostics.
5850         Improve some commentary.  Adjust handling of forward parm decls.
5851         (merge_decls): Set C_DECL_DECLARED_BUILTIN when appropriate.
5852         Preserve C_DECL_IN_EXTERNAL_SCOPE.
5853         (warn_if_shadowing): Correct indentation.  Improve diagnostics.
5854         (pushdecl): Remove unnecessary assertion.  Short-circuit anonymous
5855         decls.  Rewrite for new bindings structures.  Improve commentary.
5856         Eliminate the copy_node call.
5857         (implicit_decl_warning): Use the "diag" idiom (as seen in
5858         locate_old_decl) to reduce code duplication; call locate_old_decl
5859         if appropriate.  Relocate to remove need for forward declaration.
5860         (implicitly_declare): Adjust for new bindings structures.  Kludge
5861         around Objective-C not-really-builtin functions.
5862         (undeclared_variable): Improve diagnostics.  If current_function_decl
5863         is nonnull but current_function_scope is null, use current_scope.
5864         Use bind.
5865         (lookup_tag): Adjust for new bindings structures.  Kludge around
5866         Objective-C's tag declarations that wind up in the external scope.
5867         (lookup_name): Adjust for new bindings structures.  Kludge around
5868         c-common.c's pseudo-typedefs that wind up in the external scope.
5869         (lookup_name_current_level): Rename lookup_name_in_scope; take a
5870         second argument indicating the scope to examine; rewrite for
5871         new bindings structures.
5872         (c_init_decl_processing): Adjust for renamed functions.  Do not
5873         initialize current_file_decl, first_builtin_decl, last_builtin_decl.
5874         First scope pushed is the external scope, not the global scope.
5875         (builtin_function): Use bind, not pushdecl.  Adjust other bits
5876         for new data structures.  Keep track of builtins that should be
5877         made visible automatically.
5878         (start_decl): Adjust diagnostics.  Remove unnecessary call to
5879         expand_decl.
5880         (grokparms): Return 0 if arg_types is error_mark_node.
5881         (get_parm_info): Rename "void_at_end" argument to "ellipsis", with
5882         reversed sense.  Rewrite for new bindings structures.  Do not
5883         leave any decls in the scope, to prevent pop_scope from doing
5884         contradictory things with them.
5885         (finish_struct, finish_enum): Remove redundant diagnostics.
5886         (build_enumerator): Don't cascade diagnostics for error_mark_node.
5887         Mark location where -pedantic changes the meaning of the program.
5888         (store_parm_decls_newstyle, store_parm_decls_oldstyle): Load the
5889         parameter decls into the function's scope structure using bind.
5890         Warn here about function definitions in the wrong style.
5891         Adjust diagnostics.
5892         (store_parm_decls): Correct the determination of whether a
5893         function was defined with a prototype.
5894         (c_write_global_declarations): Operate on all file decls and on
5895         the external scope.  Split body of the loop to...
5896         (c_write_global_declarations_1): ... this new function, to avoid
5897         code duplication.
5898         (truly_local_externals, first_builtin_decl, last_builtin_decl)
5899         (make_scope, pop_scope, in_parm_level_p, set_block)
5900         (any_external_decl, record_external_decl, bind_label, getdecls)
5901         (link_hash_hash, link_hash_eq, merge_translation_unit_decls)
5902         (c_reset_state): Delete.
5903         (visible_builtins, c_override_global_bindings_to_false)
5904         (c_binding, I_SYMBOL_BINDING, I_SYMBOL_DECL, I_TAG_BINDING)
5905         (I_TAG_DECL, I_LABEL_BINDING, I_LABEL_DECL, file_scope)
5906         (external_scope, binding_freelist, bind, free_binding_and_advance)
5907         (push_file_scope, pop_file_scope): New.
5908         (pushtag, pushdecl_top_level, lookup_label, declare_label)
5909         (define_label, c_make_fname_decl, finish_decl)
5910         (mark_forward_parm_decls, build_compound_literal)
5911         (grokdeclarator, start_function, check_for_loop_decls)
5912         (identifier_global_value, record_builtin_type): Minor adjustments
5913         for new bindings structures.  Improve diagnostics and commentary.
5914         * c-objc-common.c (start_cdtor, finish_cdtor): Adjust calls to
5915         pushlevel/poplevel respectively.
5916         (c_objc_common_finish_file): Don't call merge_translation_unit_decls.
5917         * c-opts.c (c_common_parse_file): Remove spurious ATTRIBUTE_UNUSED.
5918         Warn about YYDEBUG not being defined only if -dy.  Remove no-longer-
5919         correct loop over multiple translation units; call fatal_error if
5920         requested to compile more than one file at once.  (This disables
5921         IMA temporarily - an up-front error being preferable to a crash.)
5922         * c-parse.in (pushlevel, poplevel rules): Rename push_scope, pop_scope.
5923         (all actions): Adjust calls to pushlevel/poplevel.
5924         (parsing_iso_function_signature): Delete.
5925         (extdef_1): Fold into extdef.
5926         (old_style_parm_decls_1): Fold into old_style_parm_decls.  Don't
5927         warn here about function definitions in the wrong style.
5928         (after_tyle_declarator, parm_declarator_starttypename)
5929         (parm_declarator_nostarttypename, notype_declarator): Remove
5930         commented-out productions.
5931         (parmlist_1, parmlist_2): Use make_node, not tree_cons, to create
5932         an empty TREE_LIST node.  Adjust calls to get_parm_info.
5933         (parmlist_2 : ELLIPSIS): Tag the arg-info block with error_mark_node
5934         to suppress -Wold-style-definition after this error.
5935         (c_parse_file): Don't clear the binding stack or call
5936         finish_fname_decls here.  Correct comment.
5937         * c-typeck.c (same_translation_unit_p): Export.
5938         (common_type): Use c_override_global_bindings_to_false, not
5939         pushlevel/poplevel/declare_parm_level.
5940         * c-lang.c: Override LANG_HOOKS_CLEAR_BINDING_STACK,
5941         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK,
5942         and LANG_HOOKS_GETDECLS with do-nothing stubs.
5943         * objc/objc-lang.c: Likewise.
5944         * objc/objc-act.c: Adjust all calls to pushlevel, poplevel,
5945         get_parm_info.
5946         (OBJC_VOID_AT_END): Delete; replace all uses
5947         with void_list_node.
5948         (generate_forward_declaration_to_string_table): Delete.
5949         * objc/objc-act.h (OCTI_STRG_DECL, UOBJC_STRINGS_decl): Delete.
5950
5951         * coverage.c (create_coverage): Don't pushdecl anything.
5952         * langhooks.c (lhd_clear_binding_stack): Call
5953         lang_hooks.decls.poplevel, not poplevel.
5954         * tree.c (list_length): If ENABLE_TREE_CHECKING, abort on a
5955         circular list rather than going into an infinite loop.
5956
5957 2004-03-23  Olivier Hainque  <hainque@act-europe.fr>
5958
5959         * optabs.c (expand_binop): When synthesizing double word rotates
5960         from single word shifts, use a new register target if the provided
5961         target is not a REG already.
5962
5963 2004-03-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5964
5965         * alias.c (get_alias_set): Add support for TYPE_REF_CAN_ALIAS_ALL.
5966         * c-common.c (handle_mode_attribute): Add extra arg to
5967         build_pointer_type_for_mode and build_reference_type_for_mode.
5968         * c-typeck.c (build_c_cast): Only look at TREE_CONSTANT_OVERFLOW
5969         for INTEGER_CST.
5970         * tree.c (build_pointer_type_for_mode): Add arg CAN_ALIAS_ALL.
5971         Chain pointers via TYPE_NEXT_PTR_TO.
5972         (build_reference_type_for_mode): Similarly.
5973         (build_type_no_quals): Add extra arg to build_pointer_type_for_mode
5974         and build_reference_type_for_mode.
5975         (tree_check4_failed): New function.
5976         * tree.h (TREE_CHECK4, PTR_OR_REF_CHECK): New macros.
5977         (TYPE_REF_CAN_ALIAS_ALL, TYPE_NEXT_PTR_TO, TYPE_NEXT_REF_TO): Likewise.
5978         (TREE_NO_UNSUED_WARNING, TREE_VIA_VIRTUAL, TREE_CONSTANT_OVERFLOW):
5979         Add check.
5980
5981 2004-03-23  Roger Sayle  <roger@eyesopen.com>
5982
5983         * fold-const.c (tree_expr_nonnegative_p): A&B is nonnegative when
5984         A is nonnegative or B is nonnegative.  Similarly A|B is nonnegative
5985         when both A and B are nonnegative.
5986         (tree_expr_nonzero_p): A|B is nonzero when A is nonzero or B is
5987         nonzero.
5988
5989 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
5990
5991         * fold-const.c (fold): Remove cases for INTEGER_CST, REAL_CST,
5992         VECTOR_CST, STRING_CST, COMPLEX_CST, and CONSTRUCTOR.
5993
5994 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
5995
5996         PR optimization/14669
5997         * fold-const.c (fold): Only unwiden integer comparisons for equality
5998         and inequality operators, or when the signedness doesn't change.
5999
6000 2004-03-23  Jakub Jelinek  <jakub@redhat.com>
6001
6002         * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
6003         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Set.
6004         * config/sparc/t-linux: New file.
6005
6006 2004-03-23  Richard Sandiford  <rsandifo@redhat.com>
6007
6008         * gcse.c (can_assign_to_reg_p): New function, split out from...
6009         (want_to_gcse_p): ...here.
6010         (compute_ld_motion_mems): Use can_assign_to_reg_p to validate
6011         the rhs of a store.
6012
6013 2004-03-22  Diego Novillo  <dnovillo@redhat.com>
6014
6015         * c-typeck.c (same_translation_unit_p): Fix pasto.
6016
6017 2004-03-22  David Edelsohn  <edelsohn@gnu.org>
6018
6019         * params.def (PARAM_MAX_SCHED_REGION_BLOCKS): New.
6020         (PARAM_MAX_SCHED_REGION_INSNS): New.
6021         * sched-rgn.c: Include params.h
6022         (MAX_RGN_BLOCKS): Delete.
6023         (MAX_RGN_INSNS): Delete.
6024         (too_large): Return bool.  Convert to PARAM_VALUE.
6025         * Makefile.in (sched-rgn.o): Depend on $(PARAMS_H).
6026         * doc/invoke.texi (param): Document max-sched-region-blocks and
6027         max-sched-region-insns.
6028
6029 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
6030
6031         * dwarf2out.c (is_subrange_type): Do not emit a subrange_type DIE
6032         for base types.
6033
6034 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
6035
6036         * dwarf2out.c (is_subrange_type): Minor code rework. No behavior
6037         change.
6038
6039 2004-03-22  Jakub Jelinek  <jakub@redhat.com>
6040
6041         PR c/14069
6042         * c-decl.c (finish_struct): Change type of incorrect flexible array
6043         field into error_mark_node.
6044
6045 2004-03-22  Andrew Pinski  <pinskia@physics.uc.edu>
6046
6047         PR target/14580
6048         * config/rs6000/rs6000.c (symbol_ref_operand): Reject symbols
6049         who are not local for Darwin PIC.
6050
6051 2004-03-22  Ulrich Weigand  <uweigand@de.ibm.com>
6052
6053         * regrename.c (regrename_optimize): Set regs_ever_live for all
6054         registers introduced as replacement.
6055
6056 2004-03-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
6057
6058         PR middle-end/14470
6059         * expr.c (mark_queue): New function.
6060         (emit_insns_enqueued_after_mark): New function replacing
6061         emit_queue.  Clear the body of emitted queued insns.
6062         (emit_queue): Call emit_insns_enqueued_after_mark.
6063         (store_expr): Mark the increment queue on entry.  Emit
6064         only the incrementations queued when expanding the source.
6065
6066 2004-03-22  Nathanael Nerode  <neroden@gcc.gnu.org>
6067
6068         * configure.ac: Allow --disable-coverage-flags (for the future benefit
6069         of top level bootstrap, and consistency).  Reindent.
6070         * configure: Regenerate.
6071
6072 2004-03-21  Kazu Hirata  <kazu@cs.umass.edu>
6073
6074         * bt-load.c, builtins.c, cfghooks.c, cfgrtl.c, gcse.c,
6075         ggc-page.c, integrate.c, var-tracking.c, web.c: Remove
6076         unnecessary casts.
6077
6078 2004-03-22  Danny Smith  <dannysmith@users.sourceforge.net>
6079
6080         PR target/14291
6081         * gcov-io.h (gcov_truncate): Define ftruncate as _chsize for
6082         __MINGW32__.
6083
6084 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
6085
6086         * config/s390/s390.md ("*doloop_si"): Change predicate for operand 2
6087         to nonimmediate_operand.
6088         ("*doloop_di"): Likewise.
6089
6090 2004-03-21  Alexandre Oliva  <aoliva@redhat.com>
6091
6092         * real.h (struct real_value): Use the same type for all
6093         bitfields.  Rename exp to uexp.
6094         (REAL_EXP, SET_REAL_EXP): New accessor macros for uexp.
6095         Adjust all uses of exp...
6096         * builtins.c: ... here, ...
6097         * emit-rtl.c: ... here, and ...
6098         * real.c: ... and here.
6099
6100 2004-03-21  Gabriel Dos Reis  <gdr@integrable-solutions.net>
6101
6102         * pretty-print.c (pp_base_maybe_space): New function.
6103         * pretty-print.h (pp_base_maybe_space): Declare.
6104         (pp_maybe_space): New macro.
6105
6106 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
6107
6108         * config/s390/s390.md ("addti3", "subti3"): New insns and splitters.
6109
6110 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
6111
6112         * expmed.c (choose_mult_variant): Pass MULT_COST as argument instead
6113         of using register multiplication cost.
6114         (expand_mult): Adapt choose_mult_variant call.
6115         (expand_mult_highpart): Call choose_mult_variant with WIDER_MODE
6116         of MODE; pass appropriate cost bound.  Adjust result when
6117         performing signed multiplication by a negative constant.
6118         Don't use intermediate modes larger than word_mode.
6119
6120 2004-03-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6121
6122         * alias.c (get_alias_set): Remove handling of PLACEHOLDER_EXPR.
6123         * emit-rtl.c (component_ref_for_mem_expr): Likewise.
6124         (set_mem_attributes_minus_bitpos): Call SUBSTITUTE_PLACEHOLDER_IN_EXPR.
6125         * explow.c (expr_size): Likewise.
6126         * expr.h (placeholder_list, find_placeholder): Deleted.
6127         * expr.c (store_constructor): Likewise.
6128         (get_inner_reference): Likewise.  Also don't call find_placeholder.
6129         (placeholder_list, find_placeholder): Deleted.
6130         (is_aligning_offset): Don't handle WITH_RECORD_EXPR, PLACEHOLDER_EXPR.
6131         (expand_expr_real, cases PLACEHOLDER_EXPR, WITH_RECORD_EXPR): Likewise.
6132         (highest_pow2_factor, case WITH_RECORD_EXPR): Remove.
6133         * dojump.c (do_jump, case WITH_RECORD_EXPR): Likewise.
6134         * dwarf2out.c (loc_descriptor_from_tree, case WITH_RECORD_EXPR):
6135         Likewise.
6136         * fold-const.c (invert_truthvalue, case WITH_RECORD_EXPR): Likewise.
6137         (extract_muldiv, case WITH_RECORD_EXPR): Likewise.
6138         * tree.c (expr_align, case WITH_RECORD_EXPR): Likewise.
6139         (contains_placeholder_p): Don't handle WITH_RECORD_EXPR.
6140         Clean up by using first_rtl_op.
6141         (substitute_in_expr): Use SUBSTITUTE_IN_EXPR for recursive call.
6142         (substitute_placeholder_in_expr): New function.
6143         * tree.def (WITH_RECORD_EXPR): Deleted.
6144         * tree.h (SUBSTITUTE_IN_EXPR, SUBSTITUTE_PLACEHOLDER_IN_EXPR): New.
6145         (substitute_placeholder_in_expr): New.
6146
6147 2004-03-21  Andrew Pinski  <pinskia@gcc.gnu.org>
6148
6149         * dojump.c (prefer_and_bit_test): Fix which part of
6150         the and_test is replaced.
6151
6152 2004-03-21  Joseph S. Myers  <jsm@polyomino.org.uk>
6153
6154         * frontends.texi: Add missing line.
6155
6156 2004-03-21  Zack Weinberg  <zack@codesourcery.com>
6157             Chris Devers  <cdevers@pobox.com>
6158             Joseph S. Myers  <jsm@polyomino.org.uk>
6159
6160         * doc/frontends.texi: Rewrite.
6161         * doc/gcc.texi: Update last modification date.
6162
6163 2004-03-21  Josef Zlomek  <zlomekj@suse.cz>
6164
6165         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Print the debug
6166         message before redirecting the edge.
6167
6168 2004-03-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6169
6170         * emit-rtl.c (set_mem_attributes_minus_bitpos): Set MEM_POINTER
6171         flag.
6172         * explow.c (force_not_mem): Set REG_POINTER flag according to
6173         MEM_POINTER one.
6174         * rtl.h (MEM_POINTER): New macro.
6175         (struct rtx_def): Use integrated for MEM_SCALAR_P and frame_related
6176         for MEM_POINTER.
6177
6178 2004-03-20  Roger Sayle  <roger@eyesopen.com>
6179
6180         PR target/13889
6181         * cse.c (fold_rtx): Avoid substituting constants into unary
6182         conversion operations.
6183
6184 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
6185
6186         * fold-const.c (fold): Replace "expr" with "t".
6187
6188 2004-03-20  Ian Lance Taylor  <ian@wasabisystems.com>
6189
6190         PR c/12373
6191         * c-typeck.c (tagged_types_tu_compatible_p): Don't use
6192         DECL_ORIGINAL_TYPE if there isn't one.
6193
6194 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
6195
6196         * fold-const.c (fold): Replace "final_type" with "type".
6197         Remove variable "final_type".
6198
6199 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
6200
6201         * fold-const.c (fold): Constify "type".
6202         Replace "TREE_TYPE (t)" with "type".
6203
6204 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
6205
6206         * bb-reorder.c, bt-load.c, c-decl.c, cfgcleanup.c, coverage.c,
6207         dwarf2asm.c, ifcvt.c, stor-layout.c, varasm.c: Replace calls
6208         via (*targetm.foo) () with targetm.foo ().
6209
6210 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
6211
6212         PR other/14630
6213         * doc/install.texi: Add info directory category and entry.
6214
6215 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
6216
6217         * fold-const.c (fold): Replace "t" with "tem" where it is used
6218         as a temporary variable.  Remove "orig_t" and all of its uses.
6219
6220 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
6221
6222         * fold-const.c (fold): Remove variable "invert".
6223         Move the handling of relational expressions that can be folded
6224         to a constant ...
6225         (fold_relational_const): ... here.
6226         (tree_expr_nonzero_p): New.
6227
6228 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
6229
6230         PR c/14635
6231         * builtins.def (nan, nanf, nanl, nans, nansf, nansl): Change to
6232         DEF_GCC_BUILTIN.
6233
6234 2004-03-20  Richard Sandiford  <rsandifo@redhat.com>
6235
6236         * Makefile.in (dojump.o): Depend on $(GGC_H) and dojump.h.
6237         (GTFILES): Add $(srcdir)/dojump.h.
6238         (gt-dojump.h): New dependency.
6239         * dojump.c (and_reg, and_test, shift_test): New static variables.
6240         (prefer_and_bit_test): New function.
6241         (do_jump): Use it to choose between (X & (1 << C)) and (X >> C) & 1.
6242
6243 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
6244
6245         * c-common.c, cfgcleanup.c, cgraphunit.c, c-pretty-print.c,
6246         expmed.c, ggc-common.c, jump.c, passes.c, recog.c, regmove.c,
6247         reorg.c, tree.h: Fix comment typos.
6248
6249 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
6250
6251         * alias.c, attribs.c, bt-load.c, builtins.c, c-common.c,
6252         c-decl.c, c-objc-common.c, c-typeck.c, calls.c, cfglayout.c,
6253         cse.c, dbxout.c, dwarf2out.c, except.c, final.c,
6254         haifa-sched.c, integrate.c, passes.c, rtlanal.c, sched-rgn.c,
6255         sched-vis.c, simplify-rtx.c, stor-layout.c, tree.c, varasm.c,
6256         vmsdbgout.c: Replace calls via (*targetm.foo) () with
6257         targetm.foo ().
6258
6259 2004-03-19  Ziemowit Laski  <zlaski@apple.com>
6260
6261         * config/rs6000/altivec.h (vec_dst, vec_dstst, vec_dststt,
6262         vec_dstt, vec_sld, vec_splat): Add prototypes, marked with
6263         always_inline attribute.
6264         * config/rs6000/rs6000.c (altivec_expand_dst_builtin):
6265         Treat expansion as completed even if literal argument is
6266         invalid (so that other expansions are not tried in vain).
6267
6268 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
6269
6270         * loop-doloop.c (add_test): Replace GEN_INT (0) with
6271         const0_rtx.
6272
6273 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
6274
6275         * fold-const.c (fold) <ABS_EXPR>: Move the handling of constants
6276         ...
6277         (fold_abs_const): ... here.
6278
6279 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6280
6281         * tree.h (TYPE_ARRAY_MAX_SIZE): Use type.maxval directly.
6282
6283 2004-03-19  Denis Chertykov  <denisc@overta.ru>
6284
6285         PR target/11520
6286         * config/avr/avr.md ("call_insn"): Handle explicit integer
6287         specially.
6288         (call_value_insn): Likewise.
6289
6290 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6291
6292         * tree.c (substitute_in_expr): Rewrite to simplify and be more generic.
6293
6294 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
6295
6296         * fold-const.c (negate_expr): Move the handling of constants
6297         ...
6298         (fold_negate_const): ... here.
6299
6300 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6301
6302         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): New macro and hook.
6303         * langhooks.h (struct lang_hooks_for_types): New field hash_types.
6304         * tree.c (debug_no_type_hash): Deleted.
6305         (type_hash_canon): Abort if passed a variant.
6306         Check lang_hooks.types.hash_types.
6307         (build_type_no_quals): Copy mode of POINTER_TYPE and REFERENCE_TYPE.
6308         (build_array_type): Remove unnecessary allocation of pointer type.
6309         (build_complex_type): Properly qualify resulting type.
6310
6311 2004-03-19  Paolo Bonzini  <bonzini@gnu.org>
6312
6313         * config/rs6000/rs6000.c (rs6000_init_builtins): Fix typo.
6314
6315 2004-03-19  Richard Sandiford  <rsandifo@redhat.com>
6316
6317         * expmed.c (choose_mult_variant, expand_mult_const): New, split from...
6318         (expand_mult): ...here.
6319         (extract_high_half): New, split out from expand_mult_highpart.
6320         (expand_highpart_optab): Likewise.  Don't clobber target prematurely.
6321         (expand_highpart): Evaluate the cost of a shift/add sequence,
6322         then see if any of the specialized optabs are cheaper.
6323
6324 2004-03-18  Ian Lance Taylor  <ian@wasabisystems.com>
6325
6326         * mklibgcc.in: Remove obsolete MAYBE_USE_COLLECT2.
6327
6328 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6329
6330         * convert.c (convert_to_real): Add more math builtins.
6331
6332 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6333
6334         * convert.c (convert_to_real): Reformat using switch stmt.
6335
6336 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
6337
6338         * c-common.c (pointer_int_sum): Do not complain about using
6339         pointers to pointers-to-members.
6340
6341 2004-03-18  Kazu Hirata  <kazu@cs.umass.edu>
6342
6343         * system.h (MD_ASM_CLOBBERS): Move to "Old target macros that
6344         have moved to the target hooks structure".
6345
6346 2004-03-18  James E Wilson  <wilson@specifixinc.com>
6347
6348         * config/mips/mips.md (type): Split move into arith and fmove.  Split
6349         hilo into mthilo and mfhilo.  Add trap.  Delete icmp.  Fix all uses.
6350         * config/mips/5400.md (ir_vr54_hilo, ir_vr54_arith, ir_vr54_fabs):
6351         Likewise.
6352         * config/mips/5500.md (ir_vr55_hilo, ir_vr55_arith, ir_vr55_fabs):
6353         Likewise.
6354         * config/mips/7000.md (rm7_int_other, rm7_mthilo, rm7_mfhilo,
6355         rm7_fp_quick): Likewise.
6356         * config/mips/9000.md (rm9k_int, rm9k_mfhilo, rm9k_mthilo,
6357         rm9k_fquick): Likewise.
6358         * config/mips/sr71k.md (ir_sr70_hilo, ir_sr70_arith, ir_sr70_fabs):
6359         Likewise.
6360         (ir_sr70_icmp): Delete.
6361
6362 2004-03-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6363
6364         * tree.h (TREE_CHECK2, TREE_CHECK3, TREE_CHECK5): New macros.
6365         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New decl.
6366         (FUNC_OR_METHOD_CHECK, SET_ARRAY_OR_VECTOR_CHECK): New macros.
6367         (REC_OR_UNION_CHECK, NUMERICAL_TYPE_CHECK): Likewise.
6368         (TYPE_VALUES, TYPE_DOMAIN, TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD):
6369         Protect with proper check.
6370         (TYPE_ARG_TYPES, TYPE_METHOD_BASETYPE, TYPE_OFFSET_BASETYPE): Likewise.
6371         (TYPE_MIN_VALUE, TYPE_MAX_VALUE): Likewise.
6372         * tree.c (type_hash_eq): Rewrite to access proper fields for each type.
6373         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New.
6374         * c-typeck.c (build_array_ref): Use TYPE_DOMAIN, not TYPE_VALUES.
6375         * dwarf2out.c (gen_enumeration_type_die): Use TYPE_VALUES,
6376         not TYPE_FIELDS.
6377         * stor-layout.c (set_sizetype): Use TYPE_ORIG_SIZE_TYPE.
6378
6379 2004-03-18  Mostafa Hagog  <mustafa@il.ibm.com>
6380
6381         * gcse.c (eliminate_partially_redundant_loads): Reject change if
6382         dest is set between beginning and current insn.
6383
6384 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
6385
6386         * c-decl.c (grokdeclarator): Do not complain about redeclaring
6387         visible "static" identifiers "extern" in a local scope.
6388         * dwarf2out.c (loc_descriptor_from_tree): Handle pre- and
6389         post-increments/decrements.
6390
6391 2004-03-18  Bob Wilson  <bob.wilson@acm.org>
6392
6393         * config/xtensa/xtensa.c (current_function_arg_words): Delete.
6394         (xtensa_builtin_saveregs): Use current_function_args_info.arg_words.
6395         (xtensa_va_start): Remove assignment to current_function_arg_words.
6396
6397 2004-03-18  Richard Sandiford  <rsandifo@redhat.com>
6398
6399         * alias.c (record_set): Detect the case where a register is assigned
6400         a new value that has the same base term as the old one.
6401
6402 2004-03-18  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6403
6404         * doloop.c: Removed.
6405         * loop-doloop.c: New file.
6406         * Makefile.in (doloop.o): Remove.
6407         (loop-doloop.o): New.
6408         * cfgloop.h (get_loop_level, doloop_optimize_loops): Declare.
6409         * cfgloopanal.c (get_loop_level): New function.
6410         * loop-iv.c (iv_number_of_iterations): Handle case when loop
6411         is leaved immediatelly.
6412         * loop.c (strength_reduce): Do not call doloop optimization.
6413         * loop.h (LOOP_BCT): Removed.
6414         * passes.c (rest_of_handle_loop_optimize): Do not use LOOP_BCT.
6415         (rest_of_handle_loop2): Call doloop_optimize_loops.
6416         (rest_of_compilation): Test for optimizations moved to
6417         rest_of_handle_loop2.
6418
6419 2004-03-17  Fariborz Jahanian <fjahanian@apple.com>
6420
6421         * config/rs6000/rs6000.c (rs6000_stack_info): correct reg_size
6422         for mixed mode.
6423         (rs6000_emit_prologue): Ditto.
6424         (rs6000_emit_epilogue): Ditto.
6425         * config/rs6000/rs6000.h: Definition of DWARF_CIE_DATA_ALIGNMENT
6426         macro for mixed mode.
6427
6428 2004-03-18  Jan Hubicka  <jh@suse.cz>
6429
6430         * predict.c (propagate_freq): Compute correctly frequency of
6431         EXIT_BLOCK.
6432
6433 2004-03-17  Eric Christopher  <echristo@redhat.com>
6434
6435         * builtins.c (apply_args_size): Use reg_raw_mode.
6436         (apply_result_size): Ditto.
6437
6438 2004-03-17  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
6439
6440         PR target/14620
6441         * config/rtems.h: Add STD_LIB_SPEC and LIB_SPEC.
6442
6443 2004-03-17  Jakub Jelinek  <jakub@redhat.com>
6444
6445         * config/rs6000/t-linux64 (bispecs): Don't add -mlong-double-128 for
6446         32-bit builds when defaulting to 32-bit.
6447
6448 2004-03-17  Jan Hubicka  <jh@suse.cz>
6449
6450         * cfgrtl.c (rtl_create_basic_block): Pre-allocate basic_block_info
6451         array.
6452
6453 2004-03-17  James E Wilson  <wilson@specifixinc.com>
6454
6455         * config/mips/mips.md (zero_extendsidi2): Add length attribute.
6456         (hazard_nop): Change type to nop.
6457         (type): Split arith into arith, shift, slt, clz.  Delete darith.
6458         Fix all uses.  Change arith to multi if more than one insn emitted.
6459         * config/mips/5400.md (ir_vr54_arith): Likewise.
6460         * config/mips/5500.md (ir_vr55_arith): Likewise.
6461         * config/mips/7000.md (rm7_int_other): Likewise.
6462         * config/mips/9000.md (rm9k_int): Likewise.
6463         * config/mips/sr71k.md (ir_sr70_arith): Likewise.
6464
6465 2004-03-17  Joel Brobecker  <brobecker@gnat.com>
6466
6467         * dwarf2out.c (subrange_type_die): Define new variable "subtype"
6468         to hold the subtype tree instead of recomputing it several times.
6469
6470 2004-03-17  Kazu Hirata  <kazu@cs.umass.edu>
6471
6472         * config/mn10300/mn10300.c (notice_update_cc): Don't handle
6473         CC_INVERT.
6474         * config/mn10300/mn10300.md (cc): Remove "invert".
6475
6476 2004-03-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6477
6478         * builtins.c (integer_valued_real_p): Add builtin rint.
6479         (fold_builtin): Likewise.
6480         * convert.c (convert_to_real): Likewise.
6481
6482         * convert.c (convert_to_real): Fix typos in `long double'
6483         builtins.
6484
6485 2004-03-16  Mark Mitchell  <mark@codesourcery.com>
6486
6487         PR c++/14481
6488         * fold-const.c (fold): Set TREE_NO_UNUSED_WARNING on implicitly
6489         generated COMPOUND_EXPRs.
6490
6491 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
6492
6493         * config/h8300/t-rtems (h8300-*-rtems*): New.
6494
6495 2004-03-16  Eric Christopher  <echristo@redhat.com>
6496
6497         * doc/cppopts.texi(fwide-exec-charset): Fix typo.
6498
6499 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
6500
6501         * config/i386/i386-protos.h: Add a prototype for
6502         ix86_reverse_condition.
6503         * config/i386/i386.c (ix86_reverse_condition): New.
6504         * config/i386/i386.h (REVERSE_CONDITION): Use
6505         ix86_reverse_condition.
6506         * config/i386/i386.md: Use ix86_reverse_condition instead of
6507         REVERSE_CONDITION.
6508
6509 2004-03-16  J. Brobecker  <brobecker@gnat.com>
6510
6511         * dwarf2out.c (loc_descriptor_from_tree): Add handling for MIN_EXPR.
6512
6513 2004-03-16  Nathanael Nerode  <neroden@gcc.gnu.org>
6514
6515         PR bootstrap/12974
6516         * Makefile.in: Pass $(INCLUDES) down to libgcc.mk explicitly.
6517
6518 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
6519
6520         * c-common.c (c_common_type_for_mode): Build vector types on
6521         demand.
6522         (handle_mode_attribute): Deprecate using the mode attribute
6523         to create vector types.  Fix indentation.
6524         (vector_type_node_list): Remove.
6525         (handle_vector_size_attribute): Create vector types on demand.
6526         Strip a NON_LVALUE_EXPR from the attribute if there is one.
6527         * c-typeck.c (comptypes): Make vector types compatible if they
6528         have the same underlying mode.
6529         (convert_for_assignment): Use comptypes to convert between
6530         vector types.
6531         * tree.c (build_common_tree_nodes_2): Do not create vector types.
6532         * config/arm/arm.c (arm_init_iwmmxt_builtins): Create necessary
6533         vector types.
6534         * tree.h: Remove vector types.
6535         * config/i386/i386.c (i386_init_mmx_sse_builtins): Likewise.
6536         * config/rs6000/rs6000.c (rs6000_init_builtins): Likewise.
6537         (V16QI_type_node, V2SI_type_node, V2SF_type_node, V4HI_type_node,
6538         V4SI_type_node, V4SF_type_node, V8HI_type_node): New globals.
6539         * doc/extend.texi (Vector Types): Document how to use the
6540         vector_size attribute to create vectors, rather than mode.
6541
6542         * config/arm/mmintrin.h: Use vector_size attribute, not mode.
6543         * config/i386/emmintrin.h: Likewise.
6544         * config/i386/mmintrin.h: Likewise.
6545         * config/i386/xmmintrin.h: Likewise.
6546         * config/sh/ushmedia.h: Likewise.
6547
6548 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
6549
6550         * config/freebsd-spec.h, config/arc/arc-protos.h,
6551         config/arm/aout.h, config/arm/elf.h, config/arm/freebsd.h,
6552         config/arm/linux-gas.h, config/arm/semi.h,
6553         config/cris/cris-protos.h, config/i386/xm-djgpp.h,
6554         config/ia64/freebsd.h, config/mips/7000.md,
6555         config/mips/9000.md, config/ns32k/ns32k-protos.h,
6556         config/sparc/pbd.h: Update copyright.
6557
6558 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
6559
6560         PR target/14577
6561         * config.gcc: Switch sh-*-rtems* to ELF.  Add sh-*-rtemscoff.
6562
6563 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
6564
6565         * combine.c (combine_simplify_rtx): Remove the "last"
6566         parameter and its documentation.  Adjust recursive calls.
6567         (simplify_logical): Always perform the only simplification
6568         controlled by "last", if the simplified expression is
6569         actually different.
6570         (try_combine): Do not pass the "last" parameter to
6571         combine_simplify_rtx.
6572
6573 2004-03-16  Richard Sandiford  <rsandifo@redhat.com>
6574
6575         PR target/14599
6576         * config/mips/mips.md (UNSPEC_GP): New constant.
6577         * config/mips/mips.c (CONST_GP_P): Expect the CONST to contain
6578         an UNSPEC instead of (reg $gp).
6579         (mips16_gp_pseudo_reg): Change accordingly.
6580         (print_operand): Print $gp directly when handling CONST_GP_P.
6581
6582 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
6583
6584         * config.gcc, config/m68k/linux.h: Implement with-cpu for m68k-linux.
6585         * longlong.h: Make code 68060 clean when compiling for m68060.
6586
6587 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
6588
6589         * config/m68k/m68k.md: Fix constraints for bitfield instructions.
6590         * doc/md.texi: Clarify description of "i" constraint.
6591
6592 2004-03-15  James E Wilson  <wilson@specifixinc.com>
6593
6594         * config/mips/mips.md (type): Split load into load, fpload, fpidxload.
6595         Split store into store, fpstore, fpidxstore.  Fix all uses.
6596         * config/mips/5400.md (ir_vr54_load, ir_vr54_store, ir_vr54_fstore):
6597         Likewise.
6598         * config/mips/5500.md (ir_vr55_load, i5_vr55_store): Likewise.
6599         * config/mips/7000.md (rm7_ld, rm7_st): Likewise.
6600         * config/mips/9000.md (rm9k_load, rm9k_store): Likewise.
6601         * config/mips/sr71k.md (ir_sr70_load, ir_sr70_store, ir_sr70_fload,
6602         ir_sr70_fstore): Likewise.
6603
6604 2004-03-15  Richard Henderson  <rth@redhat.com>
6605
6606         PR middle-end/14535
6607         * except.c (collect_one_action_chain): Record action for cleanup
6608         outer of exception spec.
6609
6610 2004-03-15  Ian Lance Taylor  <ian@wasabisystems.com>
6611
6612         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
6613         Fix the check for abort and only do the mmap if we can.
6614
6615 2004-03-15  Eric Botcazou  <ebotcazou@act-europe.fr>
6616
6617         * config/sparc/sparc.h: Rework comments about the code model
6618         in 64-bit environment and the mode 'Pmode'.
6619         * doc/invoke.texi (SPARC options): Rework description of the
6620         different code models supported in 64-bit environment.
6621
6622 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
6623
6624         * defaults.h (REVERSIBLE_CC_MODE): Define.
6625         * jump.c (reversed_comparison_code_parts): Don't check if
6626         REVERSIBLE_CC_MODE is defined.
6627
6628 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
6629
6630         * c-incpath.c, c-incpath.h, c-pch.c, c.opt, cppexp.c,
6631         et-forest.h, genattr.c, ggc-none.c, hosthooks-def.h,
6632         hosthooks.h, params.h, ra-colorize.c, web.c,
6633         config/darwin-c.c, config/alpha/freebsd.h, config/arm/pe.c,
6634         config/avr/avr-protos.h, config/avr/avr.md,
6635         config/fr30/fr30-protos.h, config/fr30/fr30.md,
6636         config/h8300/fixunssfsi.c, config/i386/darwin.h,
6637         config/i386/freebsd.h, config/i386/freebsd64.h,
6638         config/ia64/hpux.h, config/ia64/unwind-ia64.c,
6639         config/ip2k/libgcc.S, config/m32r/xm-m32r.h,
6640         config/mmix/mmix-modes.def, config/ns32k/netbsd.h,
6641         config/ns32k/ns32k.md, config/pa/pa64-hpux.h,
6642         config/pa/pa64-regs.h, config/rs6000/aix41.h,
6643         config/rs6000/aix43.h, config/rs6000/host-darwin.c,
6644         config/sparc/aout.h, config/sparc/freebsd.h,
6645         config/sparc/litecoff.h, config/vax/vax-protos.h,
6646         doc/hostconfig.texi, doc/include/gcc-common.texi: Update
6647         copyright.
6648
6649 2004-03-15  Paul Brook  <paul@codesourcery.com>
6650
6651         * config/arm/arm.c (thumb_expand_prologue): Tie prologue insns to fp.
6652
6653 2004-03-15  Gabriel Dos Reis  <gdr@integrable-solutions.net>
6654
6655         * c-pretty-print.c (pp_c_semicolon): Fix formatting.
6656         (pp_c_cv_qualifier): Document.
6657         (pp_c_space_for_pointer_operator): Likewise.
6658         (pp_c_integer_constant): Likewise.
6659         (pp_c_identifier): Likewise.
6660         (pp_c_init_declarator): Don't print function body.
6661
6662 2004-03-14  Joseph S. Myers  <jsm@polyomino.org.uk>
6663
6664         * doc/contrib.texi, doc/extend.texi, doc/gcov.texi,
6665         doc/install.texi, doc/invoke.texi, doc/makefile.texi,
6666         doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi: Capitalize
6667         "gcc", "g++" and "g77" or mark up with appropriate markup.  Adjust
6668         wording and grammar.
6669
6670 2004-03-14  Roger Sayle  <roger@eyesopen.com>
6671
6672         * alias.c (get_alias_set): Replace calls via (*lang_hooks.foo) ()
6673         with lang_hooks.foo ().
6674         * builtins.c (expand_builtin_va_arg): Likewise.
6675         * c-common.c (fname_as_string, c_common_truthvalue_conversion,
6676         c_common_type_for_mode, c_common_nodes_and_builtins,
6677         handle_mode_attribute, handle_vector_size_attribute): Likewise.
6678         * c-convert.c (convert): Likewise.
6679         * c-format.c (check_format_types): Likewise.
6680         * c-objc-common.c (c_tree_printer): Likewise.
6681         * c-typeck.c (build_unary_op, build_conditional_expr,
6682         build_binary_op): Likewise.
6683         * calls.c (try_to_integrate, expand_call,
6684         emit_library_call_value_1): Likewise.
6685         * cgraph.c (cgraph_node_name, cgraph_function_possibly_inlined_p):
6686         Likewise.
6687         * cgraphunit.c (record_call_1, cgraph_analyze_function,
6688         cgraph_expand_function): Likewise.
6689         * convert.c (convert_to_pointer, convert_to_integer): Likewise.
6690         * coverage.c (build_fn_info_type, build_ctr_info_type,
6691         build_gcov_info, create_coverage): Likewise.
6692         * dbxout.c (dbxout_init): Likewise.
6693         * diagnostic.c (diagnostic_report_current_function): Likewise.
6694         * dojump.c (do_jump): Likewise.
6695         * dwarf2out.c (dwarf2_name): Likewise.
6696         * except.c (init_eh): Likewise.
6697         * explow.c (expr_size, int_expr_size): Likewise.
6698         * expmed.c (make_tree, const_mult_add_overflow_p, expand_mult_add):
6699         Likewise.
6700         * expr.c (store_expr, store_constructor, safe_from_p,
6701         expand_expr_real, do_store_flag, try_casesi): Likewise.
6702         * function.c (push_function_context_to, pop_function_context_from,
6703         free_after_parsing, assign_stack_local_1, assign_stack_temp_for_type,
6704         put_var_into_stack, allocate_struct_function, current_function_name):
6705         Likewise.
6706         * integrate.c (copy_decl_for_inlining, expand_inline_function):
6707         Likewise.
6708         * langhooks.c (lhd_clear_binding_stack, write_global_declarations,
6709         lhd_print_error_function): Likewise.
6710         * opts.c (handle_option, decode_options): Likewise.
6711         * passes.c (open_dump_file): Likewise.
6712         * print-tree.c (print_node): Likewise.
6713         * stmt.c (expand_fixup, fixup_gotos, expand_asm_operands,
6714         expand_decl_cleanup, emit_case_nodes): Likewise.
6715         * stor-layout.c (variable_size): Likewise.
6716         * toplev.c (announce_function, wrapup_global_declarations,
6717         check_global_declarations, compile_file, default_tree_printer,
6718         process_options, lang_dependent_init, finalize): Likewise.
6719         * tree-dump.c (dequeue_and_dump): Likewise.
6720         * tree-inline.c (remap_decl, remap_block, copy_body_r,
6721         initialize_inlined_parameters, declare_return_variable,
6722         inlinable_function_p, expand_call_inline, optimize_inline_calls,
6723         walk_tree, copy_tree_r): Likewise.
6724         * tree-optimize.c (tree_rest_of_compilation): Likewise.
6725         * tree.c (decl_assembler_name, tree_size, size_in_bytes, staticp,
6726         unsafe_for_reeval, get_unwidened, get_narrower, get_callee_fndecl,
6727         variably_modified_type_p, dump_tree_statistics): Likewise.
6728         * varasm.c (assemble_variable, compare_constant, copy_constant,
6729         force_const_mem, compute_reloc_for_constant, output_constant,
6730         output_addressed_constants, initializer_constant_valid_p): Likewise.
6731
6732 2004-03-14  Kelley Cook  <kcook@gcc.gnu.org>
6733
6734         * doc/install.texi: Make autoconf 2.13 the exception, not the rule.
6735
6736 2004-03-14  Andreas Tobler  <a.tobler@schweiz.ch>
6737
6738         * doc/install.texi: Reflect autoconf and automake version for
6739         libffi. Update autoconf version to 2.59.
6740
6741 2004-03-13  Roger Sayle  <roger@eyesopen.com>
6742
6743         * fold-const.c (negate_expr, operand_equal_for_comparison_p,
6744         optimize_bit_field_compare, decode_field_reference, all_ones_mask_p,
6745         make_range, build_range_check, fold_range_test, unextend,
6746         constant_boolean_node, fold_binary_op_with_conditional_arg,
6747         fold_truthop, fold_mathfn_compare, fold_inf_compare,
6748         fold_single_bit_test, fold): Replace calls via (*lang_hooks.foo) ()
6749         with lang_hooks.foo ().
6750
6751 2004-03-14  Richard Earnshaw  <rearnsha@arm.com>
6752
6753         * arm.h (EXTRA_CONSTRAINT_STR_ARM): Update comment.
6754
6755 2004-03-13  Dara Hazeghi  <dhazeghi@yahoo.com>
6756
6757         * doc/install.texi: Note status of -fnew-ra.
6758
6759 2004-03-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
6760
6761         PR middle-end/14470
6762         * expr.c (store_expr): Call emit_queue before generating the move
6763         from the temporary to the original target.  Protect the temporary
6764         from emit_queue.
6765
6766 2004-03-13  Jakub Jelinek  <jakub@redhat.com>
6767
6768         PR target/14533
6769         * config/s390/s390.c (legitimize_pic_address): Don't abort on UNSPEC
6770         other than UNSPEC_GOTOFF.
6771
6772 2004-03-13  Richard Earnshaw  <rearnsha@arm.com>
6773
6774         * arm.c (arm_legitimate_address_p): New argument, OUTER.  Pass through
6775         to arm_legitimate_index_p.  Update all callers with SET as default
6776         value.
6777         (arm_legitimate_index_p): New argument, OUTER.  Restrict the index
6778         range if OUTER is a sign-extend operation on QImode.  Correctly
6779         reject shift operations on sign-extended QImode addresses.
6780         (bad_signed_byte_operand): Delete.
6781         (arm_extendqisi_mem_op): New function.
6782         * arm.h (EXTRA_CONSTRAINT_ARM): Delete.  Replace with...
6783         (EXTRA_CONSTRAINT_STR_ARM): ... this.  Handle extended address
6784         constraints.
6785         (CONSTRAINT_LEN): New.
6786         (EXTRA_CONSTRAINT): Delete.  Replace with...
6787         (EXTRA_CONSTRAINT_STR): ... this.
6788         (PREDICATE_CODES): Remove bad_signed_byte_operand.
6789         * arm.md (extendqihi_insn): Use new constraint Uq.  Rework.  Length
6790         is now always default.
6791         (define_splits for bad sign-extend loads): Delete.
6792         (arm_extendqisi, arm_extendqisi_v5): Likewise.
6793         * arm/vfp.md (arm_movsi_vfp, arm_movdi_vfp, movsf_vfp, movdf_vfp):
6794         Rework 'U' constraint to 'Uv'.
6795         * arm-protos.h: Remove bad_signed_byte_operand.  Add
6796         arm_extendqisi_mem_op.
6797         * doc/md.texi (ARM constraints): Rename VFP constraint (now Uv).
6798         Add Uq constraint.
6799
6800 2004-03-13  Alan Modra  <amodra@bigpond.net.au>
6801
6802         * config/rs6000/rs6000.c (rs6000_va_arg): Replace SPLIT_COMPLEX_ARGS
6803         with targetm version.
6804
6805         PR target/14567
6806         * config/rs6000/rs6000.h (UNITS_PER_ARG, RS6000_ARG_SIZE): Delete.
6807         (HARD_REGNO_MODE_OK): Disallow TFmode for fp31.
6808         * config/rs6000/rs6000.c (rs6000_arg_size): New function.
6809         Update all users of RS6000_ARG_SIZE.
6810         (function_arg_advance): Count fregno using mode size.
6811         (function_arg): Handle long double split over regs and memory.
6812         (function_arg_partial_nregs): Likewise.
6813         (rs6000_va_arg): Repackage complex args.
6814
6815 2004-03-13  Dean Ferreyra <dferreyra@igc.org>
6816
6817         PR target/14047
6818         * config/avr/avr.c (avr_progmem_p): Add "attributes" parameter.
6819         (avr_insert_attributes): Pass "attributes" to avr_progmem_p.
6820         * config/avr/avr-protos.h (avr_progmem_p): Change prototype.
6821
6822 2004-03-12  Jakub Jelinek  <jakub@redhat.com>
6823
6824         * config/rs6000/rs6000-protos.h (rs6000_output_dwarf_dtprel): Add
6825         prototype.
6826         * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): New.
6827         * config/rs6000/rs6000.h (ASM_OUTPUT_DWARF_DTPREL): Define.
6828
6829 2003-03-12  Andrew Pinski  <apinski@apple.com>
6830
6831         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
6832         Use ret instead of result. Use addr instead of base.
6833
6834 2004-03-12  David Edelsohn  <edelsohn@gnu.org>
6835
6836         * doc/install.texi (*-ibm-aix*): Document assembler and achiver
6837         fixes required by libstdc++ and update installation instructions
6838         for libstdc++.a.
6839
6840 2004-03-12  Danny Smith  <dannysmith@users.sourceforge.net>
6841
6842         * config/i386/winnt.c (i386_pe_strip_name_encoding_full): Strip
6843         leading '@' on fastcall symbols before stripping suffix.
6844
6845 2004-03-12  Roger Sayle  <roger@eyesopen.com>
6846
6847         * combine.c (unmentioned_reg_p): New function to check whether an
6848         expression is a "specialization" of another, i.e. that there are
6849         no registers or memory references mentioned in the first that don't
6850         appear in the second.
6851         (unmentioned_reg_p_1): New helper subroutine of unmentioned_reg_p.
6852         (combine_instructions): Also try combining instructions using the
6853         REG_EQUAL note from a preceding log-linked instruction.
6854
6855 2004-03-12  Roger Sayle  <roger@eyesopen.com>
6856
6857         * config/i386/i386.c (ix86_split_ashrdi): Optimize shift by 63.
6858
6859 2004-03-12  Matt Austern  <austern@apple.com>
6860
6861         * target.h (struct gcc_target): New target hook, unwind_label.
6862         * target-def.h (TARGET_ASM_EMIT_UNWIND_LABEL): New hook.
6863         * output.h (default_emit_unwind_label): New function.
6864         * default.h (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): New macro.
6865         (TARGET_USES_WEAK_UNWIND_INFO): New target macro.
6866         (TARGET_SUPPORTS_HIDDEN): New target macro.
6867         * dwarf2out.c (struct dw_fde_struct): Add field for function decl
6868         that corresponds to this FDE.
6869         (FRAME_BEGIN_LABEL): Allow target to override default label.
6870         (output_call_frame_info): If FDEs are linknonce, then use extra
6871         indirection for FDE encoding, output a label for each FDE, and
6872         output an empty label for each function without an FDE.
6873         (dwarf2out_begin_prologue): Set up decl field when creating an FDE.
6874         * varasm.c (globalize_decl): Call ASM_MAKE_LABEL_LINKONCE for
6875         decls with DECL_ONE_ONLY set, if that macro is defined.
6876         (make_decl_one_only): Don't use DECL_COMMON if we're compiling
6877         for a SUPPORTS_ONE_ONLY target.
6878         * config/darwin-protos.h (darwin_unique_section): Declare.
6879         (darwin_asm_named_section): Likewise.
6880         (darwin_section_type_flags): Likewise.
6881         (darwin_non_lazy_pcrel): Likewise.
6882         (darwin_emit_unwind_label): Likewise.
6883         (darwin_make_decl_one_only): Likewise.
6884         * config/darwin.c (machopic_finish): Get rid of tweak that
6885         eliminate stubs for symbols that are defined.
6886         (darwin_encode_section_info): Don't treat weak functions as defined.
6887         (darwin_make_decl_one_only): Define.
6888         (darwin_asm_named_section): Likewise.
6889         (darwin_section_type_flags): Likewise.
6890         (darwin_unique_section): Likewise.
6891         (darwin_emit_unwind_label): Likewise.
6892         (darwin_non_lazy_pcrel): Likewise.
6893         (darwin_asm_output_dwarf_delta): Difference between two labels is
6894         local only if both labels are local.
6895         * config/darwin.h (MAKE_DECL_ONE_ONLY): Define.
6896         (ASM_MAKE_LABEL_LINKONCE): Likewise.
6897         (TARGET_SUPPORTS_HIDDEN): Likewise.
6898         (TARGET_USES_WEAK_UNWIND_INFO): Likewise.
6899         (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): Likewise.
6900         (FRAME_BEGIN_LABEL): Likewise.
6901         (ASM_DECLARE_OBJECT_NAME): Make references to weak symbols indirect.
6902         (ASM_DECLARE_FUNCTION_NAME): Likewise.
6903         (darwin_eh_frame_section): Give __eh_frame section the coalesced flag.
6904         (TARGET_ASM_UNIQUE_SECTION): Define.
6905         (EH_FRAME_SECTION_NAME): Define.
6906         (EH_FRAME_SECTION_ATTR): Likewise.
6907         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
6908         (TARGET_ASM_NAMED_SECTION): Likewise.
6909         (TARGET_SECTION_TYPE_FLAGS): Likewise.
6910         * doc/tm.texi: Document TARGET_USES_WEAK_UNWIND_INFO,
6911         TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, TARGET_SUPPORTS_HIDDEN,
6912         TARGET_ASM_EMIT_UNWIND_LABEL.
6913
6914 2004-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6915
6916         * builtins.c (expand_builtin_mathfn): Add pow10* to the
6917         existing exp10* case.
6918         (expand_builtin): Likewise.
6919
6920 2004-03-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
6921
6922         * doc/tm.texi (registers) <Values in Registers>: Add
6923         entry for REGMODE_NATURAL_SIZE.
6924
6925 2004-03-12  Richard Henderson  <rth@redhat.com>
6926
6927         PR target/14547
6928         * target.h (struct gcc_target): Move calls substructure before
6929         booleans.  Add split_complex_arg.
6930         * function.c (assign_parms, split_complex_args): Use it.
6931         * calls.c (expand_call): Likewise.
6932         (split_complex_values): Likewise.  Check for splittable types
6933         before allocating memory.
6934         (split_complex_types): Likewise.
6935         * system.h (SPLIT_COMPLEX_ARGS): Poison.
6936         * expr.h (SPLIT_COMPLEX_ARGS): Remove.
6937         * target-def.h (TARGET_SPLIT_COMPLEX_ARG): New.
6938         * config/alpha/alpha.c (alpha_split_complex_arg): New.
6939         (TARGET_SPLIT_COMPLEX_ARG): New.
6940         * config/alpha/alpha.h (SPLIT_COMPLEX_ARGS): Remove.
6941         * config/rs6000/rs6000.c (TARGET_SPLIT_COMPLEX_ARG): New.
6942         (rs6000_override_options): Zap it for non-AIX.
6943         (rs6000_function_value): Use targetm.calls.split_complex_arg.
6944         * config/rs6000/rs6000.h (SPLIT_COMPLEX_ARGS): Remove.
6945         * config/xtensa/xtensa.c (TARGET_SPLIT_COMPLEX_ARG): New.
6946         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Remove.
6947         * doc/tm.texi (TARGET_SPLIT_COMPLEX_ARG): Modify from old
6948         SPLIT_COMPLEX_ARGS entry.
6949
6950 2004-03-11  Richard Henderson  <rth@redhat.com>
6951
6952         * config/alpha/alpha.c (xfloating_ops, vax_cvt_ops): New.
6953         (alpha_lookup_xfloating_lib_func): Use them, return rtx.
6954         (alpha_emit_xfloating_arith): Update to match.
6955         (alpha_emit_xfloating_compare): Likewise.
6956         (alpha_emit_xfloating_cvt): Likewise.
6957         (alpha_emit_xfloating_libcall): Take already built symbol,
6958         mark call const.
6959         * config/alpha/alpha.md (extendsftf2, extenddftf2): Take
6960         op1 in a register.
6961
6962 2004-03-11  Richard Henderson  <rth@redhat.com>
6963
6964         PR target/14539
6965         * config/alpha/alpha.h (STACK_BOUNDARY): Set to 128.
6966
6967         * simplify-rtx.c (simplify_relational_operation): Fix typo.
6968
6969 2004-03-11  Richard Henderson  <rth@redhat.com>
6970
6971         PR middle-end/14477
6972         * except.c (remove_unreachable_regions): Look thru CALL_PLACEHOLDER.
6973
6974 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
6975
6976         PR target/14262
6977         * calls.c (load_register_parameters): If BLOCK_REG_PADDING is not
6978         defined, pass small BLKmode values in registers in the low-order part.
6979
6980 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
6981
6982         * combine.c (if_then_else_cond): Check for NULL return value of
6983         simplify_gen_subreg.
6984
6985 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
6986
6987         PR target/14496
6988         * config/mips/mips.h (UNITS_PER_FPVALUE): Fix value for
6989         TARGET_SINGLE_FLOAT.
6990
6991 2004-03-11  Steve Ellcey  <sje@cup.hp.com>
6992
6993         * config/ia64/hpux.h (TARGET_INIT_LIBFUNCS): Add undef.
6994         * config/ia64/ia64.h (TARGET_INIT_LIBFUNCS): Add define.
6995         * config/ia64/ia64.c (ia64_init_libfuncs): New.
6996         (ia64_hpux_init_libfuncs): Add call to ia64_init_libfuncs.
6997
6998 2004-03-11  Roger Sayle  <roger@eyesopen.com>
6999
7000         * fold-const.c (negate_expr_p) <RSHIFT_EXPR>: We can optimize
7001         -((int)X>>C) where C is an integer constant one bit less than the
7002         size of X into (unsigned)X>>C.  Similarly for unsigned->signed.
7003         (negate_expr) <RSHIFT_EXPR>: Implement the above transformations.
7004
7005         * simplify-rtx.c (simplify_unary_operation): Also implement the
7006         above transformations at the RTL level.
7007
7008 2004-03-11  Alan Modra  <amodra@bigpond.net.au>
7009
7010         * real.c (encode_ibm_extended): Do round low word.
7011
7012 2004-03-11  Ben Elliston  <bje@wasabisystems.com>
7013
7014         * config/arm/arm.md (is_xscale): Comment this attribute and move
7015         it a bit further up in the file, closer to related attributes.
7016
7017 2004-03-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
7018
7019         * config/host-solaris.c (sol_gt_pch_use_address): Add
7020         missing terminating marker to comment.
7021
7022 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
7023
7024         * config/mips/mips.md: Use move_operand in splitters for 64-bit moves.
7025         (movdi, movsi, movhi, movqi, movsf, movdf): Remove predicates.
7026         (*movdi_32bit_mips16, *movsi_mips16, *movhi_mips16, *movqi_mips16)
7027         (*movsf_mips16, *movdf_mips16):  Name unnamed patterns.  Use
7028         move_operand as source predicate in all cases.
7029         (*movdi_32bit): Renamed from movdi_internal.  Remove 'F' constraint.
7030         Test reg_or_0_operand.  Use move_operand as source predicate.
7031         (*movdi_64bit): Renamed from movdi_internal2.  Test reg_or_0_operand.
7032         (*movdi_64bit_mips16): Renamed from movdi_internal2_mips16.
7033         (*movsi_internal): Renamed from movsi_internal.  Test reg_or_0_operand.
7034         (movhi, movqi, movsf, movdf): Use mips_legitimize_move.
7035         (*movhi_internal): Renamed from movhi_internal.  Test reg_or_0_operand.
7036         Use move_operand as source predicate.  Remove 'K' constraint.
7037         (*movqi_internal): Likewise movqi_internal.
7038         (*movsf_hardfloat): Renamed from movsf_internal1.  Test
7039         reg_or_0_operand.  Use move_operand as source predicate.
7040         (*movsf_softfloat): Likewise movsf_internal2.
7041         (*movdf_hardfloat_64bit): Likewise movsf_internal1a.
7042         (*movdf_hardfloat_32bit): Likewise movsf_internal1b.
7043         (*movdf_softfloat): Likewise movdf_internal2.
7044         * config/mips/mips.c (move_operand): Match arbitrary CONST_INTs
7045         for DImode if !TARGET_64BIT.
7046         (mips_legitimize_move): Simplify accordingly.
7047
7048 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
7049
7050         PR/14362
7051         * var-tracking.c (struct variable_def): Added field refcount.
7052         (variable_htab_free): Decrease the refcount and delete variable
7053         only if there are no more references.
7054         (unshare_variable): New function.
7055         (vars_copy_1): Increase refcount instead of copying the variable.
7056         (variable_union): Share the variables where possible, unshare
7057         the variables if needed.
7058         (variable_different_p): Return false if var1 and var2 are
7059         the same structure.
7060         (variable_was_changed): Init the refcount of new variable.
7061         (set_frame_base_location): Unshare variable if needed.
7062         (set_variable_part): Init the refcount of new variable.
7063         Unshare the variables if needed.
7064         (delete_variable_part): Unshare the variables if needed.
7065         (emit_notes_for_differences_1): Init the refcount of new variable.
7066         (vt_add_function_parameters): Do not add function parameters to
7067         IN set of ENTRY_BLOCK_PTR because it is unused anyway.
7068         (vt_initialize): Do not add frame_base_decl to IN set of
7069         ENTRY_BLOCK_PTR because it is unused anyway.
7070
7071 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
7072
7073         * var-tracking.c (vars_copy_1): Cleanup and speedup chain operations.
7074         (vars_copy): Likewise.
7075         (variable_union): Likewise.
7076         (set_variable_part): Likewise.
7077         (delete_variable_part): Likewise.
7078
7079 2004-03-11  Kazu Hirata  <kazu@cs.umass.edu>
7080
7081         * c-typeck.c, combine.c, cse.c, dominance.c, et-forest.h,
7082         ggc-page.c, var-tracking.c, config/fp-bit.c, config/c4x/c4x.c,
7083         config/cris/cris.c, config/i386/ppro.md, config/i860/i860.c,
7084         config/i860/i860.h, config/m32r/m32r.h, config/m32r/xm-m32r.h,
7085         config/m68hc11/m68hc11.h, config/m68hc11/m68hc11.md,
7086         config/mips/mips.c, config/mmix/mmix.c, config/ns32k/ns32k.h,
7087         config/pa/pa.c, config/pa/pa32-regs.h, config/pa/pa64-regs.h,
7088         config/pdp11/pdp11.h, config/rs6000/rs6000.c,
7089         config/stormy16/stormy16.c: Fix comment typos and formatting.
7090
7091 2004-03-11  Nathanael Nerode  <neroden@gcc.gnu.org>
7092
7093         * configure: Regenerate, since I forgot to while committing Paolo's
7094         changes.
7095
7096 2004-03-08  Paolo Bonzini  <bonzini@gnu.org>
7097
7098         PR ada/14131
7099         Move language detection to the top level.
7100         * configure.ac: Remove code to detect languages,
7101         it now lives exclusively in the top level.
7102         * aclocal.m4 (gcc_AC_PROG_GNAT): Moved to the
7103         top level, renamed to ACX_PROG_GNAT.
7104
7105 2004-03-10  Richard Henderson  <rth@redhat.com>
7106
7107         * c-pch.c (c_common_no_more_pch): Update for gt_pch_use_address
7108         extra arguments.
7109         * config.host (*-*-solaris2*, *-*-linux*): Add out_host_hook_obj
7110         and host_xmake_file fragments.
7111         * ggc-common.c (gt_pch_save): Update for gt_pch_get_address change.
7112         (gt_pch_restore): Similarly for gt_pch_use_address.
7113         (default_gt_pch_get_address): New.
7114         (mmap_gt_pch_get_address): Split out of gt_pch_save.
7115         (default_gt_pch_use_address): Split out of gt_pch_restore.
7116         (mmap_gt_pch_use_address): Likewise.
7117         * hooks.c (hook_voidp_size_t_null): Remove.
7118         (hook_bool_voidp_size_t_false): Remove.
7119         * hooks.h: Likewise.
7120         * hosthooks-def.h (HOST_HOOKS_GT_PCH_GET_ADDRESS): Use one of the
7121         default_ or mmap_ definitions.
7122         (HOST_HOOKS_GT_PCH_USE_ADDRESS): Likewise.
7123         * hosthooks.h (struct host_hooks): Update gt_pch_get_address
7124         and gt_pch_use_address.
7125         * config/host-linux.c, config/host-solaris.c: New files.
7126         * config/x-linux, config/x-solaris: New files.
7127         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_get_address):
7128         Update for changed definition.
7129         (darwin_rs6000_gt_pch_use_address): Likewise.
7130         * doc/hostconfig.texi: Update docs.
7131
7132 2004-03-10  Richard Henderson  <rth@redhat.com>
7133
7134         PR c/14517
7135         * c-decl.c (grokdeclarator): Don't warn for duplicate qualifiers
7136         except for pedantic c90 mode.
7137
7138 2004-03-10  Kelley Cook  <kcook@gcc.gnu.org>
7139
7140         * configure.ac: Bump AC_PREREQ to 2.59.
7141         * configure: Regenerate.
7142
7143 2004-03-10  Uros Bizjak  <uros@kss-loka.si>
7144
7145         * optabs.h (enum optab_index): Add new OTI_exp10 and OTI_exp2.
7146         (exp10_optab, exp2_optab): Define corresponding macros.
7147         * optabs.c (init_optabs): Initialize exp10_optab and exp2_optab.
7148         * genopinit.c (optabs): Implement exp10_optab and exp2_optab
7149         using exp10?f2 and exp2?f2 patterns.
7150         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXP10{,F,L}
7151         using exp10_optab, and BUILT_IN_EXP2{,F,L} using exp2_optab.
7152         (expand_builtin): Expand BUILT_IN_EXP10{,F,L} and BUILT_IN_EXP2{,F,L}
7153         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
7154
7155         * config/i386/i386.md (exp10sf2, exp10df2, exp10xf2, exp2sf2,
7156         exp2df2, exp2xf2): New patterns to implement exp10, exp10f, exp10l,
7157         exp2, exp2f and exp2l built-ins as inline x87 intrinsics.
7158
7159 2004-03-10  Anthony Green  <green@redhat.com>
7160
7161         * doc/invoke.texi (ARM Options): Fix -mpfu typo.
7162
7163 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
7164
7165         * config/rs6000/aix.h (TARGET_OS_CPP_BUILTINS): Rename to ...
7166         (TARGET_OS_AIX_CPP_BUILTINS): this.  Conditionally define
7167         __LONGDOUBLE128.
7168         * config/rs6000/aix41.h (TARGET_OS_CPP_BUILTINS): Use
7169         TARGET_OS_AIX_CPP_BUILTINS.
7170         * config/rs6000/aix43.h (TARGET_OS_CPP_BUILTINS): Same.
7171         * config/rs6000/aix51.h (TARGET_OS_CPP_BUILTINS): Same.
7172         * config/rs6000/aix52.h (TARGET_OS_CPP_BUILTINS): Same.
7173         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Revert
7174         previous change.
7175
7176 2004-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7177
7178         * fold-const.c (tree_expr_nonnegative_p): Add more builtin cases.
7179
7180 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
7181
7182         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
7183         __LONGDOUBLE128 on AIX.
7184
7185 2004-03-10  Andrew Haley  <aph@redhat.com>
7186
7187         PR optimization/14381
7188         * function.c (expand_function_end): Emit a blockage insn before
7189         the epilogue when -fnon-call-exceptions is used.
7190
7191         * except.c (expand_start_all_catch): Make comment more accurate.
7192
7193 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
7194
7195         PR target/14480
7196         * config/rs6000/t-rtems: Add missing file on branch.
7197
7198 2004-03-10  Ulrich Weigand  <uweigand@de.ibm.com>
7199
7200         * dbxout.c (dbxout_symbol_location): Do not output references
7201         to optimized-out constant pool symbols.
7202
7203 2004-03-10  Andreas Schwab  <schwab@suse.de>
7204
7205         * config/ia64/ia64.md (divsi3, udivsi3): Remove unused variable
7206         twon34_r.
7207
7208 2004-03-09  James E Wilson  <wilson@specifixinc.com>
7209
7210         * alias.c (alias_sets_might_conflict_p): New.
7211         * c-typeck.c (build_c_cast): Call it if warn_strict_aliasing > 1.
7212         * common.opt (Wstrict-aliasing=): New.
7213         * flags.h (warn_strict_aliasing): Change type to int.
7214         * opts.c (warn_strict_aliasing): Change type to int.
7215         (common_handle_option): Handle OPT_Wstrict_aliasing_.
7216         * tree.h (alias_sets_might_conflict_p): Declare it.
7217         * doc/invoke.tex (-Wstrict-aliasing=2): Document it.
7218
7219 2004-03-10  Roman Zippel  <zippel@linux-m68k.org>
7220
7221         PR bootstrap/12371
7222         * config/m68k/m68k.h (FIXED_REGISTERS): Add arg pointer.
7223         (CALL_USED_REGISTERS): Likewise.
7224         (REG_CLASS_CONTENTS): Likewise.
7225         (REG_ALLOC_ORDER): New.
7226         (REGNO_REG_CLASS): Use regno_reg_class.
7227         * config/m68k/m68k.c: Add regno_reg_class array.
7228
7229 2004-03-09  Steve Ellcey  <sje@cup.hp.com>
7230
7231         * config/ia64/ia64.md (divsi3): Fix algorithm.
7232           (udivsi3): Ditto.
7233           (setf_exp_xf): Remove '*' from name.
7234         * testsuite/gcc.dg/20040309-1.c: New test.
7235
7236 2004-03-09  Ian Lance Taylor  <ian@wasabisystems.com>
7237
7238         * system.h (SUNOS4_SHARED_LIBRARIES): Poison.
7239         * collect2.c: Remove SUNOS4_SHARED_LIBRARIES code.
7240         * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): Don't define.
7241         * config/sparc/sparc.c (sparc_aout_select_section): Remove.
7242         (sparc_aout_select_rtx_section): Don't check
7243         SUNOS4_SHARED_LIBRARIES.
7244         * config/sparc/sparc.h (SUNOS4_SHARED_LIBRARIES): Don't define.
7245
7246 2004-03-10  Hans-Peter Nilsson  <hp@axis.com>
7247
7248         PR other/14474
7249         * doc/md.texi (Pattern Ordering, Dependent Patterns)
7250         (Jump Patterns, Looping Patterns): Wrap in separate "@ifset
7251         INTERNALS".
7252
7253 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
7254
7255         * config/ia64/hpux.h (MULTILIB_DEFAULTS): Define.
7256         (LIBGCC_SPEC): Update to match.
7257
7258 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
7259
7260         * c-decl.c (last_function_parms, last_function_parm_tags)
7261         (last_function_parm_others, current_function_parms)
7262         (current_function_parm_tags, current_function_parm_others):
7263         Delete.
7264         (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES, ARG_INFO_OTHERS):
7265         New macros.
7266         (grokdeclarator): For function definitions, save the arg-info
7267         block from the declarator in DECL_ARGUMENTS.
7268         (grokparms): Do not write to last_function_parm*.  Use ARG_INFO_*
7269         macros to operate on arg-info block.  Can assume ARG_INFO_PARMS
7270         contains only PARM_DECLs.  Improve diagnostics.
7271         (get_parm_info): Use ARG_INFO_* macros.  Improve comments and
7272         diagnostics.  Disable some expensive checks if not ENABLE_CHECKING.
7273         (store_parm_decls_newstyle): Take the function to operate on,
7274         and an arg-info block, as arguments; don't get anything from
7275         current_function_* globals.
7276         (store_parm_decls_oldstyle): Likewise.
7277         (store_parm_decls): Pass fndecl and its arg-info block down to
7278         store_parm_decls_newstyle/oldstyle.  Send functions with empty
7279         argument lists through store_parm_decls_newstyle to reduce
7280         overhead.
7281         (pushdecl): Comment on the problems with the call to copy_node.
7282         Clear DECL_ARGUMENTS of the old node after copying it, if it
7283         is an arg-info block instead of a chain of decls.
7284         (start_function): Do not manipulate current_function_parm* or
7285         last_function_parm*.
7286
7287 2004-03-09  Roger Sayle  <roger@eyesopen.com>
7288             Andrew Pinski  <pinskia@physics.uc.edu>
7289
7290         * ifcvt.c (noce_try_sign_mask): New function to transform
7291         "x = (y < 0) ? z : 0" into the equivalent "x = (y >> C) & z".
7292         (noce_process_if_block): Call noce_try_sign_mask.
7293
7294 2004-03-09  Andrew Pinski  <apinski@apple.com>
7295
7296         * c-typeck.c (tagged_types_tu_compatible_p):
7297         Fix typo.
7298
7299 2004-03-09  Roger Sayle  <roger@eyesopen.com>
7300
7301         * simplify-rtx.c (simplify_const_relational_operation): New function
7302         renamed from simplify_relational_operation.
7303         (simplify_relational_operation): Change prototype to accept an
7304         additional mode argument.  Call simplify_const_relational_operation.
7305         (simplify_gen_relational): Update simplify_relational_operation call.
7306         (simplify_ternary_operation): Update simplify_relational_operation
7307         subroutine call to use simplify_const_relational_operation instead.
7308
7309         * rtl.h (simplify_const_relational_operation): Prototype here.
7310         (simplify_relational_operation): Add addtional mode argument.
7311
7312         * combine.c (combine_simplify_rtx): Update calls to
7313         simplify_relational_operation.
7314         (simplify_set): Likewise.
7315         (gen_binary): Likewise.
7316         * cse.c (fold_rtx): Likewise.
7317         * dojump.c (compare_from_rtx): Likewise.
7318         (do_compare_rtx_and_jump): Likewise.
7319         * integrate.c (subst_constants): Likewise.
7320         * unroll.c (simplify_cmp_and_jump_insns): Likewise.
7321
7322 2004-03-09  Kazu Hirata  <kazu@cs.umass.edu>
7323
7324         * config/m32r/m32r.md: Remove all define_peephole's.
7325
7326 2004-03-09  Alan Modra  <amodra@bigpond.net.au>
7327
7328         * config/rs6000/rs6000.md: Remove trailing whitespace.
7329
7330 2004-03-08  Eric Christopher  <echristo@redhat.com>
7331
7332         * Makefile.in (site.exp): Add libiconv variable definition.
7333
7334 2004-03-09  Hans-Peter Nilsson  <hp@axis.com>
7335
7336         * configure: Regenerate for config/accross.m4 correction.
7337
7338 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
7339
7340         PR target/14480
7341         * config/rs6000/t-rtems: Add missing file on branch.
7342
7343 2004-03-08  Roger Sayle  <roger@eyesopen.com>
7344
7345         PR middle-end/14289
7346         * c-typeck.c (c_mark_addressable): A register variable should
7347         be considered global if its not automatic, i.e. TREE_PUBLIC,
7348         TREE_STATIC or DECL_EXTERNAL.
7349         * function.c (put_var_into_stack): Call abort when placing a
7350         hard register into the stack, if x_parm_reg_stack_loc is NULL.
7351
7352 2004-03-08  Ulrich Weigand  <uweigand@de.ibm.com>
7353
7354         * config/s390/s390.md ("*extendqidi2_short_displ"): Add CC clobber.
7355         ("*extendqisi2_short_displ"): Likewise.
7356
7357 2004-03-08  Kazu Hirata  <kazu@cs.umass.edu>
7358
7359         * config/pdp11/pdp11.c (comparison_operator_index): Remove.
7360         (comp_operator): Likewise.
7361         * config/pdp11/pdp11-protos.h: Remove corresponding
7362         prototypes.
7363
7364 2004-03-08  Eric Botcazou  <ebotcazou@act-europe.fr>
7365
7366         * expr.c (highest_pow2_factor_for_type): Rename into
7367         highest_pow2_factor_for_target.  Use DECL_ALIGN instead of
7368         TYPE_ALIGN when the target is a COMPONENT_REF.
7369         (expand_assignment): Ajust call to highest_pow2_factor_for_type.
7370
7371 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
7372
7373         * config/rs6000/rs6000.c: Formatting fix.
7374         (legitimate_offset_address_p): Correct offset range check.
7375
7376         * config/rs6000/rs6000.c (rs6000_override_options): Don't override
7377         -msoft-float by -mcpu.  Consolidate similar code for MASK_MULTIPLE
7378         and MASK_STRING.
7379
7380 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
7381
7382         * config/rs6000/rs6000.md (ashrdi3): Do not call ashrdi3_no_power
7383         for little endian.
7384         ("ashrdi3_no_power"): Disable for little endian.
7385         (ashrdi3): Same.
7386
7387 2004-03-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7388
7389         * fold-const.c (tree_expr_nonnegative_p): Reformat checks for
7390         builtins.
7391
7392 2004-03-08  Hans-Peter Nilsson  <hp@axis.com>
7393
7394         PR target/14471
7395         * configure.ac (Target-specific assembler checks) <cris-*-*>: New
7396         case, checking for -no-mul-bug-abort option.
7397         * configure, config.in: Regenerate.
7398         * doc/invoke.texi (CRIS Options): Document -mmul-bug-workaround
7399         and -mno-mul-bug-workaround.
7400         * config/cris/cris.md ("smulsi3_highpart", "umulsi3_highpart")
7401         ("mulsidi3", "umulsidi3"): Prefix output template with "%!".
7402         ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3"):
7403         Ditto.  Make attribute "slottable" dependent on TARGET_MUL_BUG.
7404         * config/cris/mulsi3.asm (__Mul) [__CRIS_arch_version >= 10]: Make
7405         sure mulu.d is not last on cache-line.
7406         * config/cris/cris.h (ASM_SPEC): Translate -mno-mul-bug-workaround
7407         into -no-mul-bug-abort depending on HAVE_AS_MUL_BUG_ABORT_OPTION.
7408         (TARGET_MASK_MUL_BUG, TARGET_MUL_BUG): New macros.
7409         (TARGET_SWITCHES): New options -mmul-bug-workaround and
7410         -mno-mul-bug-workaround.
7411         (TARGET_DEFAULT): Include TARGET_MASK_MUL_BUG.
7412         (PRINT_OPERAND_PUNCT_VALID_P): Include '!'.
7413         * config/cris/cris.c (cris_operand_extend_operator): Clarify
7414         relation to MULT in head comment.
7415         (cris_op_str): Abort for MULT.
7416         (cris_print_operand) <case '!'>: New case.
7417
7418 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
7419
7420         PR debug/11983
7421         * dwarf2out.c (enum dw_val_class): Rename dw_val_class_float to
7422         dw_val_class_vec.  Replace use throughout file.
7423         (dw_float_const): Delete.
7424         (dw_vec_const): New.
7425         (dw_val_struct_union): Rename val_float to val_vec.  Replace use
7426         throughout file.
7427         (add_AT_vec): Rename from add_AT_float.  Add elt_size param.
7428         (same_dw_val_p): Adjust vec comparison.  Use memcmp.
7429         (size_of_die): Adjust dw_val_class_vec sizing.
7430         (output_die): Output dw_val_class_vec.
7431         (insert_int, extract_int, insert_float): New functions.
7432         (add_const_value_attribute): Use insert_float for CONST_DOUBLE.
7433         Handle CONST_VECTOR.
7434         (add_location_or_const_value_attribute): Handle CONST_VECTOR.
7435
7436 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
7437
7438         * config/rs6000/rs6000.c (rs6000_parse_abi_options): SPE and
7439         AltiVec abi cannot co-exist.
7440
7441         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Same.
7442
7443 2004-03-07  Jan Hubicka  <jh@suse.cz>
7444
7445         * except.c (emit_to_new_bb_before):  Break fallthru edges.
7446
7447 2004-03-07  Stephane Carrez  <stcarrez@nerim.fr>
7448
7449         * config/m68hc11/m68hc11.md ("*lshrsi3_const"): Disable for 68HC12.
7450         ("*lshrsi3"): Also accept an immediate for 68HC12.
7451         ("*ashrsi3_const"): Likewise.
7452         ("*ashrsi3"): Likewise.
7453         ("*ashlsi3_const"): Likewise.
7454         ("*ashlsi3"): Likewise.
7455         ("cmphi_1_hc12"): Compare two hard register by pushing them and
7456         comparing with a pop; don't use a split for that.
7457         ("cmphi split"): Disable compare split for 68HC12.
7458
7459         * config/m68hc11/m68hc11.c (m68hc11_notice_update_cc): Invalidate
7460         the status operands if they have side effects.
7461
7462 2004-03-07  Kazu Hirata  <kazu@cs.umass.edu>
7463
7464         * defaults.h (LEGITIMIZE_ADDRESS): Provide a default
7465         definition.
7466         * config/arc/arc.h, config/fr30/fr30.h, config/frv/frv.h,
7467         config/h8300/h8300.h, config/ia64/ia64.h,
7468         config/mcore/mcore.h, config/mmix/mmix.h,
7469         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
7470         config/stormy16/stormy16.h, config/v850/v850.h,
7471         config/vax/vax.h (LEGITIMIZE_ADDRESS): Remove.
7472         * doc/tm.texi (LEGITIMIZE_ADDRESS): Mention the default
7473         definition.
7474
7475 2004-03-07  Roger Sayle  <roger@eyesopen.com>
7476
7477         * fold-const.c (fold) <IOR_EXPR>: Fold x | x as x.
7478         <XOR_EXPR>: Fold x ^ x as zero.
7479         <AND_EXPR>: Fold x & x as x.
7480
7481 2004-03-07  Roger Sayle  <roger@eyesopen.com>
7482
7483         * fold-const.c (fold) <EQ_EXPR>: Rewrite optimization to transform
7484         "foo++ == const" into "++foo == const+incr".
7485
7486 2004-03-07  Richard Sandiford  <rsandifo@redhat.com>
7487
7488         * config/mips/mips.c (mips_in_small_data_p): Return false if
7489         TARGET_ABICALLS.
7490
7491 2004-03-06  Stephane Carrez  <stcarrez@nerim.fr>
7492
7493         * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Use 2,-sp to push
7494         the stack register.
7495         (expand_prologue): Don't make an interrupt or a trap handler a far
7496         symbol.
7497         (m68hc11_initial_elimination_offset): Likewise.
7498
7499 2004-03-06  Richard Henderson  <rth@redhat.com>
7500
7501         * config/alpha/alpha.c (alpha_in_small_data_p): False for functions.
7502
7503 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
7504
7505         * config/ns32k/ns32k-protos.h: Add a prototype for
7506         ns32k_notice_update_cc.
7507         * config/ns32k/ns32k.c (ns32k_notice_update_cc): New.
7508         * config/ns32k/ns32k.h (NOTICE_UPDATE_CC): Call
7509         ns32k_notice_update_cc.
7510
7511 2004-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
7512
7513         * config/s390/s390.md ("load_multiple", "*load_multiple_di",
7514         "*load_multiple_si"): Allow only if reload_completed.
7515         ("store_multiple", "*store_multiple_di", "*store_multiple_si"):
7516         Likewise.
7517
7518 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
7519
7520         * config/vax/vax-protos.h: Add a prototype for
7521         vax_notice_update_cc.
7522         * config/vax/vax.c (vax_notice_update_cc): New.
7523         * config/vax/vax.h (NOTICE_UPDATE_CC): Call
7524         vax_notice_update_cc.
7525
7526 2004-03-06  David Edelsohn  <edelsohn@gnu.org>
7527
7528         * collect2.c (main): Only export initfunc and finifunc if
7529         LD_INIT_SWITCH not defined.
7530         (scan_prog_file): Only export constructors and destructors if
7531         LD_INIT_SWITCH not defined.  Only export symbols not found in
7532         shared objects.
7533
7534 2004-03-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7535
7536         * pa.md (icacheflush): Reorder operands to make match_scratch operand
7537         last.
7538         * pa.h (INITIALIZE_TRAMPOLINE): Remove unnecessary scratch argument
7539         from calls to gen_icacheflush.
7540
7541 2004-03-06  Richard Henderson  <rth@redhat.com>
7542
7543         * config/alpha/alpha.h (MASK_LONG_DOUBLE_128): New.
7544         (TARGET_LONG_DOUBLE_128): New.
7545         (TARGET_SWITCHES): Add long-double-{128,64}.
7546         (TARGET_HAS_XFLOATING_LIBS): Default to TARGET_LONG_DOUBLE_128.
7547         (LONG_DOUBLE_TYPE_SIZE): Honor TARGET_LONG_DOUBLE_128.
7548         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): New.
7549         (WIDEST_HARDWARE_FP_SIZE): New.
7550         (TARGET_CPU_CPP_BUILTINS): Define __LONG_DOUBLE_128__.
7551         * config/alpha/alpha.c (override_options): Clear MASK_LONG_DOUBLE_128
7552         if TARGET_VAX_FLOAT.
7553         * config/alpha/osf5.h (LONG_DOUBLE_TYPE_SIZE): Remove.
7554         (TARGET_DEFAULT): Set MASK_LONG_DOUBLE_128.
7555
7556 2004-03-06  Richard Henderson  <rth@redhat.com>
7557
7558         * config/alpha/alpha.c (alpha_swapped_comparison_operator): Fix
7559         botched rtx class conversion.
7560
7561 2004-03-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7562
7563         * tree.h (BUILTIN_EXP10_P, BUILTIN_EXPONENT_P, BUILTIN_SQRT_P,
7564         BUILTIN_CBRT_P, BUILTIN_ROOT_P): New macros.
7565
7566         * builtins.c (fold_builtin_logarithm, fold_builtin): Use new
7567         macros.
7568         * fold-const.c (fold_mathfn_compare, fold): Likewise.
7569
7570 2004-03-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
7571
7572         PR target/14343
7573         * config/i386/i386.md (movv2di_internal): Conditionalize on
7574         TARGET_SSE, not TARGET_SSE2.
7575
7576 2004-03-05  Chris Demetriou  <cgd@broadcom.com>
7577
7578         * config.gcc (mips64orion-*-elf*, mips64orionel-*-elf*): Delete
7579         duplicated line.
7580
7581 2004-03-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7582
7583         * builtins.c: Consistently use logN not log* in comments.
7584
7585 2004-03-05  Andreas Krebbel  <krebbel1@de.ibm.com>
7586
7587         * rtl.h (mem_expr_equal_p): Function prototype added.
7588         * cfgcleanup.c (merge_memattrs): New function.
7589         (flow_find_cross_jump): Call merge_memattrs for matching insns.
7590         * emit-rtl.c (mem_expr_equal_p): New function.
7591
7592 2004-03-05  Ziemowit Laski  <zlaski@apple.com>
7593
7594         * objc/objc-act.c (synth_module_prologue): Const-qualify
7595         objc_selector type if using the GNU runtime; fix generated
7596         signatures for objc_msg_lookup and objc_msg_lookup_super
7597         to match what GNU ObjC headers provide; reformat and clean up.
7598         (synth_self_and_ucmd_args): Use previously constructed (and
7599         hence possibly const-qualified) objc_selector type.
7600
7601 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
7602
7603         * doc/tm.texi (HARD_REGNO_RENAME_OK): Document.
7604
7605 2004-03-05  Jason Merrill  <jason@redhat.com>
7606
7607         * tree.h (TYPE_HASH): Use TYPE_UID.
7608         (TREE_HASH): New macro with old definition of TYPE_HASH.
7609         * tree.c (build_type_attribute_variant): Use iterative_hash_object.
7610         (build_array_type, build_function_type): Likewise.
7611         (build_method_type_directly): Likewise.
7612         (build_offset_type, build_complex_type): Likewise.
7613         (type_hash_list, attribute_hash_list): Likewise. Now static.
7614         * except.c: s/TYPE_HASH/TREE_HASH/.
7615
7616 2004-03-05  Bob Wilson  <bob.wilson@acm.org>
7617
7618         * config/xtensa/xtensa.c (function_arg): Handle 16-byte aligned args.
7619         (xtensa_va_start): Initialize __va_stk to ($arg_ptr - 32).  Adjust
7620         __va_ndx by 2 words when referencing an argument on the stack.
7621         (xtensa_va_arg): Handle 16-byte aligned args.  Adjust __va_ndx by 2
7622         words when an arg on the stack is first seen.
7623
7624 2004-03-05  Paul Brook  <paul@codesourcery.com>
7625
7626         * arm.h (ARM_FLAG_VFP): Remove.
7627         (ARM_FLAG_ATPCS, CIRRUS_FIX_INVALID_INSNS): Renumber.
7628         * netbsd-elf.h (ARM_FLAG_VFP): Remove.
7629
7630 2004-03-05  Paul Brook  <paul@codesourcery.com>
7631
7632         * function.c (assign_parms): Include pretend alignment offset.
7633
7634 2004-03-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7635
7636         * stor-layout.c (layout_type, case FUNCTION_TYPE): Make size
7637         FUNCTION_BOUNDARY, not POINTER_SIZE * 2.
7638
7639 2004-03-05  Ian Lance Taylor  <ian@wasabisystems.com>
7640
7641         * configure.ac: When passing --enable-languages to subdir
7642         configure when host != build, make sure we don't pass an empty
7643         value.
7644         * configure: Regenerate.
7645
7646 2004-03-05  Nathan Sidwell  <nathan@codesourcery.com>
7647
7648         PR 13577
7649         * gcc.c (cc1_options): Robustify -auxbase-strip from multiple -o
7650         options.
7651
7652 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
7653
7654         * simplify-rtx.c (simplify_relational_operation): If
7655         flag_wrapv is set, do not move terms between the two
7656         side of a relational operator.
7657
7658 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
7659
7660         * rtlanal.c: Include target.h and output.h
7661         (rtx_cost, address_cost, default_address_cost): Move from...
7662         * cse.c (rtx_cost, address_cost, default_address_cost):
7663         ... this file.
7664         * rtl.h (rtx_cost, address_cost): Move under rtlanal.c.
7665         * Makefile.in: Adjust dependencies.
7666
7667 2004-03-05  Paolo Bonzini <bonzini@gnu.org>
7668
7669         * cse.c (cse_end_of_basic_block): Make static.
7670         * local-alloc.c (function_invariant_p): Move to
7671         reload1.c.
7672         * loop.c (libcall_other_reg, record_excess_regs):
7673         Make static.
7674         * reload1.c (function_invariant_p): Moved here
7675         from local-alloc.c, made static.
7676         * rtl.h (cse_end_of_basic_block, function_invariant_p,
7677         libcall_other_reg, record_excess_regs): Remove
7678         declarations.
7679
7680 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
7681
7682         * config/m32r/m32r.c (signed_comparison_operator): Add a
7683         missing parenthesis.
7684
7685 2004-03-04  Ian Lance Taylor  <ian@wasabisystems.com>
7686
7687         * ggc-common.c (gt_pch_restore): Don't unmap addr unless we are
7688         going to call mmap again.  Read the file into the right place.
7689         Give a fatal error if we have to relocate.
7690
7691 2004-03-04  Bob Wilson  <bob.wilson@acm.org>
7692
7693         * config/xtensa/xtensa.c (xtensa_return_in_msb): New function.
7694         (TARGET_RETURN_IN_MSB): Define to xtensa_return_in_msb.
7695
7696 2004-03-05  Hans-Peter Nilsson  <hp@axis.com>
7697
7698         PR other/14354
7699         * config/fp-bit.c (_fpdiv_parts): Do not round when pack_d would
7700         round the same.  When rounding, clear bits that would cause a
7701         second rounding in pack_d.
7702         (_fpmul_parts): Ditto.  Remove #if 0:d code.
7703
7704 2004-03-04  Ziemowit Laski  <zlaski@apple.com>
7705
7706         PR c++/14425, c++/14426
7707         * config/rs6000/altivec.h (vec_splat_s8, vec_splat_s16,
7708         vec_splat_s32, vec_splat_u8, vec_splat_u16, vec_splat_u32):
7709         Change C++ definitions to accept a 'const int' argument;
7710         the prototypes already do.
7711         * config/rs6000/rs6000.c (rs6000_common_init_builtins):
7712         Rename v4si_ftype_char, v8hi_ftype_char, v16qi_ftype_char,
7713         v4sf_ftype_v4si_char, v4si_ftype_v4sf_char, v4si_ftype_v4si_char,
7714         v8hi_ftype_v8hi_char, v16qi_ftype_v16qi_char,
7715         v16qi_ftype_v16qi_v16qi_char, v8hi_ftype_v8hi_v8hi_char,
7716         v4si_ftype_v4si_v4si_char and v4sf_ftype_v4sf_v4sf_char to
7717         end in ..._int; change them to accept an int instead of a char
7718         as the last parameter.
7719
7720 2004-03-04  Phil Edwards  <phil@codesourcery.com>
7721
7722         * genmultilib:  Change '=' to '-' when translating option names
7723         to directory names.
7724
7725 2004-03-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7726
7727         * expr.c (expand_expr_real, case COMPONENT_REF): Get proper type of
7728         stack slot for temp used for result of BLKmode but in integral mode.
7729
7730 2004-03-04  Jan Hubicka  <jh@suse.cz>
7731
7732         * reload.c (find_reloads): Reorganize if seqeunce to switch.
7733
7734         * cfgrtl.c (rtl_redirect_edge_and_branch):  Set the source BB as dirty.
7735         (cfglayout_redirect_edge_and_branch):  Set the source BB as dirty.
7736
7737 2004-03-04  Steve Ellcey  <sje@cup.hp.com>
7738
7739         * config/ia64/ia64.md (divdf3_internal_thr): Fix algorithm.
7740         * testsuite/gcc.dg/20040303-1.c: New test.
7741
7742 2004-03-04  Steven Bosscher  <stevenb@suse.de>
7743
7744         * ppro.md: Rewrite as a DFA pipeline description.
7745         * i386.md: Remove all uses of the ppro_uops attribute.
7746         * i386.c: (ix86_safe_ppro_uops, ix86_dump_ppro_packet,
7747         ix86_reorder_insn, ix86_sched_reorder_ppro, ix86_sched_init,
7748         ix86_sched_reorder, ix86_variable_issue,
7749         struct ix86_sched_data, TARGET_SCHED_VARIABLE_ISSUE,
7750         TARGET_SCHED_INIT, TARGET_SCHED_REORDER): Remove.
7751         (ia32_use_dfa_pipeline_interface): Add TARGET_PENTIUMPRO.
7752         (ia32_multipass_dfa_lookahead): Add TARGET_PENTIUMPRO.
7753         * athlon.md (athlon_ssecmp_load): Fix comment
7754
7755 2004-03-04  Stuart Hastings  <stuart@apple.com>
7756
7757         * gcc/doc/invoke.texi: Document -mlongcall for Darwin/PPC.
7758
7759 2004-03-04  Stuart Hastings  <stuart@apple.com>
7760
7761         * gcc/config/i386/darwin.h: Darwin/x86 doesn't support CPUs before
7762         686, tell Darwin assembler to allow prefetch insns, non-empty def
7763         of SUBTARGET_OPTION_TRANSLATE_TABLE.
7764
7765 2004-03-04  DJ Delorie  <dj@redhat.com>
7766
7767         PR optimization/14282
7768         * sched-deps.c (sched_analyze_insn): Allow a stack adjustment
7769         between a call and the assignment of its return value.
7770
7771 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
7772
7773         * config/h8300/h8300.c: Put a comment for every function.
7774
7775 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
7776
7777         * config/h8300/h8300.md: Add comments about peephole2's.
7778
7779 2004-03-04  Steven Bosscher  <stevenb@suse.de>
7780
7781         * i386.h (TARGET_CPU_DEFAULT_nocona): Fix value.
7782
7783 2004-03-04  Jan Hubicka  <jh@suse.cz>
7784
7785         * cfgcleanup.c (thread_jump): Update call of cselib_init.
7786         * cselib.c (cselib_record_memory): New static variable.
7787         (cselib_lookup_mem, cselib_record_set, cselib_record_sets):
7788         Give up on memories when asked for.
7789         (cselib_init): Accept new argument.
7790         * cselib.h (cselib_init): Update prototype.
7791         * gcse.c (local_cprop_pass): Update call of cselib_init.
7792         * loop.c (load_mems): Update call of cselib_init.
7793         * postreload.c (reload_cse_regs_1): Update call of cselib_init.
7794         * sched-deps.c (sched_analyze): Update call of cselib_init.
7795
7796 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
7797             GP <gp@qnx.com>
7798
7799         * config/rs6000/rs6000.c (output_function_profiler): Append @plt
7800         when compiling PIC.
7801
7802 2004-03-04  Josef Zlomek  <zlomekj@suse.cz>
7803
7804         PR/14362
7805         * var-tracking.c (track_expr_p): Do not track variables which
7806         should be ignored for debugging purposes.
7807
7808 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
7809
7810         * real.c (encode_ibm_extended): Don't bother rounding low double.
7811         * c-cppbuiltin.c (builtin_define_float_constants): Tweak MAX
7812         when fmt->pnan < fmt->p.
7813
7814 2004-03-04  Eric Christopher  <echristo@redhat.com>
7815
7816         * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Fix to check
7817         only range of valid arg registers and fixed_regs.
7818
7819 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
7820
7821         PR target/14406
7822         * config/rs6000/rs6000.md (abstf2, abstf2+1): Delete define_insn.
7823         (abstf2, abstf2_internal): New define_expand.
7824
7825 2004-03-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
7826
7827         PR optimization/14235
7828         * expr.c (convert_move): Copy the source to a new pseudo
7829         when converting from a sub-word source to a larger-than-word
7830         register which conflicts with the source.
7831
7832 2004-03-03  Zack Weinberg  <zack@codesourcery.com>
7833
7834         PR 13728
7835         * c-decl.c (diagnose_mismatched_decls): Issue an error for two
7836         parameters with the same name, unless one is a forward decl.
7837         Do not issue a redundant-redeclaration warning for forward
7838         decls of parameters.
7839
7840 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
7841
7842         * doc/install.texi (*-ibm-aix*): Document use of Bash to speed up
7843         configuration.
7844
7845 2004-03-03  Ian Lance Taylor  <ian@wasabisystems.com>
7846
7847         * ggc-zone.c (ggc_pch_write_object): Don't align file pointer.
7848
7849 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
7850
7851         * target-def.h (TARGET_OPTF): Delete.
7852         * c-opts.c (TARGET_OPTF): Define.
7853
7854 2004-03-04  Jan Hubicka  <jh@suse.cz>
7855
7856         * cselib.c (cselib_finish): Fix another miss-application of my previous
7857         patch.
7858
7859 2004-03-03  Mike Stump  <mrs@apple.com>
7860
7861         Add framework support for darwin.
7862
7863         * c-incpath.c: Include target.h and machmode.h.
7864         (add_path): Use a consistent style for cpp_dir.  Initialize
7865         p->construct to 0.
7866         (add_cpp_dir_path): New.
7867         (register_include_chains): Add use of extra_includes callback.
7868         (hook_void_int): Add.
7869         (target_c_incpath): Add.
7870         * c-incpath.h (add_cpp_dir_path): New.
7871         (target_c_incpath_s): Add.
7872         (target_c_incpath): Add.
7873         (C_INCPATH_INIT): Add.
7874         * c-opts.c (c_common_missing_argument,
7875         c_common_handle_option): Add -F argument processing.
7876         * c.opt: Add -F argument processing.
7877         * gcc.c (trad_capable_cpp): Add -F argument processing.
7878         * cppfiles.c (find_file_in_dir): Update to use construct
7879         callback.
7880         (search_path_exhausted, cpp_get_path, cpp_get_buffer,
7881         cpp_get_prev): New.
7882         (_cpp_find_file): Use search_path_exhausted.
7883         (make_cpp_dir): Initialize construct to 0.
7884         * cpplib.h (missing_header_cb
7885         cpp_get_path, cpp_get_buffer, cpp_get_file, cpp_get_prev): New.
7886         (cpp_callbacks): Add missing_header
7887         (cpp_dir): Add construct.
7888         * target-def.h: (TARGET_OPTF): New.
7889         * hooks.c (hook_void_int, hook_void_charptr): Add.
7890         * hooks.h (hook_void_int, hook_void_charptr): Add.
7891         * Makefile.in (c-incpath.o) : Add $(TARGET_H) and
7892         $(MACHMODE_H) dependencies.
7893         * doc/invoke.texi (Darwin Options): Document -F.
7894         * doc/tm.texi (TARGET_EXTRA_INCLUDES): Add.
7895         (TARGET_OPTF): Add.
7896         * fix-header.c (target_c_incpath): Add.
7897
7898         * config/darwin-c.c: Add c-incpath.h include.
7899         (using_frameworks, find_subframework_file,
7900         find_subframework_header, add_system_framework_path,
7901         frameworks_in_use, num_frameworks, max_frameworks,
7902         add_framework, find_framework, struct framework_header,
7903         framework_header_dirs, framework_construct_pathname,
7904         find_subframework_file, add_system_framework_path,
7905         add_framework_path, framework_defaults,
7906         darwin_register_frameworks, find_subframework_header): Add.
7907         * config/darwin.h (TARGET_EXTRA_INCLUDES, TARGET_OPTF): New.
7908         (TARGET_OPTION_TRANSLATE_TABLE): Add -framework support.
7909         (CPP_SPEC): Add __APPLE_CC__ support.
7910         * t-darwin (darwin-c.o): Add c-incpath.h dependency.
7911
7912 2004-03-04  Jan Hubicka  <jh@suse.cz>
7913
7914         * cselib.c (cselib_finish): Fix miss-application of my previous
7915         patch.
7916
7917 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
7918
7919         * hooks.c (hook_tree_tree_identity): New.
7920         * hooks.h: Add a prototype for hook_tree_tree_identity.
7921         * stmt.c (expand_asm_operands): Use targetm.md_asm_clobbers
7922         instead of MD_ASM_CLOBBERS.
7923         * system.h (MD_ASM_CLOBBERS): Poison.
7924         * target-def.h (TARGET_MD_ASM_CLOBBERS): New.
7925         (TARGET_INITIALIZER): Add TARGET_MD_ASM_CLOBBERS.
7926         * target.h (gcc_target): Add md_asm_clobbers.
7927         * config/i386/i386.c (TARGET_MD_ASM_CLOBBERS): New.
7928         (ix86_md_asm_clobbers): New.
7929         * config/i386/i386.h (MD_ASM_CLOBBERS): Remove.
7930         * doc/tm.texi (MD_ASM_CLOBBERS): Change to
7931         TARGET_MD_ASM_CLOBBERS.
7932
7933 2004-03-03  Stuart Hastings  <stuart@apple.com>
7934
7935         * gcc/config.gcc: Arrange for Darwin/x86 to build libgcc_eh.a.
7936
7937 2004-03-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
7938
7939         * config/sparc/sparc.c (noov_compare64_op): Fix typo.
7940
7941         * config/sparc/sparc.h (ASM_FLOAT): Delete.
7942         (ASM_DOUBLE): Likewise.
7943         (ASM_LONGDOUBLE): Likewise.
7944         * config/sparc/pbd.h (ASM_INT_OP): Delete.
7945
7946 2003-03-03  Richard Henderson  <rth@redhat.com>
7947
7948         PR opt/13862
7949         * cselib.c (cselib_record_sets): Don't record multiple sets in
7950         asm insns.
7951
7952 2004-03-03  Mostafa Hagog  <mustafa@il.ibm.com>
7953
7954         * common.opt: Add description of the new -fgcse-after-reload flag.
7955
7956         * flags.h (flag_gcse_after_reload): Declaration of global variable.
7957
7958         * gcse.c (reg_used_on_edge ,reg_set_between_after_reload_p,
7959         reg_used_between_after_reload_p, rtx get_avail_load_store_reg,
7960         is_jump_table_basic_block, bb_has_well_behaved_predecessors,
7961         get_bb_avail_insn, hash_scan_set_after_reload,
7962         compute_hash_table_after_reload, eliminate_partially_redundant_loads,
7963         gcse_after_reload, get_bb_avail_insn): New functions to implement
7964         gcse-after-reload.
7965         (gcse_after_reload_main): New function, the main entry point to
7966         gcse-after-reload.
7967
7968         * rtl.h (gcse_after_reload_main): Declaration of the new function.
7969
7970         * opts.c (common_handle_option): Handle the -fgcse-after-reload flag.
7971
7972         * toplev.c (flag_gcse_after_reload): Initialization.
7973
7974         * passes.c (rest_of_handl_gcse2): Call gcse_after_reload_main.
7975
7976         * params.def (PARAM_GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
7977         PARAM_GCSE_AFTER_RELOAD_CRITICAL_FRACTION): New parameters for tuning
7978         the gcse after reload optimization.
7979
7980         * params.h (GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
7981         GCSE_AFTER_RELOAD_CRITICAL_FRACTION): Two macros to access the tuning
7982         parameters.
7983
7984         * doc/invoke.texi: Documentation for the new flag gcse-after-reload.
7985
7986 2004-03-03  Nicolas Pitre <nico@cam.org>
7987
7988         * config/arm/ieee754-df.S (muldf3, divdf3): Fix denormalization of
7989         small negative values.
7990
7991 2004-03-03  Jan Hubicka  <jh@suse.cz>
7992
7993         * cselib.c (hash_table):  Remove GTY marker.
7994         (reg_values): Turn into array.
7995         (used_regs): Likewise.
7996         (n_used_regs): New static variable.
7997         (reg_values_old): Kill.
7998         (clear_table): Update uses of arrays.
7999         (cselib_lookup): Likewise.
8000         (cselib_record_set): Likewise.
8001         (cselib_init): Likewise.
8002         (cselib_finish): Likewise.
8003         (cselib_udpate_varray_sizes): Kill.
8004         * cselib.h (cselib_update_varray_sizes): Kill.
8005
8006 2004-03-03  Paul Brook  <paul@codesourcery.com>
8007
8008         * flow.c (ior_reg_cond, and_reg_cond): Remove stray ")".
8009
8010 2004-03-03  Jan Hubicka  <jh@suse.cz>
8011
8012         * ggc-common.c (ggc_alloc_cleared_stat, ggc_realloc_stat):
8013         Rename from ...; make statistics transparent.
8014         (ggc_alloc_cleared, ggc_realloc_stat): ... these.
8015         (loc_descriptor): New structure.
8016         (hash_descriptor, eq_descriptor, loc_descriptor, cmp_statistics,
8017         add_statistics):
8018         New static function.
8019         (ggc_record_overhead, dump_statistics): New global function.
8020         * ggc-none.c (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
8021         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Rename
8022         from ...; accept locations
8023         (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
8024         ggc_realloc, ggc_alloc_typed):  ... this one.
8025         from ...; accept locations
8026         * ggc-page.c (ggc_alloc_typed_stat, ggc_alloc_zone_stat,
8027         ggc_alloc_stat): Rename from ... ; pass locations
8028         * ggc-page.c (ggc_alloc_typed, ggc_alloc_zone, ggc_alloc):
8029         ... this one.
8030         (ggc_alloc_stat): Record overehead.
8031         * ggc.h (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
8032         ggc_realloc, ggc_alloc_typed):  Turn to macros
8033         (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
8034         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Declare.
8035         (dump_ggc_loc_satistics, ggc_record_overehead): Declare.
8036         * langhooks.h (lhd_make_node): Declare.
8037         (LANG_HOOKS_MAKE_TYPE): Default to new function,
8038         * langhooks.c (lhd_make_node): New.
8039         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Rename from ... ; pass
8040         locations.
8041         (rtx_alloc, swallow_copy_rtx): ... this one.
8042         * rtl.h (rtx_alloc, swallow_copy_rtx): Turn to macros.
8043         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Declare.
8044         * toplpev.c (finalize): Dump stats.
8045         * tree.c (make_node_stat, copy_node_stat, make_tree_vec_stat,
8046         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
8047         Rename from ... ; pass locators.
8048         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
8049         build?,  build_decl): Declare.
8050         * tree.h (make_node_stat, copy_node_stat, make_tree_vec_stat,
8051         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
8052         Declare.
8053         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
8054         build?,  build_decl): New macros.
8055         * Makefile.in (RTL_H, TREE_H): Add statistics.h dependency.
8056         * statistics.h: New file.
8057
8058 2004-03-03  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
8059             Richard Sandiford  <rsandifo@redhat.com>
8060
8061         * config/mips/mips.h (MASK_FIX_SB1): Bump.
8062         (MASK_FIX_R4400, TARGET_FIX_R4400): New macros.
8063         (TARGET_SWITCHES): Add -mfix-r4400 and -mno-fix-r4400.
8064         * config/mips/mips.c (mips_output_division): Fill the branch delay
8065         slot with a nop if TARGET_FIX_R4000.  Extend R4000 workarounds to
8066         TARGET_FIX_R4400.
8067         (mips_output_division): Adjust accordingly.
8068         (override_options): Make -march=r4400 imply -mfix-r4400 by default.
8069         * doc/invoke.texi: Document -mfix-r4400 and new errata workarounds.
8070
8071 2004-03-03  Paolo Bonzini  <bonzini@gnu.org>
8072
8073         * alias.c (rtx_equal_for_memref_p): Use predicates
8074         to test rtx classes and new rtx class codes, possibly
8075         splitting conditionals that tested against '<' and 'o'.
8076         * caller-save.c (save_call_clobbered_regs): Likewise.
8077         * combine.c (contains_muldiv, find_split_point, subst,
8078         combine_simplify_rtx, simplify_if_then_else,
8079         simplify_set, simplify_logical, expand_compound_operation,
8080         make_compound_operation, if_then_else_cond, known_cond,
8081         apply_distributive_law, cached_nonzero_bits,
8082         cached_num_sign_bit_copies, simplify_shift_const,
8083         gen_binary, simplify_comparison, update_table_tick,
8084         record_value_for_reg, get_lsat_value_validate): Likewise.
8085         * cse.c (mention_regs, find_best_addr, find_comparison_args,
8086         fold_rtx, cse_insn, invalidate_memory, cse_basic_block):
8087         Likewise.
8088         * emit-rtl.c (copy_insn_1): Likewise.
8089         * expr.c (force_operand): Likewise.
8090         * final.c (final_scan_insn, get_mem_expr_from_op): Likewise.
8091         * flow.c (notice_stack_pointer_modification_1,
8092         invalidate_mems_from_autoinc, ior_reg_cond, not_reg_cond,
8093         and_reg_cond, elim_reg_cond): Likewise.
8094         * function.c (update_epilogue_consts): Likewise.
8095         * genattrtab.c (attr_rtx_1): Likewise.
8096         * genopinit.c (gen_insn): Likewise.
8097         * integrate.c (subst_constants): Likewise.
8098         * jump.c (reversed_comparison_code_parts,
8099         reversed_comparison_code, delete_related_insns,
8100         rtx_renumbered_equal_p): Likewise.
8101         * local-alloc.c (block_alloc): Likewise.
8102         * loop.c (rtx_equal_for_prefetch_p, maybe_eliminate_biv,
8103         canonicalize_condition): Likewise.
8104         * loop-iv.c (simplify_using_conditions, iv_number_of_iterations):
8105         Likewise.
8106         * optabs.c (add_equal_node, expand_binop): Likewise.
8107         * predict.c (estimate_probability): Likewise.
8108         * ra-debug.c (ra_print_rtx_2op, ra_print_rtx): Likewise.
8109         * recog.c (validate_replace_rtx_1, comparison_operator,
8110         offsettable_address_p, constrain_operands): Likewise.
8111         * reg-stack.c (swap_rtx_condition_1, subst_stack_regs_pat):
8112         Likewise.
8113         * regclass.c (scan_one_insn): Likewise.
8114         * regmove.c (stable_and_no_regs_but_for_p): Likewise.
8115         * regrename.c (kill_autoinc_value): Likewise.
8116         * reload.c (find_reusable_reload, find_reloads,
8117         reg_overlap_mentioned_for_reload_p): Likewise.
8118         * reload1.c (gen_reload, delete_address_reloads_1): Likewise.
8119         * rtl.c (copy_rtx): Likewise.
8120         * rtl.h (CONSTANT_P, INSN_P): Likewise.
8121         * rtlanal.c (commutative_operand_precedence): Likewise.
8122         * sched-deps.c (conditions_mutex_p): Likewise.
8123         * sched-rgn.c (is_cfg_nonregular): Likewise.
8124         * simplify-rtx.c (simplify_gen_binary,
8125         simplify_gen_relational, simplify_replace_rtx,
8126         simplify_unary_operation, simplify_binary_operation,
8127         simplify_ternary_operation, simplify_rtx): Likewise.
8128         * unroll.c (reg_dead_after_loop): Likewise.
8129         * config/alpha/alpha.c (alpha_swapped_comparison_operator,
8130         print_operand): Likewise.
8131         * config/arc/arc.c (proper_comparison_operator): Likewise.
8132         * config/arm/arm.c (arm_arm_address_cost, arm_select_cc_mode):
8133         Likewise.
8134         * config/avr/avr.c (_reg_unused_after): Likewise.
8135         * config/frv/frv.c (frv_ifcvt_modify_tests,
8136         frv_ifcvt_modify_insn, frv_pack_insn): Likewise.
8137         * config/i386/i386.c (ix86_comparison_operator,
8138         ix86_carry_flag_operator, fcmov_comparison_operator,
8139         arith_or_logical_operator, print_operand,
8140         ix86_expand_binary_operator, ix86_binary_operator_ok):
8141         Likewise.
8142         * config/i386/i386.md: Likewise.
8143         * config/ia64/ia64.c (not_postinc_memory_operand,
8144         ia64_print_operand, update_set_flags, errata_emit_nops):
8145         Likewise.
8146         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS,
8147         CONSTRAINT_OK_FOR_S): Likewise.
8148         * config/ip2k/ip2k.c (mdr_resequence_xy_yx,
8149         mdr_try_move_dp_reload, ip2k_check_can_adjust_stack_ref,
8150         ip2k_xexp_not_uses_reg_for_mem, ip2k_xexp_not_uses_reg_p,
8151         ip2k_composite_xexp_not_uses_reg_p, ip2k_unary_operator):
8152         Likewise.
8153         * config/iq2000/iq2000.c (cmp_op, symbolic_expression_p,
8154         eqne_comparison_operator, signed_comparison_operator):
8155         Likewise.
8156         * config/mips/mips.c (cmp_op, symbolic_expression_p):
8157         Likewise.
8158         * config/mmix/mmix (mmix_foldable_comparison_operator,
8159         mmix_comparison_operator): Likewise.
8160         * config/pa/pa.c (hppa_legitimize_address): Likewise.
8161         * config/rs6000/rs6000.c (stmw_operation,
8162         branch_comparison_operator, trap_comparison_operator,
8163         ccr_bit): Likewise.
8164         * config/rs6000/rs6000.h (SELECT_CC_MODE): Likewise.
8165         * config/s390/s390.c (s390_alc_comparison,
8166         s390_slb_comparison):L Likewise.
8167         * config/sh/sh.c (gen_block_redirect, reg_unused_after):
8168         Likewise.
8169         * config/sparc/sparc.c (eq_or_neq, normal_comp_operator,
8170         noov_compare_op, noov_compare64_op, v9_regcmp_op,
8171         emit_hard_tfmode_operation, reg_unused_after)
8172         * doc/md.texi, doc/rtl.texi: Likewise.
8173
8174         * ra-debug.c: Add 2004 to list of copyright years.
8175         * unroll.c: Likewise.
8176
8177         * combine.c (simplify_logical): Remove dummy test,
8178         (apply_distributive_law): Fix typo in comment.
8179         GET_CODE (x) == AND so x is a commutative binary op.
8180         * jump.c (delete_related_insns): simplify loop
8181         condition, move testing of RTX codes inside the loop.
8182         (rtx_renumbered_equal_p): do not use RTX_CODE.
8183         * rtl.c (rtx_class): Declare as enum rtx_class.
8184         * rtl.def (EQ, NE, UNEQ, LTGT, UNORDERED, ORDERED):
8185         Move to RTX_COMM_COMPARE class.
8186         (HIGH, SYMBOL_REF, LABEL_REF, CONST, CONST_INT, CONST_DOUBLE):
8187         Move to RTX_CONST_OBJ class.
8188         * rtl.h (enum rtx_class): New declaration,
8189         (RTX_OBJ_MASK, RTX_OBJ_RESULT, RTX_COMPARE_MASK,
8190         RTX_COMPARE_RESULT, RTX_ARITHMETIC_MASK, RTX_ARITHMETIC_RESULT,
8191         RTX_BINARY_MASK, RTX_BINARY_RESULT, RTX_COMMUTATIVE_MASK,
8192         RTX_COMMUTATIVE_RESULT, RTX_NON_COMMUTATIVE_RESULT,
8193         RTX_EXPR_FIRST, RTX_EXPR_LAST, UNARY_P, BINARY_P,
8194         ARITHMETIC_P, COMMUTATIVE_ARITHMETIC_P, COMPARISON_P,
8195         SWAPPABLE_OPERANDS_P, NON_COMMUTATIVE_P, COMMUTATIVE_P,
8196         OBJECT_P): New macros.
8197         * config/sparc/sparc.c (noov_compare_op): Remove register
8198         from parameter.
8199
8200 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
8201
8202         * target.h: Remove texi jargons in comments.
8203
8204 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
8205
8206         * config/h8300/lib1funcs.asm (___fixunssfsi): Change the
8207         threshold to 0x4f.
8208
8209         Revert:
8210         2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
8211         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
8212         as well.
8213         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
8214         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
8215
8216 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
8217
8218         * doc/md.texi (cbranchmode4): New.
8219
8220 2004-03-02  Eric Christopher  <echristo@redhat.com>
8221
8222         * config/mips/mips16.S: Change fixsfsi and fixdfsi to
8223         fix_trunc.
8224         * config/mips/mips.c (mips_init_libfuncs): Change accordingly.
8225         * config/mips/t-elf (LIB1ASMFUNCS): Ditto.
8226         * config/mips/t-isa3264 (LIB1ASMFUNCS): Ditto.
8227         * config/mips/t-r3900 (LIB1ASMFUNCS): Ditto.
8228
8229 2004-03-02  Richard Henderson  <rth@redhat.com>
8230
8231         PR middle-end/11767
8232         * coverage.c (coverage_counter_ref): Set MEM_NOTRAP_P.
8233         * optabs.c (prepare_cmp_insn): Force trapping memories to registers
8234         before the compare, if flag_non_call_exceptions.
8235
8236 2004-03-02  Richard Henderson  <rth@redhat.com>
8237
8238         PR middle-end/14327
8239         * stmt.c (expand_computed_goto): Do do_pending_stack_adjust before
8240         emitting the label, not after.
8241
8242 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
8243
8244         * config/m68hc11/m68hc11.c (m68hc11_addr_mode): New variable.
8245         (m68hc11_mov_addr_mode): Likewise.
8246         (m68hc11_override_options): Initialize them based on target.
8247         (register_indirect_p): Allow a MEM for indirect addressing modes and
8248         use flags to control what is allowed.
8249         (m68hc11_small_indexed_indirect_p): Use m68hc11_mov_addr_mode for
8250         supported addressing modes.
8251         (m68hc11_register_indirect_p): Use m68hc11_addr_mode.
8252         (go_if_legitimate_address_internal): Likewise.
8253         (m68hc11_indirect_p): Likewise and check the mode.
8254         (print_operand): Allow a (MEM (MEM)) and generate indirect addressing.
8255
8256 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
8257
8258         * builtins.c (BUILTIN_SETJMP_FRAME_VALUE): Remove.
8259         (expand_builtin_setjmp_setup): Use
8260         targetm.builtin_setjmp_frame_value instead of
8261         BUILTIN_SETJMP_FRAME_VALUE.
8262         * system.h (BUILTIN_SETJMP_FRAME_VALUE): Poison.
8263         * target-def.h (TARGET_BUILTIN_SETJMP_FRAME_VALUE): New.
8264         (TARGET_INITIALIZER): Add TARGET_BUILTIN_SETJMP_FRAME_VALUE.
8265         * target.h (gcc_target): Add builtin_setjmp_frame_value.
8266         * targhooks.c (default_builtin_setjmp_frame_value): New.
8267         * targhooks.h: Add a prototype for
8268         default_builtin_setjmp_frame_value.
8269         * doc/tm.texi (BUILTIN_SETJMP_FRAME_VALUE): Change to
8270         TARGET_BUILTIN_SETJMP_FRAME_VALUE.
8271
8272 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
8273
8274         * config/m68hc11/m68hc11.md (move peephole2): New peepholes to optimize
8275         sequences of moves.
8276         (add peepholes): New peepholes to optimize sequences adding small
8277         constants.
8278         (bset peepholes): New peepholes to transform an OR in a bset form
8279         (bclr peepholes): Likewise for bclr form.
8280         (cmp peepholes): New peepholes to avoid register copies when comparing.
8281
8282 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
8283
8284         * config/m68hc11/m68hc11.md ("*pushdi_internal"): New insn and split
8285         to separate push from moves.
8286         ("*pushdf_internal"): Likewise.
8287         ("*pushsf_internal"): Likewise.
8288         ("*pushsi_internal"): Likewise.
8289         ("movdi_internal"): Use define_insn_and_split; non push operand.
8290         ("movdf_internal"): Likewise.
8291         ("movsf_internal"): Likewise.
8292         ("movsi_internal"): Likewise.
8293         ("*movhi_68hc12", "*addhi3_68hc12"): Fix and tune constraints
8294         ("*addhi3", "*subhi3", "*andhi3_mem", "*iorhi3_mem"): Likewise.
8295         ("*ashlsi3_const1", "*lshrsi3_const1"): Likewise.
8296
8297 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
8298
8299         * config/m68hc11/m68hc11.md ("tstqi_z_used"): Use define_insn_and_split.
8300         ("cmphi_z_used", "cmpqi_z_used"): Likewise.
8301         ("movstrictsi", "movstricthi", "movstrictqi"): Likewise.
8302         ("anddi3", "andsi3", "iordi3", "iorsi3"): Likewise.
8303         ("xordi3", "xorsi3", "*logicalsi3_zexthi"): Likewise.
8304         ("*logicalsi3_zextqi", "*logicalhi3_zexthi_ashift8"): Likewise.
8305         ("logicalhi3_zexthi", "*logicalsi3_silshr16"): Likewise.
8306         ("*logicalsi3_silshl16", "*logicalsi3_silshl16_zext"): Likewise.
8307         ("*ashldi3_const32", "*ashldi3_const1", "addsi_silshr16"): Likewise.
8308         ("addsi_andshr16", "*ashlsi3_const16_zexthi"): Likewise.
8309         ("*lshrdi3_const32", "*lshrdi_const1"): Likewise.
8310
8311 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
8312
8313         * config/m68hc11/m68hc11.md (SOFT_TMP_REGNUM): Define.
8314         (SOFT_XY_REGNUM): Define.
8315         (cmp split): Use the above instead of hard coded numbers.
8316         (8-bit op split): No need to check the mode; allow Q_REG.
8317         (ashift split): Adjust the first operand if it uses the SP and we
8318         are pushing the shifted value.
8319         (plus shift split): Fix when a source is in register D+X.
8320         ("doloop_end"): Pass dummy arguments to gen_rtx_NE.
8321
8322 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
8323
8324         * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Fix when
8325         comparing with Z register.
8326
8327 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8328
8329         * cfgloop.h (struct loop_desc): Removed.
8330         (struct loop): Fields simple, desc and has_desc removed.
8331         (simple_loop_p, count_loop_iterations): Declaration removed.
8332         * cfgloopanal.c (struct unmark_altered_insn_data): Removed.
8333         (unmark_altered, blocks_invariant_registers, unmark_altered_insn
8334         blocks_single_set_registers, invariant_rtx_wrto_regs_p_helper,
8335         invariant_rtx_wrto_regs_p, test_for_iteration, constant_iterations,
8336         simple_loop_exit_p, variable_initial_value, variable_initial_values,
8337         simple_condition_p, simple_increment, count_strange_loop_iterations,
8338         inverse, fits_in_mode_p, simple_loop_p, count_loop_iterations):
8339         Removed.
8340         * loop-iv.c (check_simple_exit, find_simple_exit): Update comments.
8341
8342 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
8343
8344         * genattrtab.c: Don't handle MATCH_INSN.
8345         * genrecog.c: Likewise.
8346         * gensupport.c: Likewise.
8347         * rtl.def (match_insn): Remove.
8348         * doc/md.texi (match_insn, match_insn2): Remove.
8349
8350 2004-03-02  Mark Mitchell  <mark@codesourcery.com>
8351
8352         * doc/c-tree.texi (DECL_ASSEMBLER_NAME): Mention that using this
8353         macro results in memory allocation.
8354
8355 2004-03-02  David O'Brien  <obrien@FreeBSD.org>
8356
8357         * config/freebsd-spec.h (FBSD_DYNAMIC_LINKER): Add.
8358         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Define
8359         %(fbsd_dynamic_linker),
8360         (LINK_SPEC): Use %(fbsd_dynamic_linker), and sync style with
8361         config/i386/freebsd.h
8362         * config/arm/freebsd.h: Ditto.
8363         * config/i386/freebsd.h: Ditto.
8364         * config/i386/freebsd64.h: Ditto.
8365         * config/ia64/freebsd.h: Ditto.
8366         * config/rs6000/sysv4.h: Ditto.
8367         * config/sparc/freebsd.h: Ditto.
8368
8369 2004-03-02  Loren James Rittle  <ljrittle@acm.org>
8370
8371         * gcc/doc/install.texi (*-*-freebsd*): Update target information.
8372
8373 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
8374
8375         * rtl.def (define_combine): Remove.
8376
8377 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
8378
8379         * config/h8300/h8300.md: Tweak formatting.
8380
8381 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
8382
8383         * config/h8300/h8300.md (*cmphi_h8300): Rename to
8384         *cmphi_h8300_znvc.
8385         (*cmphi_h8300hs): Rename to *cmphi_h8300hs_znvc.
8386
8387 2004-03-01  Mark Mitchell  <mark@codesourcery.com>
8388
8389         PR bootstrap/14356
8390         * gcc.c (process_command): Remove const-qualification from argv.
8391         (main): Likewise.
8392
8393 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
8394
8395         * config/h8300/h8300.md (pushqi1_h8300hs): Rename to
8396         pushqi1_h8300hs_advanced.  Adjust its caller.
8397         (pushhi1_h8300hs): Rename to pushhi1_h8300hs_advanced.
8398         Adjust its caller.
8399
8400 2004-03-02  Nicolas Roche  <roche@act-europe.fr>
8401
8402         * Makefile.in (install-libgcc, install-multilib): Pass
8403         mkinstalldirs var to libgcc.mk.
8404
8405 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
8406
8407         * system.h (DBX_OUTPUT_STANDARD_TYPES): Poison.
8408         * doc/tm.texi (DBX_OUTPUT_STANDARD_TYPES): Remove.
8409
8410 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
8411
8412         * config/h8300/h8300.c (gtle_operator): Accept GT and LE.
8413         * config/h8300/h8300.md: Split several peephole2's, each into
8414         two.
8415
8416 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8417
8418         * dominance.c (recount_dominator): Handle postdominators.
8419
8420 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
8421
8422         * config/mips/mips-protos.h (enum mips_symbol_type): Move from mips.h.
8423         (NUM_SYMBOL_TYPES): Likewise.
8424         (SYMBOL_64_HIGH, SYMBOL_64_MID, SYMBOL_64_LOW): New symbol types.
8425         (mips_unspec_address): Declare.
8426         (mips_gotoff_page, mips_gotoff_global): Delete.
8427         * config/mips/mips.h (PREDICATE_CODES): Add general_symbolic_operand.
8428         * config/mips/mips.c (enum mips_symbol_type, NUM_SYMBOL_TYPES): Delete.
8429         (mips_symbolic_constant_p, mips_symbolic_address_p)
8430         (mips_symbol_insns): Handle new symbol types.
8431         (general_symbolic_operand): New predicate.
8432         (mips_unspec_address): Make extern.
8433         (mips_gotoff_page, mips_gotoff_global): Delete.
8434         (override_options): Allow -mabi=64 -mno-abicalls -mexplicit-relocs.
8435         Handle new symbol types.
8436         * config/mips/mips.md (*lea_high64, *lea64): New patterns.
8437         (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_disp[sd]i): Call
8438         mips_unspec_address directly.
8439         * doc/invoke.texi: Remove the -mabi=64 -mno-abicalls exception from
8440         the documentation of -mexplicit-relocs.
8441
8442 2004-03-01  Jeff Law  <law@redhat.com>
8443
8444         * fold-const.c (fold): An equality comparison of a non-weak object
8445         against zero has a known result.  Similarly an equality comparison
8446         of the address of two non-weak, unaliased symbols has a known result.
8447
8448         * ggc-page.c (struct page_entry): New field PREV.
8449         (ggc_alloc): Update PREV field appropriately.
8450         (sweep_pages): Likewise.
8451         (ggc_free): Likewise.  Use PREV field rather than loop to
8452         improve ggc_free performance.
8453
8454 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
8455
8456         * config/mips/mips.c (mips_output_division): Use the division
8457         instruction to fill the delay slot of a zero check.
8458         (mips_idiv_insns): Adjust accordingly.
8459
8460 2004-03-01  Nathanael Nerode  <neroden@gcc.gnu.org>
8461
8462         * config.gcc: Create a default tmake_file for linux, and use
8463         it in all but two linux clauses.  Comment those two.
8464
8465 2004-03-01  Paolo Bonzini  <bonzini@gnu.org>
8466
8467         * combine.c (try_combine):  Do not refer to is_replaced.
8468         (gen_lowpart_for_combine):  Perverse subregs now have a
8469         more politically correct name.
8470         * cse.c (cse_insn): Likewise.
8471         * jump.c: Fix bogus reference to delete_insn.
8472
8473 2004-02-29  Mark Mitchell  <mark@codesourcery.com>
8474
8475         PR debug/14328
8476         * dwarf2out.c (gen_enumeration_type_die): Output all enumeration
8477         constants as signed values.
8478
8479         PR middle-end/13448
8480         * c-tree.h (readonly_warning): Rename to ...
8481         (readonly_error): ... this.
8482         * c-typeck.c (build_unary_op): Adjust accordingly.
8483         (readonly_warning): Rename to ...
8484         (readonly_error): ... this and issue errors, not warnings.
8485         (build_modify_expr): Call readonly_error, not readonly_warning.
8486         (c_expand_asm_operands): Likewise.
8487         * tree-inline.c (optimize_inline_calls): Do not inline functions
8488         after errors have occurred.
8489
8490 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
8491
8492         * configure.ac: Rearrange some threading code for clarity;
8493         add section comment.
8494         * configure: Regenerate.
8495
8496 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
8497
8498         * passes.c, config/frv/frv.c, config/sh/sh.c: Fix comment
8499         typos.
8500         * doc/cppopts.texi: Fix a typo.
8501
8502 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
8503
8504         * config/i386/i386.md: Fix formatting.
8505
8506 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
8507
8508         * configure.ac: Add some comments delineating sections of code.
8509
8510         * doc/install.texi: Note that libada uses autoconf 2.57 also.
8511
8512         * doc/install.texi: Fix idiot typo in previous commit.
8513
8514         * doc/install.texi: Update for conversion of intl to autoconf 2.57.
8515
8516 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
8517
8518         * config/h8300/h8300.md: Add comments about peephole2's.
8519
8520 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
8521
8522         * config/h8300/h8300.md: Tweak operand numbers of some
8523         peephole2's.
8524
8525 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
8526
8527         * config/h8300/h8300.md: Tweak comments about peephole2's.
8528
8529 2004-02-29  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
8530
8531         PR middle-end/14203
8532         * function.c (uninitialized_vars_warning): Use DECL_RTL_SET_P
8533         instead of testing whether DECL_RTL is not NULL.
8534
8535 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
8536
8537         * config/sh/sh.c: Fix formatting.
8538
8539 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
8540
8541         * config/sh/sh.c: Convert to ISO-C.
8542
8543 2004-02-28  Andrew Pinski  <pinskia@physics.uc.edu>
8544
8545         * c-typeck.c (tagged_types_tu_compatible_p): Fix pasto in
8546         my previous patch.
8547
8548         * config/darwin.h (machopic_finish): Output stub even if the
8549         symbol is already defined.
8550
8551 2004-02-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8552
8553         * pa64-hpux.h (LIB_SPEC): Fix linking under HP-UX 11.00 with -p and -pg.
8554
8555 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
8556
8557         * genattr.c (main): Don't define
8558         TRADITIONAL_PIPELINE_INTERFACE or DFA_PIPELINE_INTERFACE.
8559         * system.h (TRADITIONAL_PIPELINE_INTERFACE): Poison.
8560         (DFA_PIPELINE_INTERFACE): Likewise.
8561         * doc/tm.texi (TRADITIONAL_PIPELINE_INTERFACE): Remove.
8562         (DFA_PIPELINE_INTERFACE): Likewise.
8563
8564 2004-02-28  Richard Sandiford  <rsandifo@redhat.com>
8565
8566         * config/mips/mips.md (tstsi, tstdi): Delete.
8567
8568 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
8569
8570         * config/mips/mips.c (override_options): Remove an obsolete
8571         duplicate definition of the "e" constraint.
8572         * config/mips/mips.h: Update a comment accordingly.
8573
8574 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
8575
8576         * config/mips/mips.md: Complete the unfinished R4000
8577         multiply/shift errata workaround.  Improve documentation.
8578         (hazard): Use TARGET_FIX_R4000 to decide whether an "imul" instruction
8579         has a hilo hazard.
8580         (mulsi3, mulsi3_internal, mulsi3_r4000): Use TARGET_FIX_R4000.
8581         (muldi3, muldi3_internal): Likewise.
8582         (muldi3_internal2): Remove, replacing with...
8583         (muldi3_mult3, muldi3_r4000): ...these new patterns.
8584         (mulsidi3): Take the errata into account.
8585         (mulsidi3_32bit): Remove, replacing with...
8586         (mulsidi3_32bit_internal, mulsidi3_32bit_r4000): ...these new patterns.
8587         (mulsidi3_64bit, mulsidi3_64bit_parts): Disable if TARGET_FIX_R4000.
8588         (umulsidi3): Take the errata into account.
8589         (umulsidi3_32bit): Remove, replacing with..
8590         (umulsidi3_32bit_internal, umulsidi3_32bit_r4000): ...these patterns.
8591         (umulsi3_highpart, umulsi3_highpart_internal): Disable if
8592         TARGET_FIX_R4000.
8593         (smulsi3_highpart, smulsi3_highpart_internal): Likewise.
8594         (smuldi3_highpart, umuldi3_highpart): Likewise.
8595         * doc/invoke.texi: Document the errata workaround.
8596
8597 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
8598
8599         * config/mips/mips-protos.h (mips_idiv_insns): Declare.
8600         * config/mips/mips.h (MASK_FIX_SB1): Bump.
8601         (MASK_FIX_R4000, TARGET_FIX_R4000): New macros.
8602         (TARGET_SWITCHES): Add -mfix-r4000 and -mno-fix-r4000.
8603         * config/mips/mips.c (mips_idiv_insns): New function.
8604         (override_options): Make -march=r4000 imply -mfix-r4000 by default.
8605         (mips_output_division): Add a workaround for the R4000 divide/shift
8606         errata.
8607         * config/mips/mips.md (length): Use mips_idiv_insns() to calculate
8608         the length of an "idiv" instruction.
8609         * doc/invoke.texi: Document the new switches.
8610
8611 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
8612
8613         * doc/tm.texi (IS_COSTLY_DEPENDENCE): Change to
8614         TARGET_SCHED_IS_COSTLY_DEPENDENCE.
8615
8616 2004-02-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8617
8618         PR optimization/14229
8619         * cfgrtl.c (rtl_tidy_fallthru_edge): Do not fail for !onlyjump jump.
8620
8621 2004-02-28  Eric Botcazou  <ebotcazou@act-europe.fr>
8622
8623         * fold-const.c (fold): Strip NOPs that change the signedness
8624         for RSHIFT too.  Expand comment.
8625
8626 2004-02-27  Ian Lance Taylor  <ian@wasabisystems.com>
8627
8628         PR optimization/7871
8629         * flow.c (mark_set_1): Don't add LOG_LINKS for global registers
8630         from or to call insns.
8631
8632 2004-02-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
8633
8634         PR optimization/7871
8635         * flow.c (propagate_one_insn): Interpret calls as setting global
8636         registers, not merely clobbering them.
8637
8638 2004-02-27  Dale Johannesen  <dalej@apple.com>
8639
8640         * config/darwin.c (machopic_output_possible_stub_label):  Remove.
8641         config/darwin-protos.h:  Ditto.
8642         config/darwin.h:  Remove call to it.
8643         * combine.c (distribute_notes): Do not place a REG_DEAD note
8644         when value is both set and used.
8645
8646 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
8647
8648         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
8649         as well.
8650         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
8651         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
8652
8653 2004-02-27  Andrew Pinski  <apinski@apple.com>
8654
8655         * c-typeck.c (tagged_types_tu_compatible_p) <ENUMERAL_TYPE>:
8656         Speedup common case of the type values being in the same order.
8657
8658 2004-02-27  Steve Ellcey  <sje@cup.hp.com>
8659
8660         * config/ia64/ia64.h (no-inline-float-divide): New option.
8661         * config/ia64/ia64.h (no-inline-int-divide): New option.
8662         * config/ia64/ia64.h (no-inline-sqrt): New option.
8663         (TARGET_DEFAULT): Add MASK_INLINE_FLOAT_DIV_THR to define.
8664         * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
8665         * config/ia64/ia64.c (ia64_override_options): Modify error
8666         checking for inlined division/sqrt.
8667
8668 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
8669
8670         * bb-reorder.c, cfgbuild.c, diagnostic.c, explow.c, profile.c,
8671         ra-build.c, read-rtl.c, tracer.c, unwind-dw2-fde-glibc.c,
8672         value-prof.c, config/darwin-protos.h, config/frv/frv-abi.h,
8673         config/i386/pmmintrin.h, config/pa/pa-hpux.h: Update
8674         copyright.
8675
8676 2004-02-27  Paul Brook  <paul@codesourcery.com>
8677
8678         * function.c (assign_parms): Don't count pretend args for alignment.
8679
8680 2004-02-27  Richard Henderson  <rth@redhat.com>
8681
8682         * passes.c: New file.
8683         * Makefile.in (OBJS-common): Add it.
8684         * diagnostic.c (rtl_dump_and_exit): Move decl ...
8685         * flags.h (rtl_dump_and_exit): ... here.
8686         * output.h (size_directive_output, last_assemble_variable_decl):
8687         Move from toplev.c.
8688         * rtl.h (reg_alloc): Move from toplev.c.
8689         * toplev.c (HAVE_conditional_execution, DUMPFILE_FORMAT,
8690         struct dump_file_info, enum dump_file_index, dump_file_tbl,
8691         open_dump_file, close_dump_file, rest_of_decl_compilation,
8692         rest_of_type_compilation, rest_of_handle_final,
8693         rest_of_handle_delay_slots, rest_of_handle_stack_regs,
8694         rest_of_handle_variable_tracking, rest_of_handle_machine_reorg,
8695         rest_of_handle_new_regalloc, rest_of_handle_old_regalloc,
8696         rest_of_handle_regrename, rest_of_handle_reorder_blocks,
8697         rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_regmove,
8698         rest_of_handle_tracer, rest_of_handle_if_conversion,
8699         rest_of_handle_if_after_combine, rest_of_handle_web,
8700         rest_of_handle_branch_prob,
8701         rest_of_handle_value_profile_transformations, rest_of_handle_cfg,
8702         rest_of_handle_addressof, rest_of_handle_sibling_calls,
8703         rest_of_handle_jump_bypass, rest_of_handle_inlining,
8704         rest_of_handle_null_pointer, rest_of_handle_combine,
8705         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
8706         rest_of_handle_gcse, rest_of_handle_loop_optimize,
8707         rest_of_handle_loop2, rest_of_compilation): Move to passes.c.
8708         (decode_d_option): Use enable_rtl_dump_file.
8709         (compile_file, finalize, do_compile): Move profile+combine+graph
8710         cleanup to finish_optimization_passes.
8711         * toplev.h (init_optimization_passes, finish_optimization_passes,
8712         enable_rtl_dump_file): Declare.
8713
8714 2004-02-27  Eric Botcazou  <ebotcazou@act-europe.fr>
8715             Roger Sayle  <roger@eyesopen.com>
8716
8717         * fold-const.c (fold): Revert 2004-02-25 change.  Use the original
8718         operands to build a tree with swapped operands.
8719         * expr.c (expand_expr_real) <MAX_EXPR>: Consistently use the
8720         'unsignedp' predicate to specify the signedness.
8721
8722 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
8723
8724         * c-decl.c, c-ppoutput.c, combine.c, cppfiles.c, dwarf2out.c,
8725         expr.c, fold-const.c, gcc.c, haifa-sched.c, loop-iv.c,
8726         params.def, read-rtl.c, rtl.c, rtlanal.c, toplev.c: Fix
8727         comment typos and formatting.  Follow spelling conventions.
8728
8729 2004-02-26  Aldy Hernandez  <aldyh@redhat.com>
8730
8731         * config/rs6000/rs6000.md: Add fixuns_truncsfsi2 and
8732         fix_truncsfsi2.
8733
8734         * config/rs6000/spe.md: Delete spe_efsctuiz.
8735         Add spe_fixuns_truncsfsi2.
8736         Add spe_fix_truncsfsi2.
8737
8738 2004-02-26  Eric Christopher  <echristo@redhat.com>
8739
8740         * c-lex.c (c_lex_string_translate): New variable.
8741         (lex_string): Use to determine string translation.
8742         * c-pragma.h: Prototype.
8743         * c-parse.in (start_string_translation): New. Set above.
8744         (stop_string_translation): Ditto.
8745         (attribute, attribute_list, asm_def, asm_stmt,
8746         asm_operand): Use above functions.
8747         * cp/parser.c (cp_parser_declaration): Translate strings
8748         unless token is RID_EXTERN. Set c_lex_string_translate
8749         for recursive use.
8750         (cp_parser_asm_definition): Only translate argument strings
8751         to asms.
8752         (cp_parser_asm_operand_list): Ditto.
8753         (cp_parser_attribute_list): Do not translate attribute strings.
8754
8755 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
8756
8757         * stmt.c (expand_start_case_dummy): Remove.
8758         * tree.h: Remove the corresponding prototype.
8759
8760 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
8761
8762         * builtins.c (apply_args_register_offset): Remove.
8763         * tree.h: Remove the corresponding prototype.
8764
8765 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
8766
8767         * stor-layout.c (is_pending_size): Remove.
8768         * tree.h: Remove the corresponding prototype.
8769
8770 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
8771
8772         * recog.c (validate_replace_src): Remove.
8773         * recog.h: Remove the corresponding prototype.
8774
8775 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
8776
8777         * calls.c: Don't reference FINAL_REG_PARM_STACK_SPACE or
8778         MAYBE_REG_PARM_STACK_SPACE.
8779         * function.c: Likewise.
8780         * system.h (FINAL_REG_PARM_STACK_SPACE): Poison.
8781         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
8782         * doc/tm.texi (FINAL_REG_PARM_STACK_SPACE): Remove.
8783         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
8784
8785 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
8786
8787         * c-decl.c (c_expand_deferred_function): Remove.
8788         * c-tree.h: Remove the corresponding prototype.
8789
8790 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
8791
8792         * postreload.c (reload_cse_move2add): Generate just a PLUS
8793         instead of an entire SET.
8794
8795 2004-02-26  Jan Hubicka  <jh@suse.cz>
8796
8797         * config.gcc: Add support for nocoma/prescott/pentium-m/pentium3m
8798         /pentium4m.
8799         * i386.c (override_options): Add support for new CPUs.
8800         * i386.h (TARGET_CPU_DEFAULT_NAMES): New names.
8801         (TARGET_CPU_DEFAULT_pentium_m, TARGET_CPU_DEFAULT_pentium4e): New
8802         constants.
8803         * invoke.texi: Extend documentation of -mtune/-march for new CPUs.
8804
8805 2004-02-26  Bob Wilson  <bob.wilson@acm.org>
8806
8807         * config/xtensa/xtensa.h (TARGET_CPU_CPP_BUILTINS): Define __xtensa__.
8808
8809 2004-02-26  Eric Botcazou  <ebotcazou@act-europe.fr>
8810
8811         * config/sparc/sparc-protos.h (sparc_emit_floatunsdi): Add 'mode'.
8812         (sparc_emit_fixunsdi): New prototype.
8813         * config/sparc/sparc.c (sparc_emit_floatunsdi): Use 'mode' argument.
8814         (sparc_emit_fixunsdi): New function.
8815         * config/sparc/sparc.md (floatunsdisf2): Use 'general_operand' for
8816         operand 1.  Pass SFmode to sparc_emit_floatunsdi.
8817         (floatunsdidf2): Use 'general_operand' for operand 1.  Pass DFmode
8818         to sparc_emit_floatunsdi.
8819         (fixuns_truncsfdi2): New expander.
8820         (fixuns_truncdfdi2): Likewise.
8821
8822 2004-02-26  Alan Modra  <amodra@bigpond.net.au>
8823
8824         * gcse.c (delete_null_pointer_checks_1): Do not delete CC setter
8825         unless HAVE_cc0.
8826
8827 2004-02-25  Richard Henderson  <rth@redhat.com>
8828
8829         * explow.c (force_reg): Call mark_reg_pointer as appropriate.
8830         * config/alpha/alpha.c (alpha_emit_conditional_branch): Don't
8831         use (op0-op1) == 0 if op0 is a pointer.
8832         * config/alpha/alpha.md (cmpdi): Use some_operand.
8833         (three comparison combine splits): Remove.
8834
8835 2004-02-25  Richard Henderson  <rth@redhat.com>
8836
8837         PR c/12794
8838         * c-common.c (handle_alias_attribute): Reject the attribute if
8839         current_function_decl is set.
8840
8841 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
8842
8843         * config.gcc: Add comment describing extra_gcc_objs.
8844         i[34567]86-*-cygwin*): Replace host_extra_gcc_objs with extra_gcc_objs.
8845         * configure.ac (extra_gcc_objs): New substitution variable.
8846         (host_extra_gcc_objs): Don't substitute.
8847         * configure: Regenerate.
8848         * Makefile.in: Use extra_gcc_objs.
8849
8850 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
8851
8852         * doc/contrib.texi: Add an entry for myself.
8853
8854 2004-02-25  Jan Hubicka  <jh@suse.cz>
8855
8856         * basic-block.h (make_eh_edge, break_superblocks): Declare.
8857         * cfgbuild.c (make_eh_edge):  Make global.
8858         * cfglayout.c (break_superblocks): Likewise; fix memory leak.
8859         * except.c (build_post_landing_pads, connect_post_landing_pads,
8860         dw2_build_landing_pads, sjlj_emit_function_enter,
8861         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
8862         sjlj_build_landing_pads): Update CFG.
8863         (emit_to_new_bb_before): New function.
8864         (finish_eh_generation): Do not rebuild the CFG.
8865
8866 2004-02-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8867
8868         * config.gcc (hppa*-*-*, parisc*-*-*): Add MASK_BIG_SWITCH to all
8869         target_cpu_default defines.
8870         * pa-hpux.h (TARGET_DEFAULT): Add MASK_BIG_SWITCH to define.
8871         * pa.h (TARGET_DEFAULT): Likewise.
8872
8873 2004-02-25  Eric Botcazou  <ebotcazou@act-europe.fr>
8874
8875         * fold-const.c (fold): Treat MAX_EXPR and MIN_EXPR like
8876         comparisons with regard to signedness.
8877
8878 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
8879
8880         * arm.c (thumb_legitimize_address): New function.
8881         * arm-protos.h: Prototype it.
8882         * arm.h (THUMB_LEGITIMIZE_ADDRESS): Define.
8883         (LEGITIMIZE_ADDRESS): Use it.
8884
8885 2004-02-25  J"orn Rennecke <joern.rennecke@superh.com>
8886
8887         * reload1.c (reload): Only spill eliminable register with multiple
8888         adjacent elimination alternatives if all alternatives fail.
8889
8890 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
8891
8892         * arm.c (arm_legitimate_index_p): For QImode the range of an offset
8893         is -4095...+4095 inclusive.
8894
8895 2004-02-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
8896
8897         * doc/install.texi (sparc-sun-solaris2* specific notes): Document
8898         the bootstrap failure with Sun CC 5.4 and 5.5.
8899
8900 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
8901
8902         * cse.c (cse_change_cc_mode_insns): Stop at any instruction
8903         which modifies NEWREG.
8904         (cse_condition_code_reg): Update the mode of CC_REG in
8905         CC_SRC_INSN on our own.
8906
8907 2004-02-24  Michael Matz  <matz@suse.de>
8908
8909         * config/i386/i386.c (ix86_comp_type_attributes): Check for
8910         regparm attributes.
8911
8912 2004-02-24  Richard Henderson  <rth@redhat.com>
8913
8914         * toplev.c (dump_file_tbl): Rename from dump_file.
8915         * bb-reorder.c, bt-load.c, cfgcleanup.c, cfglayout.c, cfgloopanal.c,
8916         cfgloopmanip.c, cfgrtl.c, config/arm/arm.c, config/frv/frv.c,
8917         config/i386/i386.c, config/ia64/ia64.c, config/mips/mips.c,
8918         config/sh/sh.c, cse.c, flow.c, ifcvt.c, loop-iv.c, loop-unroll.c,
8919         loop-unswitch.c, output.h, predict.c, profile.c, ra-build.c,
8920         ra-colorize.c, ra-debug.c, ra-rewrite.c, ra.c, regrename.c, reload1.c,
8921         toplev.c, tracer.c, value-prof.c, var-tracking.c, web.c:
8922         s/rtl_dump_file/dump_file/g.
8923
8924 2004-02-24  Aldy Hernandez  <aldyh@redhat.com>
8925
8926         * config/rs6000/spe.md (spe_fix_truncsfsi2): Delete.
8927         (spe_fixuns_truncsfsi2): Delete.
8928
8929         * config/rs6000/rs6000.md (fix_truncsfsi2): Delete.
8930         (fixuns_truncsfsi2): Delete.
8931
8932 2004-02-24  Josef Zlomek  <zlomekj@suse.cz>
8933
8934         PR/14240
8935         * rtlanal.c (replace_label): Fix replacing labels in constant pool.
8936
8937 2004-02-24  Geoffrey Keating  <geoffk@apple.com>
8938
8939         * config/darwin.h (TARGET_HAS_F_SETLKW): Define.
8940
8941 2004-02-24  Jason Merrill  <jason@redhat.com>
8942
8943         * tree.c (check_qualified_type): New fn.
8944         (get_qualified_type): Use it.  If type already has the desired
8945         quals, just return it.
8946         * tree.h: Declare it.
8947
8948 2003-02-24  Sanjiv Kumar Gupta  <sanjivg@noida.hcltech.com>
8949
8950         * target-def.h (TARGET_SCHED_INIT_GLOBAL,
8951         TARGET_SCHED_FINISH_GLOBAL): New macros.
8952
8953         * target.h (md_init_global, md_finish_global): Function
8954         declarations corresponding to new target macros.
8955
8956         * haifa-sched.c (sched_init, sched_finish): Allow target to
8957         call the new schedular hooks.
8958
8959         * flow.c (recompute_reg_usage): Add PROP_DEATH_NOTES flag in
8960         call to update_life_info.
8961
8962         * config/sh/sh.h (OVERRIDE_OPTIONS): Re-enable
8963         flag_schedule_insns for SH4.
8964
8965         * config/sh/sh.c (sh_md_init_global, sh_md_finish_global,
8966         find_set_regmode_weight, find_insn_regmode_weight,
8967         find_regmode_weight), sh_md_init, sh_dfa_new_cycle,
8968         sh_variable_issue, high_pressure, ready_reorder,
8969         rank_for_reorder, swap_reorder, sh_reorder, sh_reorder2): New
8970         functions used to throttle the insn movement in first
8971         scheduling pass for SH.
8972
8973         * gcc/doc/tm.texi: Document TARGET_SCHED_INIT_GLOBAL and
8974         TARGET_SCHED_FINISH_GLOBAL.
8975
8976 2004-02-24  Alexandre Oliva  <aoliva@redhat.com>
8977
8978         Implement FR-V FDPIC ABI support for frv-uclinux and frv-linux.
8979         2004-02-05  Alexandre Oliva  <aoliva@redhat.com>
8980         * config/frv/frv.c (frv_emit_movsi): Use GOT relocations for
8981         symbols in sections named by the user.
8982         2004-01-30  Alexandre Oliva  <aoliva@redhat.com>
8983         * config/frv/linux.h (TARGET_OS_CPP_BUILTINS): New.
8984         2004-01-27  Alexandre Oliva  <aoliva@redhat.com>
8985         * config.gcc (frv-*-*linux*): Handle like *-*-linux*.
8986         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Remove, obviated by
8987         the above.
8988         2004-01-20  Alexandre Oliva  <aoliva@redhat.com>
8989         * config/frv/frv.md (symGOT2reg_hilo, symGOTOFF2reg_hilo): Add
8990         one more pseudo to further improve code generation.
8991         2004-01-19  Alexandre Oliva  <aoliva@redhat.com>
8992         * config/frv/frv.md (movdi_ldd): Introduce explicit indirection
8993         inside UNSPEC.
8994         2004-01-16  Alexandre Oliva  <aoliva@redhat.com>
8995         * config/frv/frv.c (frv_legitimate_address_p): Added
8996         allow_double_reg_p argument.  Adjust all callers.  Use it to
8997         decide whether to enable double-register indirect addressing.
8998         (frv_funcdesc_alias_set): Remove.
8999         (frv_expand_fdpic_call): Force non-SYMBOL_REF operand into
9000         register.  Emit movdi_ldd.
9001         (ldd_address_operand): New.
9002         * config/frv/frv-protos.h (frv_legitimate_address_p): Adjust.
9003         * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Likewise.
9004         (PREDICATE_CODES): Add ldd_address_operand.
9005         * config/frv/frv.md (movdi_ldd): New.
9006         (symGOT2reg_hilo, symGOTOFF2reg_hilo): Use separate pseudo for
9007         intermediate computations if possible.
9008         (symGOTOFF2reg_i): Fix harmless typo.
9009         2003-12-18  Alexandre Oliva  <aoliva@redhat.com>
9010         * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Cast
9011         relocated p_vaddr to vaddr type.
9012         * config/frv/frv-protos.h (frv_expand_fdpic_call): Return void.
9013         * config/frv/frv.c (frv_get_funcdesc_alias_set): New.
9014         (frv_expand_fdpic_call): Propagate incoming MEM's expr to funcdesc
9015         MEM, or use a funcdesc alias set.  Use regular move instead of
9016         ldd.
9017         (dbl_memory_one_insn_operand): Recognize function descriptors by
9018         type or by alias set, and don't split them.
9019         * config/frv/frv.md (call, call_value): Never use call_internal
9020         for fdpic.
9021         (call_internal, call_value_internal): Never match for FDPIC.
9022         (call_fdpicdi, call_fdpicsi, call_value_fdpicdi,
9023         call_value_fdpicsi): Require FDPIC.
9024         (ldd): Removed.
9025         2003-12-17  Alexandre Oliva  <aoliva@redhat.com>
9026         * config/frv/frv.h (CRT_GET_RFIB_DATA): Define for __FRV_FDPIC__.
9027         * unwind-dw2-fde-glibc.c: Don't include elf-fdpic.h any more.
9028         (_Unwind_IteratePhdrCallback): Adjust type of load_base for FRV
9029         FDPIC.  Compute data base address.
9030         * config/frv/linux.h (SUBTARGET_DRIVER_SELF_SPECS): Enable -mfdpic
9031         before the other self-specs are processed.
9032         * config/frv/t-linux (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS):
9033         Build with -fPIC.
9034         2003-12-15  Alexandre Oliva  <aoliva@redhat.com>
9035         * unwind-dw2-fde-glibc.c: Don't include bits/elf-fdpic.h if
9036         inhibit_libc is defined.
9037         2003-12-12  Alexandre Oliva  <aoliva@redhat.com>
9038         * unwind-dw2-fde-glibc.c: Include bits/elf-fdpic.h for
9039         __FRV_FDPIC__.
9040         (__RELOC_POINTER): Define.
9041         (_Unwind_IteratePhdrCallback): Use it.
9042         * config/frv/frv.h (Twrite): Define.
9043         (TRANSFER_FROM_TRAMPOLINE): Use it.
9044         * config/frv/linux.h (INVOKE__main): Undefine.
9045         (Twrite): Override.
9046         2003-12-05  Richard Sandiford  <rsandifo@redhat.com>
9047         * doc/invoke.texi (-mlong-calls, -mlinked-fp): Document FRV options.
9048         (-mlibrary-pic): Emphasize that this option generates EABI code.
9049         (-mcpu): Add fr550.
9050         (-mpack): Remove.
9051         2003-11-30  Alexandre Oliva  <aoliva@redhat.com>
9052         * config/frv/frv.c (int_2word_operand): Reject LABELs, SYMBOL_REFs
9053         and CONSTs in FDPIC mode.
9054         * gcc/config.gcc (with_cpu): Default to fr400 on frv-*-*linux*.
9055         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
9056         * config/frv/frv.c (move_source_operand): Don't accept symbolic
9057         constants.
9058         * config/frv/frv.md (*movhi_internal, *movsi_internal): Use an 'n'
9059         rather than 'i' constraint for the 2-instruction alternative.
9060         (*movsi_2word): New, incorporating existing int_2word_operand splitter.
9061         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
9062         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Q): Renamed from
9063         EXTRA_CONSTRAINT_FOR_Y.
9064         (EXTRA_CONSTRAINT): Remove handling of 'Y'.
9065         * config/frv/frv.md (*movsi_internal): Remove 'Q' constraint.
9066         (addsi3): Change 'Y' constraint to 'Q'.
9067         2003-11-27  Richard Sandiford  <rsandifo@redhat.com>
9068         * reload.c (CONST_POOL_OK_P): New macro.
9069         (find_reloads): Use it to decide whether a constant can be forced
9070         into memory.
9071         * config/frv/frv.h (LEGITIMATE_PIC_OPERAND_P): Return true if the
9072         constant satisfies got12_operand.
9073         (frv_cannot_force_const_mem): Always return true for TARGET_FDPIC.
9074         (frv_legitimate_address_p): Check for valid unspec offsets using
9075         got12_operand rather than frv_legitimate_fdpic_operand_p.
9076         (frv_legitimate_fdpic_operand_p): Delete.
9077         (frv_emit_movsi): Abort if we try to use the FDPIC register during
9078         or after reload.
9079         (frv_legitimate_constant_p): Return LEGITIMATE_PIC_OPERAND_P if
9080         TARGET_FDPIC.
9081         * config/frv/frv.md (*movdf_double): Add alternatives for CONST_DOUBLE.
9082         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
9083         * config/frv/frv-protos.h (fdpic_operand, fdpic_got12_operand)
9084         (frv_fdpic_fptr_operand): Don't declare here.
9085         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Y): Call got12_operand
9086         rather than fdpic_got12_operand.
9087         (PREDICATE_CODES): Remove symbolic_operand entry.  Add entries for
9088         got12_operand and const_unspec_operand.
9089         * config/frv/frv.c (got12_operand): Renamed from fdpic_got12_operand.
9090         (gpr_or_int12_operand, dbl_memory_one_insn_operand): Update calls.
9091         (symbolic_operand): Remove.
9092         (const_unspec_operand): New predicate.
9093         * config/frv/frv.md (*movsi_got): Use got12_operand.
9094         (*movsi_high_got, *movsi_lo_sum_got): Use const_unspec_operand.
9095         2003-11-18  Richard Sandiford  <rsandifo@redhat.com>
9096         * config/frv/frv-protos.h (frv_output_addr_const_extra): Remove.
9097         * config/frv/frv.h (OUTPUT_ADDR_CONST_EXTRA): Remove definition.
9098         * config/frv/frv.c (frv_unspec): New structure.
9099         (frv_small_data_reloc_p, frv_const_unspec_p): New functions.
9100         (frv_print_operand_memory_reference): Use frv_const_unspec_p to
9101         validate CONST indices.  Use frv_output_const_unspec to print them.
9102         (frv_print_operand): Update call to unspec_got_name.  Use
9103         frv_output_const_unspec to print constant unspecs.
9104         (frv_legitimate_fdpic_operand_p): Return true if frv_const_unspec_p.
9105         Reject UNSPECs otherwise.
9106         (unspec_got_name): Take the relocation number as argument, not an
9107         rtx containing it.
9108         (frv_output_addr_const_extra): Remove, replacing with...
9109         (frv_output_const_unspec): ...this new function.
9110         (frv_find_base_term): Use frv_const_unspec_p & frv_small_data_reloc_p.
9111         (gpr_or_int12_operand): Use fdpic_got12_operand.
9112         (dbl_memory_one_insn_operand): Likewise.
9113         (fdpic_got12_operand): Use frv_const_unspec_p.
9114         (frv_emit_movsi): Use frv_const_unspec_p to check for CONSTs that
9115         are already legitimate.  Use frv_small_data_reloc_p when deciding
9116         whether to use HIGH/LO_SUM for R_FRV_GOTOFF12 and R_FRV_GPREL12.
9117         2003-11-18  Alexandre Oliva  <aoliva@redhat.com>
9118         * config/frv/t-linux (SHLIB_MAPFILES): Override so as to export...
9119         * config/frv/libgcc-frv.ver: ... frv-specific symbols.  New file.
9120         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
9121         label, for real this time.
9122         * config/frv/frv.c (frv_local_funcdesc_p): Update to new
9123         representation of visibility.
9124         (fdpic_got12_operand, symbolic_operand): Mark unused arguments as
9125         such.
9126         2003-11-17  Richard Sandiford  <rsandifo@redhat.com>
9127         * config/frv/frv.h (MASK_LINKED_FP, TARGET_LINKED_FP): New macros.
9128         (TARGET_SWITCHES): Add -mlinked-fp and -mno-linked-fp.
9129         * config/frv/frv.c (frv_override_options): Set MASK_LINKED_FP unless
9130         it was explicitly disabled.
9131         (frv_stack_info): There is no need to save the link register in every
9132         frame unless TARGET_LINKED_FP is true.
9133         (frv_frame_pointer_required): If !TARGET_LINKED_FP, only require a
9134         frame pointer if the stack pointer might change value.
9135         (frv_return_addr_rtx): Check and process "count" argument.
9136         2003-11-14  Richard Sandiford  <rsandifo@redhat.com>
9137         * config/frv/frv-protos.h (frv_legitimize_address): Remove.
9138         (frv_find_base_term): Declare.
9139         * config/frv/frv.h (LEGITIMIZE_ADDRESS): Do nothing.
9140         (FIND_BASE_TERM): Define.
9141         (PREDICATE_CODES): Remove pic_register_operand, pic_symbolic_operand,
9142         small_data_register_operand, small_data_symbolic_operand.  Add
9143         symbolic_operand.
9144         * config/frv/frv.c (const_small_data_p, plus_small_data_p): Delete.
9145         (frv_print_operand_memory_reference, output_move_single): Remove
9146         special handling for unlegitimized sdata addresses.
9147         (frv_legitimate_address_p): Don't allow sums of SDA_BASE_REG
9148         and symbolic addresses.
9149         (frv_legitimize_address, frv_legitimize_fdpic_address): Delete.
9150         (frv_find_base_term): New function.
9151         (int_2word_operand): Check specifically for symbolic address constants.
9152         (pic_register_operand, pic_symbolic_operand): Delete.
9153         (small_data_register_operand, small_data_symbolic_operand): Delete.
9154         (dbl_memory_one_insn_operand): Don't call plus_small_data_p.
9155         Allow UNSPEC_GOT constants if !TARGET_FDPIC.
9156         (move_source_operand): Only accept CONSTs if they're a two-insn
9157         symbolic constant.
9158         (fdpic_got12_operand): Don't require TARGET_FDPIC.
9159         (frv_emit_movsi): Legitimize sdata and -mlibrary-pic addresses
9160         using gen_symGOTOFF2reg*.
9161         (frv_ifcvt_rewrite_mem): Remove (plus gr16 ...) special cases.
9162         (frv_rtx_costs): Give all MEM addresses a cost of 0.  Give MEMs
9163         themselves a cost of 3 insns.
9164         * config/mips/mips.md (*movsi_got): Allow for !TARGET_FDPIC too.
9165         Change predicate to symbolic_operand.
9166         (*movsi_high_got, *movsi_lo_sum_got): Likewise.
9167         (*movsi_lda_sdata): Delete.
9168         (*movsi_pic, movsi_high_pic, movsi_lo_sum_pic): Delete.
9169         2003-11-05  Alexandre Oliva  <aoliva@redhat.com>
9170         * config.gcc: Add t-slibgcc-elf-ver and support --with-cpu for
9171         frv-*-*linux*.
9172         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
9173         label.
9174         * config/frv/frv.h (DRIVER_SELF_SPECS): Add blank before
9175         -multilib-library-pic.
9176         (LINK_SPEC): Add -z text for -mfdpic.
9177         * config/frv/frvbegin.c (__ROFIXUP_LIST__): Don't define on FDPIC.
9178         * config/frv/frvend.c (__ROFIXUP_END__): Likewise.
9179         * config/frv/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, LINK_SPEC):
9180         Override.
9181         (OPTION_DEFAULT_SPECS, HAS_INIT_SECTION, INIT_SECTION_ASM_OP,
9182         FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION): Define.
9183         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Use
9184         crtstuff-generated files.
9185         2003-10-31  Alexandre Oliva  <aoliva@redhat.com>
9186         * config.gcc: Add frv-*-*linux*.
9187         * config/frv/linux.h, config/frv/t-linux: New.
9188         2003-10-06  Alexandre Oliva  <aoliva@redhat.com>
9189         * config/frv/frv.h (LINK_SPEC): Pass -melf32frvfd to the linker
9190         when -mfdpic even if a linker script is explicitly listed.
9191         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
9192         * config/frv/frv.c (frv_override_options): Clear asm_out
9193         unaligned_op for SImode on FDPIC.
9194         (frv_emit_movsi): Use compute_reloc_for_constant to compute the
9195         argument passed to decl_readonly_section.
9196         (frv_assemble_integer): Revert 2003-09-30's change, but make the
9197         whole block run with FDPIC even with -fno-PIC.
9198         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
9199         * config/frv/frv.c (frv_cannot_force_const_mem): Don't force
9200         symbol or label plus offset to memory.
9201         (frv_emit_movsi): Emit GPREL only if -mgprel-ro.  Emit 32-bit
9202         GOTOFF and GPREL for LABEL_REF.
9203         * config/frv/frv.h (DRIVER_SELF_SPECS): Add -mgprel-ro with
9204         -mfdpic unless -mno-gprel-ro, -fpic or -fpie.
9205         (MASK_GPREL_RO, TARGET_GPREL_RO): New.
9206         (TARGET_SWITCHES): Added gprel-ro and no-gprel-ro.
9207         * doc/invoke.texi: Document them.
9208         2003-09-30  Alexandre Oliva  <aoliva@redhat.com>
9209         * config/frv/frv-protos.h (frv_gen_GPsym2reg): Declare.
9210         (frv_splittable_got_operand): Removed.
9211         * config/frv/frv.c (frv_cannot_force_const_mem): Reject HIGH and
9212         LO_SUM.  Add comments.
9213         (frv_override_options): Moved enabling of FDPIC to
9214         DRIVER_SELF_SPECS.  Don't enable MASK_DWORD.
9215         (frv_local_funcdesc_p): Remove unnecessary heck for flag_pie.
9216         (frv_legitimize_fdpic_address): Don't duplicate logic in
9217         frv_emit_movsi.
9218         (frv_gen_GPsym2reg): New.
9219         (unspec_got_name): Added gprel.
9220         (frv_expand_fdpic_call): Add support for inlining PLTs.
9221         (fdpic_fptr_operand): Renamed from frv_fdpic_fptr_operand.
9222         (gpr_or_int12_operand): Added GPREL12.
9223         (pic_symbolic_operand): Match even if !flag_pic for FDPIC.
9224         (small_data_symbolic_operand): Fail if FDPIC.
9225         (fdpic_splittable_got_operand): Removed.
9226         (fdpic_got12_operand): Added GPREL12.
9227         (frv_emit_movsi): Reorganize to avoid duplication.  Emit GPREL
9228         when appropriate.  Fix sdata GOTOFF.
9229         (frv_legitimate_constant_p): Require legitimate PIC operand for
9230         FDPIC with pic, but only a legitimate fdpic operand for non-pic.
9231         (frv_assemble_integer): Move FDPIC funcdesc handling out of
9232         flag_pic case.
9233         (frv_asm_out_constructor, frv_asm_out_destructor): Abort if
9234         frv_assemble_integer fails.
9235         * config/frv/frv.h (DRIVER_SELF_SPECS): New.
9236         (SUBTARGET_DRIVER_SELF_SPECS): New.
9237         (ASM_SPEC): Don't pass -mno-fdpic.
9238         (LINK_SPEC): Pass -melf32frvfd for FDPIC.
9239         (MASK_INLINE_PLT, TARGET_INLINE_PLT): New.
9240         (TARGET_SWITCHES): Add -minline-plt, -mno-inline-plt and
9241         -multilib-library-pic.
9242         (PREDICATE_CODES): Added fdpic_operand, fdpic_fptr_operand,
9243         condexec_si_media_operator, condexec_sf_add_operator and
9244         condexec_sf_conv_operator.  Removed condexec_sf_binary_operator
9245         and condexec_sf_unary_operator.
9246         * config/frv/frv.md (R_FRV_GPREL12, R_FRV_GPRELHI, R_FRV_GPRELLO):
9247         New.
9248         (movsi_got, movsi_high_got, movsi_lo_sum_got): Move before
9249         movsi_internal.  Give them internal names.  movsi_got has type
9250         int.
9251         (fdpic got splitters): Remove.
9252         (symGPREL2reg, symGPREL2reg_hilo): New.
9253         * config/frv/t-frv (MULTILIB_MATCHES): Don't map -fpic and -fPIC
9254         to -mlibrary-pic.  Map -multilib-library-pic to it.
9255         * doc/invoke.texi: -mfdpic, -minline-plt, -multilib-library-pic:
9256         Document.
9257         2003-09-28  Alexandre Oliva  <aoliva@redhat.com>
9258         * config/frv/frv.c (frv_function_symbol_referenced_p): Declare.
9259         (TARGET_CANNOT_FORCE_CONST_MEM): Define to...
9260         (frv_cannot_force_const_mem): New function.
9261         (const_small_data_p, plus_small_data_p): Update comments on sdata
9262         on FDPIC.
9263         (frv_override_options): Set flag_pie for FDPIC too.
9264         (frv_conditional_register_usage): Mark gr16 and gr17 as non-fixed,
9265         call-saved registers on FDPIC.
9266         (frv_stack_info): Don't preserve the PIC register on FDPIC, and
9267         don't force LR to be preserved.
9268         (frv_expand_prologue): Likewise.
9269         (frv_asm_output_mi_thunk): Use 12-bit funcdesc gotoff for -fpic.
9270         (frv_frame_pointer_required): Don't force it just because the
9271         FDPIC register is used.
9272         (frv_legitimate_address_p) <CONST>: Accept a legitimate FDPIC
9273         operand only if !condexec_p.
9274         (frv_legitimize_address): Return the FDPIC-legitimized address.
9275         Don't match small data here on FDPIC.
9276         (frv_legitimate_fdpic_operand_p): Don't accept unadorned function
9277         symbols.  Use TRUE/FALSE instead of 1/0.
9278         (frv_local_funcdesc_p): New.
9279         (frv_legitimize_fdpic_address): Rewrite to use GOTOFF and 12-bit
9280         immediates when possible.
9281         (pic_symbolic_operand): Accept SYMBOL_REFs and CONSTs in FDPIC.
9282         (dbl_memory_one_insn_operand): Accept addresses that add a REG and
9283         an UNSPEC_GOT.
9284         (frv_emit_movsi): Handle FDPIC before small data.  Use GOTOFF and
9285         12-bit immediates when possible.
9286         (frv_legitimate_constant_p): In FDPIC, reject SImode operands that
9287         are not legitimate pic operands.
9288         (frv_in_small_data_p): Re-enable for FDPIC.
9289         * config/frv/frv.h (SDA_BASE_REG): Remove comment about FDPIC.
9290         (FRV_GLOBAL_P): Removed.
9291         * config/frv/frv.md: Add modes to CONSTs.
9292         (movsi_got): New.
9293         (movsi_lo_sum_got): Use separate matches instead of match_dup.
9294         (movsi_high_pic, movsi_lo_sum_pic): Match on non-FDPIC only.
9295         (fdpic splittable operations): Match on flag_pic != 1.
9296         2003-09-22  Alexandre Oliva  <aoliva@redhat.com>
9297         * config/frv/frv.c (frv_asm_out_constructor,
9298         frv_asm_out_destructor): Pass to frv_assemble_integer the size in
9299         bytes, not bits.
9300         2003-09-19  Alexandre Oliva  <aoliva@redhat.com>
9301         * config/frv/frv.c (frv_assemble_integer): Reject complex
9302         expressions referencing function SYMBOL_REFs.
9303         * config/frv/frv.c (frv_function_symbol_referenced_p): New.
9304         (move_source_operand): Reject CONSTs that reference function
9305         SYMBOL_REFs on FDPIC.
9306         (frv_emit_movsi): If we get such a CONST, break it up.
9307         * config/frv/frv.h (CPP_SPEC): Define __FRV_FDPIC__ for -mfdpic.
9308         (TRANSFER_FROM_TRAMPOLINE): Use different definitions for FDPIC.
9309         * config/frv/frv.c (frv_print_operand) <I>: Recognize PLUS without
9310         MEM.
9311         (frv_assemble_integer): Don't use funcdesc for LABEL_REFs.
9312         (frv_trampoline_size): Increase for FDPIC.
9313         * config/frv/frv.h (TRAMPOLINE_ALIGNMENT): Bump to 64 for FDPIC.
9314         (TRANSFER_FROM_TRAMPOLINE): Handle FDPIC trampolines.
9315         * config/frv/frv.c (frv_legitimize_fdpic_address, frv_emit_movsi):
9316         Disable use of GOTOFF for now.
9317         (const_small_data_p, plus_small_data_p, frv_in_small_data_p):
9318         Disable use of small data in FDPIC for now.
9319         (frv_asm_output_mi_thunk): Implement for FDPIC.
9320         * config/frv/frv.h (SDA_BASE_REG): Set to -1 with FDPIC.
9321         * config/frv/frv.c (frv_asm_out_constructor): Use
9322         frv_assemble_integer for FDPIC pointers.
9323         (frv_asm_out_destructor): Likewise.
9324         * config/frv/frv.md (ldd): Fix order of operands.  Use
9325         address_operand for input.
9326         2003-09-18  DJ Delorie  <dj@redhat.com>
9327         * config/frv/frv.c (frv_legitimate_fdpic_operand_p): Remove UNSPEC_PIC.
9328         (unspec_got_name): Correct typo.
9329         (frv_emit_movsi): Pre-expand splittable GOTs.
9330         (frv_expand_fdpic_call): Rename gen_lddi to gen_ldd.
9331         * config/frv/frv.md (lddi): Fix syntax error, rename to ldd.
9332         (symGOT2reg_hilo, symGOTOFF2reg_hilo): New.
9333         * config/frv/t-frv: Add -mfdpic multilibs.
9334         * config/frv/frv.h (ASM_SPEC): Pass -mfdpic/-mno-fdpic.
9335         (TARGET_SWITCHES): Add -mno-fdpic, fix documentation.
9336         * config/frv/frv.c (frv_override_options): -mfdpic assumes
9337         flag_pic, default to 32-bit pics, require DWORD ops.
9338         (frv_override_options): Add W and Z constraints.
9339         (frv_expand_prologue): No pic prologue for -mfdpic.
9340         (frv_asm_output_mi_thunk): Support -mfdpic (soon).
9341         (frv_print_operand_memory_reference): Handle GOT constants.
9342         (frv_legitimate_address_p): Allow GOT constants.
9343         (frv_legitimize_address): Handle GOT addresses too.
9344         (frv_legitimate_fdpic_operand_p): New.
9345         (frv_legitimize_fdpic_address): New.
9346         (unspec_got_name): New.
9347         (frv_output_addr_const_extra): New.
9348         (frv_expand_fdpic_call): New.
9349         (frv_fdpic_fptr_operand): New.
9350         (gpr_or_int12_operand): Handle GOT operands.
9351         (int_2word_operand): Handle GOT operands.
9352         (fdpic_operand): New.
9353         (fdpic_splittable_got_operand): New.
9354         (fdpic_got12_operand): New.
9355         (frv_emit_movsi): Handle GOT operands.
9356         (frv_assemble_integer): -mfdpic doesn't use rofixups.
9357         (frv_print_operand): Support 'g' code for GOT operands.
9358         * config/frv/frv-protos.h: Add prototypes as needed.
9359         * config/frv/frv.md (R_FRV_GOT12, R_FRV_GOTHI, R_FRV_GOTLO,
9360         R_FRV_FUNCDESC, R_FRV_FUNCDESC_GOT12, R_FRV_FUNCDESC_GOTHI,
9361         R_FRV_FUNCDESC_GOTLO, R_FRV_FUNCDESC_VALUE,
9362         R_FRV_FUNCDESC_GOTOFF12, R_FRV_FUNCDESC_GOTOFFHI,
9363         R_FRV_FUNCDESC_GOTOFFLO, R_FRV_GOTOFF12, R_FRV_GOTOFFHI,
9364         R_FRV_GOTOFFLO): New.
9365         (movsi_high_got, movsi_lo_sum_got): New.
9366         (*movsi_pic): Don't use this splitter for -mfdpic.
9367         (addsi3): Allow GOT references also.
9368         (call, call_value): Handle -mfdpic separately.
9369         (call_fdpicdi, call_fdpicsi, lddi, call_value_fdpicdi,
9370         call_value_fdpicsi): New.
9371         (symGOT2reg, symGOT2reg_i, got splitters, symGOTOFF2reg,
9372         symGOTOFF2reg_i): New.
9373         * config/frv/frv.h (MASK_FDPIC): New.
9374         (TARGET_FDPIC): New.
9375         (TARGET_SWITCHES): Add -mfdpic.
9376         (FDPIC_FPTR_REGNO): New.
9377         (FDPIC_REGNO): New.
9378         (OUR_FDPIC_REG): New.
9379         (enum reg_class): Add FDPIC_REGS, FDPIC_FPTR_REGS, and
9380         FDPIC_CALL_REGS.
9381         (REG_CLASS_NAMES): Likewise.
9382         (REG_CLASS_CONTENTS): Likewise.
9383         (EXTRA_CONSTRAINT_FOR_Y): New, for 12-bit GOTs.
9384         (EXTRA_CONSTRAINT): Add it here.
9385         (FRV_GLOBAL_P): New.
9386         (OUTPUT_ADDR_CONST_EXTRA): New.
9387
9388 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
9389
9390         * config/sparc/sparc.h: Remove commented-out definitions of
9391         TARGET_EDOM and GEN_ERRNO_RTX.
9392
9393 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
9394
9395         * df.c, df.h, ra-build.c, ra-rewrite.c, ra.c, web.c: Replace
9396         df_analyse with df_analyze.
9397
9398 2004-02-24  Alan Modra  <amodra@bigpond.net.au>
9399
9400         * gcse.c (delete_null_pointer_checks_1): Set stop_insn to end, not
9401         beginning of block.
9402
9403 2004-02-23  James E Wilson  <wilson@specifixinc.com>
9404
9405         * calls.c (precompute_arguments): Update comment.
9406
9407 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
9408
9409         * et-forest.c: Replace et_occurences with et_occurrences.
9410
9411 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
9412
9413         * cfgloop.h, loop-iv.c, loop-unswitch.c: Replace iv_analyse
9414         with iv_analyze.
9415
9416 2004-02-23  Kelley Cook  <kcook@gcc.gnu.org>
9417
9418         * config/i386/i386.c: Rename pni to sse3.
9419         * config/i386/i386.h: Likewise.
9420         * config/i386/i386.md: Likewise.
9421         * config/i386/pmmintrin.h: Likewise.
9422         * doc/extend.texi: Likewise.
9423         * doc/invoke.texi: Likewise.
9424
9425 2004-02-23  Zack Weinberg  <zack@codesourcery.com>
9426             Kazu Hirata  <kazu@cs.umass.edu>
9427
9428         Remove -fwritable-strings.
9429         * c-common.c (fix_string_type): Don't check
9430         flag_writable_strings.
9431         (fix_string_type): Likewise.
9432         * c-opts.c (set_std_c89): Don't initialize
9433         flag_writable_strings.
9434         (set_std_c99): Likewise.
9435         * common.opt (fwritable-strings): Remove.
9436         * flags.h: Remove the external declaration of
9437         flag_writable_strings.
9438         * opts.c (common_handle_option) <OPT_fwritable_strings>:
9439         Remove.
9440         * toplev.c (flag_writable_strings): Remove.
9441         (f_options): Remove an entry for writable-strings.
9442         * varasm.c (const_hash_1) <STRING_CST>: Don't check
9443         flag_writable_strings.
9444         (compare_constant) <STRING_CST>: Likewise.
9445         (build_constant_desc): Likewise.
9446         * config/darwin.c (machopic_select_section): Likewise.
9447         * config/arm/arm.c (AOF_ASSEMBLER): Likewise.
9448         * config/arm/pe.c (arm_pe_encode_section_info): Likewise.
9449         * config/iq2000/iq2000.c (iq2000_select_section): Likewise.
9450         * config/mips/mips.c (mips_select_section): Likewise.
9451         (mips_encode_section_info): Likewise.
9452         * config/pa/pa.c (pa_select_section): Likewise.
9453         * config/pa/pa.h (TEXT_SPACE_P): Likewise.
9454         * config/v850/v850.c (v850_select_section): Likewise.
9455         * doc/invoke.texi (-fwritable-strings): Remove.
9456         (-fno-const-strings): Don't mention -fwritable-strings.
9457         * doc/trouble.texi: Don't mention -fwritable-strings.
9458
9459 2003-02-23  Nathanael Nerode  <neroden@gcc.gnu.org>
9460
9461         * doc/install.texi: Update for switch of boehm-gc to autoconf 2.57.
9462
9463 2004-02-23  Dale Johannesen  <dalej@apple.com>
9464
9465         * config/rs6000.md (movsf_hardfloat): Add POWER form of nop.
9466         (movdf_hardfloat64):  Ditto.
9467         (movdf_softfloat64):  Ditto.
9468
9469 2004-02-23  Fariborz Jahanian <fjahanian@apple.com>
9470         * config/rs6000/rs6000.c (function_arg): call to
9471         rs6000_mixed_function_arg for DFmode moved to allow
9472         normal DFmode incoming register assignment.
9473
9474 2004-02-23  Dale Johannesen  <dalej@apple.com>
9475
9476         * config/rs6000.md (movsf_hardfloat): Accept CTR-to-CTR copy.
9477         (movdf_hardfloat64):  Ditto.
9478
9479 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
9480
9481         * convert.c, gcov-io.c, libgcov.c, sched-int.h, sibcall.c,
9482         config/rs6000/linux.h, config/rs6000/rs6000-c.c: Update
9483         copyright.
9484
9485 2004-02-23  Andrew Pinski  <pinskia@physics.uc.edu>
9486
9487         PR c/14156
9488         * c-typeck.c (c_expand_return): Change check for VAR_DECL
9489         to use DECL_P instead.
9490
9491         * config/rs6000/linux.h (OS_MISSING_POWERPC64): Define.
9492         * config/rs6000/linux64.h (OS_MISSING_POWERPC64): Define.
9493
9494 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
9495
9496         * Makefile.in (opts.o): Depend on target.h.
9497         * opts.c (decode_options): Use targetm.default_short_enums
9498         instead of DEFAULT_SHORT_ENUMS.
9499         * system.h (DEFAULT_SHORT_ENUMS): Poison.
9500         * target-def.h (TARGET_DEFAULT_SHORT_ENUMS): New.
9501         (TARGET_INITIALIZER): Add TARGET_DEFAULT_SHORT_ENUMS.
9502         * target.h (gcc_target): Add default_short_enums.
9503         * config/cris/cris.h: Remove a comment about
9504         DEFAULT_SHORT_ENUMS.
9505         * config/ip2k/ip2k.h: Likewise.
9506         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Change to
9507         TARGET_DEFAULT_SHORT_ENUMS.  Update the description.
9508
9509 2004-02-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
9510             Falk Hueffner  <falk@debian.org>
9511
9512         PR c/14188
9513         * builtins.c (expand_builtin_va_arg): Emit an informative message
9514         if a trap is generated.
9515         * c-typeck.c (build_function_call): Likewise.
9516
9517 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
9518
9519         * gcov-io.c (gcov_open) [GCOV_LOCKED]: Use open + fdopen instead of
9520         fopen.
9521         * libgcov.c: Include sys/stat.h.
9522         * config/rs6000/linux.h (TARGET_HAS_F_SETLKW): Define.
9523         * config/rs6000/linux64.h (TARGET_HAS_F_SETLKW): Define.
9524         * config/sparc/linux.h (TARGET_HAS_F_SETLKW): Define.
9525         * config/sparc/linux64.h (TARGET_HAS_F_SETLKW): Define.
9526
9527 2004-02-22  Kazu Hirata  <kazu@cs.umass.edu>
9528
9529         * reorg.c: Remove comments about dead ports.
9530
9531 2004-02-22  Christopher Faylor  <cgf@redhat.com>
9532
9533         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): *Really* specify
9534         extra host object file when targetting cygwin rather than generic
9535         object files.
9536
9537 2004-02-22  Josef Zlomek  <zlomekj@suse.cz>
9538
9539         Merge from tree-ssa:
9540         2003-11-20  Richard Henderson  <rth@redhat.com>
9541
9542                 * tree-inline.c (insert_decl_map): New.
9543                 (remap_decl, remap_type, remap_block, copy_body_r,
9544                 initialize_inlined_parameters, declare_return_variable,
9545                 remap_save_expr): Use it.
9546
9547         * function.c (copy_body_r): Add mapping from id->ret_label to
9548         id->ret_label.  Revert test for ret_label.
9549
9550 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
9551
9552         * genoutput.c (process_template): Strip trailing whitespace in @
9553         templates and issue a warning if there was any.
9554
9555 2004-02-21  Christopher Faylor  <cgf@redhat.com>
9556
9557         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): Specify extra host
9558         object file when targetting cygwin.
9559         * config/i386/t-cygwin (EXTRA_GCC_OBJS): Remove definition since it is
9560         overridden by top-level Makefile.
9561
9562 2004-02-21  Roger Sayle  <roger@eyesopen.com>
9563
9564         * config/i386/i386.c (standard_80387_constant_p): Also prefer
9565         the x87's load constant instructions when optimizing for size.
9566
9567 2004-02-21  Kazu Hirata  <kazu@cs.umass.edu>
9568
9569         * combine.c (SHIFT_COUNT_TRUNCATED): Remove.
9570         * defaults.h (SHIFT_COUNT_TRUNCATED): Provide the default.
9571         * expmed.c: Assume SHIFT_COUNT_TRUNCATED is always defined.
9572         * fold-const.c: Likewise.
9573         * simplify-rtx.c: Likewise.
9574
9575 2004-02-21  Alan Modra  <amodra@bigpond.net.au>
9576
9577         * combine.c (can_combine_p): Don't ignore SETs marked with
9578         REG_EH_REGION notes.
9579         (try_combine): When attemting to fix unrecognized insns, don't
9580         split a PARALLEL that contains the original i2.
9581
9582 2004-02-21  Ziemowit Laski  <zlaski@apple.com>
9583
9584         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Refer to
9585         SUBTARGET_OPTION_TRANSLATE_TABLE for architecture-specific options.
9586         * config/i386/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): Define it.
9587         * config/rs6000/altivec.h: #error out if '-maltivec' not specified.
9588         (vector, pixel, bool): #define to __vector, __pixel and __bool.
9589         (__un_args_eq, __bin_args_eq, __tern_args_eq): Move to C-specific
9590         portion of header.
9591         (__altivec_link_error_invalid_argument): Remove prototype; will use
9592         __builtin_altivec_compiletime_error("vec_*") instead.
9593         (vec_*): Fix/complete set of available operation overloads given the
9594         existence of distinct 'vector bool ...' and 'vector pixel' types; tighten
9595         cv-correctness of pointer arguments; in C, always check for correct
9596         argument types before macro expansion.
9597         * config/rs6000/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): New macro
9598         defining Darwin/PowerPC-specific '-f[no-]altivec' and
9599         '-W[no-]altivec-long-deprecated' switches.
9600         * config/rs6000/rs6000-c (rs6000_cpu_cpp_builtins): Pre-define
9601         '__vector', '__pixel' and '__bool' macros using
9602         '__attribute__((altivec(...)))' types.
9603         * config/rs6000/rs6000.c (bool_char_type_node, bool_short_type_node,
9604         bool_int_type_node, pixel_type_node, bool_V16QI_type_node,
9605         bool_V8HI_type_node, bool_V4SI_type_node, pixel_V8HI_type_node):
9606         New type nodes.
9607         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): New, for
9608         handling '-W[no-]altivec-long-deprecated'.
9609         (rs6000_override_options): Handle '-W[no-]altivec-long-deprecated'.
9610         (rs6000_expand_binop_builtin, rs6000_expand_ternop_builtin,
9611         altivec_expand_dst_builtin): Remove casts from integer literals.
9612         (altivec_expand_builtin): Likewise; handle expansion of new
9613         '__builtin_altivec_compiletime_error' function.
9614         (rs6000_init_builtins): Initialize 'vector bool ...' and 'vector pixel'
9615         types, and make them distinct from other vector types; register
9616         '__builtin_altivec_compiletime_error' function.
9617         (print_operand): For 'P', print a full target register name instead of
9618         merely its number.
9619         (rs6000_attribute_table): Add "altivec" attribute.
9620         (rs6000_handle_altivec_attribute): New function.
9621         * config/rs6000/rs6000.h (TARGET_OPTIONS): Describe
9622         '-m[no-]-warn-altivec-long' (which '-W[no-]altivec-long-deprecated'
9623         maps to).
9624         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): Forward
9625         declare.
9626         (ALTIVEC_BUILTIN_COMPILETIME_ERROR): New built-in enumeration.
9627
9628 2004-02-20  James E Wilson  <wilson@specifixinc.com>
9629
9630         * config/ia64/ia64.md (shift_mix4left+1): Delete reload_completed
9631         check.
9632         (shift_mix4left+2): Delete redundant pattern.
9633
9634 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
9635
9636         * alias.c (OUTGOING_REGNO): Don't define the default.
9637         * builtins.c (OUTGOING_REGNO): Likewise.
9638         (INCOMING_REGNO): Likewise.
9639         (apply_args_register_offset): Always use OUTGOING_REGNO.
9640         * combine.c (OUTGOING_REGNO): Likewise.
9641         * sibcall.c (OUTGOING_REGNO): Likewise.
9642         * defaults.h (INCOMING_REGNO): Provide the default.
9643         (OUTGOING_REGNO): Likewise.
9644
9645 2004-02-21  Jan Hubicka  <jh@suse.cz>
9646
9647         * params.def (max-peeled-insns, max-completely-peeled-insns,
9648         max-once-peeled-insns): Set to 400.
9649
9650 2004-02-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9651
9652         PR c++/12007
9653         * dbxout.c (dbxout_parms): Check that DECL_RTL and DECL_INCOMING_RTL
9654         are set for parameters before outputing debugging information.
9655
9656 2004-02-20  Falk Hueffner  <falk@debian.org>
9657
9658         PR target/14201
9659         * config/alpha/alpha.md (*fix_truncsfsi_ieee): Fix typoed operand
9660         numbers.
9661
9662 2004-02-20  Per Bothner  <per@bothner.com>
9663
9664         * input.h:  Don't #include line-map.h.  It may cause link problems
9665         with undefined linemap_line_start when line-map.h is included but
9666         line-map.o is not linked, as currently happens with gengtype on
9667         compilers that don't support inline.
9668         * toplev.c:  So we do have to explicitly #include line-map.h here.
9669
9670 2004-02-20  Richard Henderson  <rth@redhat.com>
9671
9672         * doc/invoke.texi: Add -Wvariadic-macros.
9673
9674 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
9675
9676         * haifa-sched.c (sched_emit_insn): Remove.
9677         * sched-int.h: Remove the corresponding prototype.
9678
9679 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
9680
9681         Revert:
9682         2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
9683         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
9684         * system.h (DEFAULT_SHORT_ENUMS): Poison.
9685         * config/cris/cris.h: Remove a comment about
9686         DEFAULT_SHORT_ENUMS.
9687         * config/ip2k/ip2k.h: Likewise.
9688         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
9689
9690 2004-02-20  Mohan Embar  <gnustuff@thisiscool.com>
9691             Tom Tromey  <tromey@redhat.com>
9692
9693         * doc/install.texi: Moved --disable-libgcj and
9694         --with-system-zlib documentation to new section for
9695         Java-specific options.
9696         Added explicit Cross-Compiler-Specific Options subheading.
9697         Added section for Java-specific options.
9698
9699 2004-02-20  Matt Kraai  <kraai@alumni.cmu.edu>
9700
9701         * doc/install.texi (Building the Ada compiler): Remove
9702         example.
9703
9704 2004-02-20  James E Wilson  <wilson@specifixinc.com>
9705
9706         * toplev.c (dump_file_index, dump_file): Put ce3 before rnreg.
9707
9708 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
9709
9710         * gcc.c (process_command): Allow translation of the copyright
9711         symbol but not the rest of the copyright message.
9712         * gcov.c (print_version): Likewise.  Allow translation of the
9713         message about warranty.
9714
9715 2004-02-20  Hans-Peter Nilsson  <hp@axis.com>
9716
9717         * config/cris/cris.md ("*andsi_movu"): Correct parentheses in
9718         predicate.
9719         ("*andsi_clear"): Tweak constraints to not match postincrement.
9720         Adjust the predicate to exclude a volatile memory reference.
9721         ("*andhi_clear"): Ditto.  Rename from "*andhi_clear_signed".
9722         ("*andhi_clear_unsigned"): Remove, non-matching pattern.
9723
9724 2004-02-19  Matt Kraai  <kraai@alumni.cmu.edu>
9725
9726         * move-if-change: Remove.
9727         * Makefile.in (s-mlib, c-parse.y, s-check, s-gencheck)
9728         (s-specs, s-options, s-config, s-conditions, s-flags, s-codes)
9729         (s-constants, s-emit, s-recog, s-opinit, s-extract, s-peep)
9730         (s-attr, s-attrtab, s-output, s-genrtl, s-modes, s-preds)
9731         (s-gtyp-gen, s-iov): Use the top level move-if-change.
9732         * objc/Make-lang.in (objc/objc-parse.y): Likewise.
9733
9734 2004-02-19  James E Wilson  <wilson@specifixinc.com>
9735
9736         * config/i386/i386.md (doloop_end_internal): Use nonimmediate_operand
9737         for operand2.  Add condition that requires register_operand operand2
9738         before reload.
9739
9740 2004-02-19  Richard Sandiford  <rsandifo@redhat.com>
9741             Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
9742
9743         * config/mips/mips.c (mips_address_insns): Treat BLKmode specially.
9744         * config/mips/mips.md: Expand comment above unaligned loads and stores.
9745
9746 2004-02-19  Richard Henderson  <rth@redhat.com>
9747
9748         * Makefile.in (STRICT2_WARN): Add -Wno-variadic-macros.
9749         * tree.c (build0, build1, build2, build3, build4): Split out from...
9750         (build): ... here.  Call them.
9751         * tree.h (build, _buildN1, _buildN2, _buildC1, _buildC2): New.
9752
9753         * convert.c (convert_to_integer): Remove extra build argument.
9754         * tree-inline.c (expand_call_inline): Likewise.
9755
9756 2004-02-19  Richard Henderson  <rth@redhat.com>
9757
9758         * c-opts.c (warn_variadic_macros): New.
9759         (c_common_handle_option): Set it.
9760         (sanitize_cpp_opts): Copy it to cpp_opts.
9761         * c.opt (Wvariadic-macros): New.
9762         * cpplib.h (struct cpp_options): Add warn_variadic_macros.
9763         * cppinit.c (cpp_create_reader): Initialize it.
9764         * cppmacro.c (parse_params): Check it.
9765
9766 2004-02-19  David Daney <ddaney@avtrex.com>
9767
9768         PR preprocessor/14198
9769         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Add
9770         builtin_assert ("machine=mips")
9771
9772 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
9773
9774         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
9775         * system.h (DEFAULT_SHORT_ENUMS): Poison.
9776         * config/cris/cris.h: Remove a comment about
9777         DEFAULT_SHORT_ENUMS.
9778         * config/ip2k/ip2k.h: Likewise.
9779         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
9780
9781 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
9782
9783         * config/ia64/ia64.c (ia64_function_arg): In big-endian mode,
9784         when passing single SFmode quantities in general registers,
9785         put them in the high half.
9786
9787 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
9788
9789         * doc/md.texi (Standard Names): Document additional dependency on
9790         fix pattern.
9791
9792         * optabs.c (ftruncify): Remove.
9793         (expand_fix): Manually inline ftruncify above.
9794         (can_fix_p): Add FIXME note.
9795
9796 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
9797
9798         * config/rs6000/spe.md (spe_fixunssfsi2): Rename to
9799         spe_fixuns_truncsfsi2.
9800
9801         * config/rs6000/rs6000.md (fixunssfsi2): Rename to
9802         fixuns_truncsfsi2.
9803
9804 2004-02-19  Steve Ellcey  <sje@cup.hp.com>
9805
9806         * config/ia64/ia64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
9807         * testsuite/gcc.dg/20040219-1.c: New test.
9808
9809 2004-02-19  Ulrich Weigand  <uweigand@de.ibm.com>
9810
9811         * config/s390/s390.md ("*subdf3_cc", "*subdf3_cconly", "*subsf3_cc",
9812         "*subsf3_cconly"): Subtraction is not commutative.
9813
9814 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
9815
9816         * sdbout.c (preinit_symbols, sdbout_initialized): New statics.
9817         (sdbout_symbol): If called before sdbout_init, queue DECL for
9818         later and return.
9819         (sdbout_init): Set sdbout_initialized true, process decls
9820         queued earlier by sdbout_symbol.
9821         (sdbout_finish): Use size_t for index variable.
9822
9823 2004-02-19  Jeff Law  <law@redhat.com>
9824
9825         * fold-const.c (invert_truthvalue): Do not call invert_tree_comparison
9826         for unordered comparison codes.
9827
9828 2004-02-19  Ian Lance Taylor  <ian@wasabisystems.com>
9829
9830         * reload1.c (reload): Correct comment.
9831         (scan_paradoxical_subregs): Remove #if 0 and old comment.
9832         * doc/extend.texi (Local Reg Vars): Remove obsolete comment that
9833         register variables are not used by reload.
9834
9835 2004-02-19  Hans-Peter Nilsson  <hp@axis.com>
9836
9837         PR target/14209
9838         * config/cris/cris.md ("*andsi_movu", "*andhi_movu"): Tweak
9839         constraints to not match postincrement.  Adjust the predicate to
9840         exclude a volatile memory reference.
9841
9842 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
9843
9844         * config/mcore/mcore.h (ASM_OUTPUT_EXTERNAL): Remove.
9845
9846 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
9847
9848         * hooks.c (hook_void_tree_int): Remove.
9849         (hook_void_constcharptr): Likewise.
9850         (hook_int_void_0): Likewise.
9851         * hooks.h: Remove the prototypes for the above three
9852         functions.
9853         * targhooks.c (hook_bool_machine_mode_true): Remove.
9854         * targhooks.h: Remove the prototype for
9855         hook_bool_machine_mode_true.
9856
9857 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
9858
9859         * emit-rtl.c (subreg_realpart_p): Remove.
9860         (reorder_insns_with_line_notes): Likewise.
9861         (end_full_sequence): Likewise.
9862         * rtl.h: Remove the prototype for the above functions.
9863
9864 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
9865
9866         * config/arc/arc.h, config/arm/arm.h, config/frv/frv.h,
9867         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
9868         config/iq2000/iq2000.h, config/m32r/m32r.h,
9869         config/pdp11/pdp11.h, config/sparc/sparc.h,
9870         config/xtensa/xtensa.h: Remove commented-out or useless
9871         definitions of CASE_VECTOR_PC_RELATIVE.
9872
9873 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
9874
9875         * loop.c (all_sets_invariant_p): Remove.
9876
9877 2004-02-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
9878
9879         PR target/12916
9880         * config/sparc/sparc.h (NPARM_REGS): Delete.
9881         (BASE_RETURN_VALUE_REG): Likewise.
9882         (BASE_OUTGOING_VALUE_REG): Likewise.
9883         (BASE_PASSING_ARG_REG): Likewise.
9884         (BASE_INCOMING_ARG_REG): Likewise.
9885         * config/sparc/sparc.c (sparc_strict_argument_naming): Test
9886         TARGET_ARCH64, not TARGET_V9.
9887         (function_arg_slotno): Dispatch based on the mode class.
9888         Handle vector modes like floating-point modes.
9889         (function_arg_record_value_1): Handle vector types like
9890         floating-point types.
9891         (function_arg_record_value_2): Likewise.
9892         Calculate regno after mode transformation.
9893         (function_arg): Handle vector modes like floating-point modes.
9894         (function_arg_partial_nregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX.
9895         If ARCH64, do not recheck alignment.
9896         (function_arg_pass_by_reference): Reorder the conditions.
9897         (sparc_return_in_memory): Move after function_arg_padding.
9898         Implement calling conventions for vector modes.
9899         (sparc_struct_value_rtx): Move after sparc_return_in_memory.
9900         (function_value): Move scope of 'regbase'.
9901         Implement calling conventions for vector modes.
9902         (sparc_builtin_saveregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX
9903         and BASE_INCOMING_ARG_REG by SPARC_INCOMING_INT_ARG_FIRST.
9904         (sparc_va_arg): Use function_arg_pass_by_reference to test whether
9905         the argument is passed by reference.
9906         (sparc_type_code): Handle vector types.
9907
9908 2004-02-19  Alan Modra  <amodra@bigpond.net.au>
9909
9910         * function.c (assign_parms): When building decl_rtl for
9911         SPLIT_COMPLEX_ARGS, ensure inner modes of concat match outer.
9912
9913 2004-02-19  Olivier Hainque  <hainque@act-europe.fr>
9914
9915         * expr.c (is_aligning_offset): Check if we are aligning the
9916         expressions's address over BIGGEST_ALIGNMENT in bytes, not
9917         in bits.
9918
9919 2003-02-18  Matt Austern  <austern@apple.com>
9920
9921         * gcc.c (LIBGCC_SPEC): If REAL_LIBGCC_SPEC is defined, and
9922         LIBGCC_SPEC isn't, set LIBGCC_SPEC to REAL_LIBGCC_SPEC.
9923         (init_gcc_spec): Don't define or call if REAL_LIBGCC_SPEC is
9924         defined.  Instead use REAL_LIBGCC_SPEC, unmodifed, as the libgcc
9925         spec string.
9926         * doc/tm.texi (REAL_LIBGCC_SPEC): Document.
9927
9928 2004-02-18  Zack Weinberg  <zack@codesourcery.com>
9929
9930         * dwarf2out.c (loclabel_num): Move outside #ifdef
9931         DWARF2_DEBUGGING_INFO and mark with GTY(()).
9932         * config/ia64/ia64.c (struct extern_func_list,extern_func_head):
9933         Mark with GTY(()).
9934         (ia64_hpux_add_extern_decl): Save the decl, not the name string.
9935         Allocate memory with ggc_alloc.  No need to copy anything.
9936         (ia64_hpux_file_end): Update to match.
9937
9938 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
9939
9940         * config/i386/i386.c (override_options): Don't imply 3DNow! for -m64
9941         by default.
9942
9943 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
9944
9945         * config/s390/s390.md ("divmodtidi3"): Use canonical RTL.
9946         ("divmodtisi3"): Likewise.
9947         ("udivmoddi4", "udivmodtidi3"): Likewise.
9948         ("divmodsi4", "divmoddisi3"): Likewise.
9949         ("udivmodsi4", "udivmoddisi3"): Likewise.
9950         ("udivsi3", "umodsi3"): Likewise.
9951
9952 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
9953
9954         * config/s390/s390.c (s390_mainpool_start): Delete the main pool
9955         placeholder insn when chunkifying the pool.
9956
9957 2004-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9958
9959         * pa.h (PIC_OFFSET_TABLE_REGNUM): Define to INVALID_REGNUM when not
9960         generating PIC code.
9961
9962 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
9963
9964         * config/h8300/h8300-protos.h: Add a prototype for
9965         h8300_expand_branch.
9966         * config/h8300/h8300.c (h8300_expand_branch): New.
9967         * config/h8300/h8300.md (ble, bleu, bge, bgeu, blt, bltu, bgt,
9968         bgtu, beq, bne): Call h8300_expand_branch().
9969
9970 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
9971
9972         * config/h8300/h8300-protos.h: Add prototypes for
9973         h8300_hard_regno_nregs and h8300_hard_regno_mode_ok.
9974         * config/h8300/h8300.c (h8300_hard_regno_nregs): New.
9975         (h8300_hard_regno_mode_ok): Likewise.
9976         * config/h8300/h8300.h (HARD_REGNO_NREGS): Call
9977         h8300_hard_regno_nregs().
9978         (HARD_REGNO_MODE_OK): Call h8300_hard_regno_mode_ok().
9979
9980 2004-02-18  Per Bothner  <per@bothner.com>
9981
9982         * cpphash.h (struct cpp_buffer):  Restore return_at_eof field.  This
9983         partly reverts my 2003-10-01 change, because we're back to logically
9984         including <command line> inside the main line.
9985         * cpplex.c (_cpp_get_fresh_line):  Check return_at_eof field.
9986         * cppmacro.c (cpp_scan_nooutput):  Set return_at_eof of current buffer.
9987         Fixes PR preprocessor/14103.
9988
9989         * cppfiles.c (_cpp_stack_include):  When appropriate decrement
9990         line_table's highest_location, fixing LAST_SOURCE_LINE_LOCATION.
9991         (cpp_push_include):  Don't need to increment pfile's line field.
9992         * line-map.h (LAST_SOURCE_LINE_LOCATION):  Only decrement by 1.
9993
9994         * c-ppoutput.c (print struct):  New first_time field.
9995         (init_pp_output):  Set print.first_time.
9996         (pp_file_change):  Use print.first_time, rather than MAIN_FILE_P,
9997         which is set also for (say) <command line>.  Clear print.first_time.
9998
9999         * cppfiles.c (struct _cpp_file):  Comment and type for pch field
10000         does not match the code, so fix both.
10001         (should_stack_file):  Inline include_pch_p function.
10002         (include_pch_p):  Remove pointless function.
10003
10004         * cpphash.h (struct cpp_buffer):  Remove unused search_cached field.
10005
10006 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
10007
10008         * config/h8300/h8300.md (four define_peephole2's): Use
10009         h8300_regs_ok_for_stm().
10010
10011 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
10012
10013         * config/h8300/h8300-protos.h: Update the prototype for
10014         expand_a_rotate().
10015         * config/h8300/h8300.c (expand_a_rotate): Remove the first
10016         argument.
10017         * config/h8300/h8300.md: Update all callers.
10018
10019 2004-02-18  Jan Hubicka  <jh@suse.cz>
10020
10021         * simplify-rtx.c (simplify_unary_operation): Deal with logicals on
10022         floats.
10023         (simplify_binary_operation): Deal with logicals on floats.
10024
10025         * i386.md (SSE fabs splitters): Emit new patterns.
10026         (SSE cmov splitters): Likewise.
10027         (sse_andv4sf3, sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3
10028         (sse_andv2df3, sse_nandv2df3, sse_iorv2df3, sse_xorv2df3): Do not use
10029         subregs.
10030         (sse_andsf3, sse_nandsf3, sse_xorsf3): Kill.
10031         (sse_anddf3, sse_nanddf3, sse_xordf3): Kill.
10032
10033 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
10034
10035         * config/h8300/h8300.c (expand_a_rotate): Don't generate insns
10036         by hand.
10037         (output_a_rotate): Tweak a comment.
10038         * config/h8300/h8300.md (*rotlqi3_1): Change to rotlqi3_1.
10039         (*rotlhi3_1): Change to rotlhi3_1.
10040         (*rotlsi3_1): Change to rotlsi3_1.
10041
10042 2004-02-18  Richard Earnshaw  <rearnsha@arm.com>
10043
10044         PR target/13866
10045         * arm.c (load_multiple_operation): Don't insist that the source reg
10046         of a post-increment component is the same as the destination.
10047         (store_multiple_operation): Likewise.
10048
10049 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
10050
10051         * config/h8300/h8300.md: Move movsf patterns into one section
10052         of the file.
10053
10054 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
10055
10056         * cfgloop.h, cfgloopanal.c, cpplex.c, except.h, loop-init.c,
10057         loop-unroll.c, scan-decls.c, scan.h, stor-layout.c,
10058         xcoffout.c, xcoffout.h, config/arm/mmintrin.h,
10059         config/mips/linux64.h, config/pa/pa-64.h,
10060         config/rs6000/aix51.h, config/rs6000/aix52.h,
10061         config/rs6000/spe.md, config/sparc/linux.h,
10062         config/sparc/linux64.h: Update copyright.
10063
10064 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
10065
10066         * config/h8300/h8300.md: Move push patterns into one
10067         section of the file.
10068
10069 2004-02-18  Mark Mitchell <mark@codesourcery.com>
10070
10071         PR c++/11326
10072         * config/ia64/ia64.c (ia64_struct_value_rtx): Cope with NULL
10073         fntype.
10074
10075 2004-02-18  Paul Brook  <paul@codesourcery.com>
10076
10077         * rtlanal.c (rtx_varies_p): Return 0 for NULL_RTX
10078
10079 2004-02-18  Paul Brook  <paul@codesourcery.com>
10080
10081         PR debug/12934
10082         * dwarf2out.c (loc_descriptor_from_tree): Handle
10083         EXPR_WITH_FILE_LOCATION.
10084
10085 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
10086
10087         * config/i386/i386.md (zero_extendqidi2, zero_extendqidi2,
10088         testdi_1_rex64, anddi_2, xordi_1_rex64, xordi_2_rex64): Remove
10089         trailing whitespace from instructions.
10090
10091 2004-02-17  Geoffrey Keating  <geoffk@apple.com>
10092
10093         * configure.ac: When generating auto-build.h, pass
10094         --enable-languages to the sub-configure.
10095         Put quotes around ${program_transform_name} when generating
10096         name of as, ld, nm, objdump.
10097         * configure: Regenerate.
10098
10099 2004-02-17  Matt Kraai  <kraai@alumni.cmu.edu>
10100
10101         * Makefile.in (s-check, s-config, s-conditions, s-flags)
10102         (s-codes, s-constants, s-emit, s-recog, s-opinit, s-extract)
10103         (s-peep, s-attr, s-attrtab, s-output, s-genrtl, s-modes)
10104         (s-preds, s-iov): Do not depend on move-if-change.
10105
10106 2004-02-17  James E Wilson  <wilson@specifixinc.com>
10107
10108         * caller-save.c (insert_restore): Pass mem through copy_rtx.
10109         (insert_save): Likewise.
10110
10111 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10112
10113         * config/h8300/h8300.c (h8300_emit_stack_adjustment): Fix a
10114         warning.
10115
10116 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10117
10118         * config/h8300/h8300.md (*one_complsi2_h8300): Change to
10119         *one_cmplsi2_h8300.
10120         (*one_complsi2_h8300hs): Change to *one_cmplsi2_h8300hs.
10121
10122 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10123
10124         * config/h8300/h8300-protos.h: Update the prototype of
10125         fix_bit_operand().
10126         * config/h8300/h8300.c (fix_bit_operand): Remove the second
10127         argument "what".
10128         * config/h8300/h8300.md: Update all callers.
10129
10130 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10131
10132         * config/h8300/h8300.c (fix_bit_operand): Change the name of
10133         the last argument to "code" from "type".
10134
10135 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10136
10137         * config/h8300/h8300.c: Remove an extern declaration of
10138         rtx_equal_function_value_matters.
10139
10140 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10141
10142         * config/h8300/h8300.c (fix_bit_operand): Don't generate insns
10143         by hand.
10144         * config/h8300/h8300.md (*andqi3_1): Change to andqi3_1.
10145         (*iorqi3_1): Change to iorqi3_1.
10146         (*xorqi3_1): Change to xorqi3_1.
10147
10148 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10149
10150         * c-common.c, cfghooks.c, rtlanal.c, varasm.c: Fix comment
10151         typos.
10152
10153 2004-02-17  Jan Hubicka  <jh@suse.cz>
10154
10155         * i386.c (x86_prologue_using_move, x86_epilogue_using_move): Disable for P4.
10156
10157 2004-02-18  Alan Modra  <amodra@bigpond.net.au>
10158
10159         PR optimization/14119
10160         * combine.c (try_combine): When attemting to fix unrecognized insns,
10161         don't delete SETs marked with REG_EH_REGION notes.
10162
10163 2004-02-17  Ulrich Weigand  <uweigand@de.ibm.com>
10164
10165         * combine.c (simplify_if_then_else): Do not replace
10166         (if_then_else (ne reg 0) (0) (const_int)) by (reg) if the
10167         modes differ.
10168
10169 2004-02017  Steven Bosscher  <stevenb@suse.de>
10170
10171         * (c-decl.c, c-semantics.c, calls.c, cgraph.c, cgraphunit.c,
10172         function.c, integrate.c, print-tree.c, toplev.c, tree-optimize.c,
10173         tree.h): Replace DECL_SAVED_INSNS with DECL_STRUCT_FUNCTION.
10174         * ada/utils.c: Likewise.
10175         * cp/decl.c: Likewise.
10176         * f/com.c: Likewise.
10177         * java/class.c: Likewise.
10178
10179 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10180
10181         * config/h8300/h8300.md: Fix comment typos.
10182
10183 2004-02-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10184
10185         * config/mips/t-iris6gld: Renamed to ...
10186         * config/mips/t-irix-gld: ... this.
10187         * config.gcc (mips-sgi-irix6*): Reflect this
10188         (mips-sgi-irix5*): Use it with GNU ld.
10189
10190         * config/mips/irix6-crti.asm, config/mips/irix6-crtn.asm: Renamed
10191         to ...
10192         * config/mips/irix-crti.asm, config/mips/irix-crtn.asm: ... this.
10193         * config/mips/t-irix-gld: Reflect this.
10194         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
10195
10196         * config/mips/iris5gld.h: New file.
10197         * config.gcc (mips-sgi-irix5*): Use it with GNU ld.
10198         Only use collect2 without gas.
10199
10200         * config/mips/iris6.h (IRIX6_STARTFILE_SPEC, IRIX6_ENDFILE_SPEC):
10201         Renamed to IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
10202         (STARTFILE_SPEC, ENDFILE_SPEC, SUBTARGET_EXTRA_SPECS): Reflect this.
10203         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
10204
10205         * config/mips/iris6.h (SUBTARGET_EXTRA_SPECS): Moved ...
10206         * config/mips/iris5.h: ... here.
10207
10208         * config/mips/iris5.h (STARTFILE_SPEC, ENDFILE_SPEC): Renamed to
10209         IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
10210         (STARTFILE_SPEC, ENDFILE_SPEC): Define.
10211
10212         * config/mips/iris5gas.h (STARTFILE_SPEC, ENDFILE_SPEC): Simplify
10213         using irix_startfile_spec, irix_endfile_spec.
10214
10215 2004-02-16  Gunther Nikl  <gni@gecko.de>
10216
10217         * config/m68k/m68k.c: Remove obsolete support for HPUX_ASM.
10218
10219 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10220
10221         * config/h8300/h8300.c (h8300_expand_prologue): Don't generate
10222         insns by hand.
10223
10224 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10225
10226         * cfghooks.c (split_edge): Speed up updating of dominators.
10227
10228 2004-02-17  Mark Mitchell  <mark@codesourcery.com>
10229
10230         PR c++/11326
10231         * c-common.c (flag_abi_version): Remove.
10232         * c-common.h (flag_abi_version): Likewise.
10233         * c-opts.c (c_common_handle_option): Remove OPT_fabi_version case.
10234         * c.opt (fabi-version): Remove.
10235         * calls.c (expand_call): Always pass a function type to
10236         struct_value_rtx.  Use convert_memory_address.
10237         * common.opt (fabi-version): Add it.
10238         * flags.h (flag_abi_version): Likewise.
10239         (abi_version_at_least): New macro.
10240         * opts.c (common_handle_option): Add OPT_fabi_version.
10241         * toplev.c (flag_abi_version): Define it.
10242         * config/ia64/ia64.c (ia64_struct_retval_addr_is_first_parm_p):
10243         New function.
10244         (ia64_output_mi_thunk): Use it.
10245         (ia64_struct_value_rtx): Likewise.
10246
10247 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10248
10249         * config/h8300/h8300.c (h8300_emit_stack_adjustment):
10250         Don't generate insns by hand.
10251
10252 2004-02-17  Andrew Pinski  <pinskia@physics.uc.edu>
10253
10254         PR c++/14178
10255         * doc/invoke.texi (fabi-version): The default is 2 now.
10256
10257 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10258
10259         * loop-iv.c: New file.
10260         * Makefile.in (loop-iv.o): New.
10261         * basic_block.h (FOR_BB_INSNS, FOR_BB_INSNS_REVERSE): New macros.
10262         * cfgloop.c (fill_sons_in_loop, get_loop_body_in_dom_order,
10263         num_loop_branches): New functions.
10264         * cfgloop.h (get_loop_body_in_dom_order, num_loop_branches,
10265         iv_analysis_loop_init, iv_get_reaching_def, iv_analyse, get_iv_value,
10266         find_simple_exit, iv_number_of_iterations, iv_analysis_done,
10267         get_simple_loop_desc, free_simple_loop_desc): Declare.
10268         (simple_loop_desc): New inline function.
10269         (struct rtx_iv, struct niter_desc): New.
10270         * cfgloopmanip.c (loopify): Specify semantics more precisely.
10271         * expr.c (force_operand): Handle subregs of expressions created by
10272         loop unroller.
10273         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Move
10274         parts of the initialization to toplev.c
10275         * loop-unroll.c (loop_exit_at_end_p): New.
10276         (unroll_and_peel_loops): Call iv_analysis_done.
10277         (decide_peel_once_rolling, decide_peel_completely,
10278         decide_unroll_stupid, decide_unroll_constant_iterations,
10279         decide_unroll_runtime_iterations, decide_peel_simple,
10280         peel_loop_simple, unroll_loop_stupid, unroll_loop_constant_iterations,
10281         unroll_loop_runtime_iterations): Use new simple loop analysis.
10282         * loop-unswitch.c (compare_and_jump_seq): New.
10283         (may_unswitch_on_p): Renamed to ...
10284         (may_unswitch_on): Use new iv analysis.
10285         (reversed_condition): Export.
10286         (unswitch_single_loop, unswitch_loop): Use new iv analysis.
10287         * predict.c (estimate_probability): Use new simple loop analysis.
10288         * rtl.h (get_mode_bounds, reversed_condition,compare_and_jump_seq,
10289         canon_condition, simplify_using_condition): Declare.
10290         * stor-layout.c (get_mode_bounds): New.
10291         * toplev.c (rest_of_handle_loop2): Some parts of
10292         initialization/finalization moved here from loop-init.c.
10293
10294 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10295
10296         * config/h8300/h8300.h (FIXED_REGISTERS): Add the soft frame
10297         pointer.
10298         (CALL_USED_REGISTERS): Likewise.
10299         (REG_ALLOC_ORDER): Likewise.
10300         (REG_CLASS) <GENERAL_REGS>: Likewise.
10301
10302 2004-02-16  Geoffrey Keating  <geoffk@apple.com>
10303
10304         * doc/md.texi (Insn Canonicalizations): Document left-chaining
10305         in associative operators.
10306         * rtlanal.c (commutative_operand_precedence): Create some new
10307         variables.  Prefer a commutative operand on the left, then
10308         binary expressions, then NEG and NOT.
10309
10310 2004-02-16  Matthias Klose  <doko@debian.org>
10311
10312         * config/t-slibgcc-elf-ver: Define SHLIB_NAME and SHLIB_SONAME
10313         in terms of SHLIB_SOVERSION.
10314         * config/m68k/t-slibgcc-elf-ver: New file.
10315         * config/pa/t-slibgcc-elf-ver: New file.
10316         * config.gcc (m68k-linux, parisc-linux): Use them when not
10317         sjlj exceptions are not configured.
10318
10319 2004-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
10320
10321         * config/sparc/sparc.c (get_pc_symbol_name): Mark with GTY(()).
10322
10323 2004-02-16  Zack Weinberg  <zack@codesourcery.com>
10324
10325         * sdbout.c (sdb_debug_hooks): Correct the type_decl entry.
10326
10327 2004-02-16  Joseph S. Myers  <jsm@polyomino.org.uk>
10328
10329         * doc/sourcebuild.texi: Mention backends.html.
10330
10331 2004-02-16  Kazu Hirata  <kazu@cs.umass.edu>
10332
10333         * c-decl.c, c-ppoutput.c, cpphash.h, cpplib.h, dbxout.c,
10334         line-map.c, line-map.h, var-tracking.c: Fix comment
10335         formatting.
10336
10337 2004-02-16  Richard Henderson  <rth@redhat.com>
10338
10339         * cse.c (cse_insn): Don't lose REG_NON_LOCAL_GOTO note.
10340
10341         * fold-const.c (operand_equal_p): Fix VECTOR_CST comparison.
10342
10343 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
10344
10345         * config/h8300/h8300.md: Remove unnecessary parallels from
10346         all define_insn and define_split patterns.
10347
10348 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
10349
10350         * config/h8300/h8300.md: Remove explicit (set_attr "cc"
10351         "clobber").
10352
10353 2004-02-15  Bernardo Innocenti  <bernie@develer.com>
10354
10355         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Restore support for
10356         '%#'.
10357
10358 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
10359
10360         * config/ia64/ia64.c, config/mips/mips.c,
10361         config/mmix/mmix-modes.def: Fix comment typos.
10362
10363 2004-02-15  Roger Sayle  <roger@eyesopen.com>
10364
10365         * c-common.h (GET_DIRECTIVE_LINE): Remove unused macro.
10366         (get_directive_line): Remove unused function prototype.
10367
10368 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
10369
10370         * tree-inline.c (copy_body_r): Do not replace ret_label.
10371
10372 2004-02-14  Jan Hubicka  <jh@suse.cz>
10373
10374         * i386.c (x86_four_jump_limit): New variable.
10375         (k8_avoid_jump_misspredicts): Rename to ...
10376         (ix86_avoid_jump_misspredicts): .. this one.
10377         (ix86_pad_returns): Break out from ...
10378         (ix86_reorg): ... this one; do ix86_avoid_jump_misspredicts when asked
10379         to.
10380         * i386.h (TARGET_FOUR_JUMP_LIMIT): New macro.
10381
10382 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
10383
10384         * emit-rtl.c (set_decl_incoming_rtl): Check whether the 0th element of
10385         PARALLEL is NULL.
10386
10387 2004-02-14  Per Bothner  <per@bothner.com>
10388
10389         * fix-header.c (line_table):  Move local variable in main to global.
10390         * scan.h (line_table):  Use it.
10391         * scan-decls.c (scan_decls):  Need to call linemap_lookup on token's
10392         line (recently renamed to src_loc) before calling recognized_function.
10393
10394 2004-02-14  Matt Kraai  <kraai@alumni.cmu.edu>
10395
10396         * Makefile.in: Fix comment typos.
10397
10398 2004-02-14  Olivier Hainque  <hainque@act-europe.fr>
10399
10400         * loop.c (check_dbra_loop): Use gen_int_mode instead of GEN_INT
10401         for start_value when it is directly moved into reg, and factorize
10402         the retrieval of GET_MODE (reg).
10403
10404 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
10405
10406         * config/mips/mips-protos.h (mips_load_got_page): Delete.
10407         (mips_load_got_global): Delete.
10408         (mips_gotoff_page): Declare.
10409         * config/mips/mips.md (UNSPEC_LOAD_GOT): New constant.
10410         (*xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i): Build an
10411         UNSPEC_LOAD_GOT pattern rather than a MEM.
10412         (*load_got[sd]i): New patterns.
10413         * config/mips/mips.c (mips_got_alias_set, mips_load_got): Delete.
10414         (mips_load_got_page, mips_load_got_global): Delete.
10415         (mips_gotoff_page): New function.
10416         (override_options): Don't initialize mips_got_alias_set.
10417
10418 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
10419
10420         * config/mips/mips.h (MASK_DEBUG_[ABEFI], TARGET_DEBUG_[ABEFI]_MODE)
10421         (TARGET_MIPS4100, TARGET_MIPS4300, TARGET_MIPS4KC, TARGET_MIPS5KC)
10422         (TARGET_SB1, TUNE_SB1, TUNE_SR71K, BIGGEST_MAX_ARGS_IN_REGISTERS)
10423         (GO_PRINTF, GO_PRINTF2, GO_DEBUG_RTX, DFMODE_NAN, SFMODE_NAN): Delete.
10424         (TARGET_SWITCHES): Remove MASK_DEBUG_[ABEFI].
10425         * config/mips/mips.c: Fix some overly-long lines.
10426         (SINGLE_WORD_MODE_P, PIC_OFFSET_TABLE_MASK): Delete.
10427         (init_cumulative_args): Remove TARGET_DEBUG_E_MODE handling.
10428
10429 2004-02-13  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10430
10431         * configure.ac: Search for as, ld below libexec/gcc.
10432         * configure: Regenerate.
10433
10434 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
10435
10436         * config/arm/mmintrin.h (_mm_setwcx): Reverse arguments in call to
10437         __builtin_arm_setwcx ().
10438         * config/arm/arm.c (arm_expand_builtin): Generate operands
10439         correctly and reverse their order in call to gen_iwmmxt_tmcr ().
10440
10441 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
10442
10443         * config/arm/arm.c (bdesc_2arg): Correct builtin names "wmulsh"
10444         and "wmuluh" to "wmulsm" and "wmulum", respectively.
10445         * config/arm/arm.h (enum arm_builtins): Rename enumerators to
10446         ARM_BUILTIN_WMULSM and ARM_BUILTIN_WMULUM.
10447         * config/arm/mmintrin.h (_mm_mulhi_pi16): Update intrinsic call.
10448         (_mm_mulhi_pu16): Likewise.
10449
10450 2004-02-13  Zack Weinberg  <zack@codesourcery.com>
10451
10452         * xcoffout.c (xcoff_assign_fundamental_type_number): Check
10453         DECL_NAME != 0 before dereferencing.
10454
10455 2004-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
10456
10457         * config/s390/s390-protos.h (s390_output_symbolic_const): Remove.
10458         (s390_output_addr_const_extra): Declare.
10459         (s390_output_pool_entry): Remove FILE * argument.
10460         * config/s390/s390.c (s390_output_symbolic_const): Remove.
10461         (s390_output_addr_const_extra): New function.
10462         (print_operand_address): Call output_addr_const instead of
10463         s390_output_symbolic_const.
10464         (print_operand): Likewise.
10465         (s390_output_pool_entry): Use assemble_integer for symbolic constants.
10466         Remove FILE * argument.
10467         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Define.
10468         * config/s390/s390.md ("*pool_entry"): Adapt s390_output_pool_entry
10469         call.
10470
10471 2004-02-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10472
10473         * cfgloopanal.c (mark_irreducible_loops): Rewriten.
10474         (struct edge, struct vertex, struct graph): New.
10475         (dump_graph, new_graph, add_edge, dfs, check_irred, for_each_edge,
10476         free_graph): New functions.
10477
10478 2004-02-12  Chris Demetriou  <cgd@broadcom.com>
10479
10480         * config/mips/mips.md (casesi_internal, casesi_internal_di):
10481         Use ".set macro" to avoid warnings about multi-instruction
10482         macros, since they're intentional.
10483
10484 2004-02-12  Geoffrey Keating  <geoffk@apple.com>
10485
10486         * config/darwin.h: Add include guards.  Remove old, now incorrect,
10487         comment about STANDARD_EXEC_PREFIX.
10488
10489         * Makefile.in (install-man): Use $(CPP_INSTALL_NAME) and
10490         $(GCOV_INSTALL_NAME) to install manpages.  Remove generic rule
10491         for installing .1 manpages.  Add rules for installing cpp
10492         and gcov manpages under their installed names.
10493
10494 2004-02-12  Alexandre Oliva  <aoliva@redhat.com>
10495
10496         * configure.ac (gcc_cv_ld): Don't set to LD if target is not
10497         host, but try LD_FOR_TARGET first.
10498         * configure: Rebuilt.
10499
10500 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
10501
10502         * dbxout.c: Move declaration of dbxout_type_decl outside
10503         #ifdef DBX_DEBUGGING_INFO.
10504         * c-parse.in: Don't give the asmdef production a type.
10505
10506 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
10507
10508         * debug.h (struct gcc_debug_hooks): Add type_decl field.
10509         (debug_nothing_tree_int): Prototype.
10510         (dwarf_debug_hooks): Delete, unused.
10511         * debug.c (do_nothing_debug_hooks): Update.
10512         (debug_nothing_tree_int): New function.
10513         * langhooks.h (struct lang_hooks_for_decls):
10514         Remove builtin_type_decls field.
10515         * langhooks-def.h (LANG_HOOKS_BUILTIN_TYPE_DECLS): Delete.
10516         (LANG_HOOKS_DECLS): Update.
10517         * toplev.c (rest_of_decl_compilation, rest_of_type_compilation):
10518         Use debug_hooks->type_decl.
10519         * dbxout.c (preinit_symbols): New static.
10520         (dbx_debug_hooks, xcoff_debug_hooks): Update.
10521         (dbxout_init): Don't call DBX_OUTPUT_STANDARD_TYPES or
10522         lang_hooks.decls.builtin_type_decls.  Do scan preinit_symbols
10523         for symbols to output.
10524         (dbxout_type_decl): New function.
10525         (dbxout_symbol): If called before dbxout_init has run, queue
10526         the symbol for later.  Apply DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER
10527         to TYPE_DECLs before emitting them.
10528         * xcoffout.c (assign_type_number): Delete.
10529         (xcoff_type_numbers): New static table.
10530         (xcoff_assign_fundamental_type_number): New function.
10531         * xcoffout.h: Define DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER, not
10532         DBX_OUTPUT_STANDARD_TYPES.  Remove unnecessary #ifdefs.
10533         * sdbout.c: Include varray.h.
10534         (deferred_global_decls): New static.
10535         (sdb_debug_hooks): Update.
10536         (sdbout_global_decl): If we can't emit something right now,
10537         remember it in deferred_global_decls.
10538         (sdbout_finish): Just scan deferred_global_decls; don't call getdecls.
10539         (sdbout_init): Initialize deferred_global_decls.
10540         * Makefile.in: Update dependencies of sdbout.o.
10541         * dwarf2out.c (dwarf2out_type_decl): New function.
10542         (dwarf2_debug_hooks): Update.
10543         * vmsdbgout.c (vmsdbg_debug_hooks): Update.
10544         * c-decl.c (getdecls): Just return 0.
10545         (check_for_loop_decls): Don't use getdecls.
10546         (record_builtin_type): Call debug_hooks->type_decl on the TYPE_DECL.
10547         * c-objc-common.c (c_objc_common_finish_file): Don't use getdecls.
10548
10549 2004-02-12  Ulrich Weigand  <uweigand@de.ibm.com>
10550
10551         * config/s390/s390.c (s390_sched_reorder2): Remove.
10552         (TARGET_SCHED_REORDER2): Do not redefine.
10553
10554 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
10555
10556         * c-parse.in (maybe_type_qual): Delete.
10557         (maybe_volatile, simple_asm_expr, asmdef, asm_stmt)
10558         (asm_argument): New grammar rules.
10559         (extdef_1): Use asmdef.
10560         (maybeasm): Move down with other asm rules; use simple_asm_expr.
10561         (xexpr): Move up with other expression rules.
10562         (stmt): Use asm_stmt.
10563
10564         * c-typeck.c (build_asm_expr): New function - body mostly
10565         pulled from build_asm_stmt.
10566         (build_asm_stmt): Just handle tacking on the volatile qualifier.
10567         * c-tree.h (build_asm_expr, build_asm_stmt): Update prototypes.
10568
10569 2004-02-12  Richard Sandiford  <rsandifo@redhat.com>
10570
10571         PR bootstrap/13617
10572         * config/mips/mips-protos.h (mips_output_aligned_decl_common): Declare.
10573         (mips_declare_object): Make variadic.
10574         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Use
10575         mips_output_aligned_decl_common.
10576         * config/mips/mips.c (mips_output_aligned_decl_common): New function.
10577         (mips_declare_object): Make variadic.
10578
10579 2004-02-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10580
10581         * function.c (update_epilogue_consts): Teach about binary operations.
10582
10583         * emit-rtl.c (set_mem_attributes_minus_bitpos): Don't kill
10584         previous MEM_VOLATILE in REF.
10585         * function.c (fixup_var_refs): Save volatile_ok and set to 1.
10586         * expr.c (emit_block_move_via_movstr): Save and restore volatile_ok.
10587
10588 2004-02-12  Gunther Nikl  <gni@gecko.de>
10589
10590         * config.gcc: Restore support for m68k-openbsd.
10591
10592 2004-02-12  Jan Hubicka  <jh@suse.cz>
10593
10594         * tree-optimize.c (tree_rest_of_compilation): Do not release
10595         DECL_ARGUMENTS.
10596
10597 2004-02-11  Matt Kraai  <kraai@alumni.cmu.edu>
10598
10599         * doc/install.texi: Fix the spelling of "explicitly".
10600
10601 2004-02-11  Eric Christopher  <echristo@redhat.com>
10602
10603         * cppcharset.c (_cpp_interpret_string_notranslate): Rename and
10604         duplicate argument structure of cpp_interpret_string.
10605         * cpphash.h: Move prototype...
10606         * cpplib.h: Here.
10607         * cpplib.c: Fix calls to match new function signature.
10608
10609 2004-02-11  Joseph S. Myers  <jsm@polyomino.org.uk>
10610
10611         PR c/456
10612         * cppexp.c (num_binary_op): Don't allow comma operators in #if
10613         constant expressions at all outside C99 mode if pedantic.
10614
10615 2004-02-11  Uros Bizjak  <uros@kss-loka.si>
10616
10617         * optabs.h (enum optab_index): Add new OTI_log10 and OTI_log2.
10618         (log10_optab, log2_optab): Define corresponding macros.
10619         * optabs.c (init_optabs): Initialize log10_optab and log2_optab.
10620         * genopinit.c (optabs): Implement log10_optab and log2_optab
10621         using log10?f2 and log2?f2 patterns.
10622         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG10{,F,L}
10623         using log10_optab, and BUILT_IN_LOG2{,F,L} using log2_optab.
10624         (expand_builtin): Expand BUILT_IN_LOG10{,F,L} and BUILT_IN_LOG2{,F,L}
10625         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
10626
10627         * config/i386/i386.md (log10sf2, log10df2, log10xf2, log2sf2,
10628         log2df2, log2xf2): New patterns to implement log10, log10f, log10l,
10629         log2, log2f and log2l built-ins as inline x87 intrinsics.
10630
10631 2004-02-11  Richard Henderson  <rth@redhat.com>
10632
10633         PR target/1532
10634         * flow.c (insn_dead_p): A clobber of a dead hard register is a
10635         dead insn after reload.
10636
10637 2004-02-11  Ulrich Weigand  <uweigand@de.ibm.com>
10638
10639         * tree.h (frame_base_decl): Add GTY marker.
10640         * var-tracking.c (frame_base_decl): Likewise.
10641
10642 2004-02-11  Daniel Berlin  <dberlin@dberlin.org>
10643
10644         * dwarf2out.c (output_loc_list): Remove no longer necessary, and now
10645         incorrect, hunk.
10646         (add_location_or_const_value_attribute): Use text_section_label,
10647         not TEXT_SECTION_NAME.
10648
10649 2004-02-11  Per Bothner  <per@bothner.com>
10650
10651         Represent column numbers using line-map's source_location.
10652         The "next available source_location" is now managed internally by
10653         line-maps.c rather than by clients.
10654         * line-map.h (struct line_map):  New field column_bits.
10655         <from_line>:  Rename field to start_location.
10656         (struct line_maps):  New fields highest_location and max_column_hint.
10657         (linemap_check_files_exited):  New declaration.
10658         (linemap_line_start):  New declaration.
10659         (linemap_add):  Remove from_line parameter; use highest_location field.
10660         (SOURCE_LINE, LAST_SOURCE_LINE):  Modify to use column_bits.
10661         (SOURCE_COLUMN, LAST_SOURCE_LINE_LOCATION):  New macros.
10662         (CURRENT_LINE_MAP):  Remove macro.
10663         (linemap_position_for_column):  New inline function.
10664         * line-map.c (linemap_init):  Clear new fields.
10665         (linemap_check_files_exited):  New function, extracted from ...
10666         (linemap_free):  Use linemap_check_files_exited.
10667         (linemap_add):  Remove from_line parameter.  Various updates.
10668         (linemap_line_start):  New function.
10669         (linemap_lookeup):  Update for new field names.
10670         * cpphash.h (struct cpp_reader) <map>:  Field removed.  Because
10671         linemap_position_for_column may unpredictably change the current map,
10672         it is cleaner and simpler for us to not cache it in cpp_reader.
10673         (struct cpp_buffer):  New sysp field.
10674         Changed warned_cplusplus_comments and from_stage3 to bitfields.
10675         * cppinit.c (cpp_read_min_file):  pfile->map no longer exists.
10676         * cpplib.c (do_line, do_linemarker, _cpp_do_file_change):  Get
10677         current map using linemap_lookup.
10678         (do_linemarker):  Also set buffer's sysp field.
10679         (destringize_and_run):  No longer need to decrement current line.
10680         * cppfiles.c (_cpp_stack_file):  Set sysp from and in buffer.
10681         (search_path_head, open_file_failed):  Use buffer's sysp.
10682         (cpp_make_system_header):  Get current map using linemap_lookup.
10683         Also set buffer's sysp flag.
10684         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use linemap_lookup.
10685         * cpphash.h (CPP_INCREMENT_LINE):  New macro.
10686         (struct cpp_buffer):  Moved fields saved_cur, saved_rlimit to ...
10687         (struct cpp_reader):  ... and adding saved_line_base field.
10688         * cpptrad.c (_cpp_overlay_buffer, _cpp_remove_overlay):
10689         Update accordingly.  Don't adjust line.
10690         (_cpp_scan_out_logical_line):  Use CPP_INCREMENT_LINE.
10691         * cpphash.c (CPP_IN_SYSTEM_HEADER):  Replaced macro by ...
10692         (cpp_in_system_header):  ... new inline function, using buffer's sysp.
10693         * cpperror.c (_cpp_begin_message):  Update to use cpp_in_system_header.
10694         * cpplex.c (_cpp_lex_direct):  Likewise.
10695         * cppmacro.c (_cpp_builtin_macro_text):  Likewise.
10696         * cppmacro.c (_cpp_create_definition):  Use buffer's sysp field.
10697         * cpplib.h (struct cpp_token):  Rename line field to src_loc.
10698         Remove col field as it is now subsumed by src_loc.
10699         * cpperror.c:  Update various field, parameter, and macro names.
10700         (print_location):  If col==0, try SOURCE_COLUMN of line.
10701         (cpp_error):  Use cur_token's src_loc field, rather than line+col.
10702         * cpplib.c (do_diagnostic):  Token's src_loc fields replaces line+col.
10703         * cpplex.c (_cpp_process_line_notes, _cpp_lex_direct,
10704         _cpp_skip_block_comment):  Use CPP_INCREMENT_LINE.
10705         (_cpp_temp_token):  Replace cpp_token's line+col fields by src_loc.
10706         (_cpp_get_fresh_line):  Don't need to adjust line for missing newline.
10707         (_cpp_lex_direct):  Use linemap_position_for_column.
10708         * c-ppoutput.c (maybe_print_line, print_line):  Don't take map
10709         parameter.  Instead get it from the line_table global.  Adjust callers.
10710         (print):  Remove map field.  Replace line field to src_line.
10711         (init_pp_output, account_for_newlines, maybe_print_line):  Adjust.
10712         (cb_line_change):  Use SOURCE_COLUMN.  Minor optimizations.
10713         (pp_file_change):  Use MAIN_FILE_P since we cannot checked print.map.
10714         Use LAST_SOURCE_LINE_LOCATION to "catch up" after #include.
10715         * cpptrad.c (copy_comment):  Rename variable.
10716         * c-lex.c (map):  Remove static variable, for same reason we removed
10717         cpp_reader's map field.
10718         (cb_line_change, cb_def_pragma, cb_define, cb_undef):  Hence we need
10719         to call linemap_lookup.
10720         (cb_line_change):  Token's line field replaced by src_loc.
10721         (fe_file_change):  Use MAINFILE_P and LAST_SOURCE_LINE macros.
10722         Don't save new_map.
10723
10724         * cpphash.h, cpperror.c, cpplib.h:  Some renames of fileline to
10725         source_location.
10726
10727 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
10728
10729         * config/rs6000/altivec.md (*movv4si_internal): At least one
10730         operand must be register_operand.
10731         (*movv8hi_internal1): Likewise.
10732         (*movv16qi_internal1): Likewise.
10733         (*movv4sf_internal1): Likewise.
10734
10735 2004-02-10  Aldy Hernandez  <aldyh@redhat.com>
10736
10737         * config/rs6000/spe.md ("*movv2si_internal"): Check for register
10738         operand.
10739         (movv4hi_internal): Same.
10740         (movv2sf_internal): Same.
10741         (movv1di_internal): Same.
10742
10743 2004-02-11  Thiemo Seufer  <seufer@csv.ica.uni-stuttgart.de>
10744
10745         * config/mips/mips.h (TARGET_OLDABI): Define. Use TARGET_NEWABI and
10746         TARGET_OLDABI consistently.
10747         * config/mips/mips.c (function_arg,mips_setup_incoming_varargs,
10748         mips_va_arg,override_options,compute_frame_size,
10749         mips_initial_elimination_offset,mips16_fp_args,build_mips16_call_stub
10750         ,mips_return_in_memory,mips_strict_argument_naming): Use TARGET_NEWABI
10751         and TARGET_OLDABI consistently.
10752         * config/mips/mips.md (exception_receiver): Likewise.
10753         * config/mips/linux64.h: Likewise.
10754
10755 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
10756
10757         * gcc/config/rs6000/rs6000.c (rs6000_override_options)
10758         Set AltiVec ABI and vrsave as default for ppc64 linux.
10759         (init_cumulative_args): Post error, if try to return
10760         value in AltiVec register without enable AltiVec.
10761         (function_arg_advance): Ditto for passing arguments.
10762
10763 2004-02-11  Richard Sandiford  <rsandifo@redhat.com>
10764
10765         * emit-rtl.c (mark_label_nuses): Check that a LABEL_REF refers to
10766         a label before updating its usage count.
10767
10768 2004-02-10  Matt Kraai  <kraai@alumni.cmu.edu>
10769
10770         * doc/install.texi: Remove extra cd.
10771
10772 2004-02-10  Ziemowit Laski  <zlaski@apple.com>
10773
10774         * c-common.c (vector_size_helper): Remove; call
10775         reconstruct_complex_type() instead.
10776         * tree.c (reconstruct_complex_type): New function
10777         (formerly vector_size_helper() in c-common.c).
10778         (make_vector): Make externally visible.
10779         * tree.h (reconstruct_complex_type, make_vector): Add prototypes.
10780
10781 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
10782
10783         * config/h8300/h8300-protos.h: Add a prototype for
10784         h8300_regs_ok_for_stm.
10785         * config/h8300/h8300.c (h8300_regs_ok_for_stm): New.
10786         * config/h8300/h8300.md (stm_h8300s_2_advanced,
10787         stm_h8300s_2_normal, stm_h8300s_2, stm_h8300s_3_advanced,
10788         stm_h8300s_3_normal, stm_h8300s_3, stm_h8300s_4_advanced,
10789         stm_h8300s_4_normal, stm_h8300s_4, ldm_h8300s_2_advanced,
10790         ldm_h8300s_2_normal, ldm_h8300s_2, ldm_h8300s_3_advanced,
10791         ldm_h8300s_3_normal, ldm_h8300s_3, ldm_h8300s_4_advanced,
10792         ldm_h8300s_4_normal, ldm_h8300s_4): Use
10793         h8300_regs_ok_for_stm().
10794
10795 2004-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
10796
10797         PR c/14088
10798         * real.c (real_from_string): Look for 'X' as well as 'x' in
10799         hexfloat strings.
10800
10801 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
10802
10803         * config/h8300/h8300.md: Remove an incorrect comment about
10804         peephole2.  Add comments.
10805
10806 2004-02-10  Josef Zlomek  <zlomekj@suse.cz>
10807
10808         PR/14058
10809         * emit-rtl.c (set_decl_incoming_rtl): New.
10810         * tree.h (set_decl_incoming_rtl): New.
10811         * function.c (assign_parms): Use set_decl_incoming_rtl for setting
10812         DECL_INCOMING_RTL.
10813         * ada/misc.c (adjust_decl_rtl): Likewise.
10814
10815 2004-02-10  Per Bothner  <per@bothner.com>
10816
10817         * c-opts.c (c_common_post_options):   Don't emit working directory
10818         in cpp output if -P was specified.
10819
10820 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
10821
10822         PR c/14092
10823         * fold-const.c (fold) <NEGATE_EXPR>: Convert result of
10824         negate_expr back to the original type.
10825
10826 2004-02-10  Alan Modra  <amodra@bigpond.net.au>
10827
10828         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Don't
10829         bump retaddr here.
10830
10831 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
10832
10833         * rtl.h (schedule_insns, schedule_ebbs, fix_sched_param,
10834         gen_lowpart_SUBREG): Move under the file in which they
10835         are actually declared.
10836
10837 2004-02-10  Arnaud Charlet  <charlet@act-europe.fr>
10838
10839         * doc/sourcebuild.texi: Add libada documentation.
10840
10841         * doc/install.texi: Update documentation on Ada build, now
10842         that the GNAT lib and tools are built automatically.
10843
10844 2004-02-10  Richard Sandiford  <rsandifo@redhat.com>
10845
10846         * config/mips/mips.h (TARGET_GPWORD): Return false for TARGET_NEWABI
10847         && TARGET_IRIX.
10848
10849 2004-02-09  Ziemowit Laski  <zlaski@apple.com>
10850
10851         * objc/objc-act.c (get_super_receiver): Move '#ifdef OBJCPLUS'
10852         boundaries outside build_component_ref() call (a macro in ObjC++).
10853
10854 2004-02-09  Bob Wilson  <bob.wilson@acm.org>
10855
10856         * config/xtensa/xtensa-protos.h (xtensa_copy_incoming_a7): Update.
10857         (init_cumulative_args): Likewise.
10858         (a7_overlap_mentioned_p): Delete prototype.
10859         * config/xtensa/xtensa.c (struct machine_function): Replace
10860         incoming_a7_copied field with need_a7_copy and vararg_a7 flags.
10861         Add set_frame_ptr_insn field.
10862         (xtensa_emit_move_sequence): Update call to xtensa_copy_incoming_a7.
10863         (xtensa_copy_incoming_a7): Rewrite to check need_a7_copy flag and check
10864         if the operand is an argument in a7.  If so, copy a7 to a new pseudo
10865         at the function entry and replace the operand with the pseudo.
10866         (init_cumulative_args): Remove unused arguments.  Add new "incoming"
10867         argument and record this flag in CUMULATIVE_ARGS.
10868         (function_arg): Remove result_mode and special-case code to handle
10869         arguments in a7.  Instead, set need_a7_copy flag when there is an
10870         incoming argument in a7.
10871         (xtensa_expand_prologue): Remove code to search for set_frame_ptr insn
10872         and use the value recorded in cfun->machine->set_frame_ptr_insn.
10873         (xtensa_builtin_saveregs): Check for negative gp_left value.  Set
10874         need_a7_copy and vararg_a7 flags.  Use move_block_from_reg instead of
10875         special-case code.
10876         (a7_overlap_mentioned_p): Delete.
10877         * config/xtensa/xtensa.h (CUMULATIVE_ARGS): Add "incoming" flag.
10878         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Remove useless
10879         arguments to init_cumulative_args and pass "incoming" flag instead.
10880         (BLOCK_REG_PADDING): Delete.
10881         * config/xtensa/xtensa.md (movdi, movsf, movdf): Remove unnecessary
10882         checks for reload_in_progress and reload_completed.  Update calls to
10883         xtensa_copy_incoming_a7.
10884         (ashlsi3): Rename existing insn to ashlsi3_internal.  Add expander
10885         to call xtensa_copy_incoming_a7.
10886
10887 2004-02-09  DJ Delorie  <dj@redhat.com>
10888
10889         * config/i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): No
10890         longer modify standard_exec_prefix, standard_bindir_prefix, or
10891         standard_startfile_prefix.
10892
10893 2004-02-09  James E Wilson  <wilson@specifixinc.com>
10894
10895         PR c++/11295
10896         * c-common.c (c_expand_expr, case STMT_EXPR): Change expand_expr call
10897         to expand_expr_real call, and pass in alt_rtl as last argument.
10898
10899         PR libstdc++/5625
10900         * builtin-types.def (BT_WORD, BT_FN_WORD_PTR): New.
10901         * builtins.c (expand_builtin): Handle BUILT_IN_EXTEND_POINTER.
10902         * builtins.def (BUILT_IN_EXTEND_POINTER): New.
10903         * except.c (expand_builtin_extend_pointer): New.
10904         * except.h (expand_builtin_extend_pointer): Declare.
10905
10906 2004-02-09  David Edelsohn  <edelsohn@gnu.org>
10907
10908         * config/rs6000/rs6000.c (rs6000_emit_move): Remove splitting slow
10909         unaligned loads and stores.
10910
10911 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10912
10913         * config/mips/iris5.h (BSS_SECTION_ASM_OP): Define.
10914         * config/mips/iris6.h (BSS_SECTION_ASM_OP): Undef.
10915
10916         * config/mips/iris6.h (TARGET_ASM_NAMED_SECTION): Moved ...
10917         * config/mips/iris5.h: ... here.
10918         * config/mips/iris5gas.h (TARGET_ASM_NAMED_SECTION): Remove.
10919
10920         * config/mips/iris6.h (EXTRA_SECTION_FUNCTIONS): Move ...
10921         * config/mips/iris5.h: ... here.
10922
10923 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10924
10925         * configure.ac: Remove default executable files before AC_PROG_CC.
10926         * configure: Regenerate.
10927
10928 2004-02-09  Kazu Hirata  <kazu@cs.umass.edu>
10929
10930         PR target/13721
10931         * config/h8300/h8300.c (byte_reg): Call abort() if asked to
10932         print a operand other than a register.
10933
10934 2004-02-09  Roger Sayle  <roger@eyesopen.com>
10935
10936         * fold-const.c (fold) <NOP_EXPR>: Use the original type conversion
10937         tree code rather than call fold_convert, which doesn't specify a
10938         default floating point to integer conversion.
10939
10940 2004-02-08  Bernardo Innocenti  <bernie@develer.com>
10941
10942         * config/m68k/m68k.c, config/m68k/m68k.md (SGS, SGS_CMP_ORDER): Remove
10943         code to support SGS assembler.  Reformat adjacent code where possible.
10944         * config/m68k/m68k.c (switch_table_difference_label_flag): Remove
10945         definition.
10946         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Remove support
10947         for '%#'.
10948         * config/m68k/linux.h, config/m68k/m68k.c,
10949         * config/m68k/math-68881.h: Replace `%#' with `#' in inline asm
10950         macros and asm_printf() format strings.
10951         * config/m68k/m68kelf.h (ASM_OUTPUT_CASE_END): Remove macro definition.
10952         * config/m68k/linux.h: Update copyright.
10953         * config/m68k/linux.h, config/m68k/m68k.c: Remove traling whitespace.
10954
10955 2004-02-08  Andreas Schwab  <schwab@suse.de>
10956             Bernardo Innocenti  <bernie@develer.com>
10957
10958         * config/m68k/m68k.h (REGISTER_NAMES): Prefix each name with
10959         REGISTER_PREFIX.
10960         * (M68K_FP_REG_NAME): New macro to specify an alternate name for the
10961         frame pointer register, overridable by OS targets.
10962         * (M68K_REGNAME): Macro to obtain register name for asm output,
10963         eventually replacing %a6 with M68K_FP_REG_NAME.
10964         * config/m68k/coff.h (REGISTER_NAMES): Don't redefine.
10965         * config/m68k/linux.h (REGISTER_NAMES): Likewise.
10966         * config/m68k/m68kelf.h (REGISTER_NAMES): Likewise.
10967         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Likewise.
10968         * config/m68k/m68k.c: Use M68K_REGNAME(x) in place of reg_names[x].
10969
10970 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
10971
10972         * target-def.h (TARGET_STRUCT_VALUE_RTX): Define as
10973         hook_rtx_tree_int_null.
10974         * targhooks.c (default_struct_value_rtx): Remove.
10975         * targhooks.h: Remove the prototype for
10976         default_struct_value_rtx.
10977         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
10978         config/fr30/fr30.c, config/h8300/h8300.c, config/i386/i386.c,
10979         config/ip2k/ip2k.c, config/iq2000/iq2000.c,
10980         config/m32r/m32r.c, config/mcore/mcore.c, config/mips/mips.c,
10981         config/mn10300/mn10300.c, config/pdp11/pdp11.c,
10982         config/rs6000/rs6000.c, config/s390/s390.c,
10983         config/stormy16/stormy16.c, config/v850/v850.c,
10984         config/xtensa/xtensa.c (TARGET_STRUCT_VALUE_RTX): Remove.
10985         * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document the default.
10986
10987 2004-02-08  Joseph S. Myers  <jsm@polyomino.org.uk>
10988
10989         * README.Portability: Change "ISO C89" to "ISO C90".
10990         * c-parse.in (primary, initelt): Likewise.
10991
10992 2004-02-08  Richard Sandiford  <rsandifo@redhat.com>
10993
10994         * real.c (encode_ibm_extended): Normalize the input value before
10995         converting it to a double.  Handle the case where a normal value
10996         rounds to infinity.
10997
10998 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
10999
11000         * c-objc-common.c (c_cannot_inline_tree_fn): Fix a typo in a
11001         warning.
11002         * cse.c (preferrable): Change to preferable. Update all of its
11003         callers.
11004         * genautomata.c (ainsn): Change
11005         first_ainsn_with_given_equialence_num to
11006         first_ainsn_with_given_equivalence_num.  Update all of its
11007         references.
11008
11009 2004-02-08  Jan Hubicka  <jh@suse.cz>
11010
11011         * schedule-ebb.c (schedule_ebbs): Do not allocate reg life data.
11012
11013 2004-02-07  David Edelsohn  <edelsohn@gnu.org>
11014
11015         * function.c (assign_parms): Fix formatting.
11016
11017 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
11018
11019         * default.h (PROMOTE_PROTOTYPES): Remove.
11020         * system.h (PROMOTE_FUNCTION_RETURN, PROMOTE_PROTOTYPES,
11021         STRUCT_VALUE_REGNUM, SETUP_INCOMING_VARARGS,
11022         EXPAND_BUILTIN_SAVEREGS): Poison.
11023         * target-def.h (TARGET_PROMOTE_FUNCTION_RETURN): Define as
11024         hook_bool_tree_false.
11025         (TARGET_PROMOTE_PROTOTYPES): Likewise.
11026         * target.h: Replace SETUP_INCOMING_VARARGS with
11027         targetm.calls.setup_incoming_varargs().
11028         * targhooks.c (default_promote_function_return): Remove.
11029         (default_promote_prototypes): Likewise.
11030         (default_struct_value_rtx): Always abort().
11031         (default_expand_builtin_saveregs): Always print an error
11032         message.
11033         (default_setup_incoming_varargs): Do nothing.
11034         (default_pretend_outgoing_varargs_named): Don't depend on
11035         SETUP_INCOMING_VARARGS.
11036         * targhooks.h: Remove the prototype for
11037         default_promote_function_return and
11038         default_promote_prototypes.
11039
11040 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
11041
11042         * system.h (SHARED_SECTION_ASM_OP): Poison.
11043         * varasm.c (data_section): Don't use SHARED_SECTION_ASM_OP.
11044         * doc/tm.texi (SHARED_SECTION_ASM_OP): Remove.
11045
11046 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
11047
11048         Bug 13856
11049         * c-decl.c (diagnose_mismatched_decls): Only give special
11050         treatment when olddecl is DECL_BUILT_IN, if C_DECL_INVISIBLE
11051         is also true.
11052         (merge_decls): Don't clear DECL_BUILT_IN_CLASS and
11053         DECL_FUNCTION_CODE when defining a built-in function.
11054         Don't update DECL_ESTIMATED_INSNS.
11055         * dwarf2out.c (dwarf2out_decl): Don't ignore built-in
11056         FUNCTION_DECLs.
11057         * tree.h: Delete DECL_ESTIMATED_INSNS.
11058         * tree-inline.c (struct inline_data): Delete inlined_insns field.
11059         (expand_call_inline, optimize_inline_calls): Don't update
11060         DECL_ESTIMATED_INSNS nor inlined_insns.
11061         * cgraphunit.c (cgraph_analyze_function): Don't update
11062         DECL_ESTIMATED_INSNS.
11063
11064 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
11065
11066         * c-common.c (shadow_warning): Delete.
11067         * c-common.h (free_parser_stacks, shadow_warning, sw_kind): Delete.
11068         * c-decl.c (warn_if_shadowing): Issue shadow warnings directly.
11069         * c-opts.c (c_common_parse_file): Don't call free_parser_stacks.
11070         * c-parse.in (free_parser_stacks): Delete.
11071
11072 2004-02-07  Nathanael Nerode  <neroden@gcc.gnu.org>
11073
11074         * Makefile.in, config/t-slibgcc-darwin, config/t-slibgcc-elf-ver,
11075         config/t-slibgcc-sld, config/mips/t-iris5-6, config/sh/t-linux:
11076         Use the top level mkinstalldirs, not the one in the gcc subdir.
11077         * mkinstalldirs: Remove (from the gcc subdir).
11078
11079 2004-02-07  Roger Sayle  <roger@eyesopen.com>
11080
11081         PR middle-end/13696
11082         * fold-const.c (fold_convert): New function to provide type
11083         conversion to the middle-end without using convert.
11084         (negate_expr, associate_trees, size_diffop, omit_one_operand,
11085         operand_equal_for_comparison_p, pedantic_omit_one_operand,
11086         invert_truthvalue, optimize_bit_field_compare, range_binop,
11087         decode_field_reference, make_range, build_range_check, unextend,
11088         fold_truthop, extract_muldiv_1, fold_mathfn_compare,
11089         fold_binary_op_with_conditional_arg, fold_inf_compare,
11090         fold_single_bit_test, fold, multiple_of_p): Replace all calls to
11091         convert with calls to fold_convert.
11092
11093 2004-02-07  Jan Hubicka  <jh@suse.cz>
11094
11095         * genrecog.c (find_operand): add extra argument stop.
11096         (validate_pattern): Verify that mach_dup is duplicating operand
11097         defined lexically earlier.
11098
11099 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
11100
11101         * config.gcc: Don't mention MAX_LONG_TYPE_SIZE.
11102         * system.h (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
11103         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Poison.
11104         * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
11105         config/ia64/ia64.h, config/ip2k/ip2k.h,
11106         config/iq2000/iq2000.h, config/mips/iris5.h,
11107         config/mips/mips.h, config/pa/pa-64.h, config/pa/pa.h,
11108         config/rs6000/aix51.h, config/rs6000/aix52.h,
11109         config/rs6000/darwin.h, config/rs6000/rs6000.h,
11110         config/s390/s390.h, config/sh/sh.h, config/sparc/freebsd.h,
11111         config/sparc/linux.h, config/sparc/linux64.h,
11112         config/sparc/netbsd-elf.h, config/sparc/sparc.h,
11113         config/xtensa/xtensa.h: Remove the definitions of
11114         MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE, and/or
11115         MAX_WCHAR_TYPE_SIZE.
11116         * doc/tm.texi (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
11117         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Remove.
11118
11119 2004-02-07  Stephane Carrez  <stcarrez@nerim.fr>
11120
11121         PR bootstrap/13990
11122         * config/m68hc11/m68hc11.md ("doloop_end"): Pass dummy arguments to
11123         gen_rtx_NE.
11124
11125 2004-02-07  Josef Zlomek  <zlomekj@suse.cz>
11126
11127         * var-tracking.c (vt_add_function_parameters): Surround checkings by
11128         #ifdef ENABLE_CHECKING and #endif.
11129
11130 2004-02-07  Roger Sayle  <roger@eyesopen.com>
11131
11132         * fold-const.c (negate_expr_p, negate_expr): Optimize -(A+B) into
11133         either (-A)-B or (-B)-A, if A or B is easily negated respectively.
11134         (fold) <MINUS_EXPR>: Optimize (A*C) - (B*C) -> (A-B)*C for both
11135         integer types and floating point with unsafe_math_optimizations.
11136         Add similar optimization for (A*C1) - (A*C2) -> A*(C1-C2).
11137         Optimize A - B as A + (-B), if B is easily negated.
11138
11139 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
11140
11141         * c-ppoutput.c, cfganal.c, diagnostic.h, print-rtl.c,
11142         config/darwin.c, config/darwin.h, config/ia64/ia64-c.c,
11143         config/m32r/linux.h, config/rs6000/ppc64-fp.c,
11144         config/sparc/openbsd.h, doc/makefile.texi, doc/passes.texi:
11145         Update copyright.
11146
11147 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
11148
11149         * c-ppoutput.c, var-tracking.c: Fix comment typos.
11150
11151 2004-02-06  James E Wilson  <wilson@specifixinc.com>
11152
11153         * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Only define for
11154         glibc 2.3 or better.
11155
11156 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
11157
11158         * doc/tm.texi (TARGET_FLOAT_LIB_COMPARE_RETURNS_BOOL): Change
11159         to FLOAT_LIB_COMPARE_RETURNS_BOOL.
11160
11161 2004-02-07  Alan Modra  <amodra@bigpond.net.au>
11162
11163         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Add darwin-ldouble.c.
11164         (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
11165         (SHLIB_MKMAP_OPTS): Delete.
11166         (TARGET_LIBGCC2_CFLAGS): Add -specs.
11167         (bispecs): Add rule.
11168         * config/rs6000/libgcc-ppc64.ver: New file.
11169         * config/rs6000/ppc64-fp.c (__fixtfdi, __floatditf): New functions.
11170         (__floatdidf, __floatdisf): Optimize multiply.
11171         (__fixunstfdi): New function.
11172         * config/rs6000/rs6000.c (rs6000_complex_function_value): Allow for
11173         real and imag parts larger than one register.
11174         (function_arg): Correct type of reg used when fp arg split partially
11175         to stack.
11176         * config/rs6000/darwin-ldouble.c: Protect with #if !_SOFT_FLOAT
11177         and __MACH__ or __powerpc64__.
11178
11179 2004-02-06  Roger Sayle  <roger@eyesopen.com>
11180             Ulrich Weigand  <uweigand@de.ibm.com>
11181
11182         * builtins.c (expand_builtin_signbit): Use extract_bit_field instead
11183         of gen_highpart or gen_lowpart when the floating point format is
11184         wider than the result mode.
11185
11186 2004-02-06  Andrew Pinski  <pinskia@physics.uc.edu>
11187
11188         * dwarf2out.c (loclabel_num): Move into #ifdef
11189         DWARF2_DEBUGGING_INFO.
11190
11191 2004-02-06  Ziemowit Laski  <zlaski@apple.com>
11192
11193         * objc/objc-act.c (build_super_template) the 'class' field of
11194         'struct _objc_super' shall be named 'super_class' #ifdef OBJCPLUS.
11195         (get_super_receiver): Likewise.
11196
11197 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
11198
11199         * reload1.c (check_eliminable_occurrences): Optimize the reset
11200         of can_eliminate.
11201         (eliminate_regs_in_insn): Likewise.
11202
11203 2004-02-06  Daniel Berlin <dberlin@dberlin.org>
11204             Josef Zlomek  <zlomekj@suse.cz>
11205
11206         * dwarf2out.c (struct gcc_debug_hooks): Call dwarf2out_begin_function
11207         at the beginning of function, call dwarf2out_var_location for
11208         NOTE_INSN_VAR_LOCATION note.
11209         (struct var_loc_node, struct var_loc_list_def, loclabel_num,
11210         decl_loc_table): New.
11211         (lookup_decl_loc): New function.
11212         (add_var_loc_to_decl): New function.
11213         (based_loc_descr): Added parameter can_use_fbreg, DW_OP_fbreg is used
11214         only if can_use_fbreg.
11215         (mem_loc_descriptor): Added parameter can_use_fbreg, pass it to other
11216         functions.
11217         (loc_descriptor): Likewise. Process VAR_LOCATION.
11218         (concat_loc_descriptor): Call loc_descriptor with can_use_fbreg == true.
11219         (loc_descriptor_from_tree): Call mem_loc_descriptor with
11220         can_use_fbreg == true.
11221         (add_location_or_const_value_attribute): Added parameter enum
11222         dwarf_attribute attr, generate attribute ATTR.  Create the location list.
11223         (add_bound_info): Call loc_descriptor with can_use_fbreg == true.
11224         (gen_formal_parameter_die): Call add_location_or_const_value_attribute
11225         with attr == DW_AT_location.
11226         (gen_subprogram_die): Generate the location list for DW_AT_frame_base
11227         if frame_base_decl is defined and has a location list.
11228         (gen_variable_die): Call add_location_or_const_value_attribute with
11229         attr == DW_AT_location.
11230         (dwarf2out_var_location): New function.
11231         (dwarf2out_begin_function): New function.
11232         (dwarf2out_init): Create decl_loc_table.
11233
11234 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
11235
11236         * loop.c (force_movables): Transitively increase the priorities of
11237         all insns forces by an insn, not just the first one.
11238
11239 2004-02-06  Josef Zlomek  <zlomekj@suse.cz>
11240             Daniel Berlin <dberlin@dberlin.org>
11241
11242         Josef Zlomek  <zlomekj@suse.cz>
11243         * Makefile.in (var-tracking.o): New.
11244         * common.opt (fvar-tracking): New.
11245         * flags.h (flag_var_tracking): New.
11246         * gengtype.c (adjust_field_rtx_def): NOTE_INSN_VAR_LOCATION was added.
11247         * opts.c (common_handle_option): Add OPT_fvar_tracking.
11248         * print-rtl.c (print_rtx): NOTE_INSN_VAR_LOCATION was added.
11249         * rtl.c (note_insn_name): Likewise.
11250         * rtl.def (VAR_LOCATION): New.
11251         * rtl.h (NOTE_VAR_LOCATION): New.
11252         (NOTE_VAR_LOCATION_DECL): New.
11253         (NOTE_VAR_LOCATION_LOC): New.
11254         (enum insn_note): NOTE_INSN_VAR_LOCATION was added.
11255         (variable_tracking_main): New exported function.
11256         * timevar.def (TV_VAR_TRACKING): New.
11257         * toplev.c (enum dump_file_index): Added DFI_vartrack.
11258         (dump_file): "vartrack" was added (-dV).
11259         (flag_var_tracking): New.
11260         (f_options): "var-tracking" was added.
11261         (rest_of_handle_variable_tracking): New function.
11262         (rest_of_compilation): Run variable tracking.
11263         (process_options): If user has not specified flag_var_tracking set it
11264         according to optimize, debug_info_level and debug_hooks.
11265         * tree.h (frame_base_decl): New.
11266         * var-tracking.c: New file.
11267         * config/ia64/ia64.c (ia64_flag_var_tracking): New variable.
11268         (ia64_override_options): Set flags to run variable tracking in machine
11269         dependent reorg instead of toplev.c.
11270         (ia64_reorg): Run variable tracking if wanted.
11271         * doc/invoke.texi: Mention variable tracking in -dV,
11272         add and -fvar-tracking.
11273         * doc/passes.texi: Added variable tracking pass.
11274
11275         Daniel Berlin <dberlin@dberlin.org>
11276         * debug.h (struct gcc_debug_hooks): Added var_location debug hook.
11277         * dbxout.c (dbx_debug_hooks): Likewise.
11278         (xcoff_debug): Likewise.
11279         * debug.c (do_nothing_debug_hooks): Likewise.
11280         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
11281         * dwarfout.c (dwarf_debug_hooks): Likewise.
11282         * sdbout.c (sdb_debug_hooks): Likewise.
11283         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
11284         * final.c (final_scan_insn): Call var_location debug hook for each
11285         NOTE_INSN_VAR_LOCATION.
11286
11287 2004-02-06  Jan Hubicka  <jh@suse.cz>
11288
11289         * flow.c (update_life_info): Allocate reg_deaths when called from
11290         scheudler.
11291         (attempt_auto_inc):  Update life ranges accordingly.
11292
11293 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
11294
11295         PR debug/11816
11296         * dwarf2out.c (gen_decl_die): Handle anonymous struct members.
11297
11298 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
11299
11300         * cfganal.c (flow_call_edges_add): Never split a libcall block.
11301
11302 2004-02-06  Daniel Berlin  <dberlin@dberlin.org>
11303
11304         * dwarf2out.c (output_loc_list): Don't use deltas if we have
11305         a separate line info table in use.
11306         Use the correct size for terminators.
11307         (output_die): Use offset, not delta.
11308
11309 2004-02-06  H.J. Lu  <hongjiu.lu@intel.com>
11310
11311         * doc/invoke.texi: Remove the pni option from -mfpmath=.
11312
11313 2004-02-06  Jan Hubicka  <jh@suse.cz>
11314
11315         * recog.c (split_all_insns): Do not update reg info.
11316         * regrename.c (regrename_optimize): Likewise.
11317         * toplev.c (rest_of_handle_reorder_blocks): Likewise.
11318         * flow.c (struct propagate_block_info): Add insn_num field.
11319         (reg_deaths): New array.
11320         (life_analysis): Free reg_deaths info.
11321         (allocate_reg_life_data): Allocate reg_deaths array.
11322         (propagate_one_insn): Use new array.
11323         (init_propagate_block): Initialize it.
11324         (free_propagate_block_info): Finish compuation of
11325         REG_LIVE_LENGTH
11326         (attempt_auto_inc): Sanity check that REG_INFO is not
11327         computed at same time.
11328         (mark_used_regs): Update new array.
11329
11330         * reg-stack.c (subst_stack_regs): Unshare clobbers before
11331         substitution.
11332
11333 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
11334
11335         * config/s390/s390.md (*extendsiqi2_short_displ): Change to
11336         *extendqisi2_short_displ.
11337
11338 2004-02-06  Alan Modra  <amodra@bigpond.net.au>
11339
11340         * doc/tm.texi (INIT_CUMULATIVE_ARGS): Update doco.
11341         * calls.c (expand_call): Pass n_named_args to INIT_CUMULATIVE_ARGS.
11342         (emit_library_call_value_1): Likewise pass nargs.
11343         * expr.c (block_move_libcall_safe_for_call_parm): Pass 3 here.
11344         * function.c (assign_parms): Pass -1 to INIT_CUMULATIVE_ARGS.
11345         * config/rs6000/rs6000.c (init_cumulative_args): Use n_named_args
11346         parameter instead of scanning TYPE_ARGS_TYPES to count args.
11347         * config/rs6000/rs6000-protos.h (init_cumulative_args): Update
11348         prototype.
11349         * config/rs6000/rs6000.h (INIT_CUMULATIVE_ARGS): Pass extra arg.
11350         (INIT_CUMULATIVE_INCOMING_ARGS): Set extra arg to 1000.
11351         (INIT_CUMULATIVE_LIBCALL_ARGS): Set extra arg to 0.
11352         * config/sh/sh.c (sh_output_mi_thunk): Pass 1 as n_named_args to
11353         INIT_CUMULATIVE_ARGS.
11354         * config/alpha/alpha.h (INIT_CUMULATIVE_ARGS): Update.
11355         * config/alpha/unicosmk.h, config/alpha/vms.h, config/arc/arc.h,
11356         config/arm/arm.h, config/avr/avr.h, config/c4x/c4x.h,
11357         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.h,
11358         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
11359         config/ia64/ia64.h, config/ip2k/ip2k.h, config/iq2000/iq2000.h,
11360         config/iq2000/iq2000.c, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
11361         config/m68k/m68k.h, config/mcore/mcore.h, config/mips/mips.h,
11362         config/mmix/mmix.h, config/mn10300/mn10300.h, config/ns32k/ns32k.h,
11363         config/pa/pa.h, config/pdp11/pdp11.h, config/s390/s390.h,
11364         config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
11365         config/v850/v850.h, config/vax/vax.h, config/xtensa/xtensa.h: Likewise.
11366
11367 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
11368
11369         * genemit.c (gen_exp) [CONST_INT]: Use const_int_rtx whenever
11370         possible.
11371
11372 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
11373
11374         * reload1.c (eliminate_regs_in_insn): If a set has a REG_EQUAL
11375         note containing (plus (reg) (const_int)), where reg is an
11376         eliminable reg, then perform the register elimination without
11377         depending on eliminate_regs().
11378
11379 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
11380
11381         * config/arc/arc.c (arc_return_in_memory): Check the return
11382         value of int_size_in_bytes against -1.  Don't check
11383         TREE_ADDRESSABLE.
11384         * config/avr/avr.c (avr_return_in_memory): Check the return
11385         value of int_size_in_bytes against -1.
11386         * config/ip2k/ip2k.c (ip2k_return_in_memory): Likewise.
11387         * config/m68hc11/m68hc11.c (m68hc11_return_in_memory):
11388         Likewise.
11389         * config/mcore/mcore.c (mcore_return_in_memory): Likewise.
11390         * config/stormy16/stormy16.c (xstormy16_return_in_memory):
11391         Likewise.
11392
11393 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
11394
11395         * config/frv/frv-protos.h: Remove the prototype for
11396         frv_setup_incoming_varargs.
11397         * config/frv/frv.c (TARGET_SETUP_INCOMING_VARARGS): New.
11398         (frv_setup_incoming_varargs): Make it static.
11399         * config/frv/frv.h (SETUP_INCOMING_VARARGS): Remove.
11400
11401 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
11402
11403         * config/fr30/fr30-protos.h: Remove the prototype for
11404         fr30_setup_incoming_varargs.
11405         Update the prototypes for fr30_num_arg_regs and
11406         fr30_function_arg_partial_nregs.
11407         * config/fr30/fr30.c (TARGET_STRUCT_VALUE_RTX): New.
11408         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
11409         (fr30_setup_incoming_varargs): Make it static.
11410         Add argument second_time.  Don't do anything when second_time
11411         is nonzero.
11412         (fr30_num_arg_regs): Change the type of the first argument to
11413         enum machine_mode.
11414         (fr30_function_arg_partial_nregs): Change the type of the
11415         second argument to enum machine_mode.
11416         * config/fr30/fr30.h (STRUCT_VALUE): Remove.
11417         (SETUP_INCOMING_VARARGS): Remove.
11418
11419 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
11420
11421         * config/arc/arc-protos.h: Remove the prototype for
11422         arc_setup_incoming_varargs.
11423         * config/arc/arc.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
11424         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
11425         (arc_setup_incoming_varargs): Make it static.
11426         (arc_external_libcall): Likewise.
11427         * config/arc/arc.h (SETUP_INCOMING_VARARGS): Remove.
11428         Remove the commented-out definition of
11429         ASM_OUTPUT_EXTERNAL_LIBCALL.
11430
11431 2004-02-05  SUGIOKA Toshinobu  <sugioka@itonet.co.jp>
11432
11433         * config/sh/t-linux (SHLIB_INSTALL): Prepend $$(DESTDIR)
11434         to $$(slibdir) in the installation commands.
11435
11436 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
11437
11438         * reload.c (refers_to_regno_for_reload_p): Index hard_regno_nregs
11439         with inner_regno, not regno.
11440         * rtlanal.c (refers_to_regno_p): Same.
11441
11442 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
11443
11444         * config.gcc: Remove i370 support.
11445
11446 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
11447
11448         * doc/install.texi:  Update automake and autoconf version
11449         requirements.  Note where to find gcj automake version.
11450
11451 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
11452
11453         * Makefile.in (generate-manpages): Move dependencies to ...
11454         (man): here.
11455         * doc/makefile.texi: Document new targets.
11456         * doc/sourcebuild.texi (Make-lang.in): Document new langhooks.
11457
11458 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
11459
11460         PR/13485
11461         Makefile.in (srcextra):  Add a level of indirection to ...
11462         (gcc.srcextra): ... here.
11463         (po-generated): Delete.
11464         (po/$(PACKAGE).pot: Use srcextra instead of po-generated.  Depend on
11465         options.c.
11466         (start.encap): Remove superfluous lang.srcextra dependency.
11467         objc/Make-lang.in (po-generated):  Delete.
11468
11469 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
11470
11471         * config/ia64/ia64.c (REG_GP): Remove.
11472
11473 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
11474
11475         * config/mips/iris5gas.h (PREFERRED_DEBUGGING_TYPE): Define.
11476
11477 2004-02-05  Devang Patel  <dpatel@apple.com>
11478
11479         * dwarf2out.c (force_type_die): Look up input type itself
11480         instead of root_type() of type.
11481
11482 2004-02-05  Andreas Krebbel  <krebbel1@de.ibm.com>
11483
11484         * config/s390/s390.md ("*tmqidi_ext"): New insn.
11485         ("*extendqidi2_short_displ", "*extendsiqi2_short_displ"): Old
11486         pre-reload splitters are transformed to post-reload
11487         define_insn_and_split patterns.
11488         ("*tmqisi_ext"): Renamed old "*tmqi_ext".
11489
11490 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
11491
11492         * config/cris/cris.h: Replace PROMOTE_PROTOTYPES with
11493         TARGET_PROMOTE_PROTOTYPES.
11494
11495 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
11496
11497         PR middle-end/13750
11498         Revert:
11499         2004-01-15  Geoffrey Keating  <geoffk@apple.com>
11500         PR pch/13361
11501         * c-typeck.c (constructor_asmspec): Delete.
11502         (struct initializer_stack): Delete field 'asmspec'.
11503         (start_init): Delete saving of asmspec.
11504         (finish_init): Don't update constructor_asmspec.
11505         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
11506         * stmt.c (expand_asm): Duplicate strings from tree.
11507         (expand_asm_operands): Likewise.
11508         * tree.c (tree_size): Update computation of size of STRING_CST.
11509         (make_node): Don't make STRING_CST nodes.
11510         (build_string): Allocate string with tree node.
11511         * tree.def (STRING_CST): Update comment.
11512         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
11513         (tree_string): Place contents of string in tree node.
11514         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
11515         from tree.
11516
11517 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
11518
11519         * diagnostic.h (DEFINE_DIAGNOSTIC_KIND): Change parameter M to
11520         msgid.
11521
11522 2004-02-05  Dorit Naishlos  <dorit@il.ibm.com>
11523
11524         * config/rs6000/altivec.md (*movv4si_internal): At least one
11525         operand must be altivec_register_operand.
11526         (*movv8hi_internal1): Likewise.
11527         (*movv16qi_internal1): Likewise.
11528         (*movv4sf_internal1): Likewise.
11529
11530 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
11531
11532         * configure.ac (gcc_cv_as_powerpc_mfcrf): Correct test for mfcr.
11533         * configure: Regenerate.
11534
11535 2004-02-05  Jonathan Wakely  <redi@gcc.gnu.org>
11536
11537         * doc/install.texi: Update description of --gxx-include-dir to
11538         give correct default value.
11539
11540 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
11541
11542         * config/h8300/h8300.h (REG_OK_FOR_BASE_NONSTRICT_P): Replace
11543         8 with MAC_REG.
11544
11545 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
11546
11547         * config/pa/pa.c (emit_hpdiv_const): Replace gen_rtx with
11548         gen_rtx_PARALLEL.
11549
11550 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
11551
11552         * emit-rtl.c: Update the comment about the file.
11553
11554 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
11555
11556         * sourcebuild.texi (Test Idioms): Update testcase naming
11557         conventions.
11558
11559 2004-02-04  Per Bothner  <per@bothner.com>
11560
11561         Partially revert/redo 2003-10-01 change; fix -fworking-directory.
11562         * c-ppoutput.c (pp_dir_change):  New function.
11563         * c-common.h (pp_dir_change):  New declaration.
11564         * cpplib.h (struct cpp_options):  Remove working_directory field.
11565         * cppinit.c (cpp_find_main_file, cpp_push_main_file):  Merge back to
11566         (cpp_read_main_file):  as before 10-01.  Call _cpp_stack_file.
11567         Don't handle -fworking_directory here, but in c_common_post_options.
11568         (read_original_directory): Don't back up when done.
11569         Don't clear no-longer used working_directory flag.
11570         * cpplib.h:  Update declarations to match.
11571         * c-lex.c (cb_dir_change):  Move to c-opts.c.
11572         (init_c_lex):  Don't set dir_change callback here, since we want
11573         to set it even if flag_preprocess_only.
11574         * c-opts.c (cb_dir_change):  Function moved from c-lex.c.
11575         (c_common_post_options):  Set dir_change callback.
11576         Call pp_dir_change if approporiate.
11577         (finish_options):  Don't call cpp_find_main_file here.  Hence remove
11578         unneeded parameter and result. Do LC_RENAME for <built-in>.
11579         (c_common_post_options):  Call cpp_read_main_file here instead.
11580         (c_common_init):  Update accordingly.
11581         (push_command_line_include):  Don't cpp_push_main_file.
11582         Do LC_RENAME rather than LC_LEASE to get back to main file.
11583         Compared to pre-10-01 version, inline cpp_rename_to_main_file.
11584         (c_common_parse_file):  Call cpp_read_main_file for subsequent main
11585         files, but call finish_options for all files.
11586         * c-opts.c (sanitize_cpp_opts):  Don't set cpp_opts->working_directory.
11587         * fix-header.c (read_scan_file):  Call cpp_read_main_file instead of
11588         cpp_find_main_file + cpp_push_main_file.
11589         * c-lex.c (fe_file_change):  Don't set main_input_filename here.
11590         * opts.c (handle_options):  Only set main_input_filename first time.
11591
11592 2004-02-05  Ian Lance Taylor  <ian@wasabisystems.com>
11593
11594         * config/arm/arm.h (REG_CLASS_NAMES): Add missing comma.
11595
11596 2004-02-04  Geoffrey Keating  <geoffk@apple.com>
11597
11598         * reload.c (find_equiv_reg): When checking for register overlap,
11599         don't index hard_regno_nregs with a pseudo-reg.
11600
11601 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
11602
11603         * config/s390/s390.c (s390_trampoline_template): Remove gen_rtx().
11604
11605 2004-02-04  David Edelsohn  <edelsohn@gnu.org>
11606
11607         * reload.c (refers_to_regno_for_reload_p): Test regno, not inner_regno,
11608         against FIRST_PSEUDO_REGISTER.
11609
11610 2004-02-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
11611
11612         * Makefile.in: Move target, host overrides after per-language
11613         fragments.
11614
11615         * config/mips/t-iris5-as (FORCE_DEBUG_ADAFLAGS): Clear.
11616         (GNATLIBCFLAGS): Remove -g.
11617
11618 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
11619
11620         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
11621         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
11622         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
11623         config/m32r/m32r.c, config/ns32k/ns32k.c, config/pa/pa.c,
11624         config/pdp11/pdp11.c, config/rs6000/rs6000.c,
11625         config/sparc/sparc.c, config/vax/vax.c: Revert the
11626         replacements of "FALLTHRU" with "Fall through" done in the
11627         previous patch.
11628
11629 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
11630
11631         * config/darwin.c, config/darwin.h, config/freebsd-spec.h,
11632         config/arm/arm.c, config/arm/arm.md,
11633         config/cris/cris-protos.h, config/fr30/fr30.c,
11634         config/fr30/fr30.h, config/h8300/h8300.c, config/i386/i386.h,
11635         config/i860/i860.c, config/i860/i860.h, config/ia64/ia64-c.c,
11636         config/ia64/ia64.c, config/ia64/ia64.h, config/ip2k/ip2k.h,
11637         config/ip2k/ip2k.md, config/ip2k/libgcc.S,
11638         config/m32r/linux.h, config/m32r/m32r.c, config/m32r/m32r.h,
11639         config/m68k/m68k.c, config/m68k/netbsd-elf.h,
11640         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.md,
11641         config/ns32k/netbsd.h, config/ns32k/ns32k.c,
11642         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
11643         config/rs6000/darwin-ldouble.c, config/s390/s390.h,
11644         config/s390/s390.md, config/sparc/netbsd-elf.h,
11645         config/sparc/openbsd.h, config/sparc/sparc.c,
11646         config/xtensa/lib2funcs.S: Fix comment formatting.
11647
11648 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
11649
11650         * config/alpha/alpha.c, config/arc/arc.c,
11651         config/arm/arm-cores.def, config/arm/arm.c, config/arm/arm.h,
11652         config/arm/arm1026ejs.md, config/arm/arm1136jfs.md,
11653         config/arm/arm926ejs.md, config/arm/vfp.md, config/avr/avr.c,
11654         config/c4x/c4x.c, config/cris/cris.c, config/frv/frv.md,
11655         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
11656         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
11657         config/iq2000/iq2000.c, config/m32r/m32r.c,
11658         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.h,
11659         config/ns32k/ns32k.c, config/pa/pa.c, config/pdp11/pdp11.c,
11660         config/rs6000/darwin-ldouble.c, config/rs6000/rs6000.c,
11661         config/rs6000/rs6000.h, config/sparc/sparc.c,
11662         config/vax/vax.c: Fix comment typos.  Follow spelling
11663         conventions.
11664
11665 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
11666
11667         * alloc-pool.h, c-convert.c, c-lang.c, c-tree.h,
11668         caller-save.c, df.h, genconfig.c, global.c, lcm.c,
11669         ra-rewrite.c, ra.c, regclass.c, regs.h, resource.c,
11670         sched-rgn.c, config/arm/aof.h, config/arm/cirrus.md,
11671         config/arm/fpa.md, config/arm/iwmmxt.md,
11672         config/arm/netbsd-elf.h, config/arm/netbsd.h,
11673         config/m68hc11/m68hc11.md, config/mips/iris5.h,
11674         config/mn10300/mn10300.md, config/rs6000/altivec.md,
11675         config/sparc/netbsd-elf.h: Update copyright.
11676
11677 2004-02-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
11678
11679         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
11680         for all modes whose size is greater than 8 bytes if ARCH32.
11681         (sparc_va_arg): Handle all modes whose size is greater than 8 bytes
11682         by reference if ARCH32.
11683
11684 2004-02-04  Aldy Hernandez  <aldyh@redhat.com>
11685
11686         * cgraphunit.c (cgraph_postorder): Fix typo in comment.
11687
11688 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
11689
11690         * config/s390/s390.md ("*la_64" + peepholes, "reload_indi"): Move
11691         to before adddi3 insn patterns.
11692         ("*la_31" + peepholes, "*la_31_and", "*la_31_and_cc", "force_la_31",
11693         "reload_insi"): Move to before addsi3 insn patterns.
11694
11695 2004-02-04  Mark Mitchell  <mark@codesourcery.com>
11696
11697         * calls.c (initialize_argument_information): Add CALL_FROM_THUNK_P
11698         parameter.  Use it instead of current_function_is_thunk.
11699         * function.h (struct function): Update documentation for is_thunk.
11700         * tree.h (CALL_FROM_THUNK_P): New macro.
11701         * config/alpha/alpha.c (alpha_sa_mask): Do not check
11702         no_new_pseudos when testing current_function_is_thunk.
11703         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likeiwse.
11704
11705 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
11706
11707         * doc/tm.texi: Replace SETUP_INCOMING_VARARGS with
11708         TARGET_SETUP_INCOMING_VARARGS.
11709
11710 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
11711
11712         * emit-rtl.c (gen_rtx): Remove.
11713         * genattrtab.c: Don't mention gen_rtx in a comment.
11714         * rtl.h: Remove the prototype for gen_rtx.
11715         * doc/md.texi: Replace gen_rtx with gen_rtx_REG.
11716
11717 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
11718
11719         * config/arc/arc.h, config/fr30/fr30.h
11720         (SETUP_INCOMING_VARARGS): Remove the target-independent
11721         comments.
11722         * doc/tm.texi: Don't mention deprecated target macros.
11723
11724 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
11725
11726         * config/fr30/fr30.h (FUNCTION_VALUE): Remove the
11727         target-independent comment.
11728
11729 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
11730
11731         * doc/interface.texi, doc/tm.texi, doc/trouble.texi: Don't
11732         mention deprecated target macros.
11733
11734 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
11735
11736         * config.gcc: Remove obsolete ports and configurations.
11737         * config/linux-aout.h, config/netware.h,
11738         config/t-linux-gnulibc1, config/d30v/abi,
11739         config/d30v/d30v-protos.h, config/d30v/d30v.c,
11740         config/d30v/d30v.h, config/d30v/d30v.md,
11741         config/d30v/libgcc1.asm, config/d30v/t-d30v,
11742         config/dsp16xx/dsp16xx-modes.def,
11743         config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c,
11744         config/dsp16xx/dsp16xx.h, config/dsp16xx/dsp16xx.md,
11745         config/i370/README, config/i370/i370-c.c,
11746         config/i370/i370-protos.h, config/i370/i370.c,
11747         config/i370/i370.h, config/i370/i370.md, config/i370/linux.h,
11748         config/i370/mvs.h, config/i370/oe.h, config/i370/t-i370,
11749         config/i386/freebsd-aout.h, config/i386/linux-aout.h,
11750         config/i386/moss.h, config/i386/netware.h,
11751         config/i386/svr3.ifile, config/i386/svr3dbx.h,
11752         config/i386/svr3gas.h, config/i386/svr3z.ifile,
11753         config/i386/t-udk, config/i386/udk.h, config/i386/vsta.h,
11754         config/i960/i960-c.c, config/i960/i960-coff.h,
11755         config/i960/i960-modes.def, config/i960/i960-protos.h,
11756         config/i960/i960.c, config/i960/i960.h, config/i960/i960.md,
11757         config/i960/rtems.h, config/i960/t-960bare,
11758         config/m68k/hp310.h, config/m68k/hp320.h,
11759         config/m68k/hp320base.h, config/m68k/m68kv4.h,
11760         config/m68k/netbsd.h, config/m68k/sgs.h, config/m68k/t-hp320:
11761         Remove.
11762         * doc/extend.texi, doc/install.texi, doc/invoke.texi,
11763         doc/md.texi: Remove mentions of obsolete ports.
11764
11765 2004-02-04  Jan Hubicka  <jh@suse.cz>
11766
11767         * alias.c (find_base_term, get_addr):  Do not dereference NULL
11768         pointer when all VALUE's locations has been invalidated.
11769         (rtx_equal_for_memref_p): Simplify checking of VALUEs.
11770
11771 2004-02-03  Wolfgang Bangerth  <bangerth@dealii.org>
11772
11773         * doc/invoke.texi (x86 options): Fix spelling/wording.
11774
11775 2004-02-03  Richard Sandiford  <rsandifo@redhat.com>
11776
11777         * config/mips/iris5.h (ASM_OUTPUT_ASCII): Use mips_output_ascii to
11778         put the original string in a comment.
11779         * config/mips/mips-protos.h (mips_output_ascii): Add prefix argument.
11780         * config/mips/mips.c (mips_output_ascii): Likewise.
11781         * config/mips/mips.h (ASM_OUTPUT_ASCII): Adjust accordingly.
11782
11783 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
11784
11785         * system.h (GIV_SORT_CRITERION): Poison.
11786         * config/avr/avr.h (GIV_SORT_CRITERION): Remove.
11787         * config/ip2k/ip2k.h (GIV_SORT_CRITERION): Likewise.
11788
11789 2004-02-03  Roger Sayle  <roger@eyesopen.com>
11790
11791         PR target/9348
11792         * expr.c (expand_expr_real) <MULT_EXPR>:  When performing widening
11793         multiplies with a multiplication of the wrong signedness, its the
11794         signedness of the multiplication that we've performed that needs to
11795         be passed to expand_mult_highpart_adjust.  Avoid emitting a nop-move
11796         if expand_mult_highpart_adjust places the result in target.
11797
11798 2004-02-03  Richard Henderson  <rth@redhat.com>
11799
11800         * varasm.c (const_desc_rtx_sym_eq): Compare symbol strings.
11801
11802 2004-02-03  J"orn Rennecke <joern.rennecke@superh.com>
11803
11804         * config.gcc (sh[234]l): Use little endian fragments.
11805
11806 2004-02-03  Paul Koning  <pkoning@equallogic.com>
11807
11808         * config/pdp11/pdp11-modes.def: Add RESET_FLOAT_FORMAT calls.
11809         * config/pdp11/pdp11-protos.h (legitimate_const_double_p): Add.
11810         * config/pdp11/pdp11.c (encode_pdp11_f, decode_pdp11_f,
11811         encode_pdp11_d, decode_pdp11_d): New functions to handle PDP11
11812         floating point format.
11813         (pdp11_f_format, pdp11_d_format): New real_format descriptors for
11814         the above functions.
11815         (output_move_quad): Output float values in correct target format.
11816         (legitimate_const_double_p): New function.
11817         * config/pdp11/pdp11.h: Fix typos.
11818         (FLOAT_WORDS_BIG_ENDIAN): Add definition.
11819         (TARGET_FLOAT_FORMAT): Ditto.
11820         (pdp11_f_format, pdp11_d_format): Add external declarations.
11821         (MAX_REGS_PER_ADDRESS): Corrected.
11822         (LEGITIMATE_CONSTANT_P): Use legitimate_const_double_p().
11823         (PRINT_OPERAND): Output float literals in target format.
11824
11825 2004-02-03  Mark Mitchell  <mark@codesourcery.com>
11826
11827         PR c++/13975
11828         * tree.h (enum tree_index): Add TI_PUBLIC, TI_PROTECTED, and
11829         TI_PRIVATE.
11830         (access_public_node): Redefine.
11831         (access_protected_node): Likewise.
11832         (access_private_node): Likewise.
11833         * tree.c (build_common_tree_nodes): Create access_public_node,
11834         access_protected_node, and access_private_node.
11835
11836 2004-02-03  Steve Ellcey  <sje@cup.hp.com>
11837
11838         * config/ia64/ia64.h (MASK_INLINE_INT_DIV_LAT): Change value.
11839         (MASK_INLINE_INT_DIV_THR): Ditto.
11840         (MASK_INLINE_SQRT_LAT): Ditto.
11841         (MASK_INLINE_SQRT_THR): Ditto.
11842         (MASK_DWARF2_ASM): Ditto.
11843         (MASK_EARLY_STOP_BITS): Ditto.
11844
11845 2004-02-02  Paul Brook  <paul@codesourcery.com>
11846
11847         Merge from csl-arm-branch.
11848
11849         2004-01-30  Paul Brook  <paul@codesourcery.com>
11850
11851         * aof.h (REGISTER_NAMES): Add vfp reg names
11852         (ADDITIONAL_REGISTER_NAMES): Ditto.
11853         * aout.h (REGISTER_NAMES): Ditto.
11854         (ADDITIONAL_REGISTER_NAMES): Ditto.
11855         * arm-protos.h: Update/Add Prototypes.
11856         * arm.c (init_fp_table): Rename from init_fpa_table. Update users.
11857         Only allow 0.0 for VFP.
11858         (fp_consts_inited): Rename from fpa_consts_inited.  Update users.
11859         (values_fp): Rename from values_fpa.  Update Users.
11860         (arm_const_double_rtx): Rename from const_double_rtx_ok_for_fpa.
11861         Update users.  Only check valid constants for this hardware.
11862         (arm_float_rhs_operand): Rename from fpa_rhs_operand.  Update Users.
11863         Only allow consts for FPA.
11864         (arm_float_add_operand): Rename from fpa_add_operand.  Update users.
11865         Only allow consts for FPA.
11866         (use_return_insn): Check for saved VFP regs.
11867         (arm_legitimate_address_p): Handle VFP DFmode addressing.
11868         (arm_legitimize_address): Ditto.
11869         (arm_general_register_operand): New function.
11870         (vfp_mem_operand): New function.
11871         (vfp_compare_operand): New function.
11872         (vfp_secondary_reload_class): New function.
11873         (arm_float_compare_operand): New function.
11874         (vfp_print_multi): New function.
11875         (vfp_output_fstmx): New function.
11876         (vfp_emit_fstm): New function.
11877         (arm_output_epilogue): Output VPF reg restore code.
11878         (arm_expand_prologue): Output VFP reg save code.
11879         (arm_print_operand): Add 'P'.
11880         (arm_hard_regno_mode_ok): Return modes for VFP regs.
11881         (arm_regno_class): Return classes for VFP regs.
11882         (arm_compute_initial_elimination_offset): Include space for VFP regs.
11883         (arm_get_frame_size): Ditto.
11884         * arm.h (FIXED_REGISTERS): Add VFP regs.
11885         (CALL_USED_REGISTERS): Ditto.
11886         (CONDITIONAL_REGISTER_USAGE): Enable VFP regs.
11887         (FIRST_VFP_REGNUM): Define.
11888         (LAST_VFP_REGNUM): Define.
11889         (IS_VFP_REGNUM): Define.
11890         (FIRST_PSEUDO_REGISTER): Include VFP regs.
11891         (HARD_REGNO_NREGS): Handle VFP regs.
11892         (REG_ALLOC_ORDER): Add VFP regs.
11893         (enum reg_class): Add VFP_REGS.
11894         (REG_CLASS_NAMES): Ditto.
11895         (REG_CLASS_CONTENTS): Ditto.
11896         (CANNOT_CHANGE_MODE_CLASS) Handle VFP Regs.
11897         (REG_CLASS_FROM_LETTER): Add 'w'.
11898         (EXTRA_CONSTRAINT_ARM): Add 'U'.
11899         (EXTRA_MEMORY_CONSTRAINT): Define.
11900         (SECONDARY_OUTPUT_RELOAD_CLASS): Handle VFP regs.
11901         (SECONDARY_INPUT_RELOAD_CLASS): Ditto.
11902         (REGISTER_MOVE_COST): Ditto.
11903         (PREDICATE_CODES): Add arm_general_register_operand,
11904         arm_float_compare_operand and vfp_compare_operand.
11905         * arm.md (various): Rename as above.
11906         (divsf3): Enable when TARGET_VFP.
11907         (divdf3): Ditto.
11908         (movdfcc): Ditto.
11909         (sqrtsf2): Ditto.
11910         (sqrtdf2): Ditto.
11911         (arm_movdi): Disable when TARGET_VFP.
11912         (arm_movsi_insn): Ditto.
11913         (movsi): Only split with general regs.
11914         (cmpsf): Use arm_float_compare_operand.
11915         (push_fp_multi): Restrict to TARGET_FPA.
11916         (vfp.md): Include.
11917         * vfp.md: New file.
11918         * fpa.md (various): Rename as above.
11919         * doc/md.texi: Document ARM w and U constraints.
11920
11921         2004-01-15  Paul Brook  <paul@codesourcery.com>
11922
11923         * config.gcc: Add with_fpu.  Allow with-float=softfp.
11924         * config/arm/arm.c (arm_override_options): Rename *-s to *s.
11925         Break out of loop when we find a float-abi.  Fix typo.
11926         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "fpu".
11927         Set -mfloat-abi=.
11928         * doc/install.texi: Document --with-fpu.
11929
11930         2003-01-14  Paul Brook  <paul@codesourcery.com>
11931
11932         * config.gcc (with_arch): Add armv6.
11933         * config/arm/arm.h: Rename TARGET_CPU_*_s to TARGET_CPU_*s.
11934         * config/arm/arm.c (arm_overrride_options): Ditto.
11935
11936         2004-01-08  Richard Earnshaw  <rearnsha@arm.com>
11937
11938         * arm.c (FL_ARCH3M): Renamed from FL_FAST_MULT.
11939         (FL_ARCH6): Renamed from FL_ARCH6J.
11940         (arm_arch3m): Renamed from arm_fast_multiply.
11941         (arm_arch6): Renamed from arm_arch6j.
11942         * arm.h: Update all uses of above.
11943         * arm-cores.def: Likewise.
11944         * arm.md: Likewise.
11945
11946         * arm.h (CPP_CPU_ARCH_SPEC): Emit __ARM_ARCH_6J__ define for armV6j,
11947         not arm6j.  Add entry for arch armv6.
11948
11949         2004-01-07  Richard Earnshaw  <rearnsha@arm.com>
11950
11951         * arm.c (arm_emit_extendsi): Delete.
11952         * arm-protos.h (arm_emit_extendsi): Delete.
11953         * arm.md (zero_extendhisi2): Also handle zero-extension of
11954         non-subregs.
11955         (zero_extendqisi2, extendhisi2, extendqisi2): Likewise.
11956         (thumb_zero_extendhisi2): Only match if not v6.
11957         (arm_zero_extendhisi2, thumb_zero_extendqisi2, arm_zero_extendqisi2)
11958         (thumb_extendhisi2, arm_extendhisi2, arm_extendqisi)
11959         (thumb_extendqisi2): Likewise.
11960         (thumb_zero_extendhisi2_v6, arm_zero_extendhisi2_v6): New patterns.
11961         (thumb_zero_extendqisi2_v6, arm_zero_extendqisi2_v6): New patterns.
11962         (thumb_extendhisi2_insn_v6, arm_extendhisi2_v6): New patterns.
11963         (thumb_extendqisi2_v6, arm_extendqisi_v6): New patterns.
11964         (arm_zero_extendhisi2_reg, arm_zero_extendqisi2_reg): Delete.
11965         (arm_extendhisi2_reg, arm_extendqisi2_reg): Delete.
11966         (arm_zero_extendhisi2addsi): Remove subreg.  Add attributes.
11967         (arm_zero_extendqisi2addsi, arm_extendhisi2addsi): Likewise.
11968         (arm_extendqisi2addsi): Likewise.
11969
11970         2003-12-31  Mark Mitchell  <mark@codesourcery.com>
11971
11972         Revert this change:
11973         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
11974         + REG addressing modes.
11975
11976         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
11977         + REG addressing modes.
11978
11979         2003-12-30  Mark Mitchell  <mark@codesourcery.com>
11980
11981         * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept
11982         CONSTANT_P_RTX.
11983
11984         2003-30-12  Paul Brook  <paul@codesourcery.com>
11985
11986         * longlong.h: protect arm inlines with !defined (__thumb__)
11987
11988         2003-30-12  Paul Brook  <paul@codesourcery.com>
11989
11990         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Always define __arm__.
11991
11992         2003-12-30  Nathan Sidwell  <nathan@codesourcery.com>
11993
11994         * builtins.c (expand_builtin_apply_args_1): Fix typo in previous
11995         change.
11996
11997         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
11998
11999         * builtins.c (expand_builtin_apply_args_1): Add pretend args size
12000         to the virtual incoming args pointer for downward stacks.
12001
12002         2003-12-29  Paul Brook  <paul@codesourcery.com>
12003
12004         * config/arm/arm-cores.def: Add cost function.
12005         * config/arm/arm.c (arm_*_rtx_costs): New functions.
12006         (arm_rtx_costs): Remove
12007         (struct processors): Add rtx_costs field.
12008         (all_cores, all_architectures): Ditto.
12009         (arm_override_options): Set targetm.rtx_costs.
12010         (thumb_rtx_costs): New function.
12011         (arm_rtx_costs_1): Remove cases handled elsewhere.
12012         * config/arm/arm.h (processor_type): Add COSTS parameter.
12013
12014         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
12015
12016         * config/arm/arm.md (generic_sched): arm926 has its own scheduler.
12017         (arm926ejs.md): Include it.
12018         * config/arm/arm926ejs.md: New pipeline description.
12019
12020         2003-12-24  Paul Brook  <paul@codesourcery.com>
12021
12022         * config/arm/arm.c (arm_arch6j): New variable.
12023         (arm_override_options): Set it.
12024         (arm_emit_extendsi): New function.
12025         * config/arm/arm-protos.h (arm_emit_extendsi): Add prototype.
12026         * config/arm/arm.h (arm_arch6j): Declare.
12027         * config/arm/arm.md: Add sign/zero extend insns.
12028
12029         2003-12-23  Paul Brook  <paul@codesourcery.com>
12030
12031         * config/arm/arm.c (all_architectures): Add armv6.
12032         * doc/invoke.texi: Document it.
12033
12034         2003-12-19  Paul Brook  <paul@codesourcery.com>
12035
12036         * config/arm/arm.md: Add load1 and load_byte "type" attrs.  Modify
12037         insn patterns to match.
12038         * config/arm/arm-generic.md: Ditto.
12039         * config/arm/cirrus.md: Ditto.
12040         * config/arm/fpa.md: Ditto.
12041         * config/amm/iwmmxt.md: Ditto.
12042         * config/arm/arm1026ejs.md: Ditto.
12043         * config/arm/arm1135jfs.md: Ditto.  Add insn_reservation and bypasses
12044         for 11_loadb.
12045
12046         2003-12-18  Nathan Sidwell  <nathan@codesourcery.com>
12047
12048         * config/arm/arm-protos.h (arm_no_early_alu_shift_value_dep): Declare.
12049         * config/arm/arm.c (arm_adjust_cost): Check shift cost for
12050         TYPE_ALU_SHIFT and TYPE_ALU_SHIFT_REG.
12051         (arm_no_early_store_addr_dep, arm_no_early_alu_shift_dep,
12052         arm_no_early_mul_dep): Correctly deal with conditional execution,
12053         parallels and single shift operations.
12054         (arm_no_early_alu_shift_value_dep): Define.
12055         * arm.md (attr type): Replace 'normal' with 'alu',
12056         'alu_shift' and 'alu_shift_reg'.
12057         (attr core_cycles): Adjust.
12058         (*addsi3_carryin_shift, andsi_not_shiftsi_si, *arm_shiftsi3,
12059         *shiftsi3_compare0, *notsi_shiftsi, *notsi_shiftsi_compare0,
12060         *not_shiftsi_compare0_scratch, *cmpsi_shiftsi, *cmpsi_shiftsi_swp,
12061         *cmpsi_neg_shiftsi, *arith_shiftsi, *arith_shiftsi_compare0,
12062         *arith_shiftsi_compare0_scratch, *sub_shiftsi,
12063         *sub_shiftsi_compare0, *sub_shiftsi_compare0_scratch,
12064         *if_shift_move, *if_move_shift, *if_shift_shift): Set type
12065         attribute appropriately.
12066         * config/arm/arm1026ejs.md (alu_op): Adjust.
12067         (alu_shift_op, alu_shift_reg_op): New.
12068         * config/arm/arm1136.md: Add better bypasses for early
12069         registers. Remove load[234] and store[234] bypasses.
12070         (11_alu_op): Adjust.
12071         (11_alu_shift_op, 11_alu_shift_reg_op): New.
12072
12073         2003-12-15  Nathan Sidwell  <nathan@codesourcery.com>
12074
12075         * config/arm/arm-protos.h (arm_no_early_store_addr_dep,
12076         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Declare.
12077         * config/arm/arm.c (arm_no_early_store_addr_dep,
12078         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Define.
12079         * config/arm/arm1026ejs.md: Add load-store bypass.
12080         * config/arm/arm1136jfs.md (11_alu_op): Take 2 cycles.
12081         Add bypasses between instructions.
12082
12083         2003-12-10  Paul Brook  <paul@codesourcery.com>
12084
12085         * config/arm/arm.c (arm_fpu_model): New variable.
12086         (arm_fload_abi): New variable.
12087         (target_fpe_name): Rename from target_fp_name.
12088         (target_fpu_name): New variable.
12089         (arm_is_cirrus): Remove.
12090         (fpu_desc): New struct.
12091         (all_fpus): Define.
12092         (pf_model_for_fpu): Define.
12093         (all_loat_abis): Define.
12094         (arm_override_options): Set fp arch flags based on -mfpu=
12095         and -float-abi=.
12096         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
12097         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
12098         (*): Use new TARGET_* flags.
12099         * config/arm/arm.h (TARGET_ANY_HARD_FLOAT): Remove.
12100         (TARGET_HARD_FLOAT): No longer implies TARGET_FPA.
12101         (TARGET_SOFT_FLOAT): Ditto.
12102         (TARGET_SOFT_FLOAT_ABI): New.
12103         (TARGET_MAVERICK): Rename from TARGET_CIRRUS.  No longer implies
12104         TARGET_HARD_FLOAT.
12105         (TARGET_VFP): No longer implies TARGET_HARD_FLOAT.
12106         (TARGET_OPTIONS): Add -mfpu=.
12107         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
12108         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
12109         (arm_pf_model): Define.
12110         (arm_float_abi_type): Define.
12111         (fputype): Add FPUTYPE_VFP.  Change SOFT_FPA->NONE
12112         * config/arm/arm.md: Use new TARGET_* flags.
12113         * config/arm/cirrus.md: Ditto.
12114         * config/arm/fpa.md: Ditto.
12115         * config/arm/elf.h (ASM_SPEC): Pass -mfloat-abi= and -mfpu=.
12116         * config/arm/semi.h (ASM_SPEC): Ditto.
12117         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Specify vfp.
12118         (FPUTYPE_DEFAULT): Set to VFP.
12119         * doc/invoke.texi: Document -mfpu= and -mfloat-abi=.
12120
12121         2003-11-22  Phil Edwards  <phil@codesourcery.com>
12122
12123         PR target/12476
12124         * config/arm/arm.c (arm_output_mi_thunk):  In Thumb mode, use
12125         'bx' instead of 'b' to avoid branch range restrictions.  Output
12126         the thunk immediately before the thunked-to function.
12127         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME):  Do not emit
12128         .thumb_func if a thunk is being generated.  Emit .code 16 along
12129         with .thumb_func if a thunk is not being generated.
12130
12131         2003-11-15  Nicolas Pitre <nico@cam.org>
12132
12133         * config/arm/arm.md (ashldi3, arm_ashldi3_1bit, ashrdi3,
12134         arm_ashrdi3_1bit, lshrdi3, arm_lshrdi3_1bit): New patterns.
12135         * config/arm/iwmmxt.md (ashrdi3_iwmmxt): Renamed from ashrdi3.
12136         (lshrdi3_iwmmxt): Renamed from lshrdi3.
12137         * config/arm/arm.c (IWMMXT_BUILTIN2): Renamed argument accordingly.
12138
12139         2003-11-12  Steve Woodford  <scw@wasabisystems.com>
12140             Ian Lance Taylor  <ian@wasabisystems.com>
12141
12142         * config/arm/lib1funcs.asm (ARM_DIV_BODY, ARM_MOD_BODY): Add new
12143         code for __ARM_ARCH__ >= 5 && ! defined (__OPTIMIZE_SIZE__).
12144
12145         2003-11-05  Phil Edwards  <phil@codesourcery.com>
12146
12147         * config/arm/arm.md (insn):  Add new V6 instruction names.
12148         (generic_sched):  New attr.
12149         * config/arm/arm-generic.md:  Use generic_sched here.
12150         * config/arm/arm1026ejs.md:  Do not model fetch/issue/decode
12151         stages of pipeline.  Adjust latency counts accordingly.
12152         * config/arm/arm1136jfs.md:  New file.
12153
12154         2003-10-28  Mark Mitchell  <mark@codesourcery.com>
12155
12156         * config/arm/arm.h (processor_type): New enumeration type.
12157         (CPP_ARCH_DEFAULT_SPEC): Set appropriately for ARM 926EJ-S,
12158         ARM1026EJ-S, ARM1136J-S, and ARM1136JF-S processor cores.
12159         (CPP_CPU_ARCH_SPEC): Likewise.
12160         * config/arm/arm.c (arm_tune): New variable.
12161         (all_cores): Use cores.def.
12162         (all_architectures): Add representative processor.
12163         (arm_override_options): Restructure way in which tuning
12164         information is deduced.
12165         * arm.md: Update "insn" and "type" attributes throughout.
12166         (insn): New attribute.
12167         (type): Compute "mult" from "insn" attribute.  Add load2,
12168         load3, load4 alternatives.
12169         (arm automaton): Move to arm-generic.md.
12170         * config/arm/arm-cores.def: New file.
12171         * config/arm/arm-generic.md: Likewise.
12172         * config/arm/arm1026ejs.md: Likewise.
12173
12174 2004-02-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
12175
12176         * doc/invoke.texi (SPARC options): Remove -mflat and
12177         all -mxxx (xxx:chip) options.
12178         * config/sparc/aout.h (DBX_REGISTER_NUMBER): Delete.
12179         * config/sparc/litecoff.h (DBX_REGISTER_NUMBER): Likewise.
12180         * config/sparc/netbsd-elf.h (DBX_REGISTER_NUMBER): Likewise.
12181         * config/sparc/sol2.h (DBX_REGISTER_NUMBER): Likewise.
12182         * config/sparc/sparc-protos.h: Delete sparc_flat_* prototypes.
12183         * config/sparc/sparc.c: Likewise.
12184         (sparc_output_function_prologue): Remove TARGET_FLAT handling.
12185         (sparc_nonflat_function_prologue): Rename into sparc_function_prologue.
12186         (sparc_output_function_epilogue): Remove TARGET_FLAT handling.
12187         (sparc_nonflat_function_epilogue): Rename into sparc_function_epilogue.
12188         (struct sparc_frame_info, current_frame_info, zero_frame_info): Delete.
12189         (sparc_flat_must_save_register_p): Likewise.
12190         (sparc_flat_compute_frame_size): Likewise.
12191         (sparc_flat_save_restore): Likewise.
12192         (sparc_flat_function_prologue): Likewise.
12193         (sparc_flat_function_epilogue): Likewise.
12194         (sparc_flat_epilogue_delay_slots): Likewise.
12195         (sparc_flat_eligible_for_epilogue_delay): Likewise.
12196         (sparc_function_ok_for_sibcall): Remove TARGET_FLAT handling.
12197         * config/sparc/sparc.h (MASK_FLAT, TARGET_FLAT): Delete.
12198         (TARGET_SWITCHES): Remove -mflat and all -mxxx (xxx:chip) options.
12199         (SPARC_INCOMING_INT_ARG_FIRST): Remove TARGET_FLAT handling.
12200         (CONDITIONAL_REGISTER_USAGE): Likewise.
12201         (FRAME_POINTER_REQUIRED): Likewise.
12202         (INITIAL_ELIMINATION_OFFSET): Likewise.
12203         (BASE_RETURN_VALUE_REG): Likewise.
12204         (BASE_OUTGOING_VALUE_REG): Likewise.
12205         (BASE_PASSING_ARG_REG): Likewise.
12206         (BASE_INCOMING_ARG_REG): Likewise.
12207         (INCOMING_REGNO): Likewise.
12208         (OUTGOING_REGNO): Likewise.
12209         (LOCAL_REGNO): Likewise.
12210         (DELAY_SLOTS_FOR_EPILOGUE): Likewise.
12211         (ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise.
12212         (EPILOGUE_USES): Likewise.
12213         * config/sparc/sparc.md ("isa" attribute): Change "v6" into "v7".
12214         ("flat" attribute): Delete.
12215         (do_builtin_setjmp_setup): Remove TARGET_FLAT and "flat" attribute
12216         handling.
12217         (call followed by jump define_peephole's): Delete.
12218         (exception_receiver): Likewise.
12219         (builtin_setjmp_receiver): Likewise.
12220         * config/sparc/t-sparclite (MULTILIB_OPTIONS): Remove -mflat.
12221
12222 2004-02-03  Paolo Bonzini  <bonzini@gnu.org>
12223
12224         PR c/11658
12225         PR c/13994
12226         * Makefile.in (c-parse.o, c-convert.o, c-typeck.o): Depend
12227         on langhooks.h.
12228         * objc/Make-lang.in (objc-parse.o): Depend on langhooks.h.
12229         * c-parse.in, c-convert.c, c-typeck.c, objc/objc-act.c:
12230         Include langhooks.h.  Replace c_common_truthvalue_conversion
12231         with the truthvalue_conversion language hook throughout.
12232         (expr_no_commas): Call default_conversion before save_expr
12233         for the first term of the production 'x ? : y'.
12234         * c-common.c (c_common_truthvalue_conversion): Remove
12235         obsolete block.  Invoke recursively the hook instead
12236         of this function.
12237         * c-convert.c (convert): handle ERROR_MARK_NODE.
12238         * c-typeck.c (build_binary_op): handle ERROR_MARK_NODE
12239         returned by the truthvalue_conversion language hook.
12240         * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
12241         c_objc_common_truthvalue_conversion.
12242         * c-objc-common.c (c_objc_common_truthvalue_conversion):
12243         New function.
12244         * c-tree.h (c_objc_common_truthvalue_conversion): Declare it.
12245         * objc/objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
12246         c_objc_common_truthvalue_conversion.
12247
12248 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
12249
12250         * config/c4x/c4x.h (FUNCTION_VALUE): Use gen_rtx_REG instead
12251         of gen_rtx.
12252         (LIBCALL_VALUE): Likewise.
12253         * config/ip2k/ip2k.c (mdr_try_propagate_clr_sequence): Use
12254         gen_rtx_CC0 instead of gen_rtx.
12255         * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use
12256         gen_rtx_fmt_e and gen_rtx_fmt_ee instead of gen_rtx.
12257         (m68hc11_expand_compare): Use gen_rtx_fmt_ee instead of
12258         gen_rtx.
12259         (m68hc11_emit_logical): Likewise.
12260
12261 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
12262
12263         * config/alpha/alpha.c, config/arm/arm.c, config/c4x/c4x.c,
12264         config/fr30/fr30.md, config/frv/frv.c, config/frv/frv.md,
12265         config/h8300/h8300.c, config/ia64/ia64.c, config/ip2k/ip2k.md,
12266         config/m32r/m32r.md, config/m68hc11/m68hc11.c,
12267         config/mips/mips.md, config/mmix/mmix.c,
12268         config/mn10300/mn10300.c, config/mn10300/mn10300.md,
12269         config/ns32k/ns32k.c, config/pa/pa.md, config/pdp11/pdp11.c,
12270         config/rs6000/altivec.md, config/s390/s390.c,
12271         config/s390/s390.h, config/s390/s390.md, config/sh/sh.c,
12272         config/sh/sh.h, config/sh/sh.md, config/stormy16/stormy16.c:
12273         Use const0_rtx instead of GEN_INT (0).  Do the same for other
12274         constants that are readily available.
12275
12276 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
12277
12278         * doloop.c, optabs.c, regmove.c, sched-deps.c,
12279         config/i386/i386.c, config/i386/i386.md: Use const0_rtx
12280         instead of GEN_INT (0).  Do the same for other constants that
12281         are readily available.
12282
12283 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
12284
12285         * combine.c (simplify_set): Use gen_rtx_fmt_e instead of
12286         gen_rtx.
12287         * emit-rtl.c (init_emit_once): Use gen_rtx_PC and gen_rtx_CC0
12288         instead of gen_rtx.
12289         * reload1.c (init_elim_table): Use gen_rtx_fmt_e instead of
12290         gen_rtx.
12291         * config/ns32k/ns32k.md (udivmodhi4): Use gen_rtx_IOR and
12292         gen_rtx_ASHIFT instead of gen_rtx.
12293         (udivmodqi4): Likewise.
12294
12295 2004-02-02  Richard Henderson  <rth@redhat.com>
12296
12297         PR target/13789
12298         * expr.c (store_expr): Use force_operand before emit_move_insn.
12299
12300 2004-02-02  Jeff Law  <law@redhat.com>
12301             Roger Sayle  <roger@eyesopen.com>
12302
12303         * tree.c (commutative_tree_code, associative_tree_code): New
12304         functions.
12305         (iterative_hash_expr): Use commutative_tree_code.
12306         * tree.h (commutative_tree_code, associative_tree_code): Declare.
12307         * fold-const.c (operand_equal_p): Use commutative_tree_code
12308         rather than inlining the commutativity check.
12309         (fold): Likewise.
12310
12311 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
12312
12313         * system.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Poison.
12314         * config/frv/frv-protos.h: Remove the prototype for
12315         frv_function_arg_keep_as_reference.
12316         * config/frv/frv.c (frv_function_arg_keep_as_reference):
12317         Remove.
12318         * config/frv/frv.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Likewise.
12319         * config/stormy16/stormy16.h: Remove the commented-out
12320         definition of FUNCTION_ARG_KEEP_AS_REFERENCE.
12321
12322 2004-02-03  Alan Modra  <amodra@bigpond.net.au>
12323
12324         PR target/13914
12325         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Use ap
12326         for retaddr_column.
12327
12328 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
12329
12330         * genemit.c (gen_exp): Generate gen_rtx_fmt_e* instead of
12331         gen_rtx.
12332
12333 2004-02-02  Eric Christopher  <echristo@redhat.com>
12334             Zack Weinberg  <zack@codesourcery.com>
12335
12336         * c-opts.c (c_common_handle_option): Add -finput-charset.
12337         * c.opt: Ditto.
12338         * cppcharset.c (one_iso88591_to_utf8): Remove.
12339         (convert_iso88591_utf8): Ditto.
12340         (conversion_tab): Remove 8859-1 converter.
12341         (_cpp_input_to_utf8): Remove.
12342         (_cpp_init_iconv_buffer): Ditto.
12343         (_cpp_close_iconv_buffer): Ditto.
12344         (_cpp_convert_input): New function.
12345         (_cpp_default_encoding): Ditto.
12346         * cpphash.h: Add/remove prototypes for above.
12347         * cppfiles.c (read_file_guts): Use _cpp_convert_input.
12348         * cppinit.c (cpp_create_reader): Use _cpp_default_encoding
12349         for narrow execution and input character sets.
12350         * cpplib.c (cpp_push_buffer): Delete uses of removed functions.
12351         * doc/cppopts.texi: Document -finput-charset.
12352
12353 2004-02-02  David Edelsohn  <edelsohn@gnu.org>
12354
12355         * rtlanal.c (refers_to_regno_p): Test regno, not inner_regno,
12356         against FIRST_PSEUDO_REGISTER.
12357
12358 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
12359
12360         * doc/invoke.texi (SPARC options): Further improve.
12361
12362 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
12363
12364         * config/arm/arm.md, config/c4x/c4x.md, config/cris/cris.md,
12365         config/h8300/h8300.c, config/ip2k/ip2k.md,
12366         config/iq2000/iq2000.c, config/mips/mips.c,
12367         config/rs6000/rs6000.c, config/rs6000/rs6000.md,
12368         config/sh/sh.c, config/sh/sh.md, config/stormy16/stormy16.c,
12369         config/v850/v850.md: Fix indentation.
12370
12371 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
12372
12373         * config/sparc/sparc.c (function_arg_slotno): Align TImode
12374         arguments on a 16-byte boundary in the parameter array if ARCH64.
12375         Split handling of TFmode.
12376
12377 2004-02-02  Paolo Bonzini  <bonzini@gnu.org>
12378
12379         * rtlanal.c (reg_overlap_mentioned_p) [!ENABLE_CHECKING]:
12380         Don't test CONSTANT_P (x).
12381         (reg_overlap_mentioned_p): Merge check for STRICT_LOWPART,
12382         ZERO_EXTRACT, SIGN_EXTRACT with the switch statement.
12383         Fix misindentation.
12384
12385 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
12386
12387         * doc/invoke.texi (SPARC options): Document that -mflat is deprecated.
12388
12389 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
12390
12391         * config/arc/arc.md, config/arm/arm.c, config/arm/arm.md,
12392         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.md,
12393         config/frv/frv.c, config/h8300/h8300.c, config/ip2k/ip2k.md,
12394         config/iq2000/iq2000.c, config/m32r/m32r.c,
12395         config/mcore/mcore.c, config/mips/mips.c, config/mmix/mmix.md,
12396         config/mn10300/mn10300.c, config/rs6000/rs6000.c,
12397         config/rs6000/rs6000.md, config/sh/sh.c, config/sh/sh.md,
12398         config/stormy16/stormy16.c, config/v850/v850.md,
12399         config/xtensa/xtensa.c: Replace gen_rtx with gen_rtx_fmt_e*.
12400
12401 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
12402
12403         * config/mcore/mcore.c (block_move_sequence): Replace
12404         gen_rtx_CONST_INT with GEN_INT.
12405
12406 2004-02-02  Jan Hubicka  <jh@suse.cz>
12407
12408         * alias.c (record_set): Use hard_regno_nregs.
12409         * bt-load.c (find_btr_reference, note_btr_set): Likewise.
12410         * builtins.c (apply_args_size): Likewise.
12411         * caller-save.c (setup_save_areas, save_call_clobbered_regs,
12412         mark_set_regs, add_stored_regs, mark_referenced_regs,
12413         insert_restore, insert_save, insert_one_insn): Likewise.
12414         * cfgcleanup.c: Include regs.h
12415         (mark_effect, mentions_nonequal_regs): Likewise.
12416         * cfgrtl.c (mark_killed_regs): Likewise
12417         * combine.c (update_table_tick, record_value_for_reg,
12418         record_dead_and_set_regs, get_last_value_validate, use_crosses_set_p,
12419         reg_dead_at_p_1, reg_dead_at_p, mark_used_regs_combine, move_deaths,
12420         reg_bitfield_target_p, distribute_notes): Likewise.
12421         * cse.c (mention_regs, insert, invalidate, invalidate_for_call,
12422         exp_equiv_p, cse_insn): Likewise.
12423         * cselib.c (cselib_lookup): Likewise.
12424         (cselib_invalidate_regno, cselib_record_set): Likewise.
12425         * df.c (df_ref_record): Likewise.
12426         * dwarf2out.c (reg_loc_descriptor, multiple_reg_loc_descriptor):
12427         Likewise.
12428         * flow.c (mark_reg, insn_dead_p, mark_set_1, mark_used_reg,
12429         count_or_remove_death_notes_bb): Likewise.
12430         * function.c (aggregate_value_p, keep_stack_depressed): Likewise.
12431         * gloval.c (global_alloc, find_reg, mark_reg_store, mark_reg_conflicts,
12432         mark_reg_death, set_preference, reg_becomes_live, reg_dies): Likewise.
12433         * integrate.c (mark_stores): Likewise.
12434         * jump.c (delete_prior_computation): Likewise.
12435         * lcm.c (reg_dies, reg_becomes_live): Likewise.
12436         * local-alloc.c (combine_regs, find_free_reg, post_mark_life): Likewise.
12437         * loop.c (LOOP_REGNO_NREGS): Likewise.
12438         * postreload.c (reload_combine, reload_combine_note_store,
12439         reload_combine_note_use, reload_cse_move2add, move2add_note_store): Likewise.
12440         * ra-colorize.c (combine, color_usable_p, get_free_reg,
12441         calculate_dont_begin, calculate_dont_begin, colorize_one_web,
12442         try_recolor_web, insert_coalesced_conflicts, check_colors,
12443         break_precolored_alias): Likewise.
12444         * ra-debug.c: Include regs.h
12445         (ra_print_rtx_object): Likewise.
12446         * ra-rewrite (choose_spill_colors): Likewise.
12447         (spill_same_color_p, update_spill_colors, spill_is_free): Likewise.
12448         * ra.c (init_ra): Likewise.
12449         * recog.c (reg_fits_class_p, peep2_reg_dead_p,
12450         peep2_find_free_register): Likewise.
12451         * reg-stack.c (subst_stack_regs_pat, convert_regs_exit): Likewise.
12452         * regclass.c (hard_regno_nregs): New array.
12453         (init_reg_modes_once): Initialize it.
12454         (choose_hard_reg_mode): Use it.
12455         (record_reg_classes): Likewise.
12456         * regmove.c (mark_flags_life_zones): Likewise.
12457         * regrename.c (note_sets, clear_dead_regs, regrename_optimize,
12458         scan_rtx_reg, dump_def_use_chain, kill_value, set_value_regno,
12459         copy_value, maybe_mode_change, find_oldest_value_reg,
12460         copyprop_hardreg_forward_1):
12461         * regs.h (hard_regno_nregs): Declare.
12462         * realod.c (reload_inner_reg_of_subreg): Use it.
12463         (push_reload, combine_reloads, find_dummy_reload,
12464         hard_reg_set_here_p, operands_match_p, decompose, find_reloads,
12465         refers_to_regno_for_reload_p, find_equiv_reg, regno_clobbered_p,
12466         reload_adjust_reg_for_mode): Likewise.
12467         * reload1.c (compute_use_by_pseudos, count_pseudo,
12468         count_spilled_pseudo, find_reg, find_reload_regs, mark_home_live,
12469         spill_hard_reg, forget_old_reloads_1, mark_reload_reg_in_use,
12470         clear_reload_reg_in_use, reload_reg_free_for_value_p, free_for_value_p
12471         allocate_reload_reg, choose_reload_regs, emit_reload_insns,
12472         delete_output_reload): Likewise.
12473         * resource.c (update_live_status, mark_referenced_resources,
12474         mark_set_resources, mark_target_live_regs): Likewise.
12475         * rtlanal.c:  Include regs.h
12476         (refers_to_regno_p, reg_overlap_mentioned_p, dead_or_set_p,
12477         dead_or_set_regno_p, find_regno_note, find_reg_fusage,
12478         subreg_regno_offset, subreg_offset_representable_p,
12479         hoist_test_store): Likewise.
12480         * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
12481         * sched-rgn.c (check_live_1, update_live_1): Likewise.
12482         * stmt.c: Include regs.h
12483         (decl_conflicts_with_clobbers_p): Likewise.
12484         * varasm.c (make_decl_rtl): Likewise.
12485         * Makefile.in (cfgcleanup.o, rtlanal.o, ra-debug.o): Add regs.h dependnecy.
12486
12487 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
12488
12489         * config/arm/arm.c, config/arm/arm.h, config/arm/arm.md,
12490         config/arm/linux-gas.h, config/arm/netbsd-elf.h,
12491         config/arm/netbsd.h, config/arm/pe.c, config/avr/avr.c,
12492         config/avr/avr.h, config/avr/avr.md, config/c4x/c4x.h,
12493         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
12494         config/frv/frv.h, config/ip2k/ip2k.c, config/iq2000/iq2000.c,
12495         config/iq2000/iq2000.h, config/m32r/m32r.c,
12496         config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
12497         config/m68hc11/m68hc11.md, config/m68k/m68k.md,
12498         config/mcore/mcore.c, config/mcore/mcore.h,
12499         config/mcore/mcore.md, config/mips/mips.c,
12500         config/ns32k/ns32k.h, config/ns32k/ns32k.md,
12501         config/rs6000/rs6000.c, config/s390/s390.c,
12502         config/s390/s390.md, config/sparc/sparc.c, config/v850/v850.c,
12503         config/xtensa/xtensa.h, config/xtensa/xtensa.md: Replace
12504         "gen_rtx (FOO, " with "gen_rtx_FOO (".
12505
12506 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
12507
12508         * config/h8300/h8300.md (two peephole2's): New.
12509
12510 2004-02-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
12511
12512         * config/sparc/sol2-bi.h: Handle TARGET_CPU_ultrasparc3.
12513         (CPP_CPU_SPEC): Handle -mcpu=ultrasparc3.
12514         (ASM_CPU_SPEC): Likewise
12515         * config/sparc/sol2.h: Handle TARGET_CPU_ultrasparc3.
12516         (ASM_CPU_SPEC): Remove -mcpu=v8plus.  Handle -mcpu=ultrasparc3.
12517
12518 2004-02-01  Roger Sayle  <roger@eyesopen.com>
12519
12520         * builtins.c (expand_builtin_pow): If flag_unsafe_math_optimizations
12521         isn't set, don't call expand_builtin_mathfn_2 to use the pow optab.
12522         (expand_builtin): Always call expand_builtin_pow.
12523
12524 2004-02-01  Roger Sayle  <roger@eyesopen.com>
12525
12526         * builtins.def (BUILT_IN_SIGNBIT, BUILT_IN_SIGNBITF,
12527         BUILT_IN_SIGNBITL): New GCC builtins.
12528         * builtins.c (expand_builtin_signbit): New function to RTL expand
12529         calls to signbit, signbitf and signbitl as inline intrinsics.
12530         (expand_builtin): Call expand_builtin_signbit for BUILT_IN_SIGNBIT*.
12531         (fold_builtin_signbit): New function to perform constant folding
12532         of signbit, signbitf and signbitl.
12533         (fold_builtin): Call fold_builtin_signbit for BUILT_IN_SIGNBIT*.
12534
12535         * doc/extend.texi: Document new signbit{,f,l} builtins.
12536
12537 2004-02-01  Richard Sandiford  <rsandifo@redhat.com>
12538
12539         * config/mips/mips.md (adddi3_internal_2): Remove superfluous %s.
12540
12541 2004-02-01  Chris Demetriou  <cgd@broadcom.com>
12542
12543         * config/mips/mips.h (PREDICATE_CODES): Remove entries for
12544         "mips_const_double_ok" and "simple_memory_operand", which were
12545         removed from the MIPS port with the mips-3_4-rewrite branch merge.
12546         * config/mips/mips.c (mips16_lay_out_constants): Update comment
12547         for removal of simple_memory_operand.
12548
12549 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
12550
12551         * config/c4x/c4x.md: Use GEN_INT instead of
12552         gen_rtx (CONST_INT, ...).
12553
12554 2004-01-31  Richard Henderson  <rth@redhat.com>
12555
12556         * varasm.c (output_constant_pool): Don't zap the pool.
12557
12558 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
12559
12560         * genrecog.c (decision_type): Add DT_const_int.
12561         (write_cond) [DT_const_int]: Print a comparison against small
12562         constant.
12563         (write_node): Simplify comparisons against small constants
12564         before printing tests.
12565
12566 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
12567
12568         * config/m32r/m32r.c (m32r_load_pic_register): Use GEN_INT
12569         instead of gen_rtx_CONST_INT.
12570
12571 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
12572
12573         * config/xtensa/xtensa.h (DYNAMIC_CHAIN_ADDRESS): Use GEN_INT
12574         instead of gen_rtx_CONST_INT.
12575
12576 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
12577
12578         * target-def.h (TARGET_STRICT_ARGUMENT_NAMING): Define as
12579         hook_bool_CUMULATIVE_ARGS_false.
12580         * targhooks.c (default_strict_argument_naming): Rename to
12581         hook_bool_CUMULATIVE_ARGS_false.
12582         * targhooks.h: Update the prototype for
12583         default_strict_argument_naming.
12584
12585 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
12586
12587         * config/sh/sh.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
12588         * config/sh/sh.h: Likewise.
12589         * config/sh/sh.md: Likewise.
12590
12591 2004-01-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
12592
12593         * doc/invoke.texi (SPARC options): Restructure and update.
12594
12595 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
12596
12597         * system.h (PROMOTE_FUNCTION_ARGS, STRUCT_VALUE_INCOMING, and
12598         STRICT_ARGUMENT_NAMING): Poison.
12599         * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS): Define as
12600         hook_bool_tree_false.
12601         * targhooks.c (default_promote_function_args): Remove.
12602         (default_struct_value_rtx): Don't use STRUCT_VALUE_INCOMING.
12603         Don't check incoming.
12604         (default_strict_argument_naming): Don't use
12605         STRICT_ARGUMENT_NAMING.
12606         * targhooks.h: Remove the prototype for
12607         default_promote_function_args.
12608
12609 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
12610
12611         * config/i386/i386-protos.h: Remove the prototype for
12612         ix86_setup_incoming_varargs.
12613         * config/i386/i386.c (TARGET_SETUP_INCOMING_VARARGS): New.
12614         (ix86_setup_incoming_varargs): Make it static.
12615         * config/i386/i386.h (SETUP_INCOMING_VARARGS): Remove.
12616
12617 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
12618
12619         * alloc-pool.c: Fix comment typos.
12620         * builtin-types.def: Likewise.
12621         * builtins.def: Likewise.
12622         * c-pretty-print.c: Likewise.
12623         * df.h: Likewise.
12624         * reload1.c: Likewise.
12625
12626 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
12627
12628         * doc/invoke.texi: Follow spelling conventions.
12629         * doc/tm.texi: Likewise.
12630
12631 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
12632
12633         * doc/install.texi: Fix typos.
12634         * doc/invoke.texi: Likewise.
12635
12636 2004-01-31  Ulrich Weigand  <uweigand@de.ibm.com>
12637
12638         * config/s390/s390.c (s390_decompose_address): Do not treat virtual
12639         registers as pointers.
12640         * config/s390/s390.md ("*la_31" second peephole2): Fix incorrect mode.
12641
12642 2004-01-31  Paolo Bonzini  <bonzini@gnu.org>
12643
12644         * combine.c (cse_main): Set gen_lowpart to gen_lowpart_for_combine
12645         and restore it to gen_lowpart_general on exit.
12646         (gen_lowpart_for_combine): Adjust all callers to go through
12647         gen_lowpart.
12648         * cse.c (cse_main): Set gen_lowpart to gen_lowpart_if_possible
12649         and restore it to gen_lowpart_general on exit.
12650         (gen_lowpart_if_possible): Adjust all callers to go through
12651         gen_lowpart.
12652         * emit-rtl.c (gen_lowpart_general): New name of gen_lowpart.
12653         (gen_lowpart): Declare as pointer to function, initialized to
12654         gen_lowpart_general.
12655         * rtl.h (gen_lowpart): Declare as pointer to function.
12656
12657 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
12658
12659         * bt-load.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
12660         * calls.c: Likewise.
12661         * emit-rtl.c: Likewise.
12662         * function.c: Likewise.
12663         * reload1.c: Likewise.
12664         * config/i386/cygming.h: Likewise.
12665         * config/i386/i386.c: Likewise.
12666         * config/i386/winnt.c: Likewise.
12667
12668 2004-01-30  Dara Hazeghi  <dhazeghi@yahoo.com>
12669
12670         PR bootstrap/9249
12671         * doc/install.texi: document --enable-__cxa_atexit option.
12672         * configure.ac: Disable __cxa_atexit if not supported.
12673         * configure: Regenerate.
12674
12675 2003-01-30  Daniel Berlin  <dberlin@dberlin.org>
12676
12677         * ggc-zone.c (ggc_free): New function.
12678
12679 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
12680
12681         alloc-pool.c, c-lex.c, c-pragma.h, c-semantics.c, cfghooks.c,
12682         cfghooks.h, cfglayout.c, cfgloopmanip.c, debug.c, debug.h,
12683         flow.c, genextract.c, ggc-common.c, ggc-page.c, ggc.h,
12684         ifcvt.c, jump.c, loop-unswitch.c, timevar.c, timevar.def,
12685         tree-optimize.c, vmsdbgout.c, config/fp-bit.c,
12686         config/alpha/alpha.c, config/alpha/alpha.h,
12687         config/alpha/alpha.md, config/alpha/unicosmk.h,
12688         config/alpha/vms.h, config/arm/linux-elf.h, config/avr/avr.c,
12689         config/c4x/c4x-protos.h, config/c4x/c4x.md,
12690         config/d30v/d30v.h, config/frv/frv.md, config/frv/frvbegin.c,
12691         config/frv/frvend.c, config/i386/cygming.h,
12692         config/i386/djgpp.h, config/i386/emmintrin.h,
12693         config/i386/gthr-win32.c, config/i386/i386-interix.h,
12694         config/i386/i386-protos.h, config/i386/openbsd.h,
12695         config/i386/winnt.c, config/i386/xm-mingw32.h,
12696         config/i386/xmmintrin.h, config/ia64/ia64.md,
12697         config/iq2000/iq2000.md, config/m32r/m32r.md,
12698         config/m68k/m68k.md, config/mcore/mcore-elf.h,
12699         config/mcore/mcore.md, config/mips/elf.h, config/mips/elf64.h,
12700         config/mips/iris5gas.h, config/mips/iris6.h,
12701         config/mips/iris6gas.h, config/mips/linux.h,
12702         config/mips/mips.md, config/mips/netbsd.h,
12703         config/mips/openbsd.h, config/mips/windiss.h,
12704         config/pa/fptr.c, config/rs6000/aix.h,
12705         config/rs6000/altivec.h, config/rs6000/darwin.h,
12706         config/rs6000/xcoff.h, config/s390/s390-protos.h,
12707         config/s390/s390.c, config/s390/s390.h, config/s390/s390.md,
12708         config/sh/netbsd-elf.h, config/sh/sh.h, config/sh/vxworks.h,
12709         config/sparc/sol2.h: Update copyright.
12710
12711 2004-01-30  Kelley Cook  <kcook@gcc.gnu.org>
12712
12713         * Makefile.in (abs_docdir, abs_srcdir): Define.
12714         (doc/%.dvi, doc/gccinstall.dvi): Use $(abs_docdir).
12715
12716 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
12717
12718         * genconfig.c (main): Have CC0_P check its operand even on a
12719         target without cc0.
12720
12721 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
12722
12723         * config/alpha/alpha.c: Remove mentions of deprecates macros
12724         in comments, remove some target-independent comments about target
12725         macros, and/or add minimal function comments for target hook
12726         implementations.
12727         * config/avr/avr.c: Likewise.
12728         * config/ia64/ia64.h: Likewise.
12729         * config/ip2k/ip2k.c: Likewise.
12730         * config/iq2000/iq2000.c: Likewise.
12731         * config/m32r/m32r.h: Likewise.
12732         * config/m68hc11/m68hc11.c: Likewise.
12733         * config/mcore/mcore.c: Likewise.
12734         * config/mmix/mmix.c: Likewise.
12735         * config/mn10300/mn10300.c: Likewise.
12736         * config/pa/pa.c: Likewise.
12737         * config/pdp11/pdp11.c: Likewise.
12738         * config/rs6000/rs6000.h: Likewise.
12739         * config/sh/sh.c: Likewise.
12740         * config/sh/sh.h: Likewise.
12741         * config/sparc/sparc.c: Likewise.
12742         * config/sparc/sparc.h: Likewise.
12743         * config/stormy16/stormy16.c: Likewise.
12744         * config/xtensa/xtensa.c: Likewise.
12745
12746 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
12747
12748         PR optimization/12147
12749         * reload1.c (reload_reg_free_p): RELOAD_OTHER conflicts with
12750         RELOAD_FOR_OPADDR_ADDR.
12751         (reload_reg_reaches_end_p): RELOAD_FOR_OTHER_ADDRESS register
12752         might be reused as RELOAD_FOR_OPADDR_ADDR register.
12753
12754 2004-01-30  Jan Hubicka  <jh@suse.cz>
12755
12756         * reload.c (get_secondary_mem): Fix updating of
12757         secondary_memlocs_elim_used.
12758
12759 2004-01-30  Richard Henderson  <rth@redhat.com>
12760
12761         * varasm.c (struct rtx_const, struct pool_constant): Remove.
12762         (MAX_RTX_HASH_TABLE): Remove.
12763         (const_rtx_hash_table, const_rtx_sym_hash_table): Remove.
12764         (first_pool, last_pool, pool_offset): Remove.
12765         (struct rtx_constant_pool): Split out from ...
12766         (struct varasm_status): ... here.  Reference one via pointer.
12767         (struct constant_descriptor_rtx): Merge struct pool_constant.
12768         (SYMHASH): Remove.
12769         (decode_rtx_const): Remove.
12770         (const_hash_rtx, compare_constant_rtx): Remove.
12771         (record_constant_rtx): Remove.
12772         (const_desc_rtx_hash, const_desc_rtx_eq): New.
12773         (const_desc_rtx_sym_hash, const_desc_rtx_sym_eq): New.
12774         (const_rtx_hash_1, const_rtx_hash): New.
12775         (init_varasm_status): Allocate a rtx_constant_pool, and its hashes.
12776         (simplify_subtraction): Use simplify_rtx.
12777         (force_const_mem): Rewrite to use new data structures.
12778         (find_pool_constant): Likewise.
12779         (get_pool_constant, get_pool_constant_mark,
12780         get_pool_constant_for_function, get_pool_mode,
12781         get_pool_mode_for_function, get_pool_offset, get_pool_size): Likewise.
12782         (output_constant_pool_2): Split out from output_constant_pool.
12783         (output_constant_pool_1): Likewise.  Use new pool datastructures.
12784         (output_constant_pool): Zap entire pool datastructure.
12785         (mark_constant): Use new pool datastructures.
12786         (mark_constants): Use for_each_rtx.
12787         (mark_constant_pool): Use new pool datastructures.
12788
12789 2004-01-30  Fariborz Jahanian <fjahanian@apple.com>
12790
12791         * config/rs6000/rs6000.c (rs6000_emit_move): Remove #if 0.
12792         Copy operands[1] to pseudo for simplify_gen_subreg.
12793
12794 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
12795
12796         * gcse.c (bypass_block): Fix a typo in the previous check-in
12797         to the file.
12798
12799 2004-01-30  Andrew Pinski <pinskia@physics.uc.edu>
12800
12801         * toplev.c: Include alloc-pool.h.
12802         * Makefile.in (toplev.c): Update dependencies.
12803
12804 2004-01-30  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12805
12806         * combine.c (simplify_shift_const, case XOR): Be careful when
12807         commuting XOR with ASHIFTRT.
12808
12809 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
12810             Eric Botcazou  <ebotcazou@libertysurf.fr>
12811
12812         * config/sparc/sparc-protos.h: Remove the prototype for
12813         sparc_builtin_saveregs.
12814         * config/sparc/sparc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
12815         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
12816         (TARGET_PROMOTE_PROTOTYPES): Likewise.
12817         (TARGET_STRUCT_VALUE_RTX): Likewise.
12818         (TARGET_RETURN_IN_MEMORY): Likewise.
12819         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
12820         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
12821         (sparc_builtin_saveregs): Make it static.
12822         (sparc_promote_prototypes): New.
12823         (sparc_struct_value_rtx): Likewise.
12824         (sparc_return_in_memory): Likewise.
12825         * config/sparc/sparc.h: (PROMOTE_FUNCTION_ARGS): Remove.
12826         (PROMOTE_FUNCTION_RETURN): Likewise.
12827         (RETURN_IN_MEMORY): Likewise.
12828         (STRUCT_VALUE): Likewise.
12829         (STRUCT_VALUE_INCOMING): Likewise.
12830         (EXPAND_BUILTIN_SAVEREGS): Likewise.
12831         (STRICT_ARGUMENT_NAMING): Likewise.
12832         (PROMOTE_PROTOTYPES): Likewise.
12833
12834         * config/sparc/sparc.h (PROMOTE_MODE): Use word_mode.
12835
12836 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
12837
12838         PR c/12818
12839         * varasm.c (const_hash_1) <STRING_CST>: Use the
12840         address to compute the hash value if flag_writable_strings.
12841         (compare_constant) <STRING_CST>: Compare the addresses
12842         if flag_writable_strings.
12843         (build_constant_desc): Do not copy the expression for a
12844         STRING_CST if flag_writable_strings.
12845
12846 2004-01-30  Jan Hubicka  <jh@suse.cz>
12847
12848         * alloc-pool.c: Include hashtab.h
12849         (alloc_pool_descriptor): New structure
12850         (alloc_pool_hash): New global variable.
12851         (hash_descriptor, eq_descriptor, alloc_pool_descriptor): New.
12852         (create_alloc_pool): Update statistics.
12853         (free_alloc_pool): Likewise.
12854         (pool_alloc): Likewise.
12855         (output_info): New structure
12856         (print_statistics, dump_alloc_pool_statistics): New function.
12857         * alloc-pool.h (alloc_pool_def): Turn name to be constant.
12858         (dump_alloc_pool_statistics): Declare.
12859         * toplev.c (finalize):  Dump statistics.
12860
12861         * reload.c (secondary_memlocs_elim_used): New static variable.
12862         (get_secondary_mem): Update it.
12863         (find_reloads): Use it.
12864
12865 2004-01-30  Steven Bosscher <s.bosscher@student.tudelft.nl>
12866
12867         * toplev.c: Fix broken checkin of 2003-12-30, again.
12868
12869 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
12870
12871         * configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for
12872         s390*-*-* targets by specifying a 'nop' insn.
12873         * configure: Regenerate.
12874
12875 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
12876
12877         PR target/11475
12878         * config/sparc/sparc.md (movhi_lo_sum): Tighten predicates.
12879
12880 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
12881
12882         * emit-rtl.c (change_address): Use XEXP (memref, 0) instead
12883         of addr when creating MEM copy.
12884
12885 2004-01-29  Devang Patel  <dpatel@apple.com>
12886
12887         * dwarf2out.c (gen_field_die): Do not equate decl number to die.
12888
12889 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
12890
12891         PR inline-asm/6162
12892         * reload.c (find_reloads): Only support one pair of commutative
12893         operands.
12894
12895 2004-01-29  Roger Sayle  <roger@eyesopen.com>
12896
12897         PR java/13824
12898         * tree.c (unsafe_for_reeval): Handle EXIT_BLOCK_EXPR nodes specially
12899         as their EXIT_BLOCK_LABELED_BLOCK operands can lead to unbounded
12900         recursion.
12901
12902 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
12903
12904         * config/frv/frv.c: Don't mention deprecated macros in
12905         comments.  Remove some target-independent comments about
12906         target macros.
12907         * config/frv/frv.h: Likewise.
12908
12909 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12910
12911         * cfghooks.c (split_block): Set probability and count of the
12912         new edge.
12913
12914 2005-01-29  Josef Zlomek  <zlomekj@suse.cz>
12915
12916         * dwarf2out.c (struct die_struct): Added field decl_id.
12917         (decl_die_table): Changed to hash table.
12918         (decl_die_table_allocated): Deleted.
12919         (decl_die_table_in_use): Deleted.
12920         (DECL_DIE_TABLE_INCREMENT): Deleted.
12921         (decl_die_table_hash): New function.
12922         (decl_die_table_eq): New function.
12923         (lookup_decl_die): Lookup in a hash table.
12924         (equate_decl_number_to_die): Insert into a hash table.
12925         (dwarf2out_init): Init hash table decl_die_table.
12926
12927 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
12928
12929         PR optimization/13424
12930         * expr.c (store_constructor): Revert 2003-12-03 change.
12931
12932         * emit-rtl.c (change_address): Check also if MEM_ATTRS is set as
12933         expected before returning early.  Avoid sharing RTL if they
12934         need to be changed.
12935
12936         * config/i386/i386.c (ix86_expand_movstr): Rework rep_mov and strmov
12937         handling so that memory attributes are preserved.  Don't call
12938         ix86_set_move_mem_attrs.
12939         (ix86_set_move_mem_attrs_1, ix86_set_move_mem_attrs): Removed.
12940         (ix86_expand_clrstr): Rename src argument to
12941         dst.  Rework rep_stos and strset handling so that memory attributes
12942         are preserved.
12943         (ix86_expand_strlen): Pass src argument to
12944         ix86_expand_strlensi_unroll_1.  Rework strlenqi_1 handling so that
12945         memory attributes are preserved.
12946         (ix86_expand_strlensi_unroll_1): Add src argument.  Use
12947         change_address instead of gen_rtx_MEM.
12948         * config/i386/i386.md (strmov, strmov_singleop, rep_mov): New
12949         expanders.
12950         (strmovdi_rex64, strmovsi, strmovsi_rex64, strmovhi, strmovhi_rex64,
12951         strmovqi, strmovqi_rex64): Remove.
12952         (rep_mov*, strmov*): Prefix insn names with *.
12953         (strset, strset_singleop, rep_stos): New expanders.
12954         (strsetdi_rex64, strsetsi, strsetsi_rex64, strsethi, strsethi_rex64,
12955         strsetqi, strsetqi_rex64): Remove.
12956         (rep_stos*, strset*): Prefix insn names with *.
12957         (rep_stosqi_rex64): Likewise.  Fix mode of dirflag reg from DImode
12958         to SImode.
12959         (cmpstrsi): Rework cmpstrqi_1 handling so that memory attributes
12960         are preserved.
12961         (cmpstrqi_nz_1, cmpstrqi_nz_rex_1, cmpstrqi_1, cmpstrqi_rex_1):
12962         Prefix insn names with *.
12963         (cmpstrqi_nz_1, cmpstrqi_1): New expanders.
12964         (strlenqi_1, strlenqi_rex_1): Prefix insn names with *.
12965         (strlenqi_1): New expander.
12966         * config/i386/i386.h (ix86_set_move_mem_attrs): Remove prototype.
12967
12968 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12969
12970         * Makefile.in (cfghooks.o): Add TIMEVAR_H and toplev.h dependency.
12971         * basic-block.h (tidy_fallthru_edge, tidy_fallthru_edges, dump_bb,
12972         verify_flow_info): Declaration removed.
12973         * cfg.c (verify_flow_info, dump_bb): Moved to cfghooks.c.
12974         (debug_bb, debug_bb_n): Add argument to dump_bb call.
12975         * cfgcleanup.c (try_simplify_condjump, try_crossjump_to_edge,
12976         try_optimize_cfg, delete_unreachable_blocks): Use delete_basic_block
12977         instead of delete_block.
12978         * cfghooks.c: Include timevar.h and toplev.h.
12979         (cfg_hooks): Define here.
12980         (verify_flow_info, dump_bb): Moved from cfg.c.
12981         (redirect_edge_and_branch, redirect_edge_and_branch_force,
12982         split_block, split_block_after_labels, move_block_after,
12983         delete_basic_block, split_edge, create_basic_block,
12984         create_empty_bb, can_merge_blocks_p, merge_blocks,
12985         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
12986         New functions.
12987         * cfghooks.h (struct cfg_hooks): Added fields name,
12988         make_forwarder_block, tidy_fallthru_edge and
12989         move_block_after. Changed type of verify_flow_info, dump_bb,
12990         split_block fields. Renamed cfgh_split_edge and delete_block
12991         fields.
12992         (redirect_edge_and_branch, redirect_edge_and_branch_force,
12993         split_block, delete_block, split_edge, create_basic_block,
12994         can_merge_blocks_p, merge_blocks): Macros removed.
12995         (cfg_hooks): Do not export.
12996         (verify_flow_info, dump_bb, redirect_edge_and_branch,
12997         redirect_edge_and_branch_force, split_block, split_block_after_labels,
12998         move_block_after, delete_basic_block, split_edge, create_basic_block,
12999         create_empty_bb, can_merge_blocks_p, merge_blocks,
13000         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
13001         Declare.
13002         (cfg_layout_rtl_cfg_hooks): Declare.
13003         * cfgloop.c (update_latch_info, mfb_keep_just, mfb_keep_nonlatch):
13004         New functions.
13005         (canonicalize_loop_headers): Use new semantics of make_forwarder_block.
13006         (redirect_edge_with_latch_update): Removed.
13007         (make_forwarder_block): Moved to cfghooks.c, semantics changed.
13008         * cfgloopmanip.c (remove_bbs): Do not update dominators here.
13009         * cfgrtl.c (cfg_layout_split_block, rtl_split_block, rtl_dump_bb,
13010         rtl_delete_block, rtl_split_block, rtl_merge_blocks,
13011         tidy_fallthru_edge, rtl_split_edge, cfg_layout_delete_block,
13012         cfg_layout_merge_blocks, cfg_layout_split_edge): Partly moved to
13013         cfghooks.c.
13014         (rtl_create_basic_block): Coding style fix.
13015         (rtl_tidy_fallthru_edge, rtl_move_block_after,
13016         rtl_make_forwarder_block): New functions.
13017         (update_cfg_after_block_merging): Removed.
13018         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hooks): Fill in new entries.
13019         * flow.c (verify_wide_reg, verify_local_live_at_start): Add argument
13020         to dump_bb.
13021         * ifcvt.c (merge_if_block, find_cond_trap, find_if_case_1,
13022         find_if_case_2): Don't update dominators.
13023         * timevar.def (TV_CFG_VERIFY): New.
13024         * loop-unswitch.c (unswitch_loop): Don't call add_to_dominance_info.
13025         * cfglayout.c (copy_bbs): Don't call add_to_dominance_info.
13026         * cfgloopmanip.c (split_loop_bb): Don't update dominators.
13027         (remove_bbs): Don't call remove_bbs.
13028         (create_preheader): Use make_forwarder_block.
13029         (mfb_keep_just, mfb_update_loops): New static functions.
13030
13031 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
13032
13033         * config/avr/avr.h: Remove target-independent comments about
13034         target macros.
13035
13036 2004-01-28  Daniel Berlin  <dberlin@dberlin.org>
13037
13038         * timevar.c (timevar_print): Mention when checking is enabled.
13039
13040 2004-01-28  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
13041
13042         * c-lex.c (c_lex): Rename to...
13043         (c_lex_with_flags): Add new parameter to get CPP flags.
13044         (c_lex): Thunk to c_lex_with_flags while keeping the old interface.
13045         * c-pragma.h (c_lex_with_flags): Declare.
13046
13047 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13048
13049         * config/mcore/mcore.c (mcore_external_libcall): Add a
13050         comment.
13051         (mcore_return_in_memory): Likewise.
13052
13053 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13054
13055         * config/mcore/mcore-protos.h: Remove the prototype for
13056         mcore_setup_incoming_varargs.
13057         * config/mcore/mcore.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
13058         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
13059         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
13060         (TARGET_PROMOTE_PROTOTYPES): Likewise.
13061         (TARGET_STRUCT_VALUE_RTX): Likewise.
13062         (TARGET_RETURN_IN_MEMORY): Likewise.
13063         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
13064         (mcore_setup_incoming_varargs): Make it static.  Receive the
13065         first argument by reference.  Add argument second_time.
13066         (mcore_external_libcall): New.
13067         (mcore_return_in_memory): Likewise.
13068         * config/mcore/mcore.h (PROMOTE_FUNCTION_ARGS): New.
13069         (PROMOTE_FUNCTION_RETURN): Likewise.
13070         (STRUCT_VALUE): Likewise.
13071         (RETURN_IN_MEMORY): Likewise.
13072         (SETUP_INCOMING_VARARGS): Likewise.
13073         (PROMOTE_PROTOTYPES): Likewise.
13074         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
13075
13076 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13077
13078         * config/m32r/m32r-protos.h: Remove the prototype for
13079         m32r_setup_incoming_varargs.
13080         * config/m32r/m32r.c (TARGET_PROMOTE_PROTOTYPES): New.
13081         (TARGET_STRUCT_VALUE_RTX): Likewise.
13082         (TARGET_RETURN_IN_MEMORY): Likewise.
13083         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
13084         (m32r_return_in_memory): New.
13085         (m32r_setup_incoming_varargs): Make it static.
13086         * config/m32r/m32r.h: Remove #undef of
13087         ASM_OUTPUT_EXTERNAL_LIBCALL.  Remove the commented-out
13088         definitions of PROMOTE_FUNCTION_ARGS and
13089         PROMOTE_FUNCTION_RETURN.
13090         (PROMOTE_PROTOTYPES): Remove.
13091         (RETURN_IN_MEMORY): Likewise.
13092         (STRUCT_VALUE): Likewise.
13093
13094 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13095
13096         * config/m68k/m68k.c (TARGET_PROMOTE_PROTOTYPES): New.
13097         (TARGET_STRUCT_VALUE_RTX): Likewise.
13098         (m68k_struct_value_rtx): Likewise.
13099         * config/m68k/m68k.h (STRUCT_VALUE_REGNUM): Rename to
13100         STRUCT_VALUE_REGNUM.
13101         (PROMOTE_PROTOTYPES): Remove.
13102         * config/m68k/m68kelf.h (STRUCT_VALUE_REGNUM): Rename to
13103         STRUCT_VALUE_REGNUM.
13104         * config/m68k/m68kv4.h (STRUCT_VALUE_REGNUM): Likewise.
13105         * config/m68k/netbsd-elf.h (STRUCT_VALUE_REGNUM): Likewise.
13106
13107 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13108
13109         * config/stormy16/stormy16.c
13110         (TARGET_BUILD_BUILTIN_VA_LIST_TYPE): Rename to
13111         TARGET_BUILD_BUILTIN_VA_LIST.
13112
13113 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13114
13115         * config/v850/v850.c (TARGET_PROMOTE_PROTOTYPES): New.
13116         (TARGET_STRUCT_VALUE_RTX): Likewise.
13117         (TARGET_RETURN_IN_MEMORY): Likewise.
13118         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
13119         (v850_return_in_memory): Likewise.
13120         (v850_setup_incoming_varargs): Likewise.
13121         * config/v850/v850.h (PROMOTE_PROTOTYPES): Remove.
13122         (SETUP_INCOMING_VARARGS): Likewise.
13123         (RETURN_IN_MEMORY): Likewise.
13124         (STRUCT_VALUE): Likewise.
13125
13126 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13127
13128         * config/fr30/fr30.c (TARGET_PROMOTE_PROTOTYPES): New.
13129         (fr30_setup_incoming_varargs): Don't use
13130         STRICT_ARGUMENT_NAMING.
13131         * config/fr30/fr30.h (PROMOTE_PROTOTYPES): Remove.
13132         (STRICT_ARGUMENT_NAMING): Likewise.
13133
13134 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13135
13136         * config/frv/frv-protos.h: Remove the prototype for
13137         frv_expand_builtin_saveregs.
13138         * config/frv/frv.c (TARGET_STRUCT_VALUE_RTX): Likewise.
13139         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
13140         (frv_stack_info): Use FRV_STRUCT_VALUE_REGNUM instead of
13141         STRUCT_VALUE_REGNUM.
13142         (frv_expand_builtin_saveregs): Make it static.
13143         (frv_struct_value_rtx): New.
13144         * config/frv/frv.h (EXPAND_BUILTIN_SAVEREGS): Remove.
13145
13146 2004-01-29  Jan Hubicka  <jh@suse.cz>
13147
13148         PR c++/12850
13149         * cgraph.c (cgraph_remove_node): Clear out saved/insns/arguments and
13150         initial pointers.
13151         * cgraphunit.c (cgraph_finalize_function): Clear out DECL_SAVED_INSNS
13152         for functions that will be only inlined.
13153         (cgraph_mark_function_to_output): Likewise.
13154         (cgraph_expand_function): Sanity check that DECL_DEFER_OUTPUT is clear;
13155         do not clear function body.
13156         * tree-optimize.c (clear_decl_rtl): Use decl_function_context.
13157         (tree_rest_of_compilation): Reorganize the logic releasing function
13158         body to use callgraph datastructure.
13159
13160 2004-01-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13161
13162         * pa.md: Change predicate of a peephole2 pattern from reg_or_0_operand
13163         to register_operand.
13164
13165 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
13166
13167         * config/ia64/ia64.md (fetchadd_acq_si, fetchadd_acq_di)
13168         (cmpxchg_acq_si, cmpxchg_acq_di): Exchange match_dup and
13169         match_operand expressions so that all match_dups appear
13170         lexically after their corresponding match_operands.
13171
13172 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13173
13174         * config/h8300/h8300.c (WORD_REG_USED): Use
13175         HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM.
13176         (compute_saved_regs): Likewise.
13177         (h8300_expand_prologue): Likewise.  Allocate locals after
13178         saving registers.
13179         (h8300_expand_epilogue): Use HARD_FRAME_POINTER_REGNUM instead
13180         of FRAME_POINTER_REGNUM.  Deallocate locals before saving
13181         registers.
13182         (h8300_initial_elimination_offset): Adjust for the new frame
13183         layout, which swaps flips the order of locals and saved
13184         registers.
13185         * config/h8300/h8300.h (FIRST_PSEUDO_REGISTER): Change to 12.
13186         (HARD_FRAME_POINTER_REGNUM): New.
13187         (ELIMINABLE_REGS): Add an elimination rule from
13188         FRAME_POINTER_REGNUM to HARD_FRAME_POINTER_REGNUM.
13189         (REGISTER_NAMES): Add fp.
13190         * config/h8300/h8300.md (FP_REG): Change to 11.
13191         (HFP_REG): New.
13192
13193 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13194
13195         * genrecog.c (write_node): Remove a useless local variable.
13196
13197 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
13198
13199         * Makefile.in (options.c options.h): Use stamp file s-options to
13200         avoid unnecessary rebuilds.
13201         (options.o): New target listing dependencies.
13202         (gtyp-gen.h): Use stamp file s-gtyp-gen.
13203         (STAGESTUFF): Add s-gtyp-gen.
13204
13205 2004-01-28  Richard Henderson  <rth@redhat.com>
13206
13207         * ggc.h (ggc_free): Declare.
13208         * ggc-common.c (ggc_realloc): Use it.
13209         * ggc-page.c: Remove lots of inline markers.
13210         (globals): Add free_object_list.
13211         (ggc_alloc): Tidy.
13212         (ggc_free, validate_free_objects): New.
13213         (poison_pages): Provide default.
13214         (ggc_collect): Call validate_free_objects; emit markers to
13215         the debug file.
13216
13217 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
13218             Jim Wilson  <wilson@specifixinc.com>
13219
13220         * config/ia64/ia64.c (ia64_split_tmode, ia64_split_tmode_move):
13221         Rewrite to use POST_INC/POST_DEC/POST_MODIFY instead of a
13222         scratch pointer.
13223         (ia64_secondary_reload_class): Delete case GR_REGS.
13224         * config/ia64/ia64.md (movti, *movti_internal, movtf, *movtf_internal):
13225         Do not allocate a scratch register.
13226         (reload_inti, reload_outti, reload_intf, reload_outtf): Delete.
13227
13228 2004-01-28  Jan Hubicka  <jh@suse.cz>
13229
13230         * gcse.c (bypass_block): Prevent edges to be unified when we are
13231         about to emit compenstation code.
13232
13233 2004-01-28  Nick Clifton  <nickc@redhat.com>
13234
13235         * config/arm/arm.c (arm_expand_builtin): Force second argument of
13236         the setcwx insn into a register.
13237
13238 2004-01-28  Richard Sandiford  <rsandifo@redhat.com>
13239
13240         * config/fp-bit.c (pack_d): When using paired doubles to implement
13241         a long double, round the high part separately.
13242         (unpack_d): Fix the case in which the high part is a power of two
13243         and the low part is a nonzero value of the opposite sign.
13244
13245 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13246
13247         * config/c4x/c4x.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
13248         (TARGET_STRUCT_VALUE_RTX): Likewise.
13249         (c4x_external_libcall): Likewise.
13250         (c4x_struct_value_rtx): Likewise.
13251         * config/c4x/c4x.h: Remove.
13252         (STRUCT_VALUE_REGNUM): Likewise.
13253         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
13254
13255 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13256
13257         * config/i386/i386.c (TARGET_PROMOTE_PROTOTYPES): New.
13258         (TARGET_STRUCT_VALUE_RTX): Likewise.
13259         * config/i386/i386.h (STRUCT_VALUE_INCOMING): Remove.
13260         (STRUCT_VALUE): Likewise.
13261         (PROMOTE_PROTOTYPES): Likewise.
13262
13263 2004-01-27  Roger Sayle  <roger@eyesopen.com>
13264
13265         * config/pa/pa.c (emit_move_sequence): Check that operand1 is a
13266         CONST_INT before using INTVAL.
13267
13268 2004-01-27  Ulrich Weigand  <uweigand@de.ibm.com>
13269
13270         * config/s390/s390.h (TARGET_DEFAULT): Default to !TARGET_BACKCHAIN.
13271         * config/s390/s390.c (s390_return_addr_rtx): Fail for all but current
13272         frame if !TARGET_BACKCHAIN.
13273         * config/s390/s390.md ("allocate_stack"): Use pattern only if
13274         TARGET_BACKCHAIN.
13275         * doc/invoke.texi (-mbackchain/-mno-backchain): Document new default.
13276
13277 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
13278
13279         * ia64.c (ia64_function_arg): When placing HFAs in integer
13280         registers, do not special case the mode used for complex
13281         types.  Do not advance int_regs until the current register
13282         is full.
13283
13284 2004-01-27  Richard Sandiford  <rsandifo@redhat.com>
13285
13286         PR target/7297
13287         * except.c (init_eh): Use a 5-word __jbuf for __builtin_setjmp().
13288
13289 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
13290
13291         * config/rs6000/rs6000.c (rs6000_emit_move): #if 0 splitting
13292         slow, unaligned loads and stores while debugging.  Fix formatting.
13293
13294 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
13295
13296         * config/rs6000/rs6000.md (save_stack_nonlocal): Use Pmode instead
13297         of computing wmode.
13298         (restore_stack_nonlocal): Same.
13299
13300 2004-01-27  Devang Patel <dpatel@apple.com>
13301
13302         * Makefile.in (dwarf2out.o): Depend on input.h
13303         * dbxout.c (dbx_debug_hooks): Add new empty hook for
13304         imported_module_or_decl.
13305         (xcoff_debug_hooks): Same.
13306         * sdbout.c (sdb_debug_hooks): Same.
13307         * vmsdbgout.c (vmsdbg_debug_hooks): Same.
13308         * debug.c (do_nothing_debug_hooks): Same.
13309         (debug_nothing_tree_tree): New function.
13310         * debug.h (gcc_debug_hooks): New hook, imported_module_or_decl.
13311         * dwarf2out.c: Include input.h.
13312         (dwarf2_debug_hooks): Add new hook for imported_module_or_decl.
13313         (remove_child_TAG): New function.
13314         (dwarf_tag_name): Handle DW_TAG_imported_module.
13315         (gen_subprogram_die): Equate decl number to declaration die. Do not
13316         remove all children dies while reusing declaration die for definition.
13317         Instead, selectively remove only formal parameters.
13318         (gen_variable_die): Equate variable decl to declaration die.
13319         (gen_field_die): Equate field decl to line number.
13320         (force_namespace_die): Replace it with ...
13321         (force_decl_die): ... this.
13322         (force_type_die): New function.
13323         (setup_namespace_context): Replace use of force_namespace_die() with
13324         force_decl_die().
13325         (gen_namespace_die): Same.
13326         (dwarf2out_imported_module_or_decl): New function.
13327
13328 2004-01-27  Bob Wilson  <bob.wilson@acm.org>
13329
13330         * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Remove SUBREG
13331         on CQImode and CHImode incoming arguments in register a7.
13332         (function_arg): Wrap BLKmode argument in register a7 in a PARALLEL.
13333         * config/xtensa/xtensa.h (BLOCK_REG_PADDING): Define.
13334         * config/xtensa/xtensa.md (movdi, movdf): Only call force_reg or
13335         xtensa_copy_incoming_a7 before reload.
13336
13337 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
13338
13339         * coverage.c (get_coverage_counts): Give a different message
13340         if flag_guess_branch_prob is set.
13341         * predict.c (counts_to_freqs): Return an int.
13342         (estimate_bb_frequencies): If counts_to_freqs returns zero,
13343         calculate estimates.
13344
13345 2004-01-27  Kazu Hirata  <kazu@cs.umass.edu>
13346
13347         * config/iq2000/iq2000-protos.h: Remove the prototype for
13348         iq2000_setup_incoming_varargs.
13349         * config/iq2000/iq2000.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
13350         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
13351         (TARGET_PROMOTE_PROTOTYPES): Likewise.
13352         (TARGET_STRUCT_VALUE_RTX): Likewise.
13353         (TARGET_RETURN_IN_MEMORY): Likewise.
13354         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
13355         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
13356         (iq2000_return_in_memory): Likewise.
13357         (iq2000_setup_incoming_varargs): Make it static.  Receive the
13358         first argument by reference.
13359         * config/iq2000/iq2000.h (PROMOTE_FUNCTION_ARGS): Remove.
13360         (PROMOTE_FUNCTION_RETURN): Likewise.
13361         (PROMOTE_PROTOTYPES): Likewise.
13362         (RETURN_IN_MEMORY): Likewise.
13363         (STRUCT_VALUE): Likewise.
13364         (SETUP_INCOMING_VARARGS): Likewise.
13365         (STRICT_ARGUMENT_NAMING): Likewise.
13366
13367 2004-01-24  James A. Morrison  <ja2morri@uwaterloo.ca>
13368
13369         * fixinc/fixinc.c (test_test): Initialize res.
13370         (start_flexer): Initialize pz_cmd_save.
13371
13372 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
13373
13374         * doc/rtl.texi (Arithmetic): Rewrite entries for PLUS,
13375         SS_PLUS, US_PLUS, LO_SUM, MINUS, SS_MINUS, US_MINUS.
13376
13377 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
13378
13379         PR 7198
13380         * config/ia64/ia64.md (*nmaddsf4, *nmadddf4, *nmadddf4_alts)
13381         (*nmadddf4_trunc, *nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf)
13382         (*nmaddxf4_alts, *nmaddxf4_truncdf_alts):
13383         Rewrite pattern as (minus (op 3) (mult (op 1) (op 2))).
13384         Possibly rename pattern for consistency.
13385         Remove ??? comments suggesting that this be done.
13386         (*nmaddsf4_alts, *nmadddf4_truncsf_alts, *nmaddxf4_truncsf_alts):
13387         New patterns.
13388         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr)
13389         (divsf3_internal_lat, divsf3_internal_thr, sqrtsf2_internal_thr)
13390         (divdf3_internal_lat, divdf3_internal_thr, sqrtdf2_internal_thr)
13391         (divxf3_internal_lat, divxf3_internal_thr, sqrtxf2_internal_thr):
13392         Update to match.
13393
13394 2004-01-27  Ian Lance Taylor  <ian@wasabisystems.com>
13395
13396         * config/arm/arm.c (output_return_instruction): Only restore IP
13397         into SP if frame_pointer_needed.
13398
13399 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
13400
13401         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
13402         for SCmode and DCmode if ARCH32.
13403         (sparc_va_arg): Handle SCmode and DCmode by reference if ARCH32.
13404         * config/sparc/sparc.h (RETURN_IN_MEMORY): Return 0 for TCmode
13405         if ARCH32.
13406         (BASE_RETURN_VALUE_REG): Return 32 for all FP modes except TFmode
13407         if ARCH32.
13408         (BASE_OUTGOING_VALUE_REG): Likewise.
13409
13410 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
13411
13412         PR target/10904
13413         PR target/13058
13414         * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): New.
13415         Forbid mode changes from SImode for lower FP regs if ARCH64.
13416
13417 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
13418
13419         * Makefile.in (bt-load.o): Depend on except.h.
13420         * bt-load.c (except.h): #include.
13421         (compute_defs_uses_and_gen): If insn at end of BB can throw
13422         within this function, consider registers used by it unavailable for
13423         btr migration.
13424         (move_btr_def): If insn at end of BB can throw, insert before rather
13425         than after.
13426
13427         * flags.h (flag_btr_bb_exclusive): Declare.
13428         * toplev.c (flag_btr_bb_exclusive): New variable.
13429         (f_options): Add btr-bb-exclusive.
13430         * bt-load.c (augment_live_range): Restore old behaviour if
13431         flag_btr_bb_exclusive is set.
13432         * common.opt: Add entry for -fbtr-bb-exclusive.
13433         * opts.c (common_handle_options): Same.
13434         * doc/invoke.texi: Document -fbtr-bb-exclusive.
13435
13436         * bt-load.c (btrs_live_at_end): New variable.
13437         (compute_defs_uses_and_gen): Compute its pointed-to array.
13438         (clear_btr_from_live_range, add_btr_to_live_range): Update it.
13439         (augment_live_range): When augmenting with a new dominator,
13440         use only its btrs_live_at_end set, but also add in the full set
13441         of the old dominator.
13442         (btr_def_live_range): Use btrs_live_at_end.
13443         (move_btr_def): Set other_btr_uses_before_def, and move new set
13444         to the end of the basic block, if appropriate.
13445         (migrate_btr_defs): Allocate and free btrs_live_at_end.
13446
13447         * bt-load.c (basic_block_freq): Remove outdated comment.
13448
13449 2004-01-27  Alan Modra  <amodra@bigpond.net.au>
13450
13451         * config/rs6000/rs6000.h: Correct target_flags free bits comment.
13452         (PREDICATE_CODES): Remove duplicate.
13453         * config/rs6000/linux64.h (CPP_SYSV_SPEC): Don't define.
13454         (SUBSUBTARGET_OVERRIDE_OPTIONS): Disallow 32 bit TARGET_PROFILE_KERNEL.
13455         (MASK_PROFILE_KERNEL): Adjust define.
13456
13457 2004-01-27  Jakub Jelinek  <jakub@redhat.com>
13458
13459         * config/i386/i386.c (ix86_constant_alignment): Decrease alignment
13460         of long string literals from 32 bytes to sizeof (void *) when !-Os
13461         and to 1 with -Os.
13462
13463 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
13464
13465         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Accept
13466         constant addresses in the normal mode.
13467
13468 2004-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13469
13470         * system.h (CHAR_BITFIELD): Delete.
13471         (BOOL_BITFIELD): New.
13472         * c-decl.c (c_scope): Use BOOL_BITFIELD.
13473         * gengtype-lex.l: Recognize BOOL_BITFIELD instead of CHAR_BITFIELD.
13474
13475 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
13476
13477         * config/arc/arc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
13478         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
13479         (TARGET_PROMOTE_PROTOTYPES): Likewise.
13480         (TARGET_STRUCT_VALUE_RTX): Likewise.
13481         (TARGET_RETURN_IN_MEMORY): Likewise.
13482         (arc_return_in_memory): Likewise.
13483         * config/arc/arc.h (PROMOTE_FUNCTION_ARGS): Remove.
13484         (PROMOTE_FUNCTION_RETURN): Likewise.
13485         (RETURN_IN_MEMORY): Likewise.
13486         (STRUCT_VALUE): Likewise.
13487
13488 2004-01-26  Richard Henderson  <rth@redhat.com>
13489
13490         * c-parse.in (extension): Use itype.
13491         (SAVE_EXT_FLAGS): Don't allocate a tree.
13492         (RESTORE_EXT_FLAGS): Don't read a tree.
13493
13494 2004-01-26  Jan Hubicka  <jh@suse.cz>
13495
13496         * cselib.c (discard_useless_values):  Clear out value pointer pointing
13497         to datastructure to be recycled.
13498
13499 2004-01-25  Jan Hubicka  <jh@suse.cz>
13500
13501         * genextract.c (main): Do not output the memset when not checking.
13502
13503 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
13504
13505         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Use a
13506         switch statement instead of a chain of if statements.
13507
13508 2004-01-26  Jeff Law  <law@redhat.com>
13509
13510         * doc/contrib.texi: Minor cleanup for Paolo Carlini's entry.  Add
13511         acute accents for Petur Runolfsson's entry.
13512
13513 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
13514
13515         * config/pdp11/pdp11.c (TARGET_STRUCT_VALUE_RTX): New.
13516         (TARGET_RETURN_IN_MEMORY): Likewise.
13517         * config/pdp11/pdp11.h (STRUCT_VALUE): Remove.
13518         (RETURN_IN_MEMORY): Likewise.
13519
13520 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
13521
13522          * config/rs6000/rs6000.c (rs6000_emit_move): split slow
13523          unaligned load/store into smaller loads and stores.
13524
13525 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
13526
13527         * function.c (assign_parms): Do not assign
13528         long long argument to memory in prologue if
13529         is it loaded into register.
13530
13531 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
13532
13533          PR middle-end/13779
13534          * expr.c (emit_group_load): split constant
13535          correctly into register components of PARALLEL insn.
13536
13537 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
13538
13539         * gcc/config/rs6000/rs6000.md (save_stack_nonlocal):
13540         Use adjust_address_nv directly with appropriate mode.
13541         (restore_stack_nonlocal): Ditto.
13542
13543 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
13544
13545         * config/xtensa/xtensa-protos.h: Remove the prototype for
13546         xtensa_builtin_saveregs.
13547         * config/xtensa/xtensa.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
13548         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
13549         (TARGET_PROMOTE_PROTOTYPES): Likewise.
13550         (TARGET_STRUCT_VALUE_RTX): Likewise.
13551         (TARGET_RETURN_IN_MEMORY): Likewise.
13552         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
13553         (xtensa_builtin_saveregs): Make it static.
13554         (xtensa_return_in_memory): New.
13555         * config/xtensa/xtensa.h (PROMOTE_FUNCTION_ARGS: Remove.
13556         (PROMOTE_FUNCTION_RETURN): Likewise.
13557         (PROMOTE_PROTOTYPES): Likewise.
13558         (STRUCT_VALUE): Likewise.
13559         (RETURN_IN_MEMORY): Likewise.
13560         (EXPAND_BUILTIN_SAVEREGS): Likewise.
13561
13562 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
13563
13564         * config/arm/arm.c (TARGET_SETUP_INCOMING_VARARGS): New.
13565         (arm_setup_incoming_varargs): Likewise.
13566         * config/arm/arm.h (SETUP_INCOMING_VARARGS): Remove.
13567
13568 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
13569
13570         * config/cris/cris.c (TARGET_SETUP_INCOMING_VARARGS): New.
13571         (cris_setup_incoming_varargs): Likewise.
13572         * config/cris/cris.h (SETUP_INCOMING_VARARGS): Remove.
13573
13574 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
13575
13576         * config/ns32k/ns32k.c (TARGET_STRUCT_VALUE_RTX): New.
13577         (ns32k_struct_value_rtx): Likewise.
13578         * config/ns32k/ns32k.h (STRUCT_VALUE_REGNUM): Rename to
13579         NS32K_STRUCT_VALUE_REGNUM.
13580
13581 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
13582
13583         * config/arm/arm.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
13584         (TARGET_PROMOTE_PROTOTYPES): Likewise.
13585         (TARGET_STRUCT_VALUE_RTX): Likewise.
13586         (arm_struct_value_rtx): Likewise.
13587         * config/arm/arm.h (PROMOTE_FUNCTION_ARGS): Remove.
13588         (STRUCT_VALUE): Likewise.
13589         (STRUCT_VALUE_REGNUM): Likewise.
13590         (PROMOTE_PROTOTYPES): Likewise.
13591
13592 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
13593
13594         * config/ia64/ia64-protos.h: Remove the prototype for
13595         ia64_setup_incoming_varargs and ia64_return_in_memory.
13596         * config/ia64/ia64.c (TARGET_STRUCT_VALUE_RTX): New.
13597         (TARGET_RETURN_IN_MEMORY): Likewise.
13598         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
13599         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
13600         (ia64_setup_incoming_varargs): Adjust the arguments to meet
13601         the requirement of TARGET_SETUP_INCOMING_VARARGS.
13602         (ia64_return_in_memory): Make it static.  Change the return
13603         type to bool from int.  Add an argument.
13604         (ia64_struct_value_rtx): New.
13605         * config/ia64/ia64.h: Remove commented-out definitions of
13606         PROMOTE_FUNCTION_ARGS, PROMOTE_FUNCTION_RETURN, and
13607         PROMOTE_PROTOTYPES.
13608         (RETURN_IN_MEMORY): Remove.
13609         (STRUCT_VALUE_REGNUM): Likewise.
13610         (STRICT_ARGUMENT_NAMING): Likewise.
13611
13612 2004-01-26  Eric Botcazou  <ebotcazou@libertysurf.fr>
13613
13614         PR target/13666
13615         * config/sparc/sparc.c (function_arg_union_value): New function.
13616         (function_arg): Use it to deal with unions.
13617         (function_value): Likewise.  Define 'regbase' only for ARCH64.
13618         Replace a conditional statement by a simpler one.
13619
13620 2004-01-26  Richard Sandiford  <rsandifo@redhat.com>
13621
13622         * config/mips/mips.c (mips16_optimize_gp): Delete.
13623         (mips_reorg): Don't call it.
13624
13625 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13626
13627         * config/c4x/c4x.md (addqi3_noclobber): Move up pecking order.
13628         (floatunsqihf2): Remove operand 6.
13629         (fixhfqi_set, fix_trunchfqi2, fixuns_trunchfqi2): Group with other
13630         fix patterns.
13631         (ldi_conditional, ldf_conditional): Validate operands.
13632
13633 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13634
13635         * config/c4x/c4x.h (BCT_CHECK_LOOP_ITERATIONS): Remove.
13636         (HAVE_GAS_HIDDEN): Undefine as interim measure.
13637
13638 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13639
13640         * config/c4x/c4x.c (c4x_legitimate_address_p):  Invalidate direct
13641         memory references if TARGET_EXPOSE_LDP nonzero.
13642
13643 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13644
13645         * config/c4x/c4x.c (legitimize_operands): Truncate invalid shift counts.
13646
13647 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13648
13649         * config/c4x/c4x.c (c4x_valid_operands): More aggressively reject
13650         invalid operand combinations.
13651
13652 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13653
13654         * config/c4x/c4x.c (c4x_check_legit_addr): Rename to
13655         c4x_legitimate_address_p.  Fix post_modify check.
13656
13657         * config/c4x/c4x-protos.h (c4x_check_legit_addr): Adjust.
13658         * config/c4x/c4x.h (c4x_check_legit_addr): Adjust.
13659
13660 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
13661
13662         * config/pa/pa-protos.h: Remove the prototype for
13663         hppa_builtin_saveregs.  Add a prototype for
13664         pa_return_in_memory.
13665         * config/pa/pa.c (TARGET_PROMOTE_FUNCTION_RETURN): New.
13666         (TARGET_PROMOTE_PROTOTYPES): Likewise.
13667         (TARGET_STRUCT_VALUE_RTX): Likewise.
13668         (TARGET_RETURN_IN_MEMORY): Likewise.
13669         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
13670         (pa_struct_value_rtx): Likewise.
13671         (pa_return_in_memory): Likewise.
13672         * config/pa/pa.h (STRUCT_VALUE_REGNUM): Rename to
13673         PA_STRUCT_VALUE_REGNUM.
13674         (INIT_CUMULATIVE_ARGS): Use pa_return_in_memory.
13675         (EXPAND_BUILTIN_SAVEREGS): Remove.
13676         (PROMOTE_PROTOTYPES): Likewise.
13677         (PROMOTE_FUNCTION_RETURN): Likewise.
13678
13679 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
13680
13681         * config/vax/vax.c (TARGET_PROMOTE_PROTOTYPES): New.
13682         (TARGET_STRUCT_VALUE_RTX): Likewise.
13683         (vax_struct_value_rtx): Likewise.
13684         * config/vax/vax.h (STRUCT_VALUE_REGNUM): Rename to
13685         VAX_STRUCT_VALUE_REGNUM.
13686         (PROMOTE_PROTOTYPES): Remove.
13687
13688 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13689
13690         * config/c4x/c4x.h (LEGITIMIZE_RELOAD_ADDRESS):  Handle symref.
13691
13692 2003-04-25  Chris Demetriou  <cgd@broadcom.com>
13693
13694         * config/mips/mips.h (ISA_HAS_HILO_INTERLOCKS): MIPS32, MIPS32r2,
13695         and MIPS64 have HI/LO interlocks.  Update comment.
13696
13697 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
13698
13699         * config/stormy16/stormy16-protos.h: Remove the prototype for
13700         xstormy16_setup_incoming_varargs.
13701         * config/stormy16/stormy16.c
13702         (xstormy16_setup_incoming_varargs): Remove.
13703         (xstormy16_return_in_memory): New.
13704         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
13705         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
13706         (TARGET_PROMOTE_PROTOTYPES): Likewise.
13707         (TARGET_STRUCT_VALUE_RTX): Likewise.
13708         (TARGET_RETURN_IN_MEMORY): Likewise.
13709         * config/stormy16/stormy16.h (PROMOTE_FUNCTION_ARGS): Remove.
13710         (PROMOTE_FUNCTION_RETURN): Likewise
13711         (PROMOTE_PROTOTYPES): Likewise
13712         (RETURN_IN_MEMORY): Likewise
13713         (STRUCT_VALUE): Likewise
13714         (SETUP_INCOMING_VARARGS): Likewise
13715
13716 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
13717
13718         * config/mips/mips.c (mips_offset_within_object_p): New function.
13719         (mips_symbolic_constant_p): Use it in the SYMBOL_SMALL_DATA and
13720         SYMBOL_CONSTANT_POOL cases.  Also use it for SYMBOL_GENERAL if the
13721         ABI has 64-bit pointers and the object file only allows 32-bit symbols.
13722
13723 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
13724
13725         * config/sh/sh.h (PROMOTE_FUNCTION_ARGS): Remove.
13726         (PROMOTE_FUNCTION_RETURN): Likewise.
13727
13728 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
13729
13730         * config/mn10300/mn10300-protos.h: Remove the prototype for
13731         mn10300_builtin_saveregs.
13732         * config/mn10300/mn10300.c (TARGET_PROMOTE_PROTOTYPES): New.
13733         (TARGET_STRUCT_VALUE_RTX): Likewise.
13734         (TARGET_RETURN_IN_MEMORY): Likewise.
13735         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
13736         (mn10300_return_in_memory): Likewise.
13737         (mn10300_builtin_saveregs): Make it static.
13738         * config/mn10300/mn10300.h (PROMOTE_PROTOTYPES): Remove.
13739         (RETURN_IN_MEMORY): Likewise.
13740         (STRUCT_VALUE): Likewise.
13741         (EXPAND_BUILTIN_SAVEREGS): Likewise.
13742
13743 2004-01-25  Eric Botcazou  <ebotcazou@act-europe.fr>
13744
13745         PR bootstrap/13853
13746         * cfgcleanup.c (try_optimize_cfg): Explicitly test against 0.
13747
13748 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
13749
13750         * config/h8300/lib1funcs.asm (divnorm, modnorm): Optimize by
13751         using ccr.
13752
13753 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
13754
13755         * config/i860/i860-protos.h: Remove the prototype for
13756         i860_saveregs.
13757         * config/i860/i860.c (i860_saveregs): Make it static.
13758         (i860_struct_value_rtx): New.
13759         (TARGET_STRUCT_VALUE_RTX): Likewise.
13760         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
13761         * config/i860/i860.h (STRUCT_VALUE_REGNUM): Rename to
13762         I860_STRUCT_VALUE_REGNUM.
13763         (EXPAND_BUILTIN_SAVEREGS): Remove.
13764
13765 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
13766
13767         * config/m68hc11/m68hc11.c (TARGET_STRUCT_VALUE_RTX): New.
13768         (TARGET_RETURN_IN_MEMORY): Likewise.
13769         (m68hc11_struct_value_rtx): Likewise.
13770         (m68hc11_return_in_memory): Likewise.
13771         * config/m68hc11/m68hc11.h: Remove a commented-out definition
13772         of PROMOTE_PROTOTYPES.
13773         (RETURN_IN_MEMORY): Remove.
13774         (STRUCT_VALUE_REGNUM): Likewise.
13775
13776 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
13777
13778         * config/mmix/mmix-protos.h: Remove the prototype for
13779         mmix_setup_incoming_varargs.
13780         * config/mmix/mmix.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
13781         (TARGET_STRUCT_VALUE_RTX): Likewise.
13782         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
13783         (mmix_setup_incoming_varargs): Make it static.
13784         (mmix_struct_value_rtx): New.
13785         * config/mmix/mmix.h (PROMOTE_FUNCTION_ARGS): Remove.
13786         Remove a commented-out definition of PROMOTE_FUNCTION_RETURN.
13787         (STRUCT_VALUE_REGNUM): Remove.
13788         (SETUP_INCOMING_VARARGS): Likewise.
13789
13790 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
13791
13792         * config/mips/mips-protos.h: Remove the prototypes for
13793         mips_setup_incoming_varargs and mips_return_in_memory.
13794         * config/mips/mips.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
13795         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
13796         (TARGET_PROMOTE_PROTOTYPES): Likewise.
13797         (TARGET_STRUCT_VALUE_RTX): Likewise.
13798         (TARGET_RETURN_IN_MEMORY): Likewise.
13799         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
13800         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
13801         (mips_setup_incoming_varargs): Match the prototype for
13802         TARGET_SETUP_INCOMING_VARARGS.
13803         (mips_return_in_memory): Make it static.  Add argument fntype.
13804         (mips_strict_argument_naming): New.
13805         * config/mips/mips.h (PROMOTE_PROTOTYPES): Remove.
13806         (PROMOTE_FUNCTION_ARGS): Likewise.
13807         (PROMOTE_FUNCTION_RETURN): Likewise.
13808         (STRUCT_VALUE): Likewise.
13809         (RETURN_IN_MEMORY): Likewise.
13810         (SETUP_INCOMING_VARARGS): Likewise.
13811         (STRICT_ARGUMENT_NAMING): Likewise.
13812
13813 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
13814
13815         * config/ip2k/ip2k.c (TARGET_STRUCT_VALUE_RTX): New.
13816         (TARGET_RETURN_IN_MEMORY): Likewise.
13817         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
13818         (ip2k_return_in_memory): Likewise.
13819         (ip2k_setup_incoming_varargs): Likewise.
13820         * config/ip2k/ip2k.h (RETURN_IN_MEMORY): Remove.
13821         (STRUCT_VALUE): Likewise.
13822         (STRUCT_VALUE_INCOMING): Likewise.
13823         (SETUP_INCOMING_VARARGS): Likewise.
13824
13825 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
13826
13827         * config/avr/avr.c (TARGET_STRUCT_VALUE_RTX): New.
13828         (TARGET_RETURN_IN_MEMORY): Likewise.
13829         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
13830         (avr_return_in_memory): Remove.
13831         * config/avr/avr.h (RETURN_IN_MEMORY): Remove.
13832         (STRUCT_VALUE): Likewise.
13833         (STRUCT_VALUE_INCOMING): Likewise.
13834         (STRICT_ARGUMENT_NAMING): Likewise.
13835
13836 2004-01-25  Jan Hubicka  <jh@suse.cz>
13837
13838         * combine.c (recog_for_combine): Avoid allocating unnecesary RTX.
13839
13840 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
13841
13842         * config/mips/mips-protos.h (mips_reg_mode_ok_for_base_p): Delete.
13843         (mips_regno_mode_ok_for_base_p): Declare.
13844         * config/mips/mips.h (ARG_POINTER_REGNUM): Renumber to 77.
13845         (FRAME_POINTER_REGNUM): Renumber to 78.
13846         (FIRST_PSEUDO_REGISTER): Update comment accordingly.
13847         (BASE_REG_P, GP_REG_OR_PSEUDO_STRICT_P): Delete.
13848         (GP_REG_OR_PSEUDO_NONSTRICT_P): Delete.
13849         (REGNO_MODE_OK_FOR_BASE_P): Use mips_regno_mode_ok_for_base_p.
13850         (REG_MODE_OK_FOR_BASE_P): Likewise.
13851         * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Change
13852         entry for 77 to "$arg" and entry for 78 to "$frame".
13853         (mips_regno_to_class): Map 77 and 78 to ALL_REGS.
13854         (mips_reg_mode_ok_for_base_p): Remove.
13855         (mips_regno_mode_ok_for_base_p): New function, derived from old
13856         BASE_REG_P macro.  Don't enforce the mips16 stack pointer
13857         restrictions unless we're being strict.
13858         (mips_valid_base_register_p): Use mips_regno_mode_ok_for_base_p.
13859
13860 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
13861
13862         * c-common.h: Fix comment typos.
13863         * c-decl.c: Likewise.
13864         * cgraphunit.c: Likewise.
13865         * combine.c: Likewise.
13866         * et-forest.c: Likewise.
13867         * flow.c: Likewise.
13868         * function.c: Likewise.
13869         * ifcvt.c: Likewise.
13870         * integrate.c: Likewise.
13871         * jump.c: Likewise.
13872         * postreload.c: Likewise.
13873         * varray.c: Likewise.
13874
13875 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
13876
13877         * doc/frontends.texi: Update copyright.
13878         * doc/gcov.texi: Likewise.
13879         * doc/gty.texi: Likewise.
13880         * doc/sourcebuild.texi: Likewise.
13881         * doc/standards.texi: Likewise.
13882
13883 2004-01-24  Herman A.J. ten Brugge  <hermantenbrugge@home.nl>
13884
13885         PR target/12978
13886         * c4x.md: (movstrqi*) Use match_scratch instead of match_dup.
13887         Remove movstrqi_small because it conflicts with movstrqi_large.
13888
13889 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
13890
13891         * config/cris/cris.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
13892         (TARGET_STRUCT_VALUE_RTX): Likewise.
13893         (cris_struct_value_rtx): Likewise.
13894         * config/cris/cris.h (PROMOTE_FUNCTION_ARGS): Remove.
13895         (CRIS_STACKADJ_REG): Use CRIS_STRUCT_VALUE_REGNUM instead of
13896         STRUCT_VALUE_REGNUM.
13897         (STRUCT_VALUE_REGNUM): Rename to CRIS_STRUCT_VALUE_REGNUM.
13898
13899 2004-01-24  Ian Lance Taylor  <ian@wasabisystems.com>
13900
13901         PR bootstrap/13848
13902         * cse.c (cse_cc_succs): Change the mode of the source expression
13903         as soon as decide we need a new mode.  Don't permit changing modes
13904         if we found a match in a successor block.
13905         (cse_condition_code_reg): Save original mode of source expression
13906         so that we know whether we have to change the mode in other
13907         insns.
13908
13909 2004-01-24  Jan Hubicka  <jh@suse.cz>
13910
13911         * emit-rtl.c (change_address, adjust_address_1, offset_address,
13912         widen_memory_access):  Return early when there is nothing to change.
13913
13914 2004-01-24  Jakub Jelinek  <jakub@redhat.com>
13915
13916         * simplify-rtx.c (simplify_relational_operation): Don't
13917         simplify address == constant into address + -constant == 0.
13918
13919 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
13920
13921         * gcc.c (process_command): Don't internationalize the
13922         Copyright message.
13923         * mips-tfile.c (main): Likewise.
13924
13925 2004-01-24  Andreas Tobler  <a.tobler@schweiz.ch>
13926
13927         * cse.c: (cse_cc_succs) Fix comparison warning.
13928
13929 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
13930
13931         * config/h8300/h8300.md: Remove extraneous USE in expanders.
13932
13933 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
13934
13935         * config/h8300/h8300-protos.h: Provide prototypes for
13936         h8300_legitimate_constant_p and h8300_legitimate_address_p.
13937         * config/h8300/h8300.c (h8300_legitimate_constant_p): New.
13938         (h8300_rtx_ok_for_base_p): Likewise.
13939         (h8300_legitimate_address_p): Likewise.
13940         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Use
13941         h8300_legitimate_constant_p.
13942         (RTX_OK_FOR_BASE_P): Remove.
13943         (GO_IF_LEGITIMATE_ADDRESS): Use h8300_legitimate_address_p.
13944
13945 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
13946
13947         * config/h8300/h8300.h (REG_OK_FOR_INDEX_NONSTRICT_P): New.
13948         (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
13949         (REG_OK_FOR_INDEX_STRICT_P): Likewise.
13950         (REG_OK_FOR_BASE_STRICT_P): Likewise.
13951         (REG_OK_FOR_INDEX_STRICT_P): Use REGNO_OK_FOR_INDEX_P.
13952         (REG_OK_FOR_BASE_STRICT_P): Use REGNO_OK_FOR_BASE_P.
13953         (REG_OK_FOR_INDEX_P): Use REG_OK_FOR_INDEX_STRICT_P.
13954         (REG_OK_FOR_BASE_P): Use REG_OK_FOR_BASE_STRICT_P.
13955
13956 2004-01-24  Jan Hubicka  <jh@suse.cz>
13957
13958         * cselib.c (remove_useless_values):  Do not access discarded values.
13959
13960 2004-01-24  Joseph S. Myers  <jsm@polyomino.org.uk>
13961
13962         * c-typeck.c (build_conditional_expr): Do not allow non-lvalue
13963         arrays.
13964
13965 2004-01-23  Kazu Hirata  <kazu@cs.umass.edu>
13966
13967         * recog.c: Fix a typo in copyright.
13968
13969 2004-01-23  Andrew Pinski  <apinski@apple.com>
13970
13971         * config/rs6000/rs6000.md (call): Fix misappiled patch.
13972         (call_value): Likewise.
13973
13974 2004-01-23  Richard Henderson  <rth@redhat.com>
13975
13976         PR opt/12941
13977         * combine.c (SHIFT_COUNT_TRUNCATED): Provide default value.
13978         (simplify_comparison): Don't simplify (eq (zero_extract c 1 r) 0)
13979         if SHIFT_COUNT_TRUNCATED is set.
13980
13981 2004-01-23  Bob Wilson  <bob.wilson@acm.org>
13982
13983         * config/xtensa/xtensa.c (xtensa_va_arg): Handle complex values as
13984         separate real and imaginary parts.
13985         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Define.
13986
13987 2004-01-23  Hartmut Penner <hpenner@de.ibm.com>
13988
13989         PR target/13674
13990         * config/rs6000/rs6000.md (movdf_hardfloat64): Do not disparage
13991         loading into GPR.
13992
13993 2004-01-23  Jan Hubicka  <jh@suse.cz>
13994
13995         * emit-rtl.c (change_address_1):  Do not re-generate the RTX if nothing
13996         change.
13997
13998         * alloc-pool.c (align_four): Kill.
13999         (create_alloc_pool): Align size to eight.
14000         (free_alloc_pool, free_pool): Invalidate deallocated data.
14001
14002 2004-01-23  Ian Lance Taylor  <ian@wasabisystems.com>
14003
14004         PR gcc/1532
14005         * cse.c (cse_change_cc_mode): New static function.
14006         (cse_change_cc_mode_insns, cse_cc_succs): Likewise.
14007         (cse_condition_code_reg): New function.
14008         * rtl.h (cse_condition_code_reg): Declare.
14009         * toplev.c (rest_of_handle_cse2): Call cse_condition_code_reg.
14010         * target.h (struct gcc_target): Add fixed_condition_code_regs and
14011         cc_modes_compatible.
14012         * target-def.h (TARGET_FIXED_CONDITION_CODE_REGS): Define.
14013         (TARGET_CC_MODES_COMPATIBLE): Define.
14014         (TARGET_INITIALIZER): Add new initializers.
14015         * targhooks.c (default_cc_modes_compatible): New function.
14016         * targhooks.c (default_cc_modes_compatible): Declare.
14017         * hooks.c (hook_bool_intp_intp_false): New function.
14018         * hooks.h (hook_bool_intp_intp_false): Declare.
14019         * config/i386/i386.c (TARGET_FIXED_CONDITION_CODE_REGS): Define.
14020         (TARGET_CC_MODES_COMPATIBLE): Define.
14021         (ix86_fixed_condition_code_regs): New static function.
14022         (ix86_cc_modes_compatible): Likewise.
14023         * doc/tm.texi (Condition Code): Document new hooks.
14024
14025 2004-01-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14026
14027         * fixinc/inclhack.def (bad_lval): Renamed to ...
14028         (alpha_bad_lval): ... this.
14029         Removed file list.
14030         Restrict to alpha*-dec-osf*.
14031         * fixinc/fixincl.x: Regenerate.
14032         * fixinc/tests/base/dirent.h: Remove, moving test ...
14033         * fixinc/tests/base/testing.h: ... here, reflecting new name.
14034
14035 2004-01-23  Zack Weinberg  <zack@codesourcery.com>
14036
14037         PR c/13814
14038         * c-decl.c (diagnose_mismatched_decls): Also discard a
14039         built-in if we encounter an old-style definition with the
14040         same name.
14041
14042 2004-01-23  Jakub Jelinek  <jakub@redhat.com>
14043
14044         * config.gcc (powerpc*-*): Clear $with_cpu or $with_tune if it was
14045         set to default{32,64}.
14046
14047 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
14048
14049         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR)
14050         [!__powerpc64__]: Corrected to handle kernels with changed ucontext.
14051
14052 2004-01-23  Eric Botcazou  <ebotcazou@act-europe.fr>
14053             Olivier Hainque  <hainque@act-europe.fr>
14054
14055         * fold-const.c (fold_binary_op_with_conditional_arg): Only
14056         build a COMPOUND_EXPR if 'arg' is really a SAVE_EXPR.
14057
14058 2004-01-23  Daniel Jacobowitz  <drow@mvista.com>
14059
14060         * config/arm/arm.c (arm_legitimate_address_p): Don't check the mode
14061         size for minipool references.
14062
14063 2004-01-23  Roger Sayle  <roger@eyesopen.com>
14064
14065         * real.c (real_floor, real_ceil): Tweak to allow input and output
14066         arguments to overlap.
14067         (real_round): New function to implement round(3m) semantics.
14068         * real.h (real_round): Prototype here.
14069         * builtins.c (fold_builtin_round): New function to constant fold
14070         round, roundf and roundl.
14071         (fold_builtin): Call fold_builtin_round for BUILT_IN_ROUND{,F,L}.
14072
14073 2004-01-23  Alexandre Oliva  <aoliva@redhat.com>
14074
14075         PR optimization/13819
14076         * config/sh/sh.c (sh_reorg): Compensate for sharing of CLOBBERs
14077         introduced by 2004-01-20's Jan Hubicka's copy_insn change.
14078         (sh_handle_sp_switch_attribute): Remove warning.
14079
14080 2003-11-30  Jan Hubicka  <jh@suse.cz>
14081
14082         * i386.c (ix86_emit_restore_regs_using_mov):  Deal with large offsets.
14083
14084 2004-01-23  J"orn Rennecke <joern.rennecke@superh.com>
14085
14086         * doc/tm.texi: Insert some weasel words when LOAD_EXTEND_OP
14087         may or may not return non-NIL.
14088         * postreload.c (reload_cse_simplify_operands): In LOAD_EXTEND_OP code,
14089         check CANNOT_CHANGE_MODE_CLASS
14090
14091 2004-01-23  Jan Hubicka  <jh@suse.cz>
14092
14093         * basic-block.h (PROP_POSTRELOAD): New macro.
14094         (CLEANUP_LOG_LINKS): New.
14095         * cfgcleanup.c (cleanup_cfg): Only PROP_LOG_LINKS when asked to.
14096         * toplev.c (rest_of_handle_life):  Preserve LOG_LINKS trought cleanup_cfg.
14097
14098         * cselib.c (value_pool): New.
14099         (new_cselib_val): Use pool.
14100         (cselib_init): Initialize value_pool
14101         (cselib_finish): Free pool.
14102
14103 2004-01-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
14104
14105         * config/sparc/sparc.c (scan_record_type): New function.
14106         (function_arg_slotno): Use it to determine which kinds of
14107         registers the record can be passed in.
14108
14109 2004-01-22  James A. Mmorrison  <ja2morri@uwaterloo.ca>
14110
14111         * config/pa/fptr.c: Fix old-style definition.
14112
14113 2004-01-22  Paolo Bonzini  <bonzini@gnu.org>
14114
14115         PR optimization/13724
14116         * cse.c (fold_rtx) <SUBREG>:  Fold a SUBREG to zero if it
14117         represents the zero bits produced by a ZERO_EXTEND operation.
14118
14119 2004-01-22  Roger Sayle  <roger@eyesopen.com>
14120
14121         PR optimization/13821
14122         * simplify-rtx.c (simplify_subreg): Use subreg_lowpart_offset to
14123         correctly calculate the lowpart offset of the contracted subreg.
14124
14125 2004-01-22  Ian Lance Taylor  <ian@wasabisystems.com>
14126
14127         * doc/invoke.texi (Optimize Options): Note that --param arguments
14128         are subject to change without notice.
14129
14130 2004-01-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14131
14132         * config.gcc (mips-sgi-irix6*o32): Removed.
14133         * config/mips/iris6-o32-as.h: Likewise.
14134         * config/mips/iris6-o32-gas.h: Likewise.
14135         * config/mips/iris6-o32.h: Likewise.
14136
14137 2004-01-22  Jan Hubicka  <jh@suse.cz>
14138
14139         * cfgcleanup.c (first_pass): New static variable.
14140         (try_forward_edges):  Add work limiting check for threading.
14141         (try_crossjump_bb):  Add work limiting check for crossjumping.
14142         (try_optimize_cfg):  Maintain first pass variable.
14143
14144 2004-01-22  Bob Wilson  <bob.wilson@acm.org>
14145
14146         * config/xtensa/xtensa.c (function_arg): Generalize logic so that it
14147         handles complex and vector modes.
14148
14149 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
14150
14151         * config/h8300/h8300.h (REG_OK_FOR_INDEX_P_STRICT): Remove.
14152         (REG_OK_FOR_BASE_P_STRICT): Likewise.
14153         (STRICT): Likewise.
14154
14155 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
14156
14157         * c-semantics.c (genrtl_while_stmt, genrtl_do_stmt_1)
14158         (genrtl_for_stmt): Remove emit_nop calls.
14159
14160 2004-01-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14161
14162         PR target/13713
14163         PR target/13324
14164         * pa.md (movstrsi_prereload, movstrsi_postreload, movstrdi_prereload,
14165         movstrdi_postreload, clrstrsi_prereload, clrstrsi_postreload,
14166         clrstrdi_prereload, clrstrdi_postreload): Fix constraints.
14167
14168 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
14169
14170         * config/arm/arm.c: Include "debug.h".
14171         (thumb_pushpop): Take two new arguments.  Add some commentary.
14172         Output frame information when pushing.
14173         (thumb_exit, thumb_unexpanded_epilogue): Update calls to
14174         thumb_pushpop.
14175         (thumb_output_function_prologue): Likewise.  Accumulate a CFA
14176         offset, and pass it to thumb_pushpop.  Output CFI information.
14177         (thumb_expand_prologue): Add some frame-related markers and notes.
14178
14179 2004-01-22  Ulrich Weigand  <uweigand@de.ibm.com>
14180
14181         * config/s390/s390.c (s390_frame_info): Allow large frame sizes
14182         for TARGET_64BIT.
14183         (s390_arg_frame_offset): Change return type to HOST_WIDE_INT.
14184         * config/s390/s390-protos.h (s390_arg_frame_offset): Likewise.
14185
14186 2004-01-22  Roger Sayle  <roger@eyesopen.com>
14187             Paolo Bonzini  <bonzini@gnu.org>
14188
14189         * rtlanal.c (subreg_lsb_1): New function split out from subreg_lsb.
14190         (subreg_lsb): Change to call new subreg_lsb_1 helper function.
14191         * rtl.h (subreg_lsb_1): Prototype here.
14192         * simplify-rtx.c (simplify_subreg): Optimize subregs of zero and
14193         sign extensions.
14194
14195 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
14196
14197         * doc/tm.texi (CASE_VECTOR_PC_RELATIVE): Mention that the
14198         macro need not be defined if jump-tables should contain
14199         relative addresses only when -fPIC or -fPIC is in effect.
14200
14201 2004-01-22  Jan Hubicka  <jh@suse.cz>
14202
14203         * alias.c (reg_base_value): Turn into varray.
14204         (reg_base_value_size): Kill.
14205         (old_reg_base_value): New deletable varray.
14206         (alias_invariant_size): New variable.
14207         (REG_BASE_VALUE): Update to use varray.
14208         (find_base_value): Likewise.
14209         (record_set): Likewise.
14210         (record_base_value): Likewise.
14211         (memrefs_conflict_p): Likewise.
14212         (record_set): Likewise
14213         (record_base_value): Likewise.
14214         (memrefs_conflict_p): Use alias_invariant_size.
14215         (init_alias_analysis): Use varray; set alias_invariant_size;
14216         rescale other arrays to be sized by maxreg.
14217         (end_alias_analysis): Save reg_base_value; clear alias_invariant_size.
14218
14219 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
14220
14221         * config/sparc/sparc.c (function_arg_slotno): Use
14222         FLOAT_TYPE_P to detect FP fields in structures.
14223         (function_arg_record_value_1): Likewise.
14224         (function_arg_record_value_2): Likewise.
14225
14226 2004-01-22  Jan Hubicka  <jh@suse.cz>
14227
14228         * function.c (allocate_struct_function): Do not initialize expr, emit
14229         and varasm.
14230         (prepare_function_start): Do it here.
14231         * c-parse.in (maybe_type_qual): Do not produce line number notes.
14232
14233 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
14234
14235         PR target/13559
14236         * config/sparc/sparc.c (function_arg_record_value_3): Revert
14237         to 'word_mode' once the first slot has been filled.
14238
14239 2004-01-22  Olivier Hainque  <hainque@act-europe.fr>
14240
14241         * config/sparc/sparc.c (function_arg_record_value_1): Fix
14242         computation of the number of integer registers required.
14243
14244 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
14245
14246         * config/i386/i386.md: Simplify certain comparisons of
14247         const_int.
14248
14249 2004-01-21  Andrew Pinski  <apinski@apple.com>
14250
14251         PR target/13785
14252         * config/rs6000/rs6000.md (call_value): Force operand
14253         1 not operand 0 into a register.
14254
14255 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
14256
14257         * cpperror.c, cpptrad.c, longlong.h, params.def, rtl.def,
14258         unwind-dw2-fde.h: Update copyright.
14259
14260 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14261
14262         * pa-protos.h: Update copyright.
14263         * pa.h: Likewise.
14264         * pa.md: Likewise.
14265
14266 2004-01-21  Caroline Tice  <ctice@apple.com>
14267
14268         PR target/12308
14269         * config/i386/i386.md (fix_truncxfdi2): Add clause to clobber
14270         flags register.
14271         (fix_truncdfdi2): Likewise.
14272         (fix_truncsfdi2): Likewise.
14273         (*fix_truncdi_1): Likewise.
14274         (fix_truncxfsi2): Likewise.
14275         (fix_truncdfsi2): Likewise.
14276         (fix_truncsfsi2): Likewise.
14277         (*fix_truncsi_1): Likewise.
14278         (fix_truncxfhi2): Likewise.
14279         (fix_truncdfhi2): Likewise.
14280         (fix_truncsfhi2): Likewise.
14281         (*fix_trunchi_1): Likewise.
14282
14283 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
14284
14285         * alias.c, basic-block.h, c-common.c, c-common.h,
14286         c-cppbuiltin.c, c-opts.c, c-pragma.c, c-pretty-print.c,
14287         calls.c, cfg.c, cfgcleanup.c, cfgrtl.c, cgraph.h, collect2.c,
14288         combine.c, cppcharset.c, cpphash.h, cppinit.c, cpplib.c,
14289         cpplib.h, cppmacro.c, crtstuff.c, cselib.c, cselib.h,
14290         defaults.h, df.c, dominance.c, et-forest.c, expmed.c, expr.c,
14291         expr.h, fix-header.c, function.h, gcc.c, gcse.c, genattrtab.c,
14292         genautomata.c, genconditions.c, genemit.c, genflags.c,
14293         gengtype.c, gengtype.h, genopinit.c, genrecog.c, gensupport.c,
14294         ggc-zone.c, graph.c, haifa-sched.c, input.h, integrate.c,
14295         langhooks-def.h, langhooks.c, langhooks.h, line-map.c,
14296         line-map.h, local-alloc.c, optabs.c, optabs.h, postreload.c,
14297         ra.h, recog.c, reg-stack.c, regmove.c, reload.c, reorg.c,
14298         rtl.c, sched-deps.c, sched-ebb.c, sdbout.c, system.h,
14299         target.h, targhooks.c, toplev.h, tree-inline.c, unwind-pe.h,
14300         unwind.h, varray.c, varray.h: Update copyright.
14301
14302 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
14303
14304         * config/h8300/coff.h: Update copyright.
14305         * config/h8300/elf.h: Likewise.
14306         * config/h8300/h8300-protos.h: Likewise.
14307         * config/h8300/h8300.c: Likewise.
14308         * config/h8300/h8300.h: Likewise.
14309         * config/h8300/h8300.md: Likewise.
14310
14311 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14312
14313         * fixinc/inclhack.def (hpux10_stdio_declarations, ultrix_const3,
14314         ultrix_locale, ultrix_stdlib, ultrix_strings, ultrix_sys_time,
14315         ultrix_unistd): New hacks.
14316         * fixinc/tests/base/stdio.h (HPUX10_STDIO_DECLARATIONS_CHECK,
14317         ULTRIX_CONST2_CHECK): Add checks.
14318         * fixinc/tests/base/stdlib.h (ULTRIX_STDLIB_CHECK): Likewise.
14319         * fixinc/tests/base/strings.h (ULTRIX_STRINGS2_CHECK): Likewise.
14320         * fixinc/tests/base/unistd.h (ULTRIX_UNISTD_CHECK): Likewise.
14321         * fixinc/tests/base/sys/time.h (ULTRIX_SYS_TIME_CHECK): Likewise.
14322         * fixinc/tests/base/locale.h: New file.
14323         * fixinc/fixincl.x: Rebuilt.
14324
14325 2004-01-21  Andreas Jaeger  <aj@suse.de>
14326             Michael Matz  <matz@suse.de>
14327
14328         * doc/extend.texi (Extended Asm): Clarify memory clobber.
14329
14330 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
14331
14332         * crtstuff.c (frame_dummy, __do_global_ctors_1): Call
14333         _Jv_RegisterClasses through a function pointer.
14334
14335 2004-01-21  Falk Hueffner  <falk@debian.org>
14336
14337         PR target/12898
14338         * config/alpha/alpha.c (alpha_emit_set_const_1): If
14339         no_new_pseudos, use gen_rtx_SET directly for SImode constants
14340         which need multiple instructions to emit.
14341
14342 2004-01-21  Inaoka Kazuhiro  <inaoka.kazuhiro@renesas.com>
14343
14344         * config/m32r/m32r.h (CPP_SPEC): Define.
14345
14346 2004-01-21  Zack Weinberg  <zack@codesourcery.com>
14347
14348         * c-decl.c (merge_decls): Kill different_binding_level and
14349         different_tu arguments; simplify throughout.
14350         (duplicate_decls): Likewise.
14351         (pushdecl, merge_translation_unit_decls): Update calls to
14352         duplicate_decls.
14353
14354 2004-01-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14355
14356         * Makefile.in (pretty-print.o): Depend on $(CONFIG_H) and
14357         $(SYSTEM_H).
14358         (print-rtl1.o): Depend on $(SYSTEM_H).
14359
14360 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
14361
14362         PR bootstrap/12730
14363         * configure.ac: Delete definition and subsitution of docdir.
14364         Add info, man, srcman and srcinfo to target hooks. Create doc/
14365         directory.
14366         * configure: Regenerate.
14367         * Makefile.in: Don't substitute docdir and delete all references
14368         throughout.
14369         (MAKEINFOFLAGS): Define.
14370         (stmp-docobjdir): Delete.
14371         (INFOFILES, MANFILES): Define.
14372         (info): Call lang.info, srcinfo and lang.srcinfo.
14373         (generated-manpages): Call lang.man, srcman and lang.srcman.
14374         (srcinfo, srcman): New rules to copy back files to source directory.
14375         (doc/%.info, doc/%.dvi, doc/%.1, doc/%.7): New implict rule.
14376         (install-man): Revamp rule.
14377         (clean): Update dvi directory.
14378         (distclean): Delete TAGS from front end directorys.
14379         (maintainer-clean): Delete all document files in source directory.
14380
14381         objc/Make-lang.in (objc.man, objc.info): Dummy entries.
14382         (objc.srcman, objc.srcinfo): Likewise.
14383
14384 2004-01-20  Bruce Korb  <bkorb@gnu.org>
14385
14386         * fixinc/inclhack.def(math_exception): bypass only for glibc.
14387         (matherr_decl): rename & relocate as exception_structure.
14388         This fix must precede the math_exception fix.
14389
14390 2004-01-20  Roger Sayle  <roger@eyesopen.com>
14391
14392         * fold-const.c (fold_convert): Rename to fold_convert_const.
14393         (fold_convert_const): Change arguments to take a tree_code,
14394         a type and the operand/expression to be converted.  Return
14395         NULL_TREE if no simplification is possible.  Add support for
14396         FIX_CEIL_EXPR and FIX_FLOOR_EXPR in addition to FIX_TRUNC_EXPR.
14397         (fold): Handle FIX_CEIL_EXPR and FIX_FLOOR_EXPR.
14398         Adjust call to fold_convert to match new fold_convert_const.
14399         Avoid modifying the tree passed to fold in-place.
14400
14401 2004-01-21  Alan Modra  <amodra@bigpond.net.au>
14402
14403         * config/rs6000/sysv4.h (DWARF2_FRAME_REG_OUT): Define.
14404         * dwarf2out.c (output_cfi): Map regs using DWARF2_FRAME_REG_OUT.
14405         * doc/tm.texi (DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Document.
14406
14407 2004-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14408
14409         * pa-protos.h (compute_frame_size): Use HOST_WIDE_INT for frame sizes.
14410         * pa.c (store_reg, store_reg_modify, load_reg, set_reg_plus_d):
14411         Likewise.  Handle frames larger than 0x7fffffff on 64-bit ports.
14412         (emit_move_sequence): Check scratch_reg first in various if statements.
14413         Extend source simplification to handle all 64-bit CONST_INTs.
14414         (pa_output_function_prologue): Use HOST_WIDE_INT_PRINT_DEC for printing
14415         frame size.
14416         (hppa_expand_prologue, hppa_expand_epilogue): Use HOST_WIDE_INT for
14417         frame offset calculations.
14418         * pa.h (NEW_HP_ASSEMBLER): Add comment.
14419         (MAX_LEGIT_64BIT_CONST_INT, MIN_LEGIT_64BIT_CONST_INT,
14420         LEGITIMATE_64BIT_CONST_INT_P): Define.
14421         (LEGITIMATE_CONSTANT_P): Use LEGITIMATE_64BIT_CONST_INT_P.  Treat
14422         any CONST_INT as legitimate during and after reload.
14423         (VAL_32_BITS_P, INT_32_BITS): Define.
14424         (LEGITIMIZE_RELOAD_ADDRESS): Handle large frame offsets.
14425
14426 2004-01-20  Jan Hubicka  <jh@suse.cz>
14427
14428         * emit-rtl.c (verify_rtx_sharing, copy_insn_1,
14429         emit_copy_of_insn_after, emit_copy_of_insn_after): Clobbers
14430         containing hard regs are shared.
14431         (gen_hard_reg_clobber): New function.
14432         (hard_reg_clobbers): New array.
14433         * genemit.c (gen_exp): Use gen_hard_reg_clobber.
14434         (copy_rtx): Do not copy clobbers containing hard regs.
14435         * rtl.h (gen_hard_reg_clobber): Declare.
14436
14437 2004-01-20  Jan Hubicka  <jh@suse.cz>
14438
14439         * varray.c:  Include hashtab.h
14440         (varray_descriptor): New structure.
14441         (hash_descriptor, eq_descriptor, varray_descriptor,
14442         print_statistics): New static functions
14443         (varray_init, varray_grow): Update statistics
14444         (dump_varray_statistics): New function.
14445         * varray.h (dump_varray_statistics): Declare.
14446         * toplev.c (finalize): Call it.
14447         * Makefile.in (varray.o): Add dependency.
14448
14449 2004-01-20  Jan Hubicka  <jh@suse.cz>
14450
14451         * cselib.c: Include alloc-pool.h
14452         (empty_vals, empty_elt_lists, empty_elt_loc_lists): Kill.
14453         (elt_loc_list_pool, elt_list_pool, cselib_val_pool): Declare.
14454         (new_elt_list, new_elt_loc_list, unchain_one_elt_list,
14455         unchain_one_elt_loc_list_pool, unchain_one_value,
14456         new_cselib_val): Simplify using allocpool.
14457         (cselib_init): Initialize allocpools.
14458         (cselib_finish): Finish allocpools.
14459         * Makefile.in (cselib.o): Depend on alloc-pool.h
14460
14461 2004-01-20  Richard Sandiford  <rsandifo@redhat.com>
14462
14463         * config/mips/mips.c (mips_load_call_address): Make the call insn
14464         use $gp if it could be calling a lazy binding stub.
14465
14466 2004-01-20  Kazu Hirata  <kazu@cs.umass.edu>
14467
14468         * config/s390/s390.c (TARGET_PROMOTE_FUNCTION_ARGS): Define.
14469         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
14470         (TARGET_STRUCT_VALUE_RTX): Likewise.
14471         * config/s390/s390.h (PROMOTE_FUNCTION_ARGS): Remove.
14472         (PROMOTE_FUNCTION_RETURN): Remove.
14473         (STRUCT_VALUE): Remove.
14474
14475 2004-01-20  Denis Chertykov  <denisc@overta.ru>
14476
14477         PR bootstrap/13735
14478         * config/avr/avr.h (BASE_REG_CLASS): Don't permit to use X
14479         register as pointer after reload.
14480
14481 2004-01-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
14482
14483         PR optimization/12440
14484         * loop.c: Include ggc.h.
14485         (loop_optimize): Run garbage collector between optimization of loops.
14486         * Makefile.in (loop.o): Add GGC_H dependency.
14487
14488 2004-01-20  Hartmut Penner  <hpenner@de.ibm.com>
14489
14490         * gcc/config/rs6000/rs6000.c (function_arg) Handle
14491         vector register special in function without prototype.
14492         (function_arg_advance): Vector parameters get always
14493         GPRs allocated for the linux64 target.
14494
14495 2004-01-20  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
14496
14497         * config/m32r/m32r.h (TARGET_M32R2). Test for TARGET_M32R2_MASK
14498         not TARGET_M32RX_MASK.
14499
14500 2004-01-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
14501
14502         PR target/13557
14503         * config/sparc/sparc.c (function_arg): Reorder the cases.
14504
14505 2004-01-19  Per Bothner  <per@bothner.com>
14506
14507         Move cpp_reader's line_maps field to a shared global.
14508         * cpphash.h (cpp_reader):  Rename line_maps field to line_table
14509         and change the type to a pointer rather than a struct.
14510         * cppinit.c (cpp_push_main_field):  Adjust accordingly.
14511         * cpplib.c (do_include_common, _cpp_do_file_change, cpp_get_callbacks):
14512         Likewise.
14513         * cppfiles.c (validate_pch):  Likewise.
14514         * cppmacro.c (_cpp_warn_if_unused_macro, _cpp_builtin_macro_text):
14515         Likewise.
14516         * cpperror.c (print_location):  Likewise.
14517         * cpplib.h (cpp_create_reader):  New line_maps pointer parameter.
14518         * cppinit.c (cpp_create_reader):  Handle new parameter.
14519         (cpp_destroy):  Don't free line_maps - that's no longer our job.
14520         * input.h (line_table):  New variable.
14521         * toplev.c (line_table):  Declare variable.
14522         (general_init):  Initialize line_table.
14523         * c-opts.c (c_common_init_options):  Pass line_table to
14524         cpp_create_reader.
14525         * fix-header.c (read_scan_file):  New local variable line_table.
14526         Initialize, and pass it to cpp_create_reader.
14527         * Makefile.in (LIBS, LIBDEPS):  Add libcpp.a.
14528         (C_AND_OBJC_OBJS, fix-header):  Remove redundant libcpp.a.
14529
14530 2004-01-19  Per Bothner  <per@bothner.com>
14531
14532         Implement a cache for linemap_lookup.
14533         * line-map.h (struct_line_maps):  Add cache field.
14534         * line-map.c (linemap_init):  Zero cache field.
14535         (linemap_add):  Set cache field to offset of newly allocated map.
14536         (linemap_lookup):  Use and set cache field.
14537
14538 2004-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
14539
14540         PR optimization/13567
14541         * cse.c (cse_basic_block): Call cse_insn with a non-null
14542         libcall_insn for the last SET insn of a no-confilict block.
14543
14544 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
14545
14546         * Makefile.in (target_noncanonical, program_transform_name): Use
14547         immediate define instead of deferred.
14548         (GCC_INSTALL_NAME, GCC_TARGET_INSTALL_NAME, CPP_INSTALL_NAME,
14549         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, GCOV_INSTALL_NAME,
14550         GCCBUG_INSTALL_NAME): Define via a immediate $(shell) instead of
14551         deferred backquote.
14552
14553 2004-01-20  Joseph S. Myers  <jsm@polyomino.org.uk>
14554
14555         * c-decl.c (c_init_decl_processing): Set pedantic_lvalues to
14556         true unconditionally.
14557         * c-typeck.c (unary_complex_lvalue, pedantic_lvalue_warning):
14558         Remove.
14559         (build_unary_op, build_modify_expr): Don't handle extended
14560         lvalues.
14561         (build_component_ref, build_conditional_expr): Call non_lvalue
14562         instead of pedantic_non_lvalue.
14563         (build_c_cast): Don't condition use of non_lvalue on pedantic.
14564         * fold-const.c (fold): Don't check pedantic directly for
14565         COMPOUND_EXPR.  Ensure that results for COMPOUND_EXPR are
14566         passed to pedantic_non_lvalue.
14567         * doc/extend.texi: Remove documentation of extended lvalues.
14568
14569 2004-01-19  Roger Sayle  <roger@eyesopen.com>
14570
14571         PR optimization/5263
14572         * simplify-rtx.c (associative_constant_p): Delete.
14573         (simplify_associative_operation): Rewrite to linearize terms, and
14574         attempt to simplify new term against both left and right subterms.
14575         (simplify_binary_operation): Call swap_commutative_operands_p on
14576         op0 and op1, not trueop0 and trueop1.  Move the initialization of
14577         trueop0 and trueop1 down to where first needed.
14578         (simplify_relational_operation): Likewise.
14579         * rtlanal.c (commutative_operand_precedence): Also order constant
14580         operands using avoid_constant_pool_reference.
14581
14582 2004-01-19  Richard Henderson  <rth@redhat.com>
14583
14584         * config/alpha/alpha.c (aligned_memory_operand): Check MEM_ALIGN,
14585         don't check memory mode.
14586         (unaligned_memory_operand): Likewise.
14587         (reload_inqi, reload_inhi, reload_outqi, reload_outhi): Don't
14588         abort for op0 not MEM.
14589
14590         * config/alpha/alpha.c (alpha_expand_mov_nobwx): If the destination
14591         is not a reg, copy to a scratch first.
14592         (aligned_loadqi, aligned_loadhi, unaligned_loadqi, unaligned_loadhi,
14593         unaligned_loadqi_le, unaligned_loadqi_be, unaligned_loadhi_le,
14594         unaligned_loadhi_be): Expect op0 in DImode; don't SUBREG.
14595         (reload_inqi, reload_inhi): Fix mode of op0.
14596         (reload_inqi_help, reload_inhi_help, reload_outqi_help,
14597         reload_outhi_help): Likewise.  Use define_insn_and_split.
14598
14599         * config/alpha/alpha.md (call peepholes): Check for REG_NORETURN
14600         as well as $29 dead.
14601
14602 2004-01-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
14603
14604         * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): New.  Emit
14605         "tls_object" for thread-local objects.
14606         * config/sparc/sparc.c (sparc_elf_asm_named_section): Emit
14607         "#tls" for thread-local sections.
14608         * configure.ac (thread-local checks): Specify --fatal-warnings in
14609         every binutils-specific checks.  For sparc*-*-*, test whether the
14610         OS is Solaris and the tools are native and act accordingly.
14611         * configure: Rebuild.
14612
14613 2004-01-19  Jeff Law  <law@redhat.com>
14614
14615         * contrib.texi: Update Paolo Carlini's entry.  New entries for
14616         Jerry Quinn and Petur Runolfsson.
14617
14618 2004-01-19  Roger Sayle  <roger@eyesopen.com>
14619
14620         * config/i386/i386.md (*movhi_1, *movqi_1): When optimizing for
14621         size, don't use the larger zero-extending loads.
14622
14623 2004-01-19  Richard Henderson  <rth@redhat.com>
14624
14625         * alpha.h (HARD_REGNO_MODE_OK): Disallow SImode in FP regs.
14626         * alpha.md (UNSPEC_NT_LDA): Remove.
14627         (UNSPEC_CVTLQ, cvtlq): New.
14628         (extendsidi2_1): Rename from extendsidi2_nofix; remove f/f.
14629         (extendsidi2_fix): Remove.
14630         (extendsidi2 splitter): Use cvtlq.
14631         (extendsidi2 fp peepholes): Remove.
14632         (cvtql): Use SFmode instead of SImode.
14633         (fix_trunc?fsi): Update to match.
14634         (floatsisf2_ieee, floatsisf2, floatsidf2_ieee, floatsidf2): New.
14635         (movsi): Rename from movsi_nofix, remove f alternatives.
14636         (movsi_nt_vms): Similarly.
14637         (movsi_fix, movsi_nt_vms_fix): Remove.
14638         (nt_lda): Remove.
14639         * alpha.c (alpha_expand_prologue): Use adddi3, not nt_lda.
14640
14641 2004-01-19  Jan Hubicka  <jh@suse.cz>
14642
14643         * cgraph.c (cgraph_remove_node): Fix removal from linked list.
14644         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear next_needed
14645         list.
14646         (cgraph_remove_unreachable_nodes): New function
14647         (cgraph_decide_inlining_of_small_function): Fix pasto.
14648         (cgraph_decide_inlining_incrementally): Fix pasto.
14649         (cgrpah_decide_inlining): Likewise; remove unreachable nodes.
14650
14651 2004-01-19  Steven Bosscher  <stevenb@suse.de>
14652
14653         * gengtype.c (header_file): Make it static.
14654         (write_types_process_field, write_enum_defn): Minor whitespace fixes.
14655         * gengtype.h (header_file): No longer extern.
14656
14657 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
14658
14659         * defaults.h (CASE_VECTOR_PC_RELATIVE): Provide the default.
14660         * expr.c (CASE_VECTOR_PC_RELATIVE): Remove.
14661         * stmt.c (CASE_VECTOR_PC_RELATIVE): Likewise.
14662
14663 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
14664
14665         * stmt.c (HAVE_casesi): Define it not already defined.
14666         (HAVE_tablejump): Likewise.
14667         (expand_end_case_type): Resort to the binary tree method if
14668         neither casesi or tablejump is available.
14669
14670 2004-01-18  Daniel Jacobowitz  <drow@mvista.com>
14671
14672         * final.c (final_scan_insn): Make non-static again.
14673         * output.h (final_scan_insn): Re-add prototype.
14674         * config/arc/arc.c (arc_output_function_epilogue): Add NULL
14675         to final_scan_insn call.
14676         * config/cris/cris.c (cris_target_asm_function_epilogue): Likewise.
14677         * config/mips/mips.c (mips_output_conditional_branch): Likewise.
14678         * config/pa/pa.c (output_lbranch, output_call): Likewise.
14679         * config/sh/sh.c (print_slot): Likewise.
14680         * config/sparc/sparc.c (sparc_nonflat_function_epilogue): Likewise.
14681         (output_sibcall, sparc_flat_function_epilogue): Likewise.
14682
14683 2004-01-18  Jan Hubicka  <jh@suse.cz>
14684
14685         * basic-block.h (try_redirect_by_replacing_jump): Declare.
14686         * cfgcleanup.c (try_optimize_cfg): Use it.
14687         * cfgrtl.c (try_redirect_by_replacing_jump): Export.
14688         (rtl_redirect_edge_and_branch, cfg_layout_redirect_edge_and_branch):
14689         Kill hack.
14690         (cfg_layout_merge_blocks): Use try_redirect_by_replacing_jump.
14691
14692         Revert:
14693         2004-01-16  Geoffrey Keating  <geoffk@apple.com>
14694
14695                 * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
14696                 even after reload, just don't remove the actual jump tables.
14697
14698 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
14699
14700         * config/rs6000/rs6000.h (STRICT_ARGUMENT_NAMING): Remove.
14701
14702 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
14703
14704         * defaults.h (ASM_OUTPUT_ADDR_VEC_ELT): Fix the computation of
14705         the size of a pointer in bytes.
14706
14707 2004-01-18  Roger Sayle  <roger@eyesopen.com>
14708
14709         * builtins.c (expand_builtin_expect_jump): Fix thinko of reusing
14710         live "next" variable, which could lead to an infinite loop.
14711
14712 2004-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
14713
14714         * config/rs6000/altivec.h: Wrap C++ functions in extern "C++"
14715         block.
14716
14717         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
14718         Check for NULL in the chain and remove repeated code.
14719
14720 2004-01-18  Jan Hubicka  <jh@suse.cz>
14721
14722         * coverage.c (checksum_string): Rename to ...
14723         (coverage_checksum_string): ... this one, Use crc32_string; recognize
14724         names containing random number and zero the number out in order to get
14725         match.
14726
14727 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
14728
14729         * config/mips/mips.c (mips_got_alias_set): Mark for PCH.
14730
14731 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
14732
14733         * doc/c-tree.texi, doc/cpp.texi, doc/extend.texi,
14734         doc/frontends.texi, doc/gcov.texi, doc/gty.texi, doc/install.texi,
14735         doc/invoke.texi, doc/libgcc.texi, doc/md.texi, doc/rtl.texi,
14736         doc/sourcebuild.texi, doc/standards.texi, doc/tm.texi,
14737         doc/trouble.texi: Remove trailing whitespace.
14738
14739 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
14740
14741         PR target/7618
14742         * config/mips/mips.c: Include cfglayout.h.
14743         (TARGET_ASM_OUTPUT_MI_THUNK, TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
14744         (mips_unspec_offset_high): Add temporary register argument.
14745         (mips_load_call_address): New function, split out from...
14746         (mips_expand_call): ...here.
14747         (mips_output_cplocal): New function.
14748         (mips_output_function_prologue, mips_output_function_epilogue): Use it.
14749         (mips_emit_loadgp): New function, split out from...
14750         (mips_expand_prologue): ...here.
14751         (mips_output_mi_thunk): New function.
14752
14753 2004-01-17  Bernardo Innocenti  <bernie@develer.com>
14754
14755         * longlong.h (mc68020, __mc68030__, mc68030, __mc68040__, mc68040,
14756         mcpu32): Remove redundant checks for implied target predefines.
14757
14758 2004-1-17  Andrew Pinski  <pinskia@physics.uc.edu>
14759
14760         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
14761         Return type is unsigned int not int.
14762         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
14763         Likewise.
14764
14765 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
14766
14767         * doc/contrib.texi, doc/cppenv.texi, doc/extend.texi,
14768         doc/install.texi, doc/invoke.texi, doc/tm.texi: Consistently use
14769         "GNU/Linux" and "Microsoft Windows" terminology.
14770
14771 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
14772
14773         * doc/c-tree.texi, doc/compat.texi, doc/cpp.texi,
14774         doc/cppopts.texi, doc/extend.texi, doc/install.texi,
14775         doc/interface.texi, doc/invoke.texi, doc/libgcc.texi, doc/md.texi,
14776         doc/objc.texi, doc/rtl.texi, doc/tm.texi, doc/trouble.texi: Use
14777         @smallexample instead of @example.
14778
14779 2004-01-17  Ziemowit Laski  <zlaski@apple.com>
14780
14781         * objc/objc-act.c (build_objc_method_call): Use target
14782         hooks instead of macros to determine if ..._stret
14783         dispatchers should be used (NeXT runtime only).
14784
14785 2004-01-17  Roger Sayle  <roger@eyesopen.com>
14786
14787         * builtins.c (expand_builtin_expect_jump): Fix mistake in my
14788         last patch.  Use XEXP (x, 0) to get a LABEL_REF's CODE_LABEL.
14789
14790 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
14791
14792         * rtl.h (emit_insn_before_sameloc, emit_jump_insn_before_sameloc)
14793         (emit_call_insn_before_sameloc, emit_insn_after_sameloc)
14794         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): New
14795         macros.
14796         * reload1.c (emit_reload_insns): Use them.
14797         * emit-rtl.c (emit_insn_before_sameloc, emit_insn_after_sameloc)
14798         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): Check
14799         for NULL PATTERN.
14800
14801 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
14802
14803         * final.c (SEEN_BB, SEEN_NOTE, SEEN_EMITTED): Define.
14804         (final_scan_insn): Update to take an additional SEEN argument.  Emit
14805         a line note after the prologue.  Make static.
14806         (line_note_exists): Remove.
14807         (final): Don't initialize line_note_exists.  Update call to
14808         final_scan_insn.
14809         * output.h (final_scan_insn): Remove prologue.
14810         * function.c (set_insn_locators): Update comment.
14811         (thread_prologue_and_epilogue_insns): Add a comment.
14812
14813 2004-01-17  Andrew Pinski  <pinskia@physics.uc.edu>
14814
14815         PR target/10781
14816         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
14817         Prototype.
14818         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
14819         New function.
14820         * config/rs6000/linux64.h (ROUND_TYPE_ALIGN): Use it.
14821         * config/rs6000/aix.h (ROUND_TYPE_ALIGN): Likewise.
14822         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Likewise.
14823
14824 2004-01-17  Jan Hubicka  <jh@suse.cz>
14825
14826         * toplev.c (rest_of_handle_reorder_blocks): Fix pasto in previous
14827         commit.
14828
14829         * toplev.c (HAVE_conditional_execution): Provide default.
14830         (rest_of_handle_reorder_blocks): For conditional_execution target
14831         update liveness once after all transformations
14832         (rest_of_compilation): Do crossjumping before ce3.
14833
14834 2004-01-17  Geoffrey Keating  <geoffk@apple.com>
14835
14836         * alias.c (new_alias_set): Mark last_alias_set for PCH.
14837         (get_varargs_alias_set): Rename 'set' to 'varargs_set' and mark it
14838         for PCH.
14839         (get_frame_alias_set): Likewise, except rename it to 'frame_set'.
14840         * config/rs6000/rs6000.c (rs6000_sr_alias_set): Mark for PCH.
14841         (get_TOC_alias_set): Mark 'set' for PCH.
14842
14843 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
14844
14845         * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
14846         even after reload, just don't remove the actual jump tables.
14847
14848 2004-01-17  J. Brobecker  <brobecker@gnat.com>
14849
14850         * dwarf2out.c (is_subrange_type): Renamed from is_ada_subrange_type().
14851         Remove checks for is_ada() and TREE_UNSIGNED.
14852         (subrange_type_die): Emit a byte_size attribute if the subrange
14853         type size is different from the base type size.
14854         (modified_type_die): Replace call to is_ada_subrange_type() by
14855         call to is_subrange_type().
14856
14857 2004-01-16  Andrew Pinski  <pinskia@physics.uc.edu>
14858
14859         * config/sh/sh.c: Include ggc.h.
14860
14861 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
14862
14863         * Makefile.in (MD5_H): New.
14864         (fold-const.o): Depend on md5.h.
14865         (dwarf2out.o): Likewise.
14866         (cppfiles.o): Likewise.
14867         * cppfiles.c: Include md5.h.
14868         (should_stack_file): Check against list read from PCH file.
14869         (struct pchf_data): New.
14870         (pchf): New variable.
14871         (struct pchf_adder_info): New.
14872         (pchf_adder): New.
14873         (pchf_save_compare): New.
14874         (_cpp_save_file_entries): New.
14875         (_cpp_read_file_entries): New.
14876         (struct pchf_compare_data): New.
14877         (pchf_compare): New.
14878         (check_file_against_entries): New.
14879         * cpphash.h (_cpp_save_file_entries): Prototype.
14880         (_cpp_read_file_entries): Prototype.
14881         * cpppch.c (cpp_write_pch_state): Write the list of headers.
14882         (cpp_read_state): Read the list of headers.
14883
14884 2004-01-17  Jan Hubicka  <jh@suse.cz>
14885
14886         * c-common.c (c_estimate_num_insns_1): Handle builtin_constant_p and
14887         builtin_expect specially.
14888         * params.def (PARAM_MAX_INLINE_INSNS_AUTO): Set to 100.
14889         (PARAM_LARGE_FUNCTION_INSNS): Set to 3000.
14890         * invoke.texi (max-inline-insns-single): Set to 100.
14891         (large-function-insns): Set to 3000.
14892
14893 2004-01-16  Eric Christopher  <echristo@redhat.com>
14894             Chandrakala Chavva <cchavva@redhat.com>
14895
14896         * cppcharset.c (one_iso88591_to_utf8): New function.
14897         (convert_iso88591_utf8): Ditto. Use.
14898         (conversion_tab): Use.
14899         (_cpp_input_to_utf8): New function.
14900         (_cpp_init_iconv_buffer): Ditto.
14901         (_cpp_close_iconv_buffer): Ditto.
14902         * cpphash.h: Prototype new functions.
14903         (cpp_buffer): Add input_cset_desc.
14904         * cppinit.c: Add input_charset default.
14905         * cpplib.c (cpp_push_buffer): Support init and
14906         close of iconv.
14907         * cpplib.h (cpp_options): Add input_charset.
14908
14909 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
14910
14911         * system.h (ASM_OUTPUT_SECTION_NAME): Poison.
14912         * config/alpha/unicosmk.h: Remove a commented-out definition
14913         of ASM_OUTPUT_SECTION_NAME.
14914         * config/stormy16/stormy16.h: Likewise.
14915
14916 2004-01-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14917
14918         * fixinc/inclhack.def (alpha___extern_prefix): Renamed to ...
14919         (alpha___extern_prefix_sys_stat): ... this.
14920         Apply to <sys/mount.h>, too.
14921         Tweak to match more variations.
14922         * fixinc/tests/base/sys/stat.h: Adapt for new hackname.
14923
14924         * fixinc/inclhack.def (alpha___extern_prefix,
14925         alpha___extern_prefix_standards): New hacks to obey
14926         __PRAGMA_EXTERN_PREFIX.
14927         * fixinc/tests/base/testing.h [ALPHA___EXTERN_PREFIX_CHECK]: New
14928         test.
14929         * fixinc/tests/base/standards.h: Likewise.
14930
14931         * fixincl/inclhack.def (alpha_pthread): Tweak to match more
14932         variations.
14933         New testcase.
14934         * fixinc/tests/base/pthread.h: Handle it.
14935
14936         * fixincl/inclhack.def (bad_lval): Sort file list.
14937         Add many missing files up to Tru64 UNIX V5.1B.
14938         * gcc/fixinc/tests/base/libgen.h: Renamed to ...
14939         * gcc/fixinc/tests/base/dirent.h: ... this to match new file list
14940         order.
14941
14942         * fixinc/fixincl.x: Regenerate.
14943
14944 2004-01-16  Mark Mitchell  <mark@codesourcery.com>
14945
14946         * version.c (version_string): Change to 3.5.0.
14947         * doc/include/gcc-common.texi (version-GCC): Likewise.
14948
14949 2004-01-16  Jan Hubicka  <jh@suse.cz>
14950
14951         * i386.md (load_tp_di): Fix pasto.
14952
14953         PR opt/13608
14954         * i386.c (ix86_compute_frame_layout): Fix for alloca on leaf function.
14955
14956         * c-pretty-print.c (pp_c_type_cast, pp_c_abstract_declarator,
14957         pp_c_character_constant, pp_c_floating_constant,
14958         pp_c_additive_expression, pp_c_shift_expression,
14959         pp_c_equality_expression, pp_c_and_expression,
14960         pp_c_exclusive_or_expression, pp_c_inclusive_or_expression,
14961         pp_c_logical_and_expression): Remove inline modifier.
14962         * dwarf2out.c (get_AT): Likewise.
14963         * et-forest.c (et_splay): Likewise.
14964         * ra.h (ra_alloc, ra_calloc): Likewise
14965
14966 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
14967
14968         * config/frv/frv-protos.h: Fix comment formatting.
14969         * config/frv/frv.c: Likewise.
14970         * config/frv/frv.h: Likewise.
14971         * config/frv/frv.md: Likewise.
14972         * config/frv/frvbegin.c: Likewise.
14973         * config/frv/frvend.c: Likewise.
14974
14975 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
14976
14977         * system.h (LINKER_DOES_NOT_WORK_WITH_DWARF2): Poison.
14978         * doc/tm.texi (PREFERRED_DEBUGGING_TYPE): Don't mention
14979         LINKER_DOES_NOT_WORK_WITH_DWARF2.
14980         (LINKER_DOES_NOT_WORK_WITH_DWARF2): Remove.
14981
14982 2004-01-16  J"orn Rennecke <joern.rennecke@superh.com>
14983
14984         PR 11864
14985         * postreload.c (reload_cse_simplify_operands): Don't remove
14986         implicit extension from LOAD_EXTEND_OP.
14987
14988 2004-01-16  Jan Hubicka  <jh@suse.cz>
14989
14990         PR opt/11350
14991         * cfgcleanup.c (try_optimize_cfg): Suppress tablejump removal
14992         after reload.
14993         * cfgrtl.c (rtl_can_merge_blocks, cfglayout_can_merge_blocks,
14994         rtl_try_redirect_by_replacing_branch): Likewise.
14995
14996 2004-01-15  Geoffrey Keating  <geoffk@apple.com>
14997
14998         PR pch/13689
14999         * alias.c (struct alias_set_entry): Mark for GC.
15000         (alias_sets): Make static, mark for GC.
15001         (record_alias_subset): Use GC to allocate alias structures.
15002         * varray.c (element): Make generic varrays GCed.
15003
15004         PR pch/13361
15005         * c-typeck.c (constructor_asmspec): Delete.
15006         (struct initializer_stack): Delete field 'asmspec'.
15007         (start_init): Delete saving of asmspec.
15008         (finish_init): Don't update constructor_asmspec.
15009         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
15010         * stmt.c (expand_asm): Duplicate strings from tree.
15011         (expand_asm_operands): Likewise.
15012         * tree.c (tree_size): Update computation of size of STRING_CST.
15013         (make_node): Don't make STRING_CST nodes.
15014         (build_string): Allocate string with tree node.
15015         * tree.def (STRING_CST): Update comment.
15016         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
15017         (tree_string): Place contents of string in tree node.
15018         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
15019         from tree.
15020
15021         * config/rs6000/rs6000.c (rs6000_va_arg): No need to special-case
15022         altivec operands.
15023
15024 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
15025
15026         * c-common.h: Fix comment formatting.
15027         * c-cppbuiltin.c: Likewise.
15028         * c-pragma.c: Likewise.
15029         * calls.c: Likewise.
15030         * collect2.c: Likewise.
15031         * cppcharset.c: Likewise.
15032         * cpptrad.c: Likewise.
15033         * dbxout.c: Likewise.
15034         * defaults.h: Likewise.
15035         * dwarf2out.c: Likewise.
15036         * fold-const.c: Likewise.
15037         * genautomata.c: Likewise.
15038         * genconditions.c: Likewise.
15039         * genflags.c: Likewise.
15040         * gengtype.c: Likewise.
15041         * integrate.c: Likewise.
15042         * loop.c: Likewise.
15043         * predict.c: Likewise.
15044         * sdbout.c: Likewise.
15045
15046 2004-01-15  Zack Weinberg  <zack@codesourcery.com>
15047
15048         * config/ia64/ia64.md (*movti_internal): C output template
15049         extracted to ia64.c.
15050         (*movti_internal_reg): Delete.
15051         (reload_inti, reload_outti): Use the correct mode on operand 2
15052         in the first place, don't fix it up in the output template.
15053         (movtf, reload_ointf, reload_outtf): New expanders.
15054         (*movtf_internal): New define_insn_and_split.
15055         * config/ia64/ia64.c (ia64_split_timode): Rename to ia64_split_tmode;
15056         make static; do not hand TFmode CONST_DOUBLEs to split_double.
15057         (ia64_split_tmode_move): New function, body mostly pulled
15058         from ia64.md:*movti_internal.
15059         (ia64_function_arg_words): New function, extracted common
15060         logic from ia64_function_arg et seq.
15061         (ia64_function_arg_offset): Likewise.  Handle correctly the
15062         case of a scalar quantity 16 bytes wide with only 8-byte alignment.
15063         (ia64_function_arg, ia64_function_arg_partial_nregs)
15064         (ia64_function_arg_advance): Use ia64_function_arg_words and
15065         ia64_function_arg_offset.
15066         (ia64_function_value): TCmode does not go in float regs.
15067         (ia64_secondary_reload_class): Also handle TFmode.
15068         * config/ia64/ia64-protos.h: Remove prototype for
15069         ia64_split_timode; add prototype for ia64_split_tmode_move.
15070
15071 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
15072
15073         * Makefile.in (MAINT): Make it an immediate assignment.
15074
15075 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
15076
15077         * config/m32r/m32r.md: Remove useless calls to gen_lowpart.
15078
15079 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
15080
15081         * config/h8300/coff.h: Replace Hitachi with Renesas.
15082         * config/h8300/elf.h: Likewise.
15083         * config/h8300/h8300-protos.h: Likewise.
15084         * config/h8300/h8300.c: Likewise.
15085         * config/h8300/h8300.h: Likewise.
15086         * config/h8300/h8300.md: Likewise.
15087         * config/h8300/lib1funcs.asm: Likewise.
15088
15089 2004-01-15  Andrew Pinski  <apinski@apple.com>
15090
15091         * config/rs6000/rs6000.c (uses_TOC): Wrap #if TARGET_ELF
15092         around it.
15093
15094 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
15095
15096         * config/h8300/h8300.c (h8300_return_in_memory): New.
15097         (TARGET_STRUCT_VALUE_RTX): Likewise.
15098         (TARGET_RETURN_IN_MEMORY): Likewise.
15099         * config/h8300/h8300.h (STRUCT_VALUE): Remove.
15100         (RETURN_IN_MEMORY): Likewise.
15101
15102 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
15103
15104         PR optimization/13375
15105         * gcse.c (handle_avail_expr): Just return if the source is not a
15106         single set.
15107
15108 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
15109             Daniel Jacobowitz  <drow@mvista.com>
15110
15111         * arm/lib1funcs.asm (ARM_FUNC_START): Correct interworking case.
15112         (EQUIV): Define.
15113         (ARM_FUNC_ALIAS): New macro.
15114         * arm/ieee754-df.S (gedf2, ledf2, nedf2, eqdf2): Use it.
15115         * arm/ieee754-sf.S (gesf2, lesf2, nesf2, eqsf2): Use it.
15116
15117 2004-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15118
15119         PR optimization/12372
15120         * calls.c (expand_call): Add call_fusage data for stack arguments in
15121         constant calls.
15122
15123 2004-01-15  Alan Modra  <amodra@bigpond.net.au>
15124
15125         * config/rs6000/rs6000.c (uses_TOC): Correct comment.  Make static.
15126         (rs6000_elf_declare_function_name): Formatting.
15127         * config/rs6000/rs6000-protos.h (uses_TOC): Remove declaration.
15128
15129 2004-01-15  Jan Hubicka  <jh@suse.cz>
15130
15131         PR bootstrap/13692
15132         * sched-deps.c (sched_analyze_1, sched_analyze_2): Fix thinko in
15133         previous patch.
15134
15135 2004-01-15  Richard Henderson  <rth@redhat.com>
15136
15137         * config/alpha/alpha.h (REG_ALLOC_ORDER): Reorder fp regs after
15138         integer regs of the same call-savedness.
15139
15140 2004-01-15  Andreas Schwab  <schwab@suse.de>
15141
15142         PR bootstrap/13562
15143         * config/m68k/m68k.c (output_move_const_into_data_reg): Clear cc
15144         status for NOTB/NOTW/NEGW methods.
15145
15146 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
15147
15148         * doc/invoke.texi: Update dump file names.  Fix a typo.
15149
15150 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
15151
15152         * builtins.c (expand_builtin_va_end): Don't use
15153         EXPAND_BUILTIN_VA_END.
15154         * system.h (EXPAND_BUILTIN_VA_END): Poison.
15155         * config/d30v/d30v.h: Remove a commented-out definition of
15156         EXPAND_BUILTIN_VA_END.
15157         * config/stormy16/stormy16.h: Likewise.
15158
15159 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
15160
15161         * system.h (STRUCT_VALUE_INCOMING_REGNUM): Poison.
15162         * targhooks.c (default_struct_value_rtx): Don't use
15163         STRUCT_VALUE_INCOMING_REGNUM.
15164
15165 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
15166
15167         PR bootstrap/12744
15168         * configure.in: Revamp enable-generated-files-in-srcdir rule to define
15169         GENINSRC and not parsedir.  Define srcextra as a langhook.
15170         * configure: Regenerate.
15171         * Makefile.in: Suppress default .l.c rule.  Don't substitute
15172         parsedir and delete all references throughout.  Conditionally define
15173         rule for srcextra dependent on GENINSRC.
15174         (stmp-docobjdir): Delete.
15175         (c-parse.o, gengtype-lex.o, gengtype-yacc.o): Use implicit build rule.
15176         (srcextra): Copy c-parse.y, c-parse.c, gengtype-lex.c, gengtype-yacc.c,
15177         and gengtype-yacc.h back to source directory.
15178         (maintainer-clean): Delete all parse files in source directory.
15179         (distclean): Delete generated files.
15180
15181         * objc/Make-lang.in (objc-parse.o): Use implicit build rule.
15182         (objc-parse.c, objc-parse.y): Don't use parsedir.
15183         (objc.srcextra): Copy objc-parse.y and objc-parse.c back to source
15184         directory if requested.
15185         (po-generated): Don't use parsedir.
15186         (objc.maintainer-clean): Delete above files from source directory.
15187
15188 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
15189
15190         * doc/tm.texi (FUNCTION_VALUE): Fix a typo.
15191
15192 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
15193
15194         * doc/tm.texi: Replace RETURN_IN_MEMORY with
15195         TARGET_RETURN_IN_MEMORY.
15196
15197 2004-01-15  Jan Hubicka  <jh@suse.cz>
15198
15199         * builtins.c (std_expand_builtin_va_arg): Align operand when needed.
15200         * i386.c (init_cumulative_args): Set warn_sse; fix handling of variadic
15201         functions accepting SSE arguments
15202         (function_arg): Warn only when asked to warn.
15203         * i386.h (ix86_args): Add warn_sse/warn_mmx fiels.
15204
15205 2004-01-14  Joseph S. Myers  <jsm@polyomino.org.uk>
15206
15207         * c-parse.in (stmts_and_decls): Make label at end of compound
15208         statement a hard error.
15209
15210 2004-01-14  Jan Hubicka  <jh@suse.cz>
15211
15212         * cgraph.c (create_edge): Use local.redefined_extern_inline.
15213         * cgraph.h (cgraph_local_info): Sort fields by size; add
15214         redefined_extern_inline
15215         (cgraph_global_info): Sort fields by size.
15216         (cgraph_node): Likewise.
15217         * cgraphunit.c (cgraph_finalize_function): Se
15218         local.redefined_extern_inline on redefinition.
15219         (cgraph_analyze_function): Use it; fix formating.
15220
15221 2004-01-14  Jan Hubicka  <jh@suse.cz>
15222
15223         PR c++/10776
15224         * sched-deps.c (trye_dependency_cache, anti_dependency_cache,
15225         outptu_dependency_cache, forward_dependency_cahe): Trun to vectors of
15226         bitmaps
15227         (cache_size): New variable
15228         (add_dependence): Update use; canonize early memory locations
15229         (sched_analyze_1): Likewise.
15230         (sched_analyze_2): Likewise.
15231         (init_dependency_caches): Initialize bitmaps.
15232         (free_dependency_caches): Free bitmaps
15233
15234 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
15235
15236         * calls.c: Replace STRICT_ARGUMENT_NAMING in comments with
15237         targetm.calls.strict_argument_naming().
15238         * target.h: Likewise.
15239
15240 2004-01-14  Richard Henderson  <rth@redhat.com>
15241
15242         PR debug/13231
15243         * dwarf2out.c (dwarf2out_stack_adjust): Skip prologue and epilogue
15244         instructions.
15245
15246 2004-01-14  Richard Henderson  <rth@redhat.com>
15247
15248         PR c++/12491
15249         * except.c (struct eh_region): Add u.fixup.resolved.
15250         (resolve_one_fixup_region): Split out from ...
15251         (resolve_fixup_regions): ... here.
15252
15253 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
15254
15255         * config/mn10300/mn10300.h (STRUCT_VALUE): Change to 0.
15256
15257 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
15258
15259         * config/alpha/alpha.h (STRUCT_VALUE): Remove.
15260         * config/alpha/vms.h (STRUCT_VALUE_REGNUM): Remove #undef.
15261         (STRUCT_VALUE): Remove.
15262
15263 2004-01-14  Steven Bosscher  <stevenb@suse.de>
15264
15265         * system.h: Poison PROMOTED_MODE
15266         * integrate.c (expand_inline_function): Don't mention the
15267         PROMOTED_MODE.
15268         * loop.c (update_giv_derive): Same.
15269         * tree.h (DECL_RTL): Same.
15270
15271 2004-01-14  J"orn Rennecke <joern.rennecke@superh.com>
15272
15273         PR target/9365
15274         * sh.c (gen_block_redirect): Add special handling of RETURN.
15275         (gen_far_branch) Don't call gen_stuff_delay_slot if there is no
15276         far branch target (i.e. it's a return).
15277
15278 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
15279
15280         * regrename.c (find_oldest_value_reg): Fix a warning.
15281
15282 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
15283
15284         PR bootstrap/12527
15285         * config.gcc (arm*-*-linux*): Don't include unknown-elf.h in tm_file.
15286         Move linux-gas.h and linux-elf.h before aout.h.
15287         * arm/arm.h (INITIALIZE_TRAMPOLINE): Only define if not already.
15288         * arm/linux-elf.h (SUBTARGET_CPU_DEFAULT): Define.
15289
15290 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
15291
15292         * config/m32r/m32r.md: Use GEN_INT instead of gen_rtx
15293         (CONST_INT, VOIDmode, ...).
15294
15295 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
15296
15297         * regrename.c (find_oldest_value_reg): If the replacement uses
15298         multiple hard registers, check that all of them are in CLASS.
15299
15300 2004-01-14  Jan Hubicka  <jh@suse.cz>
15301
15302         * alias.c (get_alias_set):  Initialize alias set to 0 when subset is
15303         impossible.
15304
15305 2004-01-14  Kelley Cook  <kcook@gcc.gnu.org>
15306
15307         * Makefile.in: Define MAINT from --enable-maintainer-mode.
15308
15309 2004-01-14  Hartmut Penner  <hpenner@de.ibm.com>
15310
15311         * gcc/config/rs6000/rs6000.c (rs6000_stack_info)
15312         Calculate always vrsave_mask if TARGET_ALTIVEC.
15313         (rs6000_emit_prologue): Emit code for vrsave
15314         only if TARGET_ALTIVEC_VRSAVE.
15315         (rs6000_emit_epilogue): Likewise.
15316
15317 2004-01-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
15318
15319         * config/sparc/sparc.md (tie_add32): Fix pasto.
15320         (tie_add64): Likewise.
15321
15322 2004-01-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
15323
15324         * config/i386/i386.md (*addqi_1_slp): Do not access operands[2].
15325
15326 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
15327
15328         * config/iq2000/iq2000-protos.h: Fix comment formatting.
15329         * config/iq2000/iq2000.c: Likewise.
15330         * config/iq2000/iq2000.md: Likewise.
15331
15332 2004-01-14  J. Brobecker  <brobecker@gnat.com>
15333
15334         * dwarf2out.c (is_ada_subrange_type): No longer check the TYPE_NAME.
15335         (subrange_type_die): Add handle for nameless subrange types.
15336
15337 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
15338
15339         * config/h8300/h8300-protos.h: Replace do_movsi with
15340         h8300_expand_movsi.
15341         * config/h8300/h8300.c (do_movsi): Change to
15342         h8300_expand_movsi.
15343         * config/h8300/h8300.md (movsi): Replace do_movsi with
15344         h8300_expand_movsi.
15345         (movsf): Likewise.
15346
15347 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
15348
15349         * config/h8300/h8300.c (dosize): Change to
15350         h8300_emit_stack_adjustment.  Update callers.
15351
15352 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
15353
15354         * config/h8300/h8300.md (movstrictqi): Add an alternative with
15355         the source being post_inc.  Tighten the predicate for the
15356         destination to register_operand.
15357         (movstricthi): Likewise.
15358
15359 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
15360
15361         * system.h (SHARED_BSS_SECTION_ASM_OP): Poison.
15362         * varasm.c (bss_section): Don't use SHARED_BSS_SECTION_ASM_OP.
15363         * doc/tm.texi (SHARED_BSS_SECTION_ASM_OP): Remove.
15364
15365 2004-01-14  Jan Hubicka  <jh@suse.cz>
15366
15367         Partial fix PR c++/12850
15368         * cgraphunit.c (cgraph_finalize_function): Always ggc_collect when
15369         at zero nest level.
15370
15371 2004-01-13  Bernardo Innocenti  <bernie@develer.com>
15372
15373         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Add missing "argptr"
15374         pseudo-register.
15375
15376 2004-01-13  Devang Patel <dpatel@apple.com
15377
15378         PR debug/7078
15379         * dbxout.c (dbxout_symbol_name): Emit mangled names for
15380         NAMESPACE_DECL memebers.
15381
15382 2004-01-13  Andrew Pinski  <pinskia@physics.uc.edu>
15383
15384         PR c++/12709
15385         * c-common.c (finish_fname_decls): Use the chain only if the
15386         tree is an expr_stmt.
15387
15388 2004-01-13  Vladimir Makarov  <vmakarov@redhat.com>
15389
15390         * rtl.def: Add comment about new option in automata_option.
15391
15392         * genautomata.c (PROGRESS_OPTION): New macro.
15393         (progress_flag): New global variable.
15394         (gen_automata_option): Process `progress'.
15395         (transform_insn_regexps, check_unit_distributions_to_automata,
15396         make_automaton, NDFA_to_DFA, build_automaton, create_automata,
15397         expand_automata, write_automata): Print about the progress only if
15398         progress_flag.  Remove fflush.
15399         (initiate_automaton_gen): Process command line flag `-progress'.
15400
15401         * doc/md.texi: Describe the new option.
15402
15403 2004-01-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
15404
15405         * cfg.c (dump_bb): Dump entry edges.
15406
15407 2004-01-13  Richard Earnshaw  <rearnsha@arm.com>
15408
15409         * arm.c (thumb_legitimate_address_p): Only allow constant pool
15410         references from SImode.
15411         * arm.md (thumb_movhi_insn): Don't allow minipool references.
15412
15413 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
15414
15415         * system.h (TEXT_SECTION): Poison.
15416         * varasm.c (text_section): Don't use TEXT_SECTION.
15417         * config/sh/sh.c (sh_file_start): Fix a comment typo.
15418         * doc/tm.texi (TEXT_SECTION): Remove.
15419
15420 2004-01-13  Ben Elliston  <bje@wasabisystems.com>
15421
15422         * doc/rtl.texi (Vector Operations): Remove defunct vec_const item.
15423
15424 2004-01-12  James E Wilson  <wilson@specifixinc.com>
15425
15426         * unwind-libunwind.c: Delete.
15427
15428 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
15429
15430         PR 13656
15431         * c-decl.c (diagnose_mismatched_decls): Whenever newtype or
15432         oldtype is set, set *newtypep or *oldtypep too.  Do not set
15433         them at the very end.
15434         (validate_proto_after_old_defn): Restructure for comprehensibility;
15435         make error messages clearer.
15436
15437 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
15438
15439         * varray.h (VARRAY_POP): Add checking variant, aborts on underflow.
15440         (VARRAY_TOP): Use VARRAY_CHECK so the access is bounds-checked.
15441         * varray.c: No need to prototype error.
15442         (varray_check_failed): Wrap long string onto two lines.
15443         (varray_underflow): New function.
15444
15445 2004-01-13  Steven Bosscher  <stevenb@suse.de>
15446
15447         PR c++/13376
15448         * function.h (struct function): Kill `name' field.
15449         (current_function_name): Make it an extern function.
15450         * function.c (current_function_name): New function.
15451         * graph.c: Update all uses of current_function_name.
15452         * gcse.c: Likewise.
15453         * config/alpha/alpha.c, config/avr/avr.c, config/c4x/c4x.c,
15454         config/mips/mips.c, config/pdp11/pdp11.c: Likewise.
15455         * config/ip2k/ip2k.c (function_prologue): Use MAIN_NAME_P
15456         instead of a strcmp with "main".
15457
15458 2004-01-13  Jan Hubicka  <jh@suse.cz>
15459
15460         * c-decl.c (diagnose_mismatched_decls):  Fix warning calls.
15461
15462         * cgraphunit.c (cgraph_optimize_function):  Always do
15463         optimize_inline_calls when there is always_inline callee.
15464         (cgraph_decide_inlining): Fix formating.
15465         * tree-inline.c (inlinable_function_p): Do sorry for alwaysinline
15466         functions.
15467         (expand_call_inline): Likewise.
15468         * toplev.h (sorry): Fix prototype.
15469
15470 2004-01-12  Roger Sayle  <roger@eyesopen.com>
15471
15472         * builtins.c (expand_builtin_expect_jump): Simplify logic. Handle
15473         conditional jumps that drop through to unconditional jumps or the
15474         end of the sequence.
15475
15476 2004-01-13  Jan Hubicka  <jh@suse.cz>
15477
15478         * alias.c (new_alias_set): Construct the alias_set varray.
15479         (init_alias_once): Don't do it here.
15480
15481 2004-01-12  Marc Espie <espie@openbsd.org>
15482
15483         * system.h: handle YYBYACC like YYBISON.
15484
15485 2004-01-12  Jonathan Merriman <jonm@dualitymedia.com>
15486
15487         PR target/10847
15488         * config.gcc: No longer includes conflicting header sparc/sol2.h when
15489         building on sparc64-*-openbsd*.
15490
15491 2004-01-12  Andrew Pinski  <pinskia@physics.uc.edu>
15492
15493         PR debug/13539
15494         * dbxout.c (dbxout_type): Protected inheritance is not
15495         private but protected.
15496
15497 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
15498
15499         * config/mips/mips.c (mips_symbolic_constant_p): Revert last patch.
15500
15501 2004-01-12  Kazu Hirata  <kazu@cs.umass.edu>
15502
15503         PR optimization/12508.
15504         * combine.c (try_combine): Remove a dead set in a parallel
15505         even if its destination is a subreg.
15506
15507         Revert:
15508         2003-06-03  Kazu Hirata  <kazu@cs.umass.edu>
15509         * combine.c (simplify_set): Don't move a subreg in SET_SRC to
15510         SET_DEST if WORD_REGISTER_OPERATIONS is not defined.
15511
15512 2004-01-12  Geoffrey Keating  <geoffk@apple.com>
15513
15514         * real.c: Update copyright date.
15515         * emit-rtl.c: Likewise.
15516         * rtl.h: Likewise.
15517         * dwarf2out.c: Likewise.
15518         * config/rs6000/darwin-ldouble.c: Likewise.
15519         * config/rs6000/rs6000.md: Likewise.
15520
15521 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
15522
15523         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Add AIX
15524         TFmode to SImode libfuncs.
15525
15526 2004-01-12  Roger Sayle  <roger@eyesopen.com>
15527
15528         PR middle-end/11397
15529         * varasm.c (assemble_alias): Remove weak aliases from weak_decls.
15530
15531 2004-01-12  Jan Hubicka  <jh@suse.cz>
15532
15533         PR opt/12826
15534         * loop.c (insert_loop_mem): Preffer VOLATILE memory references to be
15535         stored.
15536
15537         PR opt/12863
15538         * cfgcleanup.c (label_is_jump_target_p): Move to...
15539         * rtlanal.c (label_is_jump_target_p): ... here.
15540         * cfgrtl.c (cfg_layout_redirect_edge_and_branch):  Fix redirecting of fallthru
15541         edges unified with branch edges.
15542
15543 2004-01-12  Richard Earnshaw  <rearnsha@arm.com>
15544
15545         * simplify-rtx.c (simplify_immed_subreg): Correctly extract the
15546         high word of an integral CONST_DOUBLE.
15547
15548 2004-01-12  Paul Brook  <paul@codesourcery.com>
15549
15550         * simplify-rtx.c (simplify_plus_minus): Always generate canonical form.
15551
15552 2004-01-12  J"orn Rennecke <joern.rennecke@superh.com>
15553
15554         PR target/13585
15555         * sh-protos.h (check_use_sfunc_addr): Declare.
15556         * sh.c (extract_sfunc_addr, check_use_sfunc_addr): New functions.
15557         * sh.md (use_sfunc_addr): Use check_use_sfunc_addr in insn predicate.
15558
15559 2004-01-12  Jan Hubicka  <jh@suse.cz>
15560
15561         * alias.c:  Invlude varray.h
15562         (alias_sets): Turn into varray.
15563         (get_alias_set_entry): Use VARRAY; mark inline.
15564         (mems_in_disjoint_alias_sets_p): Mark inline.
15565         (record_alias_subset): Use varray.
15566         (init_alias_once): Initialize varray.
15567         (new_alias_set): Grow array.
15568         * varray.c: Make VARRAY_GENERIC_PTR non GTYized.
15569
15570 2004-01-12  Jan Hubicka  <jh@suse.cz>
15571
15572         Partial fix for PR opt/10776 II
15573         * cselib.c: Include params.h
15574         (cselib_invalidate_mem):  Limit amount of nonconflicting memory
15575         locations.
15576         * params.def (PARAM_MAX_CSELIB_MEMORY_LOCATIONS): New.
15577         * Makefile.in (cselib.o): Depend on params.h
15578
15579 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
15580
15581         * combine.c (combine_simplify_rtx): Don't pass VOIDmode to
15582         simplify_unary_operation if the operand has a known mode.
15583
15584 2004-01-12  Hartmut Penner  <hpenner@de.ibm.com>
15585
15586         PR target/13534
15587         * gcc/config/rs6000/rs6000.c (word_offset_memref_operand): New
15588         predicate to handle 'ld' conform addresses.
15589         * gcc/config/rs6000/rs6000.h (EXTRA_CONSTRAINT): New 'Y'
15590         contraint.
15591         (EXTRA_MEMORY_CONSTRAINT): Tell reload which constraint
15592         are memory contraints.
15593         * gcc/config/rs6000/rs6000-protos.h (word_offset_memref_operand):
15594         New prototype.
15595         * gcc/config/rs6000/rs6000.md (*movdf_hardfloat64):
15596         Change 'o' to 'Y' constraint.
15597         (*movdf_softfloat64): Ditto.
15598
15599 2004-01-12  Bernardo Innocenti  <bernie@develer.com>
15600
15601         * gcc/config/m68k/m68k.md: Switch from the "*..." syntax to the
15602         brace-enclosed syntax in all C output statements.
15603
15604 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
15605
15606         PR target/13401
15607         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
15608         Objective-C language type value is 14.
15609
15610 2004-01-12  Markus F.X.J. Oberhumer  <markus@oberhumer.com>
15611
15612         PR c/12148
15613         * config/m68k/fpgnulib.c: Fix `-mshort' bugs: Use `long' instead of
15614         `int' in a number of places to make sure we always have a SImode
15615         and not a HImode.  Add a 'L' suffix to a number of constants.
15616
15617 2004-01-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15618
15619         * pa.c: Don't include obstack.h.
15620
15621         * pa.md: Correct constraint in pattern for loading PIC label address.
15622
15623 2004-01-11  Kaz Kojima  <kkojima@gcc.gnu.org>
15624
15625         * config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine
15626          before defining.
15627
15628 2004-01-11  Steven Bosscher  <stevenb@suse.de>
15629
15630         PR fortran/9972
15631         * toplev.c (rest_of_handle_inline): Also consider functions
15632         for deferral if the language is GNU F77.
15633
15634 2004-01-11  Zack Weinberg  <zack@codesourcery.com>
15635
15636         * c-decl.c (diagnose_arglist_conflict): Add missing space to
15637         diagnostic messages.
15638
15639 2004-01-11  Jakub Jelinek  <jakub@redhat.com>
15640
15641         PR middle-end/13392
15642         * builtins.c (expand_builtin_expect_jump): Handle conditional jumps
15643         to drop through label.  Don't fall back to SCC even when conditional
15644         jump has not been found.
15645
15646 2004-01-11  Jan Hubicka  <jh@suse.cz>
15647
15648         * invoke.texi: Fix syntax error in previous patch.
15649
15650         Partial fix for PR opt/10776
15651         * Makefile.in (reload.o): Include param.h
15652         * params.def (PARAM_MAX_RELOAD_SEARCH_INSNS): New parameter.
15653         * reload.c: Include params.h.
15654         (find_equiv_reg): Work limiting check.
15655         * invoke.texi: Document.
15656
15657 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
15658
15659         * config/mips/mips.c (mips_symbolic_constant_p): Don't allow
15660         out-of-bounds accesses to string constants.  Simplify mips16
15661         case accordingly.
15662
15663 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
15664
15665         PR optimization/13469
15666         * toplev.c (rest_of_compilation): Call purge_all_dead_edges after
15667         reload_cse_regs (-fnon-call-exceptions only).
15668
15669 2004-01-11  Kazu Hirata  <kazu@cs.umass.edu>
15670
15671         * config/mcore/lib1.asm: Fix comment formatting.
15672         * config/mcore/mcore-elf.h: Likewise.
15673         * config/mcore/mcore.c: Likewise.
15674         * config/mcore/mcore.h: Likewise.
15675         * config/mcore/mcore.md: Likewise.
15676
15677 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
15678
15679         * c-decl.c (duplicate_decls): Break apart into...
15680         (diagnose_arglist_conflict, validate_proto_after_old_defn)
15681         (locate_old_defn, diagnose_mismatched_decls, merge_decls):
15682         ... these new functions.  Restructure for comprehensibility.
15683         Remove various archaic special cases.  Always report the
15684         location of the previous declaration when a diagnostic is issued.
15685         (redeclaration_error_message): Fold into diagnose_mismatched_decls.
15686         (match_builtin_function_types): Delete unnecessary forward declaration.
15687
15688 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
15689
15690         * genautomata.c (make_automaton, NDFA_to_DFA):
15691         Print progress bars with '.' characters instead of '*'.
15692         (build_automaton): Change notes to match.
15693
15694 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
15695
15696         * config/m32r/m32r.md: Use define_constants for unspec and
15697         unspec_volatile.
15698
15699 2004-01-10  Jan Hubicka  <jh@suse.cz>
15700
15701         PR opt/11635
15702         * expr.c (expand_expr_real):  More curefully expand union casts.
15703
15704 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
15705
15706         * config/m32r/m32r.md (flush_icache): Use 1 for
15707         unspec_volatile.
15708
15709 2004-01-10  David Edelsohn  <edelsohn@gnu.org>
15710             James E Wilson  <wilson@specifixinc.com>
15711
15712         PR debug/12860
15713         * dbxout.c (dbxout_symbol): Remove initialization of
15714         current_sym_code, current_sym_value, and current_sym_addr.
15715         (dbxout_symbol_location): Same.
15716         (dbxout_prepare_symbol): Zero current_sym_code,
15717         current_sym_value, and current_sym_addr.
15718
15719 2004-01-10  Richard Sandiford  <rsandifo@redhat.com>
15720
15721         * tree.c (get_unwidened): Reorder conditions so that the null pointer
15722         check is done first.
15723
15724 2004-01-09  Eric Christopher  <echristo@redhat.com>
15725
15726         * toplev.c (rest_of_handle_cfg): Add reg_scan pass
15727         if we're running mark_constant_function.
15728
15729 2004-01-09  Jeff Bailey  <jbailey@nisa.net>
15730
15731         PR target/12561
15732         * config/t-gnu: Rename SYSTEM_HEADER_DIR to NATIVE_SYSTEM_HEADER_DIR.
15733
15734 2004-01-09  Andrew Pinski <pinskia@physics.uc.edu>
15735
15736         PR debug/11231
15737         * dbxout.c (dbxout_type_fields): Return if any item is
15738         error_mark_node or the type is error_mark_node.
15739
15740 2004-01-09  Geoffrey Keating  <geoffk@apple.com>
15741
15742         * config/rs6000/darwin-ldouble.c: Add big comment explaining
15743         exactly what is expected as a 'long double'.
15744         (_xlqadd): When a value to be returned is representable as a
15745         'double', just return it directly, do not construct it using a union.
15746         Also, correct final fixup.
15747         (_xlqmul): Likewise.
15748         (_xlqdiv): Likewise.
15749         * real.c (encode_ibm_extended): Make consistent with darwin-ldouble.c.
15750
15751         * config/rs6000/rs6000.md (fix_trunctfdi2): Delete.
15752
15753 2004-01-09  Richard Henderson  <rth@redhat.com>
15754
15755         * recog.c (constrain_operands): Validate mem operands.
15756
15757 2004-01-09   James E Wilson  <wilson@specifixinc.com>
15758
15759         * gcc.c (init_spec): Remove -lunwind from shared case.
15760         * conifg/ia64/t-hpux (SHLIB_LINK): Add -lunwind.
15761
15762 2004-01-09  Steve Ellcey  <sje@cup.hp.com>
15763
15764         * configure.ac: (gcc_cv_ld_hidden) Set to true for ia64*-*-hpux*.
15765         * configure: Regenerate
15766
15767 2004-01-09  Joseph S. Myers  <jsm@polyomino.org.uk>
15768
15769         PR c/11234
15770         * c-typeck.c (build_c_cast): If pedantic, warn for conversions
15771         between function and object pointers.
15772         (digest_init): When comparing a pointer to function type to the
15773         target type, only apply TREE_TYPE once to the pointer to function
15774         type.
15775         * except.c (for_each_eh_label_1): Treat data as a pointer to a
15776         function pointer rather than casting it to a function pointer.
15777         (for_each_eh_label): Update caller.
15778         * recog.h (struct insn_data): Use a struct or union for output.
15779         * genoutput.c (output_insn_data): Update.
15780         * final.c (get_insn_template): Update.
15781
15782 2004-01-09  Mark Mitchell  <mark@codesourcery.com>
15783
15784         * expr.h (expand_expr): Make it a macro, not a function.
15785         (expand_expr_real): New function.
15786         * expr.c (store_expr): Adjust logic for deciding whether or not to
15787         copy the value returned by expand_expr.
15788         (expand_expr): Rename to ...
15789         (expand_expr_real): ... this.  Add alt_rtl parameter.  Adjust
15790         calls to language hooks.
15791         * c-common.h (c_expand_expr): Adjust prototype.
15792         * c-common.c (c_expand_expr): Add alt_rtl parameter.
15793         * langhooks-def.h (lhd_expand_expr): Change prototype.
15794         * langhooks.c (lhd_expand_expr): Add all_rtl parameter.
15795         * langhooks.h (lang_hooks): Change type of expand_expr.
15796         * stmt.c (stmt_status): Add x_last_expr_alt_rtl.
15797         (last_expr_alt_rtl): Likewise.
15798         (expand_expr_stmt_value): Set last_expr_alt_rtl.
15799         (clear_last_expr): Clear it.
15800         (expand_end_stmt_expr): Set RTL_EXPR_ATL_RTL.
15801         (expand_end_bindings): Save and restor last_expr_alt_rtl.
15802         * tree.def (RTL_EXPR): Give it an additional operand.
15803         * tree.h (RTL_EXPR_ALT_RTL): New macro.
15804
15805 2004-01-09  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
15806
15807         * config/m32r/m32r.h (TARGET_CPU_CPP_BUILTINS): Add __m32r__.
15808         * config/m32r/m32r.c (call26_operand): Allow in PIC mode.
15809
15810 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
15811
15812         PR target/13380.
15813         * config/m32r/m32r.md: Replace (reg:SI 17) with (reg:CC 17)
15814         or (ne:SI (reg:CC 17) (const_int 0)).
15815         Be specific about modes wherever possible.
15816
15817 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
15818
15819         * config/m32r/m32r.c (m32r_expand_block_move): Call
15820         gen_movestrsi_internal with two more arguments.
15821         (m32r_output_block_move): Adjust operand numbers.
15822         Properly update the source and destination pointers.
15823         * config/m32r/m32r.md (movstrsi_internal): Use 'r' instead of
15824         'r+'.  Change the set detinations to match_operand.
15825
15826 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
15827
15828         * final.c (FIRST_INSN_ADDRESS): Remove.
15829         (shorten_branches): Don't use FIRST_INSN_ADDRESS.
15830         * system.h (FIRST_INSN_ADDRESS): Poison.
15831         * config/avr/avr.h: Remove a comment about FIRST_INSN_ADDRESS.
15832         * config/m32r/m32r-protos.h: Remove the prototype for
15833         m32r_first_insn_address.
15834         * config/m32r/m32r.c (m32r_first_insn_address): Remove.
15835         * config/m32r/m32r.h (FIRST_INSN_ADDRESS): Likewise.
15836         * doc/md.texi (FIRST_INSN_ADDRESS): Likewise.
15837
15838 2004-01-09  J. Brobecker  <brobecker@gnat.com>
15839
15840         * dwarf2out.c (gen_enumeration_type_die): Return the DIE that
15841         we just created.
15842         (is_ada_subrange_type): DIEs for enumeration subtypes should be
15843         emitted as subrange types too.
15844         (subrange_type_die): Add handling of enumeration subtypes.
15845
15846 2004-01-08  Richard Henderson  <rth@redhat.com>
15847
15848         PR opt/12441
15849         Revert: Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>
15850         * i386.c (aligned_operand): Be prepared for SUBREGed registers.
15851         (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
15852         (ix86_address_cost): Be prepared for SUBREGed registers.
15853         (legitimate_address_p): Accept SUBREGed registers.
15854
15855 2004-01-08  Kelley Cook  <kcook@gcc.gnu.org>
15856
15857         * Makefile.in: Rename configure.in to configure.ac
15858         * doc/sourcebuild.texi: Likewise.
15859         * configure: Regenerate.
15860         * config.in: Regenerate.
15861
15862 2004-01-08  Stuart Hastings  <stuart@apple.com>
15863
15864         * config/i386/i386.md: Typos in MMX/SSE immediate shifts.
15865
15866 2004-01-08  Jan Hubicka  <jh@suse.cz>
15867
15868         * cgraphunit.c (cgraph_decide_inlining):  Fix typo.
15869
15870 2004-01-08  Geoffrey Keating  <geoffk@apple.com>
15871
15872         * config/rs6000/rs6000.md (cmptf_internal1): Correct branch offset.
15873         (UNSPEC_FIX_TRUNC_TF): New constant.
15874         (movtf_internal): Make splitter active only when insn is active.
15875         (extenddftf2): Rewrite to properly load zero into low part.
15876         (extenddftf2_internal): New.
15877         (extendsftf2): Rewrite.
15878         (truncdftf2): Correct length.
15879         (floatditf2): Delete.
15880         (fix_trunc_helper): New.
15881         (fix_trunctfdi2): Use fix_trunc_helper.
15882         (fix_trunctfsi2): Likewise.fix_trunc
15883         (fix_trunctfsi2_internal): New.
15884
15885         * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): lo_sum
15886         addresses are legitimate on Darwin even when flag_pic.
15887         (rs6000_legitimize_reload_address) [TARGET_MACHO]: Don't create
15888         non-offsettable addresses for loads of TFmode constants.
15889
15890 2004-01-08  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
15891
15892         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Actually emit
15893         variables in the appropriate bss section.
15894
15895 2004-01-09  Alan Modra  <amodra@bigpond.net.au>
15896
15897         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Ensure
15898         target_flags has MASK_POWERPC64 when -m64.
15899         * config/rs6000/rs6000.c (processor_target_table): Add MASK_POWERPC64
15900         to 620, 630, power3, power4 and rs64a entries.
15901         * config/rs6000/rs6000.h (MASK_64BIT): Expand comment.
15902
15903 2004-01-08  Richard Sandiford  <rsandifo@redhat.com>
15904
15905         * simplify-rtx.c (simplify_immed_subreg): Fix construction of
15906         floating-point constants.
15907
15908 2004-01-08  J. Brobecker  <brobecker@gnat.com>
15909
15910         * dwarf2out.c (subrange_type_die): Add context_die parameter.
15911         Create the subrange_type DIE using the given context DIE.
15912         (modified_type_die): Update call to subrange_type_die.
15913
15914 2004-01-08  Zack Weinberg  <zack@codesourcery.com>
15915
15916         * dwarf2.h, unwind-dw2-fde.h, unwind-pe.h, unwind.h:
15917         Add multiple-include guard.
15918
15919 2004-01-08  Hartmut Penner  <hpenner@de.ibm.com>
15920
15921         * gcc/config/rs6000/rs6000.c (easy_vector_constant): Accept
15922         all vector constant loadable by vsplt*.
15923         (output_vec_const_move): Likewise.
15924
15925 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
15926
15927         PR c/6024
15928         * c-typeck.c (comptypes): Only treat enumerated types in the same
15929         translation unit as compatible with each other when they are the
15930         same type.
15931         * doc/extend.texi: Update.
15932
15933 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
15934
15935         PR c/12165
15936         * c-decl.c (grokdeclarator): Take type qualifiers of typedefed
15937         array type from the array element type.
15938
15939 2004-01-07  Alan Modra  <amodra@bigpond.net.au>
15940
15941         * config/rs6000/rs6000.c (rs6000_dbx_register_number): New function.
15942         * config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Declare.
15943         * config/rs6000/rs6000.h (DWARF_FRAME_REGNUM): Define.
15944         (DWARF_REG_TO_UNWIND_COLUMN): Correct column adjustment and comment.
15945         * config/rs6000/sysv4.h (DBX_REGISTER_NUMBER): Define.
15946
15947 2004-01-06  Eric Christopher  <echristo@redhat.com>
15948
15949         * config/mips/mips.h (MDEBUG_ASM_SPEC): Change for dwarf2 default.
15950         (DWARF2_DEBUGGING_INFO): Define.
15951         (PREFERRED_DEBUGGING_TYPE): Set to dwarf2.
15952         * config/mips/openbsd.h (PREFERRED_DEBUGGING_TYPE): Remove.
15953         * config/mips/iris6.h (SUBTARGET_ASM_DEBUGGING_SPEC): Only pass -g0
15954         for irix as.
15955         (SUBTARGET_ASM_OPTIMIZING_SPEC): Only pass O0 for irix as.
15956         * config/mips/iris6gas.h (MDEBUG_ASM_SPEC): Remove.
15957         * config/mips/iris5gas.h: Ditto.
15958         (DBX_DEBUGGING_INFO): Remove.
15959         (DWARF2_DEBUGGING_INFO): Ditto.
15960         (MIPS_DEBUGGING_INFO): Ditto.
15961         (PREFERRED_DEBUGGING_TYPE): Ditto.
15962         * config/mips/elf.h (DWARF2_DEBUGGING_INFO): Remove.
15963         (PREFERRED_DEBUGGING_TYPE): Ditto.
15964         (SUBTARGET_ASM_DEBUGGING_SPEC): Ditto.
15965         * config/mips/elf64.h: Ditto.
15966
15967 2004-01-06  Jan Hubicka  <jh@suse.cz>
15968
15969         * Makefile.in (STAGEPROFILE_FLAGS_TO_PASS): Use -fprofile-generate.
15970         (STAGEFEEDBACK_FLAGS_TO_PASS): Use -fprofile-use.
15971
15972 2004-01-06  Geoffrey Keating  <geoffk@apple.com>
15973
15974         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Compile darwin-ldouble.c.
15975         (TARGET_LIBGCC2_CFLAGS): Use -mlong-double-128.
15976         * config/rs6000/darwin-ldouble.c: New.
15977
15978         * emit-rtl.c (gen_lowpart_common): Use simplify_gen_subreg
15979         for constants.
15980         (constant_subword): Delete.
15981         * rtl.h (constant_subword): Delete prototype.
15982         (immed_double_const): Is not in varasm.c.
15983         * simplify-rtx.c (simplify_immed_subreg): New.
15984         (simplify_subreg): Use simplify_immed_subreg.
15985
15986         * config/rs6000/rs6000.md (floatsitf2): Use expand_float rather
15987         than trying to generate RTL directly.
15988         (fix_trunctfsi2): Use expand_fix rather than trying to generate
15989         RTL directly.
15990
15991         * dwarf2out.c (add_const_value_attribute): Remove incorrect comment.
15992
15993 2004-01-06  David Edelsohn  <edelsohn@gnu.org>
15994
15995         * config/rs6000/xcoff.h (EXTRA_SECTION_FUNCTIONS): Split each
15996         function into a separate macro.
15997         (read_only_data_section): Add void argument.
15998         (private_data_section): Same.
15999         (read_only_private_data_section): Same.
16000         (toc_section): Same.
16001
16002 2004-01-06  Jan Hubicka  <jh@suse.cz>
16003
16004         * invoke.texi:  Remove typo in last change.
16005
16006         PR target/10301
16007         * config.gcc: Accept opteron and athlon-64 as variants
16008         of k8.
16009         * i386.c (override_options): Likewise.
16010         * invoke.texi (i386 -mtune): Expand documentation.
16011
16012 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
16013
16014         * alias.c: Fix comment typos.
16015         * builtins.c: Likewise.
16016         * cfg.c: Likewise.
16017         * df.c: Likewise.
16018         * dominance.c: Likewise.
16019         * dwarf2out.c: Likewise.
16020         * emit-rtl.c: Likewise.
16021         * expr.c: Likewise.
16022         * final.c: Likewise.
16023         * fold-const.c: Likewise.
16024         * gcse.c: Likewise.
16025         * genattrtab.c: Likewise.
16026         * genrecog.c: Likewise.
16027         * gensupport.c: Likewise.
16028         * ggc-zone.c: Likewise.
16029         * integrate.c: Likewise.
16030         * local-alloc.c: Likewise.
16031         * loop.c: Likewise.
16032         * recog.c: Likewise.
16033         * regmove.c: Likewise.
16034         * reg-stack.c: Likewise.
16035         * reorg.c: Likewise.
16036         * rtlanal.c: Likewise.
16037         * rtl.h: Likewise.
16038         * sched-ebb.c: Likewise.
16039         * simplify-rtx.c: Likewise.
16040         * toplev.c: Likewise.
16041         * varasm.c: Likewise.
16042
16043 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
16044
16045         * doc/install.texi: Fix typos.
16046         * doc/invoke.texi: Likewise.
16047         * doc/md.texi: Likewise.
16048
16049 2004-01-06  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
16050
16051         * config/m32r/m32r.h (TRAMPOLINE_LINE_SIZE): Changed
16052
16053 2004-01-06  Jan Hubicka  <jh@suse.cz>
16054
16055         * i386.c (init_cumulative_args):  Add handling of MMX_REGPARM.
16056         (function_arg_advance):  Do not pass aggregates in SSE; deal handling
16057         of MMX_REGPARM.
16058         (function_arg): Add new warnings about ABI changes;  fix SSE_REGPARM;
16059         add MMX_REGPARM.
16060         * i386.h (ix86_args): Add mmx_words/mmx_regs/mmx_regno fields.
16061         (SSE_REGPARM_MAX): Default to 3 on i386 -msse ABI.
16062         (MMX_REGPARM_MAX): Similarly for -mmmx.
16063
16064 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
16065
16066         * config/sh/linux.h: Fix comment formatting.
16067         * config/sh/netbsd-elf.h: Likewise.
16068         * config/sh/sh.c: Likewise.
16069         * config/sh/sh.h: Likewise.
16070         * config/sh/vxworks.h: Likewise.
16071
16072 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
16073
16074         * system.h (ASM_OUTPUT_MAIN_SOURCE_FILENAME): Poison.
16075         * toplev.c (output_file_directive): Don't use
16076         ASM_OUTPUT_MAIN_SOURCE_FILENAME.
16077
16078 2004-01-05  Steven Bosscher <s.bosscher@student.tudelft.nl>
16079
16080         * toplev.c: Fix broken checkin of 2003-12-30.
16081
16082 2004-01-05  Daniel Berlin  <dberlin@dberlin.org>
16083
16084         * ggc-zone.c: Remove everything in #ifdef USING_MALLOC_PAGE_GROUPS
16085         (USING_MMAP): We don't support non-mmap.
16086         (struct alloc_chunk): Steal 1 bit from typecode, use it to mark
16087         large objects.
16088         (struct page_entry): Remove bytes_free.
16089         (struct page_table_chain): Remove.
16090         (struct globals): Remove page_table member.
16091         (loookup_page_table_entry): Function deleted.
16092         (set_page_table_entry): Ditto.
16093         (ggc_allocated_p): No longer need page table lookups.
16094         (ggc_marked_p): Ditto.
16095         (alloc_small_page): Don't care about bytes_free anymore.
16096         (alloc_large_page): Round up size.
16097         (ggc_alloc_zone_1): Mark large objects as such, and calculate
16098         their size the new way.
16099         Remove page table lookups and setting.
16100         (ggc_get_size): Calculate large object size the new way.
16101         (sweep_pages): Redo to account for fact that we no longer have
16102         bytes_free.
16103         (ggc_collect): No longer need to reincrement bytes_free.
16104         (ggc_pch_alloc_object): Handle new large objects properly.
16105         (ggc_pch_read): Put PCH stuff into it's own uncollected zone.
16106
16107 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
16108
16109         * doc/invoke.texi: Remove a page break.
16110
16111 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
16112
16113         * config/avr/avr.c (avr_output_function_prologue): Remove an
16114         extra pair of curly braces.
16115
16116 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
16117
16118         * config/mn10300/mn10300.c: Fix comment formatting.
16119         * config/mn10300/mn10300.h: Likewise.
16120
16121 2004-01-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16122
16123         * tree.h: Update documentation on nothrow_flag.
16124         * print-tree.c (print_node): Print TREE_NOTHROW as "align-ok" for
16125         types.
16126
16127 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
16128
16129         * doc/invoke.texi: Remove traces of dead ports.
16130
16131 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
16132
16133         * doc/invoke.texi: Add documentation for the MIPS -mexplicit-relocs
16134         option.
16135
16136 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
16137
16138         PR target/12945
16139         * coverage.c (coverage_counter_alloc): Set SYMBOL_FLAG_LOCAL for
16140         counter labels.
16141         * config/mips/mips.c (INTERNAL_SYMBOL_P): Delete.
16142         (mips_classify_symbol): Always treat SYMBOL_REF_FLAG as indicating
16143         string constants if TARGET_MIPS16.  Use SYMBOL_REF_DECL to check
16144         the binding of decl symbols, otherwise check SYMBOL_REF_LOCAL_P.
16145         (mips_symbol_insns): Don't trust the local/global classification.
16146         (m16_usym8_4, m16_usym5_4): Same mips16 change as mips_classify_symbol.
16147         (override_options): Make -mabicalls -fno-unit-at-a-time imply
16148         -mno-explicit-relocs.
16149         (mips_encode_section_info): Don't use SYMBOL_REF_FLAG to distinguish
16150         between local and global symbols.
16151
16152 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
16153
16154         * config/mips/mips-protos.h (mips_dangerous_for_la25_p): Declare.
16155         (mips_preferred_reload_class): Declare.
16156         * config/mips/mips.h (DANGEROUS_FOR_LA25_P): Replace with function.
16157         (EXTRA_CONSTRAINT): Update accordingly.
16158         (PREFERRED_RELOAD_CLASS): Use mips_preferred_reload_class.
16159         * config/mips/mips.c (mips_dangerous_for_la25_p): New function.
16160         (mips_preferred_reload_class): New function.  Prefer LEA_REGS if
16161         mips_dangerous_for_la25_p.
16162         (mips_secondary_reload_class): Use LEA_REGS rather than GR_REGS
16163         if mips_dangerous_for_la25_p.
16164
16165 2004-01-05  Bernardo Innocenti  <bernie@develer.com>
16166
16167         * config/m68k/m68k.c (output_andsi3): Fix signed/unsigned comparison
16168         warning.
16169
16170 2004-01-04  Nathanael Nerode  <neroden@gcc.gnu.org>
16171
16172         * configure.ac: Use AC_PROG_CPP_WERROR.
16173         * configure: Regenerate.
16174
16175 2004-01-04  Zack Weinberg  <zack@codesourcery.com>
16176
16177         * .cvsignore: Add autom4te.cache.
16178
16179 2004-01-04  Richard Sandiford  <rsandifo@redhat.com>
16180
16181         * doc/invoke.texi: Revamp documentation of MIPS options.  Remove
16182         -mabi=meabi, -mabi-fake-default, -mmips-as, -mgas, -mmips-tfile,
16183         -m4650, -mfix7000 and -(m)no-crt0.  Put endianness options first,
16184         then architecture options, then ABI options.  General rewording.
16185
16186 2004-01-04  Joseph S. Myers  <jsm@polyomino.org.uk>
16187
16188         PR c/3414
16189         * doc/extend.texi: Clarify definition of malloc attribute.
16190
16191 2004-01-04  Jan Hubicka  <jh@suse.cz>
16192
16193         * Makefile.in (cgraph.o, cgraphunit.o): Add intl.h dependency.
16194         * cgraph.c (create_edge, dump_cgraph): Update to use inline_failed
16195         * cgraph.h (cgraph_edge): Replace inline_call by inline_failed
16196         (cgraph_inline_p): Add extra argument reason.
16197         * cgraphunit.c: Minor formating fixes.
16198         cgraph_first_inlined_callee): New functions.
16199         (record_call_1): Record builtins too.
16200         (cgraph_analyze_function): Update inline_failed messages.
16201         (cgraph_mark_functions_to_output, cgraph_expand_function, cgraph_inlined_into,
16202         cgraph_inlined_callees, cgraph_estimate_growth): Update to use inline_failed.
16203         (cgraph_check_inline_limits): Likewise; Add argument reason.
16204         (cgraph_set_inline_failed): New static function.
16205         (cgraph_decide_inlining_of_small_function, cgraph_decide_inlining): Set
16206         reasons.
16207         (cgraph_inline_p): Add new argument reason.
16208         * tree-inline.c (expand_call_inline):  Update warning.
16209
16210 2004-01-03  Nathanael Nerode  <neroden@gcc.gnu.org>
16211
16212         * configure.ac: Replace AC_INIT, AC_OUTPUT, AC_CANONICAL_SYSTEM
16213         with modern equivalents.
16214         * configure: Regenerate.
16215
16216         * configure.ac: Replace gcc_AC_CHECK_TYPE with AC_CHECK_TYPE.
16217         * aclocal.m4 (gcc_AC_CHECK_TYPE): Remove.
16218         * configure: Regenerate.
16219
16220         * doc/install.texi: Note that 'gcc' is now a 2.57 directory.
16221
16222         * configure.in: Rename to configure.ac.
16223         * configure.ac: Renamed from configure.in; make minimum necessary
16224         changes for autoconf 2.5x.
16225         * aclocal.m4: Make minimum necessary changes for autoconf 2.5x.
16226         * configure: Regenerate with autoconf 2.57.
16227
16228 2004-01-03  Kazu Hirata  <kazu@cs.umass.edu>
16229
16230         * config/mips/linux.h: Fix comment formatting.
16231         * config/mips/mips.c: Likewise.
16232         * config/mips/mips.h: Likewise.
16233         * config/mips/mips.md: Likewise.
16234         * config/mips/netbsd.h: Likewise.
16235         * config/mips/windiss.h: Likewise.
16236
16237 2004-01-02  Richard Henderson  <rth@redhat.com>
16238
16239         * config/i386/i386.md (fp constant pool splitter): Reorg suppression
16240         for sse and 387; add suppression for mmx.
16241
16242 2004-01-02  Andrew Pinski  <pinskia@physics.uc.edu>
16243
16244         * loop.c (loop_optimize): Free all loops_info's mems.
16245
16246         * c-typeck.c (finish_init): Free spelling_base before
16247         setting it again.
16248
16249         * cfgloop.c (flow_loops_find): Always free the sbitmap
16250         headers.
16251
16252         * predict.c (estimate_probability): Free bbs after being
16253         done with it.
16254
16255 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
16256
16257         * config/mn10300/mn10300.h (PREDICATE_CODES): Add
16258         const_8bit_operand and call_address_operand.
16259
16260 2004-01-02  Jan Hubicka  <jh@suse.cz>
16261
16262         * cgraphunit.c (cgraph_optimize_function):  Call optimize_inline_calls
16263         when there is nothing to inline but warnings are requested.
16264         (cgraph_decide_inlining):  Fix memory leak.
16265
16266 2004-01-02  Jan Hubicka  <jh@suse.cz>
16267
16268         * expr.c (store_constructor):  Fix pasto in previous patch.
16269
16270 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
16271
16272         * config/i386/cygming.h: Fix comment formatting.
16273         * config/i386/djgpp.h: Likewise.
16274         * config/i386/gthr-win32.c: Likewise.
16275         * config/i386/i386-interix.h: Likewise.
16276         * config/i386/i386.c: Likewise.
16277         * config/i386/i386.h: Likewise.
16278         * config/i386/openbsd.h: Likewise.
16279         * config/i386/winnt.c: Likewise.
16280         * config/i386/xm-mingw32.h: Likewise.
16281
16282 2004-01-02  Joseph S. Myers  <jsm@polyomino.org.uk>
16283
16284         * doc/gcc.texi, doc/invoke.texi, doc/install.texi: Update
16285         copyright and last modification dates.
16286
16287 2004-01-02  Andreas Jaeger  <aj@suse.de>, Gerald Pfeifer  <gp@suse.de>
16288
16289         * doc/install.texi (Specific): Mention x86_64.
16290
16291 2004-01-01  Hans-Peter Nilsson  <hp@bitrange.com>
16292
16293         * builtins.c (expand_builtin_apply_args_1) [STACK_GROWS_DOWNWARD]:
16294         Call force_operand on plus_constant result.
16295
16296 2004-01-01  Jan Hubicka  <jh@suse.cz>
16297
16298         * expmed.c (store_bit_field, extract_bit_field): Use new named patterns
16299         * expr.c (store_constructor): Use vec_init pattern.
16300         * genopinit.c (optabs): Initailize vec_set/vec_extract/vec_init.
16301         * optabs.h (optab_index): ADD OTI_vec_set/OTI_vec_extract/OTI_vec_init
16302         (vec_set_optab, vec_extract_optab, vec_init_optab): New.
16303         * i386.md (vec_setv2df, vec_extractv2df, vec_setv4sf, vec_extractv4sf):
16304         New patterns.
16305         (sse2_unpc?pd): Fix pattern.
16306         (sse2_movlpd): Kill.
16307         (sse2_movsd): Deal with movlpd too.
16308         * i386.c (ix86_expand_builtin): Use sse2_movsd instead of sse2_movlpd.
16309         (ix86_expand_vector_init): New.
16310         * emmintrin.h (__mm_set_pd, __mm_set_ps): Use vector extensions.
16311         * md.texi (vec_set, vec_extract): Document
16312
16313 2003-12-31  Jan Hubicka  <jh@suse.cz>
16314
16315         PR opt/13473
16316         * recog.c (validate_replace_rtx_1):  Take care for RTL sharing inside
16317         ASM input operands
16318
16319         PR opt/12617
16320         * toplev.c (dump_file_index): Reorder ce3 and bbro.
16321         (dump_file): Likewise.
16322         (rest_of_compilation): Likewise.
16323
16324         PR debug/13367
16325         * cgraph.c (cgraph_function_possibly_inlined):  Even with
16326         flag_really_no_inline we inline always_inline functions.
16327         * cgraphunit.c (cgraph_analyze_function): Clear inlinable flag
16328         for non-always_inline functions when there is flag_really_no_inline.
16329         (cgraph_decide_inlining): Limit work done when not inlining.
16330         (cgraph_decide_inlining_incrementally): Likewise.
16331         (cgraph_optimize_function): Check whether something got inlined.
16332         * c-objc-common.c (c_disregard_inline_limits): Do not always inline
16333         extern inline functions when not inlining.
16334
16335         * opts.c (decode_options):  Disable crossjumping at -O1
16336         * invoke.texi (-O1): Document change.
16337
16338 See ChangeLog.10 for earlier changes.