OSDN Git Service

* config/sol2.h (__enable_execute_stack): ANSIfy function
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2004-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
2
3         * config/sol2.h (__enable_execute_stack): ANSIfy function
4         definition.
5
6 2004-05-31  Danny Smith  <dannysmith@users.sourceforge.net>
7
8         * c-incpath.c (add_path): Canonicalize paths to use '/' if
9         HAVE_DOS_BASED_FILESYSTEM.
10
11 2004-05-31  Steven Bosscher  <stevenb@suse.de>
12
13         * tree-ssa-dom.c (record_equivalences_from_incoming_edge):
14         Only look at case labels if the immediate dominator is also
15         the only predecessor.  Don't look for more case labels if the
16         first seen is a case range.
17
18 2004-05-31  Kazu Hirata  <kazu@cs.umass.edu>
19
20         * builtins.c: Add a prototype for fold_builtin_strchr().
21
22 2004-05-31  Paolo Bonzini  <bonzini@gnu.org>
23
24         Revert this patch:
25         2004-05-27  Paolo Bonzini  <bonzini@gnu.org>
26
27         * combine.c (gen_binary): Remove.
28         (known_cond, simplify_shift_const
29         find_split_point, combine_simplify_rtx,
30         simplify_if_then_else, simplify_set,
31         simplify_logical, expand_field_assignment,
32         extract_left_shift, force_to_mode,
33         if_then_else_cond, apply_distributive_law,
34         simplify_and_const_int, simplify_shift_const,
35         gen_lowpart_for_combine, simplify_comparison,
36         reversed_comparison): Replace with
37         simplify_gen_binary, simplify_gen_relational or
38         distribute_and_simplify_rtx.
39         (distribute_and_simplify_rtx): New function.
40
41 2004-05-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
42
43         * pa.c (emit_move_sequence): Fix loading of non 14-bit CONST operands
44         when generating PIC code.
45
46 2004-05-30  Andrew Pinski  <pinskia@physics.uc.edu>
47
48         * c-decl.c (c_expand_body_1): Remove and fold back into ...
49         (c_expand_body): here.
50         (c_expand_decl): Move to ...
51         * c-common.c (c_expand_decl): Here and remove check for nested
52         functions.
53         * c-common.h (c_expand_decl): Add prototype.
54         * c-tree.h (c_expand_decl): Remove.
55
56 2004-05-30  Roger Sayle  <roger@eyesopen.com>
57
58         * fold-const.c (combine_comparisons, optimize_bit_field_compare,
59         range_binop, fold_truthop, fold_binary_op_with_conditional_arg,
60         fold_mathfn_compare, fold_inf_compare, fold,
61         fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
62         Use constant_boolean_node where appropriate.  Don't bother using
63         fold_convert on the second argument to omit_one_operand.
64
65 2004-05-30  Roger Sayle  <roger@eyesopen.com>
66
67         * doc/c-tree.texi (Expressions): Document FLOOR_DIV_EXPR,
68         CEIL_DIV_EXPR, ROUND_DIV_EXPR, FLOOR_MOD_EXPR, CEIL_MOD_EXPR,
69         ROUND_MOD_EXPR, EXACT_DIV_EXPR.  Improve documentation of
70         TRUNC_DIV_EXPR, TRUNC_MOD_EXPR and comparison operations.
71         Add missing (but documented) tree nodes to the index.
72
73 2004-05-30  Steven Bosscher  <stevenb@suse.de>
74
75         PR tree-optimization/14819
76         * builtins.c (fold_builtin_strchr): New.
77         (fold_builtin_1): Handle BUILT_IN_STRCHR and BUILT_IN_STRRCHR
78         with fold_builtin_strchr().
79
80 2004-05-30  Kazu Hirata  <kazu@cs.umass.edu>
81
82         * bb-reorder.c, builtins.c, c-common.c, c-gimplify.c,
83         c-incpath.c, cgraphunit.c, ddg.c, defaults.h, dwarf2out.c,
84         expmed.c, flags.h, gcc.c, gensupport.c, gimplify.c, global.c,
85         passes.c, reg-stack.c, target.h, toplev.c, tree-alias-ander.c,
86         tree-alias-common.c, tree-cfg.c, tree-complex.c, tree-dfa.c,
87         tree-eh.c, tree-mudflap.c, tree-mudflap.h, tree-outof-ssa.c,
88         tree-phinodes.c, tree-pretty-print.c, tree-ssa-alias.c,
89         tree-ssa-ccp.c, tree-ssa-live.c, tree-ssa-live.h,
90         tree-ssa-pre.c, tree.h, value-prof.h, varasm.c: Fix comment
91         formatting.
92
93 2004-05-30  Steven Bosscher  <stevenb@suse.de>
94
95         * gimplify.c (sort_case_labels): New.  Split out from...
96         (gimplify_switch_expr): ...here.  Use it.
97         * tree-eh.c (lower_try_finally_switch): Sort the labels of
98         the SWITCH_EXPR created here before leaving the function.
99         * tree.c (sort_case_labels): Add prototype.
100
101 2004-05-30  Andrew Pinski  <pinskia@physics.uc.edu>
102
103         * fold-const.c (fold) [case TRUTH_NOT_EXPR]: Make sure the type is
104         of BOOLEAN_TYPE.
105
106 2004-05-30  Kazu Hirata  <kazu@cs.umass.edu>
107
108         * c-common.c, calls.c, cfgcleanup.c, cgraph.c, cgraphunit.c,
109         ddg.c, ddg.h, df.c, df.h, except.c, expr.c, flags.h,
110         fold-const.c, gcc.c, gimplify.c, haifa-sched.c,
111         modulo-sched.c, tree-inline.c, tree-into-ssa.c, tree-nested.c,
112         tree-nrv.c, tree-ssa-ccp.c, tree-ssa-dom.c, tree-ssa-live.c,
113         tree-ssa-loop.c, tree-ssa-pre.c, tree-tailcall.c, tree.h: Fix
114         comment typos.  Follow spelling conventions.
115
116 2004-05-29  Geoffrey Keating  <geoffk@apple.com>
117
118         * gengtype-yacc.y: Add NESTED_PTR token.
119         (option): Record `nested_ptr' option.
120         * gengtype-lex.l: Handle `nested_ptr' keyword.
121         * gengtype.c (walk_type): Process `nested_ptr' option.
122         * gengtype.h (struct nested_ptr_data): New.
123         * doc/gty.texi (GTY Options): Document `nested_ptr' option.
124         * stringpool.c (struct string_pool_data): Make 'entries' point to
125         ht_identifier instead of tree.
126         (gt_pch_save_stringpool): Don't adjust pointers.
127         (gt_pch_restore_stringpool): Call ht_load.
128
129 2004-05-29  Jason Merrill  <jason@redhat.com>
130
131         * gimplify.c (gimplify_expr): Don't build a statement list
132         if no gimplification was necessary.
133
134 2004-05-29  Joseph S. Myers  <jsm@polyomino.org.uk>
135
136         * pretty-print.c (pp_base_format_text): Support %< instead of %`
137         and %> as well as %'.
138         * c-format.c: Use %< and %>.
139         (gcc_diag_char_table, gcc_cdiag_char_table,
140         gcc_cxxdiag_char_table): Update.
141
142 2004-05-29  Joseph S. Myers  <jsm@polyomino.org.uk>
143
144         * c-typeck.c (common_type): Correct comment.
145
146 2004-05-29  Peter Barada  <peter@the-baradas.com>
147
148         * config/m68k/m68k.c (CONST_METHOD): Add MVZ, MVS.
149         * config/m68k/m68k.c (const_method): Likewise.
150         * config/m68k/m68k.c (const_int_cost): Likewise.
151         * config/m68k/m68k.c (const_int_cost): Likewise.
152         * config/m68k/m68k.c (output_move_const_into_data_reg): Likewise.
153
154 2004-05-29  Peter Barada  <peter@the-baradas.com>
155
156         * config/m68k/m68k.h (EXTRA_CONSTRAINT): add 'U' for register offset
157         addressing.
158         * config/m68k/m68k.md: Add 'U,U' alternative to ColdFire variants of
159         movsi,movhi,movqi insn patterns.
160
161 2005-05-28  Andrew Pinski  <pinskia@physics.uc.edu>
162
163         * c-semantics.c (emit_local_var): Remove code for DECL_INITIAL.
164
165         PR target/15720
166         * config/darwin.c (machopic_indirect_call_target): Copy
167         the SYMBOL_REF_DECL from the original RTX for the new
168         stub RTX.
169
170 2004-05-28  DJ Delorie  <dj@redhat.com>
171
172         * stor-layout.c (place_field): Revert erroneous commit.
173
174 2004-05-28  Ziemowit Laski  <zlaski@apple.com>
175
176         * config/rs6000/altivec.h (vec_ctf, vec_vcfsx, vec_vcfux, vec_cts,
177         vec_ctu, vec_dss, vec_dst, vec_dstst, vec_dststt, vec_dstt, vec_ld,
178         vec_ldl, vec_lvsl, vec_lvsr, vec_sld, vec_splat, vec_vspltw,
179         vec_vsplth, vec_vspltb, vec_splat_s8, vec_splat_s16, vec_splat_s32,
180         vec_splat_u8, vec_splat_u16, vec_splat_u32, vec_st, vec_stl,
181         vec_ste): Remove type checks for integral parameters and literals
182         from '..._args_eq' macros.
183
184 2004-05-28  Aldy Hernandez  <aldyh@redhat.com>
185
186         * c-common.c (fname_as_string): Fix xcalloc to xmalloc.
187
188 2004-05-28  Aldy Hernandez  <aldyh@redhat.com>
189
190         * testsuite/g++.dg/charset/function.cc: New.
191
192         * testsuite/gcc.dg/charset/function.c: New.
193
194         * c-decl.c (c_make_fname_decl): Free return value from
195         fname_as_string.
196
197         * cp/decl.c (cp_make_fname_decl): Free return value from
198         fname_as_string.
199
200         * c-common.c (fname_as_string): Translate if necessary.
201
202 2004-05-28  Geoffrey Keating  <geoffk@apple.com>
203
204         * stringpool.c: Add comments to PCH saving/restoring routines.
205
206 2004-05-28  Andrew Pinski  <pinskia@physics.uc.edu>
207
208         * c-common.c (c_estimate_num_insns_1): Kill.
209         (c_estimate_num_insns): Kill.
210         * c-common.h (c_estimate_num_insns): Kill.
211
212         * gthr-posix.h: Check for _POSIX_PRIORITY_SCHEDULING
213         when checking for _POSIX_THREAD_PRIORITY_SCHEDULING.
214         Remove comment about not checking for
215         _POSIX_PRIORITY_SCHEDULING.
216         * gthr-posix.c: Likewise.
217
218 2004-05-28  Paolo Bonzini  <bonzini@gnu.org>
219             Roger Sayle  <roger@eyesopen.com>
220
221         PR rtl-optimization/15649
222         Add LTGT_EXPR and improve pretty-printing of unordered
223         comparisons.
224         * c-common.c (c_common_truthvalue_conversion):
225         Handle LTGT_EXPR.
226         * c-typeck.c (build_binary_op): Likewise.
227         * dojump.c (do_jump): Likewise.
228         * expr.c (expand_expr_real_1, do_store_flag): Likewise.
229         * predict.c (tree_predict_by_opcode): Likewise.
230         * real.c (real_compare): Likewise.
231         * tree-cfg.c (verify_expr): Likewise.
232         * tree-inline.c (estimate_num_insns_1): Likewise.
233         * tree-pretty-print.c (dump_generic_node): Likewise.
234         Handle ORDERED_EXPR, UNORDERED_EXPR.
235         (op_symbol): Print unordered comparisons differently
236         than ordered ones.
237         * tree.def (LTGT_EXPR): New '<' tree code.
238         * doc/c-tree.texi (Expressions): Document floating-point
239         comparison nodes.
240
241         Fold comparisons between floating point values.
242         * fold-const.c (enum comparison_code): New, from
243         #define'd constants.  Define compcodes for unordered
244         comparisons and for invalid transformations.
245         (invert_tree_comparison): Add "honor_nans" parameter.
246         (fold_truthop): Revamp to work on floating-point types too.
247         (comparison_to_compcode): Support unordered comparisons.
248         Use new enum comparison_code.
249         (compcode_to_comparison): Likewise.
250         (combine_compcodes): New function.
251         (invert_truthvalue): Let invert_tree_comparison decide
252         whether it is valid to fold the comparison.  Fold ORDERED
253         and UNORDERED even if flag_unsafe_math_optimizations is off,
254         and the remaining even if flag_unsafe_math_optimizations
255         is off but we are under -fno-trapping-math.
256         (fold_relational_const): Integer modes do not honor NaNs.
257         
258 2004-05-28  Paul Brook  <paul@codesourcery.com>
259
260         * config/arm/arm.c (arm_output_epilogue): Remove redundant code.
261
262 2004-05-28  Paul Brook  <paul@codesourcery.com>
263
264         * config/arm/arm.c (thumb_force_lr_save): New function.
265         (arm_get_frame_offsets, thumb_unexpanded_epilogue,
266         thumb_output_function_prologue): Use it.
267         (thumb_expand_prologue): Set lr_save_eliminated.
268
269 2004-05-28  Richard Sandiford  <rsandifo@redhat.com>
270
271         * config/mips/mips.md (extendsidi2): Tie the source and destination
272         of the register alternative.  Split it into nothing.
273
274 2004-05-28  Richard Sandiford  <rsandifo@redhat.com>
275
276         * rtl.h (skip_consecutive_labels): Declare.
277         * emit-rtl.c (skip_consecutive_labels): New function.
278         * reorg.c (relax_delay_slots, dbr_schedule): Use it.
279         * jump.c (follow_jumps): Say what null return values mean.
280
281 2004-05-28  Kaz Kojima  <kkojima@gcc.gnu.org>
282
283         PR target/13250
284         * config/sh/sh.md (rotlsi3): Use emit_move_insn.
285
286 2004-05-27  Kaz Kojima  <kkojima@gcc.gnu.org>
287
288         * config/sh/t-linux (SHLIB_MAPFILES): Use sh specific
289         libgcc-std.ver.
290         * config/sh/libgcc-std.ver: New file.
291
292 2004-05-27  Bryce McKinlay  <mckinlay@redhat.com>
293
294         * except.c: Revert change of 2004-05-26.
295         * config/i386/i386.md: Revert change of 2004-05-27.
296
297 2004-05-27  Bryce McKinlay  <mckinlay@redhat.com>
298
299         * configure.ac: Remove --enable-tree-browser option.
300         Define TREEBROWSER when ac_tree_checking is defined.
301         * configure: Rebuilt.
302
303 2004-05-27  Olivier Hainque  <hainque@act-europe.fr>
304
305         * expr.c (store_constructor): Restore sanity check on
306         the size of the type before clearing.
307
308 2004-05-27  Jan Hubicka  <jh@suse.cz>
309
310         * cfgbuild.c (control_flow_insn_p):  Notice noreturn call
311
312 2004-05-27  Paolo Bonzini  <bonzini@gnu.org>
313
314         * combine.c (gen_binary): Remove.
315         (known_cond, simplify_shift_const
316         find_split_point, combine_simplify_rtx,
317         simplify_if_then_else, simplify_set,
318         simplify_logical, expand_field_assignment,
319         extract_left_shift, force_to_mode,
320         if_then_else_cond, apply_distributive_law,
321         simplify_and_const_int, simplify_shift_const,
322         gen_lowpart_for_combine, simplify_comparison,
323         reversed_comparison): Replace with
324         simplify_gen_binary, simplify_gen_relational or
325         distribute_and_simplify_rtx.
326         (distribute_and_simplify_rtx): New function.
327         * simplify-rtx.c (simplify_binary_operation):
328         Use nonzero_bits to simplify ANDs where we are
329         turning off bits already known to be off in OP0.
330
331 2004-05-27  Alan Modra  <amodra@bigpond.net.au>
332
333         PR target/14478
334         * config/rs6000/rs6000.c (reg_or_neg_short_operand): Don't allow zero.
335
336 2004-05-27  Josef Zlomek  <zlomekj@suse.cz>
337
338         PR middle-end/14084
339         * emit-rtl.c (gen_rtx_REG_offset): Adjust the offset according
340         to size of decl.
341
342 2004-05-26  Aldy Hernandez  <aldyh@redhat.com>
343
344         PR/14924
345         * config/rs6000/rs6000.c (spe_expand_stv_builtin): New.
346
347 2004-05-26  Roger Sayle  <roger@eyesopen.com>
348
349         * tree.h: Fix comment typo.
350
351 2004-05-27  Steven Bosscher  <stevenb@suse.de>
352
353         * gimplify.c (compare_case_labels): New function.
354         (gimplify_switch_expr): Sort case labels, and make sure the
355         last label in the label vector is the default case.
356         * tree-cfg.c (group_case_labels): New function.
357         (build_tree_cfg): Cleanup redundant labels and group case labels
358         before creating edges.
359         (cleanup_dead_labels): Handle GOTO_EXPRs.
360         (find_case_label_for_value): Use a binary search to find the
361         case label for the given value.
362         * tree-gimple.c: Mention that labels are sorted, and that the
363         last label must be the default.
364
365 2004-05-27  Jan Hubicka  <jh@suse.cz>
366
367         * cfgcleanup.c (try_optimize_cfg): Do not merge across jumptables.
368
369 2004-05-27  Jan Hubicka  <jh@suse.cz>
370
371         * i386.md (UNSPECV_EH_RETURN): Kill.
372         (eh_return): Use jump_insn.
373         (eh_return_si, eh_return_di): Change pattern to jump instruction.
374
375 2004-05-26  Jan Hubicka  <jh@suse.cz>
376
377         * cfgcleanup.c (try_forward_edges):  Do not check loop structure when
378         not loop optimizing.
379
380 2004-05-26  Jan Hubicka  <jh@suse.cz>
381
382         * except.c (can_throw_internal):  Notice RESX instructions.
383
384 2004-05-26  Eric Botcazou  <ebotcazou@act-europe.fr>
385
386         * varasm.c (output_constant) <INTEGER_TYPE>: Pass the minimum
387         of the two sizes to assemble_integer.
388
389 2004-05-25  Paul Brook  <paul@codesourcery.com>
390
391         * config/arm/arm.c (thumb_exit, thumb_unexpanded_epilogue): Remove
392         pointless #ifdef.
393
394 2004-04-25  Paolo Bonzini  <bonzini@gnu.org>
395
396         * Makefile.in (top_builddir): Define to .
397
398 2004-05-25  Alexandre Oliva  <aoliva@redhat.com>
399
400         * configure.ac (gcc_cv_ld): Prefer in-tree ld over whatever the
401         top-level detects, except when in-tree ld is being cross-built.
402         (gcc_cv_as): Likewise for as.  Use AS_FOR_TARGET otherwise, and
403         then AS only if target is host.
404         * configure: Rebuilt.
405
406 2004-05-25  Vladimir Makarov  <vmakarov@redhat.com>
407
408         * global.c (global_alloc): Call make_accurate_live_analysis.
409         (record_one_conflict): Remove dead code.
410         (mark_reg_clobber): Remove ATTRIBUTE_UNUSED for parameter data.
411         (bb_info): New structure.
412         (BB_INFO, BB_INFO_BY_INDEX): New macros.
413         (allocate_bb_info, free_bb_info, mark_reg_change,
414         calculate_local_reg_bb_info, set_up_bb_rts_numbers, rpost_cmp,
415         modify_bb_reg_pav, calculate_reg_pav,
416         make_accurate_live_analysis): New functions.
417         
418 2004-05-25  Devang Patel  <dpatel@apple.com>
419
420         * alias.c (init_alias_analysis): Use ggc_calloc instead of
421         xrealloc.
422         (end_alias_analysis): Use ggc_free instead fo free.
423         
424 2004-05-25  Andrew Pinski  <pinskia@physics.uc.edu>
425
426         PR target/15546
427         * config/ia64/ia64.h (ASM_OUTPUT_FDESC): Mark the DECL
428         as needed to be outputted.
429
430 2004-05-25  Jan Hubicka  <jh@suse.cz>
431
432         * builtins.def (__builtin_expect):  Mark the function as const&nothrow.
433
434 2004-05-25  Ayal Zaks  <zaks@il.ibm.com>
435         Mostafa Hagog  <mustafa@il.ibm.com>
436
437         * Makefile.in (modulo-sched.o, ddg.o): New.
438         * ddg.h, ddg.c, modulo-sched.c: New files.
439         * cfglayout.c (duplicate_insn_chain): Remove "static" and push
440         internals to "dupicate_insn".
441         (duplicate_insn): New function.
442         * cfglayout.h (duplicate_insn_chain, duplicate_insn): New
443         declarations.
444         * common.opt (fmodulo-sched): New flag.
445         * df.c (df_bb_regno_last_use_find, df_bb_regno_first_def_find):
446         Remove static and forward declaration.
447         (df_find_def, df_reg_used, df_bb_regno_last_def_find): New
448         functions.
449         * df.h (df_bb_regno_last_use_find, df_bb_regno_first_def_find,
450         df_bb_regno_last_def_find, df_find_def, df_reg_used): New
451         declarations.
452         * flags.h (flag_modulo_sched): New flag.
453         * opts.c (common_handle_option): Handle modulo-sched flag.
454         * params.def (max-sms-loop-number, sms-max-ii-factor,
455         sms-dfa-history, sms-loop-average-count-threshold): New
456         parameters.
457         * params.h (MAX_SMS_LOOP_NUMBER, SMS_MAX_II_FACTOR,
458         SMS_DFA_HISTORY, SMS_LOOP_AVERAGE_COUNT_THRESHOLD): New
459         parameters.
460         * passes.c ("sms", "sms-vcg"): New dumps.
461         (rest_of_handle_sched): Call sms_schedule.
462         * rtl.h (sms_schedule): New declaration.
463         * timevar.def (TV_SMS): New.
464         * toplev.c (flag_modulo_sched): Initialize.
465         (f_options): Handle -fmodulo-sched option.
466         * docs/invoke.texi: Document -fmodulo-sched & -dm options.
467         * docs/passes.texi: Document new SMS pass.
468
469 2004-05-25  Paolo Bonzini  <bonzini@gnu.org>
470
471         * Makefile.in (OBJS): Add rtlhooks.o.
472         (rtlanal.o): Depend on function.h.
473         (cse.o): Depend on rtlhooks-def.h.
474         (combine.o): Depend on rtlhooks-def.h.
475         (rtlhooks.o): New rule.
476         * combine.c: Include rtlhooks-def.h.
477         (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
478         num_sign_bit_copies, cached_num_sign_bit_copies,
479         num_sign_bit_copies1): Move most of the code to rtlanal.c.
480         (reg_nonzero_bits_for_combine,
481         reg_num_sign_bit_copies_for_combine): New functions holding
482         the remnants of the above.
483         (combine_rtl_hooks): New.
484         (combine_instructions): Set rtl_hooks instead of gen_lowpart.
485         * cse.c: Include rtlhooks-def.h.
486         (cse_rtl_hooks): New.
487         (cse_main): Set rtl_hooks instead of gen_lowpart.
488         * emit-rtl.c (gen_lowpart): Remove.
489         (gen_lowpart_general): Move to rtlhooks.c.
490         * rtl.h (nonzero_bits, num_sign_bit_copies,
491         struct rtl_hooks, rtl_hooks, general_rtl_hooks): New.
492         (gen_lowpart_general): Remove.
493         (gen_lowpart): Temporarily redefine as a macro.
494         * rtlanal.c: Include function.h.
495         (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
496         num_sign_bit_copies, cached_num_sign_bit_copies,
497         num_sign_bit_copies1): New, from combine.c.
498         * rtlhooks.c: New file. 
499
500 2004-05-25  Svein E. Seldal  <Svein.Seldal@solidas.com>
501
502         * config/avr/avr.h (LONG_LONG_TYPE_SIZE): Changed long long type
503         to support 32-bit -mint8 mode.
504
505         * doc/invoke.texi (-mint8): Added documentation for the -mint8
506         option in the AVR architecture. 
507
508 2004-05-24  Mike Stump  <mrs@apple.com>
509
510         * doc/install.texi: Document that dejagnu 1.4.4 is required.
511
512 2004-05-24  Joseph S. Myers  <jsm@polyomino.org.uk>
513
514         * intl.h (open_quote, close_quote): New.
515         * intl.c (open_quote, close_quote): New.
516         (gcc_init_libintl): Set them.
517         * pretty-print.c: Include "intl.h".
518         (pp_base_format_text): Support 'q' format flag and %` and %'
519         formats.  Use ' instead of ` in comments.
520         * c-format.c (gcc_diag_flag_specs, gcc_cxxdiag_flag_specs,
521         gcc_diag_char_table, gcc_cdiag_char_table, gcc_cxxdiag_char_table,
522         foramt_types_orig): Describe these new formats.
523         (decode_format_attr, check_function_format,
524         check_format_info_main): Use these new formats.
525         (status_warning): Use ATTRIBUTE_GCC_DIAG.
526         * toplev.c (ATTRIBUTE_GCC_DIAG): Increase required GCC version to
527         check these formats to 3.5.
528
529 2004-05-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
530
531         * Makefile.in (CPPLIBS): Renamed to CPPLIB.
532         (BACKEND): Reflect this.
533         (LIBDEPS): Move CPPLIB before LIBIBERTY.
534         (LIBS): Likewise.
535
536 2004-05-24  Ulrich Weigand  <uweigand@de.ibm.com>
537
538         PR tree-optimization/14197
539         * builtins.c: Include "tree-gimple.h"
540         (readonly_data_expr): Use get_base_address.  Make sure to call 
541         decl_readonly_section only on trees it can handle.
542         * tree-gimple.c (get_base_address): Accept STRING_CST and
543         CONSTRUCTOR expressions.
544         * Makefile.in: Update dependencies.
545
546 2004-05-23  Paolo Bonzini  <bonzini@gnu.org>
547
548         Move libcpp to the toplevel.
549         * Makefile.in: Remove references to libcpp files,
550         use CPPLIBS instead of libcpp.a.  Define SYMTAB_H
551         and change hashtable.h to that.
552         * aclocal.m4 (gcc_AC_HEADER_STDBOOL,
553         gcc_AC_HEADER_STRING, gcc_AC_C__BOOL): Remove.
554         * configure.ac (gcc_AC_C__BOOL, HAVE_UCHAR): Remove tests.
555         * configure: Regenerate.
556         * config.in: Regenerate.
557         * c-ppoutput.c: Include ../libcpp/internal.h instead of cpphash.h.
558         * cppcharset.c: Removed.
559         * cpperror.c: Removed.
560         * cppexp.c: Removed.
561         * cppfiles.c: Removed.
562         * cpphash.c: Removed.
563         * cpphash.h: Removed.
564         * cppinit.c: Removed.
565         * cpplex.c: Removed.
566         * cpplib.c: Removed.
567         * cpplib.h: Removed.
568         * cppmacro.c: Removed.
569         * cpppch.c: Removed.
570         * cpptrad.c: Removed.
571         * cppucnid.h: Removed.
572         * cppucnid.pl: Removed.
573         * cppucnid.tab: Removed.
574         * hashtable.c: Removed.
575         * hashtable.h: Removed.
576         * line-map.c: Removed.
577         * line-map.h: Removed.
578         * mkdeps.c: Removed.
579         * mkdeps.h: Removed.
580         * stringpool.h: Include symtab.h instead of hashtable.h.
581         * tree.h: Include symtab.h instead of hashtable.h.
582         * system.h (O_NONBLOCK, O_NOCTTY): Do not define.
583
584 2004-05-23 Paolo Bonzini <bonzini@gnu.org>
585
586         * gcc.c (struct prefix_list): Add forward declaration.
587         (do_spec_path): New function, extracted from...
588         (do_spec_1) <'D'>: ... here.  Drop support for
589         SPACE_AFTER_L_OPTION.
590         (do_spec_1) <'I'>: Use do_spec_path.
591         (process_command): Do not store the 'include' suffix
592         in include_prefixes.
593         * system.h: Poison SPACE_AFTER_L_OPTION.
594
595 2002-05-23  Roger Sayle  <roger@eyesopen.com>
596
597         * fold-const.c (non_lvalue): Explicitly list the tree codes that
598         need to be wrapped by NON_LVALUE_EXPR, instead of those that don't.
599
600 2004-05-23  Joseph S. Myers  <jsm@polyomino.org.uk>
601
602         * doc/gcc.texi, doc/gccint.texi, doc/include/gcc-common.texi:
603         Update based on printed manual.  Enable setting of offsets for
604         FSFPRINT and move it to gcc-common.texi.
605         * doc/gcc.texi: Update FSF printing details.
606         * doc/gccint.texi: Remove FSF printing details.
607
608 2004-05-23  Andrew Pinski  <pinskia@physics.uc.edu>
609
610         * config/rs6000/t-rs6000: Remove the disabling -Werror.
611
612 2004-05-22  Roger Sayle  <roger@eyesopen.com>
613
614         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
615         expand_builtin_strrchr, expand_builtin_strpbrk,
616         expand_builtin_mempcpy, expand_builtin_memcmp,
617         expand_builtin_strcmp, expand_builtin_strncmp,
618         expand_builtin_strcat, std_expand_builtin_va_start,
619         std_expand_builtin_va_arg, expand_builtin_va_copy,
620         expand_builtin_signbit, fold_builtin_cabs,
621         fold_builtin_logarithm, fold_builtin_mempcpy,
622         fold_builtin_signbit, fold_builtin_isascii,
623         fold_builtin_toascii, fold_builtin_isdigit,
624         fold_builtin_1, build_function_call_expr,
625         simplify_builtin_strchr, simplify_builtin_strrchr,
626         simplify_builtin_strpbrk, simplify_builtin_strncpy,
627         simplify_builtin_memcmp, simplify_builtin_strcmp,
628         simplify_builtin_strncmp, simplify_builtin_strncat,
629         simplify_builtin_strspn, simplify_builtin_strcspn,
630         simplify_builtin_fputs, simplify_builtin_sprintf): Replace calls
631         to build with calls to build2, build3 or omit_one_operand.
632
633 2004-05-22  Richard Sandiford  <rsandifo@redhat.com>
634
635         * config/mips/mips.c (mips_file_start): Emit a .gcc_compiled_longXX
636         section when generating EABI code.
637
638 2004-05-22  Andrew Pinski  <pinskia@physics.uc.edu>
639
640         PR 15546
641         * config/i386/i386.c (output_pic_addr_const <case SYMBOL_REF>):
642         Call mark_decl_referenced on the SYMBOL_REF_DECL.
643
644 2004-05-22  Andrew Pinski  <pinskia@physics.uc.edu>
645
646         * c-common.c (c_common_truthvalue_conversion): Handle
647         UNEQ_EXPR, UNLE_EXPR, UNGE_EXPR, UNLT_EXPR, UNGT_EXPR,
648         ORDERED_EXPR, and UNORDERED_EXPR as comparison operators,
649         i.e. set the type to truthvalue_type_node and return.
650
651 2004-05-22  Zack Weinberg  <zack@codesourcery.com>
652
653        * tree.h (struct tree_decl): Add possibly_inlined bit.
654         (DECL_POSSIBLY_INLINED): New accessor macro.
655         * cgraph.h: Remove declaration of cgraph_inline_hash.
656         * cgraph.c: Remove definition of cgraph_inline_hash.
657         (hash_node): Revert to hashing DECL_UID.
658         (eq_node): Take two pointers to cgraph_node structures.
659         Compare DECL_UIDs.
660         (cgraph_remove_node): Pass the node directly to htab_find_slot.
661         (cgraph_varpool_hash_node): Rename hash_varpool_node;
662         hash on DECL_UID.
663         (eq_cgraph_varpool_node): Rename eq_varpool_node; take two
664         pointers to cgraph_varpool_node structures; compare DECL_UIDs.
665         (cgraph_node): Allocate a temporary node on the stack, fill in
666         its DECL field, and pass that to htab_find_slot.
667         (cgraph_varpool_node): Likewise.
668         (cgraph_function_possibly_inlined_p): If global info is ready,
669         return the DECL_POSSIBLY_INLINED bit.
670         * cgraphunit.c (cgraph_mark_inline_edge): Set DECL_POSSIBLY_INLINED
671         instead of mucking with cgraph_inline_hash.
672
673 2004-05-22  Joseph S. Myers  <jsm@polyomino.org.uk>
674
675         * doc/contrib.texi: Add g77 contributors.
676
677 2004-05-22  Richard Sandiford  <rsandifo@redhat.com>
678
679         * calls.c (initialize_argument_information): Forbid sibcalls if a
680         callee-copied argument is stored in the current function's frame.
681
682 2004-05-22  Eric Christopher  <echristo@redhat.com>
683
684         * fix-header.c (read_scan_file): Update for add_path change.
685
686 2004-05-22  Ben Elliston  <bje@au.ibm.com>
687
688         * c.opt (Wmissing-include-dirs): New.
689         * c-opts.c (c_common_handle_option): Pass true for user_supplied_p
690         to add_path () for -I, but false for OPT_idirafter, OPT_iquote and
691         OPT_isystem. Handle case OPT_Wmissing_include_dirs.
692         * c-incpath.h (add_path): Add fourth (bool) argument.
693         * c-incpath.c (add_env_var_paths): Pass false to add_path ().
694         (add_standard_paths): Likewise.
695         (remove_duplicates) [REASON_NOENT]: Warn if -Wmissing-include-dirs
696         is used and the directory was user-supplied via -I.
697         (add_path): Set p->user_supplied_p.  Remove duplicated code by
698         using add_cpp_dir_path ().
699         * cpplib.h (struct cpp_options): Add warn_missing_include_dirs.
700         (struct cpp_dir): Add user_supplied_p.
701         * doc/invoke.texi (Warning Options): Document new option.
702
703 2004-05-21  Ulrich Weigand  <uweigand@de.ibm.com>
704
705         * fold-const.c (fold_read_from_constant_string): Convert result to
706         requested type.
707
708 2004-05-21  Richard Henderson  <rth@redhat.com>
709
710         * gimplify.c (mostly_copy_tree_r): Don't attempt to copy decls.
711         (copy_if_shared_r): Don't copy decls, types, constants, BINDs.
712         Don't mark VA_ARG_EXPRs volatile here.
713         (gimplify_modify_expr): Unshare TYPE_SIZE_UNIT.
714
715 2004-05-21  Richard Henderson  <rth@redhat.com>
716
717         * Makefile.in (tree-dump.o): Depend on tree-iterator.h.
718         * tree-dump.c (dequeue_and_dump): Dump STATEMENT_LISTs.
719
720 2004-05-21  Roger Sayle  <roger@eyesopen.com>
721
722         * fold-const.c (fold, fold_relational_hi_lo,
723         nondestructive_fold_binary_to_constant,
724         fold_read_from_constant_string): Use fold_convert instead of convert.
725         * builtins.c (simplify_builtin, simplify_builtin_strstr,
726         simplify_builtin_strchr, simplify_builtin_strrchr,
727         simplify_builtin_strpbrk): Use fold_convert instead of convert.
728
729 2004-05-21  Diego Novillo  <dnovillo@redhat.com>
730
731         * tree-flow-inline.h (num_immediate_uses): Don't abort if DF
732         is NULL.
733
734 2004-05-21  Jakub Jelinek  <jakub@redhat.com>
735
736         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): If SPARC_BI_ARCH,
737         override sparc.h definition.
738
739 2004-05-20  Roger Sayle  <roger@eyesopen.com>
740
741         * tree.c (array_type_nelts, save_expr, substitute_in_expr,
742         get_unwidened, get_narrower): Replace build with build2.
743         * fold-const.c (negate_expr, associate_trees, size_binop,
744         fold_convert, eval_subst, omit_one_operand, invert_truthvalue,
745         pedantic_omit_one_operand, distribute_bit_expr,
746         make_bit_field_ref, optimize_bit_field_compare,
747         decode_field_reference, range_binop, make_range,
748         build_range_check, fold_range_test, fold_truthop,
749         optimize_minmax_comparison, extract_muldiv_1,
750         fold_binary_op_with_conditional_arg, fold_mathfn_compare,
751         fold_inf_compare, fold_single_bit_test, fold,
752         fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
753         Likewise replace build with either build2 or build3.
754
755 2004-05-20  Ian Lance Taylor  <ian@wasabisystems.com>
756
757         * system.h: Poison NO_RECURSIVE_FUNCTION_CSE.
758         * calls.c (prepare_call_address): Don't test
759         NO_RECURSIVE_FUNCTION_CSE.
760         * config/arc/arc.h (NO_RECURSIVE_FUNCTION_CSE): Don't define.
761         * config/arm/arm.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
762         * config/avr/avr.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
763         * config/frv/frv.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
764         * config/i386/i386.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
765         * config/ip2k/ip2k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
766         * config/iq2000/iq2000.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
767         * config/m32r/m32r.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
768         * config/m68k/m68k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
769         * config/mcore/mcore.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
770         * config/mips/mips.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
771         * config/stormy16/stormy16.h (NO_RECURSIVE_FUNCTION_CSE):
772         Likewise.
773         * config/xtensa/xtensa.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
774         * config/sh/sh.h: Remove NO_RECURSIVE_FUNCTION_CSE comment.
775         * doc/tm.texi (Costs): Remove documentation for
776         NO_RECURSIVE_FUNCTION_CSE.
777
778 2004-05-20  Paul Brook  <paul@codesourcery.com>
779
780         * unwind-dw2-fde.c (get_cie_encoding): Handle dwarf3 CIE format.
781         * unwind-dw2.c (extract_cie_info): Ditto.
782         (_Unwind_FrameState): Change retaddr_column to word type.
783
784 2004-05-20  Roger Sayle  <roger@eyesopen.com>
785
786         PR middle-end/3074
787         * fold-const.c (strip_compound_expr): Delete function.
788         (count_cond): Delete function.
789         (fold_binary_op_with_conditional_arg): Only perform transformations
790         "a + (b?c:d) -> b ? a+c : a+d" and "(b?c:d) + a -> b ? c+a : d+a"
791         when a is constant.  This greatly simplifies this routine.
792
793         * tree.c (saved_expr_p): Delete function.
794         * tree.h (saved_expr_p): Delete function prototype.
795
796 2004-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
797
798         * common.opt (ftree-loop-optimize): Remove.
799
800 2004-05-20  Daniel Jacobowitz  <dan@debian.org>
801
802         * Makefile.in (AR_FOR_TARGET, RANLIB_FOR_TARGET)
803         (NM_FOR_TARGET): Use := and $(shell).
804         (mainversion): Remove unused variable.
805
806 2004-05-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
807
808         * reorg.c (delete_from_delay_slot): If we have a barrier after the
809         sequence containing the insn to be deleted, always reemit it.
810
811 2004-05-20  Richard Henderson  <rth@redhat.com>
812
813         PR 15454
814         * tree-nested.c (get_chain_decl): Create a PARM_DECL by hand.
815         * function.c (expand_function_start): Expand static_chain_decl by hand.
816         * gimplify.c (create_tmp_var_name): Export.
817         * tree-gimple.h (create_tmp_var_name): Declare.
818
819 2004-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
820
821         * rs6000.c (print_operand) <case 'z'>: Call
822         mark_decl_referenced before assemble_name.
823
824 2004-05-20  Zack Weinberg  <zack@codesourcery.com>
825
826         * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
827         (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
828         (cgraph_varpool_node): Hash on the pointer to the decl, not
829         the DECL_UID.  Fixes 64-bit bootstrap failure.
830
831 2004-05-20  Richard Earnshaw <rearnsha@arm.com>
832
833         * arm.md (ite_ne_zeroextractsi, ite_ne_zeroextractsi_shifted): Ensure
834         we don't earlyclobber operands used in the second insn.
835
836 2004-05-20  Steven Bosscher  <stevenb@suse.de>
837
838         * tree-mudflap.c: Formatting fixes.
839
840 2004-05-20  J"orn Rennecke <joern.rennecke@superh.com>
841
842         * Makefile.in (GTFILES): Add $(srcdir)/reload.h.
843         * gengtype.c (open_base_files): Include reload.h in ifiles.
844         * reload.h (reg_equiv_memory_loc_varray): Declare.
845         * reload1.c (reg_equiv_memory_loc_varray): New variable.
846         (init_reload): Initialize it.
847         (reload): Instead of freeing reg_equiv_memory_loc, 'grow'
848         reg_equiv_memory_loc_varray to size 0.
849         * ra.c (reg_alloc): Allocate reg_equiv_memory_loc by
850         growing reg_equiv_memory_loc_varray to the desired size.
851         * passes.c (rest_of_handle_old_regalloc): Likewise.
852         * reload.c: Amend comment on calling init_reload.
853
854 2004-05-20  Nick Clifton  <nickc@redhat.com>
855
856         * config/c4x/c4x.h (INITIALIZE_TRAMPOLINE): Replace 'tramp'
857         with 'TRAMP' in the body of the macro definition.
858
859 2004-05-19  H.J. Lu  <hongjiu.lu@intel.com>
860
861         PR target/15383
862         * config/ia64/ia64.c (ia64_expand_compare): Don't check
863         TARGET_HPUX for TFmode compare. Abort if op0 is in TFmode and
864         cmptf_libfunc isn't set.
865         (ia64_init_libfuncs): Rename TFmode libfuncs using the HPUX
866         conventions.
867         (ia64_sysv4_init_libfuncs): New.
868
869         * config/ia64/sysv4.h (TARGET_INIT_LIBFUNCS): New. Defined as
870         ia64_sysv4_init_libfuncs.
871
872 2004-05-20  Falk Hueffner  <falk@debian.org>
873
874         PR other/15526
875         * libgcc2.c (__mulvsi3): Fix overflow test.
876
877 2004-05-19  Andrew Pinski  <pinskia@physics.uc.edu>
878
879         PR c/14171
880         * reg-stack.c (nan): Rename to ...
881         (not_a_num): Here.
882         (reg_to_stack): Rename nan to not_a_num.
883         (subst_stack_regs_pat): Likewise.
884         (convert_regs_entry): Likewise.
885         (convert_regs_1): Likewise.
886
887         * tree-cfg.c (find_case_label_for_value): Replace call to
888         simple_cst_equal with tree_int_cst_equal.
889
890 2004-05-19  Jeff Law <law@redhat.com>
891
892         * tree-into-ssa.c (prepare_operand_for_rename): New argument is_use.
893         If the operand is for a use, then strip away the SSA_NAME, do not
894         strip away the SSA_NAME for a set.  Never call release_ssa_name.
895         (mark_def_sites): Appropriately pass additional argument to
896         prepare_operand_for_rename.  If a VDEF_RESULT is not an SSA_NAME,
897         then set the VDEF_RESULT to the VDEF_OP.
898         (set_def_block): Strip away any SSA_NAME to get to the real
899         underlying variable.
900
901         * tree-ssa-phiopt.c (value_replacement): Handle the case where
902         the desired edge out of COND_BLOCK reaches OTHER_BLOCK rather than
903         BB directly.
904
905 2004-05-19  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
906
907         PR c++/15463
908         * loop-iv.c (iv_number_of_iterations):  Use trunc_int_for_mode on
909         result of inverse.
910
911         PR rtl-optimization/15274
912         * loop-iv.c (determine_max_iter, shorten_into_mode,
913         iv_number_of_iterations): Handle constants correctly.
914         * rtl.h (get_mode_bounds): Declaration changed.
915         * stor-layout.c (get_mode_bounds): Return a constant suitable for
916         the target mode.
917
918         PR rtl-optimization/14692
919         * loop-unswitch.c (may_unswitch_on): Try folding the result.
920         (unswitch_single_loop): Work correctly when may_unswitch_on
921         returns a folded constant.
922
923         * loop-iv.c (implies_p): Handle A < B ==> A + 1 <= B.
924         * simplify-rtx.c (simplify_const_relational_operation): Optimize
925         comparisons with mode bounds.
926
927         * function.c (struct temp_slot): Add new field prev.
928         (free_after_compilation, init_temp_slots): Free new fields.
929         (cut_slot_from_list, insert_slot_to_list,
930         temp_slots_at_level, max_slot_level, move_slot_to_level,
931         make_slot_available): New functions.
932         (assign_stack_temp_for_type, combine_temp_slots,
933         find_temp_slot_from_address, preserve_temp_slots,
934         preserve_rtl_expr_result, free_temp_slots,
935         free_temps_for_rtl_expr, pop_temp_slots): Work with
936         the new structure of lists.
937         (mark_all_temps_used): Removed.
938         * function.h (struct function): Field x_temp_slots
939         replaced by x_used_temp_slots and x_avail_temp_slots.
940         (temp_slots): Replaced by ...
941         (used_temp_slots, avail_temp_slots): New.
942         * tree.h (mark_all_temps_used): Declaration removed.
943
944         * loop-iv.c (mark_single_set, get_biv_step_1, iv_analyze,
945         simplify_using_assignment): Take the expression out of
946         the expr_list wrapper.
947
948         * loop-iv.c (iv_number_of_iterations): Improve clasification of
949         infinite loops.
950
951 2004-05-19  Roger Sayle  <roger@eyesopen.com>
952
953         * doc/tm.texi (TARGET_RTX_COSTS): Document that instruction
954         costs should be based on code size when optimizing for size.
955
956 2004-05-19  Paolo Bonzini  <bonzini@gnu.org>
957
958         * fold-const.c: Remove non-printable character 160.
959
960 2004-05-19  Nick Clifton  <nickc@redhat.com>
961
962         * doc/invoke.texi (ARM Options): Fix typo.
963         Remove descrption of -mshort-load-bytes and
964         -mno-short-load-bytes.
965
966         * config/ip2k/ip2k.c (ip2k_composite_xexp_not_uses_reg_p): Add
967         missing parenthesis.
968         * config/ip2k/ip2k.c (ip2k_unary_operator): Likewise.
969         * config/ip2k/ip2k.c (ip2k_binary_operator): Likewise.
970
971 2004-05-19  Steven Bosscher  <stevenb@suse.de>
972
973         * expr.c (store_constructor): Build loop start and end by hand
974         instead of via loop functions from stmt.c.
975         (expand_expr_real_1): Abort if we see an EXIT_EXPR or a LOOP_EXPR.
976         Remove the code to expand them.
977
978         * stmt.c (loop_stack): Remove this and everything related.
979         (struct nesting, enum nesting_desc): Update.
980         (expand_fixup): Likewise.
981         (expand_loop_start, expand_start_loop_continue_elsewhere,
982         expand_start_null_loop, expand_loop_continue_here, expand_end_loop,
983         expand_end_null_loop, expand_continue_loop, expand_exit_loop,
984         expand_exit_loop_if_false, expand_exit_loop_top_cond,
985         expand_exit_something): Remove.
986         * tree.h: Remove prototypes.
987
988 2004-05-18  Mike Stump  <mrs@apple.com>
989             Devang Patel  <dpatel@apple.com>
990
991         * doc/tm.texi (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument to indicate
992         if this label is for eh.
993         * config/darwin-protos.h (darwin_emit_unwind_label): Likewise.
994         * config/darwin.c (darwin_emit_unwind_label): Likewise.
995         * dwarf2out.c (output_call_frame_info): Likewise.
996         * output.h (default_emit_unwind_label): Likewise.
997         * target.h (unwind_label): Likewise.
998         * varasm.c (default_emit_unwind_label): Likewise.
999
1000         * config/darwin.h (DWARF2_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE,
1001         DEBUG_FRAME_SECTION, DEBUG_INFO_SECTION, DEBUG_ABBREV_SECTION,
1002         DEBUG_ARANGES_SECTION, DEBUG_MACINFO_SECTION, DEBUG_LINE_SECTION,
1003         DEBUG_LOC_SECTION, DEBUG_PUBNAMES_SECTION, DEBUG_STR_SECTION,
1004         DEBUG_RANGES_SECTION): Define.
1005
1006 2004-05-18  Zack Weinberg  <zack@codesourcery.com>
1007
1008         * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
1009         (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
1010         (cgraph_varpool_node):
1011         Use DECL_UID for the key, not DECL_ASSEMBLER_NAME.
1012         (cgraph_function_possibly_inlined_p): Use the decl itself for
1013         the key, not DECL_ASSEMBLER_NAME.
1014         (change_decl_assembler_name): No need to muck with the hash tables.
1015         (cgraph_node_for_identifier, cgraph_varpool_node_for_identifier):
1016         Delete.
1017         * cgraphunit.c (cgraph_mark_inline_edge): Use the decl itself
1018         for the key, not DECL_ASSEMBLER_NAME.
1019         * cgraph.h: Remove prototypes of deleted functions.
1020         * varasm.c (mark_referenced): Just set TREE_SYMBOL_REFERENCED.
1021         (mark_decl_referenced): New function.
1022         * tree.h: Prototype mark_decl_referenced.
1023         * final.c (output_addr_const) <case SYMBOL_REF>: Call
1024         mark_decl_referenced before assemble_name.
1025         * c-decl.c (finish_decl): Use mark_decl_referenced.
1026
1027 2004-05-18  Andrew Pinski  <pinskia@physics.uc.edu>
1028             Jeff Law <law@redhat.com>
1029
1030         * tree-ssa-phiopt.c (abs_replacement): New function.
1031         (empty_block_p): New function extracted from...
1032         (candidate_bb_for_phi_optimization): Break out empty block test.
1033         (conditional_replacement): Use empty_block_p.
1034         (value_replacement): Similarly.
1035
1036         * Makefile.in (tree-ssa-phiopt.o): Depends on flags.h.
1037         * tree-ssa-phiopt.c: Include flags.h.
1038         (conditional_replacement): Remove argument names from prototype.
1039         Minor formatting and comment fixes.
1040         (tree_ssa_phiopt): If conditional_replacement returns false, then
1041         call value_replacement.
1042         (value_replacement): New function.
1043
1044 2004-05-18  Jeff Law  <law@redhat.com>
1045
1046         * tree-ssa-phiopt.c (replace_phi_with_stmt): New function extracted
1047         from conditional_replacement.
1048         (candidate_bb_for_phi_optimization): Similarly.
1049         (conditional_replacement): Use replace_phi_with_stmt and
1050         candidate_bb_for_phi_optimization.
1051
1052         * tree-ssa-phiopt.c: Fix various formatting issues.
1053
1054 2004-05-18  Steven Bosscher  <stevenb@suse.de>
1055
1056         * config/s390/s390.c (s390_expand_movstr, s390_expand_clrstr,
1057         s390_expand_cmpmem): Do not use expand_start_loop and
1058         expand_end_loop, instead build the loop manually.
1059
1060 2004-05-18  Alan Modra  <amodra@bigpond.net.au>
1061
1062         * config/rs6000/rs6000.md (ctrsi_internal3): Delete.
1063         (ctrsi_internal4, ctrdi_internal3, ctrdi_internal4): Delete.
1064
1065 2004-05-17  Jeff Law  <law@redhat.com>
1066
1067         * toplev.h (flag_delete_null_pointer_checks): Move from here to...
1068         * flags.h (flag_delete_null_pointer_checks): Here.
1069         * tree-flow.h (cprop_into_successor_phis): Add argument to prototype.
1070         * tree-phinodes.c (resize_phi_node): Initialize PHI_ARG_NONZERO.
1071         (add_phi_arg, remove_phi_arg_num): Similarly.
1072         * tree-ssa-copy.c (cprop_into_successor_phis): Propagate nonzero
1073         property into PHI nodes.
1074         * tree-ssa-dom.c: Remove redundant inclusion of flags.h.
1075         (record_equivalences_from_phis): If all PHI arguments are known to be
1076         nonzero, then the result must be nonzero as well.
1077         (cprop_into_phis): Pass nonzero_vars bitmap to cprop_into_successor_phis.
1078         (record_equivalences_from_stmt): Check flag_delete_null_pointer_checks
1079         appropriately.  Walk the USE-DEF chains and propagate nonzero property
1080         as appropriate.
1081         * tree.h (PHI_ARG_NONZERO): Define.
1082         (phi_arg_d): Add nonzero flag.
1083
1084 2004-05-17  Zack Weinberg  <zack@codesourcery.com>
1085
1086         * f: Entire directory removed
1087
1088         * c-common.h (CTI_G77_INTEGER_TYPE, CTI_G77_UINTEGER_TYPE)
1089         (CTI_G77_LONGINT_TYPE, CTI_G77_ULONGINT_TYPE)
1090         (g77_integer_type_node, g77_uinteger_type_node)
1091         (g77_longint_type_node, or g77_ulongint_type_node): Delete.
1092         * c-common.c (c_common_nodes_and_builtins): Do not initialize
1093         the above set of variables.
1094
1095         * config/i386/uwin.h: No need to define WIN32_UWIN_TARGET.
1096         * doc/invoke.texi, doc/standards.texi: Remove cross-references
1097         to g77 manual.
1098
1099 2004-05-17  Steven Bosscher  <stevenb@suse.de>
1100
1101         PR tree-optimization/15438
1102         * tree-ssa-operands.c (get_expr_operands): Do not treat malloc
1103         attributed functions as pure or const.
1104
1105 2004-05-17  Frank Ch. Eigler  <fche@redhat.com>
1106
1107         * tree-mudflap.c (mx_register_decls): Tolerate decl trees resulting
1108         from source code with errors.
1109
1110 2004-05-17  Ranjit Mathew  <rmathew@hotmail.com>
1111
1112         Enable tree browser for all front ends.
1113         * Makefile.in (cc1): Moved @TREEBROWSER@ from here...
1114         (BACKEND): ...to here.
1115
1116 2004-05-17  Jan Hubicka  <jh@suse.cz>
1117
1118         * i386.c (construct_container): Do not produce BLKmode registers.
1119         (classify_argument): Properly compute alignment of complex types.
1120
1121 2004-05-17  H.J. Lu  <hongjiu.lu@intel.com>
1122
1123         PR target/15084
1124         * config/i386/i386.md (*movsi_insv_1_rex64): Changed to DImode
1125         and renamed to movdi_insv_1_rex64.
1126         (insv): Support SImode for 32bit and DImode for 64bit.
1127
1128 2004-05-17  Richard Sandiford  <rsandifo@redhat.com>
1129
1130         * config/mips/mips.h (MASK_DEBUG_G, TARGET_DEBUG_G_MODE): Delete.
1131         (TARGET_SWITCHES): Remove debugg.
1132         * config/mips/mips.md (adddi3, ashldi3, ashrdi3, lshrdi3): Only handle
1133         TARGET_64BIT.
1134         (subdi3): Replace the define_expand with a define_insn, the latter
1135         renamed from subdi3_internal_3.
1136         (negdi2): Likewise negdi2_internal_2.
1137         (adddi3_internal_[12], subdi3_internal, ashldi3_internal{,2,3})
1138         (ashrdi3_internal{,2,3}, lshrdi3_internal{,2,3}): Remove patterns
1139         and associated define_splits.
1140         (adddi3_internal): Renamed from adddi3_internal_3.
1141         (ashldi3_internal): Likewise ashldi3_internal4.
1142         (ashrdi3_internal): Likewise ashrdi3_internal4.
1143         (lshrdi3_internal): Likewise lshrdi3_internal4.
1144
1145 2004-05-17  Richard Sandiford  <rsandifo@redhat.com>
1146
1147         * optabs.c (expand_unop): Try implementing negation using subtraction
1148         from zero.
1149
1150 2004-05-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1151
1152         * pa.md:  Fix typo from last change.  Remove DFmode move to and from
1153         SAR register.
1154
1155 2004-05-16  Richard Earnshaw  <rearnsha@arm.com>
1156
1157         PR target/10982
1158         * arm.md (ne_zeroextractsi): Convert to insn-and-split.
1159         (ne_zeroextractsi_shifted): New pattern.
1160         (ite_ne_zeroextractsi): New pattern.
1161         (ite_ne_zeroextractsi_shifted): New pattern.
1162
1163 2004-05-15  Steven Bosscher  <stevenb@suse.de>
1164
1165         * c-gimplify.c (c_genericize):
1166         Replace calls via (*lang_hooks.foo) with lang_hooks.foo.
1167         * c-parse.in <expr_no_commas>: Likewise.
1168         <if_prefix>: Likewise.
1169         <select_or_iter_stmt>: Likewise.
1170         * expr.c (expand_var, expand_expr_real_1): Likewise.
1171         * expr.h (expand_expr): Make it a static inline function.
1172         Move prototype for expand_expr_real up before this.
1173         * fold-const.c (fold_relational_hi_lo, fold_relational_const):
1174         Likewise.
1175         * gimplify.c (gimple_boolify, gimplify_addr_expr,
1176         gimplify_asm_expr, gimplify_expr): Likewise.
1177         * tree-cfg.c (dump_tree_cfg, dump_cfg_stats, tree_cfg2vcg,
1178         dump_function_to_file): Likewise.
1179         * tree-dfa.c (dump_immediate_uses, dump_dfa_stats): Likewise.
1180         * tree-inline.c (remap_block, save_body, walk_tree): Likewise.
1181         * tree-into-ssa.c (dump_tree_ssa): Likewise.
1182         * tree-mudflap.c (mf_varname_tree, mf_file_function_line_tree):
1183         Likewise.
1184         * tree-optimize.c (execute_one_pass): Likewise.
1185         * tree-pretty-print.c (dump_generic_bb_buff): Likewise.
1186         * tree-ssa-alias.c (dump_alias_stats, dump_alias_info): Likewise.
1187
1188         * objc/objc-act.c (objc_build_try_enter_fragment,
1189         objc_build_try_epilogue, objc_build_catch_stmt,
1190         objc_build_finally_prologue): Replace calls via (*lang_hooks.foo)
1191         with lang_hooks.foo ().
1192
1193 2004-05-15  Roger Sayle  <roger@eyesopen.com>
1194
1195         * builtins.c (simplify_builtin_strcpy): Avoid use of chainon, so
1196         that simplify_builtin doesn't destructively modify its argument.
1197
1198 2004-05-15  Richard Earnshaw  <reanrsha@arm.com>
1199
1200         * arm/lib1funcs.asm (_lshrdi3, _ashrdi3, _ashldi3): Add ASM
1201         implementations for ARM and Thumb.
1202         * arm/t-arm-elf (LIB1ASMFUNCS): Use them.
1203
1204 2004-05-15  Thomas Quinot  <quinot@act-europe.fr>
1205
1206         * prefix.c (update_path): Replace PREFIX with KEY only
1207         when it matches a full directory name in PATH.
1208
1209 2004-05-15  Richard Earnshaw  <reanrsha@arm.com>
1210
1211         * arm.h (TARGET_APCS_32): Delete.
1212         (TARGET_MMU_TRAPS): Delete.
1213         (TARGET_CPU_CPP_BUILTINS): Unconditionally define __APCS_32__.  Never
1214         define __APCS_26__.
1215         (CPP_SPEC): Remove checking of -mapcs-{26,32}.
1216         (ARM_FLAG_APCS_32, ARM_FLAG_MMU_TRAPS): Delete.
1217         (TARGET_SWITCHES): Remove alignment_traps and apcs-{26,32} switches.
1218         (prog_mode_type): Delete.
1219         (PROMOTE_MODE): Always promote unsigned for HImode.
1220         (SECONDARY_INPUT_RELOAD_CLASS): Simplify.
1221         (MASK_RETURN_ADDR): Simplify.
1222         * arm.c (arm_prgmode): Delete.
1223         (arm_override_options, arm_gen_rotated_half_load): Simplify.
1224         (print_multi_reg, output_return_instruction): Simplify.
1225         (arm_output_epilogue, arm_final_prescan_insn): Simplify.
1226         (arm_return_addr): Simplify.
1227         * arm.md (prog_mode): Delete.
1228         (conds): Simplify.
1229         (zero_extendhisi2, extendhisi2, movhi, movhi_bytes): Simplify.
1230         (rotated_loadsi, movhi_insn_littleend, movhi_insn_bigend): Delete.
1231         (loadhi_si_bigend, loadhi_preinc, loadhi_shiftpreinc): Delete.
1232         (loadhi_shiftpredec): Delete.
1233         (peephole for post-increment on HImode load): Delete.
1234         * arm/crtn.asm: (FUNC_END): Simplify.
1235         * arm/lib1funcs.asm: Remove APCS-26 return macros.
1236         * arm/aof.h, arm/coff.h arm/elf.h arm/linux-elf.h arm/netbsd-elf.h
1237         * arm/netbsd.h arm/pe.h arm/semi.h arm/semiaof.h arm/unknown-elf.h
1238         * arm/vxworks.h arm/wince-pe.h: Tidy TARGET_DEFAULTS and
1239         MULTILIB_DEFAULTS as required.
1240         * arm/t-arm-elf arm/t-linux arm/t-pe arm/t-semi arm/t-wince-pe
1241         * arm/t-xscale-coff arm/t-xscale-elf arm/uclinux-elf: Tidy MULTILIB
1242         variables as required.
1243         * doc/invoke.texi (ARM Options): Remove obsolete flags.
1244
1245 2004-05-15  Alan Modra  <amodra@bigpond.net.au>
1246
1247         * config/rs6000/rs6000.c (rs6000_va_arg <ABI_V4>): Don't use
1248         UNITS_PER_WORD to calculate gpr size.  Re-instate code to set reg
1249         count to 8 to handle n_reg > 2.
1250
1251 2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>
1252
1253         * doc/extend.texi: Update WG14 URL.
1254
1255 2004-05-15  Steven Bosscher  <stevenb@suse.de>
1256
1257         * basic-block.h (life_analysis, delete_noop_moves):
1258         Update prototypes.
1259         * bt-load.c (branch_target_load_optimize): Don't take the
1260         insns stream as an argument.  Update the life_analysis calls.
1261         * combine.c (combine_instructions): Update delete_noop_moves
1262         calls.
1263         * flow.c (notice_stack_pointer_modification): Don't take the
1264         insns stream as an argument.  Work on the flow graph.
1265         (life_analysis): Likewise.
1266         (delete_noop_moves): Likewise.
1267         * passes.c (rest_of_handle_stack_regs): Update reg_to_stack call.
1268         (rest_of_handle_life): Update life_analysis call.
1269         (rest_of_compilation): Likewise, and also update
1270         branch_target_load_optimize call.
1271         * ra.c (reg_alloc): Update life_analysis call.
1272         * reg-stack.c (reg_to_stack): Likewise.  Also, don't take
1273         the insns stream as an argument.
1274         * regrename.c (copyprop_hardreg_forward): Update delete_noop_moves
1275         call.
1276         * rtl.c (branch_target_load_optimize, reg_to_stack): Update
1277         prototypes.
1278         * value-profile.c (branch_prob): Update life_analysis call.
1279         * web.c (web_main): Work on the CFG, not on the insns stream.
1280
1281         * config/ip2k/ip2k.c (ip2k_reorg): Update life_analysis calls.
1282         * config/m68hc11/m68hc11.c (m68hc11_reorg): Likewise.
1283         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
1284
1285 2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>
1286
1287         PR c/15444
1288         * c-format.c (avoid_dollar_number): New function.
1289         (check_format_info_main): Call avoid_dollar_number when operand
1290         numbers might occur but has_operand_number == 0.
1291
1292 2004-05-14  Richard Earnshaw  <rearnsha@arm.com>
1293
1294         * arm.md (all peephole2 patterns): Use predicates that validate
1295         register classes as appropriate.
1296
1297 2004-05-14  Steven Bosscher  <stevenb@suse.de>
1298
1299         PR opt/14472
1300         * tree-tailcall.c (process_assignment): Use STRIP_NOPS to
1301         ignore type conversions that do not inhibit tail calling.
1302         (find_tail_calls): Likewise.
1303
1304 2004-05-14  Jeff Law  <law@redhat.com>
1305
1306         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Don't even
1307         bother marking bypassed virtuals for out-of-ssa.  Instead merge
1308         bypassed virtuals into vars_to_rename just before into-ssa pass.
1309
1310         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Reorganize
1311         so that it picks up more opportunities to eliminate ABS expressions
1312         or turn them into negations.
1313
1314 2004-05-14  Steven Bosscher  <stevenb@suse.de>
1315
1316         * passes.c (rest_of_handle_null_pointer): Remove.
1317         (rest_of_handle_cse): Don't call rest_of_handle_null_pointer.
1318         (rest_of_compilation): Likewise.
1319         * rtl.h (delete_null_pointer_checks): Remove prototype.
1320         * gcse.c (rd_kill, rd_gen, reaching_defs, rd_out, ae_in, ae_out):
1321         Remove declarations.
1322         (get_bitmap_width, alloc_rd_mem, free_rd_mem, handle_rd_kill_set,
1323         compute_kill_rd, compute_rd, alloc_avail_expr_mem,
1324         free_avail_expr_mem, compute_ae_gen, expr_killed_p, compute_ae_kill,
1325         expr_reaches_here_p, computing_insn, def_reaches_here_p,
1326         can_disregard_other_sets, handle_avail_expr, classic_gcse,
1327         one_classic_gcse_pass, invalidate_nonnull_info,
1328         delete_null_pointer_checks_1, delete_null_pointer_checks,
1329         expr_reached_here_p_work): Remove.
1330         (gcse_main): Do not perform classic GCSE when optimizing for size.
1331         (alloc_pre_mem, free_pre_mem): Don't touch ae_in and ae_out, they
1332         are never used.
1333
1334 2004-05-14  Andrew Pinski  <pinskia@physics.uc.edu>
1335
1336         PR optimization/14466
1337         * tree-complex.c (make_temp): Remove.
1338         (gimplify_val): Replace make_temp with make_rename_temp
1339         and add NULL as the second argument.
1340         (expand_complex_div_wide): Likewise.
1341         * tree-dfa.c (make_rename_temp): New function.
1342         * tree-flow.h (make_rename_temp): Declare.
1343         * tree-sra.c (make_temp): Remove.
1344         (lookup_scalar): Replace make_temp with make_rename_temp.
1345         (create_scalar_copies): Likewise.
1346         * tree-ssa-phiopt.c (conditional_replacement): When we
1347         get non gimple create a temporary variable to hold the
1348         casted expression.
1349
1350 2004-05-14  Paul Brook  <paul@codesourcery.com>
1351
1352         * stor-layout.c (update_alignment_for_field): Use
1353         targetm.align_anon_bitfield.
1354         * target-def.h (TARGET_ALIGN_ANON_BITFIELD): Define.
1355         (TARGET_INITIALIZER): Use it.
1356         * target.h (struct gcc_target): Add align_anon_bitfield.
1357         * config/arm/arm.c (arm_align_anon_bitfield):  New function.
1358         (TARGET_ALIGN_ANON_BITFIELD): Define.
1359         * doc/tm.texi: Document TARGET_ALIGN_ANON_BITFIELD.
1360
1361 2004-05-13  Zack Weinberg  <zack@codesourcery.com>
1362
1363         * tree.def (documentation): Remove mention of class 'b'.
1364         (BLOCK): Now in class 'x'.
1365         * c-common.c (verify_tree): Remove case 'b'.
1366         * c-typeck.c (same_translation_unit_p): Change 'b' to 'x'.
1367         * calls.c (calls_function_1): Control cannot get past the switch
1368         when exp is a BLOCK.
1369         * print-tree.c (print_node): Move code for class 'b' to the class
1370         'c'/'x' switch, as case BLOCK.
1371         * tree.c (tree_size, make_node_stat, tree_node_structure): Likewise.
1372         (unsafe_for_reeval, substitute_placeholder_in_expr)
1373         (stabilize_reference_1): Remove case 'b'.
1374         * tree-browser.c (browse_tree): Change all tests for TREE_CODE_CLASS
1375         of something being 'b' to tests for TREE_CODE of something being
1376         BLOCK.
1377         * tree-ssa-operands.c (get_expr_operands): Likewise.
1378
1379 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
1380
1381         * tree-gimple.c: Rename from tree-simple.c.
1382         * tree-gimple.h: Rename from tree-simple.h.
1383         * c-gimplify.c: Rename from c-simplify.c
1384         * Makefile.in, c-decl.c, gimple-low.c, gimplify.c,
1385         langhooks.c, tree-alias-ander.c, tree-alias-common.c,
1386         tree-complex.c, tree-dfa.c, tree-flow.h, tree-inline.c,
1387         tree-into-ssa.c, tree-iterator.c, tree-mudflap.c,
1388         tree-nested.c, tree-nomudflap.c, tree-outof-ssa.c, tree-sra.c,
1389         tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-copyrename.c,
1390         tree-ssa-dce.c, tree-ssa-live.c, tree-ssa-pre.c, tree-ssa.c:
1391         Update.
1392
1393 2004-05-14  Ranjit Mathew  <rmathew@hotmail.com>
1394
1395         * doc/sourcebuild.texi: Mention libbanshee and libmudflap.
1396
1397 2004-05-13  Andrew Pinski  <pinskia@physics.uc.edu>
1398
1399         * tree-ssa.c (delete_tree_ssa): XFREE
1400         bitmaps allocated with BITMAP_XMALLOC.
1401
1402         * tree-ssa-pre.c (execute_pre): Free ephi_use_pool and
1403         idfs_cache at the end of the function.
1404
1405         * tree-ssa-live.c (calculate_live_on_entry): Free saw_def
1406         at the end of the function.
1407
1408         * tree-ssa-dce.c (perform_tree_ssa_dce): Free
1409         el at the end of the function.
1410
1411         * tree-into-ssa.c (insert_phi_nodes_for): XFREE
1412         bitmaps allocated with BITMAP_XMALLOC.
1413
1414         * loop-unswitch.c (unswitch_single_loop): Free bbs at
1415         the end.
1416
1417         * final.c (shorten_branches): Free uid_shuid before
1418         reallocating it.
1419
1420         * bb-reoder.c (connect_traces): Free cold_traces at the end.
1421
1422 2004-05-13  Jeff Law  <law@redhat.com>
1423
1424         * tree-ssa-live.c (calculate_live_on_entry): Ignore virtual
1425         variables.  Simplify slightly by using USE_OP/DEF_OP instead
1426         of USE_OP_PTR/DEF_OP_PTR and dereferencing the result.
1427
1428         * tree-into-ssa.c (compute_global_livein): Use EXECUTE_IF_SET_IN_BITMAP
1429         rather than iterating through the blocks testing each bit in
1430         livein to initialize the worklist.
1431         (mark_def_sites): Remove useless checks of KILLS for virtual
1432         operands.
1433
1434         * tree-ssa-forwprop.c (record_single_argument_cond_exprs): Accept
1435         new parameters for the statement and variable worklist as well
1436         as a bitmap of interesting SSA_NAMEs.  Walk over the statement
1437         worklist recording interesting variables in the variable worklist
1438         and bitmap.  Handle casts between integral and boolean types.
1439         (substitute_single_use_vars): Accept new parameters for the statement
1440         and variable worklist.  When a substitution is made add a new
1441         entry to the statement worklist.  Handle casts between integral
1442         and boolean types.
1443         (tree_ssa_forward_propagate_single_use_vars): Rework to pass
1444         worklists to children.  Iterate until the statement worklist
1445         is empty.
1446
1447 2004-05-13  Andrew Pinski  <pinskia@physics.uc.edu>
1448
1449         * tree-outof-ssa.c (rewrite_vars_out_of_ssa): Free map at
1450         the end of the block.
1451
1452         * tree-into-ssa.c (def_blocks_free): XFREE bitmaps allocated
1453         with BITMAP_XMALLOC.
1454
1455         * tree-ssa-alias.c (delete_alias_info): XFREE bitmaps allocated
1456         with BITMAP_XMALLOC.
1457
1458         * tree-ssa-dom.c (tree_ssa_dominator_optimize):
1459         Free nonzero_vars at the end of the function.
1460
1461         * convert.c (convert_to_integer): Make a CONVERT_EXPR when there is a
1462         need to generate code instead of a NOP_EXPR.
1463
1464 2004-05-13  Ian Lance Taylor  <ian@wasabisystems.com>
1465
1466         * gcc.c (default_compilers): Fill out initializers for new Fortran
1467         entries.
1468
1469 2004-05-13  Paul Brook  <paul@codesourcery.com>
1470
1471         * config/arm/arm.h (PCC_BITFIELD_TYPE_MATTERS): Define.
1472
1473 2004-05-13  Paul Brook  <paul@codesourcery.com>
1474
1475         * config/arm/arm.c (arm_default_short_enums): New function.
1476         (TARGET_DEFAULT_SHORT_ENUMS): Define.
1477
1478 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
1479
1480         Merge from tree-ssa-20020619-branch.
1481
1482         * Makefile.in (reload1.o-warn): Add.
1483         (tree-alias-ander.o-warn): Add.
1484         (GMPLIBS): Define.
1485         (GMPINC): Define.
1486         (BANSHEELIB): Define.
1487         (BANSHEEINC): Define.
1488         (TREE_DUMP_H): Define.
1489         (TREE_SIMPLE_H): Define.
1490         (TREE_FLOW_H): Define.
1491         (LIBDEPS): Add BANSHEELIB.
1492         (INCLUDES): Add BANSHEEINC and GMPINC.
1493         (C_AND_OBJC_OBJS): Add c-simplify.o, tree-mudflap.o,
1494         c-mudflap.o and c-pretty-print.o.
1495         (C_OBJS): Remove c-pretty-print.o.
1496         (OBJS-common): Remove sibcall.o.
1497         Add tree-cfg.o, tree-dfa.o, tree-eh.o,
1498         tree-ssa.o, tree-optimize.o, tree-simple.o,
1499         tree-alias-type.o, gimplify.o, tree-pretty-print.o,
1500         tree-into-ssa.o, tree-outof-ssa.o, tree-alias-common.o,
1501         tree-ssa-ccp.o, @ANDER@, tree-ssa-dce.o, tree-ssa-copy.o,
1502         tree-nrv.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
1503         tree-ssa-live.o, tree-ssa-operands.o, tree-ssa-alias.o,
1504         tree-ssa-phiopt.o, tree-ssa-forwprop.o, tree-nested.o,
1505         tree-ssa-dse.o, tree-ssa-dom.o, domwalk.o,
1506         tree-tailcall.o, gimple-low.o, tree-iterator.o,
1507         tree-phinodes.o, tree-ssanames.o, tree-sra.o,
1508         tree-complex.o, tree-ssa-loop.o, rtl-profile.o and
1509         tree-profile.o.
1510         (OBJC-archive): Add tree-nomudflap.o.
1511         (cc1): Add dependency on @TREEBROWSER@.
1512         (c-decl.o): Add dependency on TREE_DUMP_H.
1513         (c-dump.o): Likewise.
1514         (c-common.o): Add dependency on tree-iterator.h
1515         (c-pretty-print.o): Add dependency on DIAGNOSTIC_H.
1516         (gtype-desc.o): Add dependency on TREE_FLOW_H.
1517         (tree.o): Add dependency on tree-iterator.h,
1518         BASIC_BLOCK_H and TREE_FLOW_H.
1519         (tree-dump.o): Depend on TREE_DUMP_H instead of tree-dump.h.
1520         (langhooks.o): Add dependency on TREE_SIMPLE_H.
1521         (tree-alias-type.o, tree-alias-ander.o,
1522         tree-alias-common.o, tree-ssa.o, tree-into-ssa.o,
1523         tree-outof-ssa.o, tree-ssa-dse.o, tree-ssa-forwprop.o,
1524         tree-ssa-phiopt.o, tree-nrv.o, tree-ssa-copy.o,
1525         tree-ssa-dom.o, tree-ssanames.o, tree-phinodes.o,
1526         domwalk.o, tree-ssa-live.o, tree-ssa-copyrename.o,
1527         tree-ssa-pre.o, tree-cfg.o, tree-tailcall.o,
1528         tree-nested.o, tree-iterator.o, tree-dfa.o,
1529         tree-ssa-operands.o, tree-eh.o, tree-ssa-loop.o,
1530         tree-ssa-alias.o, tree-optimize.o, c-simplify.o,
1531         gimplify.o, gimple-low.o, tree-browser.o, tree-simple.o,
1532         tree-mudflap.o, c-mudflap.o, tree-nomudflap.o,
1533         tree-pretty-print.o, tree-ssa-dce.o, tree-ssa-ccp.o,
1534         tree-sra.o, tree-complex.o, tree-profile.o,
1535         rtl-profile.o): New rules.
1536         (function.o): Add dependency on basic-block.h
1537         (expr.o): Add dependency on tree-iterator.h.
1538         (sibcall.o): Remove.
1539         (profile.o): Depend on TREE_FLOW_H instead of TREE_H.
1540         (cfg.o): Add dependency on TIMEVAR_H.
1541         (cfghooks.o): Add dependency on TREE_FLOW_H.
1542         (reg-stack.o): Add dependency on basic-block.h.
1543         (GTFILES): Add hwint.h, tree-mudflaph.c, tree-flow.h,
1544         c-objc-common.c, c-common.c, c-parse.in, tree-ssanames.c,
1545         tree-eh.c, tree-phinodes.c, tree-cfg.c, tree-dfa.c,
1546         tree-ssa-ccp.c, tree-iterator.c, gimplify.c,
1547         tree-alias-type.h, tree-alias-common.h,
1548         tree-alias-type.c, tree-alias-common.c,
1549         tree-ssa-operands.h, tree-ssa-operands.c, tree-profile.c,
1550         rtl-profile.c and tree-nested.c.
1551         (gt-tree-alias-common.h, gt-tree-mudflap.h,
1552         gt-tree-ssa-ccp.h, gt-tree-eh.h, gt-tree-ssanames.h,
1553         gt-tree-iterator.h, gt-gimplify.h, gt-tree-phinodes.h,
1554         gt-tree-cfg.h, gt-tree-nested.h): New rules.
1555         (TEXI_GCCINT_FILES): Add cfg.texi and tree-ssa.texi.
1556         * basic-block.h: Include predict.h
1557         (struct edge_def): Add GTY marker.
1558         Change field 'insns' to be a union of tree and rtx.
1559         (EDGE_TRUE_VALUE): Define.
1560         (EDGE_FALSE_VALUE): Define.
1561         (EDGE_EXECUTABLE): Define.
1562         (struct bb_ann_d): Forward declare.
1563         (struct basic_block_def): Add GTY marker.
1564         Remove fields head_tree and end_tree.
1565         Add fields stmt_list, rbi and tree_annotations.
1566         (struct reorder_block_def): Define.
1567         (basic_block_info): Add GTY marker.
1568         (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Change to global
1569         variables instead of macros.
1570         (flow_call_edges_add): Remove declaration.
1571         (make_eh_edge): Remove declaration.
1572         (brief_dump_cfg, find_edge, tree_predicted_by_p,
1573         rtl_predicted_by_p, tree_predict_edge, rtl_predict_edge,
1574         predict_edge_def, rtl_make_eh_edge, find_basic_blocks,
1575         cleanup_cfg, delete_unreachable_blocks, merge_seq_blocks,
1576         alloc_rbi_pool, initialize_bb_rbi, free_rbi_pool): Declare.
1577         (try_redirect_by_replacing_jump): Modfiy return type to
1578         edge instead of bool.
1579         * bb-reorder.c (copy_bb): Call duplicate_block
1580         instead of cfg_layout_duplicate_bb.
1581         (copy_bb_p): Call can_duplicate_block_p instead of
1582         cfg_layout_can_duplicate_bb_p.
1583         * bitmap.c (bitmap_first_set_bit): Abort if word
1584         wasn't found.
1585         (bitmap_last_set_bit): Likewise.
1586         * builtin-types.def (DEF_FUNCTION_TYPE_2): Add
1587         (DEF_FUNCTION_TYPE_3): Add.
1588         * builtins.c (c_strlen): Make extern.
1589         (builtin_save_expr): New.
1590         (expand_builtin_nonlocal_goto): New.
1591         (expand_builtin_constant_p): Remove.
1592         (expand_builtin_mathfn): Call builtin_save_expr instead
1593         of save_expr.
1594         (expand_builtin_mathfn_2): Likewise.
1595         (expand_builtin_strcmp): Likewise.
1596         (expand_builtin_strncmp): Likewise.
1597         (expand_builtin_strcat): Likewise.
1598         (fold_builtin_cabs): Likewise.
1599         (expand_builtin_alloca): Don't trigger if -fmudflap is
1600         given.
1601         (build_string_literal): Set TREE_INVARIANT on new node.
1602         (expand_builtin_profile_fun): New.
1603         (round_trampoline_addr): New.
1604         (expand_builtin_init_trampoline): New.
1605         (expand_builtin_adjust_trampoline): New.
1606         (expand_builtin) <BUILT_IN_NEXT_ARG>: Call simplify_builtin_next_arg.
1607         <BUILT_IN_CONSTANT_P>: Return const0_rtx;
1608         <BUILT_IN_STACK_ALLOC, BUILT_IN_STACK_SAVE,
1609         BUILT_IN_STACK_RESTORE, BUILT_IN_NONLOCAL_GOTO,
1610         BUILT_IN_PROFILE_FUNC_ENTER, BUILT_IN_PROFILE_FUNC_EXIT,
1611         BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE>:
1612         Handle.
1613         (fold_builtin_expect): New.
1614         (fold_builtin_isascii): Don't return non-constant results
1615         in GIMPLE form.
1616         (fold_builtin_isdigit): Likewise.
1617         (fold_builtin_1): New.
1618         (fold_builtin): Call it.
1619         (build_function_call_expr): Update call to build a new
1620         CALL_EXPR.
1621         (purge_builtin_constant_p): Remove.
1622         (simplify_builtin, simplify_builtin_memcmp,
1623         simplify_builtin_strcmp, simplify_builtin_strncmp,
1624         simplify_builtin_strpbrk, simplify_builtin_strstr,
1625         simplify_builtin_strchr, simplify_builtin_strrchr,
1626         simplify_builtin_strcat, simplify_builtin_strncat,
1627         simplify_builtin_strspn, simplify_builtin_strcspn,
1628         simplify_builtin_next_arg, simplify_builtin_va_start,
1629         simplify_builtin_sprintf): New.
1630         * builtins.def (BUILT_IN_STACK_ALLOC,
1631         BUILT_IN_STACK_SAVE, BUILT_IN_STACK_RESTORE,
1632         BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE,
1633         BUILT_IN_NONLOCAL_GOTO, BUILT_IN_PROFILE_FUNC_ENTER,
1634         BUILT_IN_PROFILE_FUNC_EXIT): Define.
1635         * c-common.c: Include tree-iterator.h and hashtab.h.
1636         (lang_statement_code_p): Declare.
1637         (lang_gimplify_stmt): Declare.
1638         (fix_string_type): Set TREE_INVARIANT for value.
1639         (pointer_int_sum): Rely on build to set TREE_CONSTANT.
1640         (c_type_hash): New.
1641         (c_common_get_alias_set): Handle multiple type nodes
1642         referring to "the same" type, currently for C90 only.
1643         (c_add_case_label): Use create_artificial_label.
1644         (finish_label_address_expr): Don't set TREE_CONSTANT on
1645         result.
1646         (c_expand_expr): Don't handle STMT_EXPR.
1647         (handle_alias_attribute): Marke aliased variables to be
1648         TREE_STATIC.
1649         (handle_nonnull_attribute): Initialize arg_num.
1650         (check_function_nonnull): Likewise.
1651         (c_walk_subtrees): New.
1652         (c_estimate_num_insns_1): Don't handle
1653         EXPR_WITH_FILE_LOCATION nor FILE_STMT.
1654         (c_decl_uninit_1): Remove.
1655         (c_decl_uninit): Remove.
1656         (c_warn_unused_result): New.
1657         * c-common.def (ASM_STMT): Change number of operands
1658         to 4.
1659         (FILE_STMT): Remove.
1660         * c-common.h (lang_expand_stmt, lang_expand_decl_stmt):
1661         Remove.
1662         (lang_gimplify_stmt): Add.
1663         (expand_stmt): Remove.
1664         (ASM_CV_QUAL, ASM_STRING, ASM_OUTPUTS, ASM_INPUTS,
1665         ASM_CLOBBERS, STMT_EXPR_WARN_UNUSED_RESULT,
1666         ASM_VOLATILE_P, FILE_STMT_FILENAME_NODE,
1667         FILE_STMT_FILENAME, STMT_LINENO, STMT_LINENO_FOR_FN_P,
1668         ASM_INPUT_P, DECL_C_HARD_REGISTER): Remove.
1669         (genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
1670         genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
1671         genrtl_while_stmt, genrtl_do_stmt, genrtl_return_stmt,
1672         genrtl_for_stmt, genrtl_break_stmt, genrtl_continue_stmt,
1673         genrtl_scope_stmt, genrtl_switch_stmt, genrtl_case_label,
1674         genrtl_compound_stmt, genrtl_asm_stmt,
1675         genrtl_cleanup_stmt, c_decl_uninit): Remove.
1676         (c_do_switch_warnings, c_gimplify_expr, c_walk_subtrees,
1677         c_tree_chain_matters_p, c_warn_unused_result,
1678         c_genericize, c_gimplify_stmt, stmt_expr_last_stmt):
1679         Declare.
1680         * c-convert.c (convert): Make convert work when
1681         converting to compatible types across translation unit.
1682         * c-decl.c: Include langhooks.h, tree-mudflap.h,
1683         tree-simple.h, diagnostic.h and tree-dump.h
1684         (merge_decls): Initialize oldtype to NULL.
1685         (finish_decl): Use DECL_HARD_REGISTER instead of
1686         DECL_C_HARD_REGISTER.
1687         (check_bitfield_type_and_width): Check for null
1688         lang_type_specific when check the precision of an enum.
1689         (grokdeclarator): Immediately layout an ARRAY_TYPE used
1690         in a pointer-to-array declarator.
1691         (finish_struct): Clear allocated struct lang_type.
1692         (finish_enum): Set enum_min and enum_max.  Set
1693         TYPE_MIN/MAX_VALUE to the limits of the compatible type,
1694         not to the enumerators.
1695         (set_decl_nonlocal): New.
1696         (store_parm_decls): Use it via walk_tree.
1697         (c_finalize): New.
1698         (finish_function): When !targetm.have_ctors_dtors,
1699         record static constructors and destructors here...
1700         (c_expand_body_1): ... not here.
1701         (c_expand_decl): Rename from c_expand_decl_stmt.
1702         Handle all C-specific expansion semantics.
1703         * c-dump.c (dump_stmt): Use EXPR_LOCUS instead of
1704         STMT_LINENO.
1705         * c-format.c (handle_format_arg_attribute): Initialize
1706         format_num.
1707         * c-lang.c: Include tree-inline.h
1708         (LANG_HOOKS_EXPAND_DECL,
1709         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
1710         LANG_HOOKS_TREE_INLINING_WALK_SUBTREES,
1711         LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P,
1712         LANG_HOOKS_GIMPLIFY_EXPR, LANG_HOOKS_TYPES_COMPATIBLE_P): Define.
1713         (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
1714         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS): Remove.
1715         (c_types_compatible_p): New.
1716         * c-mudflap.c: New file.
1717         * c-objc-common.c: Include tree-mudflap.h
1718         (start_cdtor, finish_cdtor): Collapse
1719         together into
1720         (build_cdtor): ...here.  Update to construct a complete tree
1721         for the function.  No need to call push_scope, pop_scope, or
1722         clear_last_expr, or set current_function_cannot_inline.
1723         (c_missing_noreturn_ok_p): Change prototype to return
1724         bool.
1725         (c_objc_common_init): Don't set lang_missing_noreturn_ok_p.
1726         * c-opts.c (c_common_handle_option): Move handling of -fdump- to
1727         opts.c.
1728         (c_common_post_options): Don't ever use rtl inlining.
1729         * c-parse.in: Use EXPR_LOCUS instead of STMT_LINENO.
1730         * c-pragma.c (handle_pragma_redefine_extname): Define
1731         always.
1732         (init_pragma): Activate #pragma redefine_extname for mudflap.
1733         * c-pretty-print.c (pp_c_statement): Remove FILE_STMT.
1734         (pp_c_initializer): Accept any type CONSTRUCTOR.
1735         (pp_c_initializer_list): Fix code expectations for VECTOR_TYPE and
1736         COMPLEX_TYPE.
1737         (decl_name_str): New local function.
1738         (pp_c_direct_declarator): Call it.
1739         (pp_c_primary_expression): Call it.
1740         (pp_c_id_expression): Call it.
1741         (pp_c_statement): Call it.
1742         (print_c_tree): Create new pp object.
1743         * c-pretty-print.h (pp_c_tree_decl_identifier,
1744         print_c_tree): Declare.
1745         * c-semantics.c: Include langhooks.h
1746         (lang_expand_stmt, lang_expand_decl_stmt,
1747         find_reachable_label_1, find_reachable_label,
1748         expand_unreachable_if_stmt, expand_unreachable_stmt,
1749         genrtl_do_stmt_1): Remove.
1750         (begin_stmt_tree): Don't check for changed filename.
1751         Call annotate_with_locus.
1752         (finish_stmt_tree): Don't set line for end of function.
1753         (build_stmt): Don't check type nodes for
1754         side effects.
1755         (build_stmt): Set TREE_SIDE_EFFECTS.
1756         Set EXPR_LOCUS instead of STMT_LINENO.
1757         (lang_expand_stmt, lang_expand_decl_stmt,
1758         expand_cond, genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
1759         genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
1760         genrtl_while_stmt, genrtl_do_stmt_1, genrtl_do_stmt,
1761         genrtl_return_stmt, genrtl_for_stmt, genrtl_break_stmt,
1762         genrtl_continue_stmt, genrtl_scope_stmt, genrtl_switch_stmt,
1763         genrtl_case_label, genrtl_compound_stmt, genrtl_asm_stmt,
1764         genrtl_cleanup_stmt, expand_stmt, find_reachable_label,
1765         find_reachable_label_1, expand_unreachable_if_stmt,
1766         expand_unreachable_stmt): Remove.
1767         (prep_stmt): Use EXPR_LOCUS instead of STMT_LINENO.
1768         * c-simplify.c: New file.
1769         * c-tree.h (C_LANG_TREE_NODE_CHAIN_NEXT): Define.
1770         (struct lang_type): Add fields enum_min and enum_max.
1771         (c_expand_decl_stmt, c_missing_noreturn_ok_p): Remove.
1772         (c_expand_decl, c_missing_noreturn_ok_p,
1773         c_types_compatible_p): Declare.
1774         * c-typeck.c (tagged_types_tu_compatible_p): Allow for
1775         compiler-generated TYPE_DECLs without a DECL_ORIGINAL_TYPE.
1776         (default_function_array_conversion): Rely on build to
1777         set TREE_CONSTANT.
1778         (parser_build_binary_op, pointer_diff): Likewise.
1779         (build_unary_op, build_binary_op): Likewise.
1780         (build_array_ref):
1781         (build_external_ref): Set TREE_INVARIANT.
1782         (build_c_cast, pop_init_level): Likewise.
1783         (process_init_element): Use ASM_VOLATILE_P.
1784         (build_asm_expr): Adapt to GENERIC/GIMPLE syntax.
1785         (c_finish_case): Call c_do_switch_warnings.
1786         * c.opt (fdump-): Remove.
1787         * calls.c (try_to_integrate): Remove.
1788         (prepare_call_address): Replace fndecl arg with a
1789         precomputed static chain value.
1790         (emit_call_1): New argument for full call expr.
1791         (flags_from_decl_or_type): Call special_function_p.
1792         (initialize_argument_information): Add argument
1793         may_tailcall.
1794         (purge_reg_equiv_notes): New.
1795         (expand_call): Do not try to expand calls inline.
1796         (fixup_tail_calls): New.
1797         * cfg.c: Include timevar.h and ggc.h.
1798         (bb_pool, edge_pool): Remove.
1799         (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Declare.
1800         (entry_exit_blocks): Remove.
1801         (rbi_pool): Declare.
1802         (init_flow): Do not create pools.
1803         Allocate entry/exit block.
1804         (free_edge, alloc_block, expunge_block, unchecked_make_edge): Use GGC.
1805         (alloc_rbi_pool, free_rbi_pool, initialize_bb_rbi): New.
1806         (unlink_block): Clear b->prev_bb and b->next_bb.
1807         (compact_blocks): Clear all slots of BASIC_BLOCK array.
1808         (dump_flow_info): Work on trees too.
1809         (dump_cfg_bb_info): New.
1810         (brief_dump_cfg): New.
1811         * cfganal.c (need_fake_edge_p, flow_call_edges_add): Remove.
1812         (find_edge): New.
1813         * cfgbuild.c (rtl_make_eh_edge): Rename from
1814         make_eh_edge.  Update all users.
1815         (find_basic_blocks): Don't call VARRAY_FREE on
1816         basic_block_info.
1817         * cfgcleanup.c (outgoing_edges_match): Initialize newpos1
1818         and newpos2.
1819         (delete_unreachable_blocks): Return changed status.
1820         (merge_seq_blocks): New.
1821         * cfghooks.c: Include tree-flow.h
1822         (tree_register_cfg_hooks, ir_type): New.
1823         (redirect_edge_and_branch): Change return type to edge.
1824         (predict_edge, predicted_by_p, can_duplicate_block_p,
1825         duplicate_block, block_ends_with_call_p,
1826         block_ends_with_condjump_p, flow_call_edges_add): New.
1827         * cfghooks.h (redirect_edge_and_branch): Change return
1828         type to edge.
1829         (predict_edge, predicted_by_p, can_duplicate_block_p,
1830         duplicate_block, block_ends_with_call_p,
1831         block_ends_with_condjump_p, flow_call_edges_add): Declare.
1832         (redirect_edge_and_branch): Change return type to edge.
1833         (struct cfg_hooks): Add fields block_ends_with_call_p,
1834         block_ends_with_condjump_p, flow_call_edges_add,
1835         predict_edge, predicted_by_p, can_duplicate_block_p and
1836         duplicate_block.
1837         (tree_cfg_hooks, ir_type, tree_register_cfg_hooks): Declare.
1838         * cfglayout.c (cfg_layout_pool, cfg_layout_initialize_rbi): Removed.
1839         (fixup_reorder_chain): Use initialize_bb_rbi.
1840         (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Hookized.
1841         (cfg_layout_initialize): Use cfg.c rbi pool manipulation functions.
1842         (can_copy_bbs_p, copy_bbs): Use cfghooks for bb duplication.
1843         (insn_locators_initialize): Use new info about blocks.
1844         * cfglayout.h (typedef struct reorder_block_def): Moved to
1845         basic_block.h.
1846         (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Declaration
1847         removed.
1848         * cfgloop.c: Include tree.h and tree-flow.h.
1849         * cfgloop.h (create_loop_notes): Declare.
1850         * cfgloopmanip.c (create_loop_notes): New.
1851         * cfgrtl.c (cfg_layout_create_basic_block): Use initialize_bb_rbi.
1852         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Fill in can_duplicate_block_p
1853         and duplicate_block fields.
1854         (create_basic_block_structure): Don't look at
1855         RTX_INTEGRATED_P.
1856         (rtl_block_ends_with_call_p): New.
1857         (rtl_block_ends_with_condjump_p): New.
1858         (need_fake_edge_p): Moved from cfganal.c.
1859         (rtl_flow_call_edges_add): Moved from cfganal.c (flow_call_edges_add).
1860         (rtl_cfg_hooks): Add rtl_block_ends_with_call_p,
1861         rtl_block_ends_with_condjump_p, rtl_flow_call_edges_add.
1862         (cfg_layout_rtl_cfg_hooks): Ditto.
1863         * cgraph.c (cgraph_mark_reachable_node): Don't force nested
1864         functions to be reachable.
1865         * cgraphunit.c (decide_is_function_needed):
1866         * cgraphunit.c (decide_is_function_needed): Nested functions of extern
1867         inline functions don't need to be output.
1868         (cgraph_assemble_pending_functions): Don't do anything
1869         special for nested functions.
1870         (cgraph_mark_functions_to_output): Likewise.
1871         (cgraph_finalize_function): Don't zap DECL_STRUCT_FUNCTION.
1872         (cgraph_analyze_function): Use estimate_num_insns.
1873         (cgraph_mark_functions_to_output): Likewise.
1874         (cgraph_estimate_growth, cgraph_clone_inlined_nodes): Likewise.
1875         (cgraph_expand_function): Allow functions to not be
1876         emitted.
1877         (cgraph_remove_unreachable_nodes):
1878         (cgraph_recursive_inlining_p): Simplify.
1879         (lookup_recursive_calls,
1880         cgraph_decide_recursive_inlining): New.
1881         (cgraph_decide_inlining_*): Update calls of
1882         cgraph_mark_inline.
1883         * combine.c (get_pos_from_mask): Always set *plen.
1884         * common.opt (fdump-, fmudflap, fmudflapth, fmudflapir,
1885         ftree-based-profiling, ftree-ccp, ftree-ch,
1886         ftree-combine-temps, ftree-copyrename, ftree-dce,
1887         ftree-dominator-opts, ftree-dse, ftree-loop-optimize,
1888         ftree-points-to, ftree-pre, ftree-sra, ftree-ter,
1889         ftree-lrs): Add.
1890         * config.in (HAVE_LD_PIE, HAVE_BANSHEE, PREFIX_INCLUDE_DIR):
1891         Undefine.
1892         * configure.ac: Add --enable-tree-browser option.
1893         Add --with-libbanshee option.
1894         Add GMPLIBS and GMPINC.
1895         * configure: Regenerate.
1896         * coverage.c (tree_ctr_tables): New.
1897         (coverage_counter_alloc): Use it.
1898         (build_ctr_info_value): Ditto.
1899         (coverage_counter_ref): Ditto.  Rename to rtl_coverage_counter_ref.
1900         (tree_coverage_counter_ref): New.
1901         * coverage.h (coverage_counter_ref): Remove declaration.
1902         (rtl_coverage_counter_ref): Declare.
1903         (tree_coverage_counter_ref): Declare.
1904         * cppexp.c (append_digit): Rearrange unsignedp/overflow setting.
1905         (eval_token, num_binary_op, num_part_mul, num_div_op): Likewise.
1906         * cse.c (fold_rtx): Do not handle CONSTANT_P_RTX.
1907         (struct cse_basic_block_data): Rename enum values to not
1908         conflict with profile.h; update all uses.
1909         * dbxout.c (dbxout_symbol_location): Don't mention integrate.c
1910         in comments.
1911         * defaults.h (TRAMPOLINE_ALIGNMENT): Move from function.c.
1912         * diagnostic.h (debug_output_buffer, dump_generic_node,
1913         print_generic_stmt, print_generic_stmt_indented,
1914         print_generic_expr, print_generic_decl,
1915         debug_generic_expr, debug_generic_stmt, debug_c_tree):
1916         Declare.
1917         * dominance.c: Cache immediate dominators.
1918         * domwalk.c: New file.
1919         * domwalk.h: New file.
1920         * dwarf2out.c (is_fortran): Support DW_LANG_Fortran95.
1921         (gen_subprogram_die): Generate a DIE for a named
1922         return value.
1923         (loc_descriptor_from_tree): Treat RESULT_DECL like VAR_DECL.
1924         (add_location_or_const_value_attribute): Likewise.
1925         (add_bound_info): Likewise.
1926         (gen_decl_die): Likewise.
1927         * emit-rtl.c (maybe_set_first_label_num): New.
1928         (copy_most_rtx): Don't copy the integrated flag.
1929         Copy the new return_val flag.
1930         * et-forest.c (MAX_NODES): Define.
1931         (record_path_before_1): Abort if len is greater than
1932         MAX_NODES.
1933         * except.c (gen_eh_region, gen_eh_region_cleanup, gen_eh_region_try,
1934         gen_eh_region_catch, gen_eh_region_allowed,
1935         gen_eh_region_must_not_throw, get_eh_region_number,
1936         get_eh_region_may_contain_throw, get_eh_region_tree_label,
1937         set_eh_region_tree_label, expand_resx_expr): New.
1938         (expand_eh_region_start, expand_start_catch): Use them.
1939         (expand_end_catch): Tidy.
1940         (note_eh_region_may_contain_throw): Take region argument.
1941         (note_current_region_may_contain_throw): New.
1942         (get_exception_filter): Export.
1943         (collect_eh_region_array): Export.
1944         (remove_unreachable_regions): Check ERT_TRY based on reachability
1945         of catches, not reachability of continue_label.  Never remove
1946         ERT_MUST_NOT_THROW regions.
1947         (collect_rtl_labels_from_trees): New.
1948         (convert_from_eh_region_ranges): Use it.
1949         (connect_post_landing_pads): Handle dying cleanups.
1950         (struct reachable_info): Add callback data.
1951         (add_reachable_handler): Invoke the callback.
1952         (foreach_reachable_handler): New.
1953         (reachable_handlers): Use it.
1954         (arh_to_landing_pad, arh_to_label): New.
1955         (can_throw_internal_1): Split out from can_throw_internal.
1956         (can_throw_external_1): Similarly.
1957         * except.h: Update.
1958         * explow.c (emit_stack_save): Remove savearea mode check.
1959         (update_nonlocal_goto_save_area): New.
1960         (allocate_dynamic_stack_space): Use it.
1961         (probe_stack_range): Never emit loop notes.
1962         * expmed.c (extract_fixed_bit_field): Always propagate the
1963         target for the shift if it is a REG.
1964         * expr.c: Include tree-iterator.h
1965         (is_zeros_p): Remove.
1966         (categorize_ctor_elements_1, categorize_ctor_elements): New.
1967         (count_type_elements): New.
1968         (mostly_zeros_p): Use them.
1969         (expr_wfl_stack): Remove.
1970         (convert_move): Do nothing if to and from are the same.
1971         (emit_block_move_via_loop): Don't emit LOOP notes.
1972         (emit_move_insn): Don't handle CONSTANT_P_RTX.
1973         (emit_move_insn_1): Don't generate inline warnings.
1974         (expand_vars, expand_var): Split from ...
1975         (expand_expr_1): ... here.
1976         (expand_expr_real, expand_expr_real_1):  Use new macros
1977         EXPR_LOCATION and EXPR_HAS_LOCATION.
1978         * expr.h (simplify_builtin_fputs,
1979         simplify_builtin_strcpy, simplify_builtin_strncpy,
1980         expand_var, fixup_tail_calls,
1981         update_nonlocal_goto_save_area): Declare.
1982         (lookup_static_chain, expand_inline_function,
1983         mark_seen_cases): Remove.
1984         (prepare_call_address): Change type of 2nd argument to
1985         rtx.
1986         * final.c (profile_function): Update static chain test.
1987         (final): Don't look at RTX_INTEGRATED_P.
1988         * flags.h (flag_mudflap, flag_mudflap_threads,
1989         flag_mudflap_ignore_reads, flag_tree_pre, flag_tree_ccp,
1990         flag_tree_dce, flag_tree_combine_temps,
1991         flag_tree_live_range_split, flag_tree_dom, flag_tree_ch,
1992         flag_tree_dse, flag_tree_sra, flag_tree_copyrename,
1993         flag_tree_points_to): Declare.
1994         (enum pta_type): Declare.
1995         * flow.c (lang_missing_noreturn_ok_p): Remove.
1996         (check_function_return_warnings): Remove.
1997         (update_life_info): Update comments.
1998         (free_basic_block_vars): Don't call VARRAY_FREE for
1999         basic_block_info.
2000         (regno_uninitialized): Remove.
2001         * fold-const.c (int_const_binop): Make extern.
2002         (non_lvalue): Rely on build to set TREE_CONSTANT.
2003         (operand_equal_p): Replace only_const argument with
2004         flags.  Allow pure functions if OEP_PURE_SAME.
2005         (fold): Use OEP_ONLY_CONST.
2006         (invert_truthvalue) <NOP_EXPR> Break if argument is of
2007         boolean type.
2008         (fold_relational_hi_lo,
2009         nondestructive_fold_binary_to_constant,
2010         nondestructive_fold_unary_to_constant,
2011         fold_read_from_constant_string): New.
2012         * function.c (struct function): Remove calls_constant_p.
2013         (current_function_calls_constant_p): Remove.
2014         (inline_function_decl): Remove.
2015         (put_var_into_stack): Don't use it.
2016         (fix_lexical_addr): Likewise.
2017         (inline_function_decl): Remove extern declaration.
2018         (TRAMPOLINE_ALIGNMENT): Move to defaults.h.
2019         (trampolines_created): Move to varasm.c.
2020         (free_after_compilation): Update for removed fields.
2021         (allocate_struct_function): Likewise.
2022         (delete_handlers, lookup_static_chain): Remove.
2023         (fix_lexical_addr): Don't consider non-local variable refs.
2024         (trampoline_address): Remove.
2025         (round_trampoline_addr): Move to builtins.c.
2026         (adjust_trampoline_addr): Remove.
2027         (expand_function_start): Update for changes to static chain
2028         and nonlocal goto handling.
2029         (initial_trampoline): Move to varasm.c.
2030         (expand_function_end): Don't build trampolines or kill
2031         unreferenced nonlocal goto labels.
2032         (free_after_compilation): Don't set it.
2033         (expand_function_end): Likewise.
2034         (setjmp_vars_warning): Rename from
2035         uninitialized_vars_warning, remove uninitialized vars warning.
2036         (uninitialized_vars_warning): Remove old comment
2037         and check for DECL_INITIAL, replace with a check of TREE_NO_WARNING
2038         and do not call the langhook.
2039         (expand_function_start, expand_function_end): Don't do
2040         function instrumentation here.
2041         (clear_block_marks): Rename from reorder_blocks_0, export.
2042         (blocks_nreverse): Export.
2043         (uninitialized_vars_warning): Use DECL_RTL_SET_P to test for presence
2044         of rtl.
2045         (reset_block_changes, record_block_change, finalize_block_changes,
2046         check_block_change, free_block_changes): New functions.
2047         (assign_parms): Setting of current_function_stdarg
2048         moved ...
2049         (allocate_struct_function): ... here.
2050         * function.h (struct function): Remove x_nonlocal_labels,
2051         x_nonlocal_goto_handler_slots, x_nonlocal_goto_stack_level,
2052         x_context_display, x_trampoline_list, needs_context.
2053         Add static_chain_decl, nonlocal_goto_save_area.
2054         (struct function): Remove x_clobber_return_insn.
2055         Add tail_call_emit field, last_label_uid,
2056         unexpanded_var_list, dont_emit_block_notes,
2057         ib_boundaries_block, function_end_locus and saved_tree/saved_args.
2058         (clear_block_marks): Declare.
2059         * gcc.c (MFWRAP_SPEC, MFLIB_SPEC): Add -fmudflapth support.
2060         (mfwrap_spec, mflib_spec): Declare.
2061         (cpp_unique_options, cc1_options): Ditto.
2062         (default_compilers): Add .F and .f90.
2063         (static_specs): Add mfwrap and mflib.
2064         * gcse.c (want_to_gcse_p, gcse_constant_p): Don't handle
2065         CONSTANT_RTX_P.
2066         (reg_used_on_edge, reg_killed_on_edge, bypass_block):
2067         Update to match insns field in struct edge_def.
2068         * gdbinit.in (pgs, pge): Define.
2069         * genattrtab.c (ATTR_PERMANENT_P): Use the return_val flag
2070         instead of the integrated flag.
2071         * gengtype-lex.l (IWOrD): Add HOST_WIDEST_INT
2072         * gengtype-yacc.y (bitfieldlen): Add empty action.
2073         (struct_fields): Accept unnamed bitfields.
2074         (bitfieldlen): Split from ...
2075         (bitfieldopt): ... here.
2076         * gengtype.c (ifiles): Add tree-alias-type.h and
2077         tree-flow.h.
2078         * genrecog.c (validate_pattern): Do not handle
2079         CONSTANT_P_RTX.
2080         * gimple-low.c: New file.
2081         * gimplify.c: New file.
2082         * haifa-sched.c (priority): Do not handle CONSTANT_P_RTX.
2083         (restore_line_notes): Do not set RTX_INTEGRATED_P.
2084         * ifcvt.c (dead_or_predicable): Initialize local variable
2085         'earliest'.
2086         * input.h (expr_wfl_stack): Remove.
2087         * integrate.c (INTEGRATE_THRESHOLD): Remove.
2088         (setup_initial_hard_reg_value_integration): Likewise.
2089         (initialize_for_inline): Likewise.
2090         (note_modified_parmregs): Likewise.
2091         (integrate_parm_decls): Likewise.
2092         (process_reg_param): Likewise.
2093         (save_parm_insns): Likewise.
2094         (copy_insn_list): Likewise.
2095         (copy_insn_notes): Likewise.
2096         (compare_blocks): Likewise.
2097         (find_block): Likewise.
2098         (inlining): Likewise.
2099         (function_cannot_inline_p): Likewise.
2100         (parmdecl_map): Likewise.
2101         (in_nonparam_insns): Likewise.
2102         (save_for_inline): Likewise.
2103         (FIXED_BASE_PLUS): Likewise.
2104         (expand_inline_function): Likewise.
2105         (copy_rtx_and_substitute): Don't look at map->integrating,
2106         map->inline_target, and inlining, since we are never copying
2107         for integrating.
2108         Don't abort on RTX_INTEGRATED_P.
2109         (old_fun): Remove.
2110         (output_inline_function): Remove.
2111         * integrate.h (struct inline_map): Remove fields integrating,
2112         block_map, leaf_reg_map, inline_target, and local_return_label.
2113         * jump.c (next_nonnote_insn_in_loop, duplicate_loop_exit_test,
2114         copy_loop_headers, never_reached_warning): Removed.
2115         (any_uncondjump_p): Reject nonlocal goto.
2116         * langhooks-def.h (lhd_types_compatible_p,
2117         lhd_expand_decl, lhd_gimplify_expr): Declare.
2118         (LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
2119         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
2120         LANG_HOOKS_FUNCTION_LEAVE_NESTED,
2121         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
2122         LANG_HOOKS_GIMPLIFY_EXPR,
2123         LANG_HOOKS_GIMPLE_BEFORE_INLINING,
2124         LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
2125         LANG_HOOKS_GIMPLIFY_EXPR,
2126         LANG_HOOKS_GIMPLE_BEFORE_INLINING): Define.
2127         (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_START,
2128         LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_RTL_EXPAND_END,
2129         LANG_HOOKS_FUNCTION_LEAVE_NESTED,
2130         LANG_HOOKS_RTL_EXPAND_INITIALIZER,
2131         LANG_HOOKS_DECL_UNINIT,
2132         LANG_HOOKS_RTL_EXPAND_INITIALIZER): Remove.
2133         * langhooks.c: Include tree-simple.h.
2134         (lhd_expand_decl): New.
2135         (lhd_types_compatible_p): New.
2136         (lhd_decl_uninit): Remove.
2137         (lhd_gimplify_expr): New.
2138         * langhooks.h (struct lang_hooks_for_rtl_expansion):
2139         Remove.
2140         (struct lang_hooks_for_functions): Add field
2141         missing_noreturn_ok_p.
2142         (struct lang_hooks): Add field expand_decl,
2143         types_compatible_p, gimplify_expr and
2144         gimple_before_inlining.
2145         Remove fields decl_uninit and rtl_expand
2146         * opts.c (decode_options): Set flag_tree_ccp,
2147         flag_tree_dce, flag_tree_dom, flag_tree_dse,
2148         flag_tree_pre, flag_tree_ter,
2149         flag_tree_live_range_split, flag_tree_sra,
2150         flag_tree_copyrename and flag_tree_ch at -O1 and higher.
2151         (common_handle_option): Handle OPT_fdump_, OPT_fmudflap,
2152         OPT_fmudflapth, OPT_fmudflapir,
2153         OPT_ftree_based_profiling, OPT_ftree_ccp, OPT_ftree_dce,
2154         OPT_ftree_combine_temps, OPT_ftree_ter, OPT_ftree_lrs,
2155         OPT_ftree_dominator_opts, OPT_ftree_copyrename,
2156         OPT_ftree_ch, OPT_ftree_dse, OPT_ftree_sra,
2157         OPT_ftree_points_to_ and OPT_ftree_pre.
2158         * output.h (regno_uninitialized, find_basic_blocks,
2159         cleanup_cfg, delete_unreachable_blocks,
2160         check_function_return_warnings): Remove.
2161         * params.def (PARAM_MAX_INLINE_INSNS_RECURSIVE,
2162         PARAM_MAX_INLINE_INSNS_RECURSIVE_AUTO,
2163         PARAM_MAX_INLINE_RECURSIVE_DEPTH,
2164         PARAM_MAX_INLINE_RECURSIVE_DEPTH_AUTO,
2165         PARAM_GLOBAL_VAR_THRESHOLD, PARAM_MAX_ALIASED_VOPS):
2166         * params.h (GLOBAL_VAR_THRESHOLD, MAX_ALIASED_VOPS):
2167         Define.
2168         * passes.c (rest_of_decl_compilation):
2169         (rest_of_handle_sibling_calls): Remove.
2170         (rest_of_handle_inlining): Remove.
2171         (rest_of_handle_gcse): Do not run
2172         purge_builtin_constant_p.
2173         (rest_of_compilation): Update.
2174         Do not call copy_loop_headers.
2175         Do rtl-based profiling only when
2176         !flag_tree_based_profiling.  Register rtl-based profiling
2177         hooks.
2178         * predict.c:  Include tree-flow.h, ggc.h, tree-dump.h
2179         (predicted_by_p): Rename to ...
2180         (rtl_predicted_by_p): .. this one; make global
2181         (tree_predicted_by_p): New.
2182         (dump_prediction): Add FILE argument.
2183         (predict_edge): Rename to ...
2184         (rtl_predict_edge): .. this one.
2185         (tree_predict_edge): New.
2186         (combine_predictions_for_insn): Update calls of predict_edge.
2187         (predict_loops): Break out from ...
2188         (estimate_probability): ... here; update comments; move updating
2189         of unknown probabilities from ...
2190         (estimate_bb_frequencies): ... here.
2191         (combine_predictions_for_bb): New.
2192         (tree_predict_by_opcode): New.
2193         (tree_estimate_probability): New.
2194         * predict.def (PRED_TREE_POINTER, PRED_TREE_OPCODE_POSITIVE,
2195         PRED_TREE_OPCODE_NONEQUAL, PRED_TREE_FPOPCODE): New predictors.
2196         * predict.h: Add include guard.
2197         (predict_edge, predict_edge_def): Move prototypes to basic_block.h
2198         * pretty-print.c (pp_write_text_to_stream): Make extern.
2199         * pretty-print.h (pp_write_text_to_stream): Declare.
2200         * print-rtl.c (print_rtx): Don't print the integrated flag.
2201         Print the return_val flag.
2202         * print-tree.c: Use TREE_FILENAME and TREE_LINENO instead
2203         of DECL_SOURCE_FILE and DECL_SOURCE_LINE respectively.
2204         Remove support for EXPR_WITH_FILE_LOCATION nodes.
2205         (print_node): Print TREE_INVARIANT and TREE_VISITED.
2206         * profile.c: Include cfghooks.h, tree-flow.h.
2207         (profile_hooks): New.
2208         (profile_dump_file): New.
2209         (instrument_edges): Use hooks instead of RTL-specific code.
2210         (instrument_values): Ditto.
2211         (get_exec_counts): Ditto.
2212         (compute_branch_probabilities): Ditto.
2213         (compute_value_histograms): Ditto.
2214         (branch_prob): Ditto.
2215         (find_spanning_tree): Ditto.
2216         (end_branch_prob): Ditto.
2217         (gen_edge_profiler): Move to rtl-profile.c (rtl_gen_edge_profiler).
2218         (gen_interval_profiler): Ditto (rtl_gen_interval_profiler).
2219         (gen_pow2_profiler): Ditto (rtl_gen_pow2_profiler).
2220         (gen_one_value_profiler): Ditto (rtl_gen_one_value_profiler).
2221         (tree_register_profile_hooks): New.
2222         (rtl_register_profile_hooks): New.
2223         * ra-rewrite.c (rewrite_program): Clear variable info.
2224         * recog.c (immediate_operand): Do not handle CONSTANT_P_RTX.
2225         * regs.h: Add include guards.
2226         * reload.c (decompose): Clear val using memset.
2227         * rtl.def (CONSTANT_P_RTX): Remove.
2228         * rtl.h (CONSTANT_P): Do not handle CONSTANT_P_RTX.
2229         (copy_loop_headers): Remove.
2230         (struct rtx_def): Replace the integrated flag with the
2231         return_val flag.
2232         (maybe_set_first_label_num): Declare.
2233         (init_branch_prob): Move declaration to value-prof.h.
2234         (end_branch_prob): Ditto.
2235         (branch_prob): Ditto.
2236         (never_reached_warning): Don't declare it.
2237         * rtlanal.c (get_related_value): Initialize get_jump_table_offset
2238         (hoist_insn_to_edge): Update to match field insns in
2239         struct edge_def.
2240         * sbitmap.c (sbitmap_realloc): New.
2241         * sbitmap.h (sbitmap_realloc): Declare.
2242         * sibcall.c: Remove file.
2243         * simplify-rtx.c (simplify_rtx): Do not handle
2244         CONSTANT_P_RTX.
2245         * stmt.c (parse_output_constraint): Don't warn for read-write
2246         memory operand.
2247         (tail_recursion_args): Use types_compatible_p langhook.
2248         (force_label_rtx): Don't look at inline_function_decl.
2249         (label_rtx): Set LABEL_PRESERVE_P appropriately.
2250         (expand_label): Handle DECL_NONLOCAL and FORCED_LABEL.
2251         (declare_nonlocal_label): Remove.
2252         (expand_goto): Don't handle nonlocal gotos.
2253         (expand_nl_handler_label): Remove.
2254         (expand_nl_goto_receivers): Remove.
2255         (expand_end_bindings): Don't expand_nl_goto_receivers.  Use
2256         update_nonlocal_goto_save_area.
2257         (expand_expr_stmt_value): Check TREE_NO_WARNING.
2258         (warn_if_unused_value): Likewise.
2259         (expand_start_loop, expand_loop_continue_here,
2260         expand_end_loop): Don't create loop notes.
2261         (all_cases_count, BITARRAY_TEST, BITARRAY_SET,
2262         mark_seen_cases, check_for_full_enumeration_handling): Remove.
2263         (expand_end_case_type): Don't do warn_switch handling.
2264         (pushcase, pushcase_range) Update add_case_node calls.
2265         (add_case_node): Add dont_expand_label argument.
2266         (same_case_target_p): Don't search rtl.
2267         (expand_start_bindings_and_block, expand_end_bindings):
2268         Don't emit block notes when dont_emit_block_notes.
2269         (using_eh_for_cleanups_p): Export.
2270         (expand_return): Allow any typed rhs.
2271         (expand_stack_alloc): New.
2272         (expand_stack_save, expand_stack_restore): New.
2273         (containing_blocks_have_cleanups_or_stack_level): New
2274         function.
2275         (asm_op_is_mem_input): New fn.
2276         (expand_asm_expr): New fn.
2277         (warn_if_unused_value): Check operand 0 of SAVE_EXPR
2278         nodes.
2279         * stor-layout.c (layout_type): Just return if type is
2280         error_mark_node.
2281         (update_alignment_for_field): Export.
2282         (variable_size): We don't care about global_bindings_p if
2283         the frontend doesn't want a list of the expressions.
2284         * system.h: Poison INTEGRATE_THRESHOLD.
2285         * timevar.def (TV_TREE_GIMPLIFY, TV_TREE_EH, TV_TREE_CFG,
2286         TV_TREE_CLEANUP_CFG, TV_TREE_PTA, TV_TREE_MAY_ALIAS,
2287         TV_TREE_INSERT_PHI_NODES, TV_TREE_SSA_REWRITE_BLOCKS,
2288         TV_TREE_SSA_OTHER, TV_TREE_OPS,
2289         TV_TREE_SSA_DOMINATOR_OPTS, TV_TREE_SRA, TV_TREE_CCP,
2290         TV_TREE_SPLIT_EDGES, TV_TREE_PRE, TV_TREE_PHIOPT,
2291         TV_TREE_FORWPROP, TV_TREE_DCE, TV_TREE_CD_DCE,
2292         TV_TREE_DSE, TV_TREE_LOOP, TV_TREE_CH,
2293         TV_TREE_SSA_TO_NORMAL, TV_TREE_SSA_TO_NORMAL,
2294         TV_TREE_NRV, TV_TREE_COPY_RENAME, TV_TREE_SSA_VERIFY,
2295         TV_TREE_STMT_VERIFY, TV_DOM_FRONTIERS,
2296         TV_CONTROL_DEPENDENCES): Define.
2297         * toplev.c: Include tree-alias-common.h
2298         (current_file_decl, flag_mudflap, flag_mudflap_threads,
2299         flag_mudflap_ignore_reads, flag_tree_based_profiling,
2300         flag_tree_gvn, flag_tree_points_to, flag_tree_ccp,
2301         flag_tree_dce, flag_tree_ch, flag_tree_sra,
2302         flag_tree_combine_temps, flag_tree_ter,
2303         flag_tree_live_range_split, flag_tree_dom,
2304         flag_tree_copyrename, flag_tree_dse): Declare.
2305         (f_options): Add tree-based-profiling, tree-gvn,
2306         tree-pre, tree-ccp, tree-dce,
2307         tree-dominator-opts, tree-copyrename, tree-dse,
2308         tree-combine-temps, tree-ter, tree-lrs and tree-ch.
2309         (wrapup_global_declarations): Don't output nested inlined functions.
2310         (general_init): Call init_tree_optimization_passes.
2311         (process_options): Sorry for -ftree-based-profiling plus
2312         -ftest-coverage or -fprofile-values.
2313         * toplev.h (init_tree_optimization_passes,
2314         flag_tree_based_profiling): Declare.
2315         * tracer.c (tail_duplicate): Use cfghooks for bb duplication.
2316         * tree-alias-ander.c: New file.
2317         * tree-alias-ander.h: New file.
2318         * tree-alias-common.c: New file.
2319         * tree-alias-common.h: New file.
2320         * tree-alias-type.c: New file.
2321         * tree-alias-type.h: New file.
2322         * tree-browser.c: New file.
2323         * tree-browser.def: New file.
2324         * tree-cfg.c: New file.
2325         * tree-complex.c: New file.
2326         * tree-dfa.c: New file.
2327         * tree-dump.c (dump_enable_all): New.
2328         (dequeue_and_dump): Do not handle EXPR_WITH_FILE_LOCATION.
2329         (dump_node): Remove const from field suffix and swtch.
2330         (dump_files): Add null entry, .generic, .nested, .vcg,
2331         .xml and a match-all entry.
2332         (extra_dump_files, extra_dump_files_in_use,
2333         extra_dump_files_alloced): Declare
2334         (dump_option_value_info): Add raw, details, stats,
2335         blocks, vops, lineno, uid and all.
2336         (dump_register): New.
2337         (get_dump_file_info): New.
2338         (dump_begin): Call it.
2339         Do nothing for TDI_none.
2340         (dump_begin): Include phase number in dump filename.
2341         (dump_enable_all): New.
2342         (dump_switch_p_1): Split out from dump_switch_p.
2343         (dump_switch_p): Handle extra_dump_files.
2344         Start our scan at TDI_none + 1.
2345         If -fdump-tree-all was given, call dump_enable_all.
2346         * tree-dump.h: Include splay-tree.h.
2347         (dump_function, dump_function_to_file, dump_register):
2348         Declare.
2349         * tree-eh.c: New file.
2350         * tree-flow-inline.h: New file.
2351         * tree-flow.h: New file.
2352         * tree-inline.c: Re-write to handle inlining on GIMPLE.
2353         * tree-inline.h (walk_tree,
2354         walk_tree_without_duplicates): Move to tree.h.
2355         (estimate_num_insns): Declare.
2356         * tree-into-ssa.c: New file.
2357         * tree-iterator.c: New file.
2358         * tree-iterator.h: New file.
2359         * tree-mudflap.c: New file.
2360         * tree-mudflap.h: New file.
2361         * tree-nested.c: New file.
2362         * tree-nomudflap.c: New file.
2363         * tree-nrv.c: New file.
2364         * tree-optimize.c (dump_flags, vars_to_rename,
2365         in_gimple_form, all_passes, pass_gimple,
2366         pass_rebuild_bind, pass_all_optimizations, pass_del_cfg): Declare.
2367         (execute_gimple, execute_rebuild_bind,
2368         gate_all_optimizations, execute_del_cfg,
2369         register_one_dump_file, register_dump_files, dup_pass_1,
2370         init_tree_optimization_passes, execute_todo,
2371         execute_one_pass, execute_pass_list): New.
2372         (clear_decl_rtl): Remove.
2373         (tree_rest_of_compilation): Update to use tree
2374         optimizers.
2375         * tree-outof-ssa.c: New file.
2376         * tree-pass.h: New file.
2377         * tree-phinodes.c: New file.
2378         * tree-pretty-print.c: New file.
2379         * tree-profile.c: New file.
2380         * tree-simple.c: New file.
2381         * tree-simple.h: New file.
2382         * tree-sra.c: New file.
2383         * tree-ssa-alias.c: New file.
2384         * tree-ssa-ccp.c: New file.
2385         * tree-ssa-copy.c: New file.
2386         * tree-ssa-copyrename.c: New file.
2387         * tree-ssa-dce.c: New file.
2388         * tree-ssa-dom.c: New file.
2389         * tree-ssa-dse.c: New file.
2390         * tree-ssa-forwprop.c: New file.
2391         * tree-ssa-live.c: New file.
2392         * tree-ssa-live.h: New file.
2393         * tree-ssa-loop.c: New file.
2394         * tree-ssa-operands.c: New file.
2395         * tree-ssa-operands.h: New file.
2396         * tree-ssa-phiopt.c: New file.
2397         * tree-ssa-pre.c: New file.
2398         * tree-ssa.c: New file.
2399         * tree-ssanames.c: New file.
2400         * tree-tailcall.c: New file.
2401         * tree.c: Include tree-iterator.h, basic-block.h and
2402         tree-flow.h.
2403         (tree_node_kind): Add phi_nodes and ssa names.
2404         (tree_size): Handle PHI_NODE, EPHI_NODE, SSA_NAME,
2405         EUSE_NODE, EKILL_NODE, EEXIT_NODE and STATEMENT_LIST.
2406         (make_node_stat): Handle PHI_NODE and SSA_NAME.
2407         <'c'> Set TREE_INVARIANT.
2408         (copy_node_stat): Abort if trying to copy a
2409         STATEMENT_LIST.
2410         Clear TREE_VISITED.
2411         Clear annotation field.
2412         (build_constructor): Copy TREE_INVARIANT from vals.
2413         Don't clear TREE_CONSTANT.
2414         (expr_first, expr_last, expr_length): Remove.
2415         (staticp): Pass unknown component references to the language.
2416         (save_expr): Check TREE_INVARIANT instead of TREE_CONSTANT.
2417         (skip_simple_arithmetic): Likewise.
2418         (stabilize_reference_1): Likewise.
2419         (tree_node_structure): Handle PHI_NODE, EPHI_NODE,
2420         EUSE_NODE, EKILL_NODE, EEXIT_NODE, SSA_NAME and
2421         STATEMENT_LIST.
2422         (lhd_unsave_expr_now): Remove.
2423         (unsafe_for_reeval): Handle LABEL_EXPR and BIND_EXPR.
2424         (recompute_tree_invarant_for_addr_expr): New.
2425         (build1_stat): Clear EXPR_LOCUS and TREE_BLOCK.
2426         Call recompute_tree_invarant_for_addr_expr.
2427         Set TREE_INVARIANT accordingly.
2428         (build2_stat): Don't handle CALL_EXPR.
2429         (build3_stat): Don't call build2_stat for CALL_EXPRs.
2430         (build_expr_wfl): Remove.
2431         (annotate_with_file_line, annotate_with_locus): New.
2432         (simple_cst_equal): Call simple_cst_list_equal to compare
2433         CONSTRUCTOR_ELTS pointers.
2434         (iterative_hash_expr): Don't hash types associated
2435         with conversions.  Instead hash on the signedness of the
2436         toplevel object and the operand of the conversion.
2437         (dump_tree_statistics): Call ssanames_print_statistics
2438         and phinodes_print_statistics.
2439         (ephi_node_elt_check_failed, phi_node_elt_check_failed,
2440         add_var_to_bind_expr, build_empty_stmt, is_essa_node,
2441         needs_to_live_in_memory): New.
2442         (initializer_zerop): Handle VECTOR_CST.  Don't check
2443         AGGREGATE_TYPE_P for CONSTRUCTOR.
2444         * tree.def (FILTER_EXPR, CASE_LABEL_EXPR, RESX_EXPR,
2445         SSA_NAME, EUSE_NODE, EKILL_NODE, EPHI_NODE, EEXIT_NODE,
2446         PHI_NODE, CATCH_EXPR, EH_FILTER_EXPR, STATEMENT_LIST): Define.
2447         (GOTO_SUBROUTINE_EXPR): Change type to 's'.
2448         (CALL_EXPR): Add another operand.
2449         (EXPR_WITH_FILE_LOCATION): Remove.
2450         (SWITCH_EXPR): Add another operand.
2451         * tree.h: Update various comments.
2452         (union tree_ann_d): Forward declare.
2453         (struct tree_common): Add fields nowarning_flag,
2454         invariant_flag and visited.
2455         (EREF_NODE_CHECK, EPHI_NODE_ELT_CHECK,
2456         PHI_NODE_ELT_CHECK, EREF_NODE_CHECK, PHI_NODE_ELT_CHECK,
2457         EPHI_NODE_ELT_CHECK, TREE_BLOCK,
2458         STRIP_USELESS_TYPE_CONVERSION, CALL_EXPR_TAILCALL,
2459         TREE_NO_WARNING, FORCED_LABEL, TREE_INVARIANT,
2460         IS_EMPTY_STMT, EXPR_LOCUS, SET_EXPR_LOCUS, EXPR_FILENAME,
2461         EXPR_LINENO, EXPR_LOCATION, EXPR_HAS_LOCATION,
2462         EXIT_EXPR_COND, SWITCH_COND, SWITCH_BODY, SWITCH_LABELS,
2463         CASE_LOW, CASE_HIGH, CASE_LABEL, BIND_EXPR_VARS,
2464         BIND_EXPR_BODY, BIND_EXPR_BLOCK, GOTO_DESTINATION,
2465         ASM_STRING, ASM_OUTPUTS, ASM_INPUTS, ASM_CLOBBERS,
2466         ASM_INPUT_P, ASM_VOLATILE_P, COND_EXPR_COND,
2467         COND_EXPR_THEN, COND_EXPR_ELSE, LABEL_EXPR_LABEL,
2468         CATCH_TYPES, CATCH_BODY, EH_FILTER_TYPES,
2469         EH_FILTER_FAILURE, EH_FILTER_MUST_NOT_THROW,
2470         SSA_NAME_VAR, SSA_NAME_DEF_STMT, SSA_NAME_VERSION,
2471         SSA_NAME_OCCURS_IN_ABNORMAL_PHI, SSA_NAME_IN_FREE_LIST,
2472         PHI_RESULT, PHI_REWRITTEN, PHI_NUM_ARGS,
2473         PHI_ARG_CAPACITY, PHI_ARG_ELT, PHI_ARG_EDGE, PHI_ARG_DEF,
2474         EREF_PROCESSED, EREF_ID, EREF_NAME, EREF_STMT,
2475         EREF_RELOAD, EREF_SAVE, EREF_CLASS, EREF_INJURED,
2476         EREF_TEMP, EUSE_DEF, EUSE_PHIOP, EUSE_INSERTED,
2477         EUSE_LVAL, EPHI_NUM_ARGS, EPHI_ARG_CAPACITY,
2478         EPHI_ARG_ELT, EPHI_ARG_EDGE, EPHI_ARG_PRED, EPHI_ARG_DEF,
2479         EPHI_ARG_INJURED, EPHI_ARG_DELAYED_RENAME,
2480         EPHI_ARG_HAS_REAL_USE, EPHI_ARG_STOPS,
2481         EPHI_ARG_PROCESSED2, EPHI_IDENTITY, EPHI_IDENT_INJURED,
2482         EPHI_REP_OCCUR_KNOWN, EPHI_IDENTICAL_TO, EPHI_DOWNSAFE,
2483         EPHI_CANT_BE_AVAIL, EPHI_DEAD, EPHI_USES, EPHI_STOPS,
2484         TREE_VISITED, SSA_VAR_P, DECL_NUM_STMTS,
2485         DECL_HARD_REGISTER, DECL_PTA_ALIASVAR, LABEL_DECL_UID,
2486         DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL,
2487         STATEMENT_LIST_HEAD, STATEMENT_LIST_TAIL, TDF_RAW,
2488         TDF_DETAILS, TDF_STATS, TDF_BLOCKS, TDF_VOPS, TDF_LINENO,
2489         TDF_UID,): Define.
2490         (TREE_NO_UNUSED_WARNING, EXPR_WFL_EMIT_LINE_NOTE,
2491         EXPR_WFL_NODE, EXPR_WFL_FILENAME_NODE, EXPR_WFL_FILENAME,
2492         EXPR_WFL_LINECOL, EXPR_WFL_LINENO, EXPR_WFL_COLNO,
2493         EXPR_WFL_SET_LINECOL): Remove.
2494         (phi_node_elt_check_failed, ephi_node_elt_check_failed,
2495         make_phi_node, init_phinodes, fini_phinodes,
2496         release_phi_node, phinodes_print_statistics,
2497         init_ssanames, fini_ssanames, make_ssa_name,
2498         release_ssa_name, ssanames_print_statistics,
2499         annotate_with_file_line, build_empty_stmt,
2500         annotate_with_locus, expr_only, categorize_ctor_elements,
2501         count_type_elements, add_var_to_bind_expr, is_essa_node,
2502         expand_stack_alloc, expand_stack_save,
2503         expand_stack_restore, add_case_node, operand_equal_p,
2504         nondestructive_fold_unary_to_constant,
2505         nondestructive_fold_binary_to_constant,
2506         fold_read_from_constant_string, int_const_binop,
2507         strip_float_extensions, simplify_builtin, c_strlen,
2508         recompute_tree_invarant_for_addr_expr,
2509         needs_to_live_in_memory, make_vector,
2510         setjmp_vars_warning, update_alignment_for_field,
2511         expand_asm_expr, asm_op_is_mem_input,
2512         containing_blocks_have_cleanups_or_stack_level,
2513         create_artificial_label, gimplify_function_tree,
2514         get_name, unshare_expr, walk_tree,
2515         walk_tree_without_duplicates, in_gimple_form): Declare.
2516         (struct tree_exp): Add fields locus and block.
2517         (struct tree_ssa_name, struct edge_def, struct
2518         tree_phi_node, struct tree_eref_common, struct
2519         tree_euse_node, struct ephi_arg_d, struct tree_ephi_node,
2520         union alias_var_def, struct tree_statement_list_node,
2521         struct tree_statement_list, enum operand_equal_flag): Declare.
2522         (enum tree_node_structure_enum): Add TS_SSA_NAME,
2523         TS_PHI_NODE, TS_EPHI_NODE, TS_EUSE_NODE, TS_EREF_NODE,
2524         TS_STATEMENT_LIST.
2525         (union tree_node): Add fields ssa_name, phi, eref, ephi,
2526         euse and stmt_list.
2527         (function_cannot_inline_p, uninitialized_vars_warning,
2528         save_for_inline, output_inline_function, all_cases_count,
2529         check_for_full_enumeration_handling,
2530         declare_nonlocal_label): Remove.
2531         (enum tree_dump_index): Add TDI_none, TDI_tu,
2532         TDI_generic, TDI_nested, TDI_vcg, TDI_xml.
2533         * unroll.c (unroll_loop): Don't clear map->inline_target.
2534         * unwind-sjlj.c (uw_install_context): Make a proper static inline
2535         function.
2536         * value-prof.c (value_prof_hooks): New.
2537         (find_values_to_profile): Rename to rtl_find_values_to_profile.
2538         Move rtl-specific bits in from branch_prob.
2539         (value_profile_transformations): Rename to
2540         rtl_value_profile_transformations.
2541         (struct value_prof_hooks): New.
2542         (rtl_value_prof_hooks): New.
2543         (rtl_register_value_prof_hooks): New.
2544         (tree_find_values_to_profile): New stub.
2545         (tree_value_profile_transformations): New stub.
2546         (tree_value_prof_hooks): New stub.
2547         (tree_register_value_prof_hooks): New stub.
2548         (find_values_to_profile): New.
2549         (value_profile_transformations): New.
2550         * value-prof.h: Add multiple inclusion guard.
2551         (struct histogram_value): Change rtx fields to void *.
2552         (rtl_register_value_prof_hooks): New declaration.
2553         (tree_register_value_prof_hooks): New declaration.
2554         (find_values_to_profile): New declaration.
2555         (free_profiled_values): New declaration.
2556         (value_profile_transformations): New declaration.
2557         (struct profile_hooks): New declaration.
2558         (init_branch_prob): Declaration moved from rtl.h.
2559         (branch_prob): Declaration moved from rtl.h.
2560         (end_branch_prob): Declaration mooved from rtl.h.
2561         (tree_register_profile_hooks): New declaration.
2562         (rtl_register_profile_hooks): New declaration.
2563         (tree_profile_hooks): New declaration.
2564         (rtl_profile_hooks): New declaration.
2565         * varasm.c: Include tree-mudflap.h.
2566         (TRAMPOLINE_ALIGNMENT): Remove.
2567         (make_decl_rtl): Call mudflap_enqueue_decl.
2568         (assemble_static_space):
2569         (assemble_trampoline_template): Set and return
2570         TRAMPOLINE_ALIGNMENT.
2571         * varray.c (element): Add GENERIC_PTR_NOGC entry.
2572         Add entry for 'tree *'.
2573         Add entry for struct edge_def *.
2574         (varray_copy): New.
2575         * varray.h (enum varray_data_enum): Add
2576         VARRAY_DATA_GENERIC_NOGC, VARRAY_DATA_EDGE and
2577         VARRAY_DATA_TREE_PTR.
2578         (union varray_data_tag): Corresponding changes.
2579         (VARRAY_GENERIC_PTR_NOGC_INIT, VARRAY_EDGE_INIT,
2580         VARRAY_TREE_PTR_INIT, VARRAY_GENERIC_PTR_NOGC,
2581         VARRAY_EDGE, VARRAY_TREE_PTR,
2582         VARRAY_PUSH_GENERIC_PTR_NOGC, VARRAY_PUSH_EDGE,
2583         VARRAY_PUSH_TREE_PTR, VARRAY_TOP_GENERIC_PTR_NOGC,
2584         VARRAY_TOP_EDGE, VARRAY_TOP_TREE_PTR): Define.
2585
2586         * config/*/*: Various updates for changed macros, tree
2587         codes, etc.  Check ChangeLog.tree-ssa.
2588
2589         * doc/cfg.texi: New file.
2590         * doc/tree-ssa.texi: New file.
2591         * doc/c-tree.texi: Document new codes.
2592         * doc/gccint.texi: Include new files.
2593         * doc/install.texi: Document new features.
2594         * doc/invoke.texi: Document new switches.
2595         * doc/passes.texi: Document new passes.
2596         * doc/rtl.texi: Update changed RTL codes.
2597         * doc/sourcebuild.texi: Update build instructions.
2598         * doc/standards.texi: Document Fortran changes.
2599         * doc/tm.texi: Update.
2600
2601 2004-05-12  Paolo Bonzini  <bonzini@gnu.org>
2602
2603         Replace several arrays with a struct of arrays.
2604         * combine.c (struct reg_stat): New.
2605         (init_reg_last_arrays): Renamed to...
2606         (init_reg_last): ...this.  Callers adjusted.
2607         (reg_stat): New.
2608         (combine_instructions): Allocate it and use it.
2609         (reg_last_death, reg_last_set, reg_last_set_value,
2610         reg_last_set_label, reg_last_set_table_tick,
2611         reg_last_set_invalid, reg_nonzero_bits, reg_sign_bit_copies,
2612         reg_last_set_mode, reg_last_set_nonzero_bits,
2613         reg_last_set_sign_bit_copies): Replace throughout
2614         with items of reg_stat.
2615
2616 2004-05-11  Kaz Kojima  <kkojima@gcc.gnu.org>
2617
2618         PR optimization/15100
2619         * combine.c (distribute_notes): Don't create a dangling
2620         REG_LIBCALL/REG_RETVAL note.
2621
2622 2004-05-11  Aldy Hernandez  <aldyh@redhat.com>
2623
2624         * config/rs6000/spe.md (spe_evneg): Rename to negv2si2.
2625
2626         * config/rs6000/rs6000.c (bdesc_1arg): Change spe_evneg to
2627         negv2si2.
2628
2629 2004-05-11  Aldy Hernandez  <aldyh@redhat.com>
2630
2631         * doc/md.texi (Standard Names): Fix typo in vec_init description.
2632
2633 2004-05-11  Geoffrey Keating  <geoffk@apple.com>
2634
2635         * doc/gty.texi (GTY Options): Clarify example.
2636
2637 2004-05-11  Fariborz Jahanian  <fjahanian@apple.com>
2638
2639         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute):
2640         Add const qualifier to altivec vector type if one is needed.
2641
2642 2004-05-11  Paul Brook  <paul@codesourcery.com>
2643
2644         * flags.h (flag_short_enums): Update comment.
2645         * opts.c (decode_options): Set flag_short_enums to 2.
2646         * toplev.c (flag_short_enums): Update comment.
2647         (process_options): Call default_short_enums target hook.
2648
2649 2004-05-11  Andrew Pinski  <pinskia@gcc.gnu.org>
2650
2651         PR target/14063
2652         * config/rs6000/altivec.md (altivec_dssall):
2653         Change to unspec_volatile.
2654         (altivec_dss): Likewise.
2655
2656 2004-05-10  Aldy Hernandez  <aldyh@redhat.com>
2657
2658         * config/rs6000/altivec.md ("one_cmplv16qi2"): Change vnot to
2659         vnor.
2660         ("one_cmplv8hi2"): Same.
2661         ("one_cmplv4si2"): Same.
2662
2663 2004-05-10  Kaz Kojima  <kkojima@gcc.gnu.org>
2664
2665         PR target/15130
2666         * config/sh/sh-protos.h (sh_expand_epilogue): Change prototype.
2667         * config/sh/sh.c (output_stack_adjust): Take the sibcall epilogue
2668         into account.  Compute the correct number of general registers
2669         for the return value.  Generate a special push/pop sequence when
2670         failing to get a temporary register for non SHmedia epilogue.
2671         (sh_expand_epilogue): Add an argument to show whether it's for
2672         sibcall or not.  Set the 3rd argument of output_stack_adjust to
2673         -1 if needed.
2674         (sh_need_epilogue): Call sh_expand_epilogue with 0.
2675         * config/sh/sh.md (sibcall_epilogue): Call sh_expand_epilogue
2676         with 1.
2677         (epilogue): Call sh_expand_epilogue with 0.
2678
2679 2004-05-10  Andrew Pinski  <pinskia@physics.uc.edu>
2680
2681         * gcse.c (eliminate_partially_redundant_loads): Instead of returning early,
2682         goto a cleanup label.  After the cleanup, free the allocated memory.
2683
2684 2004-05-10  Ziemowit Laski  <zlaski@apple.com>
2685
2686         * config/rs6000/altivec.h (vec_sld): Add overloads for
2687         argument/return types of 'vector bool int', 'vector bool short'
2688         and 'vector bool char'.
2689
2690 2004-05-10  Zack Weinberg  <zack@codesourcery.com>
2691
2692         * c-decl.c (store_parm_decls_newstyle): Correct test for a
2693         nested function.
2694
2695 2004-05-10  Richard Sandiford  <rsandifo@redhat.com>
2696
2697         * read-rtl.c (read_rtx): Allow 's' and 'T' strings to be omitted,
2698         treating missing ones as "".
2699         * config/mips/mips.md: Remove constraints from match_operands and
2700         match_scratches if they appear in define_expands (except reload*),
2701         define_peephole2s, define_splits or attribute specifications.
2702         * config/mips/7000.md, config/mips/sb1.md: Remove match_operand
2703         constraint strings.
2704
2705 2004-05-10  Alan Modra  <amodra@bigpond.net.au>
2706
2707         * config/rs6000/rs6000.c (function_arg_boundary): Always align
2708         AltiVec vectors.
2709         (function_arg_advance): Pass TARGET_32BIT -mabi=no-altivec AltiVec
2710         vectors by refererence.  Align the same for TARGET_64BIT to a 16
2711         byte boundary.  Remove useless code.  Add function comment.
2712         (function_arg): Similarly.  Move gpr rs6000_mixed_function_arg
2713         call to where it belongs.
2714         (function_arg_partial_nregs): Return true for all TARGET_32BIT
2715         -mabi=no-altivec AltiVec vectors.  Fix debug output.
2716         (rs6000_va_arg): Adjust for AltiVec change.
2717
2718 2004-05-10  Paul Brook  <paul@codesourcery.com>
2719
2720         * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
2721         * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
2722         (TARGET_DOUBLEWORD_ALIGN): Use it.
2723         (WCHAR_TYPE): Define.
2724         (WCHAR_SIZE_TYPE): Define.
2725         (SIZE_TYPE): Define.
2726
2727 2004-05-10  Alan Modra  <amodra@bigpond.net.au>
2728
2729         * config/rs6000/rs6000.c (function_arg_boundary): Align for ABI_V4
2730         when size is 8 bytes.
2731         (function_arg_advance): Account for stack space used by AltiVec
2732         args when -mabi=altivec.  Simplify alignment calculations.  For
2733         ABI_V4, pass AltiVec vectors by reference when -mabi=no-altivec.
2734         (function_arg): Similarly.
2735         (function_arg_pass_by_reference): True for ABI_V4 AltiVec when
2736         not AltiVec ABI.
2737         (rs6000_va_arg): Correct fp arg test.  Adjust for AltiVec change.
2738         Correct alignment, and align before testing reg count.  Remove
2739         TREE_THIS_VOLATILE from reg.  Don't emit unused labels.
2740         (rs6000_complex_function_value): Check TARGET_HARD_FLOAT and
2741         TARGET_FPRS here..
2742         (rs6000_function_value): .. not here before call.
2743
2744 2004-05-09  Aldy Hernandez  <aldyh@redhat.com>
2745
2746         * config/rs6000/spe.md ("tstsflt_gpr"): Fix typo in unspec.
2747
2748 2004-05-09  Zack Weinberg  <zack@codesourcery.com>
2749
2750         PR 15007
2751         * c-decl.c (current_file_decl): Rename to all_translation_units,
2752         adjust comment.
2753         (pop_scope): If popping file_scope, construct a
2754         TRANSLATION_UNIT_DECL and make it the context of all the
2755         symbols in the scope.
2756         (push_file_scope): Don't construct a TRANSLATION_UNIT_DECL here.
2757         (pushdecl): Clarify comment.  Do not set DECL_CONTEXT of
2758         anything to current_file_decl.
2759         (pushdecl_top_level): Likewise.
2760         (store_parm_decls_newstyle): Adjust check for nested function.
2761         (c_write_global_declarations): Update for renamed variable.
2762
2763 2004-05-09  Aldy Hernandez  <aldyh@redhat.com>
2764
2765         * config/rs6000/rs6000-protos.h
2766         (rs6000_conditional_register_usage): Protoize.
2767
2768         * config/rs6000/rs6000.c (rs6000_conditional_register_usage): New.
2769
2770         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Call
2771         function.
2772
2773 2004-05-08  Roger Sayle  <roger@eyesopen.com>
2774
2775         * fold-const.c (fold_div_compare): New function to optimize X/C1 op C2
2776         where op is a comparison operator and C1 and C2 are integer constants
2777         into a range check.
2778         (fold): Call fold_div_compare.
2779
2780 2004-05-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
2781
2782         * doc/install.texi (sparc-sun-solaris2*): Document bootstrap
2783         problems with earlier versions of the GNU compiler.
2784
2785 2004-05-07  Aldy Hernandez  <aldyh@redhat.com>
2786
2787         * config/rs6000/rs6000-protos.h (rs6000_hard_regno_mode_ok_p):
2788         Declare.
2789
2790         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok_p): New.
2791         (rs6000_hard_regno_mode_ok): New.
2792         (rs6000_init_hard_regno_mode_ok): New.
2793         (rs6000_override_options): Call rs6000_init_hard_regno_mode_ok.
2794
2795         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Use precomputed
2796         result.
2797
2798 2004-05-07  Ziemowit Laski  <zlaski@apple.com>
2799
2800         * config/rs6000/altivec.h (vector, pixel, bool): Do not
2801         define as macros #ifdef __APPLE_ALTIVEC__.
2802
2803 2004-05-07  Fariborz Jahanian  <fjahanian@apple.com>
2804
2805         * config/rs6000/rs6000.c (rs6000_mixed_function_arg):
2806         Generate appropriate parallels for vector arguments
2807         passed to vararg functions. (function_arg): make the call
2808         to rs6000_mixed_function_arg for vector args as needed.
2809
2810 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
2811
2812         * config/mips/mips.c (mips_va_arg): Fix calculation of osize for
2813         EABI_FLOAT_VARARGS_P.
2814
2815 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
2816
2817         * config/mips/mips.h (ISA_HAS_BRANCHLIKELY): Remove TARGET_MIPS5500.
2818         * config/mips/mips.c (override_options): Disable branch likely
2819         instructions if TUNE_MIPS5500.
2820
2821 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
2822
2823         * config/mips/mips.c (override_options): Allow the hi and lo registers
2824         to store any integral mode, not just MODE_INTs.
2825
2826 2004-05-07  Paul Brook  <paul@codesourcery.com>
2827
2828         * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
2829         * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
2830         (TARGET_DOUBLEWORD_ALIGN): Use it.
2831         (WCHAR_TYPE): Define.
2832         (WCHAR_SIZE_TYPE): Define.
2833         (SIZE_TYPE): Define.
2834
2835 2004-05-07  Uros Bizjak  <uros@kss-loka.si>
2836
2837         * config/i386/i386.c (ix86_emit_fp_unordered_jump): Use
2838         testb $4, %ah insn instead of sahf insn if !TARGET_USE_SAHF.
2839
2840 2004-05-07  Andrew Pinski  <pinskia@physics.uc.edu>
2841
2842         * loop-doloop.c (doloop_valid_p): Make sure that body
2843         gets freed.
2844
2845 2004-05-07  Eric Botcazou  <ebotcazou@act-europe.fr>
2846
2847         * config/sparc/sparc-protos.h (sparc_skip_caller_unimp): New
2848         declaration.
2849         * config/sparc/sparc.c (SKIP_CALLERS_UNIMP_P): Delete.
2850         (sparc_skip_caller_unimp): New global variable.
2851         (sparc_function_epilogue): Set 'sparc_skip_caller_unimp'.
2852         Use it instead of SKIP_CALLERS_UNIMP_P.
2853         * config/sparc/sparc.md (call expander): Add sanity check.
2854         (call_address_struct_value_sp32): Re-sync with expander.
2855         (call_symbolic_struct_value_sp32): Likewise.
2856         (return peepholes): Use 'sparc_skip_caller_unimp' instead
2857         of custom predicate.
2858
2859 2004-05-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
2860
2861         PR c++/14962
2862         * c-pragma.c (handle_pragma_redefine_extname): Only change
2863         the assembler name of FUNCTION_DECLs and VAR_DECLs.
2864
2865 2004-05-07  Uros Bizjak  <uros@kss-loka.si>
2866
2867         * optabs.h (enum optab_index): Add new OTI_log1p.
2868         (log1p_optab): Define corresponding macro.
2869         * optabs.c (init_optabs): Initialize log1p_optab.
2870         * genopinit.c (optabs): Implement log1p_optab using log1p?f2
2871         patterns.
2872         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG1P{,F,L}
2873         using log1p_optab.
2874         (expand_builtin): Expand BUILT_IN_LOG1P{,F,L} using
2875         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
2876
2877         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FYL2XP1.
2878
2879         * config/i386/i386.c (ix86_emit_i387_log1p): New function.
2880         * config/i386/i386-protos.h (ix86_emit_i387_log1p):
2881         Prototype here.
2882         * config/i386/i386.md (UNSPEC_FYL2XP1): New unspec to represent
2883         x87's fyl2xp1 instruction.
2884         (*fyl2x_xf3): Rename insn definition to fyl2x_xf3.
2885         (fyl2xp1_xf3): New pattern to implement fyl2xp1 x87 instruction.
2886         (log1psf2, log1pdf2, log1pxf2): New expanders to implement log1pf,
2887         log1p  and log1pl built-ins as inline x87 intrinsics.
2888
2889 2004-05-07  Loren James Rittle  <ljrittle@acm.org>
2890
2891         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Proper redefinition.
2892         * config/arm/freebsd.h: Likewise.
2893         * config/ia64/freebsd.h: Likewise.
2894         * config/sparc/freebsd.h: Likewise.
2895
2896 2004-05-07  Hans-Peter Nilsson  <hp@axis.com>
2897
2898         PR optimization/15296
2899         * reorg.c (fill_simple_delay_slots): Use next_real_insn when
2900         getting last consecutive label at a branch.
2901         (relax_delay_slots): Similar, near top of loop.
2902
2903 2004-05-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2904
2905         PR target/15202
2906         * pa.md (movdi, movsi, movhi, movqi): Support move from shift amount
2907         register to general register.
2908
2909 2004-05-07  Alan Modra  <amodra@bigpond.net.au>
2910
2911         * config/rs6000/rs6000.h (STACK_BOUNDARY): Use 128 bit for either
2912         TARGET_ALTIVEC or TARGET_ALTIVEC_ABI.
2913         * config/rs6000/sysv4.h (ABI_STACK_BOUNDARY): Likewise.
2914         (STACK_BOUNDARY): Delete.
2915
2916 2004-05-06  Stuart Hastings  <stuart@apple.com>
2917
2918         * gcc/doc/invoke.texi: Restore -fgcse-after-reload doc from 1.421,
2919         mistakenly clobbered by 1.423.
2920
2921 2004-05-06  Richard Sandiford  <rsandifo@redhat.com>
2922
2923         * doc/invoke.texi: Document -mvr4130-align.
2924         * config/mips/mips.h (MASK_VR4130_ALIGN, TARGET_VR4130_ALIGN)
2925         (TUNE_MIPS4120, TUNE_MIPS4130): New macros.
2926         (TUNE_MACC_CHAINS): Include TUNE_MIPS4120 and TUNE_MIPS4130.
2927         (TARGET_SWITCHES): Add -mvr4130-align and -mno-vr4130-align.
2928         * config/mips/mips.md: Include sched-int.h.
2929         (USEFUL_INSN_P, SEQ_BEGIN, SEQ_END, FOR_EACH_SUBINSN): New macros.
2930         (mips_rtx_costs): Set integer multiplication costs for TUNE_MIPS4130.
2931         (override_options): Enable -mvr4130-align at -O3 and above.
2932         (mips_sim_insn): New variable.
2933         (mips_sim): New structure.
2934         (mips_sim_reset, mips_sim_init, mips_sim_next_cycle, mips_sim_wait_reg)
2935         (mips_sim_wait_regs_2, mips_sim_wait_regs_1, mips_sim_wait_regs)
2936         (mips_sim_wait_units, mips_sim_wait_insn, mips_sim_record_set)
2937         (mips_sim_issue_insn, mips_sim_issue_nop, mips_sim_finish_insn)
2938         (vr4130_avoid_branch_rt_conflict, vr4130_align_insns): New functions.
2939         (mips_reorg): Call vr4130_align_insns.
2940         (vr4130_last_insn): New variable.
2941         (vr4130_true_reg_dependence_p_1, vr4130_true_reg_dependence_p)
2942         (vr4130_swap_insns_p, vr4130_reorder): New functions.
2943         (mips_sched_reorder, mips_variable_issue): Hook in vr4130 code.
2944         (mips_issue_rate): Return 2 for PROCESSOR_R4130.
2945         (mips_use_dfa_pipeline_interface): Return true for the same.
2946         * config/mips/4130.md: New file.
2947         * config/mips/mips.md: Include it.  Add a peephole2 to convert
2948         "mult;mflo" into "mtlo;macc".
2949         (*macc, *umul_acc_di, *smul_acc_di): Use $1 rather than $0 as the
2950         target of maccs.
2951         (*msac_using_macc): New pattern.
2952
2953 2004-05-06  Richard Sandiford  <rsandifo@redhat.com>
2954
2955         * config/mips/5500.md (ir_vr55_store): Set latency to 0.
2956         (ir_vr55_hilo): Split into...
2957         (ir_vr55_mfhilo, ir_vr55_mthilo): ...these new reservations.
2958         (ir_vr55_imul_si, ir_vr55_imadd): Change latency to 5.
2959         (ir_vr55_imul_di): Change latency to 9.  Reserve vr55_mac for 4 cycles.
2960         Add various multiplication bypasses.
2961         * config/mips/mips.c (mips_rtx_costs): Adjust VR5500 costs for integer
2962         multiplication.
2963
2964 2004-05-06  Uros Bizjak  <uros@kss-loka.si>
2965
2966         * config/i386/i386.md (*fscalexf4): Correct insn "mode"
2967         attribute to "XF".
2968
2969 2004-05-05  Uros Bizjak  <uros@kss-loka.si>
2970
2971         * optabs.h (enum optab_index): Add new OTI_fmod and OTI_drem.
2972         (fmod_optab, drem_optab): Define corresponding macros.
2973         * optabs.c (init_optabs): Initialize fmod_optab and drem_optab.
2974         * genopinit.c (optabs): Implement fmod_optab and drem_optab
2975         using fmod?f3 and drem?f3 patterns.
2976         * builtins.c (expand_builtin_mathfn_2): Handle BUILT_IN_FMOD{,F,L}
2977         using fmod_optab and BUILT_IN_DREM{,F,L} using drem_optab.
2978         (expand_builtin): Expand BUILT_IN_FMOD{,F,L} and
2979         BUILT_IN_DREM{,F,L} using expand_builtin_mathfn_2 if
2980         flag_unsafe_math_optimizations is set.
2981
2982         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FPREM_F,
2983         UNSPEC_FPREM_U, UNSPEC_FPREM1_F and UNSPEC_FPREM1_U.
2984
2985         * config/i386/i386.c (ix86_emit_fp_unordered_jump): New function.
2986         * config/i386/i386-protos.h (ix86_emit_fp_unordered_jump):
2987         Prototype here.
2988         * config/i386/i386.md (UNSPEC_FPREM_F, UNSPEC_FPREM_U,
2989         UNSPEC_FPREM1_F, UNSPEC_FPREM1_U): New unspecs to represent x87's
2990         fprem and fprem1 instructions.
2991         (*x86_fnstsw_1): Change input parameter to (reg:CCFP 18).
2992         Rename insn definition to x86_fnstsw_1.
2993         (fpremxf4, fprem1xf4): New patterns to implement fprem and fprem1
2994         x87 instructions.
2995         (fmodsf3, fmoddf3, fmodxf3): New expanders to implement fmodf, fmod
2996         and fmodl built-ins as inline x87 intrinsics.
2997         (dremsf3, dremdf3, dremxf3): New expanders to implement dremf, drem
2998         and dreml built-ins as inline x87 intrinsics.
2999
3000 2004-05-05  Roger Sayle  <roger@eyesopen.com>
3001
3002         * reload1.c (inherit_piecemeal_p): Mark parameters potentially unused.
3003
3004 2004-05-05  Ian Lance Taylor  <ian@wasabisystems.com>
3005
3006         PR driver/9822
3007         * doc/invoke.texi (Spec Files): Remove documentation of %c.
3008
3009 2004-05-05  Chris Demetriou  <cgd@broadcom.com>
3010
3011         * config/mips/mips.md: Update the msub define_split for new mflo/mfhi
3012         representation.
3013
3014 2004-05-06  Paul Brook  <paul@codesourcery.com>
3015
3016         * config/arm/arm-protots.h (vfp_mem_operand): Rename ...
3017         (arm_coproc_mem_operand): ... To this.
3018         * config/arm/arm.c (arm_legitimate_address_p): Allow ldrd modes.
3019         (arm_legitimate_index_p): Ditto.
3020         (vfp_mem_operand): Rename ...
3021         (arm_coproc_mem_operand): ... To this.  Handle writeback modes.
3022         (vfp_secondary_reload_class): Use it.
3023         (output_move_double): Use doubleword load/store instructions.
3024         (arm_hard_regno_mode_ok): Only allow even reg pairs for ldrd.
3025         * config/arm/arm.h (TARGET_LDRD): Define.
3026         (EXTRA_CONSTRAINT_STR_ARM): Add 'Uy'.
3027         * config/gcc/arm/arm.md (arm_movdi): Allow all valid memory operands.
3028         New splitter for invalid doubleword loads.
3029         * config/arm/iwmmxt.md (iwmmxt_arm_movdi): Use Uy constraint.
3030         * config/arm/vfp.md (arm_movdi_vfp): Allow all valid memory operands.
3031         * doc/md.texi: Document Uy constraint.
3032
3033 2004-05-05  Jan Hubicka  <jh@suse.cz>
3034
3035         PR opt/14980
3036         * cgraphunit.c (cgraph_remove_unreachable_nodes): Deal properly with
3037         inline clones.
3038
3039 2004-05-05  H.J. Lu  <hongjiu.lu@intel.com>
3040
3041         PR target/15290
3042         * config/i386/i386.c (ix86_split_to_parts): Use real_to_target
3043         instead of REAL_VALUE_TO_TARGET_LONG_DOUBLE.
3044
3045 2004-05-05  Mike Stump  <mrs@apple.com>
3046
3047         * config/darwin-c.c (add_framework): Copy the directory name as it
3048         can be freed later.  Also, ensure we always allocate enough room
3049         for the cached framework information.
3050         (find_subframework_header): Keep track of the directory where the
3051         subframework header was found.
3052         (framework_construct_pathname): Speed up by not trying to re-add a
3053         framework.
3054         * cppfiles.c (search_path_exhausted): Arrange for the missing
3055         header callback to be able to set the directory where the header
3056         was found.
3057         (cpp_get_dir): Add.
3058         * cpplib.h (missing_header_cb): Add a parameter.
3059         (cpp_get_dir): Add.
3060
3061 2004-05-03  Mike Stump  <mrs@apple.com>
3062
3063         * doc/invoke.texi (Directory Options): Document -iquote.
3064         * doc/cpp.texi: Likewise.
3065         * doc/cppopts.texi: Likewise.
3066         * c-opts.c (c_common_missing_argument): Add -iquote processing.
3067         (c_common_handle_option): Likewise.
3068         * c.opt (iquote): Add.
3069         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add -iquote.
3070         * c-incpath.c (merge_include_chains): Update comment to use -iquote.
3071
3072         * c-opts.c (case OPT_I): Deprecate -I- support.
3073         * doc/invoke.texi: Likewise.
3074         * doc/cpp.texi: Likewise.
3075         * doc/cppopts.texi: Likewise.
3076
3077 2004-05-05  Steven Bosscher  <stevenb@suse.de>
3078
3079         * basic-block.h (free_basic_block_vars): Update prototype.
3080         * flow.c (free_basic_block_vars): Remove the keep_head_end_p
3081         argument.
3082         (life_analysis): Update call.
3083         * ifcvt.c (if_convert): Likewise.
3084         * sibcall.c (optimize_sibling_and_tail_recursive_call): Likewise.
3085         * passes.c (rest_of_handle_final): Likewise.
3086         (rest_of_compilation): Likewise.
3087         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
3088
3089         * emit-rtl.c (next_real_insn): Use INSN_P.
3090         (prev_real_insn): Likewise.
3091
3092 2004-05-05  Eric Christopher  <echristo@redhat.com>
3093
3094         * config/mips/mips.md: Update the madd define_split for new mflo/mfhi
3095         representation.
3096
3097 2004-05-05  Paolo Bonzini  <bonzini@gnu.org>
3098
3099         * config/rs6000/rs6000.c (build_opaque_vector_type):
3100         New function.
3101         (rs6000_init_builtins): Use it.
3102
3103 2004-05-04  Bernard Giroud  <bgiroud2@free.fr>
3104
3105         * gcc/gcc/vmsdbgout.c (vms_func_node, vms_func_ref): New.
3106         (func_table): Change type from char ** to vms_func_ref.
3107         (write_rtnbeg):  Update to reflect func_table change.  Use
3108         fde->funcdef_number instead of rtnnum in output.
3109         (write_rtnend, vmxdbgout_begin_function, vmsdbgout_init): Likewise.
3110
3111 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
3112             Richard Henderson  <rth@redhat.com>
3113
3114         PR target/14899
3115
3116         * c-common.c (vector_types_convertible_p): New function.
3117         * c-typeck.c (comptypes): Recurse on vector types.
3118         (convert_for_assignment): Use vector_types_convertible_p.
3119         (digest_init): Use vector_types_convertible_p to check
3120         validness of constant vector initializers; otherwise treat
3121         them as scalars.
3122         * tree.c (make_or_reuse_type): New.
3123         (build_common_tree_nodes): Use it.
3124         * cp/call.c (standard_conversion): Likewise.
3125         * cp/typeck.c (comptypes): Recurse on vector types.
3126         (convert_for_assignment): Use vector_types_convertible_p.
3127
3128 2004-05-04  Chris Demetriou  <cgd@broadcom.com>
3129
3130         * config/mips/mips.c (override_options): Default to no
3131         generation of branch-likely operations when tuning for
3132         CPUs where they tend to have a negative performance impact
3133         (e.g., SB-1).
3134
3135 2004-05-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3136
3137         * expr.c (store_constructor_field): Don't call store_constructor
3138         if bitsize is not a multiple of a byte.
3139
3140 2004-05-04  Richard Sandiford  <rsandifo@redhat.com>
3141
3142         * reload1.c (inherit_piecemeal_p): New function.
3143         (emit_reload_insns): When reloading a group of hard registers, use
3144         inherit_piecemeal_p to decide whether the values of individual hard
3145         registers can be inherited.
3146
3147 2004-05-04  H.J. Lu  <hongjiu.lu@intel.com>
3148
3149         * config/ia64/t-ia64 (LIB2ADDEH): Remove gthr-gnat.c.
3150         * config/s390/t-tpf (LIB2ADDEHDEP): Likewise.
3151         * config/t-linux (LIB2ADDEHDEP): Likewise.
3152
3153 2004-05-04  Paul Brook  <paul@codesourcery.com>
3154
3155         * config/arm/crti.asm: Push an even number of registers.
3156         * config/arm/crtn.asm: And restore them.  Load via sp.
3157
3158 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
3159
3160         * ggc-zone.c (ggc_alloc_zone_1): Add MEM_STAT_DECL parameter.
3161         Collect overhead information.
3162         (ggc_alloc_stat): New name of ggc_alloc.  Add MEM_STAT_DECL
3163         parameter and pass it through.
3164         (ggc_alloc_typed_stat): New name of ggc_alloc_typed.  Add
3165         MEM_STAT_DECL parameter and pass it through.
3166         (ggc_alloc_zone_stat): New name of ggc_alloc_zone.  Add
3167         MEM_STAT_DECL parameter and pass it through.
3168
3169 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
3170
3171         * config/rs6000/rs6000-protos.h: Protoize rs6000_hard_regno_nregs.
3172
3173         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs): New.
3174
3175         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Call
3176         rs6000_hard_regno_nregs.
3177
3178 2004-05-03  Eric Christopher  <echristo@redhat.com>
3179
3180         * config/s390/s390.c (s390_emit_prologue): Call unspec tpf
3181         prologue insn instead of setting up call.
3182         (s390_emit_epilogue): Ditto.
3183         * config/s390/s390.md (prologue_tpf, epilogue_tpf): New patterns.
3184         (define_constants): Add numbers for above patterns.
3185
3186 2004-05-03  Eric Christopher  <echristo@redhat.com>
3187
3188         * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Move body...
3189         * config/s390/s390.c (s390_conditional_register_usage): ...here.
3190         * config/s390/s390-protos.h: Prototype.
3191
3192 2004-05-03  Joe Buck <jbuck@welsh-buck.org>
3193
3194         * cppfiles.c (pchf_adder): Eliminate use of |= in d->have_once_only
3195         assignment.
3196
3197 2004-05-03  Eric Christopher  <echristo@redhat.com>
3198
3199         * config/mips/mips.md: Fix branch length attribute definition.
3200
3201 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
3202
3203         * config.gcc: Remove --enable-altivec support.
3204
3205         * config/rs6000/altivec-defs.h: Remove.
3206
3207 2004-05-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3208
3209         * fixinc/inclhack.def (svr4_profil): Don't apply on IRIX 5/6.
3210         * fixinc/fixincl.x: Regenerate.
3211
3212 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
3213
3214         * config/i386/i386.md (*fyl2x_sfxf3, *fyl2x_dfxf3): Remove insn
3215         definition.
3216         (log?f2, log10?f2, log2?f2): Reimplement expanders with
3217         float_truncate insn.
3218         (*fxtractsf3, *fxtractdf3): Remove insn definition.
3219         (logb?f2): Reimplement expanders with float_truncate insn.
3220
3221 2004-05-03  Graham Stott  <graham.stott@btinternet.com>
3222
3223         PR 14718
3224         * dwarf2out.c (dwarf2out_imported_module_or_decl): Use
3225         force_type_die for CONST_DECL.
3226
3227 2004-05-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
3228             Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3229
3230         * config.gcc (sparc64-*-solaris2*, sparcv9-*-solaris2*): Add
3231         tm-dwarf2.h to tm_file.
3232         (sparc-*-solaris2*): Add tm-dwarf2.h to tm_file for Solaris 7+.
3233         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Delete.
3234         (ASM_DEBUG_SPEC): Delete.
3235
3236 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
3237
3238         * optabs.h (enum optab_index): Add new OTI_expm1.
3239         (expm1_optab): Define corresponding macro.
3240         * optabs.c (init_optabs): Initialize expm1_optab.
3241         * genopinit.c (optabs): Implement expm1_optab using expm1?f2
3242         patterns.
3243         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXPM1{,F,L}
3244         using expm1_optab.
3245         (expand_builtin): Expand BUILT_IN_EXPM1{,F,L} using
3246         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
3247
3248         * config/i386/i386.md (expm1df2, expm1sf2, expm1xf2): New expanders
3249         to implement expm1, expm1f and expm1l built-ins as inline x87
3250         intrinsics.
3251
3252 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
3253
3254         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
3255         * config/frv/frv.md (*return_true, *return_false): New patterns.
3256
3257 2004-05-02  Kazu Hirata  <kazu@cs.umass.edu>
3258
3259         * rtl.h (PHI_NODE_P): Remove.
3260
3261 2004-05-02  Eric Botcazou  <ebotcazou@act-europe.fr>
3262
3263         PR middle-end/14988
3264         * function.c (assign_stack_local_1): Use BITS_PER_UNIT alignment
3265         when passed -2 as 'align'.
3266         (put_var_into_stack): Use 'bool' as the type for the three local
3267         predicates.  Adjust calls to put_reg_into_stack.
3268         When passed a CONCAT, instruct put_reg_into_stack to use
3269         a consecutive stack slot for the second part.
3270         (put_reg_into_stack): Remove 'promoted_mode' parameter, add
3271         'consecutive_p' parameter.  Turn the three predicates into 'bool'
3272         parameters.  Retrieve the register mode from 'reg'.
3273         When consecutive_p is true, instruct assign_stack_local_1 to use
3274         BITS_PER_UNIT alignment.
3275         (put_addressof_into_stack): Use 'bool' as the type for the two
3276         local predicates. Adjust call to put_reg_into_stack.
3277
3278 2004-05-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3279
3280         * fold-const.c (fold_convert_const, fold): Add missing
3281         FIX_ROUND_EXPR case.
3282
3283 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
3284
3285         * configure.ac (FLEX, BISON): Only use tools from the build tree
3286         if build equals host.
3287         * configure: Rebuilt.
3288
3289         * config/frv/frv-protos.h (frv_expand_epilogue,
3290         frv_expand_fdpic_call): Add bool argument.
3291         * config/frv/frv.c (frv_function_ok_for_sibcall): New.
3292         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to it.
3293         (frv_expand_epilogue): Use new argument to decide whether to emit
3294         return instruction or copy the return address to LR.
3295         (frv_expand_fdpic_call): Inline PLT entry when emitting direct
3296         sibcalls.
3297         (sibcall_operand): New.
3298         * config/frv/frv.h (PREDICATE_CODES): call_operand doesn't match
3299         PLUS nor LABEL_REF.  Add sibcall_operand.
3300         * config/frv/frv.md (call, call_value): Pass false to
3301         frv_expand_fdpic_call.
3302         (call_fdpicdi, call_value_fdpicdi): Insert %i0 in calll.
3303         (sibcall, sibcall_internal, sibcall_fdpicdi, sibcall_value,
3304         sibcall_value_internal, sibcall_value_fdpicdi): New.
3305         (return_unsigned_true, return_unsigned_false): New.
3306         (epilogue): Adjust call to frv_expand_epilogue.
3307         (sibcall_epilogue): New.
3308
3309         * config/frv/frv.h (ASM_SPEC): Pass -mno-fdpic as -mnopic.
3310         (CPP_SPEC, CPP_SIMPLE_SPEC): Undefine __FRV_ACC__ and __FRV_FPR__
3311         before redefining them.
3312
3313 2004-05-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3314
3315         * builtins.c (fold_fixed_mathfn): New function.
3316         (fold_builtin_lround, fold_builtin): Use it.
3317
3318 2004-05-01  Jakub Jelinek  <jakub@redhat.com>
3319
3320         * config/sparc/linux64.h (TARGET_DEFAULT): Make 64-bit by default
3321         also for TARGET_CPU_DEFAULT == TARGET_CPU_ultrasparc3.
3322
3323 2004-05-01  Kazu Hirata  <kazu@cs.umass.edu>
3324
3325         * config/cris/cris.h: Revert my "fix comment typos" patch.
3326
3327 2004-05-01  Richard Sandiford  <rsandifo@redhat.com>
3328
3329         * config/mips/mips.h (TUNE_MACC_CHAINS): Fix comment.
3330
3331 2004-05-01  Falk Hueffner  <falk@debian.org>
3332
3333         * config/alpha/alpha.md (builtin_insbl, builtin_inswl,
3334         builtin_insll): Disallow 0 as first input operand.
3335
3336 2004-05-01  Falk Hueffner  <falk@debian.org>
3337
3338         * config/alpha/alpha.c (alpha_rtx_costs): Fix shiftadd costs.
3339
3340 2004-05-01  Ulrich Weigand  <uweigand@de.ibm.com>
3341
3342         PR middle-end/15054
3343         * expr.c (expand_expr_real): Do not call preserve_temp_slots
3344         on a TARGET_EXPR temp.
3345         * function.c (assign_stack_temp_for_type): Set 'keep' flag for
3346         TARGET_EXPR temp slots.
3347
3348 2004-05-01  Paolo Bonzini  <bonzini@gnu.org>
3349
3350         * simplify-rtx.c (simplify_ternary_operation): When
3351         converting an IF_THEN_ELSE to a relational op, return
3352         correct mode.
3353
3354 2004-04-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3355
3356         * builtins.c (fold_builtin_round): Fix comment typo.
3357         (fold_builtin_lround): New function.
3358         (fold_builtin): Use it.
3359
3360 2004-04-20  Andrew Pinski  <pinskia@physics.uc.edu>
3361
3362         PR target/11608
3363         * config/sh/elf.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Update and make it
3364         more like the one in config/dbxelf.h.
3365
3366 2004-04-30  Zack Weinberg  <zack@codesourcery.com>
3367
3368         * tree.h (SET_ARRAY_OR_VECTOR_CHECK): Rename to SET_OR_ARRAY_CHECK
3369         and adjust definition accordingly.
3370         (TYPE_DOMAIN): Allow only SET_TYPE and ARRAY_TYPE.
3371         (TYPE_DEBUG_REPRESENTATION_TYPE): Allow only VECTOR_TYPE.
3372         * expr.c (store_constructor): Do not access TYPE_DOMAIN of a
3373         VECTOR_TYPE.
3374
3375 2004-04-30  Jason Merrill  <jason@redhat.com>
3376
3377         PR c++/14587
3378         * config/i386/winnt.c (associated_type): Look for attributes on
3379         the TYPE_MAIN_VARIANT of *this.
3380         * attribs.c (decl_attributes): If ATTR_FLAG_TYPE_IN_PLACE, also
3381         apply the attributes to the variants.
3382
3383 2004-04-30  Paul Brook  <paul@codesourcery.com>
3384
3385         * config.gcc: Simplify arm --with-{cpu,tune} test.
3386         * config/arm/arm-cores.def: Document whitespace restrictions.
3387
3388 2004-04-30  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3389
3390         PR other/1963
3391         * config/alpha/osf.h (SWITCHES_NEED_SPACES): Define.
3392
3393 2004-04-30  Brian Ford  <ford@vss.fsi.com>
3394             DJ Delorie  <dj@redhat.com>
3395
3396         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
3397         (DWARF2_DEBUGGING_INFO): Define to enable.
3398         (DBX_REGISTER_NUMBER): Define to use the svr4 register map for
3399         DWARF2.
3400         * configure.ac (Target-specific assembler checks)
3401         <i[34567]86-*-[cygwin*|pe|mingw32*]>: New test for .secrel32
3402         relocs.
3403         * configure: Regenerate.
3404         * config.in: Likewise.
3405
3406         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
3407         (ASM_OUPUT_DWARF_OFFSET): Define.
3408
3409 2004-04-29  Andreas Krebbel  <krebbel1@de.ibm.com>
3410
3411         * config/s390/s390-protos.h (s390_emit_epilogue): Parameter added.
3412         (s390_emit_call): New function prototype added.
3413         (s390_tls_get_offset): Function removed.
3414         * config/s390/s390.c (s390_function_ok_for_sibcall,
3415         s390_call_saved_register_used_p): New functions.
3416         (TARGET_FUNCTION_OK_FOR_SIBCALL): Definition of target macro added.
3417         (s390_tls_get_offset): Function merged into s390_emit_tls_call_insn.
3418         (s390_emit_tls_call_insn): New function.
3419         (legitimize_tls_address): Call s390_emit_tls_call_insn instead of
3420         emit_call_insn.
3421         (s390_emit_prologue): Use s390_emit_call instead of emit_call_insn.
3422         (s390_emit_epilogue): Like s390_emit_prologue. Parameter for sibcalls
3423         added.
3424         * config/s390/s390.h (SIBCALL_REGNUM): New macro representing the
3425         register number used to hold the target address for sibcalls.
3426         * config/s390/s390.md ("sibcall", "sibcall_value", "sibcall_epilogue"):
3427         New expanders.
3428         ("*sibcall_br", "*sibcall_brc", "*sibcall_brcl", "*sibcall_value_br",
3429         "*sibcall_value_brc", "*sibcall_value_brcl"): New insns.
3430         ("call_exp", "call_value_exp", "call_value_tls", "call_value_tls_exp"):
3431         Expanders removed.
3432         ("call", "call_value"): Call s390_emit_call to emit the call patterns.
3433         ("*bras", "*brasl", "*bras_r", "*brasl_r", "*bras_tls", "*brasl_tls",
3434         "*basr", "*basr_r", "*basr_tls"): Added constraint: !SIBLING_CALL_P.
3435         ("epilogue"): Changed the call to s390_emit_epilogue to use the
3436         new parameter.
3437
3438 2004-04-30  Kazu Hirata  <kazu@cs.umass.edu>
3439
3440         * bb-reorder.c, c-opts.c, cfglayout.c, cgraph.c, cgraphunit.c,
3441         cppfiles.c, fold-const.c, ggc-zone.c, loop-doloop.c, optabs.c,
3442         reg-stack.c, varasm.c, config/alpha/ev4.md,
3443         config/alpha/ev5.md, config/alpha/ev6.md, config/arm/arm.c,
3444         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.c,
3445         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
3446         config/frv/frv.h, config/frv/frv.md, config/h8300/h8300.c,
3447         config/i386/i386.c, config/i386/i386.md, config/i386/winnt.c,
3448         config/ia64/itanium2.md, config/ip2k/ip2k.c,
3449         config/mips/mips.c, config/mips/mips.h, config/mips/sr71k.md,
3450         config/pa/pa.c, config/s390/s390.c, config/sh/sh.c: Fix
3451         comment typos.
3452
3453 2004-04-30  Paul Brook  <paul@codesourcery.com>
3454
3455         * config.gcc: Default ep9312 to hard-float.
3456         * config/arm/arm-cores.def: Add ARCH field.
3457         * config/arm/arm.c (FL_FOR_ARCH*): Define.
3458         (arm_arch_cirrus): New variable.
3459         (all_cores): Set and use arch.
3460         (all_architectures): Ditto.
3461         (arm_arch_name): New variable.
3462         (arm_override_options): Set it. Use [SUB]TARGET_CPU_DEFAULT.
3463         Set and use arm_arch_cirrus.
3464         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set arch defines.
3465         (enum processor_type): Update ARM_CORE define.
3466         (enum target_cpus): Add.  Replaces TARGET_CPU_* defines.
3467         (CPP_SPEC): Remove %(cpp_cpu_arch).
3468         (CPP_ARCH_DEFAULT_SPEC): Remove.
3469         (CPP_CPU_ARCH_SPEC): Remove.
3470         (EXTRA_SPECS): Don't use CPP_*ARCH*_SPEC.
3471         (FPUTYPE_DEFAULT): Don't define here.
3472
3473 2004-04-30  J"orn Rennecke <joern.rennecke@superh.com>
3474
3475         * flow.c (propagate_one_insn): Call mark_set_regs for stack pointer
3476         updates too.
3477
3478 2004-04-30  Paul Brook  <paul@codesourcery.com>
3479
3480         * arm.c (arm_needs_doubleword_align): Use mode alignment.
3481
3482 2004-04-30  Paolo Bonzini  <bonzini@gnu.org>
3483
3484         * config/altivec/altivec.h [__cplusplus] (vec_subsubs): Rename to
3485         vec_sububs.
3486         [__cplusplus] (vec_subsuhs): Rename to vec_subuhs, without
3487         duplicates.
3488
3489 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
3490
3491         * config/i386/i386.md (atansf2, atandf2, atanxf2): Move near
3492         atan2?f3 expanders.
3493
3494 2004-04-29  Nick Clifton  <nickc@redhat.com>
3495
3496         Bug 14093
3497         * config/sh/sh-protos.h (sh_promote_prototypes): Declare.
3498         * config/sh/sh.c (sh_promote_prototypes): Remove declaration.
3499         Delete static from definition.
3500         * config/sh/sh.h (FUNCTION_VALUE): Add sh_promote_prototypes call.
3501
3502 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
3503
3504         * reg-stack.c (subst_stack_regs_pat): <UNSPEC_SIN, UNSPEC_COS,
3505         UNSPEC_FRNDINT, UNSPEC_F2XM1>: abort() if src1 dies.
3506         <UNSPEC_SINCOS_COS, UNSPEC_TAN_ONE, UNSPEC_XTRACT_FRACT>: Same.
3507         <UNSPEC_SINCOS_SIN, UNSPEC_TAN_TAN, UNSPEC_XTRACT_EXP>: Same.
3508
3509 2004-04-29  Richard Guenther  <richard.guenther@uni-tuebingen.de>
3510
3511         * commom.opt (Wfatal-errors): Add it.
3512         * diagnostic.c (flag_fatal_errors): Define it.
3513         (diagnostic_action_after_output): Check for flag_fatal_errors.
3514         * flags.h (flag_fatal_errors): Declare it.
3515         * opts.c (common_handle_option): Add OPT_Wfatal_errors.
3516         * doc/invoke.texi (Warning Options): Document -Wfatal-errors.
3517
3518 2004-04-30  Josef Zlomek  <zlomekj@suse.cz>
3519
3520         * gcse.c (remove_reachable_equiv_notes): Delete notes also in
3521         blocks which have kill flag set.
3522
3523 2004-04-29  Ben Elliston  <bje@au.ibm.com>
3524
3525         * configure.ac (--with-as): Abort if user-supplied assembler
3526         cannot be executed.
3527         (--with-ld): Likewise for the linker.
3528         * configure: Regenerate.
3529
3530 2004-04-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3531
3532         * convert.c (convert_to_integer): Ensure `long_integer_type_node'
3533         isn't NULL before using it.
3534
3535 2004-04-29  Richard Sandiford  <rsandifo@redhat.com>
3536
3537         PR target/15189
3538         * config/mips/mips.md (load_df_low): Use default length.
3539         (load_df_high, store_df_high): Likewise.
3540
3541 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
3542
3543         * config/mips/mips.md, config/mips/sb1.md,
3544         config/rs6000/rs6000.c: Fix comment typos.
3545
3546 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
3547
3548         * builtins.c, cgraph.c, cgraphunit.c, final.c, fold-const.c:
3549         Fix comment typos.
3550
3551 2004-04-29  Douglas B Rupp  <rupp@gnat.com>
3552
3553         * gcc.c (DELETE_IF_ORDINARY): New macro default definition.
3554         (delete_if_ordinary): Use above macro.
3555         * config/alpha/xm-vms.h (DELETE_IF_ORDINARY): New macro VMS definition.
3556         Update copyright.
3557         * doc/hostconfig.texi (DELETE_IF_ORDINARY): Document new macro.
3558
3559 2004-04-29  Richard Earnshaw  <rearnsha@arm.com>
3560
3561         * c-decl.c (get_parm_info): Use the correct tag keywords when
3562         warning about type declarations in prototypes.
3563
3564 2004-04-29  Paul Brook  <paul@codesourcery.com>
3565
3566         * config.gcc: Pull list of cores from arm-cores.def.
3567
3568 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
3569
3570         * combine.c (combine_simplify_rtx): Adjust call to use
3571         simplify_relational_operation.  Do not use SELECT_CC_MODE
3572         when a comparison already has a MODE_CC mode.
3573
3574 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
3575
3576         (simplify_set): simplify_relational_operation may now
3577         return another relational expression.
3578         * cse.c (fold_rtx): simplify_relational_operation now
3579         takes of computing the comparison mode.
3580         * dojump.c (compare_from_rtx): Use simplify_relational_operation,
3581         remove dead code.
3582         (do_compare_rtx_and_jump): Likewise.
3583         * integrate.c (subst_constants): simplify_relational_operation
3584         may now return another relational expression.
3585         * simplify-rtx.c (simplify_gen_relational): Move most code to
3586         the new simplify_relational_operation and
3587         simplify_relational_operation_1 functions.
3588         (simplify_relational_operation): Rewritten.
3589         (simplify_relational_operation_1): New function.
3590         (simplify_ternary_operation): simplify_relational_operation
3591         may now return another relational expression.
3592         (simplify_rtx): Remove unnecessary temp variable.
3593
3594 2004-04-29  Uros Bizjak  <uros@kss-loka.si>
3595
3596         * reg-stack.c (swap_to_top): New function.
3597         (subst_stack_regs_pat): UNSPEC_FPATAN, UNSPEC_FYL2X: Use
3598         swap_to_top().
3599         (subst_stack_regs_pat): UNSPEC_FSCALE: Remove.
3600         (subst_stack_regs_pat): Handle UNSPEC_FSCALE_FRACT and
3601         UNSPEC_FSCALE_EXP.
3602
3603         * config/i386/i386.md (UNSPEC_FSCALE): Remove.
3604         (*fscale_sfxf3, *fscale_dfxf3, *fscale_xf3): Remove insn pattern.
3605         (UNSPEC_FSCALE_FRACT, UNSPEC_FSCALE_EXP): New unspecs to represent
3606         x87's fscale insn.
3607         (*fscalexf4: Define new insn pattern to implement x87 fscale insn.
3608         (exp?f2, exp10?f2, exp2?f2): Use *fscalexf4 and float_truncate
3609         patterns.
3610
3611 2004-04-28  Serge Belyshev  <1319@bot.ru>
3612
3613         PR 14944
3614         * coverage.c (read_counts_file): Fix usage of warning () call.
3615         * pretty-print.c (pp_base_format_text): Fix typo in the comment.
3616
3617 2004-04-28  Ben Elliston  <bje@au.ibm.com>
3618
3619         * doc/invoke.texi (Objective-C Dialect Options): Don't prefix
3620         options with "-" in the option index.
3621         (SPARC Options): Likewise.
3622         (M32R/D Options): Likewise.
3623
3624 2004-04-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3625
3626         * convert.c (convert_to_integer): Convert (long)round -> lround,
3627         etc.
3628
3629 2004-04-28  Andrew Pinski  <pinskia@physics.uc.edu>
3630
3631         * config/rs6000/rs6000.c (registers_ok_for_quad_peep):
3632         Return false if we do not have fp register.
3633         (addrs_ok_for_quad_peep): Rename to ...
3634         (mems_ok_for_quad_peep): this.
3635         Add check for volatile memory.
3636         * config/rs6000/rs6000-protos.h (addrs_ok_for_quad_peep):
3637         Rename to ...
3638         (mems_ok_for_quad_peep): this.
3639         * config/rs6000/rs6000.md: Change peephole's for lfq/stq
3640         to peephole2's.
3641         (lfq_power2): New instruction.
3642         (stfq_power2): Likewise.
3643
3644 2004-04-28  Jan Hubicka  <jh@suse.cz>
3645
3646         PR c/15004
3647         * function.c (do_warn_unused_parameter): Break out form ...
3648         (expand_function_end): ... here; warn only when not using cgraphunit.
3649         * function.h (do_warn_unused_parameter): Declare.
3650         * cgraphunit.c: Include function.h.
3651         (cgraph_finalize_function): Do unused parameter warning.
3652         * Makefile.in (cgraphunit.o): Depend on function.h
3653
3654 2004-04-28  Joseph S. Myers  <jsm@polyomino.org.uk>
3655
3656         * Makefile.in ($(DESTDIR)$(infodir)/%.info): Don't condition
3657         calling install-info on $(DESTDIR)$(infodir)/dir already being
3658         present.
3659
3660 2004-04-28  Paul Brook  <paul@codesourcery.com>
3661
3662         * dwarf2out.c (mem_loc_descriptor): Handle shifts.
3663
3664 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
3665
3666         * gcse.c (find_moveable_store): Do not accept store insns with
3667         REG_EH_REGION note.
3668
3669 2004-04-28  Paul Brook  <paul@codesourcery.com>
3670
3671         * calls.c (precompute_arguments): Remove PROMOTE_FOR_CALL_ONLY.
3672         * function.c (assign_temp): Ditto.
3673         * system.h (PROMOTE_FOR_CALL_ONLY): Poison.
3674
3675 2004-04-28  Paul Brook  <paul@codesourcery.com>
3676
3677         * config/arm/lib1funcs.asm: Recognize armv5tej and armv6.
3678
3679 2004-04-28  Josef Zlomek  <zlomekj@suse.cz>
3680
3681         * var-tracking.c (variable_different_p): Add a parameter
3682         compare_current_location, compare current location of variable parts
3683         if it is true.
3684         (dataflow_set_different_1): Pass compare_current_location == false.
3685         (dataflow_set_different_2): Pass compare_current_location == false.
3686         (emit_notes_for_differences_1): Pass compare_current_location == true.
3687
3688 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
3689
3690         * config/s390/s390.md ("casesi"): Mark jump table access as
3691         non-trapping and unchanging.
3692
3693 2004-04-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3694
3695         PR debug/14829
3696         * dwarf2out.c (reg_number): Rename to dbx_reg_number.  Adjust all
3697         callers.
3698         (multiple_reg_loc_descriptor, reg_loc_descriptor): Use gcc register
3699         number for indexing hard_regno_nregs array.
3700
3701 2004-04-27  Geoffrey Keating  <geoffk@apple.com>
3702
3703         * config/darwin.h (STARTFILE_SPEC): Use %s to find crt2.o.
3704         * config/darwin-crt2.c: Only have contents on __ppc__.
3705
3706 2004-04-27  Bob Wilson  <bob.wilson@acm.org>
3707
3708         * config/xtensa/xtensa.c (call_insn_operand): Check
3709         SYMBOL_REF_EXTERNAL_P in addition to SYMBOL_REF_LOCAL_P.
3710         * config/xtensa/xtensa.h (LEGITIMATE_PIC_OPERAND): Likewise.
3711         * config/xtensa/xtensa.md (call, call_value): Likewise.
3712
3713 2004-04-27  Wu Yongwei  <adah@sh163.net>
3714
3715         * gthr-win32.h (__gthread_mutex_t): Change typedef to new structure.
3716         (__GTHREAD_MUTEX_INIT_DEFAULT): Adjust.
3717         (__gthread_mutex_init_function): Replace CreateMutex with
3718         initialization of custom mutex using CreateSemaphore.
3719         (__gthread_mutex_lock): Use InterlockedIncrement.
3720         (__gthread_mutex_trylock): Use InterlockedCompareExchange.
3721         (__gthread_mutex_unlock): Use InterlockedDecrement and
3722         ReleaseSemaphore to unlock
3723         * config/i386/gthr-win32.c (__gthread_mutex_init_function,
3724         __gthread_mutex_lock, __gthread_mutex_trylock,
3725         __gthread_mutex_unlock): Adjust to match inline versions in
3726         gthr-win32.h.
3727
3728 2004-04-27  Paul Brook  <paul@codesourcery.com>
3729
3730         * config/arm/arm.c (arm_promote_prototypes): New function.
3731         (TARGET_PROMOTE_PROTOTYPES): Use it.
3732
3733 2004-04-27  Paul Brook  <paul@codesourcery.com>
3734
3735         * config/arm/arm.c (arm_expand_epilogue): Count blocks of 4 regs.
3736
3737 2004-04-26  Bernard Giroud  <bgiroud@free.fr>
3738
3739         * config/alpha.c (alpha_end_function): For OpenVMS gas,
3740         correctly output .pdesc directive before .end.
3741
3742 2004-04-26  James E Wilson  <wilson@specifixinc.com>
3743
3744         Bug 14927
3745         * config/ia64/ia64.md (movxf): New local op0.  Handle case where
3746         operands[0] is a SUBREG.  Handle case where operands[1] is a GR reg.
3747
3748 2004-04-26  Zack Weinberg  <zack@codesourcery.com>
3749
3750         * config/ia64/hpux.h: Predefine __STDCPP__ when compiling C++.
3751         * config/pa/pa-hpux10.h: Likewise.
3752         * config/pa/pa-hpux11.h: Likewise.
3753
3754 2004-04-26  Geoffrey Keating  <geoffk@apple.com>
3755
3756         * doc/invoke.texi (Overall Options): Document default for -o
3757         for PCH files.
3758
3759 2004-04-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3760
3761         * builtins.c (expand_builtin_update_setjmp_buf): New function.
3762         (expand_builtin, case BUILT_IN_UPDATE_SETJMP_BUF): New case.
3763         * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): New code.
3764
3765 2004-04-26  Paul Brook  <paul@codesourcery.com>
3766
3767         * config/arm/arm.c (arm_legitimate_index_p): Correct iwmmxt offsets.
3768
3769 2004-04-26  Paul Brook  <paul@codesourcery.com>
3770
3771         * config/arm/arm.c (arm_legitimate_index_p): Correct maverick offsets.
3772
3773 2004-04-25  Roger Sayle  <roger@eyesopen.com>
3774
3775         * fold-const.c (fold): Prefer fold_convert (negate_expr (...)) to
3776         fold (build1 (NEGATE_EXPR, ...)).  Optimize X / -1 as -X and
3777         X % -1 as 0.
3778
3779 2004-04-26  Hans-Peter Nilsson  <hp@bitrange.com>
3780
3781         PR bootstrap/15141
3782         * except.c (connect_post_landing_pads): Delete insns after the
3783         barrier when generating a unwind_resume_libfunc call.
3784
3785 2004-04-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3786
3787         PR/c++ 15119
3788         * tree.c (substitute_placeholder_in_expr, case 4): New case,
3789         for TARGET_EXPR.
3790
3791 2004-04-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3792
3793         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
3794         __gcov_execv, __gcov_execvp, __gcov_execve): Do not declare when
3795         inhibit_libc is defined.
3796
3797 2004-04-25  Richard Sandiford  <rsandifo@redhat.com>
3798
3799         * config/mips/mips-protos.h (mips_linked_macc_p): Declare.
3800         * config/mips/mips.h (TUNE_MACC_CHAINS): New macro.
3801         * config/mips/mips.c (TARGET_SCHED_REORDER): Define.
3802         (TARGET_SCHED_VARIABLE_ISSUE): Define.
3803         (mips_adjust_cost): Move later in file, next to other sched hooks.
3804         (mips_macc_chains_last_hilo): New variable.
3805         (mips_linked_madd_p, mips_macc_chains_record, mips_macc_chains_reorder)
3806         (mips_promote_ready, mips_sched_reorder, mips_variable_issue): New.
3807         * config/mips/mips.md (may_clobber_hilo): New attribute.
3808
3809 2004-04-24  Roger Sayle  <roger@eyesopen.com>
3810             Bruce Korb  <bkorb@gnu.org>
3811
3812         * fixinc/inclhack.def (aix_syswait_2): New fix.
3813         * fixinc/fixincl.x: Regenerate.
3814         * fixinc/tests/base/sys/wait.h: Update for new test.
3815
3816 2004-04-24  Alan Modra  <amodra@bigpond.net.au>
3817
3818         PR target/14960
3819         * config/rs6000/rs6000.c (rs6000_stack_info): Rename total_raw_size
3820         to non_fixed_size, and leave out fixed_size from the sum.
3821         (generate_set_vrsave): Correct clobbers.
3822         (rs6000_emit_epilogue): Test TARGET_ALTIVEC with TARGET_ALTIVEC_SAVE.
3823         (rs6000_function_value): Test TARGET_ALTIVEC and TARGET_ALTIVEC_ABI.
3824         (rs6000_libcall_value): Likewise.
3825         * config/rs6000/rs6000.h (FUNCTION_VALUE_REGNO_P): Likewise.
3826         (FUNCTION_ARG_REGNO_P): Likewise.
3827
3828 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
3829
3830         * expmed.c (expand_mult_highpart_adjust): Do not assume OP1
3831         is a CONST_INT.
3832         (expand_mult_highpart_optab): Call expand_mult_highpart_adjust
3833         with NARROW_OP1 instead of OP1.
3834
3835 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
3836
3837         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __s390__
3838         and __s390x__ hosts.
3839
3840 2004-03-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3841
3842         * Makefile.in (LIBGCOV): Add _gcov_fork, _gcov_execl, _gcov_execlp,
3843         _gcov_execle, _gcov_execv, _gcov_execvp, _gcov_execve.
3844         * builtin-types.def (BT_PID, BT_PTR_CONST_STRING, BT_FN_PID,
3845         BT_FN_INT_CONST_STRING_PTR_CONST_STRING,
3846         BT_FN_INT_CONST_STRING_PTR_CONST_STRING_PTR_CONST_STRING): New.
3847         * builtins.c (expand_builtin_fork_or_exec): New.
3848         (expand_builtin): Call it.
3849         * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP,BUILT_IN_EXECLE,
3850         BUILT_IN_EXECV, BUILT_IN_EXECVP, BUILT_IN_EXECVE, BUILT_IN_FORK): New.
3851         * c-common.c (PID_TYPE): New macro.
3852         (c_common_nodes_and_builtins): Initialize pid_type_node.
3853         * calls.c (special_function_p): Do not handle fork and exec.
3854         (expand_call): Do not handle ECF_FORK_OR_EXEC.
3855         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
3856         __gcov_execv, __gcov_execvp, __gcov_execve): Declare.
3857         * libgcov.c (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
3858         __gcov_execv, __gcov_execvp, __gcov_execve): New.
3859         * tree.h (enum tree_index): Add TI_PID_TYPE.
3860         (pid_type_node): New macro.
3861         (ECF_FORK_OR_EXEC): Removed.
3862
3863 2004-04-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
3864
3865         PR optimization/13985
3866         * cfgloopmanip.c (fix_loop_placements): New prototype.
3867         Call fix_bb_placements on the preheader of loops that have
3868         been reparented.
3869         (remove_path): Adjust call to fix_loop_placements.
3870
3871 2004-04-23  Andrew Pinski  <pinskia@physics.uc.edu>
3872
3873         * config/darwin7.h: New file.
3874         * config.gcc (*-*-darwin*): Add darwin7.h if the
3875         version is greater than 6.
3876         * config/darwin.h (TARGET_C99_FUNCTIONS): Define.
3877         (MATH_LIBRARY): Wrap in ifdefs.
3878
3879 2004-04-23  Daniel Jacobowitz  <drow@mvista.com>
3880
3881         * config/arm/arm.c (arm_output_epilogue): Reverse the order of
3882         loading iWMMXt registers with a frame pointer.  Use post-increment
3883         without a frame pointer.
3884         (arm_expand_prologue): Reverse the order of saving iWMMXt registers.
3885
3886 2004-04-23  Paolo Bonzini  <bonzini@gnu.org>
3887
3888         * doc/invoke.texi (Optimize Options): Refer to "unit-at-a-time
3889         mode" rather than "-funit-at-a-time" since -O2 enables it
3890         without requiring -f* options.  Refer to -fprofile-generate and
3891         -fprofile-use correctly.  Move -funit-at-a-time among options
3892         enabled by -O.  Add information about unit-at-a-time caveats.
3893
3894 2004-04-22  Per Bothner  <per@bothner.com>
3895
3896         * line-map.h (struct line_maps):  New field highest_line.
3897         (linemap_position_for_column):  Make non-inline function.
3898         (LINEMAP_POSITION_FOR_COLUMN):  New macro.
3899         * line-map.c (linemap_init):  Clear highest_line field.
3900         (linemap_add):  Set highest_line field.
3901         (linemap_line_start):  Minor optimization - use highest_line field.
3902         Reduce maximum column hint to 10000.  Update highest_line field.
3903         (linemap_position_for_column):  Moved from line-map.h.  Optimize a bit.
3904         * cpphash.h (struct cpp_reader):  Remove line field - instead use
3905         line_table->highest_line.
3906         (saved_line):  Remove unused field.
3907         (CPP_INCREMENT_FILE):  Don't do linemap_lookup - just use newest map.
3908         Use  line_table's highest_line field instead of cpp_reader's line.
3909         * cpplib.c (start_directive):  Likewise use highest_line field.
3910         (do_line, do_linemarker):  Likewise just use newest map.
3911         (_cpp_do_file_change):  Don't need to set cpp_reader's line field.
3912         * cpperror.c (cpp_error):  Likewise use highest_line field.
3913         * cppfiles.c (open_file_failed:  Likewise.
3914         (cpp_make_system_header):  Likewise use newest map and highest_line.
3915         * cppinit.c (cpp_create_reader):  Don't initialize removed field.
3916         * cpplex.c (_cpp_process_line_notes, _cpp_skip_block_comment,
3917         skip_line_comment, skip_whitespace, _cpp_get_fresh_line,
3918         _cpp_lex_direct):  Likewise use highest_line.
3919         (_cpp_lex_direct):  Use new LINEMAP_POSITION_FOR_COLUMN macro.
3920         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use highest_line,
3921         and use newest map.
3922         * cpppch.c (cpp_read_state):  Don't save+restore cpp_reader's line.
3923         * cpptrad.c (_cpp_overlay_buffer):  Don't save cpp_reader's line.
3924         (copy_comment, _cpp_scan_out_logical_line):  Likewise use highest_line.
3925
3926 2004-04-23  Alan Modra  <amodra@bigpond.net.au>
3927
3928         PR bootstrap/14992
3929         * gcc.c (init_gcc_specs): Test USE_LD_AS_NEEDED, not HAVE_LD_AS_NEEDED.
3930         * config/linux.h (USE_LD_AS_NEEDED): Define.
3931         * gcc/config/alpha/linux.h (USE_LD_AS_NEEDED): Define.
3932         * gcc/config/arm/linux-elf.h (USE_LD_AS_NEEDED): Define.
3933         * gcc/config/rs6000/linux.h (USE_LD_AS_NEEDED): Define.
3934         * gcc/config/rs6000/linux64.h (USE_LD_AS_NEEDED): Define.
3935         * gcc/config/sh/linux.h (USE_LD_AS_NEEDED): Define.
3936         * gcc/config/sparc/linux.h (USE_LD_AS_NEEDED): Define.
3937         * gcc/config/sparc/linux64.h (USE_LD_AS_NEEDED): Define.
3938
3939 2004-04-22  Per Bothner  <per@bothner.com>
3940
3941         * cppinit.c (cpp_read_main_file):  Return NULL rather than false.
3942         Fixes PR preprocessor/15067.
3943
3944 2004-04-23  Andreas Schwab  <schwab@suse.de>
3945
3946         * config/ia64/ia64intrin.h: Add intermediate cast to void * to
3947         avoid aliasing warning.
3948
3949 2004-04-22  Jan Hubicka  <jh@suse.cz>
3950             Mostafa Hagog <mustafa@il.ibm.com>
3951
3952       * cfgloopmanip.c (scale_bbs_frequencies): Use RDIV macro
3953       * cfgloopanal.c (expected_loop_iterations): Change the return value
3954
3955 2004-04-22  Jakub Jelinek  <jakub@redhat.com>
3956
3957         * cselib.h (struct elt_loc_list): Remove canon_loc field.
3958         * cselib.c (new_elt_loc_list): Remove canon_loc initialization.
3959         (cselib_invalidate_mem): Remove all canon_loc and canon_x
3960         traces.
3961
3962 2004-04-22  Josef Zlomek  <zlomekj@suse.cz>
3963
3964         Revert
3965         2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
3966
3967                 * var-tracking.c (variable_part_different_p): Variable parts
3968                 differ when the most recent locations differ.
3969
3970 2004-04-22  Richard Sandiford  <rsandifo@redhat.com>
3971
3972         * doc/invoke.texi: Remove the MIPS -membedded-pic option.
3973         * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): Delete.
3974         (embedded_pic_offset): Delete.
3975         * config/mips/mips.h (MASK_EMBEDDED_PIC): Delete.  Shuffle other
3976         MASK_* constants.
3977         (TARGET_EMBEDDED_PIC): Delete.
3978         (TARGET_SWITCHES): Remove -m{no-,}embedded-pic.
3979         (ASM_SPEC): Remove -membedded-pic.
3980         (ASM_OUTPUT_ADDR_DIFF_ELT): Remove embedded-pic handling.
3981         (ASM_OUTPUT_CASE_LABEL): Likewise.
3982         * config/mips/vxworks.h (ASM_SPEC): Remove -membedded-pic.
3983         * config/mips/windiss.h (ASM_SPEC): Likewise.
3984         * config/mips/mips.c (struct machine_function): Remove
3985         embedded_pic_fnaddr_rtx.
3986         (TARGET_ENCODE_SECTION_INFO): Remove override.
3987         (embedded_pic_fnaddr_reg, embedded_pic_offset): Delete.
3988         (override_options): Remove -membedded-pic handling.
3989         (print_operand): Remove handling of '%S'.
3990         (mips_select_section: Remove -membedded-pic handling.
3991         (mips_encode_section_info): Delete.
3992         (mips_output_conditional_branch): Remove mention of -membedded-pic.
3993         * config/mips/mips.md (define_attr length, movsi, movdi, jump): Remove
3994         -membedded-pic handling.
3995         (casesi, casesi_internal, casesi_internal_di, get_fnaddr): Delete.
3996
3997 2004-04-22  Alan Modra  <amodra@bigpond.net.au>
3998
3999         * var-tracking.c (frame_base_decl): Remove useless GTY.
4000
4001 2004-04-21  Aldy Hernandez  <aldyh@redhat.com>
4002
4003         * config/rs6000/rs6000.c (rs6000_override_options): Error when
4004         user wants altivec and e500 instructions.
4005
4006 2004-04-21  H.J. Lu  <hongjiu.lu@intel.com>
4007
4008         PR target/14813
4009         * config/ia64/crtend.asm: Move pointer to __do_global_ctors_aux
4010         in .init_array section to ...
4011         * config/ia64/crtbegin.asm: Here.
4012
4013         * config/ia64/crtend.asm: Mark __do_global_ctors_aux global
4014         and hidden if HAVE_INITFINI_ARRAY is defined.
4015
4016 2004-04-21  James E Wilson  <wilson@specifixinc.com>
4017
4018         * config/mips/mips-protos.h (fp_register_operand, lo_operand): Declare.
4019         * config/mips/mips.c (mips_multipass_dfa_lookahead): Declare.
4020         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): New.
4021         (fp_register_operand, lo_operand): New.
4022         (mips_rtx_costs): Add TUNE_SB1 support.
4023         (mips_issue_rate): Add comment.  Add PROCESSOR_SB1 support.
4024         (mips_use_dfa_pipeline_interface): Add PROCESSOR_SB1 support.
4025         (mips_multipass_dfa_lookahead): New.
4026         * config/mips/mips.h (MASK_FP_EXCEPTIONS, TARGET_FP_EXCEPTIONS,
4027         TUNE_SB1): New.
4028         (TARGET_SWITCHES): Add -mfp-exceptions support.
4029         (TARGET_FP_EXCEPTIONS_DEFAULT): New.
4030         (BRANCH_COST): Fix whitespace.
4031         * config/mips/mips.md: Include sb1.md.
4032         * config/mips/sb1.md: New file.
4033         * doc/invoke.texi: Document -mfp-exceptions.
4034
4035         * Makefile.in (fixinc.sh): Don't set or export WARN_CFLAGS.  Fix
4036         comment.
4037         * fixinc/Makefile.in (FL_LIST): Don't mention WARN_CFLAGS.
4038         (fixincl.o-warn): Delete.
4039
4040 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
4041
4042         * config/rs6000/rs6000 (print_operand) ['z']:
4043         Change ifdef of TARGET_MACHO to if TARGET_MACHO.
4044
4045 2004-04-21 Daniel Jacobowitz  <drow@mvista.com>
4046
4047         * config.gcc: Support --with-arch=iwmmxt for ARM.
4048
4049 2004-04-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4050
4051         * expmed.c (expand_mult_highpart_optab): Use narrower version of OP1
4052         in two more places; remove unneeded force_reg
4053
4054 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
4055
4056         * config/rs6000/rs6000.c (symbol_ref_operand): Remove hack
4057         for TARGET_MACHO.
4058         (print_operand): For TARGET_MACHO check to see if we need a stub
4059         and output one if we need it.
4060
4061         PR debug/15033
4062         * dwarf2out.c (rtl_for_decl_location): Check for NULL
4063         rtl.
4064
4065 2004-04-20  James E Wilson  <wilson@specifixinc.com>
4066
4067         * config/ia64/ia64.md (call_value_nogp): Add constraints for op0.
4068         (vall_value_gp): Likewise.
4069
4070 2004-04-20  DJ Delorie  <dj@redhat.com>
4071
4072         * dwarf2out.c (rtl_for_decl_location): Adjust rtl for byte
4073         variables stored in word registers, then in memory.
4074
4075 2004-04-20  Eric Christopher  <echristo@redhat.com>
4076
4077         * cp/parser.c (cp_parser_declaration): Move translate
4078         up before tokens are lexed.
4079
4080 2004-04-20  Uros Bizjak  <uros@kss-loka.si>
4081
4082         * optabs.h (enum optab_index): Add new OTI_asin and OTI_acos.
4083         (asin_optab, acos_optab): Define corresponding macros.
4084         * optabs.c (init_optabs): Initialize asin_optab and acos_optab.
4085         * genopinit.c (optabs): Implement asin_optab and acos_optab
4086         using asin?f2 and acos?f2 patterns.
4087         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_ASIN{,F,L}
4088         using asin_optab, and BUILT_IN_ACOS{,F,L} using acos_optab.
4089         (expand_builtin): Expand BUILT_IN_ASIN{,F,L} and BUILT_IN_ACOS{,F,L}
4090         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
4091
4092         * config/i386/i386.md (asindf2, asinsf2, asinxf2, acosdf2,
4093         acossf2, acosxf2): New expanders to implement asin, asinf, asinl,
4094         acos, acosf and acosl built-ins as inline x87 intrinsics.
4095
4096 2004-04-20  Paul Brook  <paul@codesourcery.com>
4097
4098         * config/arm/arm.c (arm_legitimate_address_p): Use rtx_equal_p.
4099
4100 2004-04-20  Paul Brook  <paul@codesourcery.com>
4101
4102         * config/arm/arm.c (arm_expand_prologue): Fix size calculation.
4103
4104 2004-04-20  Paolo Bonzini  <bonzini@gnu.org>
4105
4106         Revert part of 2004-04-17 change that moved -frename-registers
4107         to -O1.  -frename-registers is buggy.
4108
4109         * toplev.c (flag_rename_registers): Initialize to 0.
4110         * doc/invoke.texi (Optimize options): Move -frename-registers
4111         to "Not triggered by any -O level" section.  Adjust commentary
4112         accordingly.
4113
4114 2004-04-20  Anil Paranjpe <anilp1@kpitcummins.com>
4115
4116         * toplev.c (compile_file): Move targetm.asm_out.file_end call to end.
4117
4118 2004-04-20  Richard Sandiford  <rsandifo@redhat.com>
4119
4120         * config/mips/mips.c (mips_legitimize_move): Generate special patterns
4121         for mflo and mfhi instructions.
4122         (mips_output_move): Remove mflo and mfhi handling.
4123         * config/mips/mips.md (UNSPEC_MFHILO): New unspec.
4124         (*mulsidi3_64bit): Update for new mfhi/mflo representation.
4125         Likewise various define_peephole2s.
4126         (*movdi_32bit, *movdi_64bit, *movsi_internal): Merge x<-J and x<-d
4127         alternatives.
4128         (*movdi_64bit, *movdi_64bit_mips16, *mov[shq]i_internal)
4129         (*mov[shq]i_mips16): Remove mflo and mfhi alternatives.
4130         (mfhilo_di, mfhilo_si): New patterns.
4131
4132 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
4133
4134         * function.c (assign_parms): Force
4135         MEM_EXPR (DECL_INCOMING_RTL (parm)) == parm.
4136
4137 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
4138
4139         * var-tracking.c (variable_part_different_p): Variable parts differ
4140         when the most recent locations differ.
4141
4142 2004-04-19  James E Wilson  <wilson@specifixinc.com>
4143
4144         * rtl.h (reg_set_last): Delete declaration.
4145         * rtlanal.c (reg_set_last): Delete.
4146
4147 2004-04-19  Roger Sayle  <roger@eyesopen.com>
4148
4149         * fold-const.c (fold_convert): Make function extern/public.
4150         * tree.h (fold_convert): Prototype here.
4151         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
4152         expand_builtin_strrchr, expand_builtin_strpbrk,
4153         expand_builtin_mempcpy, expand_builtin_bcopy,
4154         expand_builtin_bzero, expand_builtin_memcmp,
4155         expand_builtin_strcmp, expand_builtin_strncmp,
4156         stabilize_va_list, expand_builtin_sprintf,
4157         fold_trunc_transparent_mathfn, fold_builtin_logarithm,
4158         fold_builtin_exponent, fold_builtin_mempcpy,
4159         fold_builtin_strcpy, fold_builtin_strcmp, fold_builtin_strncmp,
4160         fold_builtin_signbit, fold_builtin_isdigit, fold_builtin): Prefer
4161         fold_convert to "convert" or "fold (build1 (NOP_EXPR, ...))".
4162
4163 2004-04-19  Aldy Hernandez  <aldyh@redhat.com>
4164
4165         * config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): New constant.
4166         (move_from_CR_gt_bit): New.
4167         (cceq_ior_compare): Name previously unnamed pattern.  Disable for
4168         E500.
4169         (cceq_rev_compare): Name previously unnamed pattern.  Allow for
4170         E500.
4171
4172         * config/rs6000/spe.md (cmpsfeq_gpr): Rewrite as unspec.
4173         (tstsfeq_gpr): Same.
4174         (cmpsfgt_gpr): Same.
4175         (tstsfgt_gpr): Same.
4176         (cmpsflt_gpr): Same.
4177         (tstsflt_gpr): Same.
4178         (e500_cceq_ior_compare): New.
4179         (e500_flip_gt_bit): New.
4180
4181         * config/rs6000/rs6000.c (ccr_bit): Remove E500 specific code.
4182         (print_operand): Add 'c' and 'D'.
4183         (rs6000_generate_compare): Rewrite to generate correct rtl.
4184         (rs6000_emit_sCOND): Handle E500.
4185         (output_cbranch): Adjust for changes in rs6000_generate_compare.
4186         (output_e500_flip_gt_bit): New.
4187
4188         * config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit):
4189         Protoize.
4190
4191 2004-04-19  Eric Christopher  <echristo@redhat.com>
4192
4193         * config/mips/mips.h (DWARF2_ADDR_SIZE): New.
4194
4195 2004-04-19  David Edelsohn  <edelsohn@gnu.org>
4196
4197         * doc/install.texi (*-ibm-aix*): Add AIX 5.1 assembler and archiver
4198         fix information.
4199
4200 2004-04-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4201
4202         * doc/install.texi (Specific, mips-sgi-irix5): Fix IRIX 5.3 IDO
4203         download URL.
4204
4205 2004-04-19  Daniel Jacobowitz  <drow@mvista.com>
4206
4207         * stor-layout.c (layout_decl): Check DECL_PACKED before calling
4208         ADJUST_FIELD_ALIGN.  Check maximum_field_alignment after.
4209
4210 2004-04-19  Andrew PInski  <pinskia@physics.uc.edu>
4211
4212         * builtins.c (fold_builtin_cabs): Remove fndecl parameter.
4213         (fold_builtin): Update caller to match.
4214
4215         PR bootstrap/15009
4216         * bb-reorder.c (fix_up_fall_thru_edges): Init cond_jump.
4217
4218         PR bootstrap/14999
4219         * builtins.c (fold_builtin_cabs): Mark fndecl as unused.
4220
4221 2004-04-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4222
4223         * varasm.c (compare_constant, case VIEW_CONVERT_EXPR): Add case.
4224
4225         * expmed.c (expand_mult_highpart_adjust): Make OP1 valid for MODE.
4226         (expand_mult_highpart_optab): Likewise.
4227         (expand_mult_highpart): Make OP1 valid for WIDER_MODE, not MODE.
4228
4229 2004-04-19  Paul Brook  <paul@codesourcery.com>
4230
4231         * config/arm/arm.md (fixuns_truncsfsi2, fixuns_truncdfsi2,
4232         floatunssisf2, floatunssidf2): New patterns.
4233
4234 2004-04-18  Mark Mitchell  <mark@codesourcery.com>
4235
4236         PR other/14918
4237         * doc/invoke.texi (-fprofile-generate): Document requirement to
4238         use -fprofile-generate when linking.
4239
4240         * doc/extend.texi (Strong Using): Warn users against using this
4241         feature.
4242
4243 2004-04-18  Richard Sandiford  <rsandifo@redhat.com>
4244
4245         * config/mips/mips-protos.h (m16_usym8_4, m16_usym5_4): Delete.
4246         * config/mips/mips.h (mips_entry, mips_string_length): Delete.
4247         (CONSTANT_POOL_BEFORE_FUNCTION, ASM_OUTPUT_POOL_EPILOGUE): Undefine.
4248         * config/mips/mips.c (struct mips16_constant): Renamed from struct
4249         constant.  Propogate change throughout file.
4250         (struct machine_function): Remove insns_len.
4251         (mips_string_length, mips16_strings, string_constants): Delete.
4252         (mips_classify_symbol): Return SYMBOL_CONSTANT_POOL for LABEL_REFs
4253         when generating mips16 code.  Remove special mips16 treatment of
4254         string constants.
4255         (mips_symbolic_constant_p): Allow mips16 constant pool accesses
4256         to have the form LABEL+CONSTANT.
4257         (mips_symbolic_address_p): Fix comment.
4258         (m16_usym8_4, m16_usym5_4): Delete.
4259         (mips_output_function_epilogue): Remove mips16 string handling.
4260         (mips_output_mi_thunk): Call mips16_lay_out_constants.
4261         (mips_select_section, mips_encode_section_info): Remove mips16
4262         string handling.
4263         (struct mips16_constant_pool): New.
4264         (add_constant): Take a mips16_constant_pool structure.  Keep pool
4265         sorted into order of ascending mode size.  Keep track of the highest
4266         possible start address, taking padding and the masking of the base PC
4267         value into account.
4268         (dump_constants_1): New function, split out from dump_constants.
4269         Handle vector constants.  Use gen_consttable_{int,float} rather than
4270         separate functions for each mode.
4271         (dump_constants): Simplify.  Use GET_MODE_ALIGNMENT.  Use gen_align
4272         rather than separate functions for each alignment.
4273         (mips_find_symbol): Delete.
4274         (mips16_insn_length): New function, split out from
4275         mips16_lay_out_constants.
4276         (mips16_rewrite_pool_refs): New function.
4277         (mips16_lay_out_constants): Rework. Remove string handling.
4278         Always create an inline constant pool.
4279         * config/mips/mips.md (UNSPEC_CONSTTABLE_INT, UNSPEC_CONSTTABLE_FLOAT)
4280         (UNSPEC_ALIGN): New constants.
4281         (UNSPEC_CONSTTABLE_[QHSD]I, UNSPEC_CONSTTABLE_[SD]F): Delete.
4282         (UNSPEC_ALIGN_[248]): Delete.
4283         (consttable_int, consttable_float, align): New patterns.
4284         (consttable_[qhsd]i, consttable_[sd]f, align_[248]): Delete.
4285
4286 2004-04-17  Aldy Hernandez  <aldyh@redhat.com>
4287
4288         * config/rs6000/altivec.h (vec_any_numeric): Correct typo in
4289         __unn_args_eq.
4290
4291 2004-04-17  Alan Modra  <amodra@bigpond.net.au>
4292
4293         PR target/14715
4294         * config/rs6000/rs6000.c (rs6000_stack_info): Make parm_size agree
4295         with STARTING_FRAME_OFFSET.
4296
4297 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
4298
4299         * config/mips/mips.h (PREDICATE_CODES): Add macc_msac_operand.
4300         * config/mips/mips.c (macc_msac_operand): New function.
4301         * config/mips/mips.md (*msac): Move after *macc.
4302         (*msac2): New.  Generalize macc-related peepholes so that they apply
4303         to msac too.
4304
4305 2004-04-17  Paolo Bonzini  <bonzini@gnu.org>
4306
4307         * opts.c (decode_options): Do not enable flag_rename_registers
4308         and flag_web at -O3.
4309         * toplev.c (flag_rename_registers): Initialize
4310         flag_rename_registers and flag_web to
4311         AUTODETECT_FLAG_VAR_TRACKING.
4312         (default_debug_hooks): New global.
4313         (process_options): Initialize default_debug_hooks.  Warn if
4314         -fvar-tracking specified but not supported by the current
4315         debug format.  Do not run var tracking at -O0 or if not
4316         supported by the current debug format, even if
4317         -fvar-tracking was given.  If -fno-rename-registers
4318         is not specified, always run register renaming if var
4319         tracking is supported by the default debugging information
4320         format for the target, and we are at -O1 or higher; similarly
4321         for -fweb, but only at -O2 or higher.
4322         * doc/invoke.texi (Optimize Options): Document this.
4323
4324 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
4325
4326         * configure.ac (gcc_cv_ld_as_needed): Use AC_CACHE_CHECK.
4327         * configure: Regenerate.
4328
4329 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
4330
4331         * gcc.c (used_arg): Check whether an option has been removed.
4332
4333 2004-04-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4334
4335         * config.gcc (i[34567]86-*-solaris2*): Default to DWARF-2
4336         debugging on Solaris 7 and up.
4337
4338 2004-04-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4339
4340         * doc/install.texi (Specific, mips-sgi-irix5): Reflect working
4341         IRIX 5 port.
4342         Remove -save-temps workaround, handled automatically.
4343         Require GNU binutils 2.15 for debugging.
4344         Remove SGI make warnings since GNU make is now required.
4345         (Specific, mips-sgi-irix6): Some markup fixes.
4346         Describe MIPSpro C problems and workarounds.
4347         Mention working O32 ABI support.
4348         Recommend GNU as 2.15 for O32 with debugging.
4349         Remove description of fixed structure pass/return bug.
4350
4351 2004-04-16  DJ Delorie  <dj@redhat.com>
4352
4353         * sdbout.c (sdbout_one_type): Use TYPE_VALUES for enums, not
4354         TYPE_FIELDS.
4355         (sdbout_finish): Don't free deferred_global_decls; it's GC'd.
4356
4357 2004-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4358
4359         * pa.md: Remove unnecessary declarations for asm_out_file.
4360
4361         * pa64-regs.h (DBX_REGISTER_NUMBER): Simplify and correct mapping of
4362         SAR register.  Fix comment.
4363         (ADDITIONAL_REGISTER_NAMES): Correct register number of SAR register
4364         (%cr11).
4365
4366         * pa64-hpux.h (LIB_SPEC): Fix library specification used with GNU ld.
4367
4368 2004-04-16  Nick Clifton  <nickc@redhat.com>
4369
4370         * config/arm/arm.c (arm_override_options): Revert previous patch.
4371         * config/arm/t-xscale-elf: Disable iwmmxt multilibs until they can
4372         be safely built.
4373
4374 2004-04-16  Kazuhiro Inaoka <inaoka dot kazuhiro at renesas dot com>
4375
4376         * config/m32r/m32r.h (BIG_ENDIAN_BIT): Deleted to fix endian
4377         bug.
4378         (TARGET_LITTLE_ENDIAN, TARGET_BIG_ENDIAN,
4379         TARGET_DEFAULT): Changed. Ditto.
4380         (LITTLE_ENDIAN_BIT, TARGET_CPU_DEFAULT,
4381         TARGET_ENDIAN_DEFAULT): Added. Ditto.
4382         * config/m32r/little.h (TARGET_LITTLE_ENDIAN): Deleted.
4383         (TARGET_ENDIAN_DEFAULT): Added.
4384
4385 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4386
4387         * builtins.def (BUILT_IN_ISDIGIT, BUILT_IN_ISXDIGIT): Mark with
4388         ATTR_CONST_NOTHROW_LIST.
4389
4390 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4391
4392         PR/middle-end 14915
4393         * builtins.c (expand_builtin_signbit): Test BYTES_BIG_ENDIAN, not
4394         BITS_BIG_ENDIAN.
4395
4396 2004-04-15  Pat Haugen  <pthaugen@us.ibm.com>
4397
4398         * ra-debug.c (ra_print_rtx): Add break's to case legs.
4399
4400 2004-04-14  James E Wilson  <wilson@specifixinc.com>
4401
4402         * Makefile.in (fixinc.sh): Set WARN_CFLAGS to empty string.
4403
4404 2004-04-14  Nathanael Nerode  <neroden@gcc.gnu.org>
4405
4406         * libada-mk.in: New file.
4407         * configure.ac: Create libada-mk from libada-mk.in.
4408         * configure: Regenerate.
4409
4410 2004-04-14  Uros Bizjak  <uros@kss-loka.si>
4411
4412         * optabs.h (enum optab_index): Add new OTI_logb and OTI_ilogb.
4413         (logb_optab, ilogb_optab): Define corresponding macros.
4414         * optabs.c (init_optabs): Initialize logb_optab and ilogb_optab.
4415         * genopinit.c (optabs): Implement logb_optab and ilogb_optab
4416         using logb?f2 and ilogb?i2 patterns.
4417         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOGB{,F,L}
4418         using logb_optab, and BUILT_IN_ILOGB{,F,L} using ilogb_optab.
4419         (expand_builtin): Expand BUILT_IN_LOGB{,F,L} and BUILT_IN_ILOGB{,F,L}
4420         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
4421
4422         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_XTRACT_FRACT
4423         and UNSPEC_XTRACT_EXP.
4424
4425         * config/i386/i386.md (*fxtractdf3, *fxtractsf3, *fxtractxf3): New
4426         patterns to implement fxtract x87 instruction.
4427         (logbdf2, logbsf2, logbxf2, ilogbsi2): New expanders to implement
4428         logb, logbf, logbl, ilogb, ilogbf and ilogbl built-ins as inline x87
4429         intrinsics.
4430         (UNSPEC_XTRACT_FRACT, UNSPEC_XTRACT_EXP): New unspecs to represent
4431         x87's fxtract insn.
4432
4433 2004-04-14  Eric Christopher  <echristo@redhat.com>
4434
4435         * config/mips/t-elf: Enable multilibs by default.
4436
4437 2004-04-14  Andreas Tobler  <a.tobler@schweiz.ch>
4438
4439         * bb-reorder.c (fix_crossing_conditional_branches): Adjust the
4440         previous fix to check HAVE_return at runtime too.
4441
4442 2004-04-14  Nick Clifton  <nickc@redhat.com>
4443
4444         * config/arm/arm.c (arm_override_options): If the user has not
4445         specified an ABI, then default to AAPCS for the iWMMXt processor.
4446         * config/arm/t-xscale-elf: Remove redundant multilib specifications.
4447         * config/arm/t-xscale-coff: Likewise.
4448
4449 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4450
4451         * builtins.c (fold_builtin_isdigit): New.
4452         (fold_builtin): Handle BUILT_IN_ISDIGIT.
4453         * defaults.h: Add TARGET_DIGIT0 and sort.
4454         * doc/tm.texi: Add TARGET_BS and TARGET_DIGIT0.
4455
4456 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4457
4458         * builtins.c (fold_builtin_cabs, fold_builtin): Use
4459         `mathfn_built_in' to determine the new builtin.
4460         * fold-const.c (fold): Likewise.
4461
4462 2004-04-14  Richard Sandiford  <rsandifo@redhat.com>
4463
4464         * doc/invoke.texi: Rename MIPS's -mfix-vr4122-bugs to -mfix-vr4120.
4465         * config/mips/mips.h (MASK_FIX_VR4120): Renamed from MASK_FIX_VR4122.
4466         (TARGET_FIX_VR4120): Likewise TARGET_FIX_VR4122.
4467         (TARGET_SWITCHES): Replace -mfix-vr4122-bugs with -mfix-vr4120.
4468         (ASM_SPEC): Update accordingly.
4469         * config/mips/mips.c: Update after above renaming.
4470         * config/mips/mips.md, config/mips/t-vr, config/mips/vr.h: Likewise.
4471         * config/mips/vr4120-div.S: Renamed from vr4122-div.S.
4472
4473 2004-04-13  James E Wilson  <wilson@specifixinc.com>
4474
4475         * c-opt.c (c_common_post_options): If this_input_filename is NULL,
4476         increment errorcount and return false instead of true.
4477
4478 2004-04-13  Uros Bizjak  <uros@kss-loka.si>:
4479
4480         * optabs.c (expand_twoval_unop): Reorder function arguments.
4481         * builtins.c (expand_builtin_mathfn_3): Update calls to
4482         expand_twoval_unop.
4483
4484         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_TAN_ONE
4485         and UNSPEC_TAN_TAN. Add missing comment.
4486
4487         * config/i386/i386.md (*tandf3_1, *tansf3_1, *tanxf3_1): New
4488         patterns to implement fptan x87 instruction.
4489         (tandf2, tansf2, tanxf2): New expanders to implement tan, tanf
4490         and tanl built-ins as inline x87 intrinsics. Define corresponding
4491         peephole2 optimizers for 'fptan; fstp %st(0); fld1' sequence.
4492         (UNSPEC_TAN_ONE, UNSPEC_TAN_TAN): New unspecs to represent
4493         x87's fptan insn.
4494
4495 2004-03-13  Richard Henderson  <rth@redhat.com>
4496
4497         * bb-reorder.c (fix_crossing_unconditional_branches): Use Pmode
4498         for LABEL_REFs.
4499
4500         * defaults.h (HOT_TEXT_SECTION_NAME): Add leading dot.
4501         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Likewise.
4502         * doc/invoke.texi: Update to match.
4503
4504         * varasm.c (unlikely_text_section): Use assemble_align instead of
4505         ASM_OUTPUT_ALIGN.  Use it in the correct place with an approximately
4506         correct alignment argument.
4507
4508 2004-04-13  Ulrich Weigand  <uweigand@de.ibm.com>
4509
4510         * reload1.c (emit_reload_insns): Set reg_has_output_reload to one
4511         after setting reg_last_reload_reg for optional output reloads.
4512
4513 2004-04-12  Fariborz Jahanian <fjahanian@apple.com>
4514
4515         * config/rs6000/altivec.h (vec_mergeh, vec_mergel):
4516         Definition of these two macros are corrected by adding
4517         matchine right paren.
4518
4519 2004-04-12  Jonathan Larmour  <jifl@eCosCentric.com>
4520
4521         * fix-header.c: kill(), putenv() and tzset() are POSIX not ANSI.
4522
4523 2004-04-12  Roger Sayle  <roger@eyesopen.com>
4524
4525         * config/i386/i386.c (output_387_reg_move): New function.
4526         * config/i386/i386-protos.h (output_387_reg_move): Prototype here.
4527         * config/i386/i386.md (*movsf_1, *movsf1_nointerunit,
4528         *movdf_nointeger, *movdf_integer, *movxf_nointeger, *movxf_integer,
4529         *extendsfdf2_1,  *extendsfxf2_1, *extenddfxf2_1, truncdfsf2_noop,
4530         truncxfsf2_noop, truncxfdf2_noop): Call output_387_reg_move.
4531
4532 2004-04-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4533
4534         * c-decl.c (finish_decl): Make a decl_stmt for a variable-sized
4535         TYPE_DECL.
4536         * c-semantics.c (genrtl_decl_stmt): Handle TYPE_DECL.
4537         * stmt.c (expand_decl): Remove redundant expansion of TYPE_DOMAIN.
4538         * stor-layout.c (variable_size): Don't check for MINUS_EXPR.
4539         Use skip_simple_arithmetic to find SAVE_EXPR.
4540         (force_type_save_exprs, force_type_save_exprs_1): New functions.
4541         * tree-inline.c (remap_type, case POINTER_TYPE, case REFERENCE_TYPE):
4542         Properly chain multiple pointers.
4543         (copy_tree_r): Copy a TYPE_DECL.
4544         * tree.c (variably_modified_type_p): Add some missing tests and
4545         make some other minor changes.
4546         * tree.h (force_type_save_exprs): New declaration.
4547
4548 2004-04-12  Roger Sayle  <roger@eyesopen.com>
4549
4550         * simplify-rtx.c (simplify_binary_operation) <UDIV, DIV, UMOD, MOD>:
4551         Remove fall throughs.  Convert 0/x and 0%x into x&0 when x has
4552         side-effects.  Don't convert x/1.0 into x if we honor signaling NaNs.
4553         Convert x/-1.0 into -x if we don't honor signaling NaNs.  Convert
4554         x/-1 into -x.  Optimize x%1 into x&0 if x has side-effects.  Optimize
4555         x%-1 into 0 (or x&0 if x has side-effects).
4556
4557 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
4558
4559         * config/rs6000/rs6000.md: Document why a pattern is not
4560         available.
4561
4562         * config/rs6000/rs6000.c (rs6000_emit_cmove): Disable comparisons
4563         of floats on the E500.
4564         (branch_positive_comparison_operator): Do not allow NE even on the
4565         E500.
4566
4567 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
4568
4569         * config/rs6000/rs6000.c (rs6000_assemble_integer): Change
4570         in_text_unlikely_section to in_unlikely_text_section.
4571
4572 2004-04-11  Roger Sayle  <roger@eyesopen.com>
4573
4574         * fold-const.c (fold_binary_op_with_conditional_arg):  Tweak
4575         calling convention to allow a NULL_TREE to be returned.  Factor
4576         sanity checks from callers, return NULL_TREE when appropriate.
4577         (fold): Handle COMPOUND_EXPR operands of binary expressions
4578         before COND_EXPR operands.  Use reorder_operands_p(a,b) to check
4579         whether a op (b,c) can be rewritten as (b, a op c).  Simplify
4580         calls to fold_binary_op_with_conditional_arg.
4581
4582 2004-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4583
4584         * config/mips/iris5.h (current_section_flags):  Add
4585         in_unlikely_executed_text and default case.
4586
4587 2004-04-11  Andreas Tobler  <a.tobler@schweiz.ch>
4588
4589         * bb-reorder.c (fix_crossing_conditional_branches): Fix bootstrap
4590         failure on solaris. Place ifdef HAVE_return around gen_ret call.
4591         * cfgrtl.c (force_nonfallthru_and_redirect): Remove ifdef
4592         HAVE_return and place it around the place where it is needed.
4593
4594 2004-04-11  Andrew Pinski  <pinskia@physics.uc.edu>
4595
4596         * varasm.c (text_section): Use TEXT_SECTION_ASM_OP and
4597         ASM_OUTPUT_ALIGN instead of SECTION_FORMAT_STRING
4598         and NORMAL_TEXT_SECTION_NAME.
4599         (unlikely_text_section): Check targetm.have_named_sections
4600         instead of TARGET_ASM_NAMED_SECTION and use TEXT_SECTION_ASM_OP
4601         instead of SECTION_FORMAT_STRING.
4602         * config/mips/iris5.h (current_section_name): Add
4603         in_unlikely_executed_text case and move the abort into the switch.
4604         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME): Remove.
4605         (NORMAL_TEXT_SECTION_NAME): Remove.
4606         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
4607         (SECTION_FORMAT_STRING): Remove.
4608         * defaults.h (SECTION_FORMAT_STRING): Remove.
4609         * tm.texi (NORMAL_TEXT_SECTION_NAME): Remove.
4610         (SECTION_FORMAT_STRING): Remove.
4611
4612 2004-04-10  Joseph S. Myers  <jsm@polyomino.org.uk>
4613
4614         * c-typeck.c (common_type): Prefer long long to long when same
4615         precision.
4616
4617 2004-04-09  Zack Weinberg  <zack@codesourcery.com>
4618
4619         PR 14887
4620         * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Look only at
4621         mode argument.
4622         * config/ia64/ia64.c (ia64_hpux_file_end): Check
4623         TREE_SYMBOL_REFERENCED on DECL_ASSEMBLER_NAME, not DECL_NAME.
4624
4625 2004-04-09  Roger Sayle  <roger@eyesopen.com>
4626
4627         * simplify-rtx.c (mode_signbit_p): New function to check whether
4628         an RTX is an immediate constant that represents the most significant
4629         bit of a given machine mode.
4630         (simplify_unary_operation) <NOT>: Optimize ~(X+C) as X ^ ~C, where
4631         C is the sign bit.
4632         (simplify_binary_operation) <PLUS>: Optimize (X^C1) + C2 as X^(C1^C2)
4633         when C2 is the sign bit.
4634         (simplify_binary_operation) <XOR>: Canonicalize X^C as X+C when C
4635         is the sign bit.  Optimize (X+C1) ^ C2 as X^(C1^C2) when C1 is the
4636         sign bit.
4637
4638 2004-04-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4639
4640         * builtins.c (mathfn_built_in): Check TYPE_MAIN_VARIANT, not
4641         TYPE_MODE.
4642
4643 2004-04-09  Andrew Pinski  <pinskia@physics.uc.edu>
4644
4645         * c-common.c (handle_noreturn_attribute): Use TYPE_READONLY instead
4646         of TREE_READONLY for types.
4647
4648 2004-04-09  Caroline Tice  <ctice@apple.com>
4649
4650         * basic-block.h (struct edge_def):  Add new field, crossing_edge.
4651         (struct basic_block_def):  Add new field, partition.
4652         (UNPARTITIONED, HOT_PARTITION, COLD_PARTITION):  New constant macro
4653         definitions.
4654         (partition_hot_cold_basic_blocks): Add extern function
4655         declaration.
4656         * bb-reorder.c (function.h, obstack.h, expr.h, regs.h):  Add four new
4657         include statements.
4658         (N_ROUNDS): Increase the maximum number of rounds by 1.
4659         (branch_threshold): Add array value for new round.
4660         (exec_threshold): Add array value for new round.
4661         (push_to_next_round_p): New function.
4662         (add_unlikely_executed_notes): New function.
4663         (find_rarely_executed_basic_blocks_and_crossing_edges): New function.
4664         (mark_bb_for_unlikely_executed_section): New function.
4665         (add_labels_and_missing_jumps): New function.
4666         (add_reg_crossing_jump_notes): New function.
4667         (fix_up_fall_thru_edges): New function.
4668         (find_jump_block): New function.
4669         (fix_crossing_conditional_branches): New function.
4670         (fix_crossing_unconditional_branches): New function.
4671         (fix_edges_for_rarely_executed_code): New function.
4672         (partition_hot_cold_basic_blocks): New function.
4673         (find_traces):  Add an extra round for partitioning hot/cold
4674         basic blocks.
4675         (find_traces_1_round): Add a parameter.  Modify to push all cold blocks,
4676         and only cold blocks, into the last (extra) round of collecting traces.
4677         (better_edge_p): Add a parameter.  Modify to favor non-crossing edges
4678         over crossing edges.
4679         (bb_to_key):  Add code to correctly identify cold blocks when
4680         doing partitioning.
4681         (connect_traces): Modify to connect all the non-cold traces first, then
4682         go back and connect up all the cold traces.
4683         (reorder_basic_blocks):  Add call to add_unlikely_executed_notes.
4684         * cfg.c (entry_exit_blocks): Add initialization for partition field in
4685         entry and exit blocks.
4686         * cfgbuild.c (make_edges): Update current_function_has_computed_jump
4687         if we are doing hot/cold partitioning.
4688         * cfgcleanup.c (cfglayout.h): Add new include statement.
4689         (try_simplify_condjump): Modify to not attempt on blocks with jumps
4690         that cross section boundaries.
4691         (try_forward_edges): Likewise.
4692         (merge_blocks_move_predecessor_nojumps): Likewise.
4693         (merge_blocks_move_successor_nojumps): Likewise.
4694         (merge_blocks_move): Likewise.
4695         (try_crossjump_to_edge): Modify to not attempt after we have done
4696         the block partitioning.
4697         (try_crossjump_bb): Modify to not attempt on blocks with jumps that
4698         cross section boundaries.
4699         (try_optimize_cfg): Likewise.
4700         * cfghooks.c (tidy_fallthru_edges): Modify to not remove indirect
4701         jumps that cross section boundaries.
4702         * cfglayout.c (flags.h): Add new include statement.
4703         (update_unlikely_executed_notes):  New function.
4704         (fixup_reorder_chain):  Add code so when a new jumping basic block is
4705         added, it's UNLIKELY_EXECUTED_CODE and REG_CROSSING_JUMP notes are
4706         updated appropriately.
4707         (duplicate_insn_chain):  Add code to duplicate the new NOTE insn
4708         introduced by this optimization.
4709         * cfglayout.h (scan_ahead_for_unlikely_executed_note):  Add new
4710         extern function declaration.
4711         * cfgrtl.c (can_delete_note_p):  Add NOTE_INSN_UNLIKELY_EXECUTED_CODE to
4712         list of notes that can be deleted.
4713         (create_basic_block_structure):  Add initialization for partition field.
4714         (rtl_can_merge_blocks):  Modify to test blocks for jumps that cross
4715         section boundaries.
4716         (try_redirect_by_replacing_jump):  Modify to not attempt on jumps that
4717         cross section boundaries.
4718         (commit_one_edge_insertion): Add code so newly created basic block
4719         ends up in correct (hot or cold) section.  Modify to disallow
4720         insertions before NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
4721         (rtl_verify_flow_info_1):  Add code to verify that no fall_thru edge
4722         crosses section boundaries.
4723         (cfg_layout_can_merge_blocks_p): Modify to test blocks for jumps that
4724         cross section boundaries.
4725         (force_nonfallthru_and_redirect): Modify to make sure new basic block
4726         ends up in correct section, with correct notes attached.
4727         * common.opt (freorder-blocks-and-partition):  Add new flag for this
4728         optimization.
4729         * dbxout.c (dbx_function_end):  Add code to make sure scope labels at
4730         the end of functions are written into the correct (hot or cold)
4731         section.
4732         (dbx_source_file): Add code so writing debug file information
4733         doesn't incorrectly change sections.
4734         * defaults.h (NORMAL_TEXT_SECTION_NAME): New constant macro, for use
4735         in partitioning hot/cold basic blocks into separate sections.
4736         (SECTION_FORMAT_STRING): New constant macro, for linux/i386 hot/cold
4737         section partitioning.
4738         (HAS_LONG_COND_BRANCH): New constant macro, indicating whether or not
4739         conditional branches can span all of memory.
4740         (HAS_LONG_UNCOND_BRANCH): New constant macro, indicationg whether or not
4741         unconditional branches can span all of memory.
4742         * final.c (scan_ahead_for_unlikely_executed_note):  New function.
4743         (final_scan_insn):  Add code to check for NOTE instruction indicating
4744         whether basic block belongs in hot or cold section, and to make sure
4745         the current basic block is being written to the appropriate section.
4746         Also added code to ensure that jump table basic blocks end up in the
4747         correct section.
4748         * flags.h (flag_reorder_blocks_and_partition):  New flag.
4749         * ifcvt.c (find_if_case_1):  Modify to not attempt if conversion if
4750         one of the branches has a jump that crosses between sections.
4751         (find_if_case_2): Likewise.
4752         (ifcvt): Modify to not attempt to mark loop exit edges after
4753         hot/cold partitioning has occurred.
4754         * opts.c (decode_options): Code to handle new flag,
4755         flag_reorder_blocks_and_partition; also to turn it off if
4756         flag_exceptions is on.
4757         (common_handle_option): Code to handle new flag,
4758         flag_reorder_blocks_and_partition.
4759         * output.h (unlikely_text_section): New extern function declaration.
4760         (in_unlikely_text_section): New extern function declaration.
4761         * passes.c (rest_of_handle_stack_regs):  Add
4762         flag_reorder_blocks_and_partition as an 'or' condition for calling
4763         reorder_basic_blocks.
4764         (rest_of_handle_reorder_blocks):  Add flag_reorder_blocks_and_partition
4765         as an 'or' condition for calling reorder_basic_blocks.
4766         (rest_of_compilation):  Add call to partition_hot_cold_basic_blocks.
4767         * print-rtl.c (print_rtx): Add code for handling new note,
4768         NOTE_INSN_UNLIKELY_EXECUTED_CODE
4769         * rtl.c  (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note insn (see below).
4770         (REG_CROSSING_JUMP): New kind of reg_note, to mark jumps that
4771         cross between section boundaries.
4772         * rtl.h (NOTE_INSN_UNLIKELY_EXECUTED_CODE):  New note instruction,
4773         indicating the basic block containing it belongs in the cold section.
4774         (REG_CROSSING_JUMP): New type of reg_note, to mark jumps that cross
4775         between hot and cold sections.
4776         * toplev.c (flag_reorder_blocks_and_partition):  Add code to
4777         initialize this flag, and to tie it to the command-line option
4778         freorder-blocks-and-partition.
4779         * varasm.c (cfglayout.h):  Add new include statement.
4780         (unlikely_section_label_printed):  New global variable, used for
4781         determining when to output section name labels for cold sections.
4782         (in_section):  Add in_unlikely_executed_text to enum data structure.
4783         (text_section):  Modify code to use SECTION_FORMAT_STRING and
4784         NORMAL_TEXT_SECTION_NAME macros.
4785         (unlikely_text_section):  New function.
4786         (in_unlikely_text_section):  New function.
4787         (function_section):  Add code to make sure beginning of function is
4788         written into correct section (hot or cold).
4789         (assemble_start_function):  Add code to make sure stuff is written to
4790         the correct section.
4791         (assemble_zeros):  Add in_unlikely_text_section as an 'or' condition
4792         to an if statement that was checking 'in_text_section'.
4793         (assemble_variable):  Add 'in_unlikely_text_section' as an 'or'
4794         condition to an if statement that was checking 'in_text_section'.
4795         (default_section_type_flags_1):  Add check: if in cold section
4796         flags = SECTION_CODE.
4797         * config/darwin.c (darwin_asm_named_section):  Modify to use
4798         SECTION_FORMAT_STRING if we are partitioning hot/cold blocks.
4799         * config/i386/i386.h (HAS_LONG_COND_BRANCH): Defined this macro
4800         specifically for the i386.
4801         (HAS_LONG_UNCOND_BRANCH):  Defined this macro specifically for the i386.
4802         * config/rs6000/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Change
4803         text string to something more informative.
4804         (NORMAL_TEXT_SECTION_NAME): Add new definition.
4805         (SECTION_FORMAT_STRING):  Add new definition.
4806         * config/rs6000/rs6000.c (rs6000_assemble_integer):  Add
4807         '!in_unlikely_text_section' as an 'and' condition to an if statement
4808         that was already checking '!in_text_section'.
4809         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME,NORMAL_TEXT_SECTION_NAME,
4810         UNLIKELY_EXECUTED_TEXT_SECTION_NAME,SECTION_FORMAT_STRING): Make
4811         sure these are properly defined for linux on ppc.
4812         * doc/invoke.texi  (freorder-blocks-and-partition): Add documentation
4813         for this new flag.
4814         * doc/rtl.texi (REG_CROSSING_JUMP):  Add documentation for new
4815         reg_note.
4816         * doc/tm.texi (NORMAL_TEXT_SECTION_NAME, SECTION_FORMAT_STRING,
4817         HAS_LONG_COND_BRANCH, HAS_LONG_UNCOND_BRANCH): Add documentation for
4818         these new macros.
4819
4820 2004-04-08  Roger Sayle  <roger@eyesopen.com>
4821
4822         * function.c (gen_mem_addressof): When changing the RTX from a REG
4823         to a MEM, clear MEM_VOLATILE_P which was formerly REG_USERVAR_P.
4824
4825 2004-04-08  Roger Sayle  <roger@eyesopen.com>
4826
4827         PR target/14888
4828         * config/i386/i386.md (truncdfsf2_noop, truncxfsf2_noop,
4829         truncxfdf2_noop): Provide dummy "fmov" implementations.
4830
4831 2004-04-08  Ian Lance Taylor  <ian@wasabisystems.com>
4832
4833         * gcc.c (default_compilers): Add missing initializers.
4834
4835         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
4836         Return 1 if file was successfully mapped.
4837
4838 2004-04-08  Geoffrey Keating  <geoffk@apple.com>
4839
4840         PR pch/13419
4841         PR pch/14137
4842         Radar #: 3315288
4843         * doc/invoke.texi (Precompiled Headers): Suggest -o
4844         to put an output file in a particular place.  Be more detailed
4845         about which options affect PCH validity and which options
4846         might not work.
4847         * c-pch.c (pch_matching): New.
4848         (MATCH_SIZE): New.
4849         (struct c_pch_validity): New field 'match'.
4850         (pch_init): Handle pch_matching.
4851         (c_common_valid_pch): Check pch_matching.
4852
4853         * explow.c: Fix typo defining default of PROMOTE_FUNCTION_MODE.
4854
4855 2004-04-08  Mark Mitchell  <mark@codesourcery.com>
4856
4857         * doc/invoke.texi (Precompiled Headers): Warn about known
4858         problems.
4859
4860 2004-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
4861
4862         PR c++/14808
4863         * defaults.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): New macro. Default
4864         to 1 if ASM_OUTPUT_DEF is defined.
4865         * doc/tm.texi (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document.
4866         * config/i386/cygming.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): Define.
4867         Set to non-zero iff not a one_only decl.
4868
4869 2004-04-08  Paul Brook  <paul@codesourcery.com>
4870
4871         * arm.h (CLASS_LIKELY_SPILLED_P): Define.
4872
4873 2004-04-08  Paul Brook  <paul@codesourcery.com>
4874
4875         * explow.c (promote_mode): Use PROMOTE_FUNCTION_MODE instead of
4876         PROMOTE_FOR_CALL_ONLY.
4877         * config/arm/arm-protos.h (arm_function_value): Declare.
4878         * config/arm/arm.h (TARGET_PROMOTE_FUNCTION_ARGS): Define.
4879         (TARGET_PROMOTE_PROTOTYPES): Return false.
4880         (arm_function_value): New function.
4881         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Define.
4882         (FUNCTION_VALUE): Call arm_function_value.
4883         * config/cris/cris.h (PROMOTE_MODE): Rename ...
4884         (PROMOTE_FUNCTION_MODE): ... to this.
4885         (PROMOTE_FOR_CALL_ONLY): Remove.
4886         * config/mmix/mmix.h: Likewise.
4887         * config/s390/s390.h: Likewise.
4888         * config/sparc/sparc.h: Likewise.
4889         * config/sparc/sparc.c: Update comments about PROMOTE_MODE.
4890         * doc/tm.texi (PROMOTE_FUNCTION_MODE): Document.
4891         (TARGET_PROMOTE_FUNCTION_MODE, TARGET_PROMOTE_FUNCTION_RETURN): Update.
4892         (PROMOTE_FOR_CALL_ONLY): Remove.
4893
4894 2004-04-08  Joel Sherrill <joel@oarcorp.com>
4895
4896         PR ada/14538
4897         * ada/5rosinte.adb: Remove fake mprotect() body.
4898         * ada/5rosinte.ads: Add SA_SIGINFO.
4899         * ada/5rtpopsp.adb: Rewrite to use new interface.
4900         * ada/init.c: Reorder so the simple single OS conditional __rtems__
4901         is tested before more complex ones which mix UNIX and embedded
4902         systems in the conditional.
4903
4904 2004-04-08  Joel Sherrill  <joel@oarcorp.com>
4905
4906         PR ada/14665
4907         * ada/osint.adb (Find_Program_Name): Rework to properly handle
4908         filenames which end in .exe or have versioning suffixes like VMS.
4909
4910 2004-04-08  Andrew Pinski  <pinskia@physics.uc.edu>
4911
4912         PR target/10129
4913         * config/darwin.c (darwin_encode_section_info): When the decl has
4914         a DECL_INITIAL, it is only defined also when it is not a common.
4915
4916 2004-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4917
4918         * builtins.c (fold_builtin_isascii, fold_builtin_toascii): New.
4919         (fold_builtin): Handle BUILT_IN_ISASCII and BUILT_IN_TOASCII.
4920
4921 2004-04-07  H.J. Lu  <hongjiu.lu@intel.com>
4922
4923         * config/ia64/ia64.c (ia64_encode_section_info): Don't prod
4924         global register variables.
4925
4926 2004-04-07  Joseph S. Myers  <jsm@polyomino.org.uk>
4927
4928         * fixinc/inclhack.def (rpc_xdr_lvalue_cast_a,
4929         rpc_xdr_lvalue_cast_b): New fixes.
4930         * fixinc/fixincl.x: Regenerate.
4931         * fixinc/tests/base/rpc/xdr.h: Add new tests.
4932
4933 2004-04-07  David Edelsohn  <edelsohn@gnu.org>
4934
4935         * config/rs6000/rs6000.c (processor_target_table): Add MASK_MFCRF
4936         to power4 and power5 entries.
4937
4938 2004-04-06  Geoffrey Keating  <geoffk@apple.com>
4939
4940         * c-common.h (pending_lang_change): Mark for PCH.
4941
4942 2004-04-07  Caroline Tice  <ctice@apple.com>
4943
4944         * gcc.c (main): Move 'break' in main loops (on an error)
4945         to wait until error processing has occurred.
4946
4947 2004-04-06  Nathanael Nerode  <neroden@gcc.gnu.org>
4948
4949         * config.gcc: Stop changing enable_threads midstream.
4950         Replace uses of enable_threads_flag with enable_threads.
4951         * configure.ac: Replace uses of enable_threads_flag with
4952         enable_threads.  Improve autoconf quotation in one place.
4953         * configure: Regenerate.
4954
4955 2004-04-06  Uros Bizjak  <uros@kss-loka.si>
4956
4957         * builtins.c: Implement support for sincos function.
4958         (expand_builtin_mathfn): Remove BUILT_IN_SIN{,F,L} and
4959         BUILT_IN_COS{,F,L}.
4960         (expand_builtin_mathfn_3): New function.
4961         (expand_builtin): Expand BUILT_IN_SIN{,F,L} and
4962         BUILT_IN_COS{,F,L} using expand_builtin_mathfn_3 if
4963         flag_unsafe_math_optimization is set.
4964
4965         * optabs.h (enum optab_index): Add new OTI_sincos.
4966         (sincos_optab): Define corresponding macro.
4967
4968         * optabs.c (init_optabs): Initialize sincos_optab.
4969         (expand_twoval_unop): New function.
4970
4971         * genopinit.c (optabs): Implement sincos_optab using sincos?f3
4972         patterns.
4973
4974         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_SINCOS_COS
4975         and UNSPEC_SINCOS_SIN.
4976
4977         * config/i386/i386.md (sincosdf3, sincossf3, *sincosextendsfdf3,
4978         sincosxf3): New patterns to implement sincos, sincosf and sincosl
4979         built-ins as inline x87 intrinsics. Define splits for
4980         sindf2, sinsf2, *sinextendsfdf2, sinxf2, cosdf2,
4981         cossf2, *cosextendsfdf2 and cosxf2 patterns from corresponding
4982         sincos patterns.
4983         (sindf2, sinsf2, sinxf2): Rename to *sindf2, *sinsf2, *sinxf2.
4984         (cosdf2, cossf2, cosxf2): Rename to *cosdf2, *cossf2, *cosxf2.
4985
4986         (UNSPEC_SINCOS_SIN, UNSPEC_SINCOS_COS): New unspecs to represent
4987         x87's fsincos insn.
4988
4989 2004-04-06  Devang Patel  <dpatel@apple.com>
4990
4991         PR 14467
4992         * config/darwin.h (LINK_COMMAND_SPEC): Use c++filt instead of c++filt3.
4993
4994 2004-04-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4995
4996         * doc/install.texi: Update HP-UX 11 installation procedure.
4997
4998 2004-04-06  Paul Brook  <paul@codesourcery.com>
4999
5000         * doc/sourcebuild.texi: Remove obsolete contraint on testcases.
5001
5002 2004-04-05  Kaz Kojima  <kkojima@gcc.gnu.org>
5003
5004         * config/sh/sh.c (prepare_move_operands): Use emit_call_insn
5005         when the TLS address is generated by a function call.
5006         * config/sh/sh.md (tls_global_dynamic): Use a call expression.
5007         (tls_local_dynamic): Likewise.
5008
5009 2004-04-05  Andrew Pinski  <pinskia@physics.uc.edu>
5010
5011         * tree.c (reconstruct_complex_type): Use TYPE_READONLY
5012         and TYPE_VOLATILE.
5013
5014 2004-04-05  Caroline Tice  <ctice@apple.com>
5015
5016         * gcc.c (combine_flag): New global variable, for new driver option.
5017         (struct compiler): Add two new fields, to be used when
5018         combining multiple input files in a single pass (IMA).
5019         (default_compilers):  Add values for the new fields to all
5020         compiler entries. Modify the "@c" compiler entry for doing IMA
5021         properly with "-save-temps" and the "combine" flag.
5022         (option_map):  Add new driver option, "--combine", to tell driver
5023         to pass multiple input files to compiler at one time.
5024         (have_o_argbuf_index): New global variable.
5025         (store_arg): Modify to assign value to have_o_argbuf_index.
5026         (struct infile):  Add three new fields, to help with IMA.
5027         (display_help): Add help for new "combine" option.
5028         (process_command): Remove local variable have_o; add code to check
5029         for new "combine" option; remove assignment to combine_inputs.
5030         (do_spec_1):  Modify to deal with IMA better.
5031         (main): Make variable 'lang_n_infiles' local to entire function
5032         rather than to a single block.  Use flag combine_flag to
5033         determine whether to do IMA or not; Modify loop initializing
5034         infiles to deal properly with linker files.
5035         Add code for doing preprocessing in presence of
5036         IMA with "-save-temps" flag.  Modify "main" loop to handle
5037         multiple input files, in multiple languages, with or without
5038         preprocessing,  gracefully.
5039         * toplev.c (set_src_pwd): Modify to not complain if attempting to
5040         re-set it to same directory it's previously been set to (avoid
5041         irritating, meaningless warning messages when doing IMA with
5042         save-temps).
5043         * doc/invoke.texi: Add "-combine" to list of Overall Options;
5044         remove documentation about IMA that is no longer accurate; Add
5045         documentation explaining what "-combine" does.
5046         * ada/lang-specs.h: Add initialization values for new fields in
5047         "struct compiler".
5048         * cp/lang-specs.h: Likewise.
5049         * f/lang-specs.h: Likewise.
5050         * java/lang-specs.h: Likewise.
5051         * objc/lang-specs.h: Likewise.
5052         * treelang/lang-specs.h: Likewise.
5053
5054 2004-04-05  David Edelsohn
5055
5056         * config/rs6000/rs6000.c (VTABLE_NAME_P): Add _ZTI to special
5057         symbol handling.
5058
5059 2004-04-05  Jakub Jelinek  <jakub@redhat.com>
5060             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5061
5062         PR optimization/13424 (hppa), bootstrap/14462, c/14828
5063         * pa.md: Use replace_equiv_address to retain the attributes of the
5064         memory operands used in the split and peephole2 patterns for optimizing
5065         the pre-reload movstrsi, movstrdi, clrstrsi and clrstrdi patterns.
5066
5067 2004-04-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5068
5069         * c-decl.c (build_compound_literal): Use TYPE_READONLY.
5070         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
5071         * objc/objc-act.c (adorn_decl, gen_declspecs): Likewise.
5072         * c-typeck.c (decl_constant_value): Don't access DECL_INITIAL of a
5073         PARM_DECL.
5074         * calls.c (flags_from_decl_or_type): Use TYPE_READONLY and do so only
5075         for a type.
5076         * print-tree.c (print_node): Properly handle side-effects, readonly,
5077         and constant flags.
5078         * tree.c (build1_stat, build_expr_wfl): Only look at TREE_SIDE_EFFECTS
5079         and TREE_CONSTANT if not a type.
5080         * tree.h (IS_NON_TYPE_CODE_CLASS): New macro.
5081         (IS_EXPR_CODE_CLASS): Write 'E', not 'e'.
5082         (NON_TYPE_CHECK): New macro.
5083         (TREE_SIDE_EFFECT, TREE_READONLY, TREE_CONSTANT: Add check.
5084
5085 2004-04-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
5086
5087         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Set
5088         to DWARF2_DEBUG unconditionally.
5089         (ASM_DEBUG_SPEC): Set the default to --gdwarf2 unconditionally.
5090
5091 2004-04-04  Ian Lance Taylor  <ian@wasabisystems.com>
5092             Nathanael Nerode  <neroden@gcc.gnu.org>
5093
5094         PR target/14548
5095         * config.host: Set the shell variable host_can_use_collect2.
5096         Set it to yes by default, and to no for alpha*-dec-*vms*,
5097         i[34567]86-*-mingw32*, and powerpc-*-beos*.
5098         * configure.ac: Set and substitute the shell variable collect2.
5099         Give an error if use_collect2 is yes and host_can_use_collect2 is
5100         no.
5101         * Makefile.in (COLLECT2): Rename from USE_COLLECT2.  Change all
5102         uses.  Initialize to @collect2@.
5103         (STAGESTUFF): Remove $(USE_COLLECT2).
5104         * config/alpha/x-vms (USE_COLLECT2): Don't set.
5105         * config/i386/t-mingw32 (USE_COLLECT2): Likewise.
5106         * config/rs6000/t-beos (USE_COLLECT2): Likewise.
5107         * config/pa/t-pa64: Remove commented out USE_COLLECT2.
5108         * configure: Regenerate.
5109
5110 2004-04-04  Roger Sayle  <roger@eyesopen.com>
5111
5112         * simplify-rtx.c (simplify_binary_operation): Constant fold
5113         DIV, MOD, UDIV and UMOD using div_and_round_double.
5114
5115 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
5116
5117         PR c++/14804
5118         * varasm.c (initializer_constant_valid_p): Allow NOP_EXPRs to
5119         RECORD_TYPEs.
5120
5121 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
5122
5123         * doc/invoke.texi (-mabi=o64): Create link to O64 ABI
5124         documentation.
5125
5126 2004-04-04  Roger Sayle  <roger@eyesopen.com>
5127
5128         * cse.c (cse_insn): Correct usage of simplify_replace_rtx when
5129         updating the REG_EQUAL note on an insn's libcall_insn.
5130
5131 2004-04-04  Roger Sayle  <roger@eyesopen.com>
5132
5133         * df.h: Tidy up whitespace in the definitions of the DF_ flags.
5134
5135 2004-04-03  Roger Sayle  <roger@eyesopen.com>
5136
5137         * fold-const.c (fold) <PLUS_EXPR>: Guard (-A)+B -> B-A transformation
5138         with reorder_operands_p.
5139
5140 2004-04-03  Jan Hubicka  <jh@suse.cz>
5141
5142         * md.texi (vec_set, vec_extract, vec_init): Document.
5143
5144 2004-04-02  Gabor Loki <loki@inf.u-szeged.hu>
5145
5146        * opts.c (decode_options): Do function inlining with very small
5147        max-inline-insns-* parameters when optimizing for size.
5148
5149 2004-04-02  Vladimir Makarov  <vmakarov@redhat.com>
5150
5151         * config/i386/i386.h (TARGET_NOCONA): New macro.
5152         (TARGET_CPU_CPP_BUILTINS): Add code for Nocona.
5153         (processor_type): Add PROCESSOR_NOCONA.
5154
5155         * config/i386/i386.md (cpu): Add nocona to the attribute values.
5156
5157         * config/i386/i386.c (nocona_cost): New variable.
5158         (m_NOCONA): New macro.
5159         (x86_push_memory, x86_movx, x86_cmove, x86_deep_branch,
5160         x86_branch_hints, x86_use_sahf, x86_single_stringop,
5161         x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8,
5162         x86_integer_DFmode_moves, x86_partial_reg_dependency,
5163         x86_memory_mismatch_stall, x86_accumulate_outgoing_args,
5164         x86_decompose_lea, x86_arch_always_fancy_math_387,
5165         x86_sse_partial_reg_dependency, x86_sse_load0_by_pxor,
5166         x86_ext_80387_constants, x86_four_jump_limit):
5167         (override_options): Add nocona_cost to processor_target_table.
5168         Set up PROCESSOR_NOCONA for Nocona entry in processor_alias_table.
5169         (incdec_operand): Prevent inc/dec generation for Nocona too.
5170         (ix86_issue_rate): Add PROCESSOR_NOCONA.
5171
5172 2004-04-01  Andrew Pinski  <pinskia@physics.uc.edu>
5173
5174         * rtlanal.c (find_reg_note): Manually
5175         unswitch the loop.
5176
5177 2004-04-01  Mark Mitchell  <mark@codesourcery.com>
5178
5179         * genemit.c (gen_split): Change prototype of generated code.
5180         * genrecog.c (write_action): Adjust prototype for and calls to
5181         gen_split_*.
5182         * gensupport.c (struct queue_elem): Add split field.
5183         (queue_pattern): Return a value.  Clear the split field.
5184         (process_rtx): Maintain an association between an insn and the
5185         split generated from it for a define_insn_and_split.
5186         (process_one_cond_exec): Generate a new split for a
5187         define_insn_and_split.
5188         * config/arm/arm-protos.h (arm_split_constant): Add insn
5189         parameter.
5190         (emit_constant_insn): New function.
5191         (arm_gen_constant): Use it.
5192         * config/arm/arm.md: Adjust calls to arm_split_constant.
5193
5194 2004-04-02  Jan Hubicka  <jh@suse.cz>
5195
5196         * cgraph.c: Add overall comment.
5197         (cgraph_inline_hash): New global variable.
5198         (cgraph_create_node): Break out from ...
5199         (cgraph_node): ... here.
5200         (cgraph_edge): New function.
5201         (cgraph_create_edge): New CALL_EXPR argument; some sanity checking.
5202         (cgraph_remove_edge): Accept edge, intead of source and destination.
5203         (cgraph_redirect_edge_callee): New.
5204         (cgraph_remove_node): Update all new datastructures.
5205         (cgraph_record_call, cgraph_remove_call): Kill.
5206         (dump_cgraph_node): Break out from ... ; dump new datastructures.
5207         (dump_cgraph): ... here.
5208         (cgraph_function_possibly_inlined_p): Use new hashtable.
5209         (cgraph_clone_edge, cgraph_clone_node): New.
5210         * cgraph.h: Include hashtab.h
5211         (struct cgraph_global_info): Kill cloned_times, inline_once, will_be_output
5212         fields, add inlined_to pointer.
5213         (cgraph_node): Add pointer to next_clone.
5214         (cgraph_remove_edge, cgraph_create_edge): Update prototype.
5215         (cgraph_remove_call, cgraph_record_call): Kill.
5216         (cgraph_inline_hash): Declare.
5217         (dump_cgraph_node, cgraph_edge, cg4raph_clone_edge, cgraph_clone_node,
5218         cgraph_redirect_edge_callee): Declare.
5219         (cgraph_create_edges, cgraph_inline_p): Update prorotype.
5220         (cgraph_preserve_function_body_p, verify_cgraph, verify_cgraph_node,
5221         cgraph_mark_inline_edge, cgraph_clone_inlined_nodes): Declare.
5222         * cgraphunit.c: Add overall comment.
5223         (cgraph_optimize_function): Kill.
5224         (cgraph_assemble_pending_functions): Do not assemble inline clones.
5225         (cgraph_finalize_function): Update call of cgraph_remove_node
5226         (record_call_1): Record call sites.
5227         (cgraph_create_edges): Accept node instead of decl argument.
5228         (error_found): New static variable.
5229         (verify_cgraph_node_1, verify_cgraph_node, verify_cgraph): New functions.
5230         (cgraph_analyze_function): Update for new datastructures.
5231         (cgraph_finalize_compilation_unit): Plug memory leak.
5232         (cgraph_optimize_function): Kill.
5233         (cgraph_expand_function): Do not use cgraph_optimize_function.
5234         (INLINED_TIMES, SET_INLINED_TIMES, cgraph_inlined_into,
5235         cgraph_inlined_callees): Kill.
5236         (cgraph_remove_unreachable_nodes): Verify cgraph; update handling of
5237         clones.
5238         (estimate_growth): Simplify.
5239         (cgraph_clone_inlined_nodes): New function.
5240         (cgraph_mark_inline_edge): Re-implement.
5241         (cgraph_mark_inline): Likewise.
5242         (cgraph_check_inline_limits): Simplify.
5243         (cgraph_recursive_inlining_p): New.
5244         (update_callee_keys): Break out from ...
5245         (cgraph_decide_inlining_of_small_functions): ... here; simplify.
5246         (cgraph_decide_inlining, cgraph_decide_inlining_incrementally):
5247         Likewise.
5248         (cgraph_expand_all_functions):  Remove inline clones from the ordered
5249         list.
5250         (cgraph_preserve_function_body_p): New predicate.
5251         (cgraph_optimize): Verify cgraph.
5252         * function.h (struct function): Add fields saved_tree/saved_args.
5253         * timevar.def (TV_CGRAPH_VERIFY): Use verifier.
5254         * toplev.c (rest_of_compilation): Do not free cfun.
5255         * tree-inline.c: Include function.h
5256         (struct inline_data): Add saving_p field; replace decl/current_decl by
5257         node/current_node.
5258         (insert_decl_map): New function.
5259         (copy_body_r): Handle saving; update cgraph datastructure.
5260         (copy_body): Handle recursive inlining.
5261         (initialize_inlined_parameters): Likewise.
5262         (expand_call_inline): Propagate node attributes; update cgraph.
5263         (optimize_inline_calls): Verify that datastructure still match.
5264         (save_body): New function.
5265         * tree-inline.h (save_body): New.
5266         * tree-optimize.c (tree_rest_of_compilation): preserve function body; do inlining.
5267         * langhooks-def.c (LANG_HOOKS_UPDATE_DECL_AFTER_SAVING): New.
5268         * langhooks.c (lang_hooks): Add update_decl_after_saving.
5269
5270 2004-04-01  Serge Belyshev  <1319@bot.ru>
5271
5272         PR target/14702
5273         * config/i386/i386.md: fix source operand constraints in
5274         mmx_pshufw, sse2_pshufd, sse2_pshuflw, sse2_pshufhw
5275
5276 2004-04-01  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
5277
5278         * fold-const.c (folda): Preserve types of comparisons.
5279
5280 2004-04-01  Richard Henderson  <rth@redhat.com>
5281
5282         * toplev.c (backend_init): Move init_optimization_passes call ...
5283         (lang_dependent_init): ... here.
5284
5285 2004-04-01  Alan Modra  <amodra@bigpond.net.au>
5286             Jakub Jelinek  <jakub@redhat.com>
5287
5288         * gcc.c (init_gcc_specs): If HAVE_LD_AS_NEEDED, link with
5289         -lgcc --as-needed -lgcc_s --no-as-needed by default.
5290         * configure.ac (HAVE_LD_AS_NEEDED): Check for ld --as-needed.
5291         * configure: Rebuilt.
5292         * config.in: Rebuilt.
5293         * Makefile.in (stage1-start): Copy also libgcc_s*$(SHLIB_EXT).
5294         (stage2-start, stage3-start, stage4-start): Likewise.
5295         (stageprofile-start, stagefeedback-start): Likewise.
5296
5297 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
5298
5299         * config/sparc/sparc.h (DITF_CONVERSION_LIBFUNCS): Define to 0.
5300         * config/sparc/linux.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
5301         * config/sparc/linux64.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
5302         * config/sparc/sol2.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
5303         (SOLARIS_CONVERSION_LIBFUNCS): Rename to SUN_CONVERSION_LIBFUNCS.
5304         * config/sparc/sparc.c (sparc_init_libfuncs): Initialize optabs
5305         with _Q_qtoll, _Q_qtoull and _Q_lltoq if DITF_CONVERSION_LIBFUNCS.
5306         * config.gcc (sparc-*-linux*): Revert 2004-03-23 change.
5307         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Likewise.
5308         * config/sparc/t-linux: Removed.
5309
5310 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
5311
5312         PR c++/14755
5313         * fold-const.c (fold) <EQ_EXPR>: Properly compute newconst in
5314         "bitfld++ == const" to "++bitfld == const + incr" transformations.
5315
5316 2004-04-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5317
5318         * expr.c (get_inner_reference): Use DECL_UNSIGNED, not TREE_UNSIGNED.
5319         * stor-layout.c (layout_decl): Likewise.
5320         * tree.c (get_narrower): Likewise and also use BIT_FIELD_REF_UNSIGNED.
5321         * fold-const.c (make_bit_field_ref): Use BIT_FIELD_REF_UNSIGNED.
5322         * print-tree.c (print_node): Handle various used of unsigned_flag.
5323         * tree.def (BIT_FIELD_REF): Update comment.
5324         * tree.h (TREE_UNSIGNED): Deleted.
5325         (DECL_UNSIGNED, BIT_FIELD_REF_UNSIGNED): New macros.
5326
5327 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5328
5329         * builtins.c, c-aux-info.c, c-common.c, c-cppbuiltin.c, c-decl.c:
5330         Change most occurrences of TREE_UNSIGNED to TYPE_UNSIGNED.
5331         * c-format.c, c-opts.c, c-pretty-print.c, c-typeck.c: Likewise.
5332         * calls.c, convert.c, dbxout.c, dojump.c, dwarf2out.c: Likewise.
5333         * expmed.c, expr.c, fold-const.c, function.c, integrate.c: Likewise.
5334         * optabs.c, sdbout.c, stmt.c, stor-layout.c, tree-dump.c: Likewise.
5335         * tree.c, config/iq2000/iq2000.c, config/m32r/m32r.c: Likewise.
5336         * config/mips/mips.c, config/rs6000/rs6000.c: Likewise.
5337         * config/s390/s390.c, config/sparc/sparc.c, objc/objc-act.c: Likewise.
5338         * stor-layout.c (layout_type, case COMPLEX_TYPE): Test for
5339         REAL_TYPE, not INTEGER_TYPE.
5340         (layout_type, case VECTOR_TYPE): Simplify code.
5341         * tree.c (build_vector_type_for_mode): Remove dup unsigned setting.
5342         * tree.h: Update comments.
5343         (STRIP_NOPS): Use TYPE_UNSIGNED.
5344         (TYPE_UNSIGNED): New macro.
5345         (TYPE_TRAP_SIGNED): Remove now redundant check.
5346         (SAVE_EXPR_NOPLACEHOLDER): Don't use TREE_UNSIGNED.
5347
5348 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5349
5350         * function.c (put_var_into_stack): Properly set orig_reg for indirect.
5351
5352 2004-03-31  Andrew Pinski  <pinskia@physics.uc.edu>
5353
5354         * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA):
5355         Add darwin-fpsave.asm, darwin-vecsave.asm,
5356         and darwin-world.asm.
5357         (TARGET_LIBGCC2_CFLAGS): Add -Wa,-force_cpusubtype_ALL
5358         as the asm files contain altivec instructions.
5359         * config/rs6000/darwin-fpsave.asm: New file.
5360         * config/rs6000/darwin-vecsave.asm: New file.
5361         * config/rs6000/darwin-world.asm: New file.
5362
5363 2004-03-31  Zack Weinberg  <zack@codesourcery.com>
5364
5365         * gengtype-yacc.y (option, stringseq): Add missing
5366         terminating semicolon.
5367
5368 2004-03-30  David Edelsohn  <edelsohn@gnu.org>
5369
5370         * config/rs6000/rs6000.md (tls_gd_32, tls_gd_64,
5371         tls_ld_32, tls_ld_64, tls_dtprel_32, tls_dtprel_64,
5372         tls_dtprel_ha_32, tls_dtprel_ha_64,
5373         tls_dtprel_lo_32, tls_dtprel_lo_64,
5374         tls_got_dtprel_64, tls_tprel_32, tls_tprel_64,
5375         tls_tprel_ha_32, tls_tprel_ha_64,
5376         tls_tprel_lo_32, tls_tprel_lo_64,
5377         tls_got_tprel_32, tls_got_tprel_64,
5378         tls_tls_32, tls_tls_64): Replace register_operand with
5379         gpc_reg_operand.
5380
5381 2004-03-30  Mostafa Hagog  <mustafa@il.ibm.com>
5382
5383         * config/rs6000/rs6000.md (*ctrsi_internal1, *ctrsi_internal2,
5384         *ctrdi_internal1, *ctrdi_internal2, *ctrsi_internal3,
5385         *ctrsi_internal4, *ctrdi_internal3, *ctrdi_internal4,
5386         *ctrsi_internal5, *ctrsi_internal6, *ctrdi_internal5,
5387         *ctrdi_internal6): Replace register_operand with
5388         nonimmediate_operand.
5389
5390 2004-03-29  Fariborz Jahanian <fjahanian@apple.com>
5391
5392         * fold-const.c (fold): Reassociate multiply expression
5393         with an adjacent non-multiply expression to use
5394         architecture's multiply-add instruction.
5395
5396 2004-03-30  Zack Weinberg  <zack@codesourcery.com>
5397
5398         * gengtype.c (create_option): New function.
5399         * gengtype.h: Prototype it.
5400         * gengtype-yacc.y (stringseq): New rule.
5401         (option): Use create_option.  Add new bare ID production.  Use
5402         stringseq, not STRING directly.
5403
5404         * alias.c, bitmap.c, c-decl.c, cgraph.h, cpplib.h, cselib.h
5405         * dwarf2out.c, emit-rtl.c, function.h, lists.c, tree.h
5406         * varray.h, config/alpha/alpha.c:
5407         Use new shorter form of GTY markers.
5408
5409         * doc/gty.texi: Rewrite.
5410
5411 2004-03-30  Andrew Pinski  <pinskia@physics.uc.edu>
5412
5413         * config/darwin.c (machopic_function_base_name):
5414         Remove current_name and getting the name of the
5415         current function.
5416
5417 2004-03-30  Nick Clifton  <nickc@redhat.com>
5418
5419         * config/arm/arm.md (thumb_jump): Reduce the backward branch
5420         range, and increase the forward branch range, to allow for
5421         the fact that the PC will be off by 4.
5422
5423 2004-03-30  Alan Modra  <amodra@bigpond.net.au>
5424
5425         * .cvsignore: Add GPATH, GRTAGS, GSYMS and GTAGS (GNU GLOBAL)
5426
5427 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
5428
5429         * config/rs6000/rs6000.c (output_vec_const_move):
5430         Find all cases of EASY_VECTOR_15_ADD_SELF.
5431         (easy_vector_constant_add_self): Accept
5432         all vector constant loadable by vsplt* and vadd*.
5433         (easy_vector_same): Use easy_vector_splat_const.
5434         (easy_vector_const): Use easy_vector_splat_const.
5435         (easy_vector_splat_const): New function.
5436         (gen_easy_vector_constant_add_self): New function.
5437
5438         * config/rs6000/rs6000-protos.c (gen_easy_vector_constant_add_self):
5439         New prototype.
5440
5441         * config/rs6000/altivec.md (movv4si splitter): Change to
5442         emit move insn with halfed vector constant.
5443         (*movv8hi splitter): Likewise.
5444         (*movv16qi splitter): Likewise.
5445
5446 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
5447
5448         PR 11591
5449         * config/rs6000/rs6000.c (rs6000_legitimate_address):
5450         Allow any offset to argument pointer in no-strict case.
5451
5452 2004-03-30  Jan Hubicka  <jh@suse.cz>
5453
5454         * toplev.c (backend_init): Add missing call to inint_optimization_passes.
5455         * passes.c (init_optimization_passes, finish_optimization_passes): Output cgraph
5456         dump file in non-unit-at-a-time mode.
5457
5458 2004-03-29  Hans-Peter Nilsson  <hp@axis.com>
5459
5460         * config/cris/cris.h: Correct #ifdef to test for
5461         HAVE_AS_NO_MUL_BUG_ABORT_OPTION, not
5462         HAVE_AS_MUL_BUG_ABORT_OPTION.
5463
5464 2004-03-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5465
5466         * function.c (put_var_into_stack): If old RTL was ADDRESSOF, update
5467         the address inside the old RTL.
5468
5469 2004-03-28  Zack Weinberg  <zack@codesourcery.com>
5470
5471         * c-decl.c: Verify that C_SIZEOF_STRUCT_LANG_IDENTIFIER is correct.
5472         (struct c_binding, struct c_scope): Add chain_next
5473         attributes to GTY markers.
5474         (struct lang_identifier, struct lang_tree_node): Define
5475         here...
5476         * c-tree.h: ... not here.  No longer need to declare struct
5477         c_binding either.  Do define C_SIZEOF_STRUCT_LANG_IDENTIFIER.
5478         * c-lang.c, objc/objc-lang.c: Set LANG_HOOKS_IDENTIFIER_SIZE
5479         to C_SIZEOF_STRUCT_LANG_IDENTIFIER.
5480
5481         PR 14734, 11944
5482         * c-decl.c (get_parm_info): If error_mark_node is encountered
5483         in the bindings chain, unbind and discard it; don't abort.
5484
5485 2004-03-28  Olga Golovonevsky <olga@il.ibm.com>
5486             Dorit Naishlos <dorit@il.ibm.com>
5487
5488         * config/rs6000/altivec.md: (andvv16qi3, andv8hi3, one_cmplv16qi2,
5489         one_cmplv8hi2, one_cmplv4si2, iorv16qi3, iorv8hi3,): New modelling.
5490
5491 2004-03-28  Stephane Carrez  <stcarrez@nerim.fr>
5492
5493         * config/m68hc11/m68hc11-protos.h (m68hc11_page0_symbol_p): Declare.
5494
5495         * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute): New.
5496         (m68hc11_attribute_table): New attribute "page0" to mark a global
5497         variable as being allocated from within page0 section.
5498         (m68hc11_encode_label): New function.
5499         (m68hc11_strip_name_encoding): New function.
5500         (m68hc11_page0_symbol_p): New function.
5501         (m68hc11_indirect_p): Accept global variables marked in page0.
5502         (m68hc11_encode_section_info): Lookup "page0" attribute.
5503
5504         * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): 'R' constraint also
5505         represents access to page0 variables.
5506
5507         * config/m68hc11/m68hc11.md ("*logicalsi3_zexthi"): Use gen_rtx_REG.
5508         ("*logicalsi3_silshl16_zext"): Likewise.
5509         ("*ashldi3_const32"): Likewise.
5510         (peephole2 ashift): Likewise.
5511
5512 2004-03-28  Joseph S. Myers  <jsm@polyomino.org.uk>
5513
5514         * c-tree.h (C_DECL_REGISTER): New.
5515         * c-aux-info.c (gen_decl), c-decl.c (objc_mark_locals_volatile,
5516         finish_decl, grokdeclarator, get_parm_info), c-typeck.c
5517         (build_array_ref, c_mark_addressable): Set and use it.
5518         * c-decl.c (grokdeclarator), c-typeck.c (c_mark_addressable):
5519         Allow structures with volatile fields to be declared register.
5520         Don't check TREE_ADDRESSABLE before warning about taking address
5521         of register.
5522         * c-decl.c (finish_decl): Don't allow structures with volatile
5523         fields to be placed in named register.
5524         * doc/trouble.texi: Remove reference to structures with volatile
5525         fields in registers.
5526
5527 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
5528
5529         * function.c (thread_prologue_and_epilogue): Move
5530         NOTE_INSN_FUNCTION_END and NOTE_INSN_FUNCTION_BEG notes
5531         before the epilogue.
5532
5533 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
5534
5535         * expr.c (store_constructor): Use gen_int_mode to correctly
5536         sign-extend CONST_INT value.
5537
5538 2004-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5539
5540         * builtin-types.def (BT_WINT, BT_FN_INT_WINT, BT_FN_WINT_WINT): New.
5541         * builtins.def (DEF_C94_BUILTIN): New.  Add wctype builtins.
5542         * doc/extend.texi: Likewise.
5543
5544 2004-03-26  Diego Novillo  <dnovillo@redhat.com>
5545
5546         * c-typeck.c (comptypes): Replace calls to TYPE_DOMAIN
5547           with TYPE_ORIG_SIZE_TYPE.
5548
5549 2004-03-25  Aldy Hernandez  <aldyh@redhat.com>
5550
5551         PR 14219
5552         * c-typeck.c (build_binary_op): Do not allow comparisons of
5553         vectors.
5554
5555 2004-03-26  James A. Morrison  <ja2morri@uwaterloo.ca>
5556
5557         * config.gcc: Remove sparc-tti-*.
5558         * config/sparc/pbd.h: Delete.
5559
5560         * config/sparc/sol2.h: Remove note about Sun OS 4.x.
5561         * config/sparc/aout.h: Likewise.
5562
5563         * config/sparc/sparc.h: Remove if 0'd code.
5564         * config/sparc/sparc.md (call): Remove if 0'd code.
5565         (call_value): Likewise.
5566         (nonlocal_goto): Likewise.
5567         (unimp_insn): Delete.
5568
5569 2004-03-25  Roger Sayle  <roger@eyesopen.com>
5570
5571         * fold-const.c (tree_expr_nonnegative_p): Handle BIT_XOR_EXPR like
5572         BIT_IOR_EXPR; A^B is nonnegative when A and B are nonnegative.
5573
5574 2004-03-25  Richard Henderson  <rth@redhat.com>
5575
5576         PR 11527
5577         * c-typeck.c (pop_init_level): Emit pending init elements earlier
5578         rather than later.
5579
5580 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5581
5582         * builtins.c (fold_builtin): Fix error in last change.
5583
5584 2004-03-25  Richard Sandiford  <rsandifo@redhat.com>
5585
5586         * config/mips/mips.h: Formatting fix.
5587
5588 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5589
5590         * builtins.def: Add ctype builtins.
5591         * doc/extend.texi: Likewise.
5592
5593 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5594
5595         * builtins.c (fold_builtin): Add new builtin optimizations for
5596         sqrt and/or cbrt.
5597         * fold-const.c (fold): Likewise.
5598
5599 2004-03-25  David Edelsohn  <edelsohn@gnu.org>
5600
5601         * config/rs6000/rs6000.c (rs6000_always_hint): New variable.
5602         (rs6000_sched_groups): New variable.
5603         (processor_target_table): Add power5.
5604         (rs6000_override_options): Set rs6000_sched_insert_nops,
5605         rs6000_sched_costly_dep and rs6000_sched_restricted_insns_priority
5606         from rs6000_sched_groups.
5607         (output_cbranch): Use rs6000_always_hint.
5608         (rs6000_variable_issue): Use rs6000_sched_groups.
5609         (rs6000_adjust_cost): Add CPU_POWER5.
5610         (is_microcoded_insn): Use rs6000_sched_groups.
5611         (is_dispatch_slot_restricted): Use rs6000_sched_groups.
5612         Return 2 for POWER5 cracked instructions.
5613         (is_cracked_insn): Use rs6000_sched_groups.
5614         (is_branch_slot_insn): Use rs6000_sched_groups.
5615         (rs6000_issue_rate): Add CPU_POWER5.
5616         (rs6000_sched_finish): Use rs6000_sched_groups.
5617         (rs6000_rtx_costs): Add PROCESSOR_POWER5.
5618         * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER5.
5619         (DEFAULT_SCHED_COSTLY_DEP): Delete.
5620         (DEFAULT_RESTRICTED_INSNS_PRIORITY): Delete.
5621         (DEFAULT_SCHED_FINISH_NOP_INSERTION_SCHEME): Delete.
5622         * config/rs6000/rs6000.md (define_attr "cpu"): Add power5.
5623         * config/rs6000/power5.md: New file.
5624         * doc/invoke.texi: Add power5 option.
5625
5626 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
5627
5628         * cfgrtl.c, dbxout.c, tree.def, config/darwin.h,
5629         config/arm/arm.c, objc/objc-act.c: Fix comment typos.
5630         * doc/invoke.texi: Fix a typo.
5631
5632 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
5633
5634         PR optimization/9707.
5635         * stmt.c (emit_case_nodes): Emit equality comparisons instead
5636         of recursing if both children are single-valued cases with no
5637         children.
5638
5639 2004-03-25  Paul Brook  <paul@codesourcery.com>
5640
5641         * config/arm/arm.c (vfp_print_multi): Remove.
5642         (arm_output_fldmx): New function.
5643         (vfp_emit_fstmx): Return block size, not insn. Add ARM10 VFPr1 bugfix.
5644         (arm_expand_prologue): Update to match.
5645         (arm_get_vfp_saved_size): New Function.
5646         (arm_get_frame_offsets): Use it.
5647         (arm_output_epilogue): Use new functions.
5648
5649 2004-03-24  Richard Henderson  <rth@redhat.com>
5650
5651         * alias.c (alias_invariant, alias_invariant_size): Mark GTY.
5652         (reg_known_value, reg_known_value_size): Likewise; make static.
5653         (reg_known_equiv_p): Make static.
5654         (clear_reg_alias_info): Update for new indexing.
5655         (get_reg_known_value, set_reg_known_value): New.
5656         (get_reg_known_equiv_p, set_reg_known_equiv_p): New.
5657         (canon_rtx): Use them.
5658         (init_alias_analysis): Likewise.  Allocate reg_known_value with gc.
5659         Don't play queer offsetting games with reg_known_value and
5660         reg_known_equiv_p.
5661         (end_alias_analysis): Free reg_known_value with gc.
5662         * rtl.h (get_reg_known_value, get_reg_known_equiv_p): Declare.
5663         * sched-deps.c (reg_known_equiv_p, reg_known_value): Remove.
5664         (deps_may_trap_p, sched_analyze_1, sched_analyze_2): Use the new
5665         functions instead.
5666
5667 2004-03-24  Kazu Hirata  <kazu@cs.umass.edu>
5668
5669         * dwarf2asm.c, loop.h, pretty-print.c, pretty-print.h,
5670         config/i386/mmintrin.h: Update copyright.
5671
5672 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
5673
5674         * configure.ac: Add --enable-werror-always (for top level bootstrap
5675         support).
5676         * configure: Regenerate.
5677
5678 2004-03-24  Ziemowit Laski  <zlaski@apple.com>
5679
5680         * objc/objc-act.c (objc_comptypes): Treat comparisons
5681         between 'Class' and '<class> *' as explicitly invalid.
5682
5683 2004-03-24  David Edelsohn  <edelsohn@gnu.org>
5684
5685         * doc/invoke.texi (-frename-registers): Add enabled at -O3.
5686         (-fprofile-values): Add enabled with profile-{generate,use}.
5687         (-fvpt): Same.
5688         (-ftracer): Add enabled with profile-use.
5689         (-funit-at-a-time): Add enabled at -O2,-O3.
5690         (-funroll-loops): Add enabled with profile-use.
5691         (-funswitch-loops): Add enabled with profile-use.  Remove duplicates.
5692         (max-gcse-passes): Mention default.
5693         (max-cse-path-length): Mention default.
5694
5695 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
5696
5697         * Makefile.in (STRICT2_WARN): Reorder.
5698         * configure.ac: Check for -Wold-style-definition, and use it
5699         in strict1_warn if it's available.
5700         * configure: Regnerate.
5701
5702 2004-03-24  Paul Brook  <paul@nowt.org>
5703
5704         * config.gcc <arm>: Add --with-abi=
5705         * config/arm/arm-protos.h (arm_get_frame_size, thumb_get_frame_size,
5706         thumb_far_jump_used): Remove prototypes.
5707         (arm_needs_doubleword_align): Add prototype.
5708         (thumb_compute_initial_elimination_offset): Ditto.
5709         * config/arm/arm.c (arm_get_frame_offsets): New function.
5710         (use_return_insn, output_return_instruction, arm_output_epilogue,
5711         arm_output_function_epilogue, arm_compute_initial_elimination_offset,
5712         arm_expand_prologue, thumb_expand_epilogue): Use it.
5713         (arm_abi, target_abi_name, all_arm_abis): New variables.
5714         (arm_override_options): Set them.  Set structure padding for AAPCS.
5715         (arm_return_in_memory): Update ABI check.
5716         (arm_init_cumulative_args): Initialize can_split.
5717         (arm_needs_doubleword_align): New function.
5718         (arm_function_arg): Don't split args after pushing to stack. Handle
5719         doubleword/even reg alignment.
5720         (arm_va_arg): Handle all doubleword aligned args.
5721         (add_minpoolforward ref, dump_minpool, push_minpool_fix): Align based
5722         on ABI, not CPU.
5723         (arm_compute_save_reg0_reg12_mask): Fix comment.
5724         (thumb_get_frame_size, thumb_get_frame_size): Remove.
5725         (thumb_jump_far_used_p): Remove superfluous argument.  Return save
5726         value for alignment.
5727         (thumb_unexpanded_epilogue, thumb_output_function_prologue): Change
5728         to match.
5729         (thumb_compute_initial_elimination_offset): New function.
5730         (thumb_expand_prologue): Use arm_get_frame_offsets.  Remove
5731         unneccessary rounding.
5732         * config/arm/arm.h (target_abi_name): Declare.
5733         (ARM_DOUBLEWORD_ALIGN, DOUBLEWORD_ALIGNMENT, TARGET_IWMMXT_ABI,
5734         arm_abi_type, ARM_DEFAULT_ABI): Define.
5735         (ARM_FLAG_ATPCS): Remove.
5736         (TARGET_OPTIONS, OPTION_DEFAULT_SPECS): Add -mabi=.
5737         (BIGGEST_ALIGNMENT, PREFERRED_STACK_BOUNDARY, STACK_BOUNDARY): Use it.
5738         (ADJUST_FIELD_ALIGN, DATA_ALIGNMENT, LOCAL_ALIGNMENT,
5739         TYPE_NEEDS_IWMMXT_ALIGNMENT): Remove.
5740         (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P, FUNCTION_ARG_REGNO_P):
5741         Contitionalize on ABI, not CPU.
5742         (struct arm_stack_offsets): Define.
5743         (struct machine_function): Add stack_offsets.  Remove frame_size.
5744         (FUNCTION_ARG_PARTIAL_NREGS): Don't split if previous args have been
5745         pushed.
5746         (FUNCTION_ARG_ADVANCE, FUNCTION_ARG_BOUNDARY): Handle general
5747         doubleword alignment.
5748         (THUMB_INITIAL_ELIMINATION_OFFSET,
5749         ARM_INITIAL_ELIMINATION_OFFSET): Remove.
5750         (INITIAL_ELIMINATION_OFFSET): Call functions directly.
5751         * config/arm/arm.md (align_8): Enable for all targets.
5752         * config/arm/netbsd-elf.h (TARGET_DEFAULT): Remove TARGET_ATPCS.
5753         (ARM_DEFAULT_ABI): Define.
5754         * doc/invoke.texi <ARM>: Document -mabi=. Update documentation for
5755         -mstructure-size-boundary.
5756
5757 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
5758
5759         * configure.ac: Check for -Wno-variadic-macros; don't use
5760         -pedantic (in stage 1 or a simple 'make all') unless it's available,
5761         and if it's available, use it.  Also, clean up check for
5762         -Wno-long-long.
5763         * configure: Regenerate.
5764
5765 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
5766
5767         * config.gcc (mips64vr-*-elf*, mips64vrel-*-elf*): Remove tm_defines.
5768         * config/mips/vr.h (DEFAULT_VR_ARCH): New macro, defined to vr4130.
5769         (MULTILIB_DEFAULTS): Use it.
5770         (MIPS_CPU_STRING_DEFAULT): Remove.
5771         (MIPS_ABI_DEFAULT, MIPS_MARCH_CONTROLS_SOFT_FLOAT): Define.
5772         (DRIVER_SELF_SPECS): Make -mfix-vr4122-bugs imply -march=vr4120.  Make
5773         EABI64 -mlong32 the default ABI.  Enforce the default architecture.
5774         * config/mips/t-vr (MULTILIB_OPTIONS): Add mfix-vr4122-bugs,
5775         march=vr4130, march=vr4300, march=vr5000 and march=vr5500.
5776         (MULTILIB_MATCHES): Use -mfix-vr4122-bugs multilibs for -march=vr4120.
5777         (MULTILIB_EXCEPTIONS): Change choice of multilibs.  Update comments
5778         accordingly.
5779
5780 2004-03-24  DJ Delorie  <dj@redhat.com>
5781             Richard Sandiford  <rsandifo@redhat.com>
5782
5783         * config/mips/mips.h (MASK_FIX_VR4122, TARGET_FIX_VR4122): New macros.
5784         (TARGET_SWITCHES): Add -mfix-vr4122-bugs and -mno-fix-vr4122-bugs.
5785         (ASM_SPEC): Pass down -mfix-vr4122-bugs.
5786         * config/mips/mips.c (mips_avoid_hazards): Don't emit whole functions
5787         in .set noreorder and .set nomacro if TARGET_FIX_VR4122.
5788         (mips_init_libfuncs): Use special functions for divsi3 and modsi3
5789         if TARGET_FIX_VR4122.
5790         * config/mips/mips.md (define_attr length): Account for nops inserted
5791         after macc and dmult when using -mfix-vr4122-bugs.
5792         (umuldi3_highpart, divmodsi4, divmoddi4): Disable if TARGET_FIX_VR4122.
5793         * config/mips/t-vr (LIB2FUNCS_STATIC_EXTRA): Define instead of
5794         LIB2FUNCS_EXTRA.  Add config/mips/vr4122-div.S.
5795         * config/mips/vr4122-div.S: New file.
5796         * doc/invoke.texi: Document -mfix-vr4122-bugs.
5797
5798 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
5799
5800         * config/mips/mips.h (PROCESSOR_R4130): New processor_type.
5801         (TARGET_MIPS4130): New macro.
5802         (ISA_HAS_MACC): Return true if TARGET_MIPS4130 && !TARGET_MIPS16.
5803         * config/mips/mips.c (mips_cpu_info_table): Add a vr4130 entry.
5804         (override_options): Extend MIPS_MARCH_CONTROLS_SOFT_FLOAT to deal
5805         with PROCESSOR_R4130.
5806         * config/mips/mips.md (define_attr cpu): Add r4130.
5807         * doc/invoke.texi: Document vr4130 as a supported MIPS architecture.
5808
5809 2004-03-24  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
5810             Richard Sandiford  <rsandifo@redhat.com>
5811
5812         * doc/invoke.texi: Apply missed hunk from 2004-03-03 change.
5813
5814 2004-03-24  Alexandre Oliva  <aoliva@redhat.com>
5815
5816         PR preprocessor/14438
5817         * cpplib.c (do_pragma): Remove line_change call after pragma
5818         handler.
5819
5820 2004-03-23  Ian Lance Taylor  <ian@wasabisystems.com>
5821
5822         * doc/extend.texi (ARM Built-in Functions): Replace with correct
5823         declarations.
5824
5825 2004-03-23  Roger Sayle  <roger@eyesopen.com>
5826
5827         * reg-stack.c (get_true_reg): Handle FLOAT_TRUNCATE like FLOAT_EXTEND
5828         if flag_unsafe_math_optimizations.
5829         * config/i386/i386.md (truncdfsf2): If flag_unsafe_math_optimizations
5830         and TARGET_80387 expand using truncdfsf2_noop pattern.
5831         (truncxfsf2): Likewise using truncxfsf2_noop.
5832         (truncxfdf2): Likewise using truncxfdf2_noop.
5833         (truncdfsf2_noop, truncxfsf2_noop, truncxfdf2_noop): New patterns.
5834
5835 2004-03-23  Ziemowit Laski  <zlaski@apple.com>
5836
5837         * hooks.c (hook_constcharptr_tree_null): New hook.
5838         * hooks.h (hook_constcharptr_tree_null): New prototype.
5839         * target-def.h (TARGET_MANGLE_FUNDAMENTAL_TYPE): New target hook.
5840         * target.h (mangle_fundamental_type): New target hook.
5841         * config/rs6000/rs6000.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Point
5842         target hook at rs6000_mangle_fundamental_type.
5843         (rs6000_mangle_fundamental_type): New function.
5844         * doc/tm.texi (TARGET_MANGLE_FUNDAMENTAL_TYPE): Document.
5845
5846 2004-03-23  Zack Weinberg  <zack@codesourcery.com>
5847
5848         PR 12267, 12391, 12560, 13129, 14114, 14133
5849         * c-tree.h: Forward declare struct c_binding.  Declare
5850         c_override_bindings_to_false.  Update prototypes.
5851         (struct lang_identifier): Update comments.  Change fields to be
5852         struct c_binding *.
5853         (IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE)
5854         (IDENTIFIER_LABEL_VALUE, C_DECL_INVISIBLE)
5855         (KEEP_NO, KEEP_YES, KEEP_MAYBE): Delete.
5856         (C_DECL_IN_EXTERNAL_SCOPE, C_DECL_DECLARED_BUILTIN): New.
5857         * c-common.h: Update prototypes.
5858         * c-decl.c (struct c_scope): Update commentary.  Remove names,
5859         names_last, parms, parms_last, tags, and shadowed fields.  Add
5860         bindings and depth fields.
5861         (scope_freelist): Move to more appropriate location.
5862         (c_print_identifier): Update for changes to struct lang_identifier.
5863         (objc_mark_locals_volatile): Update for new bindings structures.
5864         (global_bindings_p): Honor c_override_global_bindings_to_false.
5865         (pushlevel): Rename to push_scope; take no arguments; use the
5866         scope_freelist; initialize scope->depth and check for overflow.
5867         (poplevel): Rename to pop_scope; totally rewritten for new bindings
5868         structures.
5869         (diagnose_mismatched_decls): Use C_DECL_DECLARED_BUILTIN, not
5870         C_DECL_INVISIBLE, for certain decisions.  Adjust some diagnostics.
5871         Improve some commentary.  Adjust handling of forward parm decls.
5872         (merge_decls): Set C_DECL_DECLARED_BUILTIN when appropriate.
5873         Preserve C_DECL_IN_EXTERNAL_SCOPE.
5874         (warn_if_shadowing): Correct indentation.  Improve diagnostics.
5875         (pushdecl): Remove unnecessary assertion.  Short-circuit anonymous
5876         decls.  Rewrite for new bindings structures.  Improve commentary.
5877         Eliminate the copy_node call.
5878         (implicit_decl_warning): Use the "diag" idiom (as seen in
5879         locate_old_decl) to reduce code duplication; call locate_old_decl
5880         if appropriate.  Relocate to remove need for forward declaration.
5881         (implicitly_declare): Adjust for new bindings structures.  Kludge
5882         around Objective-C not-really-builtin functions.
5883         (undeclared_variable): Improve diagnostics.  If current_function_decl
5884         is nonnull but current_function_scope is null, use current_scope.
5885         Use bind.
5886         (lookup_tag): Adjust for new bindings structures.  Kludge around
5887         Objective-C's tag declarations that wind up in the external scope.
5888         (lookup_name): Adjust for new bindings structures.  Kludge around
5889         c-common.c's pseudo-typedefs that wind up in the external scope.
5890         (lookup_name_current_level): Rename lookup_name_in_scope; take a
5891         second argument indicating the scope to examine; rewrite for
5892         new bindings structures.
5893         (c_init_decl_processing): Adjust for renamed functions.  Do not
5894         initialize current_file_decl, first_builtin_decl, last_builtin_decl.
5895         First scope pushed is the external scope, not the global scope.
5896         (builtin_function): Use bind, not pushdecl.  Adjust other bits
5897         for new data structures.  Keep track of builtins that should be
5898         made visible automatically.
5899         (start_decl): Adjust diagnostics.  Remove unnecessary call to
5900         expand_decl.
5901         (grokparms): Return 0 if arg_types is error_mark_node.
5902         (get_parm_info): Rename "void_at_end" argument to "ellipsis", with
5903         reversed sense.  Rewrite for new bindings structures.  Do not
5904         leave any decls in the scope, to prevent pop_scope from doing
5905         contradictory things with them.
5906         (finish_struct, finish_enum): Remove redundant diagnostics.
5907         (build_enumerator): Don't cascade diagnostics for error_mark_node.
5908         Mark location where -pedantic changes the meaning of the program.
5909         (store_parm_decls_newstyle, store_parm_decls_oldstyle): Load the
5910         parameter decls into the function's scope structure using bind.
5911         Warn here about function definitions in the wrong style.
5912         Adjust diagnostics.
5913         (store_parm_decls): Correct the determination of whether a
5914         function was defined with a prototype.
5915         (c_write_global_declarations): Operate on all file decls and on
5916         the external scope.  Split body of the loop to...
5917         (c_write_global_declarations_1): ... this new function, to avoid
5918         code duplication.
5919         (truly_local_externals, first_builtin_decl, last_builtin_decl)
5920         (make_scope, pop_scope, in_parm_level_p, set_block)
5921         (any_external_decl, record_external_decl, bind_label, getdecls)
5922         (link_hash_hash, link_hash_eq, merge_translation_unit_decls)
5923         (c_reset_state): Delete.
5924         (visible_builtins, c_override_global_bindings_to_false)
5925         (c_binding, I_SYMBOL_BINDING, I_SYMBOL_DECL, I_TAG_BINDING)
5926         (I_TAG_DECL, I_LABEL_BINDING, I_LABEL_DECL, file_scope)
5927         (external_scope, binding_freelist, bind, free_binding_and_advance)
5928         (push_file_scope, pop_file_scope): New.
5929         (pushtag, pushdecl_top_level, lookup_label, declare_label)
5930         (define_label, c_make_fname_decl, finish_decl)
5931         (mark_forward_parm_decls, build_compound_literal)
5932         (grokdeclarator, start_function, check_for_loop_decls)
5933         (identifier_global_value, record_builtin_type): Minor adjustments
5934         for new bindings structures.  Improve diagnostics and commentary.
5935         * c-objc-common.c (start_cdtor, finish_cdtor): Adjust calls to
5936         pushlevel/poplevel respectively.
5937         (c_objc_common_finish_file): Don't call merge_translation_unit_decls.
5938         * c-opts.c (c_common_parse_file): Remove spurious ATTRIBUTE_UNUSED.
5939         Warn about YYDEBUG not being defined only if -dy.  Remove no-longer-
5940         correct loop over multiple translation units; call fatal_error if
5941         requested to compile more than one file at once.  (This disables
5942         IMA temporarily - an up-front error being preferable to a crash.)
5943         * c-parse.in (pushlevel, poplevel rules): Rename push_scope, pop_scope.
5944         (all actions): Adjust calls to pushlevel/poplevel.
5945         (parsing_iso_function_signature): Delete.
5946         (extdef_1): Fold into extdef.
5947         (old_style_parm_decls_1): Fold into old_style_parm_decls.  Don't
5948         warn here about function definitions in the wrong style.
5949         (after_tyle_declarator, parm_declarator_starttypename)
5950         (parm_declarator_nostarttypename, notype_declarator): Remove
5951         commented-out productions.
5952         (parmlist_1, parmlist_2): Use make_node, not tree_cons, to create
5953         an empty TREE_LIST node.  Adjust calls to get_parm_info.
5954         (parmlist_2 : ELLIPSIS): Tag the arg-info block with error_mark_node
5955         to suppress -Wold-style-definition after this error.
5956         (c_parse_file): Don't clear the binding stack or call
5957         finish_fname_decls here.  Correct comment.
5958         * c-typeck.c (same_translation_unit_p): Export.
5959         (common_type): Use c_override_global_bindings_to_false, not
5960         pushlevel/poplevel/declare_parm_level.
5961         * c-lang.c: Override LANG_HOOKS_CLEAR_BINDING_STACK,
5962         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK,
5963         and LANG_HOOKS_GETDECLS with do-nothing stubs.
5964         * objc/objc-lang.c: Likewise.
5965         * objc/objc-act.c: Adjust all calls to pushlevel, poplevel,
5966         get_parm_info.
5967         (OBJC_VOID_AT_END): Delete; replace all uses
5968         with void_list_node.
5969         (generate_forward_declaration_to_string_table): Delete.
5970         * objc/objc-act.h (OCTI_STRG_DECL, UOBJC_STRINGS_decl): Delete.
5971
5972         * coverage.c (create_coverage): Don't pushdecl anything.
5973         * langhooks.c (lhd_clear_binding_stack): Call
5974         lang_hooks.decls.poplevel, not poplevel.
5975         * tree.c (list_length): If ENABLE_TREE_CHECKING, abort on a
5976         circular list rather than going into an infinite loop.
5977
5978 2004-03-23  Olivier Hainque  <hainque@act-europe.fr>
5979
5980         * optabs.c (expand_binop): When synthesizing double word rotates
5981         from single word shifts, use a new register target if the provided
5982         target is not a REG already.
5983
5984 2004-03-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5985
5986         * alias.c (get_alias_set): Add support for TYPE_REF_CAN_ALIAS_ALL.
5987         * c-common.c (handle_mode_attribute): Add extra arg to
5988         build_pointer_type_for_mode and build_reference_type_for_mode.
5989         * c-typeck.c (build_c_cast): Only look at TREE_CONSTANT_OVERFLOW
5990         for INTEGER_CST.
5991         * tree.c (build_pointer_type_for_mode): Add arg CAN_ALIAS_ALL.
5992         Chain pointers via TYPE_NEXT_PTR_TO.
5993         (build_reference_type_for_mode): Similarly.
5994         (build_type_no_quals): Add extra arg to build_pointer_type_for_mode
5995         and build_reference_type_for_mode.
5996         (tree_check4_failed): New function.
5997         * tree.h (TREE_CHECK4, PTR_OR_REF_CHECK): New macros.
5998         (TYPE_REF_CAN_ALIAS_ALL, TYPE_NEXT_PTR_TO, TYPE_NEXT_REF_TO): Likewise.
5999         (TREE_NO_UNSUED_WARNING, TREE_VIA_VIRTUAL, TREE_CONSTANT_OVERFLOW):
6000         Add check.
6001
6002 2004-03-23  Roger Sayle  <roger@eyesopen.com>
6003
6004         * fold-const.c (tree_expr_nonnegative_p): A&B is nonnegative when
6005         A is nonnegative or B is nonnegative.  Similarly A|B is nonnegative
6006         when both A and B are nonnegative.
6007         (tree_expr_nonzero_p): A|B is nonzero when A is nonzero or B is
6008         nonzero.
6009
6010 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
6011
6012         * fold-const.c (fold): Remove cases for INTEGER_CST, REAL_CST,
6013         VECTOR_CST, STRING_CST, COMPLEX_CST, and CONSTRUCTOR.
6014
6015 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
6016
6017         PR optimization/14669
6018         * fold-const.c (fold): Only unwiden integer comparisons for equality
6019         and inequality operators, or when the signedness doesn't change.
6020
6021 2004-03-23  Jakub Jelinek  <jakub@redhat.com>
6022
6023         * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
6024         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Set.
6025         * config/sparc/t-linux: New file.
6026
6027 2004-03-23  Richard Sandiford  <rsandifo@redhat.com>
6028
6029         * gcse.c (can_assign_to_reg_p): New function, split out from...
6030         (want_to_gcse_p): ...here.
6031         (compute_ld_motion_mems): Use can_assign_to_reg_p to validate
6032         the rhs of a store.
6033
6034 2004-03-22  Diego Novillo  <dnovillo@redhat.com>
6035
6036         * c-typeck.c (same_translation_unit_p): Fix pasto.
6037
6038 2004-03-22  David Edelsohn  <edelsohn@gnu.org>
6039
6040         * params.def (PARAM_MAX_SCHED_REGION_BLOCKS): New.
6041         (PARAM_MAX_SCHED_REGION_INSNS): New.
6042         * sched-rgn.c: Include params.h
6043         (MAX_RGN_BLOCKS): Delete.
6044         (MAX_RGN_INSNS): Delete.
6045         (too_large): Return bool.  Convert to PARAM_VALUE.
6046         * Makefile.in (sched-rgn.o): Depend on $(PARAMS_H).
6047         * doc/invoke.texi (param): Document max-sched-region-blocks and
6048         max-sched-region-insns.
6049
6050 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
6051
6052         * dwarf2out.c (is_subrange_type): Do not emit a subrange_type DIE
6053         for base types.
6054
6055 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
6056
6057         * dwarf2out.c (is_subrange_type): Minor code rework. No behavior
6058         change.
6059
6060 2004-03-22  Jakub Jelinek  <jakub@redhat.com>
6061
6062         PR c/14069
6063         * c-decl.c (finish_struct): Change type of incorrect flexible array
6064         field into error_mark_node.
6065
6066 2004-03-22  Andrew Pinski  <pinskia@physics.uc.edu>
6067
6068         PR target/14580
6069         * config/rs6000/rs6000.c (symbol_ref_operand): Reject symbols
6070         who are not local for Darwin PIC.
6071
6072 2004-03-22  Ulrich Weigand  <uweigand@de.ibm.com>
6073
6074         * regrename.c (regrename_optimize): Set regs_ever_live for all
6075         registers introduced as replacement.
6076
6077 2004-03-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
6078
6079         PR middle-end/14470
6080         * expr.c (mark_queue): New function.
6081         (emit_insns_enqueued_after_mark): New function replacing
6082         emit_queue.  Clear the body of emitted queued insns.
6083         (emit_queue): Call emit_insns_enqueued_after_mark.
6084         (store_expr): Mark the increment queue on entry.  Emit
6085         only the incrementations queued when expanding the source.
6086
6087 2004-03-22  Nathanael Nerode  <neroden@gcc.gnu.org>
6088
6089         * configure.ac: Allow --disable-coverage-flags (for the future benefit
6090         of top level bootstrap, and consistency).  Reindent.
6091         * configure: Regenerate.
6092
6093 2004-03-21  Kazu Hirata  <kazu@cs.umass.edu>
6094
6095         * bt-load.c, builtins.c, cfghooks.c, cfgrtl.c, gcse.c,
6096         ggc-page.c, integrate.c, var-tracking.c, web.c: Remove
6097         unnecessary casts.
6098
6099 2004-03-22  Danny Smith  <dannysmith@users.sourceforge.net>
6100
6101         PR target/14291
6102         * gcov-io.h (gcov_truncate): Define ftruncate as _chsize for
6103         __MINGW32__.
6104
6105 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
6106
6107         * config/s390/s390.md ("*doloop_si"): Change predicate for operand 2
6108         to nonimmediate_operand.
6109         ("*doloop_di"): Likewise.
6110
6111 2004-03-21  Alexandre Oliva  <aoliva@redhat.com>
6112
6113         * real.h (struct real_value): Use the same type for all
6114         bitfields.  Rename exp to uexp.
6115         (REAL_EXP, SET_REAL_EXP): New accessor macros for uexp.
6116         Adjust all uses of exp...
6117         * builtins.c: ... here, ...
6118         * emit-rtl.c: ... here, and ...
6119         * real.c: ... and here.
6120
6121 2004-03-21  Gabriel Dos Reis  <gdr@integrable-solutions.net>
6122
6123         * pretty-print.c (pp_base_maybe_space): New function.
6124         * pretty-print.h (pp_base_maybe_space): Declare.
6125         (pp_maybe_space): New macro.
6126
6127 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
6128
6129         * config/s390/s390.md ("addti3", "subti3"): New insns and splitters.
6130
6131 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
6132
6133         * expmed.c (choose_mult_variant): Pass MULT_COST as argument instead
6134         of using register multiplication cost.
6135         (expand_mult): Adapt choose_mult_variant call.
6136         (expand_mult_highpart): Call choose_mult_variant with WIDER_MODE
6137         of MODE; pass appropriate cost bound.  Adjust result when
6138         performing signed multiplication by a negative constant.
6139         Don't use intermediate modes larger than word_mode.
6140
6141 2004-03-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6142
6143         * alias.c (get_alias_set): Remove handling of PLACEHOLDER_EXPR.
6144         * emit-rtl.c (component_ref_for_mem_expr): Likewise.
6145         (set_mem_attributes_minus_bitpos): Call SUBSTITUTE_PLACEHOLDER_IN_EXPR.
6146         * explow.c (expr_size): Likewise.
6147         * expr.h (placeholder_list, find_placeholder): Deleted.
6148         * expr.c (store_constructor): Likewise.
6149         (get_inner_reference): Likewise.  Also don't call find_placeholder.
6150         (placeholder_list, find_placeholder): Deleted.
6151         (is_aligning_offset): Don't handle WITH_RECORD_EXPR, PLACEHOLDER_EXPR.
6152         (expand_expr_real, cases PLACEHOLDER_EXPR, WITH_RECORD_EXPR): Likewise.
6153         (highest_pow2_factor, case WITH_RECORD_EXPR): Remove.
6154         * dojump.c (do_jump, case WITH_RECORD_EXPR): Likewise.
6155         * dwarf2out.c (loc_descriptor_from_tree, case WITH_RECORD_EXPR):
6156         Likewise.
6157         * fold-const.c (invert_truthvalue, case WITH_RECORD_EXPR): Likewise.
6158         (extract_muldiv, case WITH_RECORD_EXPR): Likewise.
6159         * tree.c (expr_align, case WITH_RECORD_EXPR): Likewise.
6160         (contains_placeholder_p): Don't handle WITH_RECORD_EXPR.
6161         Clean up by using first_rtl_op.
6162         (substitute_in_expr): Use SUBSTITUTE_IN_EXPR for recursive call.
6163         (substitute_placeholder_in_expr): New function.
6164         * tree.def (WITH_RECORD_EXPR): Deleted.
6165         * tree.h (SUBSTITUTE_IN_EXPR, SUBSTITUTE_PLACEHOLDER_IN_EXPR): New.
6166         (substitute_placeholder_in_expr): New.
6167
6168 2004-03-21  Andrew Pinski  <pinskia@gcc.gnu.org>
6169
6170         * dojump.c (prefer_and_bit_test): Fix which part of
6171         the and_test is replaced.
6172
6173 2004-03-21  Joseph S. Myers  <jsm@polyomino.org.uk>
6174
6175         * frontends.texi: Add missing line.
6176
6177 2004-03-21  Zack Weinberg  <zack@codesourcery.com>
6178             Chris Devers  <cdevers@pobox.com>
6179             Joseph S. Myers  <jsm@polyomino.org.uk>
6180
6181         * doc/frontends.texi: Rewrite.
6182         * doc/gcc.texi: Update last modification date.
6183
6184 2004-03-21  Josef Zlomek  <zlomekj@suse.cz>
6185
6186         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Print the debug
6187         message before redirecting the edge.
6188
6189 2004-03-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6190
6191         * emit-rtl.c (set_mem_attributes_minus_bitpos): Set MEM_POINTER
6192         flag.
6193         * explow.c (force_not_mem): Set REG_POINTER flag according to
6194         MEM_POINTER one.
6195         * rtl.h (MEM_POINTER): New macro.
6196         (struct rtx_def): Use integrated for MEM_SCALAR_P and frame_related
6197         for MEM_POINTER.
6198
6199 2004-03-20  Roger Sayle  <roger@eyesopen.com>
6200
6201         PR target/13889
6202         * cse.c (fold_rtx): Avoid substituting constants into unary
6203         conversion operations.
6204
6205 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
6206
6207         * fold-const.c (fold): Replace "expr" with "t".
6208
6209 2004-03-20  Ian Lance Taylor  <ian@wasabisystems.com>
6210
6211         PR c/12373
6212         * c-typeck.c (tagged_types_tu_compatible_p): Don't use
6213         DECL_ORIGINAL_TYPE if there isn't one.
6214
6215 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
6216
6217         * fold-const.c (fold): Replace "final_type" with "type".
6218         Remove variable "final_type".
6219
6220 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
6221
6222         * fold-const.c (fold): Constify "type".
6223         Replace "TREE_TYPE (t)" with "type".
6224
6225 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
6226
6227         * bb-reorder.c, bt-load.c, c-decl.c, cfgcleanup.c, coverage.c,
6228         dwarf2asm.c, ifcvt.c, stor-layout.c, varasm.c: Replace calls
6229         via (*targetm.foo) () with targetm.foo ().
6230
6231 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
6232
6233         PR other/14630
6234         * doc/install.texi: Add info directory category and entry.
6235
6236 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
6237
6238         * fold-const.c (fold): Replace "t" with "tem" where it is used
6239         as a temporary variable.  Remove "orig_t" and all of its uses.
6240
6241 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
6242
6243         * fold-const.c (fold): Remove variable "invert".
6244         Move the handling of relational expressions that can be folded
6245         to a constant ...
6246         (fold_relational_const): ... here.
6247         (tree_expr_nonzero_p): New.
6248
6249 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
6250
6251         PR c/14635
6252         * builtins.def (nan, nanf, nanl, nans, nansf, nansl): Change to
6253         DEF_GCC_BUILTIN.
6254
6255 2004-03-20  Richard Sandiford  <rsandifo@redhat.com>
6256
6257         * Makefile.in (dojump.o): Depend on $(GGC_H) and dojump.h.
6258         (GTFILES): Add $(srcdir)/dojump.h.
6259         (gt-dojump.h): New dependency.
6260         * dojump.c (and_reg, and_test, shift_test): New static variables.
6261         (prefer_and_bit_test): New function.
6262         (do_jump): Use it to choose between (X & (1 << C)) and (X >> C) & 1.
6263
6264 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
6265
6266         * c-common.c, cfgcleanup.c, cgraphunit.c, c-pretty-print.c,
6267         expmed.c, ggc-common.c, jump.c, passes.c, recog.c, regmove.c,
6268         reorg.c, tree.h: Fix comment typos.
6269
6270 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
6271
6272         * alias.c, attribs.c, bt-load.c, builtins.c, c-common.c,
6273         c-decl.c, c-objc-common.c, c-typeck.c, calls.c, cfglayout.c,
6274         cse.c, dbxout.c, dwarf2out.c, except.c, final.c,
6275         haifa-sched.c, integrate.c, passes.c, rtlanal.c, sched-rgn.c,
6276         sched-vis.c, simplify-rtx.c, stor-layout.c, tree.c, varasm.c,
6277         vmsdbgout.c: Replace calls via (*targetm.foo) () with
6278         targetm.foo ().
6279
6280 2004-03-19  Ziemowit Laski  <zlaski@apple.com>
6281
6282         * config/rs6000/altivec.h (vec_dst, vec_dstst, vec_dststt,
6283         vec_dstt, vec_sld, vec_splat): Add prototypes, marked with
6284         always_inline attribute.
6285         * config/rs6000/rs6000.c (altivec_expand_dst_builtin):
6286         Treat expansion as completed even if literal argument is
6287         invalid (so that other expansions are not tried in vain).
6288
6289 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
6290
6291         * loop-doloop.c (add_test): Replace GEN_INT (0) with
6292         const0_rtx.
6293
6294 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
6295
6296         * fold-const.c (fold) <ABS_EXPR>: Move the handling of constants
6297         ...
6298         (fold_abs_const): ... here.
6299
6300 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6301
6302         * tree.h (TYPE_ARRAY_MAX_SIZE): Use type.maxval directly.
6303
6304 2004-03-19  Denis Chertykov  <denisc@overta.ru>
6305
6306         PR target/11520
6307         * config/avr/avr.md ("call_insn"): Handle explicit integer
6308         specially.
6309         (call_value_insn): Likewise.
6310
6311 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6312
6313         * tree.c (substitute_in_expr): Rewrite to simplify and be more generic.
6314
6315 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
6316
6317         * fold-const.c (negate_expr): Move the handling of constants
6318         ...
6319         (fold_negate_const): ... here.
6320
6321 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6322
6323         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): New macro and hook.
6324         * langhooks.h (struct lang_hooks_for_types): New field hash_types.
6325         * tree.c (debug_no_type_hash): Deleted.
6326         (type_hash_canon): Abort if passed a variant.
6327         Check lang_hooks.types.hash_types.
6328         (build_type_no_quals): Copy mode of POINTER_TYPE and REFERENCE_TYPE.
6329         (build_array_type): Remove unnecessary allocation of pointer type.
6330         (build_complex_type): Properly qualify resulting type.
6331
6332 2004-03-19  Paolo Bonzini  <bonzini@gnu.org>
6333
6334         * config/rs6000/rs6000.c (rs6000_init_builtins): Fix typo.
6335
6336 2004-03-19  Richard Sandiford  <rsandifo@redhat.com>
6337
6338         * expmed.c (choose_mult_variant, expand_mult_const): New, split from...
6339         (expand_mult): ...here.
6340         (extract_high_half): New, split out from expand_mult_highpart.
6341         (expand_highpart_optab): Likewise.  Don't clobber target prematurely.
6342         (expand_highpart): Evaluate the cost of a shift/add sequence,
6343         then see if any of the specialized optabs are cheaper.
6344
6345 2004-03-18  Ian Lance Taylor  <ian@wasabisystems.com>
6346
6347         * mklibgcc.in: Remove obsolete MAYBE_USE_COLLECT2.
6348
6349 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6350
6351         * convert.c (convert_to_real): Add more math builtins.
6352
6353 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6354
6355         * convert.c (convert_to_real): Reformat using switch stmt.
6356
6357 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
6358
6359         * c-common.c (pointer_int_sum): Do not complain about using
6360         pointers to pointers-to-members.
6361
6362 2004-03-18  Kazu Hirata  <kazu@cs.umass.edu>
6363
6364         * system.h (MD_ASM_CLOBBERS): Move to "Old target macros that
6365         have moved to the target hooks structure".
6366
6367 2004-03-18  James E Wilson  <wilson@specifixinc.com>
6368
6369         * config/mips/mips.md (type): Split move into arith and fmove.  Split
6370         hilo into mthilo and mfhilo.  Add trap.  Delete icmp.  Fix all uses.
6371         * config/mips/5400.md (ir_vr54_hilo, ir_vr54_arith, ir_vr54_fabs):
6372         Likewise.
6373         * config/mips/5500.md (ir_vr55_hilo, ir_vr55_arith, ir_vr55_fabs):
6374         Likewise.
6375         * config/mips/7000.md (rm7_int_other, rm7_mthilo, rm7_mfhilo,
6376         rm7_fp_quick): Likewise.
6377         * config/mips/9000.md (rm9k_int, rm9k_mfhilo, rm9k_mthilo,
6378         rm9k_fquick): Likewise.
6379         * config/mips/sr71k.md (ir_sr70_hilo, ir_sr70_arith, ir_sr70_fabs):
6380         Likewise.
6381         (ir_sr70_icmp): Delete.
6382
6383 2004-03-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6384
6385         * tree.h (TREE_CHECK2, TREE_CHECK3, TREE_CHECK5): New macros.
6386         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New decl.
6387         (FUNC_OR_METHOD_CHECK, SET_ARRAY_OR_VECTOR_CHECK): New macros.
6388         (REC_OR_UNION_CHECK, NUMERICAL_TYPE_CHECK): Likewise.
6389         (TYPE_VALUES, TYPE_DOMAIN, TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD):
6390         Protect with proper check.
6391         (TYPE_ARG_TYPES, TYPE_METHOD_BASETYPE, TYPE_OFFSET_BASETYPE): Likewise.
6392         (TYPE_MIN_VALUE, TYPE_MAX_VALUE): Likewise.
6393         * tree.c (type_hash_eq): Rewrite to access proper fields for each type.
6394         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New.
6395         * c-typeck.c (build_array_ref): Use TYPE_DOMAIN, not TYPE_VALUES.
6396         * dwarf2out.c (gen_enumeration_type_die): Use TYPE_VALUES,
6397         not TYPE_FIELDS.
6398         * stor-layout.c (set_sizetype): Use TYPE_ORIG_SIZE_TYPE.
6399
6400 2004-03-18  Mostafa Hagog  <mustafa@il.ibm.com>
6401
6402         * gcse.c (eliminate_partially_redundant_loads): Reject change if
6403         dest is set between beginning and current insn.
6404
6405 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
6406
6407         * c-decl.c (grokdeclarator): Do not complain about redeclaring
6408         visible "static" identifiers "extern" in a local scope.
6409         * dwarf2out.c (loc_descriptor_from_tree): Handle pre- and
6410         post-increments/decrements.
6411
6412 2004-03-18  Bob Wilson  <bob.wilson@acm.org>
6413
6414         * config/xtensa/xtensa.c (current_function_arg_words): Delete.
6415         (xtensa_builtin_saveregs): Use current_function_args_info.arg_words.
6416         (xtensa_va_start): Remove assignment to current_function_arg_words.
6417
6418 2004-03-18  Richard Sandiford  <rsandifo@redhat.com>
6419
6420         * alias.c (record_set): Detect the case where a register is assigned
6421         a new value that has the same base term as the old one.
6422
6423 2004-03-18  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6424
6425         * doloop.c: Removed.
6426         * loop-doloop.c: New file.
6427         * Makefile.in (doloop.o): Remove.
6428         (loop-doloop.o): New.
6429         * cfgloop.h (get_loop_level, doloop_optimize_loops): Declare.
6430         * cfgloopanal.c (get_loop_level): New function.
6431         * loop-iv.c (iv_number_of_iterations): Handle case when loop
6432         is leaved immediatelly.
6433         * loop.c (strength_reduce): Do not call doloop optimization.
6434         * loop.h (LOOP_BCT): Removed.
6435         * passes.c (rest_of_handle_loop_optimize): Do not use LOOP_BCT.
6436         (rest_of_handle_loop2): Call doloop_optimize_loops.
6437         (rest_of_compilation): Test for optimizations moved to
6438         rest_of_handle_loop2.
6439
6440 2004-03-17  Fariborz Jahanian <fjahanian@apple.com>
6441
6442         * config/rs6000/rs6000.c (rs6000_stack_info): correct reg_size
6443         for mixed mode.
6444         (rs6000_emit_prologue): Ditto.
6445         (rs6000_emit_epilogue): Ditto.
6446         * config/rs6000/rs6000.h: Definition of DWARF_CIE_DATA_ALIGNMENT
6447         macro for mixed mode.
6448
6449 2004-03-18  Jan Hubicka  <jh@suse.cz>
6450
6451         * predict.c (propagate_freq): Compute correctly frequency of
6452         EXIT_BLOCK.
6453
6454 2004-03-17  Eric Christopher  <echristo@redhat.com>
6455
6456         * builtins.c (apply_args_size): Use reg_raw_mode.
6457         (apply_result_size): Ditto.
6458
6459 2004-03-17  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
6460
6461         PR target/14620
6462         * config/rtems.h: Add STD_LIB_SPEC and LIB_SPEC.
6463
6464 2004-03-17  Jakub Jelinek  <jakub@redhat.com>
6465
6466         * config/rs6000/t-linux64 (bispecs): Don't add -mlong-double-128 for
6467         32-bit builds when defaulting to 32-bit.
6468
6469 2004-03-17  Jan Hubicka  <jh@suse.cz>
6470
6471         * cfgrtl.c (rtl_create_basic_block): Pre-allocate basic_block_info
6472         array.
6473
6474 2004-03-17  James E Wilson  <wilson@specifixinc.com>
6475
6476         * config/mips/mips.md (zero_extendsidi2): Add length attribute.
6477         (hazard_nop): Change type to nop.
6478         (type): Split arith into arith, shift, slt, clz.  Delete darith.
6479         Fix all uses.  Change arith to multi if more than one insn emitted.
6480         * config/mips/5400.md (ir_vr54_arith): Likewise.
6481         * config/mips/5500.md (ir_vr55_arith): Likewise.
6482         * config/mips/7000.md (rm7_int_other): Likewise.
6483         * config/mips/9000.md (rm9k_int): Likewise.
6484         * config/mips/sr71k.md (ir_sr70_arith): Likewise.
6485
6486 2004-03-17  Joel Brobecker  <brobecker@gnat.com>
6487
6488         * dwarf2out.c (subrange_type_die): Define new variable "subtype"
6489         to hold the subtype tree instead of recomputing it several times.
6490
6491 2004-03-17  Kazu Hirata  <kazu@cs.umass.edu>
6492
6493         * config/mn10300/mn10300.c (notice_update_cc): Don't handle
6494         CC_INVERT.
6495         * config/mn10300/mn10300.md (cc): Remove "invert".
6496
6497 2004-03-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6498
6499         * builtins.c (integer_valued_real_p): Add builtin rint.
6500         (fold_builtin): Likewise.
6501         * convert.c (convert_to_real): Likewise.
6502
6503         * convert.c (convert_to_real): Fix typos in `long double'
6504         builtins.
6505
6506 2004-03-16  Mark Mitchell  <mark@codesourcery.com>
6507
6508         PR c++/14481
6509         * fold-const.c (fold): Set TREE_NO_UNUSED_WARNING on implicitly
6510         generated COMPOUND_EXPRs.
6511
6512 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
6513
6514         * config/h8300/t-rtems (h8300-*-rtems*): New.
6515
6516 2004-03-16  Eric Christopher  <echristo@redhat.com>
6517
6518         * doc/cppopts.texi(fwide-exec-charset): Fix typo.
6519
6520 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
6521
6522         * config/i386/i386-protos.h: Add a prototype for
6523         ix86_reverse_condition.
6524         * config/i386/i386.c (ix86_reverse_condition): New.
6525         * config/i386/i386.h (REVERSE_CONDITION): Use
6526         ix86_reverse_condition.
6527         * config/i386/i386.md: Use ix86_reverse_condition instead of
6528         REVERSE_CONDITION.
6529
6530 2004-03-16  J. Brobecker  <brobecker@gnat.com>
6531
6532         * dwarf2out.c (loc_descriptor_from_tree): Add handling for MIN_EXPR.
6533
6534 2004-03-16  Nathanael Nerode  <neroden@gcc.gnu.org>
6535
6536         PR bootstrap/12974
6537         * Makefile.in: Pass $(INCLUDES) down to libgcc.mk explicitly.
6538
6539 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
6540
6541         * c-common.c (c_common_type_for_mode): Build vector types on
6542         demand.
6543         (handle_mode_attribute): Deprecate using the mode attribute
6544         to create vector types.  Fix indentation.
6545         (vector_type_node_list): Remove.
6546         (handle_vector_size_attribute): Create vector types on demand.
6547         Strip a NON_LVALUE_EXPR from the attribute if there is one.
6548         * c-typeck.c (comptypes): Make vector types compatible if they
6549         have the same underlying mode.
6550         (convert_for_assignment): Use comptypes to convert between
6551         vector types.
6552         * tree.c (build_common_tree_nodes_2): Do not create vector types.
6553         * config/arm/arm.c (arm_init_iwmmxt_builtins): Create necessary
6554         vector types.
6555         * tree.h: Remove vector types.
6556         * config/i386/i386.c (i386_init_mmx_sse_builtins): Likewise.
6557         * config/rs6000/rs6000.c (rs6000_init_builtins): Likewise.
6558         (V16QI_type_node, V2SI_type_node, V2SF_type_node, V4HI_type_node,
6559         V4SI_type_node, V4SF_type_node, V8HI_type_node): New globals.
6560         * doc/extend.texi (Vector Types): Document how to use the
6561         vector_size attribute to create vectors, rather than mode.
6562
6563         * config/arm/mmintrin.h: Use vector_size attribute, not mode.
6564         * config/i386/emmintrin.h: Likewise.
6565         * config/i386/mmintrin.h: Likewise.
6566         * config/i386/xmmintrin.h: Likewise.
6567         * config/sh/ushmedia.h: Likewise.
6568
6569 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
6570
6571         * config/freebsd-spec.h, config/arc/arc-protos.h,
6572         config/arm/aout.h, config/arm/elf.h, config/arm/freebsd.h,
6573         config/arm/linux-gas.h, config/arm/semi.h,
6574         config/cris/cris-protos.h, config/i386/xm-djgpp.h,
6575         config/ia64/freebsd.h, config/mips/7000.md,
6576         config/mips/9000.md, config/ns32k/ns32k-protos.h,
6577         config/sparc/pbd.h: Update copyright.
6578
6579 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
6580
6581         PR target/14577
6582         * config.gcc: Switch sh-*-rtems* to ELF.  Add sh-*-rtemscoff.
6583
6584 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
6585
6586         * combine.c (combine_simplify_rtx): Remove the "last"
6587         parameter and its documentation.  Adjust recursive calls.
6588         (simplify_logical): Always perform the only simplification
6589         controlled by "last", if the simplified expression is
6590         actually different.
6591         (try_combine): Do not pass the "last" parameter to
6592         combine_simplify_rtx.
6593
6594 2004-03-16  Richard Sandiford  <rsandifo@redhat.com>
6595
6596         PR target/14599
6597         * config/mips/mips.md (UNSPEC_GP): New constant.
6598         * config/mips/mips.c (CONST_GP_P): Expect the CONST to contain
6599         an UNSPEC instead of (reg $gp).
6600         (mips16_gp_pseudo_reg): Change accordingly.
6601         (print_operand): Print $gp directly when handling CONST_GP_P.
6602
6603 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
6604
6605         * config.gcc, config/m68k/linux.h: Implement with-cpu for m68k-linux.
6606         * longlong.h: Make code 68060 clean when compiling for m68060.
6607
6608 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
6609
6610         * config/m68k/m68k.md: Fix constraints for bitfield instructions.
6611         * doc/md.texi: Clarify description of "i" constraint.
6612
6613 2004-03-15  James E Wilson  <wilson@specifixinc.com>
6614
6615         * config/mips/mips.md (type): Split load into load, fpload, fpidxload.
6616         Split store into store, fpstore, fpidxstore.  Fix all uses.
6617         * config/mips/5400.md (ir_vr54_load, ir_vr54_store, ir_vr54_fstore):
6618         Likewise.
6619         * config/mips/5500.md (ir_vr55_load, i5_vr55_store): Likewise.
6620         * config/mips/7000.md (rm7_ld, rm7_st): Likewise.
6621         * config/mips/9000.md (rm9k_load, rm9k_store): Likewise.
6622         * config/mips/sr71k.md (ir_sr70_load, ir_sr70_store, ir_sr70_fload,
6623         ir_sr70_fstore): Likewise.
6624
6625 2004-03-15  Richard Henderson  <rth@redhat.com>
6626
6627         PR middle-end/14535
6628         * except.c (collect_one_action_chain): Record action for cleanup
6629         outer of exception spec.
6630
6631 2004-03-15  Ian Lance Taylor  <ian@wasabisystems.com>
6632
6633         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
6634         Fix the check for abort and only do the mmap if we can.
6635
6636 2004-03-15  Eric Botcazou  <ebotcazou@act-europe.fr>
6637
6638         * config/sparc/sparc.h: Rework comments about the code model
6639         in 64-bit environment and the mode 'Pmode'.
6640         * doc/invoke.texi (SPARC options): Rework description of the
6641         different code models supported in 64-bit environment.
6642
6643 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
6644
6645         * defaults.h (REVERSIBLE_CC_MODE): Define.
6646         * jump.c (reversed_comparison_code_parts): Don't check if
6647         REVERSIBLE_CC_MODE is defined.
6648
6649 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
6650
6651         * c-incpath.c, c-incpath.h, c-pch.c, c.opt, cppexp.c,
6652         et-forest.h, genattr.c, ggc-none.c, hosthooks-def.h,
6653         hosthooks.h, params.h, ra-colorize.c, web.c,
6654         config/darwin-c.c, config/alpha/freebsd.h, config/arm/pe.c,
6655         config/avr/avr-protos.h, config/avr/avr.md,
6656         config/fr30/fr30-protos.h, config/fr30/fr30.md,
6657         config/h8300/fixunssfsi.c, config/i386/darwin.h,
6658         config/i386/freebsd.h, config/i386/freebsd64.h,
6659         config/ia64/hpux.h, config/ia64/unwind-ia64.c,
6660         config/ip2k/libgcc.S, config/m32r/xm-m32r.h,
6661         config/mmix/mmix-modes.def, config/ns32k/netbsd.h,
6662         config/ns32k/ns32k.md, config/pa/pa64-hpux.h,
6663         config/pa/pa64-regs.h, config/rs6000/aix41.h,
6664         config/rs6000/aix43.h, config/rs6000/host-darwin.c,
6665         config/sparc/aout.h, config/sparc/freebsd.h,
6666         config/sparc/litecoff.h, config/vax/vax-protos.h,
6667         doc/hostconfig.texi, doc/include/gcc-common.texi: Update
6668         copyright.
6669
6670 2004-03-15  Paul Brook  <paul@codesourcery.com>
6671
6672         * config/arm/arm.c (thumb_expand_prologue): Tie prologue insns to fp.
6673
6674 2004-03-15  Gabriel Dos Reis  <gdr@integrable-solutions.net>
6675
6676         * c-pretty-print.c (pp_c_semicolon): Fix formatting.
6677         (pp_c_cv_qualifier): Document.
6678         (pp_c_space_for_pointer_operator): Likewise.
6679         (pp_c_integer_constant): Likewise.
6680         (pp_c_identifier): Likewise.
6681         (pp_c_init_declarator): Don't print function body.
6682
6683 2004-03-14  Joseph S. Myers  <jsm@polyomino.org.uk>
6684
6685         * doc/contrib.texi, doc/extend.texi, doc/gcov.texi,
6686         doc/install.texi, doc/invoke.texi, doc/makefile.texi,
6687         doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi: Capitalize
6688         "gcc", "g++" and "g77" or mark up with appropriate markup.  Adjust
6689         wording and grammar.
6690
6691 2004-03-14  Roger Sayle  <roger@eyesopen.com>
6692
6693         * alias.c (get_alias_set): Replace calls via (*lang_hooks.foo) ()
6694         with lang_hooks.foo ().
6695         * builtins.c (expand_builtin_va_arg): Likewise.
6696         * c-common.c (fname_as_string, c_common_truthvalue_conversion,
6697         c_common_type_for_mode, c_common_nodes_and_builtins,
6698         handle_mode_attribute, handle_vector_size_attribute): Likewise.
6699         * c-convert.c (convert): Likewise.
6700         * c-format.c (check_format_types): Likewise.
6701         * c-objc-common.c (c_tree_printer): Likewise.
6702         * c-typeck.c (build_unary_op, build_conditional_expr,
6703         build_binary_op): Likewise.
6704         * calls.c (try_to_integrate, expand_call,
6705         emit_library_call_value_1): Likewise.
6706         * cgraph.c (cgraph_node_name, cgraph_function_possibly_inlined_p):
6707         Likewise.
6708         * cgraphunit.c (record_call_1, cgraph_analyze_function,
6709         cgraph_expand_function): Likewise.
6710         * convert.c (convert_to_pointer, convert_to_integer): Likewise.
6711         * coverage.c (build_fn_info_type, build_ctr_info_type,
6712         build_gcov_info, create_coverage): Likewise.
6713         * dbxout.c (dbxout_init): Likewise.
6714         * diagnostic.c (diagnostic_report_current_function): Likewise.
6715         * dojump.c (do_jump): Likewise.
6716         * dwarf2out.c (dwarf2_name): Likewise.
6717         * except.c (init_eh): Likewise.
6718         * explow.c (expr_size, int_expr_size): Likewise.
6719         * expmed.c (make_tree, const_mult_add_overflow_p, expand_mult_add):
6720         Likewise.
6721         * expr.c (store_expr, store_constructor, safe_from_p,
6722         expand_expr_real, do_store_flag, try_casesi): Likewise.
6723         * function.c (push_function_context_to, pop_function_context_from,
6724         free_after_parsing, assign_stack_local_1, assign_stack_temp_for_type,
6725         put_var_into_stack, allocate_struct_function, current_function_name):
6726         Likewise.
6727         * integrate.c (copy_decl_for_inlining, expand_inline_function):
6728         Likewise.
6729         * langhooks.c (lhd_clear_binding_stack, write_global_declarations,
6730         lhd_print_error_function): Likewise.
6731         * opts.c (handle_option, decode_options): Likewise.
6732         * passes.c (open_dump_file): Likewise.
6733         * print-tree.c (print_node): Likewise.
6734         * stmt.c (expand_fixup, fixup_gotos, expand_asm_operands,
6735         expand_decl_cleanup, emit_case_nodes): Likewise.
6736         * stor-layout.c (variable_size): Likewise.
6737         * toplev.c (announce_function, wrapup_global_declarations,
6738         check_global_declarations, compile_file, default_tree_printer,
6739         process_options, lang_dependent_init, finalize): Likewise.
6740         * tree-dump.c (dequeue_and_dump): Likewise.
6741         * tree-inline.c (remap_decl, remap_block, copy_body_r,
6742         initialize_inlined_parameters, declare_return_variable,
6743         inlinable_function_p, expand_call_inline, optimize_inline_calls,
6744         walk_tree, copy_tree_r): Likewise.
6745         * tree-optimize.c (tree_rest_of_compilation): Likewise.
6746         * tree.c (decl_assembler_name, tree_size, size_in_bytes, staticp,
6747         unsafe_for_reeval, get_unwidened, get_narrower, get_callee_fndecl,
6748         variably_modified_type_p, dump_tree_statistics): Likewise.
6749         * varasm.c (assemble_variable, compare_constant, copy_constant,
6750         force_const_mem, compute_reloc_for_constant, output_constant,
6751         output_addressed_constants, initializer_constant_valid_p): Likewise.
6752
6753 2004-03-14  Kelley Cook  <kcook@gcc.gnu.org>
6754
6755         * doc/install.texi: Make autoconf 2.13 the exception, not the rule.
6756
6757 2004-03-14  Andreas Tobler  <a.tobler@schweiz.ch>
6758
6759         * doc/install.texi: Reflect autoconf and automake version for
6760         libffi. Update autoconf version to 2.59.
6761
6762 2004-03-13  Roger Sayle  <roger@eyesopen.com>
6763
6764         * fold-const.c (negate_expr, operand_equal_for_comparison_p,
6765         optimize_bit_field_compare, decode_field_reference, all_ones_mask_p,
6766         make_range, build_range_check, fold_range_test, unextend,
6767         constant_boolean_node, fold_binary_op_with_conditional_arg,
6768         fold_truthop, fold_mathfn_compare, fold_inf_compare,
6769         fold_single_bit_test, fold): Replace calls via (*lang_hooks.foo) ()
6770         with lang_hooks.foo ().
6771
6772 2004-03-14  Richard Earnshaw  <rearnsha@arm.com>
6773
6774         * arm.h (EXTRA_CONSTRAINT_STR_ARM): Update comment.
6775
6776 2004-03-13  Dara Hazeghi  <dhazeghi@yahoo.com>
6777
6778         * doc/install.texi: Note status of -fnew-ra.
6779
6780 2004-03-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
6781
6782         PR middle-end/14470
6783         * expr.c (store_expr): Call emit_queue before generating the move
6784         from the temporary to the original target.  Protect the temporary
6785         from emit_queue.
6786
6787 2004-03-13  Jakub Jelinek  <jakub@redhat.com>
6788
6789         PR target/14533
6790         * config/s390/s390.c (legitimize_pic_address): Don't abort on UNSPEC
6791         other than UNSPEC_GOTOFF.
6792
6793 2004-03-13  Richard Earnshaw  <rearnsha@arm.com>
6794
6795         * arm.c (arm_legitimate_address_p): New argument, OUTER.  Pass through
6796         to arm_legitimate_index_p.  Update all callers with SET as default
6797         value.
6798         (arm_legitimate_index_p): New argument, OUTER.  Restrict the index
6799         range if OUTER is a sign-extend operation on QImode.  Correctly
6800         reject shift operations on sign-extended QImode addresses.
6801         (bad_signed_byte_operand): Delete.
6802         (arm_extendqisi_mem_op): New function.
6803         * arm.h (EXTRA_CONSTRAINT_ARM): Delete.  Replace with...
6804         (EXTRA_CONSTRAINT_STR_ARM): ... this.  Handle extended address
6805         constraints.
6806         (CONSTRAINT_LEN): New.
6807         (EXTRA_CONSTRAINT): Delete.  Replace with...
6808         (EXTRA_CONSTRAINT_STR): ... this.
6809         (PREDICATE_CODES): Remove bad_signed_byte_operand.
6810         * arm.md (extendqihi_insn): Use new constraint Uq.  Rework.  Length
6811         is now always default.
6812         (define_splits for bad sign-extend loads): Delete.
6813         (arm_extendqisi, arm_extendqisi_v5): Likewise.
6814         * arm/vfp.md (arm_movsi_vfp, arm_movdi_vfp, movsf_vfp, movdf_vfp):
6815         Rework 'U' constraint to 'Uv'.
6816         * arm-protos.h: Remove bad_signed_byte_operand.  Add
6817         arm_extendqisi_mem_op.
6818         * doc/md.texi (ARM constraints): Rename VFP constraint (now Uv).
6819         Add Uq constraint.
6820
6821 2004-03-13  Alan Modra  <amodra@bigpond.net.au>
6822
6823         * config/rs6000/rs6000.c (rs6000_va_arg): Replace SPLIT_COMPLEX_ARGS
6824         with targetm version.
6825
6826         PR target/14567
6827         * config/rs6000/rs6000.h (UNITS_PER_ARG, RS6000_ARG_SIZE): Delete.
6828         (HARD_REGNO_MODE_OK): Disallow TFmode for fp31.
6829         * config/rs6000/rs6000.c (rs6000_arg_size): New function.
6830         Update all users of RS6000_ARG_SIZE.
6831         (function_arg_advance): Count fregno using mode size.
6832         (function_arg): Handle long double split over regs and memory.
6833         (function_arg_partial_nregs): Likewise.
6834         (rs6000_va_arg): Repackage complex args.
6835
6836 2004-03-13  Dean Ferreyra <dferreyra@igc.org>
6837
6838         PR target/14047
6839         * config/avr/avr.c (avr_progmem_p): Add "attributes" parameter.
6840         (avr_insert_attributes): Pass "attributes" to avr_progmem_p.
6841         * config/avr/avr-protos.h (avr_progmem_p): Change prototype.
6842
6843 2004-03-12  Jakub Jelinek  <jakub@redhat.com>
6844
6845         * config/rs6000/rs6000-protos.h (rs6000_output_dwarf_dtprel): Add
6846         prototype.
6847         * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): New.
6848         * config/rs6000/rs6000.h (ASM_OUTPUT_DWARF_DTPREL): Define.
6849
6850 2003-03-12  Andrew Pinski  <apinski@apple.com>
6851
6852         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
6853         Use ret instead of result. Use addr instead of base.
6854
6855 2004-03-12  David Edelsohn  <edelsohn@gnu.org>
6856
6857         * doc/install.texi (*-ibm-aix*): Document assembler and achiver
6858         fixes required by libstdc++ and update installation instructions
6859         for libstdc++.a.
6860
6861 2004-03-12  Danny Smith  <dannysmith@users.sourceforge.net>
6862
6863         * config/i386/winnt.c (i386_pe_strip_name_encoding_full): Strip
6864         leading '@' on fastcall symbols before stripping suffix.
6865
6866 2004-03-12  Roger Sayle  <roger@eyesopen.com>
6867
6868         * combine.c (unmentioned_reg_p): New function to check whether an
6869         expression is a "specialization" of another, i.e. that there are
6870         no registers or memory references mentioned in the first that don't
6871         appear in the second.
6872         (unmentioned_reg_p_1): New helper subroutine of unmentioned_reg_p.
6873         (combine_instructions): Also try combining instructions using the
6874         REG_EQUAL note from a preceding log-linked instruction.
6875
6876 2004-03-12  Roger Sayle  <roger@eyesopen.com>
6877
6878         * config/i386/i386.c (ix86_split_ashrdi): Optimize shift by 63.
6879
6880 2004-03-12  Matt Austern  <austern@apple.com>
6881
6882         * target.h (struct gcc_target): New target hook, unwind_label.
6883         * target-def.h (TARGET_ASM_EMIT_UNWIND_LABEL): New hook.
6884         * output.h (default_emit_unwind_label): New function.
6885         * default.h (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): New macro.
6886         (TARGET_USES_WEAK_UNWIND_INFO): New target macro.
6887         (TARGET_SUPPORTS_HIDDEN): New target macro.
6888         * dwarf2out.c (struct dw_fde_struct): Add field for function decl
6889         that corresponds to this FDE.
6890         (FRAME_BEGIN_LABEL): Allow target to override default label.
6891         (output_call_frame_info): If FDEs are linknonce, then use extra
6892         indirection for FDE encoding, output a label for each FDE, and
6893         output an empty label for each function without an FDE.
6894         (dwarf2out_begin_prologue): Set up decl field when creating an FDE.
6895         * varasm.c (globalize_decl): Call ASM_MAKE_LABEL_LINKONCE for
6896         decls with DECL_ONE_ONLY set, if that macro is defined.
6897         (make_decl_one_only): Don't use DECL_COMMON if we're compiling
6898         for a SUPPORTS_ONE_ONLY target.
6899         * config/darwin-protos.h (darwin_unique_section): Declare.
6900         (darwin_asm_named_section): Likewise.
6901         (darwin_section_type_flags): Likewise.
6902         (darwin_non_lazy_pcrel): Likewise.
6903         (darwin_emit_unwind_label): Likewise.
6904         (darwin_make_decl_one_only): Likewise.
6905         * config/darwin.c (machopic_finish): Get rid of tweak that
6906         eliminate stubs for symbols that are defined.
6907         (darwin_encode_section_info): Don't treat weak functions as defined.
6908         (darwin_make_decl_one_only): Define.
6909         (darwin_asm_named_section): Likewise.
6910         (darwin_section_type_flags): Likewise.
6911         (darwin_unique_section): Likewise.
6912         (darwin_emit_unwind_label): Likewise.
6913         (darwin_non_lazy_pcrel): Likewise.
6914         (darwin_asm_output_dwarf_delta): Difference between two labels is
6915         local only if both labels are local.
6916         * config/darwin.h (MAKE_DECL_ONE_ONLY): Define.
6917         (ASM_MAKE_LABEL_LINKONCE): Likewise.
6918         (TARGET_SUPPORTS_HIDDEN): Likewise.
6919         (TARGET_USES_WEAK_UNWIND_INFO): Likewise.
6920         (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): Likewise.
6921         (FRAME_BEGIN_LABEL): Likewise.
6922         (ASM_DECLARE_OBJECT_NAME): Make references to weak symbols indirect.
6923         (ASM_DECLARE_FUNCTION_NAME): Likewise.
6924         (darwin_eh_frame_section): Give __eh_frame section the coalesced flag.
6925         (TARGET_ASM_UNIQUE_SECTION): Define.
6926         (EH_FRAME_SECTION_NAME): Define.
6927         (EH_FRAME_SECTION_ATTR): Likewise.
6928         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
6929         (TARGET_ASM_NAMED_SECTION): Likewise.
6930         (TARGET_SECTION_TYPE_FLAGS): Likewise.
6931         * doc/tm.texi: Document TARGET_USES_WEAK_UNWIND_INFO,
6932         TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, TARGET_SUPPORTS_HIDDEN,
6933         TARGET_ASM_EMIT_UNWIND_LABEL.
6934
6935 2004-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6936
6937         * builtins.c (expand_builtin_mathfn): Add pow10* to the
6938         existing exp10* case.
6939         (expand_builtin): Likewise.
6940
6941 2004-03-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
6942
6943         * doc/tm.texi (registers) <Values in Registers>: Add
6944         entry for REGMODE_NATURAL_SIZE.
6945
6946 2004-03-12  Richard Henderson  <rth@redhat.com>
6947
6948         PR target/14547
6949         * target.h (struct gcc_target): Move calls substructure before
6950         booleans.  Add split_complex_arg.
6951         * function.c (assign_parms, split_complex_args): Use it.
6952         * calls.c (expand_call): Likewise.
6953         (split_complex_values): Likewise.  Check for splittable types
6954         before allocating memory.
6955         (split_complex_types): Likewise.
6956         * system.h (SPLIT_COMPLEX_ARGS): Poison.
6957         * expr.h (SPLIT_COMPLEX_ARGS): Remove.
6958         * target-def.h (TARGET_SPLIT_COMPLEX_ARG): New.
6959         * config/alpha/alpha.c (alpha_split_complex_arg): New.
6960         (TARGET_SPLIT_COMPLEX_ARG): New.
6961         * config/alpha/alpha.h (SPLIT_COMPLEX_ARGS): Remove.
6962         * config/rs6000/rs6000.c (TARGET_SPLIT_COMPLEX_ARG): New.
6963         (rs6000_override_options): Zap it for non-AIX.
6964         (rs6000_function_value): Use targetm.calls.split_complex_arg.
6965         * config/rs6000/rs6000.h (SPLIT_COMPLEX_ARGS): Remove.
6966         * config/xtensa/xtensa.c (TARGET_SPLIT_COMPLEX_ARG): New.
6967         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Remove.
6968         * doc/tm.texi (TARGET_SPLIT_COMPLEX_ARG): Modify from old
6969         SPLIT_COMPLEX_ARGS entry.
6970
6971 2004-03-11  Richard Henderson  <rth@redhat.com>
6972
6973         * config/alpha/alpha.c (xfloating_ops, vax_cvt_ops): New.
6974         (alpha_lookup_xfloating_lib_func): Use them, return rtx.
6975         (alpha_emit_xfloating_arith): Update to match.
6976         (alpha_emit_xfloating_compare): Likewise.
6977         (alpha_emit_xfloating_cvt): Likewise.
6978         (alpha_emit_xfloating_libcall): Take already built symbol,
6979         mark call const.
6980         * config/alpha/alpha.md (extendsftf2, extenddftf2): Take
6981         op1 in a register.
6982
6983 2004-03-11  Richard Henderson  <rth@redhat.com>
6984
6985         PR target/14539
6986         * config/alpha/alpha.h (STACK_BOUNDARY): Set to 128.
6987
6988         * simplify-rtx.c (simplify_relational_operation): Fix typo.
6989
6990 2004-03-11  Richard Henderson  <rth@redhat.com>
6991
6992         PR middle-end/14477
6993         * except.c (remove_unreachable_regions): Look thru CALL_PLACEHOLDER.
6994
6995 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
6996
6997         PR target/14262
6998         * calls.c (load_register_parameters): If BLOCK_REG_PADDING is not
6999         defined, pass small BLKmode values in registers in the low-order part.
7000
7001 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
7002
7003         * combine.c (if_then_else_cond): Check for NULL return value of
7004         simplify_gen_subreg.
7005
7006 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
7007
7008         PR target/14496
7009         * config/mips/mips.h (UNITS_PER_FPVALUE): Fix value for
7010         TARGET_SINGLE_FLOAT.
7011
7012 2004-03-11  Steve Ellcey  <sje@cup.hp.com>
7013
7014         * config/ia64/hpux.h (TARGET_INIT_LIBFUNCS): Add undef.
7015         * config/ia64/ia64.h (TARGET_INIT_LIBFUNCS): Add define.
7016         * config/ia64/ia64.c (ia64_init_libfuncs): New.
7017         (ia64_hpux_init_libfuncs): Add call to ia64_init_libfuncs.
7018
7019 2004-03-11  Roger Sayle  <roger@eyesopen.com>
7020
7021         * fold-const.c (negate_expr_p) <RSHIFT_EXPR>: We can optimize
7022         -((int)X>>C) where C is an integer constant one bit less than the
7023         size of X into (unsigned)X>>C.  Similarly for unsigned->signed.
7024         (negate_expr) <RSHIFT_EXPR>: Implement the above transformations.
7025
7026         * simplify-rtx.c (simplify_unary_operation): Also implement the
7027         above transformations at the RTL level.
7028
7029 2004-03-11  Alan Modra  <amodra@bigpond.net.au>
7030
7031         * real.c (encode_ibm_extended): Do round low word.
7032
7033 2004-03-11  Ben Elliston  <bje@wasabisystems.com>
7034
7035         * config/arm/arm.md (is_xscale): Comment this attribute and move
7036         it a bit further up in the file, closer to related attributes.
7037
7038 2004-03-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
7039
7040         * config/host-solaris.c (sol_gt_pch_use_address): Add
7041         missing terminating marker to comment.
7042
7043 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
7044
7045         * config/mips/mips.md: Use move_operand in splitters for 64-bit moves.
7046         (movdi, movsi, movhi, movqi, movsf, movdf): Remove predicates.
7047         (*movdi_32bit_mips16, *movsi_mips16, *movhi_mips16, *movqi_mips16)
7048         (*movsf_mips16, *movdf_mips16):  Name unnamed patterns.  Use
7049         move_operand as source predicate in all cases.
7050         (*movdi_32bit): Renamed from movdi_internal.  Remove 'F' constraint.
7051         Test reg_or_0_operand.  Use move_operand as source predicate.
7052         (*movdi_64bit): Renamed from movdi_internal2.  Test reg_or_0_operand.
7053         (*movdi_64bit_mips16): Renamed from movdi_internal2_mips16.
7054         (*movsi_internal): Renamed from movsi_internal.  Test reg_or_0_operand.
7055         (movhi, movqi, movsf, movdf): Use mips_legitimize_move.
7056         (*movhi_internal): Renamed from movhi_internal.  Test reg_or_0_operand.
7057         Use move_operand as source predicate.  Remove 'K' constraint.
7058         (*movqi_internal): Likewise movqi_internal.
7059         (*movsf_hardfloat): Renamed from movsf_internal1.  Test
7060         reg_or_0_operand.  Use move_operand as source predicate.
7061         (*movsf_softfloat): Likewise movsf_internal2.
7062         (*movdf_hardfloat_64bit): Likewise movsf_internal1a.
7063         (*movdf_hardfloat_32bit): Likewise movsf_internal1b.
7064         (*movdf_softfloat): Likewise movdf_internal2.
7065         * config/mips/mips.c (move_operand): Match arbitrary CONST_INTs
7066         for DImode if !TARGET_64BIT.
7067         (mips_legitimize_move): Simplify accordingly.
7068
7069 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
7070
7071         PR/14362
7072         * var-tracking.c (struct variable_def): Added field refcount.
7073         (variable_htab_free): Decrease the refcount and delete variable
7074         only if there are no more references.
7075         (unshare_variable): New function.
7076         (vars_copy_1): Increase refcount instead of copying the variable.
7077         (variable_union): Share the variables where possible, unshare
7078         the variables if needed.
7079         (variable_different_p): Return false if var1 and var2 are
7080         the same structure.
7081         (variable_was_changed): Init the refcount of new variable.
7082         (set_frame_base_location): Unshare variable if needed.
7083         (set_variable_part): Init the refcount of new variable.
7084         Unshare the variables if needed.
7085         (delete_variable_part): Unshare the variables if needed.
7086         (emit_notes_for_differences_1): Init the refcount of new variable.
7087         (vt_add_function_parameters): Do not add function parameters to
7088         IN set of ENTRY_BLOCK_PTR because it is unused anyway.
7089         (vt_initialize): Do not add frame_base_decl to IN set of
7090         ENTRY_BLOCK_PTR because it is unused anyway.
7091
7092 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
7093
7094         * var-tracking.c (vars_copy_1): Cleanup and speedup chain operations.
7095         (vars_copy): Likewise.
7096         (variable_union): Likewise.
7097         (set_variable_part): Likewise.
7098         (delete_variable_part): Likewise.
7099
7100 2004-03-11  Kazu Hirata  <kazu@cs.umass.edu>
7101
7102         * c-typeck.c, combine.c, cse.c, dominance.c, et-forest.h,
7103         ggc-page.c, var-tracking.c, config/fp-bit.c, config/c4x/c4x.c,
7104         config/cris/cris.c, config/i386/ppro.md, config/i860/i860.c,
7105         config/i860/i860.h, config/m32r/m32r.h, config/m32r/xm-m32r.h,
7106         config/m68hc11/m68hc11.h, config/m68hc11/m68hc11.md,
7107         config/mips/mips.c, config/mmix/mmix.c, config/ns32k/ns32k.h,
7108         config/pa/pa.c, config/pa/pa32-regs.h, config/pa/pa64-regs.h,
7109         config/pdp11/pdp11.h, config/rs6000/rs6000.c,
7110         config/stormy16/stormy16.c: Fix comment typos and formatting.
7111
7112 2004-03-11  Nathanael Nerode  <neroden@gcc.gnu.org>
7113
7114         * configure: Regenerate, since I forgot to while committing Paolo's
7115         changes.
7116
7117 2004-03-08  Paolo Bonzini  <bonzini@gnu.org>
7118
7119         PR ada/14131
7120         Move language detection to the top level.
7121         * configure.ac: Remove code to detect languages,
7122         it now lives exclusively in the top level.
7123         * aclocal.m4 (gcc_AC_PROG_GNAT): Moved to the
7124         top level, renamed to ACX_PROG_GNAT.
7125
7126 2004-03-10  Richard Henderson  <rth@redhat.com>
7127
7128         * c-pch.c (c_common_no_more_pch): Update for gt_pch_use_address
7129         extra arguments.
7130         * config.host (*-*-solaris2*, *-*-linux*): Add out_host_hook_obj
7131         and host_xmake_file fragments.
7132         * ggc-common.c (gt_pch_save): Update for gt_pch_get_address change.
7133         (gt_pch_restore): Similarly for gt_pch_use_address.
7134         (default_gt_pch_get_address): New.
7135         (mmap_gt_pch_get_address): Split out of gt_pch_save.
7136         (default_gt_pch_use_address): Split out of gt_pch_restore.
7137         (mmap_gt_pch_use_address): Likewise.
7138         * hooks.c (hook_voidp_size_t_null): Remove.
7139         (hook_bool_voidp_size_t_false): Remove.
7140         * hooks.h: Likewise.
7141         * hosthooks-def.h (HOST_HOOKS_GT_PCH_GET_ADDRESS): Use one of the
7142         default_ or mmap_ definitions.
7143         (HOST_HOOKS_GT_PCH_USE_ADDRESS): Likewise.
7144         * hosthooks.h (struct host_hooks): Update gt_pch_get_address
7145         and gt_pch_use_address.
7146         * config/host-linux.c, config/host-solaris.c: New files.
7147         * config/x-linux, config/x-solaris: New files.
7148         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_get_address):
7149         Update for changed definition.
7150         (darwin_rs6000_gt_pch_use_address): Likewise.
7151         * doc/hostconfig.texi: Update docs.
7152
7153 2004-03-10  Richard Henderson  <rth@redhat.com>
7154
7155         PR c/14517
7156         * c-decl.c (grokdeclarator): Don't warn for duplicate qualifiers
7157         except for pedantic c90 mode.
7158
7159 2004-03-10  Kelley Cook  <kcook@gcc.gnu.org>
7160
7161         * configure.ac: Bump AC_PREREQ to 2.59.
7162         * configure: Regenerate.
7163
7164 2004-03-10  Uros Bizjak  <uros@kss-loka.si>
7165
7166         * optabs.h (enum optab_index): Add new OTI_exp10 and OTI_exp2.
7167         (exp10_optab, exp2_optab): Define corresponding macros.
7168         * optabs.c (init_optabs): Initialize exp10_optab and exp2_optab.
7169         * genopinit.c (optabs): Implement exp10_optab and exp2_optab
7170         using exp10?f2 and exp2?f2 patterns.
7171         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXP10{,F,L}
7172         using exp10_optab, and BUILT_IN_EXP2{,F,L} using exp2_optab.
7173         (expand_builtin): Expand BUILT_IN_EXP10{,F,L} and BUILT_IN_EXP2{,F,L}
7174         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
7175
7176         * config/i386/i386.md (exp10sf2, exp10df2, exp10xf2, exp2sf2,
7177         exp2df2, exp2xf2): New patterns to implement exp10, exp10f, exp10l,
7178         exp2, exp2f and exp2l built-ins as inline x87 intrinsics.
7179
7180 2004-03-10  Anthony Green  <green@redhat.com>
7181
7182         * doc/invoke.texi (ARM Options): Fix -mpfu typo.
7183
7184 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
7185
7186         * config/rs6000/aix.h (TARGET_OS_CPP_BUILTINS): Rename to ...
7187         (TARGET_OS_AIX_CPP_BUILTINS): this.  Conditionally define
7188         __LONGDOUBLE128.
7189         * config/rs6000/aix41.h (TARGET_OS_CPP_BUILTINS): Use
7190         TARGET_OS_AIX_CPP_BUILTINS.
7191         * config/rs6000/aix43.h (TARGET_OS_CPP_BUILTINS): Same.
7192         * config/rs6000/aix51.h (TARGET_OS_CPP_BUILTINS): Same.
7193         * config/rs6000/aix52.h (TARGET_OS_CPP_BUILTINS): Same.
7194         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Revert
7195         previous change.
7196
7197 2004-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7198
7199         * fold-const.c (tree_expr_nonnegative_p): Add more builtin cases.
7200
7201 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
7202
7203         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
7204         __LONGDOUBLE128 on AIX.
7205
7206 2004-03-10  Andrew Haley  <aph@redhat.com>
7207
7208         PR optimization/14381
7209         * function.c (expand_function_end): Emit a blockage insn before
7210         the epilogue when -fnon-call-exceptions is used.
7211
7212         * except.c (expand_start_all_catch): Make comment more accurate.
7213
7214 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
7215
7216         PR target/14480
7217         * config/rs6000/t-rtems: Add missing file on branch.
7218
7219 2004-03-10  Ulrich Weigand  <uweigand@de.ibm.com>
7220
7221         * dbxout.c (dbxout_symbol_location): Do not output references
7222         to optimized-out constant pool symbols.
7223
7224 2004-03-10  Andreas Schwab  <schwab@suse.de>
7225
7226         * config/ia64/ia64.md (divsi3, udivsi3): Remove unused variable
7227         twon34_r.
7228
7229 2004-03-09  James E Wilson  <wilson@specifixinc.com>
7230
7231         * alias.c (alias_sets_might_conflict_p): New.
7232         * c-typeck.c (build_c_cast): Call it if warn_strict_aliasing > 1.
7233         * common.opt (Wstrict-aliasing=): New.
7234         * flags.h (warn_strict_aliasing): Change type to int.
7235         * opts.c (warn_strict_aliasing): Change type to int.
7236         (common_handle_option): Handle OPT_Wstrict_aliasing_.
7237         * tree.h (alias_sets_might_conflict_p): Declare it.
7238         * doc/invoke.tex (-Wstrict-aliasing=2): Document it.
7239
7240 2004-03-10  Roman Zippel  <zippel@linux-m68k.org>
7241
7242         PR bootstrap/12371
7243         * config/m68k/m68k.h (FIXED_REGISTERS): Add arg pointer.
7244         (CALL_USED_REGISTERS): Likewise.
7245         (REG_CLASS_CONTENTS): Likewise.
7246         (REG_ALLOC_ORDER): New.
7247         (REGNO_REG_CLASS): Use regno_reg_class.
7248         * config/m68k/m68k.c: Add regno_reg_class array.
7249
7250 2004-03-09  Steve Ellcey  <sje@cup.hp.com>
7251
7252         * config/ia64/ia64.md (divsi3): Fix algorithm.
7253           (udivsi3): Ditto.
7254           (setf_exp_xf): Remove '*' from name.
7255         * testsuite/gcc.dg/20040309-1.c: New test.
7256
7257 2004-03-09  Ian Lance Taylor  <ian@wasabisystems.com>
7258
7259         * system.h (SUNOS4_SHARED_LIBRARIES): Poison.
7260         * collect2.c: Remove SUNOS4_SHARED_LIBRARIES code.
7261         * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): Don't define.
7262         * config/sparc/sparc.c (sparc_aout_select_section): Remove.
7263         (sparc_aout_select_rtx_section): Don't check
7264         SUNOS4_SHARED_LIBRARIES.
7265         * config/sparc/sparc.h (SUNOS4_SHARED_LIBRARIES): Don't define.
7266
7267 2004-03-10  Hans-Peter Nilsson  <hp@axis.com>
7268
7269         PR other/14474
7270         * doc/md.texi (Pattern Ordering, Dependent Patterns)
7271         (Jump Patterns, Looping Patterns): Wrap in separate "@ifset
7272         INTERNALS".
7273
7274 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
7275
7276         * config/ia64/hpux.h (MULTILIB_DEFAULTS): Define.
7277         (LIBGCC_SPEC): Update to match.
7278
7279 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
7280
7281         * c-decl.c (last_function_parms, last_function_parm_tags)
7282         (last_function_parm_others, current_function_parms)
7283         (current_function_parm_tags, current_function_parm_others):
7284         Delete.
7285         (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES, ARG_INFO_OTHERS):
7286         New macros.
7287         (grokdeclarator): For function definitions, save the arg-info
7288         block from the declarator in DECL_ARGUMENTS.
7289         (grokparms): Do not write to last_function_parm*.  Use ARG_INFO_*
7290         macros to operate on arg-info block.  Can assume ARG_INFO_PARMS
7291         contains only PARM_DECLs.  Improve diagnostics.
7292         (get_parm_info): Use ARG_INFO_* macros.  Improve comments and
7293         diagnostics.  Disable some expensive checks if not ENABLE_CHECKING.
7294         (store_parm_decls_newstyle): Take the function to operate on,
7295         and an arg-info block, as arguments; don't get anything from
7296         current_function_* globals.
7297         (store_parm_decls_oldstyle): Likewise.
7298         (store_parm_decls): Pass fndecl and its arg-info block down to
7299         store_parm_decls_newstyle/oldstyle.  Send functions with empty
7300         argument lists through store_parm_decls_newstyle to reduce
7301         overhead.
7302         (pushdecl): Comment on the problems with the call to copy_node.
7303         Clear DECL_ARGUMENTS of the old node after copying it, if it
7304         is an arg-info block instead of a chain of decls.
7305         (start_function): Do not manipulate current_function_parm* or
7306         last_function_parm*.
7307
7308 2004-03-09  Roger Sayle  <roger@eyesopen.com>
7309             Andrew Pinski  <pinskia@physics.uc.edu>
7310
7311         * ifcvt.c (noce_try_sign_mask): New function to transform
7312         "x = (y < 0) ? z : 0" into the equivalent "x = (y >> C) & z".
7313         (noce_process_if_block): Call noce_try_sign_mask.
7314
7315 2004-03-09  Andrew Pinski  <apinski@apple.com>
7316
7317         * c-typeck.c (tagged_types_tu_compatible_p):
7318         Fix typo.
7319
7320 2004-03-09  Roger Sayle  <roger@eyesopen.com>
7321
7322         * simplify-rtx.c (simplify_const_relational_operation): New function
7323         renamed from simplify_relational_operation.
7324         (simplify_relational_operation): Change prototype to accept an
7325         additional mode argument.  Call simplify_const_relational_operation.
7326         (simplify_gen_relational): Update simplify_relational_operation call.
7327         (simplify_ternary_operation): Update simplify_relational_operation
7328         subroutine call to use simplify_const_relational_operation instead.
7329
7330         * rtl.h (simplify_const_relational_operation): Prototype here.
7331         (simplify_relational_operation): Add addtional mode argument.
7332
7333         * combine.c (combine_simplify_rtx): Update calls to
7334         simplify_relational_operation.
7335         (simplify_set): Likewise.
7336         (gen_binary): Likewise.
7337         * cse.c (fold_rtx): Likewise.
7338         * dojump.c (compare_from_rtx): Likewise.
7339         (do_compare_rtx_and_jump): Likewise.
7340         * integrate.c (subst_constants): Likewise.
7341         * unroll.c (simplify_cmp_and_jump_insns): Likewise.
7342
7343 2004-03-09  Kazu Hirata  <kazu@cs.umass.edu>
7344
7345         * config/m32r/m32r.md: Remove all define_peephole's.
7346
7347 2004-03-09  Alan Modra  <amodra@bigpond.net.au>
7348
7349         * config/rs6000/rs6000.md: Remove trailing whitespace.
7350
7351 2004-03-08  Eric Christopher  <echristo@redhat.com>
7352
7353         * Makefile.in (site.exp): Add libiconv variable definition.
7354
7355 2004-03-09  Hans-Peter Nilsson  <hp@axis.com>
7356
7357         * configure: Regenerate for config/accross.m4 correction.
7358
7359 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
7360
7361         PR target/14480
7362         * config/rs6000/t-rtems: Add missing file on branch.
7363
7364 2004-03-08  Roger Sayle  <roger@eyesopen.com>
7365
7366         PR middle-end/14289
7367         * c-typeck.c (c_mark_addressable): A register variable should
7368         be considered global if its not automatic, i.e. TREE_PUBLIC,
7369         TREE_STATIC or DECL_EXTERNAL.
7370         * function.c (put_var_into_stack): Call abort when placing a
7371         hard register into the stack, if x_parm_reg_stack_loc is NULL.
7372
7373 2004-03-08  Ulrich Weigand  <uweigand@de.ibm.com>
7374
7375         * config/s390/s390.md ("*extendqidi2_short_displ"): Add CC clobber.
7376         ("*extendqisi2_short_displ"): Likewise.
7377
7378 2004-03-08  Kazu Hirata  <kazu@cs.umass.edu>
7379
7380         * config/pdp11/pdp11.c (comparison_operator_index): Remove.
7381         (comp_operator): Likewise.
7382         * config/pdp11/pdp11-protos.h: Remove corresponding
7383         prototypes.
7384
7385 2004-03-08  Eric Botcazou  <ebotcazou@act-europe.fr>
7386
7387         * expr.c (highest_pow2_factor_for_type): Rename into
7388         highest_pow2_factor_for_target.  Use DECL_ALIGN instead of
7389         TYPE_ALIGN when the target is a COMPONENT_REF.
7390         (expand_assignment): Ajust call to highest_pow2_factor_for_type.
7391
7392 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
7393
7394         * config/rs6000/rs6000.c: Formatting fix.
7395         (legitimate_offset_address_p): Correct offset range check.
7396
7397         * config/rs6000/rs6000.c (rs6000_override_options): Don't override
7398         -msoft-float by -mcpu.  Consolidate similar code for MASK_MULTIPLE
7399         and MASK_STRING.
7400
7401 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
7402
7403         * config/rs6000/rs6000.md (ashrdi3): Do not call ashrdi3_no_power
7404         for little endian.
7405         ("ashrdi3_no_power"): Disable for little endian.
7406         (ashrdi3): Same.
7407
7408 2004-03-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7409
7410         * fold-const.c (tree_expr_nonnegative_p): Reformat checks for
7411         builtins.
7412
7413 2004-03-08  Hans-Peter Nilsson  <hp@axis.com>
7414
7415         PR target/14471
7416         * configure.ac (Target-specific assembler checks) <cris-*-*>: New
7417         case, checking for -no-mul-bug-abort option.
7418         * configure, config.in: Regenerate.
7419         * doc/invoke.texi (CRIS Options): Document -mmul-bug-workaround
7420         and -mno-mul-bug-workaround.
7421         * config/cris/cris.md ("smulsi3_highpart", "umulsi3_highpart")
7422         ("mulsidi3", "umulsidi3"): Prefix output template with "%!".
7423         ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3"):
7424         Ditto.  Make attribute "slottable" dependent on TARGET_MUL_BUG.
7425         * config/cris/mulsi3.asm (__Mul) [__CRIS_arch_version >= 10]: Make
7426         sure mulu.d is not last on cache-line.
7427         * config/cris/cris.h (ASM_SPEC): Translate -mno-mul-bug-workaround
7428         into -no-mul-bug-abort depending on HAVE_AS_MUL_BUG_ABORT_OPTION.
7429         (TARGET_MASK_MUL_BUG, TARGET_MUL_BUG): New macros.
7430         (TARGET_SWITCHES): New options -mmul-bug-workaround and
7431         -mno-mul-bug-workaround.
7432         (TARGET_DEFAULT): Include TARGET_MASK_MUL_BUG.
7433         (PRINT_OPERAND_PUNCT_VALID_P): Include '!'.
7434         * config/cris/cris.c (cris_operand_extend_operator): Clarify
7435         relation to MULT in head comment.
7436         (cris_op_str): Abort for MULT.
7437         (cris_print_operand) <case '!'>: New case.
7438
7439 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
7440
7441         PR debug/11983
7442         * dwarf2out.c (enum dw_val_class): Rename dw_val_class_float to
7443         dw_val_class_vec.  Replace use throughout file.
7444         (dw_float_const): Delete.
7445         (dw_vec_const): New.
7446         (dw_val_struct_union): Rename val_float to val_vec.  Replace use
7447         throughout file.
7448         (add_AT_vec): Rename from add_AT_float.  Add elt_size param.
7449         (same_dw_val_p): Adjust vec comparison.  Use memcmp.
7450         (size_of_die): Adjust dw_val_class_vec sizing.
7451         (output_die): Output dw_val_class_vec.
7452         (insert_int, extract_int, insert_float): New functions.
7453         (add_const_value_attribute): Use insert_float for CONST_DOUBLE.
7454         Handle CONST_VECTOR.
7455         (add_location_or_const_value_attribute): Handle CONST_VECTOR.
7456
7457 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
7458
7459         * config/rs6000/rs6000.c (rs6000_parse_abi_options): SPE and
7460         AltiVec abi cannot co-exist.
7461
7462         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Same.
7463
7464 2004-03-07  Jan Hubicka  <jh@suse.cz>
7465
7466         * except.c (emit_to_new_bb_before):  Break fallthru edges.
7467
7468 2004-03-07  Stephane Carrez  <stcarrez@nerim.fr>
7469
7470         * config/m68hc11/m68hc11.md ("*lshrsi3_const"): Disable for 68HC12.
7471         ("*lshrsi3"): Also accept an immediate for 68HC12.
7472         ("*ashrsi3_const"): Likewise.
7473         ("*ashrsi3"): Likewise.
7474         ("*ashlsi3_const"): Likewise.
7475         ("*ashlsi3"): Likewise.
7476         ("cmphi_1_hc12"): Compare two hard register by pushing them and
7477         comparing with a pop; don't use a split for that.
7478         ("cmphi split"): Disable compare split for 68HC12.
7479
7480         * config/m68hc11/m68hc11.c (m68hc11_notice_update_cc): Invalidate
7481         the status operands if they have side effects.
7482
7483 2004-03-07  Kazu Hirata  <kazu@cs.umass.edu>
7484
7485         * defaults.h (LEGITIMIZE_ADDRESS): Provide a default
7486         definition.
7487         * config/arc/arc.h, config/fr30/fr30.h, config/frv/frv.h,
7488         config/h8300/h8300.h, config/ia64/ia64.h,
7489         config/mcore/mcore.h, config/mmix/mmix.h,
7490         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
7491         config/stormy16/stormy16.h, config/v850/v850.h,
7492         config/vax/vax.h (LEGITIMIZE_ADDRESS): Remove.
7493         * doc/tm.texi (LEGITIMIZE_ADDRESS): Mention the default
7494         definition.
7495
7496 2004-03-07  Roger Sayle  <roger@eyesopen.com>
7497
7498         * fold-const.c (fold) <IOR_EXPR>: Fold x | x as x.
7499         <XOR_EXPR>: Fold x ^ x as zero.
7500         <AND_EXPR>: Fold x & x as x.
7501
7502 2004-03-07  Roger Sayle  <roger@eyesopen.com>
7503
7504         * fold-const.c (fold) <EQ_EXPR>: Rewrite optimization to transform
7505         "foo++ == const" into "++foo == const+incr".
7506
7507 2004-03-07  Richard Sandiford  <rsandifo@redhat.com>
7508
7509         * config/mips/mips.c (mips_in_small_data_p): Return false if
7510         TARGET_ABICALLS.
7511
7512 2004-03-06  Stephane Carrez  <stcarrez@nerim.fr>
7513
7514         * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Use 2,-sp to push
7515         the stack register.
7516         (expand_prologue): Don't make an interrupt or a trap handler a far
7517         symbol.
7518         (m68hc11_initial_elimination_offset): Likewise.
7519
7520 2004-03-06  Richard Henderson  <rth@redhat.com>
7521
7522         * config/alpha/alpha.c (alpha_in_small_data_p): False for functions.
7523
7524 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
7525
7526         * config/ns32k/ns32k-protos.h: Add a prototype for
7527         ns32k_notice_update_cc.
7528         * config/ns32k/ns32k.c (ns32k_notice_update_cc): New.
7529         * config/ns32k/ns32k.h (NOTICE_UPDATE_CC): Call
7530         ns32k_notice_update_cc.
7531
7532 2004-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
7533
7534         * config/s390/s390.md ("load_multiple", "*load_multiple_di",
7535         "*load_multiple_si"): Allow only if reload_completed.
7536         ("store_multiple", "*store_multiple_di", "*store_multiple_si"):
7537         Likewise.
7538
7539 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
7540
7541         * config/vax/vax-protos.h: Add a prototype for
7542         vax_notice_update_cc.
7543         * config/vax/vax.c (vax_notice_update_cc): New.
7544         * config/vax/vax.h (NOTICE_UPDATE_CC): Call
7545         vax_notice_update_cc.
7546
7547 2004-03-06  David Edelsohn  <edelsohn@gnu.org>
7548
7549         * collect2.c (main): Only export initfunc and finifunc if
7550         LD_INIT_SWITCH not defined.
7551         (scan_prog_file): Only export constructors and destructors if
7552         LD_INIT_SWITCH not defined.  Only export symbols not found in
7553         shared objects.
7554
7555 2004-03-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7556
7557         * pa.md (icacheflush): Reorder operands to make match_scratch operand
7558         last.
7559         * pa.h (INITIALIZE_TRAMPOLINE): Remove unnecessary scratch argument
7560         from calls to gen_icacheflush.
7561
7562 2004-03-06  Richard Henderson  <rth@redhat.com>
7563
7564         * config/alpha/alpha.h (MASK_LONG_DOUBLE_128): New.
7565         (TARGET_LONG_DOUBLE_128): New.
7566         (TARGET_SWITCHES): Add long-double-{128,64}.
7567         (TARGET_HAS_XFLOATING_LIBS): Default to TARGET_LONG_DOUBLE_128.
7568         (LONG_DOUBLE_TYPE_SIZE): Honor TARGET_LONG_DOUBLE_128.
7569         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): New.
7570         (WIDEST_HARDWARE_FP_SIZE): New.
7571         (TARGET_CPU_CPP_BUILTINS): Define __LONG_DOUBLE_128__.
7572         * config/alpha/alpha.c (override_options): Clear MASK_LONG_DOUBLE_128
7573         if TARGET_VAX_FLOAT.
7574         * config/alpha/osf5.h (LONG_DOUBLE_TYPE_SIZE): Remove.
7575         (TARGET_DEFAULT): Set MASK_LONG_DOUBLE_128.
7576
7577 2004-03-06  Richard Henderson  <rth@redhat.com>
7578
7579         * config/alpha/alpha.c (alpha_swapped_comparison_operator): Fix
7580         botched rtx class conversion.
7581
7582 2004-03-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7583
7584         * tree.h (BUILTIN_EXP10_P, BUILTIN_EXPONENT_P, BUILTIN_SQRT_P,
7585         BUILTIN_CBRT_P, BUILTIN_ROOT_P): New macros.
7586
7587         * builtins.c (fold_builtin_logarithm, fold_builtin): Use new
7588         macros.
7589         * fold-const.c (fold_mathfn_compare, fold): Likewise.
7590
7591 2004-03-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
7592
7593         PR target/14343
7594         * config/i386/i386.md (movv2di_internal): Conditionalize on
7595         TARGET_SSE, not TARGET_SSE2.
7596
7597 2004-03-05  Chris Demetriou  <cgd@broadcom.com>
7598
7599         * config.gcc (mips64orion-*-elf*, mips64orionel-*-elf*): Delete
7600         duplicated line.
7601
7602 2004-03-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7603
7604         * builtins.c: Consistently use logN not log* in comments.
7605
7606 2004-03-05  Andreas Krebbel  <krebbel1@de.ibm.com>
7607
7608         * rtl.h (mem_expr_equal_p): Function prototype added.
7609         * cfgcleanup.c (merge_memattrs): New function.
7610         (flow_find_cross_jump): Call merge_memattrs for matching insns.
7611         * emit-rtl.c (mem_expr_equal_p): New function.
7612
7613 2004-03-05  Ziemowit Laski  <zlaski@apple.com>
7614
7615         * objc/objc-act.c (synth_module_prologue): Const-qualify
7616         objc_selector type if using the GNU runtime; fix generated
7617         signatures for objc_msg_lookup and objc_msg_lookup_super
7618         to match what GNU ObjC headers provide; reformat and clean up.
7619         (synth_self_and_ucmd_args): Use previously constructed (and
7620         hence possibly const-qualified) objc_selector type.
7621
7622 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
7623
7624         * doc/tm.texi (HARD_REGNO_RENAME_OK): Document.
7625
7626 2004-03-05  Jason Merrill  <jason@redhat.com>
7627
7628         * tree.h (TYPE_HASH): Use TYPE_UID.
7629         (TREE_HASH): New macro with old definition of TYPE_HASH.
7630         * tree.c (build_type_attribute_variant): Use iterative_hash_object.
7631         (build_array_type, build_function_type): Likewise.
7632         (build_method_type_directly): Likewise.
7633         (build_offset_type, build_complex_type): Likewise.
7634         (type_hash_list, attribute_hash_list): Likewise. Now static.
7635         * except.c: s/TYPE_HASH/TREE_HASH/.
7636
7637 2004-03-05  Bob Wilson  <bob.wilson@acm.org>
7638
7639         * config/xtensa/xtensa.c (function_arg): Handle 16-byte aligned args.
7640         (xtensa_va_start): Initialize __va_stk to ($arg_ptr - 32).  Adjust
7641         __va_ndx by 2 words when referencing an argument on the stack.
7642         (xtensa_va_arg): Handle 16-byte aligned args.  Adjust __va_ndx by 2
7643         words when an arg on the stack is first seen.
7644
7645 2004-03-05  Paul Brook  <paul@codesourcery.com>
7646
7647         * arm.h (ARM_FLAG_VFP): Remove.
7648         (ARM_FLAG_ATPCS, CIRRUS_FIX_INVALID_INSNS): Renumber.
7649         * netbsd-elf.h (ARM_FLAG_VFP): Remove.
7650
7651 2004-03-05  Paul Brook  <paul@codesourcery.com>
7652
7653         * function.c (assign_parms): Include pretend alignment offset.
7654
7655 2004-03-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7656
7657         * stor-layout.c (layout_type, case FUNCTION_TYPE): Make size
7658         FUNCTION_BOUNDARY, not POINTER_SIZE * 2.
7659
7660 2004-03-05  Ian Lance Taylor  <ian@wasabisystems.com>
7661
7662         * configure.ac: When passing --enable-languages to subdir
7663         configure when host != build, make sure we don't pass an empty
7664         value.
7665         * configure: Regenerate.
7666
7667 2004-03-05  Nathan Sidwell  <nathan@codesourcery.com>
7668
7669         PR 13577
7670         * gcc.c (cc1_options): Robustify -auxbase-strip from multiple -o
7671         options.
7672
7673 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
7674
7675         * simplify-rtx.c (simplify_relational_operation): If
7676         flag_wrapv is set, do not move terms between the two
7677         side of a relational operator.
7678
7679 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
7680
7681         * rtlanal.c: Include target.h and output.h
7682         (rtx_cost, address_cost, default_address_cost): Move from...
7683         * cse.c (rtx_cost, address_cost, default_address_cost):
7684         ... this file.
7685         * rtl.h (rtx_cost, address_cost): Move under rtlanal.c.
7686         * Makefile.in: Adjust dependencies.
7687
7688 2004-03-05  Paolo Bonzini <bonzini@gnu.org>
7689
7690         * cse.c (cse_end_of_basic_block): Make static.
7691         * local-alloc.c (function_invariant_p): Move to
7692         reload1.c.
7693         * loop.c (libcall_other_reg, record_excess_regs):
7694         Make static.
7695         * reload1.c (function_invariant_p): Moved here
7696         from local-alloc.c, made static.
7697         * rtl.h (cse_end_of_basic_block, function_invariant_p,
7698         libcall_other_reg, record_excess_regs): Remove
7699         declarations.
7700
7701 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
7702
7703         * config/m32r/m32r.c (signed_comparison_operator): Add a
7704         missing parenthesis.
7705
7706 2004-03-04  Ian Lance Taylor  <ian@wasabisystems.com>
7707
7708         * ggc-common.c (gt_pch_restore): Don't unmap addr unless we are
7709         going to call mmap again.  Read the file into the right place.
7710         Give a fatal error if we have to relocate.
7711
7712 2004-03-04  Bob Wilson  <bob.wilson@acm.org>
7713
7714         * config/xtensa/xtensa.c (xtensa_return_in_msb): New function.
7715         (TARGET_RETURN_IN_MSB): Define to xtensa_return_in_msb.
7716
7717 2004-03-05  Hans-Peter Nilsson  <hp@axis.com>
7718
7719         PR other/14354
7720         * config/fp-bit.c (_fpdiv_parts): Do not round when pack_d would
7721         round the same.  When rounding, clear bits that would cause a
7722         second rounding in pack_d.
7723         (_fpmul_parts): Ditto.  Remove #if 0:d code.
7724
7725 2004-03-04  Ziemowit Laski  <zlaski@apple.com>
7726
7727         PR c++/14425, c++/14426
7728         * config/rs6000/altivec.h (vec_splat_s8, vec_splat_s16,
7729         vec_splat_s32, vec_splat_u8, vec_splat_u16, vec_splat_u32):
7730         Change C++ definitions to accept a 'const int' argument;
7731         the prototypes already do.
7732         * config/rs6000/rs6000.c (rs6000_common_init_builtins):
7733         Rename v4si_ftype_char, v8hi_ftype_char, v16qi_ftype_char,
7734         v4sf_ftype_v4si_char, v4si_ftype_v4sf_char, v4si_ftype_v4si_char,
7735         v8hi_ftype_v8hi_char, v16qi_ftype_v16qi_char,
7736         v16qi_ftype_v16qi_v16qi_char, v8hi_ftype_v8hi_v8hi_char,
7737         v4si_ftype_v4si_v4si_char and v4sf_ftype_v4sf_v4sf_char to
7738         end in ..._int; change them to accept an int instead of a char
7739         as the last parameter.
7740
7741 2004-03-04  Phil Edwards  <phil@codesourcery.com>
7742
7743         * genmultilib:  Change '=' to '-' when translating option names
7744         to directory names.
7745
7746 2004-03-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7747
7748         * expr.c (expand_expr_real, case COMPONENT_REF): Get proper type of
7749         stack slot for temp used for result of BLKmode but in integral mode.
7750
7751 2004-03-04  Jan Hubicka  <jh@suse.cz>
7752
7753         * reload.c (find_reloads): Reorganize if seqeunce to switch.
7754
7755         * cfgrtl.c (rtl_redirect_edge_and_branch):  Set the source BB as dirty.
7756         (cfglayout_redirect_edge_and_branch):  Set the source BB as dirty.
7757
7758 2004-03-04  Steve Ellcey  <sje@cup.hp.com>
7759
7760         * config/ia64/ia64.md (divdf3_internal_thr): Fix algorithm.
7761         * testsuite/gcc.dg/20040303-1.c: New test.
7762
7763 2004-03-04  Steven Bosscher  <stevenb@suse.de>
7764
7765         * ppro.md: Rewrite as a DFA pipeline description.
7766         * i386.md: Remove all uses of the ppro_uops attribute.
7767         * i386.c: (ix86_safe_ppro_uops, ix86_dump_ppro_packet,
7768         ix86_reorder_insn, ix86_sched_reorder_ppro, ix86_sched_init,
7769         ix86_sched_reorder, ix86_variable_issue,
7770         struct ix86_sched_data, TARGET_SCHED_VARIABLE_ISSUE,
7771         TARGET_SCHED_INIT, TARGET_SCHED_REORDER): Remove.
7772         (ia32_use_dfa_pipeline_interface): Add TARGET_PENTIUMPRO.
7773         (ia32_multipass_dfa_lookahead): Add TARGET_PENTIUMPRO.
7774         * athlon.md (athlon_ssecmp_load): Fix comment
7775
7776 2004-03-04  Stuart Hastings  <stuart@apple.com>
7777
7778         * gcc/doc/invoke.texi: Document -mlongcall for Darwin/PPC.
7779
7780 2004-03-04  Stuart Hastings  <stuart@apple.com>
7781
7782         * gcc/config/i386/darwin.h: Darwin/x86 doesn't support CPUs before
7783         686, tell Darwin assembler to allow prefetch insns, non-empty def
7784         of SUBTARGET_OPTION_TRANSLATE_TABLE.
7785
7786 2004-03-04  DJ Delorie  <dj@redhat.com>
7787
7788         PR optimization/14282
7789         * sched-deps.c (sched_analyze_insn): Allow a stack adjustment
7790         between a call and the assignment of its return value.
7791
7792 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
7793
7794         * config/h8300/h8300.c: Put a comment for every function.
7795
7796 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
7797
7798         * config/h8300/h8300.md: Add comments about peephole2's.
7799
7800 2004-03-04  Steven Bosscher  <stevenb@suse.de>
7801
7802         * i386.h (TARGET_CPU_DEFAULT_nocona): Fix value.
7803
7804 2004-03-04  Jan Hubicka  <jh@suse.cz>
7805
7806         * cfgcleanup.c (thread_jump): Update call of cselib_init.
7807         * cselib.c (cselib_record_memory): New static variable.
7808         (cselib_lookup_mem, cselib_record_set, cselib_record_sets):
7809         Give up on memories when asked for.
7810         (cselib_init): Accept new argument.
7811         * cselib.h (cselib_init): Update prototype.
7812         * gcse.c (local_cprop_pass): Update call of cselib_init.
7813         * loop.c (load_mems): Update call of cselib_init.
7814         * postreload.c (reload_cse_regs_1): Update call of cselib_init.
7815         * sched-deps.c (sched_analyze): Update call of cselib_init.
7816
7817 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
7818             GP <gp@qnx.com>
7819
7820         * config/rs6000/rs6000.c (output_function_profiler): Append @plt
7821         when compiling PIC.
7822
7823 2004-03-04  Josef Zlomek  <zlomekj@suse.cz>
7824
7825         PR/14362
7826         * var-tracking.c (track_expr_p): Do not track variables which
7827         should be ignored for debugging purposes.
7828
7829 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
7830
7831         * real.c (encode_ibm_extended): Don't bother rounding low double.
7832         * c-cppbuiltin.c (builtin_define_float_constants): Tweak MAX
7833         when fmt->pnan < fmt->p.
7834
7835 2004-03-04  Eric Christopher  <echristo@redhat.com>
7836
7837         * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Fix to check
7838         only range of valid arg registers and fixed_regs.
7839
7840 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
7841
7842         PR target/14406
7843         * config/rs6000/rs6000.md (abstf2, abstf2+1): Delete define_insn.
7844         (abstf2, abstf2_internal): New define_expand.
7845
7846 2004-03-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
7847
7848         PR optimization/14235
7849         * expr.c (convert_move): Copy the source to a new pseudo
7850         when converting from a sub-word source to a larger-than-word
7851         register which conflicts with the source.
7852
7853 2004-03-03  Zack Weinberg  <zack@codesourcery.com>
7854
7855         PR 13728
7856         * c-decl.c (diagnose_mismatched_decls): Issue an error for two
7857         parameters with the same name, unless one is a forward decl.
7858         Do not issue a redundant-redeclaration warning for forward
7859         decls of parameters.
7860
7861 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
7862
7863         * doc/install.texi (*-ibm-aix*): Document use of Bash to speed up
7864         configuration.
7865
7866 2004-03-03  Ian Lance Taylor  <ian@wasabisystems.com>
7867
7868         * ggc-zone.c (ggc_pch_write_object): Don't align file pointer.
7869
7870 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
7871
7872         * target-def.h (TARGET_OPTF): Delete.
7873         * c-opts.c (TARGET_OPTF): Define.
7874
7875 2004-03-04  Jan Hubicka  <jh@suse.cz>
7876
7877         * cselib.c (cselib_finish): Fix another miss-application of my previous
7878         patch.
7879
7880 2004-03-03  Mike Stump  <mrs@apple.com>
7881
7882         Add framework support for darwin.
7883
7884         * c-incpath.c: Include target.h and machmode.h.
7885         (add_path): Use a consistent style for cpp_dir.  Initialize
7886         p->construct to 0.
7887         (add_cpp_dir_path): New.
7888         (register_include_chains): Add use of extra_includes callback.
7889         (hook_void_int): Add.
7890         (target_c_incpath): Add.
7891         * c-incpath.h (add_cpp_dir_path): New.
7892         (target_c_incpath_s): Add.
7893         (target_c_incpath): Add.
7894         (C_INCPATH_INIT): Add.
7895         * c-opts.c (c_common_missing_argument,
7896         c_common_handle_option): Add -F argument processing.
7897         * c.opt: Add -F argument processing.
7898         * gcc.c (trad_capable_cpp): Add -F argument processing.
7899         * cppfiles.c (find_file_in_dir): Update to use construct
7900         callback.
7901         (search_path_exhausted, cpp_get_path, cpp_get_buffer,
7902         cpp_get_prev): New.
7903         (_cpp_find_file): Use search_path_exhausted.
7904         (make_cpp_dir): Initialize construct to 0.
7905         * cpplib.h (missing_header_cb
7906         cpp_get_path, cpp_get_buffer, cpp_get_file, cpp_get_prev): New.
7907         (cpp_callbacks): Add missing_header
7908         (cpp_dir): Add construct.
7909         * target-def.h: (TARGET_OPTF): New.
7910         * hooks.c (hook_void_int, hook_void_charptr): Add.
7911         * hooks.h (hook_void_int, hook_void_charptr): Add.
7912         * Makefile.in (c-incpath.o) : Add $(TARGET_H) and
7913         $(MACHMODE_H) dependencies.
7914         * doc/invoke.texi (Darwin Options): Document -F.
7915         * doc/tm.texi (TARGET_EXTRA_INCLUDES): Add.
7916         (TARGET_OPTF): Add.
7917         * fix-header.c (target_c_incpath): Add.
7918
7919         * config/darwin-c.c: Add c-incpath.h include.
7920         (using_frameworks, find_subframework_file,
7921         find_subframework_header, add_system_framework_path,
7922         frameworks_in_use, num_frameworks, max_frameworks,
7923         add_framework, find_framework, struct framework_header,
7924         framework_header_dirs, framework_construct_pathname,
7925         find_subframework_file, add_system_framework_path,
7926         add_framework_path, framework_defaults,
7927         darwin_register_frameworks, find_subframework_header): Add.
7928         * config/darwin.h (TARGET_EXTRA_INCLUDES, TARGET_OPTF): New.
7929         (TARGET_OPTION_TRANSLATE_TABLE): Add -framework support.
7930         (CPP_SPEC): Add __APPLE_CC__ support.
7931         * t-darwin (darwin-c.o): Add c-incpath.h dependency.
7932
7933 2004-03-04  Jan Hubicka  <jh@suse.cz>
7934
7935         * cselib.c (cselib_finish): Fix miss-application of my previous
7936         patch.
7937
7938 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
7939
7940         * hooks.c (hook_tree_tree_identity): New.
7941         * hooks.h: Add a prototype for hook_tree_tree_identity.
7942         * stmt.c (expand_asm_operands): Use targetm.md_asm_clobbers
7943         instead of MD_ASM_CLOBBERS.
7944         * system.h (MD_ASM_CLOBBERS): Poison.
7945         * target-def.h (TARGET_MD_ASM_CLOBBERS): New.
7946         (TARGET_INITIALIZER): Add TARGET_MD_ASM_CLOBBERS.
7947         * target.h (gcc_target): Add md_asm_clobbers.
7948         * config/i386/i386.c (TARGET_MD_ASM_CLOBBERS): New.
7949         (ix86_md_asm_clobbers): New.
7950         * config/i386/i386.h (MD_ASM_CLOBBERS): Remove.
7951         * doc/tm.texi (MD_ASM_CLOBBERS): Change to
7952         TARGET_MD_ASM_CLOBBERS.
7953
7954 2004-03-03  Stuart Hastings  <stuart@apple.com>
7955
7956         * gcc/config.gcc: Arrange for Darwin/x86 to build libgcc_eh.a.
7957
7958 2004-03-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
7959
7960         * config/sparc/sparc.c (noov_compare64_op): Fix typo.
7961
7962         * config/sparc/sparc.h (ASM_FLOAT): Delete.
7963         (ASM_DOUBLE): Likewise.
7964         (ASM_LONGDOUBLE): Likewise.
7965         * config/sparc/pbd.h (ASM_INT_OP): Delete.
7966
7967 2003-03-03  Richard Henderson  <rth@redhat.com>
7968
7969         PR opt/13862
7970         * cselib.c (cselib_record_sets): Don't record multiple sets in
7971         asm insns.
7972
7973 2004-03-03  Mostafa Hagog  <mustafa@il.ibm.com>
7974
7975         * common.opt: Add description of the new -fgcse-after-reload flag.
7976
7977         * flags.h (flag_gcse_after_reload): Declaration of global variable.
7978
7979         * gcse.c (reg_used_on_edge ,reg_set_between_after_reload_p,
7980         reg_used_between_after_reload_p, rtx get_avail_load_store_reg,
7981         is_jump_table_basic_block, bb_has_well_behaved_predecessors,
7982         get_bb_avail_insn, hash_scan_set_after_reload,
7983         compute_hash_table_after_reload, eliminate_partially_redundant_loads,
7984         gcse_after_reload, get_bb_avail_insn): New functions to implement
7985         gcse-after-reload.
7986         (gcse_after_reload_main): New function, the main entry point to
7987         gcse-after-reload.
7988
7989         * rtl.h (gcse_after_reload_main): Declaration of the new function.
7990
7991         * opts.c (common_handle_option): Handle the -fgcse-after-reload flag.
7992
7993         * toplev.c (flag_gcse_after_reload): Initialization.
7994
7995         * passes.c (rest_of_handl_gcse2): Call gcse_after_reload_main.
7996
7997         * params.def (PARAM_GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
7998         PARAM_GCSE_AFTER_RELOAD_CRITICAL_FRACTION): New parameters for tuning
7999         the gcse after reload optimization.
8000
8001         * params.h (GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
8002         GCSE_AFTER_RELOAD_CRITICAL_FRACTION): Two macros to access the tuning
8003         parameters.
8004
8005         * doc/invoke.texi: Documentation for the new flag gcse-after-reload.
8006
8007 2004-03-03  Nicolas Pitre <nico@cam.org>
8008
8009         * config/arm/ieee754-df.S (muldf3, divdf3): Fix denormalization of
8010         small negative values.
8011
8012 2004-03-03  Jan Hubicka  <jh@suse.cz>
8013
8014         * cselib.c (hash_table):  Remove GTY marker.
8015         (reg_values): Turn into array.
8016         (used_regs): Likewise.
8017         (n_used_regs): New static variable.
8018         (reg_values_old): Kill.
8019         (clear_table): Update uses of arrays.
8020         (cselib_lookup): Likewise.
8021         (cselib_record_set): Likewise.
8022         (cselib_init): Likewise.
8023         (cselib_finish): Likewise.
8024         (cselib_udpate_varray_sizes): Kill.
8025         * cselib.h (cselib_update_varray_sizes): Kill.
8026
8027 2004-03-03  Paul Brook  <paul@codesourcery.com>
8028
8029         * flow.c (ior_reg_cond, and_reg_cond): Remove stray ")".
8030
8031 2004-03-03  Jan Hubicka  <jh@suse.cz>
8032
8033         * ggc-common.c (ggc_alloc_cleared_stat, ggc_realloc_stat):
8034         Rename from ...; make statistics transparent.
8035         (ggc_alloc_cleared, ggc_realloc_stat): ... these.
8036         (loc_descriptor): New structure.
8037         (hash_descriptor, eq_descriptor, loc_descriptor, cmp_statistics,
8038         add_statistics):
8039         New static function.
8040         (ggc_record_overhead, dump_statistics): New global function.
8041         * ggc-none.c (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
8042         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Rename
8043         from ...; accept locations
8044         (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
8045         ggc_realloc, ggc_alloc_typed):  ... this one.
8046         from ...; accept locations
8047         * ggc-page.c (ggc_alloc_typed_stat, ggc_alloc_zone_stat,
8048         ggc_alloc_stat): Rename from ... ; pass locations
8049         * ggc-page.c (ggc_alloc_typed, ggc_alloc_zone, ggc_alloc):
8050         ... this one.
8051         (ggc_alloc_stat): Record overehead.
8052         * ggc.h (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
8053         ggc_realloc, ggc_alloc_typed):  Turn to macros
8054         (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
8055         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Declare.
8056         (dump_ggc_loc_satistics, ggc_record_overehead): Declare.
8057         * langhooks.h (lhd_make_node): Declare.
8058         (LANG_HOOKS_MAKE_TYPE): Default to new function,
8059         * langhooks.c (lhd_make_node): New.
8060         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Rename from ... ; pass
8061         locations.
8062         (rtx_alloc, swallow_copy_rtx): ... this one.
8063         * rtl.h (rtx_alloc, swallow_copy_rtx): Turn to macros.
8064         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Declare.
8065         * toplpev.c (finalize): Dump stats.
8066         * tree.c (make_node_stat, copy_node_stat, make_tree_vec_stat,
8067         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
8068         Rename from ... ; pass locators.
8069         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
8070         build?,  build_decl): Declare.
8071         * tree.h (make_node_stat, copy_node_stat, make_tree_vec_stat,
8072         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
8073         Declare.
8074         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
8075         build?,  build_decl): New macros.
8076         * Makefile.in (RTL_H, TREE_H): Add statistics.h dependency.
8077         * statistics.h: New file.
8078
8079 2004-03-03  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
8080             Richard Sandiford  <rsandifo@redhat.com>
8081
8082         * config/mips/mips.h (MASK_FIX_SB1): Bump.
8083         (MASK_FIX_R4400, TARGET_FIX_R4400): New macros.
8084         (TARGET_SWITCHES): Add -mfix-r4400 and -mno-fix-r4400.
8085         * config/mips/mips.c (mips_output_division): Fill the branch delay
8086         slot with a nop if TARGET_FIX_R4000.  Extend R4000 workarounds to
8087         TARGET_FIX_R4400.
8088         (mips_output_division): Adjust accordingly.
8089         (override_options): Make -march=r4400 imply -mfix-r4400 by default.
8090         * doc/invoke.texi: Document -mfix-r4400 and new errata workarounds.
8091
8092 2004-03-03  Paolo Bonzini  <bonzini@gnu.org>
8093
8094         * alias.c (rtx_equal_for_memref_p): Use predicates
8095         to test rtx classes and new rtx class codes, possibly
8096         splitting conditionals that tested against '<' and 'o'.
8097         * caller-save.c (save_call_clobbered_regs): Likewise.
8098         * combine.c (contains_muldiv, find_split_point, subst,
8099         combine_simplify_rtx, simplify_if_then_else,
8100         simplify_set, simplify_logical, expand_compound_operation,
8101         make_compound_operation, if_then_else_cond, known_cond,
8102         apply_distributive_law, cached_nonzero_bits,
8103         cached_num_sign_bit_copies, simplify_shift_const,
8104         gen_binary, simplify_comparison, update_table_tick,
8105         record_value_for_reg, get_lsat_value_validate): Likewise.
8106         * cse.c (mention_regs, find_best_addr, find_comparison_args,
8107         fold_rtx, cse_insn, invalidate_memory, cse_basic_block):
8108         Likewise.
8109         * emit-rtl.c (copy_insn_1): Likewise.
8110         * expr.c (force_operand): Likewise.
8111         * final.c (final_scan_insn, get_mem_expr_from_op): Likewise.
8112         * flow.c (notice_stack_pointer_modification_1,
8113         invalidate_mems_from_autoinc, ior_reg_cond, not_reg_cond,
8114         and_reg_cond, elim_reg_cond): Likewise.
8115         * function.c (update_epilogue_consts): Likewise.
8116         * genattrtab.c (attr_rtx_1): Likewise.
8117         * genopinit.c (gen_insn): Likewise.
8118         * integrate.c (subst_constants): Likewise.
8119         * jump.c (reversed_comparison_code_parts,
8120         reversed_comparison_code, delete_related_insns,
8121         rtx_renumbered_equal_p): Likewise.
8122         * local-alloc.c (block_alloc): Likewise.
8123         * loop.c (rtx_equal_for_prefetch_p, maybe_eliminate_biv,
8124         canonicalize_condition): Likewise.
8125         * loop-iv.c (simplify_using_conditions, iv_number_of_iterations):
8126         Likewise.
8127         * optabs.c (add_equal_node, expand_binop): Likewise.
8128         * predict.c (estimate_probability): Likewise.
8129         * ra-debug.c (ra_print_rtx_2op, ra_print_rtx): Likewise.
8130         * recog.c (validate_replace_rtx_1, comparison_operator,
8131         offsettable_address_p, constrain_operands): Likewise.
8132         * reg-stack.c (swap_rtx_condition_1, subst_stack_regs_pat):
8133         Likewise.
8134         * regclass.c (scan_one_insn): Likewise.
8135         * regmove.c (stable_and_no_regs_but_for_p): Likewise.
8136         * regrename.c (kill_autoinc_value): Likewise.
8137         * reload.c (find_reusable_reload, find_reloads,
8138         reg_overlap_mentioned_for_reload_p): Likewise.
8139         * reload1.c (gen_reload, delete_address_reloads_1): Likewise.
8140         * rtl.c (copy_rtx): Likewise.
8141         * rtl.h (CONSTANT_P, INSN_P): Likewise.
8142         * rtlanal.c (commutative_operand_precedence): Likewise.
8143         * sched-deps.c (conditions_mutex_p): Likewise.
8144         * sched-rgn.c (is_cfg_nonregular): Likewise.
8145         * simplify-rtx.c (simplify_gen_binary,
8146         simplify_gen_relational, simplify_replace_rtx,
8147         simplify_unary_operation, simplify_binary_operation,
8148         simplify_ternary_operation, simplify_rtx): Likewise.
8149         * unroll.c (reg_dead_after_loop): Likewise.
8150         * config/alpha/alpha.c (alpha_swapped_comparison_operator,
8151         print_operand): Likewise.
8152         * config/arc/arc.c (proper_comparison_operator): Likewise.
8153         * config/arm/arm.c (arm_arm_address_cost, arm_select_cc_mode):
8154         Likewise.
8155         * config/avr/avr.c (_reg_unused_after): Likewise.
8156         * config/frv/frv.c (frv_ifcvt_modify_tests,
8157         frv_ifcvt_modify_insn, frv_pack_insn): Likewise.
8158         * config/i386/i386.c (ix86_comparison_operator,
8159         ix86_carry_flag_operator, fcmov_comparison_operator,
8160         arith_or_logical_operator, print_operand,
8161         ix86_expand_binary_operator, ix86_binary_operator_ok):
8162         Likewise.
8163         * config/i386/i386.md: Likewise.
8164         * config/ia64/ia64.c (not_postinc_memory_operand,
8165         ia64_print_operand, update_set_flags, errata_emit_nops):
8166         Likewise.
8167         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS,
8168         CONSTRAINT_OK_FOR_S): Likewise.
8169         * config/ip2k/ip2k.c (mdr_resequence_xy_yx,
8170         mdr_try_move_dp_reload, ip2k_check_can_adjust_stack_ref,
8171         ip2k_xexp_not_uses_reg_for_mem, ip2k_xexp_not_uses_reg_p,
8172         ip2k_composite_xexp_not_uses_reg_p, ip2k_unary_operator):
8173         Likewise.
8174         * config/iq2000/iq2000.c (cmp_op, symbolic_expression_p,
8175         eqne_comparison_operator, signed_comparison_operator):
8176         Likewise.
8177         * config/mips/mips.c (cmp_op, symbolic_expression_p):
8178         Likewise.
8179         * config/mmix/mmix (mmix_foldable_comparison_operator,
8180         mmix_comparison_operator): Likewise.
8181         * config/pa/pa.c (hppa_legitimize_address): Likewise.
8182         * config/rs6000/rs6000.c (stmw_operation,
8183         branch_comparison_operator, trap_comparison_operator,
8184         ccr_bit): Likewise.
8185         * config/rs6000/rs6000.h (SELECT_CC_MODE): Likewise.
8186         * config/s390/s390.c (s390_alc_comparison,
8187         s390_slb_comparison):L Likewise.
8188         * config/sh/sh.c (gen_block_redirect, reg_unused_after):
8189         Likewise.
8190         * config/sparc/sparc.c (eq_or_neq, normal_comp_operator,
8191         noov_compare_op, noov_compare64_op, v9_regcmp_op,
8192         emit_hard_tfmode_operation, reg_unused_after)
8193         * doc/md.texi, doc/rtl.texi: Likewise.
8194
8195         * ra-debug.c: Add 2004 to list of copyright years.
8196         * unroll.c: Likewise.
8197
8198         * combine.c (simplify_logical): Remove dummy test,
8199         (apply_distributive_law): Fix typo in comment.
8200         GET_CODE (x) == AND so x is a commutative binary op.
8201         * jump.c (delete_related_insns): simplify loop
8202         condition, move testing of RTX codes inside the loop.
8203         (rtx_renumbered_equal_p): do not use RTX_CODE.
8204         * rtl.c (rtx_class): Declare as enum rtx_class.
8205         * rtl.def (EQ, NE, UNEQ, LTGT, UNORDERED, ORDERED):
8206         Move to RTX_COMM_COMPARE class.
8207         (HIGH, SYMBOL_REF, LABEL_REF, CONST, CONST_INT, CONST_DOUBLE):
8208         Move to RTX_CONST_OBJ class.
8209         * rtl.h (enum rtx_class): New declaration,
8210         (RTX_OBJ_MASK, RTX_OBJ_RESULT, RTX_COMPARE_MASK,
8211         RTX_COMPARE_RESULT, RTX_ARITHMETIC_MASK, RTX_ARITHMETIC_RESULT,
8212         RTX_BINARY_MASK, RTX_BINARY_RESULT, RTX_COMMUTATIVE_MASK,
8213         RTX_COMMUTATIVE_RESULT, RTX_NON_COMMUTATIVE_RESULT,
8214         RTX_EXPR_FIRST, RTX_EXPR_LAST, UNARY_P, BINARY_P,
8215         ARITHMETIC_P, COMMUTATIVE_ARITHMETIC_P, COMPARISON_P,
8216         SWAPPABLE_OPERANDS_P, NON_COMMUTATIVE_P, COMMUTATIVE_P,
8217         OBJECT_P): New macros.
8218         * config/sparc/sparc.c (noov_compare_op): Remove register
8219         from parameter.
8220
8221 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
8222
8223         * target.h: Remove texi jargons in comments.
8224
8225 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
8226
8227         * config/h8300/lib1funcs.asm (___fixunssfsi): Change the
8228         threshold to 0x4f.
8229
8230         Revert:
8231         2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
8232         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
8233         as well.
8234         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
8235         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
8236
8237 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
8238
8239         * doc/md.texi (cbranchmode4): New.
8240
8241 2004-03-02  Eric Christopher  <echristo@redhat.com>
8242
8243         * config/mips/mips16.S: Change fixsfsi and fixdfsi to
8244         fix_trunc.
8245         * config/mips/mips.c (mips_init_libfuncs): Change accordingly.
8246         * config/mips/t-elf (LIB1ASMFUNCS): Ditto.
8247         * config/mips/t-isa3264 (LIB1ASMFUNCS): Ditto.
8248         * config/mips/t-r3900 (LIB1ASMFUNCS): Ditto.
8249
8250 2004-03-02  Richard Henderson  <rth@redhat.com>
8251
8252         PR middle-end/11767
8253         * coverage.c (coverage_counter_ref): Set MEM_NOTRAP_P.
8254         * optabs.c (prepare_cmp_insn): Force trapping memories to registers
8255         before the compare, if flag_non_call_exceptions.
8256
8257 2004-03-02  Richard Henderson  <rth@redhat.com>
8258
8259         PR middle-end/14327
8260         * stmt.c (expand_computed_goto): Do do_pending_stack_adjust before
8261         emitting the label, not after.
8262
8263 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
8264
8265         * config/m68hc11/m68hc11.c (m68hc11_addr_mode): New variable.
8266         (m68hc11_mov_addr_mode): Likewise.
8267         (m68hc11_override_options): Initialize them based on target.
8268         (register_indirect_p): Allow a MEM for indirect addressing modes and
8269         use flags to control what is allowed.
8270         (m68hc11_small_indexed_indirect_p): Use m68hc11_mov_addr_mode for
8271         supported addressing modes.
8272         (m68hc11_register_indirect_p): Use m68hc11_addr_mode.
8273         (go_if_legitimate_address_internal): Likewise.
8274         (m68hc11_indirect_p): Likewise and check the mode.
8275         (print_operand): Allow a (MEM (MEM)) and generate indirect addressing.
8276
8277 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
8278
8279         * builtins.c (BUILTIN_SETJMP_FRAME_VALUE): Remove.
8280         (expand_builtin_setjmp_setup): Use
8281         targetm.builtin_setjmp_frame_value instead of
8282         BUILTIN_SETJMP_FRAME_VALUE.
8283         * system.h (BUILTIN_SETJMP_FRAME_VALUE): Poison.
8284         * target-def.h (TARGET_BUILTIN_SETJMP_FRAME_VALUE): New.
8285         (TARGET_INITIALIZER): Add TARGET_BUILTIN_SETJMP_FRAME_VALUE.
8286         * target.h (gcc_target): Add builtin_setjmp_frame_value.
8287         * targhooks.c (default_builtin_setjmp_frame_value): New.
8288         * targhooks.h: Add a prototype for
8289         default_builtin_setjmp_frame_value.
8290         * doc/tm.texi (BUILTIN_SETJMP_FRAME_VALUE): Change to
8291         TARGET_BUILTIN_SETJMP_FRAME_VALUE.
8292
8293 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
8294
8295         * config/m68hc11/m68hc11.md (move peephole2): New peepholes to optimize
8296         sequences of moves.
8297         (add peepholes): New peepholes to optimize sequences adding small
8298         constants.
8299         (bset peepholes): New peepholes to transform an OR in a bset form
8300         (bclr peepholes): Likewise for bclr form.
8301         (cmp peepholes): New peepholes to avoid register copies when comparing.
8302
8303 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
8304
8305         * config/m68hc11/m68hc11.md ("*pushdi_internal"): New insn and split
8306         to separate push from moves.
8307         ("*pushdf_internal"): Likewise.
8308         ("*pushsf_internal"): Likewise.
8309         ("*pushsi_internal"): Likewise.
8310         ("movdi_internal"): Use define_insn_and_split; non push operand.
8311         ("movdf_internal"): Likewise.
8312         ("movsf_internal"): Likewise.
8313         ("movsi_internal"): Likewise.
8314         ("*movhi_68hc12", "*addhi3_68hc12"): Fix and tune constraints
8315         ("*addhi3", "*subhi3", "*andhi3_mem", "*iorhi3_mem"): Likewise.
8316         ("*ashlsi3_const1", "*lshrsi3_const1"): Likewise.
8317
8318 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
8319
8320         * config/m68hc11/m68hc11.md ("tstqi_z_used"): Use define_insn_and_split.
8321         ("cmphi_z_used", "cmpqi_z_used"): Likewise.
8322         ("movstrictsi", "movstricthi", "movstrictqi"): Likewise.
8323         ("anddi3", "andsi3", "iordi3", "iorsi3"): Likewise.
8324         ("xordi3", "xorsi3", "*logicalsi3_zexthi"): Likewise.
8325         ("*logicalsi3_zextqi", "*logicalhi3_zexthi_ashift8"): Likewise.
8326         ("logicalhi3_zexthi", "*logicalsi3_silshr16"): Likewise.
8327         ("*logicalsi3_silshl16", "*logicalsi3_silshl16_zext"): Likewise.
8328         ("*ashldi3_const32", "*ashldi3_const1", "addsi_silshr16"): Likewise.
8329         ("addsi_andshr16", "*ashlsi3_const16_zexthi"): Likewise.
8330         ("*lshrdi3_const32", "*lshrdi_const1"): Likewise.
8331
8332 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
8333
8334         * config/m68hc11/m68hc11.md (SOFT_TMP_REGNUM): Define.
8335         (SOFT_XY_REGNUM): Define.
8336         (cmp split): Use the above instead of hard coded numbers.
8337         (8-bit op split): No need to check the mode; allow Q_REG.
8338         (ashift split): Adjust the first operand if it uses the SP and we
8339         are pushing the shifted value.
8340         (plus shift split): Fix when a source is in register D+X.
8341         ("doloop_end"): Pass dummy arguments to gen_rtx_NE.
8342
8343 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
8344
8345         * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Fix when
8346         comparing with Z register.
8347
8348 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8349
8350         * cfgloop.h (struct loop_desc): Removed.
8351         (struct loop): Fields simple, desc and has_desc removed.
8352         (simple_loop_p, count_loop_iterations): Declaration removed.
8353         * cfgloopanal.c (struct unmark_altered_insn_data): Removed.
8354         (unmark_altered, blocks_invariant_registers, unmark_altered_insn
8355         blocks_single_set_registers, invariant_rtx_wrto_regs_p_helper,
8356         invariant_rtx_wrto_regs_p, test_for_iteration, constant_iterations,
8357         simple_loop_exit_p, variable_initial_value, variable_initial_values,
8358         simple_condition_p, simple_increment, count_strange_loop_iterations,
8359         inverse, fits_in_mode_p, simple_loop_p, count_loop_iterations):
8360         Removed.
8361         * loop-iv.c (check_simple_exit, find_simple_exit): Update comments.
8362
8363 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
8364
8365         * genattrtab.c: Don't handle MATCH_INSN.
8366         * genrecog.c: Likewise.
8367         * gensupport.c: Likewise.
8368         * rtl.def (match_insn): Remove.
8369         * doc/md.texi (match_insn, match_insn2): Remove.
8370
8371 2004-03-02  Mark Mitchell  <mark@codesourcery.com>
8372
8373         * doc/c-tree.texi (DECL_ASSEMBLER_NAME): Mention that using this
8374         macro results in memory allocation.
8375
8376 2004-03-02  David O'Brien  <obrien@FreeBSD.org>
8377
8378         * config/freebsd-spec.h (FBSD_DYNAMIC_LINKER): Add.
8379         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Define
8380         %(fbsd_dynamic_linker),
8381         (LINK_SPEC): Use %(fbsd_dynamic_linker), and sync style with
8382         config/i386/freebsd.h
8383         * config/arm/freebsd.h: Ditto.
8384         * config/i386/freebsd.h: Ditto.
8385         * config/i386/freebsd64.h: Ditto.
8386         * config/ia64/freebsd.h: Ditto.
8387         * config/rs6000/sysv4.h: Ditto.
8388         * config/sparc/freebsd.h: Ditto.
8389
8390 2004-03-02  Loren James Rittle  <ljrittle@acm.org>
8391
8392         * gcc/doc/install.texi (*-*-freebsd*): Update target information.
8393
8394 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
8395
8396         * rtl.def (define_combine): Remove.
8397
8398 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
8399
8400         * config/h8300/h8300.md: Tweak formatting.
8401
8402 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
8403
8404         * config/h8300/h8300.md (*cmphi_h8300): Rename to
8405         *cmphi_h8300_znvc.
8406         (*cmphi_h8300hs): Rename to *cmphi_h8300hs_znvc.
8407
8408 2004-03-01  Mark Mitchell  <mark@codesourcery.com>
8409
8410         PR bootstrap/14356
8411         * gcc.c (process_command): Remove const-qualification from argv.
8412         (main): Likewise.
8413
8414 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
8415
8416         * config/h8300/h8300.md (pushqi1_h8300hs): Rename to
8417         pushqi1_h8300hs_advanced.  Adjust its caller.
8418         (pushhi1_h8300hs): Rename to pushhi1_h8300hs_advanced.
8419         Adjust its caller.
8420
8421 2004-03-02  Nicolas Roche  <roche@act-europe.fr>
8422
8423         * Makefile.in (install-libgcc, install-multilib): Pass
8424         mkinstalldirs var to libgcc.mk.
8425
8426 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
8427
8428         * system.h (DBX_OUTPUT_STANDARD_TYPES): Poison.
8429         * doc/tm.texi (DBX_OUTPUT_STANDARD_TYPES): Remove.
8430
8431 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
8432
8433         * config/h8300/h8300.c (gtle_operator): Accept GT and LE.
8434         * config/h8300/h8300.md: Split several peephole2's, each into
8435         two.
8436
8437 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8438
8439         * dominance.c (recount_dominator): Handle postdominators.
8440
8441 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
8442
8443         * config/mips/mips-protos.h (enum mips_symbol_type): Move from mips.h.
8444         (NUM_SYMBOL_TYPES): Likewise.
8445         (SYMBOL_64_HIGH, SYMBOL_64_MID, SYMBOL_64_LOW): New symbol types.
8446         (mips_unspec_address): Declare.
8447         (mips_gotoff_page, mips_gotoff_global): Delete.
8448         * config/mips/mips.h (PREDICATE_CODES): Add general_symbolic_operand.
8449         * config/mips/mips.c (enum mips_symbol_type, NUM_SYMBOL_TYPES): Delete.
8450         (mips_symbolic_constant_p, mips_symbolic_address_p)
8451         (mips_symbol_insns): Handle new symbol types.
8452         (general_symbolic_operand): New predicate.
8453         (mips_unspec_address): Make extern.
8454         (mips_gotoff_page, mips_gotoff_global): Delete.
8455         (override_options): Allow -mabi=64 -mno-abicalls -mexplicit-relocs.
8456         Handle new symbol types.
8457         * config/mips/mips.md (*lea_high64, *lea64): New patterns.
8458         (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_disp[sd]i): Call
8459         mips_unspec_address directly.
8460         * doc/invoke.texi: Remove the -mabi=64 -mno-abicalls exception from
8461         the documentation of -mexplicit-relocs.
8462
8463 2004-03-01  Jeff Law  <law@redhat.com>
8464
8465         * fold-const.c (fold): An equality comparison of a non-weak object
8466         against zero has a known result.  Similarly an equality comparison
8467         of the address of two non-weak, unaliased symbols has a known result.
8468
8469         * ggc-page.c (struct page_entry): New field PREV.
8470         (ggc_alloc): Update PREV field appropriately.
8471         (sweep_pages): Likewise.
8472         (ggc_free): Likewise.  Use PREV field rather than loop to
8473         improve ggc_free performance.
8474
8475 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
8476
8477         * config/mips/mips.c (mips_output_division): Use the division
8478         instruction to fill the delay slot of a zero check.
8479         (mips_idiv_insns): Adjust accordingly.
8480
8481 2004-03-01  Nathanael Nerode  <neroden@gcc.gnu.org>
8482
8483         * config.gcc: Create a default tmake_file for linux, and use
8484         it in all but two linux clauses.  Comment those two.
8485
8486 2004-03-01  Paolo Bonzini  <bonzini@gnu.org>
8487
8488         * combine.c (try_combine):  Do not refer to is_replaced.
8489         (gen_lowpart_for_combine):  Perverse subregs now have a
8490         more politically correct name.
8491         * cse.c (cse_insn): Likewise.
8492         * jump.c: Fix bogus reference to delete_insn.
8493
8494 2004-02-29  Mark Mitchell  <mark@codesourcery.com>
8495
8496         PR debug/14328
8497         * dwarf2out.c (gen_enumeration_type_die): Output all enumeration
8498         constants as signed values.
8499
8500         PR middle-end/13448
8501         * c-tree.h (readonly_warning): Rename to ...
8502         (readonly_error): ... this.
8503         * c-typeck.c (build_unary_op): Adjust accordingly.
8504         (readonly_warning): Rename to ...
8505         (readonly_error): ... this and issue errors, not warnings.
8506         (build_modify_expr): Call readonly_error, not readonly_warning.
8507         (c_expand_asm_operands): Likewise.
8508         * tree-inline.c (optimize_inline_calls): Do not inline functions
8509         after errors have occurred.
8510
8511 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
8512
8513         * configure.ac: Rearrange some threading code for clarity;
8514         add section comment.
8515         * configure: Regenerate.
8516
8517 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
8518
8519         * passes.c, config/frv/frv.c, config/sh/sh.c: Fix comment
8520         typos.
8521         * doc/cppopts.texi: Fix a typo.
8522
8523 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
8524
8525         * config/i386/i386.md: Fix formatting.
8526
8527 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
8528
8529         * configure.ac: Add some comments delineating sections of code.
8530
8531         * doc/install.texi: Note that libada uses autoconf 2.57 also.
8532
8533         * doc/install.texi: Fix idiot typo in previous commit.
8534
8535         * doc/install.texi: Update for conversion of intl to autoconf 2.57.
8536
8537 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
8538
8539         * config/h8300/h8300.md: Add comments about peephole2's.
8540
8541 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
8542
8543         * config/h8300/h8300.md: Tweak operand numbers of some
8544         peephole2's.
8545
8546 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
8547
8548         * config/h8300/h8300.md: Tweak comments about peephole2's.
8549
8550 2004-02-29  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
8551
8552         PR middle-end/14203
8553         * function.c (uninitialized_vars_warning): Use DECL_RTL_SET_P
8554         instead of testing whether DECL_RTL is not NULL.
8555
8556 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
8557
8558         * config/sh/sh.c: Fix formatting.
8559
8560 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
8561
8562         * config/sh/sh.c: Convert to ISO-C.
8563
8564 2004-02-28  Andrew Pinski  <pinskia@physics.uc.edu>
8565
8566         * c-typeck.c (tagged_types_tu_compatible_p): Fix pasto in
8567         my previous patch.
8568
8569         * config/darwin.h (machopic_finish): Output stub even if the
8570         symbol is already defined.
8571
8572 2004-02-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8573
8574         * pa64-hpux.h (LIB_SPEC): Fix linking under HP-UX 11.00 with -p and -pg.
8575
8576 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
8577
8578         * genattr.c (main): Don't define
8579         TRADITIONAL_PIPELINE_INTERFACE or DFA_PIPELINE_INTERFACE.
8580         * system.h (TRADITIONAL_PIPELINE_INTERFACE): Poison.
8581         (DFA_PIPELINE_INTERFACE): Likewise.
8582         * doc/tm.texi (TRADITIONAL_PIPELINE_INTERFACE): Remove.
8583         (DFA_PIPELINE_INTERFACE): Likewise.
8584
8585 2004-02-28  Richard Sandiford  <rsandifo@redhat.com>
8586
8587         * config/mips/mips.md (tstsi, tstdi): Delete.
8588
8589 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
8590
8591         * config/mips/mips.c (override_options): Remove an obsolete
8592         duplicate definition of the "e" constraint.
8593         * config/mips/mips.h: Update a comment accordingly.
8594
8595 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
8596
8597         * config/mips/mips.md: Complete the unfinished R4000
8598         multiply/shift errata workaround.  Improve documentation.
8599         (hazard): Use TARGET_FIX_R4000 to decide whether an "imul" instruction
8600         has a hilo hazard.
8601         (mulsi3, mulsi3_internal, mulsi3_r4000): Use TARGET_FIX_R4000.
8602         (muldi3, muldi3_internal): Likewise.
8603         (muldi3_internal2): Remove, replacing with...
8604         (muldi3_mult3, muldi3_r4000): ...these new patterns.
8605         (mulsidi3): Take the errata into account.
8606         (mulsidi3_32bit): Remove, replacing with...
8607         (mulsidi3_32bit_internal, mulsidi3_32bit_r4000): ...these new patterns.
8608         (mulsidi3_64bit, mulsidi3_64bit_parts): Disable if TARGET_FIX_R4000.
8609         (umulsidi3): Take the errata into account.
8610         (umulsidi3_32bit): Remove, replacing with..
8611         (umulsidi3_32bit_internal, umulsidi3_32bit_r4000): ...these patterns.
8612         (umulsi3_highpart, umulsi3_highpart_internal): Disable if
8613         TARGET_FIX_R4000.
8614         (smulsi3_highpart, smulsi3_highpart_internal): Likewise.
8615         (smuldi3_highpart, umuldi3_highpart): Likewise.
8616         * doc/invoke.texi: Document the errata workaround.
8617
8618 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
8619
8620         * config/mips/mips-protos.h (mips_idiv_insns): Declare.
8621         * config/mips/mips.h (MASK_FIX_SB1): Bump.
8622         (MASK_FIX_R4000, TARGET_FIX_R4000): New macros.
8623         (TARGET_SWITCHES): Add -mfix-r4000 and -mno-fix-r4000.
8624         * config/mips/mips.c (mips_idiv_insns): New function.
8625         (override_options): Make -march=r4000 imply -mfix-r4000 by default.
8626         (mips_output_division): Add a workaround for the R4000 divide/shift
8627         errata.
8628         * config/mips/mips.md (length): Use mips_idiv_insns() to calculate
8629         the length of an "idiv" instruction.
8630         * doc/invoke.texi: Document the new switches.
8631
8632 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
8633
8634         * doc/tm.texi (IS_COSTLY_DEPENDENCE): Change to
8635         TARGET_SCHED_IS_COSTLY_DEPENDENCE.
8636
8637 2004-02-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8638
8639         PR optimization/14229
8640         * cfgrtl.c (rtl_tidy_fallthru_edge): Do not fail for !onlyjump jump.
8641
8642 2004-02-28  Eric Botcazou  <ebotcazou@act-europe.fr>
8643
8644         * fold-const.c (fold): Strip NOPs that change the signedness
8645         for RSHIFT too.  Expand comment.
8646
8647 2004-02-27  Ian Lance Taylor  <ian@wasabisystems.com>
8648
8649         PR optimization/7871
8650         * flow.c (mark_set_1): Don't add LOG_LINKS for global registers
8651         from or to call insns.
8652
8653 2004-02-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
8654
8655         PR optimization/7871
8656         * flow.c (propagate_one_insn): Interpret calls as setting global
8657         registers, not merely clobbering them.
8658
8659 2004-02-27  Dale Johannesen  <dalej@apple.com>
8660
8661         * config/darwin.c (machopic_output_possible_stub_label):  Remove.
8662         config/darwin-protos.h:  Ditto.
8663         config/darwin.h:  Remove call to it.
8664         * combine.c (distribute_notes): Do not place a REG_DEAD note
8665         when value is both set and used.
8666
8667 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
8668
8669         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
8670         as well.
8671         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
8672         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
8673
8674 2004-02-27  Andrew Pinski  <apinski@apple.com>
8675
8676         * c-typeck.c (tagged_types_tu_compatible_p) <ENUMERAL_TYPE>:
8677         Speedup common case of the type values being in the same order.
8678
8679 2004-02-27  Steve Ellcey  <sje@cup.hp.com>
8680
8681         * config/ia64/ia64.h (no-inline-float-divide): New option.
8682         * config/ia64/ia64.h (no-inline-int-divide): New option.
8683         * config/ia64/ia64.h (no-inline-sqrt): New option.
8684         (TARGET_DEFAULT): Add MASK_INLINE_FLOAT_DIV_THR to define.
8685         * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
8686         * config/ia64/ia64.c (ia64_override_options): Modify error
8687         checking for inlined division/sqrt.
8688
8689 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
8690
8691         * bb-reorder.c, cfgbuild.c, diagnostic.c, explow.c, profile.c,
8692         ra-build.c, read-rtl.c, tracer.c, unwind-dw2-fde-glibc.c,
8693         value-prof.c, config/darwin-protos.h, config/frv/frv-abi.h,
8694         config/i386/pmmintrin.h, config/pa/pa-hpux.h: Update
8695         copyright.
8696
8697 2004-02-27  Paul Brook  <paul@codesourcery.com>
8698
8699         * function.c (assign_parms): Don't count pretend args for alignment.
8700
8701 2004-02-27  Richard Henderson  <rth@redhat.com>
8702
8703         * passes.c: New file.
8704         * Makefile.in (OBJS-common): Add it.
8705         * diagnostic.c (rtl_dump_and_exit): Move decl ...
8706         * flags.h (rtl_dump_and_exit): ... here.
8707         * output.h (size_directive_output, last_assemble_variable_decl):
8708         Move from toplev.c.
8709         * rtl.h (reg_alloc): Move from toplev.c.
8710         * toplev.c (HAVE_conditional_execution, DUMPFILE_FORMAT,
8711         struct dump_file_info, enum dump_file_index, dump_file_tbl,
8712         open_dump_file, close_dump_file, rest_of_decl_compilation,
8713         rest_of_type_compilation, rest_of_handle_final,
8714         rest_of_handle_delay_slots, rest_of_handle_stack_regs,
8715         rest_of_handle_variable_tracking, rest_of_handle_machine_reorg,
8716         rest_of_handle_new_regalloc, rest_of_handle_old_regalloc,
8717         rest_of_handle_regrename, rest_of_handle_reorder_blocks,
8718         rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_regmove,
8719         rest_of_handle_tracer, rest_of_handle_if_conversion,
8720         rest_of_handle_if_after_combine, rest_of_handle_web,
8721         rest_of_handle_branch_prob,
8722         rest_of_handle_value_profile_transformations, rest_of_handle_cfg,
8723         rest_of_handle_addressof, rest_of_handle_sibling_calls,
8724         rest_of_handle_jump_bypass, rest_of_handle_inlining,
8725         rest_of_handle_null_pointer, rest_of_handle_combine,
8726         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
8727         rest_of_handle_gcse, rest_of_handle_loop_optimize,
8728         rest_of_handle_loop2, rest_of_compilation): Move to passes.c.
8729         (decode_d_option): Use enable_rtl_dump_file.
8730         (compile_file, finalize, do_compile): Move profile+combine+graph
8731         cleanup to finish_optimization_passes.
8732         * toplev.h (init_optimization_passes, finish_optimization_passes,
8733         enable_rtl_dump_file): Declare.
8734
8735 2004-02-27  Eric Botcazou  <ebotcazou@act-europe.fr>
8736             Roger Sayle  <roger@eyesopen.com>
8737
8738         * fold-const.c (fold): Revert 2004-02-25 change.  Use the original
8739         operands to build a tree with swapped operands.
8740         * expr.c (expand_expr_real) <MAX_EXPR>: Consistently use the
8741         'unsignedp' predicate to specify the signedness.
8742
8743 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
8744
8745         * c-decl.c, c-ppoutput.c, combine.c, cppfiles.c, dwarf2out.c,
8746         expr.c, fold-const.c, gcc.c, haifa-sched.c, loop-iv.c,
8747         params.def, read-rtl.c, rtl.c, rtlanal.c, toplev.c: Fix
8748         comment typos and formatting.  Follow spelling conventions.
8749
8750 2004-02-26  Aldy Hernandez  <aldyh@redhat.com>
8751
8752         * config/rs6000/rs6000.md: Add fixuns_truncsfsi2 and
8753         fix_truncsfsi2.
8754
8755         * config/rs6000/spe.md: Delete spe_efsctuiz.
8756         Add spe_fixuns_truncsfsi2.
8757         Add spe_fix_truncsfsi2.
8758
8759 2004-02-26  Eric Christopher  <echristo@redhat.com>
8760
8761         * c-lex.c (c_lex_string_translate): New variable.
8762         (lex_string): Use to determine string translation.
8763         * c-pragma.h: Prototype.
8764         * c-parse.in (start_string_translation): New. Set above.
8765         (stop_string_translation): Ditto.
8766         (attribute, attribute_list, asm_def, asm_stmt,
8767         asm_operand): Use above functions.
8768         * cp/parser.c (cp_parser_declaration): Translate strings
8769         unless token is RID_EXTERN. Set c_lex_string_translate
8770         for recursive use.
8771         (cp_parser_asm_definition): Only translate argument strings
8772         to asms.
8773         (cp_parser_asm_operand_list): Ditto.
8774         (cp_parser_attribute_list): Do not translate attribute strings.
8775
8776 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
8777
8778         * stmt.c (expand_start_case_dummy): Remove.
8779         * tree.h: Remove the corresponding prototype.
8780
8781 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
8782
8783         * builtins.c (apply_args_register_offset): Remove.
8784         * tree.h: Remove the corresponding prototype.
8785
8786 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
8787
8788         * stor-layout.c (is_pending_size): Remove.
8789         * tree.h: Remove the corresponding prototype.
8790
8791 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
8792
8793         * recog.c (validate_replace_src): Remove.
8794         * recog.h: Remove the corresponding prototype.
8795
8796 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
8797
8798         * calls.c: Don't reference FINAL_REG_PARM_STACK_SPACE or
8799         MAYBE_REG_PARM_STACK_SPACE.
8800         * function.c: Likewise.
8801         * system.h (FINAL_REG_PARM_STACK_SPACE): Poison.
8802         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
8803         * doc/tm.texi (FINAL_REG_PARM_STACK_SPACE): Remove.
8804         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
8805
8806 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
8807
8808         * c-decl.c (c_expand_deferred_function): Remove.
8809         * c-tree.h: Remove the corresponding prototype.
8810
8811 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
8812
8813         * postreload.c (reload_cse_move2add): Generate just a PLUS
8814         instead of an entire SET.
8815
8816 2004-02-26  Jan Hubicka  <jh@suse.cz>
8817
8818         * config.gcc: Add support for nocoma/prescott/pentium-m/pentium3m
8819         /pentium4m.
8820         * i386.c (override_options): Add support for new CPUs.
8821         * i386.h (TARGET_CPU_DEFAULT_NAMES): New names.
8822         (TARGET_CPU_DEFAULT_pentium_m, TARGET_CPU_DEFAULT_pentium4e): New
8823         constants.
8824         * invoke.texi: Extend documentation of -mtune/-march for new CPUs.
8825
8826 2004-02-26  Bob Wilson  <bob.wilson@acm.org>
8827
8828         * config/xtensa/xtensa.h (TARGET_CPU_CPP_BUILTINS): Define __xtensa__.
8829
8830 2004-02-26  Eric Botcazou  <ebotcazou@act-europe.fr>
8831
8832         * config/sparc/sparc-protos.h (sparc_emit_floatunsdi): Add 'mode'.
8833         (sparc_emit_fixunsdi): New prototype.
8834         * config/sparc/sparc.c (sparc_emit_floatunsdi): Use 'mode' argument.
8835         (sparc_emit_fixunsdi): New function.
8836         * config/sparc/sparc.md (floatunsdisf2): Use 'general_operand' for
8837         operand 1.  Pass SFmode to sparc_emit_floatunsdi.
8838         (floatunsdidf2): Use 'general_operand' for operand 1.  Pass DFmode
8839         to sparc_emit_floatunsdi.
8840         (fixuns_truncsfdi2): New expander.
8841         (fixuns_truncdfdi2): Likewise.
8842
8843 2004-02-26  Alan Modra  <amodra@bigpond.net.au>
8844
8845         * gcse.c (delete_null_pointer_checks_1): Do not delete CC setter
8846         unless HAVE_cc0.
8847
8848 2004-02-25  Richard Henderson  <rth@redhat.com>
8849
8850         * explow.c (force_reg): Call mark_reg_pointer as appropriate.
8851         * config/alpha/alpha.c (alpha_emit_conditional_branch): Don't
8852         use (op0-op1) == 0 if op0 is a pointer.
8853         * config/alpha/alpha.md (cmpdi): Use some_operand.
8854         (three comparison combine splits): Remove.
8855
8856 2004-02-25  Richard Henderson  <rth@redhat.com>
8857
8858         PR c/12794
8859         * c-common.c (handle_alias_attribute): Reject the attribute if
8860         current_function_decl is set.
8861
8862 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
8863
8864         * config.gcc: Add comment describing extra_gcc_objs.
8865         i[34567]86-*-cygwin*): Replace host_extra_gcc_objs with extra_gcc_objs.
8866         * configure.ac (extra_gcc_objs): New substitution variable.
8867         (host_extra_gcc_objs): Don't substitute.
8868         * configure: Regenerate.
8869         * Makefile.in: Use extra_gcc_objs.
8870
8871 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
8872
8873         * doc/contrib.texi: Add an entry for myself.
8874
8875 2004-02-25  Jan Hubicka  <jh@suse.cz>
8876
8877         * basic-block.h (make_eh_edge, break_superblocks): Declare.
8878         * cfgbuild.c (make_eh_edge):  Make global.
8879         * cfglayout.c (break_superblocks): Likewise; fix memory leak.
8880         * except.c (build_post_landing_pads, connect_post_landing_pads,
8881         dw2_build_landing_pads, sjlj_emit_function_enter,
8882         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
8883         sjlj_build_landing_pads): Update CFG.
8884         (emit_to_new_bb_before): New function.
8885         (finish_eh_generation): Do not rebuild the CFG.
8886
8887 2004-02-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8888
8889         * config.gcc (hppa*-*-*, parisc*-*-*): Add MASK_BIG_SWITCH to all
8890         target_cpu_default defines.
8891         * pa-hpux.h (TARGET_DEFAULT): Add MASK_BIG_SWITCH to define.
8892         * pa.h (TARGET_DEFAULT): Likewise.
8893
8894 2004-02-25  Eric Botcazou  <ebotcazou@act-europe.fr>
8895
8896         * fold-const.c (fold): Treat MAX_EXPR and MIN_EXPR like
8897         comparisons with regard to signedness.
8898
8899 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
8900
8901         * arm.c (thumb_legitimize_address): New function.
8902         * arm-protos.h: Prototype it.
8903         * arm.h (THUMB_LEGITIMIZE_ADDRESS): Define.
8904         (LEGITIMIZE_ADDRESS): Use it.
8905
8906 2004-02-25  J"orn Rennecke <joern.rennecke@superh.com>
8907
8908         * reload1.c (reload): Only spill eliminable register with multiple
8909         adjacent elimination alternatives if all alternatives fail.
8910
8911 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
8912
8913         * arm.c (arm_legitimate_index_p): For QImode the range of an offset
8914         is -4095...+4095 inclusive.
8915
8916 2004-02-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
8917
8918         * doc/install.texi (sparc-sun-solaris2* specific notes): Document
8919         the bootstrap failure with Sun CC 5.4 and 5.5.
8920
8921 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
8922
8923         * cse.c (cse_change_cc_mode_insns): Stop at any instruction
8924         which modifies NEWREG.
8925         (cse_condition_code_reg): Update the mode of CC_REG in
8926         CC_SRC_INSN on our own.
8927
8928 2004-02-24  Michael Matz  <matz@suse.de>
8929
8930         * config/i386/i386.c (ix86_comp_type_attributes): Check for
8931         regparm attributes.
8932
8933 2004-02-24  Richard Henderson  <rth@redhat.com>
8934
8935         * toplev.c (dump_file_tbl): Rename from dump_file.
8936         * bb-reorder.c, bt-load.c, cfgcleanup.c, cfglayout.c, cfgloopanal.c,
8937         cfgloopmanip.c, cfgrtl.c, config/arm/arm.c, config/frv/frv.c,
8938         config/i386/i386.c, config/ia64/ia64.c, config/mips/mips.c,
8939         config/sh/sh.c, cse.c, flow.c, ifcvt.c, loop-iv.c, loop-unroll.c,
8940         loop-unswitch.c, output.h, predict.c, profile.c, ra-build.c,
8941         ra-colorize.c, ra-debug.c, ra-rewrite.c, ra.c, regrename.c, reload1.c,
8942         toplev.c, tracer.c, value-prof.c, var-tracking.c, web.c:
8943         s/rtl_dump_file/dump_file/g.
8944
8945 2004-02-24  Aldy Hernandez  <aldyh@redhat.com>
8946
8947         * config/rs6000/spe.md (spe_fix_truncsfsi2): Delete.
8948         (spe_fixuns_truncsfsi2): Delete.
8949
8950         * config/rs6000/rs6000.md (fix_truncsfsi2): Delete.
8951         (fixuns_truncsfsi2): Delete.
8952
8953 2004-02-24  Josef Zlomek  <zlomekj@suse.cz>
8954
8955         PR/14240
8956         * rtlanal.c (replace_label): Fix replacing labels in constant pool.
8957
8958 2004-02-24  Geoffrey Keating  <geoffk@apple.com>
8959
8960         * config/darwin.h (TARGET_HAS_F_SETLKW): Define.
8961
8962 2004-02-24  Jason Merrill  <jason@redhat.com>
8963
8964         * tree.c (check_qualified_type): New fn.
8965         (get_qualified_type): Use it.  If type already has the desired
8966         quals, just return it.
8967         * tree.h: Declare it.
8968
8969 2003-02-24  Sanjiv Kumar Gupta  <sanjivg@noida.hcltech.com>
8970
8971         * target-def.h (TARGET_SCHED_INIT_GLOBAL,
8972         TARGET_SCHED_FINISH_GLOBAL): New macros.
8973
8974         * target.h (md_init_global, md_finish_global): Function
8975         declarations corresponding to new target macros.
8976
8977         * haifa-sched.c (sched_init, sched_finish): Allow target to
8978         call the new schedular hooks.
8979
8980         * flow.c (recompute_reg_usage): Add PROP_DEATH_NOTES flag in
8981         call to update_life_info.
8982
8983         * config/sh/sh.h (OVERRIDE_OPTIONS): Re-enable
8984         flag_schedule_insns for SH4.
8985
8986         * config/sh/sh.c (sh_md_init_global, sh_md_finish_global,
8987         find_set_regmode_weight, find_insn_regmode_weight,
8988         find_regmode_weight), sh_md_init, sh_dfa_new_cycle,
8989         sh_variable_issue, high_pressure, ready_reorder,
8990         rank_for_reorder, swap_reorder, sh_reorder, sh_reorder2): New
8991         functions used to throttle the insn movement in first
8992         scheduling pass for SH.
8993
8994         * gcc/doc/tm.texi: Document TARGET_SCHED_INIT_GLOBAL and
8995         TARGET_SCHED_FINISH_GLOBAL.
8996
8997 2004-02-24  Alexandre Oliva  <aoliva@redhat.com>
8998
8999         Implement FR-V FDPIC ABI support for frv-uclinux and frv-linux.
9000         2004-02-05  Alexandre Oliva  <aoliva@redhat.com>
9001         * config/frv/frv.c (frv_emit_movsi): Use GOT relocations for
9002         symbols in sections named by the user.
9003         2004-01-30  Alexandre Oliva  <aoliva@redhat.com>
9004         * config/frv/linux.h (TARGET_OS_CPP_BUILTINS): New.
9005         2004-01-27  Alexandre Oliva  <aoliva@redhat.com>
9006         * config.gcc (frv-*-*linux*): Handle like *-*-linux*.
9007         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Remove, obviated by
9008         the above.
9009         2004-01-20  Alexandre Oliva  <aoliva@redhat.com>
9010         * config/frv/frv.md (symGOT2reg_hilo, symGOTOFF2reg_hilo): Add
9011         one more pseudo to further improve code generation.
9012         2004-01-19  Alexandre Oliva  <aoliva@redhat.com>
9013         * config/frv/frv.md (movdi_ldd): Introduce explicit indirection
9014         inside UNSPEC.
9015         2004-01-16  Alexandre Oliva  <aoliva@redhat.com>
9016         * config/frv/frv.c (frv_legitimate_address_p): Added
9017         allow_double_reg_p argument.  Adjust all callers.  Use it to
9018         decide whether to enable double-register indirect addressing.
9019         (frv_funcdesc_alias_set): Remove.
9020         (frv_expand_fdpic_call): Force non-SYMBOL_REF operand into
9021         register.  Emit movdi_ldd.
9022         (ldd_address_operand): New.
9023         * config/frv/frv-protos.h (frv_legitimate_address_p): Adjust.
9024         * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Likewise.
9025         (PREDICATE_CODES): Add ldd_address_operand.
9026         * config/frv/frv.md (movdi_ldd): New.
9027         (symGOT2reg_hilo, symGOTOFF2reg_hilo): Use separate pseudo for
9028         intermediate computations if possible.
9029         (symGOTOFF2reg_i): Fix harmless typo.
9030         2003-12-18  Alexandre Oliva  <aoliva@redhat.com>
9031         * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Cast
9032         relocated p_vaddr to vaddr type.
9033         * config/frv/frv-protos.h (frv_expand_fdpic_call): Return void.
9034         * config/frv/frv.c (frv_get_funcdesc_alias_set): New.
9035         (frv_expand_fdpic_call): Propagate incoming MEM's expr to funcdesc
9036         MEM, or use a funcdesc alias set.  Use regular move instead of
9037         ldd.
9038         (dbl_memory_one_insn_operand): Recognize function descriptors by
9039         type or by alias set, and don't split them.
9040         * config/frv/frv.md (call, call_value): Never use call_internal
9041         for fdpic.
9042         (call_internal, call_value_internal): Never match for FDPIC.
9043         (call_fdpicdi, call_fdpicsi, call_value_fdpicdi,
9044         call_value_fdpicsi): Require FDPIC.
9045         (ldd): Removed.
9046         2003-12-17  Alexandre Oliva  <aoliva@redhat.com>
9047         * config/frv/frv.h (CRT_GET_RFIB_DATA): Define for __FRV_FDPIC__.
9048         * unwind-dw2-fde-glibc.c: Don't include elf-fdpic.h any more.
9049         (_Unwind_IteratePhdrCallback): Adjust type of load_base for FRV
9050         FDPIC.  Compute data base address.
9051         * config/frv/linux.h (SUBTARGET_DRIVER_SELF_SPECS): Enable -mfdpic
9052         before the other self-specs are processed.
9053         * config/frv/t-linux (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS):
9054         Build with -fPIC.
9055         2003-12-15  Alexandre Oliva  <aoliva@redhat.com>
9056         * unwind-dw2-fde-glibc.c: Don't include bits/elf-fdpic.h if
9057         inhibit_libc is defined.
9058         2003-12-12  Alexandre Oliva  <aoliva@redhat.com>
9059         * unwind-dw2-fde-glibc.c: Include bits/elf-fdpic.h for
9060         __FRV_FDPIC__.
9061         (__RELOC_POINTER): Define.
9062         (_Unwind_IteratePhdrCallback): Use it.
9063         * config/frv/frv.h (Twrite): Define.
9064         (TRANSFER_FROM_TRAMPOLINE): Use it.
9065         * config/frv/linux.h (INVOKE__main): Undefine.
9066         (Twrite): Override.
9067         2003-12-05  Richard Sandiford  <rsandifo@redhat.com>
9068         * doc/invoke.texi (-mlong-calls, -mlinked-fp): Document FRV options.
9069         (-mlibrary-pic): Emphasize that this option generates EABI code.
9070         (-mcpu): Add fr550.
9071         (-mpack): Remove.
9072         2003-11-30  Alexandre Oliva  <aoliva@redhat.com>
9073         * config/frv/frv.c (int_2word_operand): Reject LABELs, SYMBOL_REFs
9074         and CONSTs in FDPIC mode.
9075         * gcc/config.gcc (with_cpu): Default to fr400 on frv-*-*linux*.
9076         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
9077         * config/frv/frv.c (move_source_operand): Don't accept symbolic
9078         constants.
9079         * config/frv/frv.md (*movhi_internal, *movsi_internal): Use an 'n'
9080         rather than 'i' constraint for the 2-instruction alternative.
9081         (*movsi_2word): New, incorporating existing int_2word_operand splitter.
9082         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
9083         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Q): Renamed from
9084         EXTRA_CONSTRAINT_FOR_Y.
9085         (EXTRA_CONSTRAINT): Remove handling of 'Y'.
9086         * config/frv/frv.md (*movsi_internal): Remove 'Q' constraint.
9087         (addsi3): Change 'Y' constraint to 'Q'.
9088         2003-11-27  Richard Sandiford  <rsandifo@redhat.com>
9089         * reload.c (CONST_POOL_OK_P): New macro.
9090         (find_reloads): Use it to decide whether a constant can be forced
9091         into memory.
9092         * config/frv/frv.h (LEGITIMATE_PIC_OPERAND_P): Return true if the
9093         constant satisfies got12_operand.
9094         (frv_cannot_force_const_mem): Always return true for TARGET_FDPIC.
9095         (frv_legitimate_address_p): Check for valid unspec offsets using
9096         got12_operand rather than frv_legitimate_fdpic_operand_p.
9097         (frv_legitimate_fdpic_operand_p): Delete.
9098         (frv_emit_movsi): Abort if we try to use the FDPIC register during
9099         or after reload.
9100         (frv_legitimate_constant_p): Return LEGITIMATE_PIC_OPERAND_P if
9101         TARGET_FDPIC.
9102         * config/frv/frv.md (*movdf_double): Add alternatives for CONST_DOUBLE.
9103         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
9104         * config/frv/frv-protos.h (fdpic_operand, fdpic_got12_operand)
9105         (frv_fdpic_fptr_operand): Don't declare here.
9106         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Y): Call got12_operand
9107         rather than fdpic_got12_operand.
9108         (PREDICATE_CODES): Remove symbolic_operand entry.  Add entries for
9109         got12_operand and const_unspec_operand.
9110         * config/frv/frv.c (got12_operand): Renamed from fdpic_got12_operand.
9111         (gpr_or_int12_operand, dbl_memory_one_insn_operand): Update calls.
9112         (symbolic_operand): Remove.
9113         (const_unspec_operand): New predicate.
9114         * config/frv/frv.md (*movsi_got): Use got12_operand.
9115         (*movsi_high_got, *movsi_lo_sum_got): Use const_unspec_operand.
9116         2003-11-18  Richard Sandiford  <rsandifo@redhat.com>
9117         * config/frv/frv-protos.h (frv_output_addr_const_extra): Remove.
9118         * config/frv/frv.h (OUTPUT_ADDR_CONST_EXTRA): Remove definition.
9119         * config/frv/frv.c (frv_unspec): New structure.
9120         (frv_small_data_reloc_p, frv_const_unspec_p): New functions.
9121         (frv_print_operand_memory_reference): Use frv_const_unspec_p to
9122         validate CONST indices.  Use frv_output_const_unspec to print them.
9123         (frv_print_operand): Update call to unspec_got_name.  Use
9124         frv_output_const_unspec to print constant unspecs.
9125         (frv_legitimate_fdpic_operand_p): Return true if frv_const_unspec_p.
9126         Reject UNSPECs otherwise.
9127         (unspec_got_name): Take the relocation number as argument, not an
9128         rtx containing it.
9129         (frv_output_addr_const_extra): Remove, replacing with...
9130         (frv_output_const_unspec): ...this new function.
9131         (frv_find_base_term): Use frv_const_unspec_p & frv_small_data_reloc_p.
9132         (gpr_or_int12_operand): Use fdpic_got12_operand.
9133         (dbl_memory_one_insn_operand): Likewise.
9134         (fdpic_got12_operand): Use frv_const_unspec_p.
9135         (frv_emit_movsi): Use frv_const_unspec_p to check for CONSTs that
9136         are already legitimate.  Use frv_small_data_reloc_p when deciding
9137         whether to use HIGH/LO_SUM for R_FRV_GOTOFF12 and R_FRV_GPREL12.
9138         2003-11-18  Alexandre Oliva  <aoliva@redhat.com>
9139         * config/frv/t-linux (SHLIB_MAPFILES): Override so as to export...
9140         * config/frv/libgcc-frv.ver: ... frv-specific symbols.  New file.
9141         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
9142         label, for real this time.
9143         * config/frv/frv.c (frv_local_funcdesc_p): Update to new
9144         representation of visibility.
9145         (fdpic_got12_operand, symbolic_operand): Mark unused arguments as
9146         such.
9147         2003-11-17  Richard Sandiford  <rsandifo@redhat.com>
9148         * config/frv/frv.h (MASK_LINKED_FP, TARGET_LINKED_FP): New macros.
9149         (TARGET_SWITCHES): Add -mlinked-fp and -mno-linked-fp.
9150         * config/frv/frv.c (frv_override_options): Set MASK_LINKED_FP unless
9151         it was explicitly disabled.
9152         (frv_stack_info): There is no need to save the link register in every
9153         frame unless TARGET_LINKED_FP is true.
9154         (frv_frame_pointer_required): If !TARGET_LINKED_FP, only require a
9155         frame pointer if the stack pointer might change value.
9156         (frv_return_addr_rtx): Check and process "count" argument.
9157         2003-11-14  Richard Sandiford  <rsandifo@redhat.com>
9158         * config/frv/frv-protos.h (frv_legitimize_address): Remove.
9159         (frv_find_base_term): Declare.
9160         * config/frv/frv.h (LEGITIMIZE_ADDRESS): Do nothing.
9161         (FIND_BASE_TERM): Define.
9162         (PREDICATE_CODES): Remove pic_register_operand, pic_symbolic_operand,
9163         small_data_register_operand, small_data_symbolic_operand.  Add
9164         symbolic_operand.
9165         * config/frv/frv.c (const_small_data_p, plus_small_data_p): Delete.
9166         (frv_print_operand_memory_reference, output_move_single): Remove
9167         special handling for unlegitimized sdata addresses.
9168         (frv_legitimate_address_p): Don't allow sums of SDA_BASE_REG
9169         and symbolic addresses.
9170         (frv_legitimize_address, frv_legitimize_fdpic_address): Delete.
9171         (frv_find_base_term): New function.
9172         (int_2word_operand): Check specifically for symbolic address constants.
9173         (pic_register_operand, pic_symbolic_operand): Delete.
9174         (small_data_register_operand, small_data_symbolic_operand): Delete.
9175         (dbl_memory_one_insn_operand): Don't call plus_small_data_p.
9176         Allow UNSPEC_GOT constants if !TARGET_FDPIC.
9177         (move_source_operand): Only accept CONSTs if they're a two-insn
9178         symbolic constant.
9179         (fdpic_got12_operand): Don't require TARGET_FDPIC.
9180         (frv_emit_movsi): Legitimize sdata and -mlibrary-pic addresses
9181         using gen_symGOTOFF2reg*.
9182         (frv_ifcvt_rewrite_mem): Remove (plus gr16 ...) special cases.
9183         (frv_rtx_costs): Give all MEM addresses a cost of 0.  Give MEMs
9184         themselves a cost of 3 insns.
9185         * config/mips/mips.md (*movsi_got): Allow for !TARGET_FDPIC too.
9186         Change predicate to symbolic_operand.
9187         (*movsi_high_got, *movsi_lo_sum_got): Likewise.
9188         (*movsi_lda_sdata): Delete.
9189         (*movsi_pic, movsi_high_pic, movsi_lo_sum_pic): Delete.
9190         2003-11-05  Alexandre Oliva  <aoliva@redhat.com>
9191         * config.gcc: Add t-slibgcc-elf-ver and support --with-cpu for
9192         frv-*-*linux*.
9193         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
9194         label.
9195         * config/frv/frv.h (DRIVER_SELF_SPECS): Add blank before
9196         -multilib-library-pic.
9197         (LINK_SPEC): Add -z text for -mfdpic.
9198         * config/frv/frvbegin.c (__ROFIXUP_LIST__): Don't define on FDPIC.
9199         * config/frv/frvend.c (__ROFIXUP_END__): Likewise.
9200         * config/frv/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, LINK_SPEC):
9201         Override.
9202         (OPTION_DEFAULT_SPECS, HAS_INIT_SECTION, INIT_SECTION_ASM_OP,
9203         FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION): Define.
9204         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Use
9205         crtstuff-generated files.
9206         2003-10-31  Alexandre Oliva  <aoliva@redhat.com>
9207         * config.gcc: Add frv-*-*linux*.
9208         * config/frv/linux.h, config/frv/t-linux: New.
9209         2003-10-06  Alexandre Oliva  <aoliva@redhat.com>
9210         * config/frv/frv.h (LINK_SPEC): Pass -melf32frvfd to the linker
9211         when -mfdpic even if a linker script is explicitly listed.
9212         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
9213         * config/frv/frv.c (frv_override_options): Clear asm_out
9214         unaligned_op for SImode on FDPIC.
9215         (frv_emit_movsi): Use compute_reloc_for_constant to compute the
9216         argument passed to decl_readonly_section.
9217         (frv_assemble_integer): Revert 2003-09-30's change, but make the
9218         whole block run with FDPIC even with -fno-PIC.
9219         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
9220         * config/frv/frv.c (frv_cannot_force_const_mem): Don't force
9221         symbol or label plus offset to memory.
9222         (frv_emit_movsi): Emit GPREL only if -mgprel-ro.  Emit 32-bit
9223         GOTOFF and GPREL for LABEL_REF.
9224         * config/frv/frv.h (DRIVER_SELF_SPECS): Add -mgprel-ro with
9225         -mfdpic unless -mno-gprel-ro, -fpic or -fpie.
9226         (MASK_GPREL_RO, TARGET_GPREL_RO): New.
9227         (TARGET_SWITCHES): Added gprel-ro and no-gprel-ro.
9228         * doc/invoke.texi: Document them.
9229         2003-09-30  Alexandre Oliva  <aoliva@redhat.com>
9230         * config/frv/frv-protos.h (frv_gen_GPsym2reg): Declare.
9231         (frv_splittable_got_operand): Removed.
9232         * config/frv/frv.c (frv_cannot_force_const_mem): Reject HIGH and
9233         LO_SUM.  Add comments.
9234         (frv_override_options): Moved enabling of FDPIC to
9235         DRIVER_SELF_SPECS.  Don't enable MASK_DWORD.
9236         (frv_local_funcdesc_p): Remove unnecessary heck for flag_pie.
9237         (frv_legitimize_fdpic_address): Don't duplicate logic in
9238         frv_emit_movsi.
9239         (frv_gen_GPsym2reg): New.
9240         (unspec_got_name): Added gprel.
9241         (frv_expand_fdpic_call): Add support for inlining PLTs.
9242         (fdpic_fptr_operand): Renamed from frv_fdpic_fptr_operand.
9243         (gpr_or_int12_operand): Added GPREL12.
9244         (pic_symbolic_operand): Match even if !flag_pic for FDPIC.
9245         (small_data_symbolic_operand): Fail if FDPIC.
9246         (fdpic_splittable_got_operand): Removed.
9247         (fdpic_got12_operand): Added GPREL12.
9248         (frv_emit_movsi): Reorganize to avoid duplication.  Emit GPREL
9249         when appropriate.  Fix sdata GOTOFF.
9250         (frv_legitimate_constant_p): Require legitimate PIC operand for
9251         FDPIC with pic, but only a legitimate fdpic operand for non-pic.
9252         (frv_assemble_integer): Move FDPIC funcdesc handling out of
9253         flag_pic case.
9254         (frv_asm_out_constructor, frv_asm_out_destructor): Abort if
9255         frv_assemble_integer fails.
9256         * config/frv/frv.h (DRIVER_SELF_SPECS): New.
9257         (SUBTARGET_DRIVER_SELF_SPECS): New.
9258         (ASM_SPEC): Don't pass -mno-fdpic.
9259         (LINK_SPEC): Pass -melf32frvfd for FDPIC.
9260         (MASK_INLINE_PLT, TARGET_INLINE_PLT): New.
9261         (TARGET_SWITCHES): Add -minline-plt, -mno-inline-plt and
9262         -multilib-library-pic.
9263         (PREDICATE_CODES): Added fdpic_operand, fdpic_fptr_operand,
9264         condexec_si_media_operator, condexec_sf_add_operator and
9265         condexec_sf_conv_operator.  Removed condexec_sf_binary_operator
9266         and condexec_sf_unary_operator.
9267         * config/frv/frv.md (R_FRV_GPREL12, R_FRV_GPRELHI, R_FRV_GPRELLO):
9268         New.
9269         (movsi_got, movsi_high_got, movsi_lo_sum_got): Move before
9270         movsi_internal.  Give them internal names.  movsi_got has type
9271         int.
9272         (fdpic got splitters): Remove.
9273         (symGPREL2reg, symGPREL2reg_hilo): New.
9274         * config/frv/t-frv (MULTILIB_MATCHES): Don't map -fpic and -fPIC
9275         to -mlibrary-pic.  Map -multilib-library-pic to it.
9276         * doc/invoke.texi: -mfdpic, -minline-plt, -multilib-library-pic:
9277         Document.
9278         2003-09-28  Alexandre Oliva  <aoliva@redhat.com>
9279         * config/frv/frv.c (frv_function_symbol_referenced_p): Declare.
9280         (TARGET_CANNOT_FORCE_CONST_MEM): Define to...
9281         (frv_cannot_force_const_mem): New function.
9282         (const_small_data_p, plus_small_data_p): Update comments on sdata
9283         on FDPIC.
9284         (frv_override_options): Set flag_pie for FDPIC too.
9285         (frv_conditional_register_usage): Mark gr16 and gr17 as non-fixed,
9286         call-saved registers on FDPIC.
9287         (frv_stack_info): Don't preserve the PIC register on FDPIC, and
9288         don't force LR to be preserved.
9289         (frv_expand_prologue): Likewise.
9290         (frv_asm_output_mi_thunk): Use 12-bit funcdesc gotoff for -fpic.
9291         (frv_frame_pointer_required): Don't force it just because the
9292         FDPIC register is used.
9293         (frv_legitimate_address_p) <CONST>: Accept a legitimate FDPIC
9294         operand only if !condexec_p.
9295         (frv_legitimize_address): Return the FDPIC-legitimized address.
9296         Don't match small data here on FDPIC.
9297         (frv_legitimate_fdpic_operand_p): Don't accept unadorned function
9298         symbols.  Use TRUE/FALSE instead of 1/0.
9299         (frv_local_funcdesc_p): New.
9300         (frv_legitimize_fdpic_address): Rewrite to use GOTOFF and 12-bit
9301         immediates when possible.
9302         (pic_symbolic_operand): Accept SYMBOL_REFs and CONSTs in FDPIC.
9303         (dbl_memory_one_insn_operand): Accept addresses that add a REG and
9304         an UNSPEC_GOT.
9305         (frv_emit_movsi): Handle FDPIC before small data.  Use GOTOFF and
9306         12-bit immediates when possible.
9307         (frv_legitimate_constant_p): In FDPIC, reject SImode operands that
9308         are not legitimate pic operands.
9309         (frv_in_small_data_p): Re-enable for FDPIC.
9310         * config/frv/frv.h (SDA_BASE_REG): Remove comment about FDPIC.
9311         (FRV_GLOBAL_P): Removed.
9312         * config/frv/frv.md: Add modes to CONSTs.
9313         (movsi_got): New.
9314         (movsi_lo_sum_got): Use separate matches instead of match_dup.
9315         (movsi_high_pic, movsi_lo_sum_pic): Match on non-FDPIC only.
9316         (fdpic splittable operations): Match on flag_pic != 1.
9317         2003-09-22  Alexandre Oliva  <aoliva@redhat.com>
9318         * config/frv/frv.c (frv_asm_out_constructor,
9319         frv_asm_out_destructor): Pass to frv_assemble_integer the size in
9320         bytes, not bits.
9321         2003-09-19  Alexandre Oliva  <aoliva@redhat.com>
9322         * config/frv/frv.c (frv_assemble_integer): Reject complex
9323         expressions referencing function SYMBOL_REFs.
9324         * config/frv/frv.c (frv_function_symbol_referenced_p): New.
9325         (move_source_operand): Reject CONSTs that reference function
9326         SYMBOL_REFs on FDPIC.
9327         (frv_emit_movsi): If we get such a CONST, break it up.
9328         * config/frv/frv.h (CPP_SPEC): Define __FRV_FDPIC__ for -mfdpic.
9329         (TRANSFER_FROM_TRAMPOLINE): Use different definitions for FDPIC.
9330         * config/frv/frv.c (frv_print_operand) <I>: Recognize PLUS without
9331         MEM.
9332         (frv_assemble_integer): Don't use funcdesc for LABEL_REFs.
9333         (frv_trampoline_size): Increase for FDPIC.
9334         * config/frv/frv.h (TRAMPOLINE_ALIGNMENT): Bump to 64 for FDPIC.
9335         (TRANSFER_FROM_TRAMPOLINE): Handle FDPIC trampolines.
9336         * config/frv/frv.c (frv_legitimize_fdpic_address, frv_emit_movsi):
9337         Disable use of GOTOFF for now.
9338         (const_small_data_p, plus_small_data_p, frv_in_small_data_p):
9339         Disable use of small data in FDPIC for now.
9340         (frv_asm_output_mi_thunk): Implement for FDPIC.
9341         * config/frv/frv.h (SDA_BASE_REG): Set to -1 with FDPIC.
9342         * config/frv/frv.c (frv_asm_out_constructor): Use
9343         frv_assemble_integer for FDPIC pointers.
9344         (frv_asm_out_destructor): Likewise.
9345         * config/frv/frv.md (ldd): Fix order of operands.  Use
9346         address_operand for input.
9347         2003-09-18  DJ Delorie  <dj@redhat.com>
9348         * config/frv/frv.c (frv_legitimate_fdpic_operand_p): Remove UNSPEC_PIC.
9349         (unspec_got_name): Correct typo.
9350         (frv_emit_movsi): Pre-expand splittable GOTs.
9351         (frv_expand_fdpic_call): Rename gen_lddi to gen_ldd.
9352         * config/frv/frv.md (lddi): Fix syntax error, rename to ldd.
9353         (symGOT2reg_hilo, symGOTOFF2reg_hilo): New.
9354         * config/frv/t-frv: Add -mfdpic multilibs.
9355         * config/frv/frv.h (ASM_SPEC): Pass -mfdpic/-mno-fdpic.
9356         (TARGET_SWITCHES): Add -mno-fdpic, fix documentation.
9357         * config/frv/frv.c (frv_override_options): -mfdpic assumes
9358         flag_pic, default to 32-bit pics, require DWORD ops.
9359         (frv_override_options): Add W and Z constraints.
9360         (frv_expand_prologue): No pic prologue for -mfdpic.
9361         (frv_asm_output_mi_thunk): Support -mfdpic (soon).
9362         (frv_print_operand_memory_reference): Handle GOT constants.
9363         (frv_legitimate_address_p): Allow GOT constants.
9364         (frv_legitimize_address): Handle GOT addresses too.
9365         (frv_legitimate_fdpic_operand_p): New.
9366         (frv_legitimize_fdpic_address): New.
9367         (unspec_got_name): New.
9368         (frv_output_addr_const_extra): New.
9369         (frv_expand_fdpic_call): New.
9370         (frv_fdpic_fptr_operand): New.
9371         (gpr_or_int12_operand): Handle GOT operands.
9372         (int_2word_operand): Handle GOT operands.
9373         (fdpic_operand): New.
9374         (fdpic_splittable_got_operand): New.
9375         (fdpic_got12_operand): New.
9376         (frv_emit_movsi): Handle GOT operands.
9377         (frv_assemble_integer): -mfdpic doesn't use rofixups.
9378         (frv_print_operand): Support 'g' code for GOT operands.
9379         * config/frv/frv-protos.h: Add prototypes as needed.
9380         * config/frv/frv.md (R_FRV_GOT12, R_FRV_GOTHI, R_FRV_GOTLO,
9381         R_FRV_FUNCDESC, R_FRV_FUNCDESC_GOT12, R_FRV_FUNCDESC_GOTHI,
9382         R_FRV_FUNCDESC_GOTLO, R_FRV_FUNCDESC_VALUE,
9383         R_FRV_FUNCDESC_GOTOFF12, R_FRV_FUNCDESC_GOTOFFHI,
9384         R_FRV_FUNCDESC_GOTOFFLO, R_FRV_GOTOFF12, R_FRV_GOTOFFHI,
9385         R_FRV_GOTOFFLO): New.
9386         (movsi_high_got, movsi_lo_sum_got): New.
9387         (*movsi_pic): Don't use this splitter for -mfdpic.
9388         (addsi3): Allow GOT references also.
9389         (call, call_value): Handle -mfdpic separately.
9390         (call_fdpicdi, call_fdpicsi, lddi, call_value_fdpicdi,
9391         call_value_fdpicsi): New.
9392         (symGOT2reg, symGOT2reg_i, got splitters, symGOTOFF2reg,
9393         symGOTOFF2reg_i): New.
9394         * config/frv/frv.h (MASK_FDPIC): New.
9395         (TARGET_FDPIC): New.
9396         (TARGET_SWITCHES): Add -mfdpic.
9397         (FDPIC_FPTR_REGNO): New.
9398         (FDPIC_REGNO): New.
9399         (OUR_FDPIC_REG): New.
9400         (enum reg_class): Add FDPIC_REGS, FDPIC_FPTR_REGS, and
9401         FDPIC_CALL_REGS.
9402         (REG_CLASS_NAMES): Likewise.
9403         (REG_CLASS_CONTENTS): Likewise.
9404         (EXTRA_CONSTRAINT_FOR_Y): New, for 12-bit GOTs.
9405         (EXTRA_CONSTRAINT): Add it here.
9406         (FRV_GLOBAL_P): New.
9407         (OUTPUT_ADDR_CONST_EXTRA): New.
9408
9409 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
9410
9411         * config/sparc/sparc.h: Remove commented-out definitions of
9412         TARGET_EDOM and GEN_ERRNO_RTX.
9413
9414 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
9415
9416         * df.c, df.h, ra-build.c, ra-rewrite.c, ra.c, web.c: Replace
9417         df_analyse with df_analyze.
9418
9419 2004-02-24  Alan Modra  <amodra@bigpond.net.au>
9420
9421         * gcse.c (delete_null_pointer_checks_1): Set stop_insn to end, not
9422         beginning of block.
9423
9424 2004-02-23  James E Wilson  <wilson@specifixinc.com>
9425
9426         * calls.c (precompute_arguments): Update comment.
9427
9428 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
9429
9430         * et-forest.c: Replace et_occurences with et_occurrences.
9431
9432 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
9433
9434         * cfgloop.h, loop-iv.c, loop-unswitch.c: Replace iv_analyse
9435         with iv_analyze.
9436
9437 2004-02-23  Kelley Cook  <kcook@gcc.gnu.org>
9438
9439         * config/i386/i386.c: Rename pni to sse3.
9440         * config/i386/i386.h: Likewise.
9441         * config/i386/i386.md: Likewise.
9442         * config/i386/pmmintrin.h: Likewise.
9443         * doc/extend.texi: Likewise.
9444         * doc/invoke.texi: Likewise.
9445
9446 2004-02-23  Zack Weinberg  <zack@codesourcery.com>
9447             Kazu Hirata  <kazu@cs.umass.edu>
9448
9449         Remove -fwritable-strings.
9450         * c-common.c (fix_string_type): Don't check
9451         flag_writable_strings.
9452         (fix_string_type): Likewise.
9453         * c-opts.c (set_std_c89): Don't initialize
9454         flag_writable_strings.
9455         (set_std_c99): Likewise.
9456         * common.opt (fwritable-strings): Remove.
9457         * flags.h: Remove the external declaration of
9458         flag_writable_strings.
9459         * opts.c (common_handle_option) <OPT_fwritable_strings>:
9460         Remove.
9461         * toplev.c (flag_writable_strings): Remove.
9462         (f_options): Remove an entry for writable-strings.
9463         * varasm.c (const_hash_1) <STRING_CST>: Don't check
9464         flag_writable_strings.
9465         (compare_constant) <STRING_CST>: Likewise.
9466         (build_constant_desc): Likewise.
9467         * config/darwin.c (machopic_select_section): Likewise.
9468         * config/arm/arm.c (AOF_ASSEMBLER): Likewise.
9469         * config/arm/pe.c (arm_pe_encode_section_info): Likewise.
9470         * config/iq2000/iq2000.c (iq2000_select_section): Likewise.
9471         * config/mips/mips.c (mips_select_section): Likewise.
9472         (mips_encode_section_info): Likewise.
9473         * config/pa/pa.c (pa_select_section): Likewise.
9474         * config/pa/pa.h (TEXT_SPACE_P): Likewise.
9475         * config/v850/v850.c (v850_select_section): Likewise.
9476         * doc/invoke.texi (-fwritable-strings): Remove.
9477         (-fno-const-strings): Don't mention -fwritable-strings.
9478         * doc/trouble.texi: Don't mention -fwritable-strings.
9479
9480 2003-02-23  Nathanael Nerode  <neroden@gcc.gnu.org>
9481
9482         * doc/install.texi: Update for switch of boehm-gc to autoconf 2.57.
9483
9484 2004-02-23  Dale Johannesen  <dalej@apple.com>
9485
9486         * config/rs6000.md (movsf_hardfloat): Add POWER form of nop.
9487         (movdf_hardfloat64):  Ditto.
9488         (movdf_softfloat64):  Ditto.
9489
9490 2004-02-23  Fariborz Jahanian <fjahanian@apple.com>
9491         * config/rs6000/rs6000.c (function_arg): call to
9492         rs6000_mixed_function_arg for DFmode moved to allow
9493         normal DFmode incoming register assignment.
9494
9495 2004-02-23  Dale Johannesen  <dalej@apple.com>
9496
9497         * config/rs6000.md (movsf_hardfloat): Accept CTR-to-CTR copy.
9498         (movdf_hardfloat64):  Ditto.
9499
9500 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
9501
9502         * convert.c, gcov-io.c, libgcov.c, sched-int.h, sibcall.c,
9503         config/rs6000/linux.h, config/rs6000/rs6000-c.c: Update
9504         copyright.
9505
9506 2004-02-23  Andrew Pinski  <pinskia@physics.uc.edu>
9507
9508         PR c/14156
9509         * c-typeck.c (c_expand_return): Change check for VAR_DECL
9510         to use DECL_P instead.
9511
9512         * config/rs6000/linux.h (OS_MISSING_POWERPC64): Define.
9513         * config/rs6000/linux64.h (OS_MISSING_POWERPC64): Define.
9514
9515 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
9516
9517         * Makefile.in (opts.o): Depend on target.h.
9518         * opts.c (decode_options): Use targetm.default_short_enums
9519         instead of DEFAULT_SHORT_ENUMS.
9520         * system.h (DEFAULT_SHORT_ENUMS): Poison.
9521         * target-def.h (TARGET_DEFAULT_SHORT_ENUMS): New.
9522         (TARGET_INITIALIZER): Add TARGET_DEFAULT_SHORT_ENUMS.
9523         * target.h (gcc_target): Add default_short_enums.
9524         * config/cris/cris.h: Remove a comment about
9525         DEFAULT_SHORT_ENUMS.
9526         * config/ip2k/ip2k.h: Likewise.
9527         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Change to
9528         TARGET_DEFAULT_SHORT_ENUMS.  Update the description.
9529
9530 2004-02-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
9531             Falk Hueffner  <falk@debian.org>
9532
9533         PR c/14188
9534         * builtins.c (expand_builtin_va_arg): Emit an informative message
9535         if a trap is generated.
9536         * c-typeck.c (build_function_call): Likewise.
9537
9538 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
9539
9540         * gcov-io.c (gcov_open) [GCOV_LOCKED]: Use open + fdopen instead of
9541         fopen.
9542         * libgcov.c: Include sys/stat.h.
9543         * config/rs6000/linux.h (TARGET_HAS_F_SETLKW): Define.
9544         * config/rs6000/linux64.h (TARGET_HAS_F_SETLKW): Define.
9545         * config/sparc/linux.h (TARGET_HAS_F_SETLKW): Define.
9546         * config/sparc/linux64.h (TARGET_HAS_F_SETLKW): Define.
9547
9548 2004-02-22  Kazu Hirata  <kazu@cs.umass.edu>
9549
9550         * reorg.c: Remove comments about dead ports.
9551
9552 2004-02-22  Christopher Faylor  <cgf@redhat.com>
9553
9554         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): *Really* specify
9555         extra host object file when targetting cygwin rather than generic
9556         object files.
9557
9558 2004-02-22  Josef Zlomek  <zlomekj@suse.cz>
9559
9560         Merge from tree-ssa:
9561         2003-11-20  Richard Henderson  <rth@redhat.com>
9562
9563                 * tree-inline.c (insert_decl_map): New.
9564                 (remap_decl, remap_type, remap_block, copy_body_r,
9565                 initialize_inlined_parameters, declare_return_variable,
9566                 remap_save_expr): Use it.
9567
9568         * function.c (copy_body_r): Add mapping from id->ret_label to
9569         id->ret_label.  Revert test for ret_label.
9570
9571 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
9572
9573         * genoutput.c (process_template): Strip trailing whitespace in @
9574         templates and issue a warning if there was any.
9575
9576 2004-02-21  Christopher Faylor  <cgf@redhat.com>
9577
9578         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): Specify extra host
9579         object file when targetting cygwin.
9580         * config/i386/t-cygwin (EXTRA_GCC_OBJS): Remove definition since it is
9581         overridden by top-level Makefile.
9582
9583 2004-02-21  Roger Sayle  <roger@eyesopen.com>
9584
9585         * config/i386/i386.c (standard_80387_constant_p): Also prefer
9586         the x87's load constant instructions when optimizing for size.
9587
9588 2004-02-21  Kazu Hirata  <kazu@cs.umass.edu>
9589
9590         * combine.c (SHIFT_COUNT_TRUNCATED): Remove.
9591         * defaults.h (SHIFT_COUNT_TRUNCATED): Provide the default.
9592         * expmed.c: Assume SHIFT_COUNT_TRUNCATED is always defined.
9593         * fold-const.c: Likewise.
9594         * simplify-rtx.c: Likewise.
9595
9596 2004-02-21  Alan Modra  <amodra@bigpond.net.au>
9597
9598         * combine.c (can_combine_p): Don't ignore SETs marked with
9599         REG_EH_REGION notes.
9600         (try_combine): When attemting to fix unrecognized insns, don't
9601         split a PARALLEL that contains the original i2.
9602
9603 2004-02-21  Ziemowit Laski  <zlaski@apple.com>
9604
9605         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Refer to
9606         SUBTARGET_OPTION_TRANSLATE_TABLE for architecture-specific options.
9607         * config/i386/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): Define it.
9608         * config/rs6000/altivec.h: #error out if '-maltivec' not specified.
9609         (vector, pixel, bool): #define to __vector, __pixel and __bool.
9610         (__un_args_eq, __bin_args_eq, __tern_args_eq): Move to C-specific
9611         portion of header.
9612         (__altivec_link_error_invalid_argument): Remove prototype; will use
9613         __builtin_altivec_compiletime_error("vec_*") instead.
9614         (vec_*): Fix/complete set of available operation overloads given the
9615         existence of distinct 'vector bool ...' and 'vector pixel' types; tighten
9616         cv-correctness of pointer arguments; in C, always check for correct
9617         argument types before macro expansion.
9618         * config/rs6000/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): New macro
9619         defining Darwin/PowerPC-specific '-f[no-]altivec' and
9620         '-W[no-]altivec-long-deprecated' switches.
9621         * config/rs6000/rs6000-c (rs6000_cpu_cpp_builtins): Pre-define
9622         '__vector', '__pixel' and '__bool' macros using
9623         '__attribute__((altivec(...)))' types.
9624         * config/rs6000/rs6000.c (bool_char_type_node, bool_short_type_node,
9625         bool_int_type_node, pixel_type_node, bool_V16QI_type_node,
9626         bool_V8HI_type_node, bool_V4SI_type_node, pixel_V8HI_type_node):
9627         New type nodes.
9628         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): New, for
9629         handling '-W[no-]altivec-long-deprecated'.
9630         (rs6000_override_options): Handle '-W[no-]altivec-long-deprecated'.
9631         (rs6000_expand_binop_builtin, rs6000_expand_ternop_builtin,
9632         altivec_expand_dst_builtin): Remove casts from integer literals.
9633         (altivec_expand_builtin): Likewise; handle expansion of new
9634         '__builtin_altivec_compiletime_error' function.
9635         (rs6000_init_builtins): Initialize 'vector bool ...' and 'vector pixel'
9636         types, and make them distinct from other vector types; register
9637         '__builtin_altivec_compiletime_error' function.
9638         (print_operand): For 'P', print a full target register name instead of
9639         merely its number.
9640         (rs6000_attribute_table): Add "altivec" attribute.
9641         (rs6000_handle_altivec_attribute): New function.
9642         * config/rs6000/rs6000.h (TARGET_OPTIONS): Describe
9643         '-m[no-]-warn-altivec-long' (which '-W[no-]altivec-long-deprecated'
9644         maps to).
9645         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): Forward
9646         declare.
9647         (ALTIVEC_BUILTIN_COMPILETIME_ERROR): New built-in enumeration.
9648
9649 2004-02-20  James E Wilson  <wilson@specifixinc.com>
9650
9651         * config/ia64/ia64.md (shift_mix4left+1): Delete reload_completed
9652         check.
9653         (shift_mix4left+2): Delete redundant pattern.
9654
9655 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
9656
9657         * alias.c (OUTGOING_REGNO): Don't define the default.
9658         * builtins.c (OUTGOING_REGNO): Likewise.
9659         (INCOMING_REGNO): Likewise.
9660         (apply_args_register_offset): Always use OUTGOING_REGNO.
9661         * combine.c (OUTGOING_REGNO): Likewise.
9662         * sibcall.c (OUTGOING_REGNO): Likewise.
9663         * defaults.h (INCOMING_REGNO): Provide the default.
9664         (OUTGOING_REGNO): Likewise.
9665
9666 2004-02-21  Jan Hubicka  <jh@suse.cz>
9667
9668         * params.def (max-peeled-insns, max-completely-peeled-insns,
9669         max-once-peeled-insns): Set to 400.
9670
9671 2004-02-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9672
9673         PR c++/12007
9674         * dbxout.c (dbxout_parms): Check that DECL_RTL and DECL_INCOMING_RTL
9675         are set for parameters before outputing debugging information.
9676
9677 2004-02-20  Falk Hueffner  <falk@debian.org>
9678
9679         PR target/14201
9680         * config/alpha/alpha.md (*fix_truncsfsi_ieee): Fix typoed operand
9681         numbers.
9682
9683 2004-02-20  Per Bothner  <per@bothner.com>
9684
9685         * input.h:  Don't #include line-map.h.  It may cause link problems
9686         with undefined linemap_line_start when line-map.h is included but
9687         line-map.o is not linked, as currently happens with gengtype on
9688         compilers that don't support inline.
9689         * toplev.c:  So we do have to explicitly #include line-map.h here.
9690
9691 2004-02-20  Richard Henderson  <rth@redhat.com>
9692
9693         * doc/invoke.texi: Add -Wvariadic-macros.
9694
9695 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
9696
9697         * haifa-sched.c (sched_emit_insn): Remove.
9698         * sched-int.h: Remove the corresponding prototype.
9699
9700 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
9701
9702         Revert:
9703         2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
9704         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
9705         * system.h (DEFAULT_SHORT_ENUMS): Poison.
9706         * config/cris/cris.h: Remove a comment about
9707         DEFAULT_SHORT_ENUMS.
9708         * config/ip2k/ip2k.h: Likewise.
9709         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
9710
9711 2004-02-20  Mohan Embar  <gnustuff@thisiscool.com>
9712             Tom Tromey  <tromey@redhat.com>
9713
9714         * doc/install.texi: Moved --disable-libgcj and
9715         --with-system-zlib documentation to new section for
9716         Java-specific options.
9717         Added explicit Cross-Compiler-Specific Options subheading.
9718         Added section for Java-specific options.
9719
9720 2004-02-20  Matt Kraai  <kraai@alumni.cmu.edu>
9721
9722         * doc/install.texi (Building the Ada compiler): Remove
9723         example.
9724
9725 2004-02-20  James E Wilson  <wilson@specifixinc.com>
9726
9727         * toplev.c (dump_file_index, dump_file): Put ce3 before rnreg.
9728
9729 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
9730
9731         * gcc.c (process_command): Allow translation of the copyright
9732         symbol but not the rest of the copyright message.
9733         * gcov.c (print_version): Likewise.  Allow translation of the
9734         message about warranty.
9735
9736 2004-02-20  Hans-Peter Nilsson  <hp@axis.com>
9737
9738         * config/cris/cris.md ("*andsi_movu"): Correct parentheses in
9739         predicate.
9740         ("*andsi_clear"): Tweak constraints to not match postincrement.
9741         Adjust the predicate to exclude a volatile memory reference.
9742         ("*andhi_clear"): Ditto.  Rename from "*andhi_clear_signed".
9743         ("*andhi_clear_unsigned"): Remove, non-matching pattern.
9744
9745 2004-02-19  Matt Kraai  <kraai@alumni.cmu.edu>
9746
9747         * move-if-change: Remove.
9748         * Makefile.in (s-mlib, c-parse.y, s-check, s-gencheck)
9749         (s-specs, s-options, s-config, s-conditions, s-flags, s-codes)
9750         (s-constants, s-emit, s-recog, s-opinit, s-extract, s-peep)
9751         (s-attr, s-attrtab, s-output, s-genrtl, s-modes, s-preds)
9752         (s-gtyp-gen, s-iov): Use the top level move-if-change.
9753         * objc/Make-lang.in (objc/objc-parse.y): Likewise.
9754
9755 2004-02-19  James E Wilson  <wilson@specifixinc.com>
9756
9757         * config/i386/i386.md (doloop_end_internal): Use nonimmediate_operand
9758         for operand2.  Add condition that requires register_operand operand2
9759         before reload.
9760
9761 2004-02-19  Richard Sandiford  <rsandifo@redhat.com>
9762             Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
9763
9764         * config/mips/mips.c (mips_address_insns): Treat BLKmode specially.
9765         * config/mips/mips.md: Expand comment above unaligned loads and stores.
9766
9767 2004-02-19  Richard Henderson  <rth@redhat.com>
9768
9769         * Makefile.in (STRICT2_WARN): Add -Wno-variadic-macros.
9770         * tree.c (build0, build1, build2, build3, build4): Split out from...
9771         (build): ... here.  Call them.
9772         * tree.h (build, _buildN1, _buildN2, _buildC1, _buildC2): New.
9773
9774         * convert.c (convert_to_integer): Remove extra build argument.
9775         * tree-inline.c (expand_call_inline): Likewise.
9776
9777 2004-02-19  Richard Henderson  <rth@redhat.com>
9778
9779         * c-opts.c (warn_variadic_macros): New.
9780         (c_common_handle_option): Set it.
9781         (sanitize_cpp_opts): Copy it to cpp_opts.
9782         * c.opt (Wvariadic-macros): New.
9783         * cpplib.h (struct cpp_options): Add warn_variadic_macros.
9784         * cppinit.c (cpp_create_reader): Initialize it.
9785         * cppmacro.c (parse_params): Check it.
9786
9787 2004-02-19  David Daney <ddaney@avtrex.com>
9788
9789         PR preprocessor/14198
9790         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Add
9791         builtin_assert ("machine=mips")
9792
9793 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
9794
9795         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
9796         * system.h (DEFAULT_SHORT_ENUMS): Poison.
9797         * config/cris/cris.h: Remove a comment about
9798         DEFAULT_SHORT_ENUMS.
9799         * config/ip2k/ip2k.h: Likewise.
9800         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
9801
9802 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
9803
9804         * config/ia64/ia64.c (ia64_function_arg): In big-endian mode,
9805         when passing single SFmode quantities in general registers,
9806         put them in the high half.
9807
9808 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
9809
9810         * doc/md.texi (Standard Names): Document additional dependency on
9811         fix pattern.
9812
9813         * optabs.c (ftruncify): Remove.
9814         (expand_fix): Manually inline ftruncify above.
9815         (can_fix_p): Add FIXME note.
9816
9817 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
9818
9819         * config/rs6000/spe.md (spe_fixunssfsi2): Rename to
9820         spe_fixuns_truncsfsi2.
9821
9822         * config/rs6000/rs6000.md (fixunssfsi2): Rename to
9823         fixuns_truncsfsi2.
9824
9825 2004-02-19  Steve Ellcey  <sje@cup.hp.com>
9826
9827         * config/ia64/ia64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
9828         * testsuite/gcc.dg/20040219-1.c: New test.
9829
9830 2004-02-19  Ulrich Weigand  <uweigand@de.ibm.com>
9831
9832         * config/s390/s390.md ("*subdf3_cc", "*subdf3_cconly", "*subsf3_cc",
9833         "*subsf3_cconly"): Subtraction is not commutative.
9834
9835 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
9836
9837         * sdbout.c (preinit_symbols, sdbout_initialized): New statics.
9838         (sdbout_symbol): If called before sdbout_init, queue DECL for
9839         later and return.
9840         (sdbout_init): Set sdbout_initialized true, process decls
9841         queued earlier by sdbout_symbol.
9842         (sdbout_finish): Use size_t for index variable.
9843
9844 2004-02-19  Jeff Law  <law@redhat.com>
9845
9846         * fold-const.c (invert_truthvalue): Do not call invert_tree_comparison
9847         for unordered comparison codes.
9848
9849 2004-02-19  Ian Lance Taylor  <ian@wasabisystems.com>
9850
9851         * reload1.c (reload): Correct comment.
9852         (scan_paradoxical_subregs): Remove #if 0 and old comment.
9853         * doc/extend.texi (Local Reg Vars): Remove obsolete comment that
9854         register variables are not used by reload.
9855
9856 2004-02-19  Hans-Peter Nilsson  <hp@axis.com>
9857
9858         PR target/14209
9859         * config/cris/cris.md ("*andsi_movu", "*andhi_movu"): Tweak
9860         constraints to not match postincrement.  Adjust the predicate to
9861         exclude a volatile memory reference.
9862
9863 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
9864
9865         * config/mcore/mcore.h (ASM_OUTPUT_EXTERNAL): Remove.
9866
9867 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
9868
9869         * hooks.c (hook_void_tree_int): Remove.
9870         (hook_void_constcharptr): Likewise.
9871         (hook_int_void_0): Likewise.
9872         * hooks.h: Remove the prototypes for the above three
9873         functions.
9874         * targhooks.c (hook_bool_machine_mode_true): Remove.
9875         * targhooks.h: Remove the prototype for
9876         hook_bool_machine_mode_true.
9877
9878 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
9879
9880         * emit-rtl.c (subreg_realpart_p): Remove.
9881         (reorder_insns_with_line_notes): Likewise.
9882         (end_full_sequence): Likewise.
9883         * rtl.h: Remove the prototype for the above functions.
9884
9885 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
9886
9887         * config/arc/arc.h, config/arm/arm.h, config/frv/frv.h,
9888         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
9889         config/iq2000/iq2000.h, config/m32r/m32r.h,
9890         config/pdp11/pdp11.h, config/sparc/sparc.h,
9891         config/xtensa/xtensa.h: Remove commented-out or useless
9892         definitions of CASE_VECTOR_PC_RELATIVE.
9893
9894 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
9895
9896         * loop.c (all_sets_invariant_p): Remove.
9897
9898 2004-02-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
9899
9900         PR target/12916
9901         * config/sparc/sparc.h (NPARM_REGS): Delete.
9902         (BASE_RETURN_VALUE_REG): Likewise.
9903         (BASE_OUTGOING_VALUE_REG): Likewise.
9904         (BASE_PASSING_ARG_REG): Likewise.
9905         (BASE_INCOMING_ARG_REG): Likewise.
9906         * config/sparc/sparc.c (sparc_strict_argument_naming): Test
9907         TARGET_ARCH64, not TARGET_V9.
9908         (function_arg_slotno): Dispatch based on the mode class.
9909         Handle vector modes like floating-point modes.
9910         (function_arg_record_value_1): Handle vector types like
9911         floating-point types.
9912         (function_arg_record_value_2): Likewise.
9913         Calculate regno after mode transformation.
9914         (function_arg): Handle vector modes like floating-point modes.
9915         (function_arg_partial_nregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX.
9916         If ARCH64, do not recheck alignment.
9917         (function_arg_pass_by_reference): Reorder the conditions.
9918         (sparc_return_in_memory): Move after function_arg_padding.
9919         Implement calling conventions for vector modes.
9920         (sparc_struct_value_rtx): Move after sparc_return_in_memory.
9921         (function_value): Move scope of 'regbase'.
9922         Implement calling conventions for vector modes.
9923         (sparc_builtin_saveregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX
9924         and BASE_INCOMING_ARG_REG by SPARC_INCOMING_INT_ARG_FIRST.
9925         (sparc_va_arg): Use function_arg_pass_by_reference to test whether
9926         the argument is passed by reference.
9927         (sparc_type_code): Handle vector types.
9928
9929 2004-02-19  Alan Modra  <amodra@bigpond.net.au>
9930
9931         * function.c (assign_parms): When building decl_rtl for
9932         SPLIT_COMPLEX_ARGS, ensure inner modes of concat match outer.
9933
9934 2004-02-19  Olivier Hainque  <hainque@act-europe.fr>
9935
9936         * expr.c (is_aligning_offset): Check if we are aligning the
9937         expressions's address over BIGGEST_ALIGNMENT in bytes, not
9938         in bits.
9939
9940 2003-02-18  Matt Austern  <austern@apple.com>
9941
9942         * gcc.c (LIBGCC_SPEC): If REAL_LIBGCC_SPEC is defined, and
9943         LIBGCC_SPEC isn't, set LIBGCC_SPEC to REAL_LIBGCC_SPEC.
9944         (init_gcc_spec): Don't define or call if REAL_LIBGCC_SPEC is
9945         defined.  Instead use REAL_LIBGCC_SPEC, unmodifed, as the libgcc
9946         spec string.
9947         * doc/tm.texi (REAL_LIBGCC_SPEC): Document.
9948
9949 2004-02-18  Zack Weinberg  <zack@codesourcery.com>
9950
9951         * dwarf2out.c (loclabel_num): Move outside #ifdef
9952         DWARF2_DEBUGGING_INFO and mark with GTY(()).
9953         * config/ia64/ia64.c (struct extern_func_list,extern_func_head):
9954         Mark with GTY(()).
9955         (ia64_hpux_add_extern_decl): Save the decl, not the name string.
9956         Allocate memory with ggc_alloc.  No need to copy anything.
9957         (ia64_hpux_file_end): Update to match.
9958
9959 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
9960
9961         * config/i386/i386.c (override_options): Don't imply 3DNow! for -m64
9962         by default.
9963
9964 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
9965
9966         * config/s390/s390.md ("divmodtidi3"): Use canonical RTL.
9967         ("divmodtisi3"): Likewise.
9968         ("udivmoddi4", "udivmodtidi3"): Likewise.
9969         ("divmodsi4", "divmoddisi3"): Likewise.
9970         ("udivmodsi4", "udivmoddisi3"): Likewise.
9971         ("udivsi3", "umodsi3"): Likewise.
9972
9973 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
9974
9975         * config/s390/s390.c (s390_mainpool_start): Delete the main pool
9976         placeholder insn when chunkifying the pool.
9977
9978 2004-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9979
9980         * pa.h (PIC_OFFSET_TABLE_REGNUM): Define to INVALID_REGNUM when not
9981         generating PIC code.
9982
9983 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
9984
9985         * config/h8300/h8300-protos.h: Add a prototype for
9986         h8300_expand_branch.
9987         * config/h8300/h8300.c (h8300_expand_branch): New.
9988         * config/h8300/h8300.md (ble, bleu, bge, bgeu, blt, bltu, bgt,
9989         bgtu, beq, bne): Call h8300_expand_branch().
9990
9991 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
9992
9993         * config/h8300/h8300-protos.h: Add prototypes for
9994         h8300_hard_regno_nregs and h8300_hard_regno_mode_ok.
9995         * config/h8300/h8300.c (h8300_hard_regno_nregs): New.
9996         (h8300_hard_regno_mode_ok): Likewise.
9997         * config/h8300/h8300.h (HARD_REGNO_NREGS): Call
9998         h8300_hard_regno_nregs().
9999         (HARD_REGNO_MODE_OK): Call h8300_hard_regno_mode_ok().
10000
10001 2004-02-18  Per Bothner  <per@bothner.com>
10002
10003         * cpphash.h (struct cpp_buffer):  Restore return_at_eof field.  This
10004         partly reverts my 2003-10-01 change, because we're back to logically
10005         including <command line> inside the main line.
10006         * cpplex.c (_cpp_get_fresh_line):  Check return_at_eof field.
10007         * cppmacro.c (cpp_scan_nooutput):  Set return_at_eof of current buffer.
10008         Fixes PR preprocessor/14103.
10009
10010         * cppfiles.c (_cpp_stack_include):  When appropriate decrement
10011         line_table's highest_location, fixing LAST_SOURCE_LINE_LOCATION.
10012         (cpp_push_include):  Don't need to increment pfile's line field.
10013         * line-map.h (LAST_SOURCE_LINE_LOCATION):  Only decrement by 1.
10014
10015         * c-ppoutput.c (print struct):  New first_time field.
10016         (init_pp_output):  Set print.first_time.
10017         (pp_file_change):  Use print.first_time, rather than MAIN_FILE_P,
10018         which is set also for (say) <command line>.  Clear print.first_time.
10019
10020         * cppfiles.c (struct _cpp_file):  Comment and type for pch field
10021         does not match the code, so fix both.
10022         (should_stack_file):  Inline include_pch_p function.
10023         (include_pch_p):  Remove pointless function.
10024
10025         * cpphash.h (struct cpp_buffer):  Remove unused search_cached field.
10026
10027 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
10028
10029         * config/h8300/h8300.md (four define_peephole2's): Use
10030         h8300_regs_ok_for_stm().
10031
10032 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
10033
10034         * config/h8300/h8300-protos.h: Update the prototype for
10035         expand_a_rotate().
10036         * config/h8300/h8300.c (expand_a_rotate): Remove the first
10037         argument.
10038         * config/h8300/h8300.md: Update all callers.
10039
10040 2004-02-18  Jan Hubicka  <jh@suse.cz>
10041
10042         * simplify-rtx.c (simplify_unary_operation): Deal with logicals on
10043         floats.
10044         (simplify_binary_operation): Deal with logicals on floats.
10045
10046         * i386.md (SSE fabs splitters): Emit new patterns.
10047         (SSE cmov splitters): Likewise.
10048         (sse_andv4sf3, sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3
10049         (sse_andv2df3, sse_nandv2df3, sse_iorv2df3, sse_xorv2df3): Do not use
10050         subregs.
10051         (sse_andsf3, sse_nandsf3, sse_xorsf3): Kill.
10052         (sse_anddf3, sse_nanddf3, sse_xordf3): Kill.
10053
10054 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
10055
10056         * config/h8300/h8300.c (expand_a_rotate): Don't generate insns
10057         by hand.
10058         (output_a_rotate): Tweak a comment.
10059         * config/h8300/h8300.md (*rotlqi3_1): Change to rotlqi3_1.
10060         (*rotlhi3_1): Change to rotlhi3_1.
10061         (*rotlsi3_1): Change to rotlsi3_1.
10062
10063 2004-02-18  Richard Earnshaw  <rearnsha@arm.com>
10064
10065         PR target/13866
10066         * arm.c (load_multiple_operation): Don't insist that the source reg
10067         of a post-increment component is the same as the destination.
10068         (store_multiple_operation): Likewise.
10069
10070 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
10071
10072         * config/h8300/h8300.md: Move movsf patterns into one section
10073         of the file.
10074
10075 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
10076
10077         * cfgloop.h, cfgloopanal.c, cpplex.c, except.h, loop-init.c,
10078         loop-unroll.c, scan-decls.c, scan.h, stor-layout.c,
10079         xcoffout.c, xcoffout.h, config/arm/mmintrin.h,
10080         config/mips/linux64.h, config/pa/pa-64.h,
10081         config/rs6000/aix51.h, config/rs6000/aix52.h,
10082         config/rs6000/spe.md, config/sparc/linux.h,
10083         config/sparc/linux64.h: Update copyright.
10084
10085 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
10086
10087         * config/h8300/h8300.md: Move push patterns into one
10088         section of the file.
10089
10090 2004-02-18  Mark Mitchell <mark@codesourcery.com>
10091
10092         PR c++/11326
10093         * config/ia64/ia64.c (ia64_struct_value_rtx): Cope with NULL
10094         fntype.
10095
10096 2004-02-18  Paul Brook  <paul@codesourcery.com>
10097
10098         * rtlanal.c (rtx_varies_p): Return 0 for NULL_RTX
10099
10100 2004-02-18  Paul Brook  <paul@codesourcery.com>
10101
10102         PR debug/12934
10103         * dwarf2out.c (loc_descriptor_from_tree): Handle
10104         EXPR_WITH_FILE_LOCATION.
10105
10106 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
10107
10108         * config/i386/i386.md (zero_extendqidi2, zero_extendqidi2,
10109         testdi_1_rex64, anddi_2, xordi_1_rex64, xordi_2_rex64): Remove
10110         trailing whitespace from instructions.
10111
10112 2004-02-17  Geoffrey Keating  <geoffk@apple.com>
10113
10114         * configure.ac: When generating auto-build.h, pass
10115         --enable-languages to the sub-configure.
10116         Put quotes around ${program_transform_name} when generating
10117         name of as, ld, nm, objdump.
10118         * configure: Regenerate.
10119
10120 2004-02-17  Matt Kraai  <kraai@alumni.cmu.edu>
10121
10122         * Makefile.in (s-check, s-config, s-conditions, s-flags)
10123         (s-codes, s-constants, s-emit, s-recog, s-opinit, s-extract)
10124         (s-peep, s-attr, s-attrtab, s-output, s-genrtl, s-modes)
10125         (s-preds, s-iov): Do not depend on move-if-change.
10126
10127 2004-02-17  James E Wilson  <wilson@specifixinc.com>
10128
10129         * caller-save.c (insert_restore): Pass mem through copy_rtx.
10130         (insert_save): Likewise.
10131
10132 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10133
10134         * config/h8300/h8300.c (h8300_emit_stack_adjustment): Fix a
10135         warning.
10136
10137 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10138
10139         * config/h8300/h8300.md (*one_complsi2_h8300): Change to
10140         *one_cmplsi2_h8300.
10141         (*one_complsi2_h8300hs): Change to *one_cmplsi2_h8300hs.
10142
10143 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10144
10145         * config/h8300/h8300-protos.h: Update the prototype of
10146         fix_bit_operand().
10147         * config/h8300/h8300.c (fix_bit_operand): Remove the second
10148         argument "what".
10149         * config/h8300/h8300.md: Update all callers.
10150
10151 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10152
10153         * config/h8300/h8300.c (fix_bit_operand): Change the name of
10154         the last argument to "code" from "type".
10155
10156 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10157
10158         * config/h8300/h8300.c: Remove an extern declaration of
10159         rtx_equal_function_value_matters.
10160
10161 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10162
10163         * config/h8300/h8300.c (fix_bit_operand): Don't generate insns
10164         by hand.
10165         * config/h8300/h8300.md (*andqi3_1): Change to andqi3_1.
10166         (*iorqi3_1): Change to iorqi3_1.
10167         (*xorqi3_1): Change to xorqi3_1.
10168
10169 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10170
10171         * c-common.c, cfghooks.c, rtlanal.c, varasm.c: Fix comment
10172         typos.
10173
10174 2004-02-17  Jan Hubicka  <jh@suse.cz>
10175
10176         * i386.c (x86_prologue_using_move, x86_epilogue_using_move): Disable for P4.
10177
10178 2004-02-18  Alan Modra  <amodra@bigpond.net.au>
10179
10180         PR optimization/14119
10181         * combine.c (try_combine): When attemting to fix unrecognized insns,
10182         don't delete SETs marked with REG_EH_REGION notes.
10183
10184 2004-02-17  Ulrich Weigand  <uweigand@de.ibm.com>
10185
10186         * combine.c (simplify_if_then_else): Do not replace
10187         (if_then_else (ne reg 0) (0) (const_int)) by (reg) if the
10188         modes differ.
10189
10190 2004-02017  Steven Bosscher  <stevenb@suse.de>
10191
10192         * (c-decl.c, c-semantics.c, calls.c, cgraph.c, cgraphunit.c,
10193         function.c, integrate.c, print-tree.c, toplev.c, tree-optimize.c,
10194         tree.h): Replace DECL_SAVED_INSNS with DECL_STRUCT_FUNCTION.
10195         * ada/utils.c: Likewise.
10196         * cp/decl.c: Likewise.
10197         * f/com.c: Likewise.
10198         * java/class.c: Likewise.
10199
10200 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10201
10202         * config/h8300/h8300.md: Fix comment typos.
10203
10204 2004-02-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10205
10206         * config/mips/t-iris6gld: Renamed to ...
10207         * config/mips/t-irix-gld: ... this.
10208         * config.gcc (mips-sgi-irix6*): Reflect this
10209         (mips-sgi-irix5*): Use it with GNU ld.
10210
10211         * config/mips/irix6-crti.asm, config/mips/irix6-crtn.asm: Renamed
10212         to ...
10213         * config/mips/irix-crti.asm, config/mips/irix-crtn.asm: ... this.
10214         * config/mips/t-irix-gld: Reflect this.
10215         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
10216
10217         * config/mips/iris5gld.h: New file.
10218         * config.gcc (mips-sgi-irix5*): Use it with GNU ld.
10219         Only use collect2 without gas.
10220
10221         * config/mips/iris6.h (IRIX6_STARTFILE_SPEC, IRIX6_ENDFILE_SPEC):
10222         Renamed to IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
10223         (STARTFILE_SPEC, ENDFILE_SPEC, SUBTARGET_EXTRA_SPECS): Reflect this.
10224         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
10225
10226         * config/mips/iris6.h (SUBTARGET_EXTRA_SPECS): Moved ...
10227         * config/mips/iris5.h: ... here.
10228
10229         * config/mips/iris5.h (STARTFILE_SPEC, ENDFILE_SPEC): Renamed to
10230         IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
10231         (STARTFILE_SPEC, ENDFILE_SPEC): Define.
10232
10233         * config/mips/iris5gas.h (STARTFILE_SPEC, ENDFILE_SPEC): Simplify
10234         using irix_startfile_spec, irix_endfile_spec.
10235
10236 2004-02-16  Gunther Nikl  <gni@gecko.de>
10237
10238         * config/m68k/m68k.c: Remove obsolete support for HPUX_ASM.
10239
10240 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10241
10242         * config/h8300/h8300.c (h8300_expand_prologue): Don't generate
10243         insns by hand.
10244
10245 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10246
10247         * cfghooks.c (split_edge): Speed up updating of dominators.
10248
10249 2004-02-17  Mark Mitchell  <mark@codesourcery.com>
10250
10251         PR c++/11326
10252         * c-common.c (flag_abi_version): Remove.
10253         * c-common.h (flag_abi_version): Likewise.
10254         * c-opts.c (c_common_handle_option): Remove OPT_fabi_version case.
10255         * c.opt (fabi-version): Remove.
10256         * calls.c (expand_call): Always pass a function type to
10257         struct_value_rtx.  Use convert_memory_address.
10258         * common.opt (fabi-version): Add it.
10259         * flags.h (flag_abi_version): Likewise.
10260         (abi_version_at_least): New macro.
10261         * opts.c (common_handle_option): Add OPT_fabi_version.
10262         * toplev.c (flag_abi_version): Define it.
10263         * config/ia64/ia64.c (ia64_struct_retval_addr_is_first_parm_p):
10264         New function.
10265         (ia64_output_mi_thunk): Use it.
10266         (ia64_struct_value_rtx): Likewise.
10267
10268 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10269
10270         * config/h8300/h8300.c (h8300_emit_stack_adjustment):
10271         Don't generate insns by hand.
10272
10273 2004-02-17  Andrew Pinski  <pinskia@physics.uc.edu>
10274
10275         PR c++/14178
10276         * doc/invoke.texi (fabi-version): The default is 2 now.
10277
10278 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10279
10280         * loop-iv.c: New file.
10281         * Makefile.in (loop-iv.o): New.
10282         * basic_block.h (FOR_BB_INSNS, FOR_BB_INSNS_REVERSE): New macros.
10283         * cfgloop.c (fill_sons_in_loop, get_loop_body_in_dom_order,
10284         num_loop_branches): New functions.
10285         * cfgloop.h (get_loop_body_in_dom_order, num_loop_branches,
10286         iv_analysis_loop_init, iv_get_reaching_def, iv_analyse, get_iv_value,
10287         find_simple_exit, iv_number_of_iterations, iv_analysis_done,
10288         get_simple_loop_desc, free_simple_loop_desc): Declare.
10289         (simple_loop_desc): New inline function.
10290         (struct rtx_iv, struct niter_desc): New.
10291         * cfgloopmanip.c (loopify): Specify semantics more precisely.
10292         * expr.c (force_operand): Handle subregs of expressions created by
10293         loop unroller.
10294         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Move
10295         parts of the initialization to toplev.c
10296         * loop-unroll.c (loop_exit_at_end_p): New.
10297         (unroll_and_peel_loops): Call iv_analysis_done.
10298         (decide_peel_once_rolling, decide_peel_completely,
10299         decide_unroll_stupid, decide_unroll_constant_iterations,
10300         decide_unroll_runtime_iterations, decide_peel_simple,
10301         peel_loop_simple, unroll_loop_stupid, unroll_loop_constant_iterations,
10302         unroll_loop_runtime_iterations): Use new simple loop analysis.
10303         * loop-unswitch.c (compare_and_jump_seq): New.
10304         (may_unswitch_on_p): Renamed to ...
10305         (may_unswitch_on): Use new iv analysis.
10306         (reversed_condition): Export.
10307         (unswitch_single_loop, unswitch_loop): Use new iv analysis.
10308         * predict.c (estimate_probability): Use new simple loop analysis.
10309         * rtl.h (get_mode_bounds, reversed_condition,compare_and_jump_seq,
10310         canon_condition, simplify_using_condition): Declare.
10311         * stor-layout.c (get_mode_bounds): New.
10312         * toplev.c (rest_of_handle_loop2): Some parts of
10313         initialization/finalization moved here from loop-init.c.
10314
10315 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10316
10317         * config/h8300/h8300.h (FIXED_REGISTERS): Add the soft frame
10318         pointer.
10319         (CALL_USED_REGISTERS): Likewise.
10320         (REG_ALLOC_ORDER): Likewise.
10321         (REG_CLASS) <GENERAL_REGS>: Likewise.
10322
10323 2004-02-16  Geoffrey Keating  <geoffk@apple.com>
10324
10325         * doc/md.texi (Insn Canonicalizations): Document left-chaining
10326         in associative operators.
10327         * rtlanal.c (commutative_operand_precedence): Create some new
10328         variables.  Prefer a commutative operand on the left, then
10329         binary expressions, then NEG and NOT.
10330
10331 2004-02-16  Matthias Klose  <doko@debian.org>
10332
10333         * config/t-slibgcc-elf-ver: Define SHLIB_NAME and SHLIB_SONAME
10334         in terms of SHLIB_SOVERSION.
10335         * config/m68k/t-slibgcc-elf-ver: New file.
10336         * config/pa/t-slibgcc-elf-ver: New file.
10337         * config.gcc (m68k-linux, parisc-linux): Use them when not
10338         sjlj exceptions are not configured.
10339
10340 2004-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
10341
10342         * config/sparc/sparc.c (get_pc_symbol_name): Mark with GTY(()).
10343
10344 2004-02-16  Zack Weinberg  <zack@codesourcery.com>
10345
10346         * sdbout.c (sdb_debug_hooks): Correct the type_decl entry.
10347
10348 2004-02-16  Joseph S. Myers  <jsm@polyomino.org.uk>
10349
10350         * doc/sourcebuild.texi: Mention backends.html.
10351
10352 2004-02-16  Kazu Hirata  <kazu@cs.umass.edu>
10353
10354         * c-decl.c, c-ppoutput.c, cpphash.h, cpplib.h, dbxout.c,
10355         line-map.c, line-map.h, var-tracking.c: Fix comment
10356         formatting.
10357
10358 2004-02-16  Richard Henderson  <rth@redhat.com>
10359
10360         * cse.c (cse_insn): Don't lose REG_NON_LOCAL_GOTO note.
10361
10362         * fold-const.c (operand_equal_p): Fix VECTOR_CST comparison.
10363
10364 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
10365
10366         * config/h8300/h8300.md: Remove unnecessary parallels from
10367         all define_insn and define_split patterns.
10368
10369 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
10370
10371         * config/h8300/h8300.md: Remove explicit (set_attr "cc"
10372         "clobber").
10373
10374 2004-02-15  Bernardo Innocenti  <bernie@develer.com>
10375
10376         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Restore support for
10377         '%#'.
10378
10379 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
10380
10381         * config/ia64/ia64.c, config/mips/mips.c,
10382         config/mmix/mmix-modes.def: Fix comment typos.
10383
10384 2004-02-15  Roger Sayle  <roger@eyesopen.com>
10385
10386         * c-common.h (GET_DIRECTIVE_LINE): Remove unused macro.
10387         (get_directive_line): Remove unused function prototype.
10388
10389 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
10390
10391         * tree-inline.c (copy_body_r): Do not replace ret_label.
10392
10393 2004-02-14  Jan Hubicka  <jh@suse.cz>
10394
10395         * i386.c (x86_four_jump_limit): New variable.
10396         (k8_avoid_jump_misspredicts): Rename to ...
10397         (ix86_avoid_jump_misspredicts): .. this one.
10398         (ix86_pad_returns): Break out from ...
10399         (ix86_reorg): ... this one; do ix86_avoid_jump_misspredicts when asked
10400         to.
10401         * i386.h (TARGET_FOUR_JUMP_LIMIT): New macro.
10402
10403 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
10404
10405         * emit-rtl.c (set_decl_incoming_rtl): Check whether the 0th element of
10406         PARALLEL is NULL.
10407
10408 2004-02-14  Per Bothner  <per@bothner.com>
10409
10410         * fix-header.c (line_table):  Move local variable in main to global.
10411         * scan.h (line_table):  Use it.
10412         * scan-decls.c (scan_decls):  Need to call linemap_lookup on token's
10413         line (recently renamed to src_loc) before calling recognized_function.
10414
10415 2004-02-14  Matt Kraai  <kraai@alumni.cmu.edu>
10416
10417         * Makefile.in: Fix comment typos.
10418
10419 2004-02-14  Olivier Hainque  <hainque@act-europe.fr>
10420
10421         * loop.c (check_dbra_loop): Use gen_int_mode instead of GEN_INT
10422         for start_value when it is directly moved into reg, and factorize
10423         the retrieval of GET_MODE (reg).
10424
10425 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
10426
10427         * config/mips/mips-protos.h (mips_load_got_page): Delete.
10428         (mips_load_got_global): Delete.
10429         (mips_gotoff_page): Declare.
10430         * config/mips/mips.md (UNSPEC_LOAD_GOT): New constant.
10431         (*xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i): Build an
10432         UNSPEC_LOAD_GOT pattern rather than a MEM.
10433         (*load_got[sd]i): New patterns.
10434         * config/mips/mips.c (mips_got_alias_set, mips_load_got): Delete.
10435         (mips_load_got_page, mips_load_got_global): Delete.
10436         (mips_gotoff_page): New function.
10437         (override_options): Don't initialize mips_got_alias_set.
10438
10439 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
10440
10441         * config/mips/mips.h (MASK_DEBUG_[ABEFI], TARGET_DEBUG_[ABEFI]_MODE)
10442         (TARGET_MIPS4100, TARGET_MIPS4300, TARGET_MIPS4KC, TARGET_MIPS5KC)
10443         (TARGET_SB1, TUNE_SB1, TUNE_SR71K, BIGGEST_MAX_ARGS_IN_REGISTERS)
10444         (GO_PRINTF, GO_PRINTF2, GO_DEBUG_RTX, DFMODE_NAN, SFMODE_NAN): Delete.
10445         (TARGET_SWITCHES): Remove MASK_DEBUG_[ABEFI].
10446         * config/mips/mips.c: Fix some overly-long lines.
10447         (SINGLE_WORD_MODE_P, PIC_OFFSET_TABLE_MASK): Delete.
10448         (init_cumulative_args): Remove TARGET_DEBUG_E_MODE handling.
10449
10450 2004-02-13  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10451
10452         * configure.ac: Search for as, ld below libexec/gcc.
10453         * configure: Regenerate.
10454
10455 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
10456
10457         * config/arm/mmintrin.h (_mm_setwcx): Reverse arguments in call to
10458         __builtin_arm_setwcx ().
10459         * config/arm/arm.c (arm_expand_builtin): Generate operands
10460         correctly and reverse their order in call to gen_iwmmxt_tmcr ().
10461
10462 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
10463
10464         * config/arm/arm.c (bdesc_2arg): Correct builtin names "wmulsh"
10465         and "wmuluh" to "wmulsm" and "wmulum", respectively.
10466         * config/arm/arm.h (enum arm_builtins): Rename enumerators to
10467         ARM_BUILTIN_WMULSM and ARM_BUILTIN_WMULUM.
10468         * config/arm/mmintrin.h (_mm_mulhi_pi16): Update intrinsic call.
10469         (_mm_mulhi_pu16): Likewise.
10470
10471 2004-02-13  Zack Weinberg  <zack@codesourcery.com>
10472
10473         * xcoffout.c (xcoff_assign_fundamental_type_number): Check
10474         DECL_NAME != 0 before dereferencing.
10475
10476 2004-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
10477
10478         * config/s390/s390-protos.h (s390_output_symbolic_const): Remove.
10479         (s390_output_addr_const_extra): Declare.
10480         (s390_output_pool_entry): Remove FILE * argument.
10481         * config/s390/s390.c (s390_output_symbolic_const): Remove.
10482         (s390_output_addr_const_extra): New function.
10483         (print_operand_address): Call output_addr_const instead of
10484         s390_output_symbolic_const.
10485         (print_operand): Likewise.
10486         (s390_output_pool_entry): Use assemble_integer for symbolic constants.
10487         Remove FILE * argument.
10488         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Define.
10489         * config/s390/s390.md ("*pool_entry"): Adapt s390_output_pool_entry
10490         call.
10491
10492 2004-02-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10493
10494         * cfgloopanal.c (mark_irreducible_loops): Rewriten.
10495         (struct edge, struct vertex, struct graph): New.
10496         (dump_graph, new_graph, add_edge, dfs, check_irred, for_each_edge,
10497         free_graph): New functions.
10498
10499 2004-02-12  Chris Demetriou  <cgd@broadcom.com>
10500
10501         * config/mips/mips.md (casesi_internal, casesi_internal_di):
10502         Use ".set macro" to avoid warnings about multi-instruction
10503         macros, since they're intentional.
10504
10505 2004-02-12  Geoffrey Keating  <geoffk@apple.com>
10506
10507         * config/darwin.h: Add include guards.  Remove old, now incorrect,
10508         comment about STANDARD_EXEC_PREFIX.
10509
10510         * Makefile.in (install-man): Use $(CPP_INSTALL_NAME) and
10511         $(GCOV_INSTALL_NAME) to install manpages.  Remove generic rule
10512         for installing .1 manpages.  Add rules for installing cpp
10513         and gcov manpages under their installed names.
10514
10515 2004-02-12  Alexandre Oliva  <aoliva@redhat.com>
10516
10517         * configure.ac (gcc_cv_ld): Don't set to LD if target is not
10518         host, but try LD_FOR_TARGET first.
10519         * configure: Rebuilt.
10520
10521 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
10522
10523         * dbxout.c: Move declaration of dbxout_type_decl outside
10524         #ifdef DBX_DEBUGGING_INFO.
10525         * c-parse.in: Don't give the asmdef production a type.
10526
10527 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
10528
10529         * debug.h (struct gcc_debug_hooks): Add type_decl field.
10530         (debug_nothing_tree_int): Prototype.
10531         (dwarf_debug_hooks): Delete, unused.
10532         * debug.c (do_nothing_debug_hooks): Update.
10533         (debug_nothing_tree_int): New function.
10534         * langhooks.h (struct lang_hooks_for_decls):
10535         Remove builtin_type_decls field.
10536         * langhooks-def.h (LANG_HOOKS_BUILTIN_TYPE_DECLS): Delete.
10537         (LANG_HOOKS_DECLS): Update.
10538         * toplev.c (rest_of_decl_compilation, rest_of_type_compilation):
10539         Use debug_hooks->type_decl.
10540         * dbxout.c (preinit_symbols): New static.
10541         (dbx_debug_hooks, xcoff_debug_hooks): Update.
10542         (dbxout_init): Don't call DBX_OUTPUT_STANDARD_TYPES or
10543         lang_hooks.decls.builtin_type_decls.  Do scan preinit_symbols
10544         for symbols to output.
10545         (dbxout_type_decl): New function.
10546         (dbxout_symbol): If called before dbxout_init has run, queue
10547         the symbol for later.  Apply DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER
10548         to TYPE_DECLs before emitting them.
10549         * xcoffout.c (assign_type_number): Delete.
10550         (xcoff_type_numbers): New static table.
10551         (xcoff_assign_fundamental_type_number): New function.
10552         * xcoffout.h: Define DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER, not
10553         DBX_OUTPUT_STANDARD_TYPES.  Remove unnecessary #ifdefs.
10554         * sdbout.c: Include varray.h.
10555         (deferred_global_decls): New static.
10556         (sdb_debug_hooks): Update.
10557         (sdbout_global_decl): If we can't emit something right now,
10558         remember it in deferred_global_decls.
10559         (sdbout_finish): Just scan deferred_global_decls; don't call getdecls.
10560         (sdbout_init): Initialize deferred_global_decls.
10561         * Makefile.in: Update dependencies of sdbout.o.
10562         * dwarf2out.c (dwarf2out_type_decl): New function.
10563         (dwarf2_debug_hooks): Update.
10564         * vmsdbgout.c (vmsdbg_debug_hooks): Update.
10565         * c-decl.c (getdecls): Just return 0.
10566         (check_for_loop_decls): Don't use getdecls.
10567         (record_builtin_type): Call debug_hooks->type_decl on the TYPE_DECL.
10568         * c-objc-common.c (c_objc_common_finish_file): Don't use getdecls.
10569
10570 2004-02-12  Ulrich Weigand  <uweigand@de.ibm.com>
10571
10572         * config/s390/s390.c (s390_sched_reorder2): Remove.
10573         (TARGET_SCHED_REORDER2): Do not redefine.
10574
10575 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
10576
10577         * c-parse.in (maybe_type_qual): Delete.
10578         (maybe_volatile, simple_asm_expr, asmdef, asm_stmt)
10579         (asm_argument): New grammar rules.
10580         (extdef_1): Use asmdef.
10581         (maybeasm): Move down with other asm rules; use simple_asm_expr.
10582         (xexpr): Move up with other expression rules.
10583         (stmt): Use asm_stmt.
10584
10585         * c-typeck.c (build_asm_expr): New function - body mostly
10586         pulled from build_asm_stmt.
10587         (build_asm_stmt): Just handle tacking on the volatile qualifier.
10588         * c-tree.h (build_asm_expr, build_asm_stmt): Update prototypes.
10589
10590 2004-02-12  Richard Sandiford  <rsandifo@redhat.com>
10591
10592         PR bootstrap/13617
10593         * config/mips/mips-protos.h (mips_output_aligned_decl_common): Declare.
10594         (mips_declare_object): Make variadic.
10595         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Use
10596         mips_output_aligned_decl_common.
10597         * config/mips/mips.c (mips_output_aligned_decl_common): New function.
10598         (mips_declare_object): Make variadic.
10599
10600 2004-02-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10601
10602         * function.c (update_epilogue_consts): Teach about binary operations.
10603
10604         * emit-rtl.c (set_mem_attributes_minus_bitpos): Don't kill
10605         previous MEM_VOLATILE in REF.
10606         * function.c (fixup_var_refs): Save volatile_ok and set to 1.
10607         * expr.c (emit_block_move_via_movstr): Save and restore volatile_ok.
10608
10609 2004-02-12  Gunther Nikl  <gni@gecko.de>
10610
10611         * config.gcc: Restore support for m68k-openbsd.
10612
10613 2004-02-12  Jan Hubicka  <jh@suse.cz>
10614
10615         * tree-optimize.c (tree_rest_of_compilation): Do not release
10616         DECL_ARGUMENTS.
10617
10618 2004-02-11  Matt Kraai  <kraai@alumni.cmu.edu>
10619
10620         * doc/install.texi: Fix the spelling of "explicitly".
10621
10622 2004-02-11  Eric Christopher  <echristo@redhat.com>
10623
10624         * cppcharset.c (_cpp_interpret_string_notranslate): Rename and
10625         duplicate argument structure of cpp_interpret_string.
10626         * cpphash.h: Move prototype...
10627         * cpplib.h: Here.
10628         * cpplib.c: Fix calls to match new function signature.
10629
10630 2004-02-11  Joseph S. Myers  <jsm@polyomino.org.uk>
10631
10632         PR c/456
10633         * cppexp.c (num_binary_op): Don't allow comma operators in #if
10634         constant expressions at all outside C99 mode if pedantic.
10635
10636 2004-02-11  Uros Bizjak  <uros@kss-loka.si>
10637
10638         * optabs.h (enum optab_index): Add new OTI_log10 and OTI_log2.
10639         (log10_optab, log2_optab): Define corresponding macros.
10640         * optabs.c (init_optabs): Initialize log10_optab and log2_optab.
10641         * genopinit.c (optabs): Implement log10_optab and log2_optab
10642         using log10?f2 and log2?f2 patterns.
10643         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG10{,F,L}
10644         using log10_optab, and BUILT_IN_LOG2{,F,L} using log2_optab.
10645         (expand_builtin): Expand BUILT_IN_LOG10{,F,L} and BUILT_IN_LOG2{,F,L}
10646         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
10647
10648         * config/i386/i386.md (log10sf2, log10df2, log10xf2, log2sf2,
10649         log2df2, log2xf2): New patterns to implement log10, log10f, log10l,
10650         log2, log2f and log2l built-ins as inline x87 intrinsics.
10651
10652 2004-02-11  Richard Henderson  <rth@redhat.com>
10653
10654         PR target/1532
10655         * flow.c (insn_dead_p): A clobber of a dead hard register is a
10656         dead insn after reload.
10657
10658 2004-02-11  Ulrich Weigand  <uweigand@de.ibm.com>
10659
10660         * tree.h (frame_base_decl): Add GTY marker.
10661         * var-tracking.c (frame_base_decl): Likewise.
10662
10663 2004-02-11  Daniel Berlin  <dberlin@dberlin.org>
10664
10665         * dwarf2out.c (output_loc_list): Remove no longer necessary, and now
10666         incorrect, hunk.
10667         (add_location_or_const_value_attribute): Use text_section_label,
10668         not TEXT_SECTION_NAME.
10669
10670 2004-02-11  Per Bothner  <per@bothner.com>
10671
10672         Represent column numbers using line-map's source_location.
10673         The "next available source_location" is now managed internally by
10674         line-maps.c rather than by clients.
10675         * line-map.h (struct line_map):  New field column_bits.
10676         <from_line>:  Rename field to start_location.
10677         (struct line_maps):  New fields highest_location and max_column_hint.
10678         (linemap_check_files_exited):  New declaration.
10679         (linemap_line_start):  New declaration.
10680         (linemap_add):  Remove from_line parameter; use highest_location field.
10681         (SOURCE_LINE, LAST_SOURCE_LINE):  Modify to use column_bits.
10682         (SOURCE_COLUMN, LAST_SOURCE_LINE_LOCATION):  New macros.
10683         (CURRENT_LINE_MAP):  Remove macro.
10684         (linemap_position_for_column):  New inline function.
10685         * line-map.c (linemap_init):  Clear new fields.
10686         (linemap_check_files_exited):  New function, extracted from ...
10687         (linemap_free):  Use linemap_check_files_exited.
10688         (linemap_add):  Remove from_line parameter.  Various updates.
10689         (linemap_line_start):  New function.
10690         (linemap_lookeup):  Update for new field names.
10691         * cpphash.h (struct cpp_reader) <map>:  Field removed.  Because
10692         linemap_position_for_column may unpredictably change the current map,
10693         it is cleaner and simpler for us to not cache it in cpp_reader.
10694         (struct cpp_buffer):  New sysp field.
10695         Changed warned_cplusplus_comments and from_stage3 to bitfields.
10696         * cppinit.c (cpp_read_min_file):  pfile->map no longer exists.
10697         * cpplib.c (do_line, do_linemarker, _cpp_do_file_change):  Get
10698         current map using linemap_lookup.
10699         (do_linemarker):  Also set buffer's sysp field.
10700         (destringize_and_run):  No longer need to decrement current line.
10701         * cppfiles.c (_cpp_stack_file):  Set sysp from and in buffer.
10702         (search_path_head, open_file_failed):  Use buffer's sysp.
10703         (cpp_make_system_header):  Get current map using linemap_lookup.
10704         Also set buffer's sysp flag.
10705         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use linemap_lookup.
10706         * cpphash.h (CPP_INCREMENT_LINE):  New macro.
10707         (struct cpp_buffer):  Moved fields saved_cur, saved_rlimit to ...
10708         (struct cpp_reader):  ... and adding saved_line_base field.
10709         * cpptrad.c (_cpp_overlay_buffer, _cpp_remove_overlay):
10710         Update accordingly.  Don't adjust line.
10711         (_cpp_scan_out_logical_line):  Use CPP_INCREMENT_LINE.
10712         * cpphash.c (CPP_IN_SYSTEM_HEADER):  Replaced macro by ...
10713         (cpp_in_system_header):  ... new inline function, using buffer's sysp.
10714         * cpperror.c (_cpp_begin_message):  Update to use cpp_in_system_header.
10715         * cpplex.c (_cpp_lex_direct):  Likewise.
10716         * cppmacro.c (_cpp_builtin_macro_text):  Likewise.
10717         * cppmacro.c (_cpp_create_definition):  Use buffer's sysp field.
10718         * cpplib.h (struct cpp_token):  Rename line field to src_loc.
10719         Remove col field as it is now subsumed by src_loc.
10720         * cpperror.c:  Update various field, parameter, and macro names.
10721         (print_location):  If col==0, try SOURCE_COLUMN of line.
10722         (cpp_error):  Use cur_token's src_loc field, rather than line+col.
10723         * cpplib.c (do_diagnostic):  Token's src_loc fields replaces line+col.
10724         * cpplex.c (_cpp_process_line_notes, _cpp_lex_direct,
10725         _cpp_skip_block_comment):  Use CPP_INCREMENT_LINE.
10726         (_cpp_temp_token):  Replace cpp_token's line+col fields by src_loc.
10727         (_cpp_get_fresh_line):  Don't need to adjust line for missing newline.
10728         (_cpp_lex_direct):  Use linemap_position_for_column.
10729         * c-ppoutput.c (maybe_print_line, print_line):  Don't take map
10730         parameter.  Instead get it from the line_table global.  Adjust callers.
10731         (print):  Remove map field.  Replace line field to src_line.
10732         (init_pp_output, account_for_newlines, maybe_print_line):  Adjust.
10733         (cb_line_change):  Use SOURCE_COLUMN.  Minor optimizations.
10734         (pp_file_change):  Use MAIN_FILE_P since we cannot checked print.map.
10735         Use LAST_SOURCE_LINE_LOCATION to "catch up" after #include.
10736         * cpptrad.c (copy_comment):  Rename variable.
10737         * c-lex.c (map):  Remove static variable, for same reason we removed
10738         cpp_reader's map field.
10739         (cb_line_change, cb_def_pragma, cb_define, cb_undef):  Hence we need
10740         to call linemap_lookup.
10741         (cb_line_change):  Token's line field replaced by src_loc.
10742         (fe_file_change):  Use MAINFILE_P and LAST_SOURCE_LINE macros.
10743         Don't save new_map.
10744
10745         * cpphash.h, cpperror.c, cpplib.h:  Some renames of fileline to
10746         source_location.
10747
10748 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
10749
10750         * config/rs6000/altivec.md (*movv4si_internal): At least one
10751         operand must be register_operand.
10752         (*movv8hi_internal1): Likewise.
10753         (*movv16qi_internal1): Likewise.
10754         (*movv4sf_internal1): Likewise.
10755
10756 2004-02-10  Aldy Hernandez  <aldyh@redhat.com>
10757
10758         * config/rs6000/spe.md ("*movv2si_internal"): Check for register
10759         operand.
10760         (movv4hi_internal): Same.
10761         (movv2sf_internal): Same.
10762         (movv1di_internal): Same.
10763
10764 2004-02-11  Thiemo Seufer  <seufer@csv.ica.uni-stuttgart.de>
10765
10766         * config/mips/mips.h (TARGET_OLDABI): Define. Use TARGET_NEWABI and
10767         TARGET_OLDABI consistently.
10768         * config/mips/mips.c (function_arg,mips_setup_incoming_varargs,
10769         mips_va_arg,override_options,compute_frame_size,
10770         mips_initial_elimination_offset,mips16_fp_args,build_mips16_call_stub
10771         ,mips_return_in_memory,mips_strict_argument_naming): Use TARGET_NEWABI
10772         and TARGET_OLDABI consistently.
10773         * config/mips/mips.md (exception_receiver): Likewise.
10774         * config/mips/linux64.h: Likewise.
10775
10776 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
10777
10778         * gcc/config/rs6000/rs6000.c (rs6000_override_options)
10779         Set AltiVec ABI and vrsave as default for ppc64 linux.
10780         (init_cumulative_args): Post error, if try to return
10781         value in AltiVec register without enable AltiVec.
10782         (function_arg_advance): Ditto for passing arguments.
10783
10784 2004-02-11  Richard Sandiford  <rsandifo@redhat.com>
10785
10786         * emit-rtl.c (mark_label_nuses): Check that a LABEL_REF refers to
10787         a label before updating its usage count.
10788
10789 2004-02-10  Matt Kraai  <kraai@alumni.cmu.edu>
10790
10791         * doc/install.texi: Remove extra cd.
10792
10793 2004-02-10  Ziemowit Laski  <zlaski@apple.com>
10794
10795         * c-common.c (vector_size_helper): Remove; call
10796         reconstruct_complex_type() instead.
10797         * tree.c (reconstruct_complex_type): New function
10798         (formerly vector_size_helper() in c-common.c).
10799         (make_vector): Make externally visible.
10800         * tree.h (reconstruct_complex_type, make_vector): Add prototypes.
10801
10802 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
10803
10804         * config/h8300/h8300-protos.h: Add a prototype for
10805         h8300_regs_ok_for_stm.
10806         * config/h8300/h8300.c (h8300_regs_ok_for_stm): New.
10807         * config/h8300/h8300.md (stm_h8300s_2_advanced,
10808         stm_h8300s_2_normal, stm_h8300s_2, stm_h8300s_3_advanced,
10809         stm_h8300s_3_normal, stm_h8300s_3, stm_h8300s_4_advanced,
10810         stm_h8300s_4_normal, stm_h8300s_4, ldm_h8300s_2_advanced,
10811         ldm_h8300s_2_normal, ldm_h8300s_2, ldm_h8300s_3_advanced,
10812         ldm_h8300s_3_normal, ldm_h8300s_3, ldm_h8300s_4_advanced,
10813         ldm_h8300s_4_normal, ldm_h8300s_4): Use
10814         h8300_regs_ok_for_stm().
10815
10816 2004-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
10817
10818         PR c/14088
10819         * real.c (real_from_string): Look for 'X' as well as 'x' in
10820         hexfloat strings.
10821
10822 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
10823
10824         * config/h8300/h8300.md: Remove an incorrect comment about
10825         peephole2.  Add comments.
10826
10827 2004-02-10  Josef Zlomek  <zlomekj@suse.cz>
10828
10829         PR/14058
10830         * emit-rtl.c (set_decl_incoming_rtl): New.
10831         * tree.h (set_decl_incoming_rtl): New.
10832         * function.c (assign_parms): Use set_decl_incoming_rtl for setting
10833         DECL_INCOMING_RTL.
10834         * ada/misc.c (adjust_decl_rtl): Likewise.
10835
10836 2004-02-10  Per Bothner  <per@bothner.com>
10837
10838         * c-opts.c (c_common_post_options):   Don't emit working directory
10839         in cpp output if -P was specified.
10840
10841 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
10842
10843         PR c/14092
10844         * fold-const.c (fold) <NEGATE_EXPR>: Convert result of
10845         negate_expr back to the original type.
10846
10847 2004-02-10  Alan Modra  <amodra@bigpond.net.au>
10848
10849         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Don't
10850         bump retaddr here.
10851
10852 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
10853
10854         * rtl.h (schedule_insns, schedule_ebbs, fix_sched_param,
10855         gen_lowpart_SUBREG): Move under the file in which they
10856         are actually declared.
10857
10858 2004-02-10  Arnaud Charlet  <charlet@act-europe.fr>
10859
10860         * doc/sourcebuild.texi: Add libada documentation.
10861
10862         * doc/install.texi: Update documentation on Ada build, now
10863         that the GNAT lib and tools are built automatically.
10864
10865 2004-02-10  Richard Sandiford  <rsandifo@redhat.com>
10866
10867         * config/mips/mips.h (TARGET_GPWORD): Return false for TARGET_NEWABI
10868         && TARGET_IRIX.
10869
10870 2004-02-09  Ziemowit Laski  <zlaski@apple.com>
10871
10872         * objc/objc-act.c (get_super_receiver): Move '#ifdef OBJCPLUS'
10873         boundaries outside build_component_ref() call (a macro in ObjC++).
10874
10875 2004-02-09  Bob Wilson  <bob.wilson@acm.org>
10876
10877         * config/xtensa/xtensa-protos.h (xtensa_copy_incoming_a7): Update.
10878         (init_cumulative_args): Likewise.
10879         (a7_overlap_mentioned_p): Delete prototype.
10880         * config/xtensa/xtensa.c (struct machine_function): Replace
10881         incoming_a7_copied field with need_a7_copy and vararg_a7 flags.
10882         Add set_frame_ptr_insn field.
10883         (xtensa_emit_move_sequence): Update call to xtensa_copy_incoming_a7.
10884         (xtensa_copy_incoming_a7): Rewrite to check need_a7_copy flag and check
10885         if the operand is an argument in a7.  If so, copy a7 to a new pseudo
10886         at the function entry and replace the operand with the pseudo.
10887         (init_cumulative_args): Remove unused arguments.  Add new "incoming"
10888         argument and record this flag in CUMULATIVE_ARGS.
10889         (function_arg): Remove result_mode and special-case code to handle
10890         arguments in a7.  Instead, set need_a7_copy flag when there is an
10891         incoming argument in a7.
10892         (xtensa_expand_prologue): Remove code to search for set_frame_ptr insn
10893         and use the value recorded in cfun->machine->set_frame_ptr_insn.
10894         (xtensa_builtin_saveregs): Check for negative gp_left value.  Set
10895         need_a7_copy and vararg_a7 flags.  Use move_block_from_reg instead of
10896         special-case code.
10897         (a7_overlap_mentioned_p): Delete.
10898         * config/xtensa/xtensa.h (CUMULATIVE_ARGS): Add "incoming" flag.
10899         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Remove useless
10900         arguments to init_cumulative_args and pass "incoming" flag instead.
10901         (BLOCK_REG_PADDING): Delete.
10902         * config/xtensa/xtensa.md (movdi, movsf, movdf): Remove unnecessary
10903         checks for reload_in_progress and reload_completed.  Update calls to
10904         xtensa_copy_incoming_a7.
10905         (ashlsi3): Rename existing insn to ashlsi3_internal.  Add expander
10906         to call xtensa_copy_incoming_a7.
10907
10908 2004-02-09  DJ Delorie  <dj@redhat.com>
10909
10910         * config/i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): No
10911         longer modify standard_exec_prefix, standard_bindir_prefix, or
10912         standard_startfile_prefix.
10913
10914 2004-02-09  James E Wilson  <wilson@specifixinc.com>
10915
10916         PR c++/11295
10917         * c-common.c (c_expand_expr, case STMT_EXPR): Change expand_expr call
10918         to expand_expr_real call, and pass in alt_rtl as last argument.
10919
10920         PR libstdc++/5625
10921         * builtin-types.def (BT_WORD, BT_FN_WORD_PTR): New.
10922         * builtins.c (expand_builtin): Handle BUILT_IN_EXTEND_POINTER.
10923         * builtins.def (BUILT_IN_EXTEND_POINTER): New.
10924         * except.c (expand_builtin_extend_pointer): New.
10925         * except.h (expand_builtin_extend_pointer): Declare.
10926
10927 2004-02-09  David Edelsohn  <edelsohn@gnu.org>
10928
10929         * config/rs6000/rs6000.c (rs6000_emit_move): Remove splitting slow
10930         unaligned loads and stores.
10931
10932 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10933
10934         * config/mips/iris5.h (BSS_SECTION_ASM_OP): Define.
10935         * config/mips/iris6.h (BSS_SECTION_ASM_OP): Undef.
10936
10937         * config/mips/iris6.h (TARGET_ASM_NAMED_SECTION): Moved ...
10938         * config/mips/iris5.h: ... here.
10939         * config/mips/iris5gas.h (TARGET_ASM_NAMED_SECTION): Remove.
10940
10941         * config/mips/iris6.h (EXTRA_SECTION_FUNCTIONS): Move ...
10942         * config/mips/iris5.h: ... here.
10943
10944 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10945
10946         * configure.ac: Remove default executable files before AC_PROG_CC.
10947         * configure: Regenerate.
10948
10949 2004-02-09  Kazu Hirata  <kazu@cs.umass.edu>
10950
10951         PR target/13721
10952         * config/h8300/h8300.c (byte_reg): Call abort() if asked to
10953         print a operand other than a register.
10954
10955 2004-02-09  Roger Sayle  <roger@eyesopen.com>
10956
10957         * fold-const.c (fold) <NOP_EXPR>: Use the original type conversion
10958         tree code rather than call fold_convert, which doesn't specify a
10959         default floating point to integer conversion.
10960
10961 2004-02-08  Bernardo Innocenti  <bernie@develer.com>
10962
10963         * config/m68k/m68k.c, config/m68k/m68k.md (SGS, SGS_CMP_ORDER): Remove
10964         code to support SGS assembler.  Reformat adjacent code where possible.
10965         * config/m68k/m68k.c (switch_table_difference_label_flag): Remove
10966         definition.
10967         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Remove support
10968         for '%#'.
10969         * config/m68k/linux.h, config/m68k/m68k.c,
10970         * config/m68k/math-68881.h: Replace `%#' with `#' in inline asm
10971         macros and asm_printf() format strings.
10972         * config/m68k/m68kelf.h (ASM_OUTPUT_CASE_END): Remove macro definition.
10973         * config/m68k/linux.h: Update copyright.
10974         * config/m68k/linux.h, config/m68k/m68k.c: Remove traling whitespace.
10975
10976 2004-02-08  Andreas Schwab  <schwab@suse.de>
10977             Bernardo Innocenti  <bernie@develer.com>
10978
10979         * config/m68k/m68k.h (REGISTER_NAMES): Prefix each name with
10980         REGISTER_PREFIX.
10981         * (M68K_FP_REG_NAME): New macro to specify an alternate name for the
10982         frame pointer register, overridable by OS targets.
10983         * (M68K_REGNAME): Macro to obtain register name for asm output,
10984         eventually replacing %a6 with M68K_FP_REG_NAME.
10985         * config/m68k/coff.h (REGISTER_NAMES): Don't redefine.
10986         * config/m68k/linux.h (REGISTER_NAMES): Likewise.
10987         * config/m68k/m68kelf.h (REGISTER_NAMES): Likewise.
10988         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Likewise.
10989         * config/m68k/m68k.c: Use M68K_REGNAME(x) in place of reg_names[x].
10990
10991 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
10992
10993         * target-def.h (TARGET_STRUCT_VALUE_RTX): Define as
10994         hook_rtx_tree_int_null.
10995         * targhooks.c (default_struct_value_rtx): Remove.
10996         * targhooks.h: Remove the prototype for
10997         default_struct_value_rtx.
10998         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
10999         config/fr30/fr30.c, config/h8300/h8300.c, config/i386/i386.c,
11000         config/ip2k/ip2k.c, config/iq2000/iq2000.c,
11001         config/m32r/m32r.c, config/mcore/mcore.c, config/mips/mips.c,
11002         config/mn10300/mn10300.c, config/pdp11/pdp11.c,
11003         config/rs6000/rs6000.c, config/s390/s390.c,
11004         config/stormy16/stormy16.c, config/v850/v850.c,
11005         config/xtensa/xtensa.c (TARGET_STRUCT_VALUE_RTX): Remove.
11006         * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document the default.
11007
11008 2004-02-08  Joseph S. Myers  <jsm@polyomino.org.uk>
11009
11010         * README.Portability: Change "ISO C89" to "ISO C90".
11011         * c-parse.in (primary, initelt): Likewise.
11012
11013 2004-02-08  Richard Sandiford  <rsandifo@redhat.com>
11014
11015         * real.c (encode_ibm_extended): Normalize the input value before
11016         converting it to a double.  Handle the case where a normal value
11017         rounds to infinity.
11018
11019 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
11020
11021         * c-objc-common.c (c_cannot_inline_tree_fn): Fix a typo in a
11022         warning.
11023         * cse.c (preferrable): Change to preferable. Update all of its
11024         callers.
11025         * genautomata.c (ainsn): Change
11026         first_ainsn_with_given_equialence_num to
11027         first_ainsn_with_given_equivalence_num.  Update all of its
11028         references.
11029
11030 2004-02-08  Jan Hubicka  <jh@suse.cz>
11031
11032         * schedule-ebb.c (schedule_ebbs): Do not allocate reg life data.
11033
11034 2004-02-07  David Edelsohn  <edelsohn@gnu.org>
11035
11036         * function.c (assign_parms): Fix formatting.
11037
11038 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
11039
11040         * default.h (PROMOTE_PROTOTYPES): Remove.
11041         * system.h (PROMOTE_FUNCTION_RETURN, PROMOTE_PROTOTYPES,
11042         STRUCT_VALUE_REGNUM, SETUP_INCOMING_VARARGS,
11043         EXPAND_BUILTIN_SAVEREGS): Poison.
11044         * target-def.h (TARGET_PROMOTE_FUNCTION_RETURN): Define as
11045         hook_bool_tree_false.
11046         (TARGET_PROMOTE_PROTOTYPES): Likewise.
11047         * target.h: Replace SETUP_INCOMING_VARARGS with
11048         targetm.calls.setup_incoming_varargs().
11049         * targhooks.c (default_promote_function_return): Remove.
11050         (default_promote_prototypes): Likewise.
11051         (default_struct_value_rtx): Always abort().
11052         (default_expand_builtin_saveregs): Always print an error
11053         message.
11054         (default_setup_incoming_varargs): Do nothing.
11055         (default_pretend_outgoing_varargs_named): Don't depend on
11056         SETUP_INCOMING_VARARGS.
11057         * targhooks.h: Remove the prototype for
11058         default_promote_function_return and
11059         default_promote_prototypes.
11060
11061 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
11062
11063         * system.h (SHARED_SECTION_ASM_OP): Poison.
11064         * varasm.c (data_section): Don't use SHARED_SECTION_ASM_OP.
11065         * doc/tm.texi (SHARED_SECTION_ASM_OP): Remove.
11066
11067 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
11068
11069         Bug 13856
11070         * c-decl.c (diagnose_mismatched_decls): Only give special
11071         treatment when olddecl is DECL_BUILT_IN, if C_DECL_INVISIBLE
11072         is also true.
11073         (merge_decls): Don't clear DECL_BUILT_IN_CLASS and
11074         DECL_FUNCTION_CODE when defining a built-in function.
11075         Don't update DECL_ESTIMATED_INSNS.
11076         * dwarf2out.c (dwarf2out_decl): Don't ignore built-in
11077         FUNCTION_DECLs.
11078         * tree.h: Delete DECL_ESTIMATED_INSNS.
11079         * tree-inline.c (struct inline_data): Delete inlined_insns field.
11080         (expand_call_inline, optimize_inline_calls): Don't update
11081         DECL_ESTIMATED_INSNS nor inlined_insns.
11082         * cgraphunit.c (cgraph_analyze_function): Don't update
11083         DECL_ESTIMATED_INSNS.
11084
11085 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
11086
11087         * c-common.c (shadow_warning): Delete.
11088         * c-common.h (free_parser_stacks, shadow_warning, sw_kind): Delete.
11089         * c-decl.c (warn_if_shadowing): Issue shadow warnings directly.
11090         * c-opts.c (c_common_parse_file): Don't call free_parser_stacks.
11091         * c-parse.in (free_parser_stacks): Delete.
11092
11093 2004-02-07  Nathanael Nerode  <neroden@gcc.gnu.org>
11094
11095         * Makefile.in, config/t-slibgcc-darwin, config/t-slibgcc-elf-ver,
11096         config/t-slibgcc-sld, config/mips/t-iris5-6, config/sh/t-linux:
11097         Use the top level mkinstalldirs, not the one in the gcc subdir.
11098         * mkinstalldirs: Remove (from the gcc subdir).
11099
11100 2004-02-07  Roger Sayle  <roger@eyesopen.com>
11101
11102         PR middle-end/13696
11103         * fold-const.c (fold_convert): New function to provide type
11104         conversion to the middle-end without using convert.
11105         (negate_expr, associate_trees, size_diffop, omit_one_operand,
11106         operand_equal_for_comparison_p, pedantic_omit_one_operand,
11107         invert_truthvalue, optimize_bit_field_compare, range_binop,
11108         decode_field_reference, make_range, build_range_check, unextend,
11109         fold_truthop, extract_muldiv_1, fold_mathfn_compare,
11110         fold_binary_op_with_conditional_arg, fold_inf_compare,
11111         fold_single_bit_test, fold, multiple_of_p): Replace all calls to
11112         convert with calls to fold_convert.
11113
11114 2004-02-07  Jan Hubicka  <jh@suse.cz>
11115
11116         * genrecog.c (find_operand): add extra argument stop.
11117         (validate_pattern): Verify that mach_dup is duplicating operand
11118         defined lexically earlier.
11119
11120 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
11121
11122         * config.gcc: Don't mention MAX_LONG_TYPE_SIZE.
11123         * system.h (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
11124         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Poison.
11125         * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
11126         config/ia64/ia64.h, config/ip2k/ip2k.h,
11127         config/iq2000/iq2000.h, config/mips/iris5.h,
11128         config/mips/mips.h, config/pa/pa-64.h, config/pa/pa.h,
11129         config/rs6000/aix51.h, config/rs6000/aix52.h,
11130         config/rs6000/darwin.h, config/rs6000/rs6000.h,
11131         config/s390/s390.h, config/sh/sh.h, config/sparc/freebsd.h,
11132         config/sparc/linux.h, config/sparc/linux64.h,
11133         config/sparc/netbsd-elf.h, config/sparc/sparc.h,
11134         config/xtensa/xtensa.h: Remove the definitions of
11135         MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE, and/or
11136         MAX_WCHAR_TYPE_SIZE.
11137         * doc/tm.texi (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
11138         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Remove.
11139
11140 2004-02-07  Stephane Carrez  <stcarrez@nerim.fr>
11141
11142         PR bootstrap/13990
11143         * config/m68hc11/m68hc11.md ("doloop_end"): Pass dummy arguments to
11144         gen_rtx_NE.
11145
11146 2004-02-07  Josef Zlomek  <zlomekj@suse.cz>
11147
11148         * var-tracking.c (vt_add_function_parameters): Surround checkings by
11149         #ifdef ENABLE_CHECKING and #endif.
11150
11151 2004-02-07  Roger Sayle  <roger@eyesopen.com>
11152
11153         * fold-const.c (negate_expr_p, negate_expr): Optimize -(A+B) into
11154         either (-A)-B or (-B)-A, if A or B is easily negated respectively.
11155         (fold) <MINUS_EXPR>: Optimize (A*C) - (B*C) -> (A-B)*C for both
11156         integer types and floating point with unsafe_math_optimizations.
11157         Add similar optimization for (A*C1) - (A*C2) -> A*(C1-C2).
11158         Optimize A - B as A + (-B), if B is easily negated.
11159
11160 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
11161
11162         * c-ppoutput.c, cfganal.c, diagnostic.h, print-rtl.c,
11163         config/darwin.c, config/darwin.h, config/ia64/ia64-c.c,
11164         config/m32r/linux.h, config/rs6000/ppc64-fp.c,
11165         config/sparc/openbsd.h, doc/makefile.texi, doc/passes.texi:
11166         Update copyright.
11167
11168 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
11169
11170         * c-ppoutput.c, var-tracking.c: Fix comment typos.
11171
11172 2004-02-06  James E Wilson  <wilson@specifixinc.com>
11173
11174         * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Only define for
11175         glibc 2.3 or better.
11176
11177 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
11178
11179         * doc/tm.texi (TARGET_FLOAT_LIB_COMPARE_RETURNS_BOOL): Change
11180         to FLOAT_LIB_COMPARE_RETURNS_BOOL.
11181
11182 2004-02-07  Alan Modra  <amodra@bigpond.net.au>
11183
11184         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Add darwin-ldouble.c.
11185         (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
11186         (SHLIB_MKMAP_OPTS): Delete.
11187         (TARGET_LIBGCC2_CFLAGS): Add -specs.
11188         (bispecs): Add rule.
11189         * config/rs6000/libgcc-ppc64.ver: New file.
11190         * config/rs6000/ppc64-fp.c (__fixtfdi, __floatditf): New functions.
11191         (__floatdidf, __floatdisf): Optimize multiply.
11192         (__fixunstfdi): New function.
11193         * config/rs6000/rs6000.c (rs6000_complex_function_value): Allow for
11194         real and imag parts larger than one register.
11195         (function_arg): Correct type of reg used when fp arg split partially
11196         to stack.
11197         * config/rs6000/darwin-ldouble.c: Protect with #if !_SOFT_FLOAT
11198         and __MACH__ or __powerpc64__.
11199
11200 2004-02-06  Roger Sayle  <roger@eyesopen.com>
11201             Ulrich Weigand  <uweigand@de.ibm.com>
11202
11203         * builtins.c (expand_builtin_signbit): Use extract_bit_field instead
11204         of gen_highpart or gen_lowpart when the floating point format is
11205         wider than the result mode.
11206
11207 2004-02-06  Andrew Pinski  <pinskia@physics.uc.edu>
11208
11209         * dwarf2out.c (loclabel_num): Move into #ifdef
11210         DWARF2_DEBUGGING_INFO.
11211
11212 2004-02-06  Ziemowit Laski  <zlaski@apple.com>
11213
11214         * objc/objc-act.c (build_super_template) the 'class' field of
11215         'struct _objc_super' shall be named 'super_class' #ifdef OBJCPLUS.
11216         (get_super_receiver): Likewise.
11217
11218 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
11219
11220         * reload1.c (check_eliminable_occurrences): Optimize the reset
11221         of can_eliminate.
11222         (eliminate_regs_in_insn): Likewise.
11223
11224 2004-02-06  Daniel Berlin <dberlin@dberlin.org>
11225             Josef Zlomek  <zlomekj@suse.cz>
11226
11227         * dwarf2out.c (struct gcc_debug_hooks): Call dwarf2out_begin_function
11228         at the beginning of function, call dwarf2out_var_location for
11229         NOTE_INSN_VAR_LOCATION note.
11230         (struct var_loc_node, struct var_loc_list_def, loclabel_num,
11231         decl_loc_table): New.
11232         (lookup_decl_loc): New function.
11233         (add_var_loc_to_decl): New function.
11234         (based_loc_descr): Added parameter can_use_fbreg, DW_OP_fbreg is used
11235         only if can_use_fbreg.
11236         (mem_loc_descriptor): Added parameter can_use_fbreg, pass it to other
11237         functions.
11238         (loc_descriptor): Likewise. Process VAR_LOCATION.
11239         (concat_loc_descriptor): Call loc_descriptor with can_use_fbreg == true.
11240         (loc_descriptor_from_tree): Call mem_loc_descriptor with
11241         can_use_fbreg == true.
11242         (add_location_or_const_value_attribute): Added parameter enum
11243         dwarf_attribute attr, generate attribute ATTR.  Create the location list.
11244         (add_bound_info): Call loc_descriptor with can_use_fbreg == true.
11245         (gen_formal_parameter_die): Call add_location_or_const_value_attribute
11246         with attr == DW_AT_location.
11247         (gen_subprogram_die): Generate the location list for DW_AT_frame_base
11248         if frame_base_decl is defined and has a location list.
11249         (gen_variable_die): Call add_location_or_const_value_attribute with
11250         attr == DW_AT_location.
11251         (dwarf2out_var_location): New function.
11252         (dwarf2out_begin_function): New function.
11253         (dwarf2out_init): Create decl_loc_table.
11254
11255 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
11256
11257         * loop.c (force_movables): Transitively increase the priorities of
11258         all insns forces by an insn, not just the first one.
11259
11260 2004-02-06  Josef Zlomek  <zlomekj@suse.cz>
11261             Daniel Berlin <dberlin@dberlin.org>
11262
11263         Josef Zlomek  <zlomekj@suse.cz>
11264         * Makefile.in (var-tracking.o): New.
11265         * common.opt (fvar-tracking): New.
11266         * flags.h (flag_var_tracking): New.
11267         * gengtype.c (adjust_field_rtx_def): NOTE_INSN_VAR_LOCATION was added.
11268         * opts.c (common_handle_option): Add OPT_fvar_tracking.
11269         * print-rtl.c (print_rtx): NOTE_INSN_VAR_LOCATION was added.
11270         * rtl.c (note_insn_name): Likewise.
11271         * rtl.def (VAR_LOCATION): New.
11272         * rtl.h (NOTE_VAR_LOCATION): New.
11273         (NOTE_VAR_LOCATION_DECL): New.
11274         (NOTE_VAR_LOCATION_LOC): New.
11275         (enum insn_note): NOTE_INSN_VAR_LOCATION was added.
11276         (variable_tracking_main): New exported function.
11277         * timevar.def (TV_VAR_TRACKING): New.
11278         * toplev.c (enum dump_file_index): Added DFI_vartrack.
11279         (dump_file): "vartrack" was added (-dV).
11280         (flag_var_tracking): New.
11281         (f_options): "var-tracking" was added.
11282         (rest_of_handle_variable_tracking): New function.
11283         (rest_of_compilation): Run variable tracking.
11284         (process_options): If user has not specified flag_var_tracking set it
11285         according to optimize, debug_info_level and debug_hooks.
11286         * tree.h (frame_base_decl): New.
11287         * var-tracking.c: New file.
11288         * config/ia64/ia64.c (ia64_flag_var_tracking): New variable.
11289         (ia64_override_options): Set flags to run variable tracking in machine
11290         dependent reorg instead of toplev.c.
11291         (ia64_reorg): Run variable tracking if wanted.
11292         * doc/invoke.texi: Mention variable tracking in -dV,
11293         add and -fvar-tracking.
11294         * doc/passes.texi: Added variable tracking pass.
11295
11296         Daniel Berlin <dberlin@dberlin.org>
11297         * debug.h (struct gcc_debug_hooks): Added var_location debug hook.
11298         * dbxout.c (dbx_debug_hooks): Likewise.
11299         (xcoff_debug): Likewise.
11300         * debug.c (do_nothing_debug_hooks): Likewise.
11301         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
11302         * dwarfout.c (dwarf_debug_hooks): Likewise.
11303         * sdbout.c (sdb_debug_hooks): Likewise.
11304         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
11305         * final.c (final_scan_insn): Call var_location debug hook for each
11306         NOTE_INSN_VAR_LOCATION.
11307
11308 2004-02-06  Jan Hubicka  <jh@suse.cz>
11309
11310         * flow.c (update_life_info): Allocate reg_deaths when called from
11311         scheudler.
11312         (attempt_auto_inc):  Update life ranges accordingly.
11313
11314 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
11315
11316         PR debug/11816
11317         * dwarf2out.c (gen_decl_die): Handle anonymous struct members.
11318
11319 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
11320
11321         * cfganal.c (flow_call_edges_add): Never split a libcall block.
11322
11323 2004-02-06  Daniel Berlin  <dberlin@dberlin.org>
11324
11325         * dwarf2out.c (output_loc_list): Don't use deltas if we have
11326         a separate line info table in use.
11327         Use the correct size for terminators.
11328         (output_die): Use offset, not delta.
11329
11330 2004-02-06  H.J. Lu  <hongjiu.lu@intel.com>
11331
11332         * doc/invoke.texi: Remove the pni option from -mfpmath=.
11333
11334 2004-02-06  Jan Hubicka  <jh@suse.cz>
11335
11336         * recog.c (split_all_insns): Do not update reg info.
11337         * regrename.c (regrename_optimize): Likewise.
11338         * toplev.c (rest_of_handle_reorder_blocks): Likewise.
11339         * flow.c (struct propagate_block_info): Add insn_num field.
11340         (reg_deaths): New array.
11341         (life_analysis): Free reg_deaths info.
11342         (allocate_reg_life_data): Allocate reg_deaths array.
11343         (propagate_one_insn): Use new array.
11344         (init_propagate_block): Initialize it.
11345         (free_propagate_block_info): Finish compuation of
11346         REG_LIVE_LENGTH
11347         (attempt_auto_inc): Sanity check that REG_INFO is not
11348         computed at same time.
11349         (mark_used_regs): Update new array.
11350
11351         * reg-stack.c (subst_stack_regs): Unshare clobbers before
11352         substitution.
11353
11354 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
11355
11356         * config/s390/s390.md (*extendsiqi2_short_displ): Change to
11357         *extendqisi2_short_displ.
11358
11359 2004-02-06  Alan Modra  <amodra@bigpond.net.au>
11360
11361         * doc/tm.texi (INIT_CUMULATIVE_ARGS): Update doco.
11362         * calls.c (expand_call): Pass n_named_args to INIT_CUMULATIVE_ARGS.
11363         (emit_library_call_value_1): Likewise pass nargs.
11364         * expr.c (block_move_libcall_safe_for_call_parm): Pass 3 here.
11365         * function.c (assign_parms): Pass -1 to INIT_CUMULATIVE_ARGS.
11366         * config/rs6000/rs6000.c (init_cumulative_args): Use n_named_args
11367         parameter instead of scanning TYPE_ARGS_TYPES to count args.
11368         * config/rs6000/rs6000-protos.h (init_cumulative_args): Update
11369         prototype.
11370         * config/rs6000/rs6000.h (INIT_CUMULATIVE_ARGS): Pass extra arg.
11371         (INIT_CUMULATIVE_INCOMING_ARGS): Set extra arg to 1000.
11372         (INIT_CUMULATIVE_LIBCALL_ARGS): Set extra arg to 0.
11373         * config/sh/sh.c (sh_output_mi_thunk): Pass 1 as n_named_args to
11374         INIT_CUMULATIVE_ARGS.
11375         * config/alpha/alpha.h (INIT_CUMULATIVE_ARGS): Update.
11376         * config/alpha/unicosmk.h, config/alpha/vms.h, config/arc/arc.h,
11377         config/arm/arm.h, config/avr/avr.h, config/c4x/c4x.h,
11378         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.h,
11379         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
11380         config/ia64/ia64.h, config/ip2k/ip2k.h, config/iq2000/iq2000.h,
11381         config/iq2000/iq2000.c, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
11382         config/m68k/m68k.h, config/mcore/mcore.h, config/mips/mips.h,
11383         config/mmix/mmix.h, config/mn10300/mn10300.h, config/ns32k/ns32k.h,
11384         config/pa/pa.h, config/pdp11/pdp11.h, config/s390/s390.h,
11385         config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
11386         config/v850/v850.h, config/vax/vax.h, config/xtensa/xtensa.h: Likewise.
11387
11388 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
11389
11390         * genemit.c (gen_exp) [CONST_INT]: Use const_int_rtx whenever
11391         possible.
11392
11393 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
11394
11395         * reload1.c (eliminate_regs_in_insn): If a set has a REG_EQUAL
11396         note containing (plus (reg) (const_int)), where reg is an
11397         eliminable reg, then perform the register elimination without
11398         depending on eliminate_regs().
11399
11400 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
11401
11402         * config/arc/arc.c (arc_return_in_memory): Check the return
11403         value of int_size_in_bytes against -1.  Don't check
11404         TREE_ADDRESSABLE.
11405         * config/avr/avr.c (avr_return_in_memory): Check the return
11406         value of int_size_in_bytes against -1.
11407         * config/ip2k/ip2k.c (ip2k_return_in_memory): Likewise.
11408         * config/m68hc11/m68hc11.c (m68hc11_return_in_memory):
11409         Likewise.
11410         * config/mcore/mcore.c (mcore_return_in_memory): Likewise.
11411         * config/stormy16/stormy16.c (xstormy16_return_in_memory):
11412         Likewise.
11413
11414 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
11415
11416         * config/frv/frv-protos.h: Remove the prototype for
11417         frv_setup_incoming_varargs.
11418         * config/frv/frv.c (TARGET_SETUP_INCOMING_VARARGS): New.
11419         (frv_setup_incoming_varargs): Make it static.
11420         * config/frv/frv.h (SETUP_INCOMING_VARARGS): Remove.
11421
11422 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
11423
11424         * config/fr30/fr30-protos.h: Remove the prototype for
11425         fr30_setup_incoming_varargs.
11426         Update the prototypes for fr30_num_arg_regs and
11427         fr30_function_arg_partial_nregs.
11428         * config/fr30/fr30.c (TARGET_STRUCT_VALUE_RTX): New.
11429         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
11430         (fr30_setup_incoming_varargs): Make it static.
11431         Add argument second_time.  Don't do anything when second_time
11432         is nonzero.
11433         (fr30_num_arg_regs): Change the type of the first argument to
11434         enum machine_mode.
11435         (fr30_function_arg_partial_nregs): Change the type of the
11436         second argument to enum machine_mode.
11437         * config/fr30/fr30.h (STRUCT_VALUE): Remove.
11438         (SETUP_INCOMING_VARARGS): Remove.
11439
11440 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
11441
11442         * config/arc/arc-protos.h: Remove the prototype for
11443         arc_setup_incoming_varargs.
11444         * config/arc/arc.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
11445         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
11446         (arc_setup_incoming_varargs): Make it static.
11447         (arc_external_libcall): Likewise.
11448         * config/arc/arc.h (SETUP_INCOMING_VARARGS): Remove.
11449         Remove the commented-out definition of
11450         ASM_OUTPUT_EXTERNAL_LIBCALL.
11451
11452 2004-02-05  SUGIOKA Toshinobu  <sugioka@itonet.co.jp>
11453
11454         * config/sh/t-linux (SHLIB_INSTALL): Prepend $$(DESTDIR)
11455         to $$(slibdir) in the installation commands.
11456
11457 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
11458
11459         * reload.c (refers_to_regno_for_reload_p): Index hard_regno_nregs
11460         with inner_regno, not regno.
11461         * rtlanal.c (refers_to_regno_p): Same.
11462
11463 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
11464
11465         * config.gcc: Remove i370 support.
11466
11467 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
11468
11469         * doc/install.texi:  Update automake and autoconf version
11470         requirements.  Note where to find gcj automake version.
11471
11472 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
11473
11474         * Makefile.in (generate-manpages): Move dependencies to ...
11475         (man): here.
11476         * doc/makefile.texi: Document new targets.
11477         * doc/sourcebuild.texi (Make-lang.in): Document new langhooks.
11478
11479 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
11480
11481         PR/13485
11482         Makefile.in (srcextra):  Add a level of indirection to ...
11483         (gcc.srcextra): ... here.
11484         (po-generated): Delete.
11485         (po/$(PACKAGE).pot: Use srcextra instead of po-generated.  Depend on
11486         options.c.
11487         (start.encap): Remove superfluous lang.srcextra dependency.
11488         objc/Make-lang.in (po-generated):  Delete.
11489
11490 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
11491
11492         * config/ia64/ia64.c (REG_GP): Remove.
11493
11494 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
11495
11496         * config/mips/iris5gas.h (PREFERRED_DEBUGGING_TYPE): Define.
11497
11498 2004-02-05  Devang Patel  <dpatel@apple.com>
11499
11500         * dwarf2out.c (force_type_die): Look up input type itself
11501         instead of root_type() of type.
11502
11503 2004-02-05  Andreas Krebbel  <krebbel1@de.ibm.com>
11504
11505         * config/s390/s390.md ("*tmqidi_ext"): New insn.
11506         ("*extendqidi2_short_displ", "*extendsiqi2_short_displ"): Old
11507         pre-reload splitters are transformed to post-reload
11508         define_insn_and_split patterns.
11509         ("*tmqisi_ext"): Renamed old "*tmqi_ext".
11510
11511 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
11512
11513         * config/cris/cris.h: Replace PROMOTE_PROTOTYPES with
11514         TARGET_PROMOTE_PROTOTYPES.
11515
11516 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
11517
11518         PR middle-end/13750
11519         Revert:
11520         2004-01-15  Geoffrey Keating  <geoffk@apple.com>
11521         PR pch/13361
11522         * c-typeck.c (constructor_asmspec): Delete.
11523         (struct initializer_stack): Delete field 'asmspec'.
11524         (start_init): Delete saving of asmspec.
11525         (finish_init): Don't update constructor_asmspec.
11526         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
11527         * stmt.c (expand_asm): Duplicate strings from tree.
11528         (expand_asm_operands): Likewise.
11529         * tree.c (tree_size): Update computation of size of STRING_CST.
11530         (make_node): Don't make STRING_CST nodes.
11531         (build_string): Allocate string with tree node.
11532         * tree.def (STRING_CST): Update comment.
11533         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
11534         (tree_string): Place contents of string in tree node.
11535         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
11536         from tree.
11537
11538 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
11539
11540         * diagnostic.h (DEFINE_DIAGNOSTIC_KIND): Change parameter M to
11541         msgid.
11542
11543 2004-02-05  Dorit Naishlos  <dorit@il.ibm.com>
11544
11545         * config/rs6000/altivec.md (*movv4si_internal): At least one
11546         operand must be altivec_register_operand.
11547         (*movv8hi_internal1): Likewise.
11548         (*movv16qi_internal1): Likewise.
11549         (*movv4sf_internal1): Likewise.
11550
11551 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
11552
11553         * configure.ac (gcc_cv_as_powerpc_mfcrf): Correct test for mfcr.
11554         * configure: Regenerate.
11555
11556 2004-02-05  Jonathan Wakely  <redi@gcc.gnu.org>
11557
11558         * doc/install.texi: Update description of --gxx-include-dir to
11559         give correct default value.
11560
11561 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
11562
11563         * config/h8300/h8300.h (REG_OK_FOR_BASE_NONSTRICT_P): Replace
11564         8 with MAC_REG.
11565
11566 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
11567
11568         * config/pa/pa.c (emit_hpdiv_const): Replace gen_rtx with
11569         gen_rtx_PARALLEL.
11570
11571 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
11572
11573         * emit-rtl.c: Update the comment about the file.
11574
11575 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
11576
11577         * sourcebuild.texi (Test Idioms): Update testcase naming
11578         conventions.
11579
11580 2004-02-04  Per Bothner  <per@bothner.com>
11581
11582         Partially revert/redo 2003-10-01 change; fix -fworking-directory.
11583         * c-ppoutput.c (pp_dir_change):  New function.
11584         * c-common.h (pp_dir_change):  New declaration.
11585         * cpplib.h (struct cpp_options):  Remove working_directory field.
11586         * cppinit.c (cpp_find_main_file, cpp_push_main_file):  Merge back to
11587         (cpp_read_main_file):  as before 10-01.  Call _cpp_stack_file.
11588         Don't handle -fworking_directory here, but in c_common_post_options.
11589         (read_original_directory): Don't back up when done.
11590         Don't clear no-longer used working_directory flag.
11591         * cpplib.h:  Update declarations to match.
11592         * c-lex.c (cb_dir_change):  Move to c-opts.c.
11593         (init_c_lex):  Don't set dir_change callback here, since we want
11594         to set it even if flag_preprocess_only.
11595         * c-opts.c (cb_dir_change):  Function moved from c-lex.c.
11596         (c_common_post_options):  Set dir_change callback.
11597         Call pp_dir_change if approporiate.
11598         (finish_options):  Don't call cpp_find_main_file here.  Hence remove
11599         unneeded parameter and result. Do LC_RENAME for <built-in>.
11600         (c_common_post_options):  Call cpp_read_main_file here instead.
11601         (c_common_init):  Update accordingly.
11602         (push_command_line_include):  Don't cpp_push_main_file.
11603         Do LC_RENAME rather than LC_LEASE to get back to main file.
11604         Compared to pre-10-01 version, inline cpp_rename_to_main_file.
11605         (c_common_parse_file):  Call cpp_read_main_file for subsequent main
11606         files, but call finish_options for all files.
11607         * c-opts.c (sanitize_cpp_opts):  Don't set cpp_opts->working_directory.
11608         * fix-header.c (read_scan_file):  Call cpp_read_main_file instead of
11609         cpp_find_main_file + cpp_push_main_file.
11610         * c-lex.c (fe_file_change):  Don't set main_input_filename here.
11611         * opts.c (handle_options):  Only set main_input_filename first time.
11612
11613 2004-02-05  Ian Lance Taylor  <ian@wasabisystems.com>
11614
11615         * config/arm/arm.h (REG_CLASS_NAMES): Add missing comma.
11616
11617 2004-02-04  Geoffrey Keating  <geoffk@apple.com>
11618
11619         * reload.c (find_equiv_reg): When checking for register overlap,
11620         don't index hard_regno_nregs with a pseudo-reg.
11621
11622 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
11623
11624         * config/s390/s390.c (s390_trampoline_template): Remove gen_rtx().
11625
11626 2004-02-04  David Edelsohn  <edelsohn@gnu.org>
11627
11628         * reload.c (refers_to_regno_for_reload_p): Test regno, not inner_regno,
11629         against FIRST_PSEUDO_REGISTER.
11630
11631 2004-02-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
11632
11633         * Makefile.in: Move target, host overrides after per-language
11634         fragments.
11635
11636         * config/mips/t-iris5-as (FORCE_DEBUG_ADAFLAGS): Clear.
11637         (GNATLIBCFLAGS): Remove -g.
11638
11639 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
11640
11641         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
11642         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
11643         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
11644         config/m32r/m32r.c, config/ns32k/ns32k.c, config/pa/pa.c,
11645         config/pdp11/pdp11.c, config/rs6000/rs6000.c,
11646         config/sparc/sparc.c, config/vax/vax.c: Revert the
11647         replacements of "FALLTHRU" with "Fall through" done in the
11648         previous patch.
11649
11650 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
11651
11652         * config/darwin.c, config/darwin.h, config/freebsd-spec.h,
11653         config/arm/arm.c, config/arm/arm.md,
11654         config/cris/cris-protos.h, config/fr30/fr30.c,
11655         config/fr30/fr30.h, config/h8300/h8300.c, config/i386/i386.h,
11656         config/i860/i860.c, config/i860/i860.h, config/ia64/ia64-c.c,
11657         config/ia64/ia64.c, config/ia64/ia64.h, config/ip2k/ip2k.h,
11658         config/ip2k/ip2k.md, config/ip2k/libgcc.S,
11659         config/m32r/linux.h, config/m32r/m32r.c, config/m32r/m32r.h,
11660         config/m68k/m68k.c, config/m68k/netbsd-elf.h,
11661         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.md,
11662         config/ns32k/netbsd.h, config/ns32k/ns32k.c,
11663         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
11664         config/rs6000/darwin-ldouble.c, config/s390/s390.h,
11665         config/s390/s390.md, config/sparc/netbsd-elf.h,
11666         config/sparc/openbsd.h, config/sparc/sparc.c,
11667         config/xtensa/lib2funcs.S: Fix comment formatting.
11668
11669 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
11670
11671         * config/alpha/alpha.c, config/arc/arc.c,
11672         config/arm/arm-cores.def, config/arm/arm.c, config/arm/arm.h,
11673         config/arm/arm1026ejs.md, config/arm/arm1136jfs.md,
11674         config/arm/arm926ejs.md, config/arm/vfp.md, config/avr/avr.c,
11675         config/c4x/c4x.c, config/cris/cris.c, config/frv/frv.md,
11676         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
11677         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
11678         config/iq2000/iq2000.c, config/m32r/m32r.c,
11679         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.h,
11680         config/ns32k/ns32k.c, config/pa/pa.c, config/pdp11/pdp11.c,
11681         config/rs6000/darwin-ldouble.c, config/rs6000/rs6000.c,
11682         config/rs6000/rs6000.h, config/sparc/sparc.c,
11683         config/vax/vax.c: Fix comment typos.  Follow spelling
11684         conventions.
11685
11686 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
11687
11688         * alloc-pool.h, c-convert.c, c-lang.c, c-tree.h,
11689         caller-save.c, df.h, genconfig.c, global.c, lcm.c,
11690         ra-rewrite.c, ra.c, regclass.c, regs.h, resource.c,
11691         sched-rgn.c, config/arm/aof.h, config/arm/cirrus.md,
11692         config/arm/fpa.md, config/arm/iwmmxt.md,
11693         config/arm/netbsd-elf.h, config/arm/netbsd.h,
11694         config/m68hc11/m68hc11.md, config/mips/iris5.h,
11695         config/mn10300/mn10300.md, config/rs6000/altivec.md,
11696         config/sparc/netbsd-elf.h: Update copyright.
11697
11698 2004-02-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
11699
11700         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
11701         for all modes whose size is greater than 8 bytes if ARCH32.
11702         (sparc_va_arg): Handle all modes whose size is greater than 8 bytes
11703         by reference if ARCH32.
11704
11705 2004-02-04  Aldy Hernandez  <aldyh@redhat.com>
11706
11707         * cgraphunit.c (cgraph_postorder): Fix typo in comment.
11708
11709 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
11710
11711         * config/s390/s390.md ("*la_64" + peepholes, "reload_indi"): Move
11712         to before adddi3 insn patterns.
11713         ("*la_31" + peepholes, "*la_31_and", "*la_31_and_cc", "force_la_31",
11714         "reload_insi"): Move to before addsi3 insn patterns.
11715
11716 2004-02-04  Mark Mitchell  <mark@codesourcery.com>
11717
11718         * calls.c (initialize_argument_information): Add CALL_FROM_THUNK_P
11719         parameter.  Use it instead of current_function_is_thunk.
11720         * function.h (struct function): Update documentation for is_thunk.
11721         * tree.h (CALL_FROM_THUNK_P): New macro.
11722         * config/alpha/alpha.c (alpha_sa_mask): Do not check
11723         no_new_pseudos when testing current_function_is_thunk.
11724         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likeiwse.
11725
11726 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
11727
11728         * doc/tm.texi: Replace SETUP_INCOMING_VARARGS with
11729         TARGET_SETUP_INCOMING_VARARGS.
11730
11731 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
11732
11733         * emit-rtl.c (gen_rtx): Remove.
11734         * genattrtab.c: Don't mention gen_rtx in a comment.
11735         * rtl.h: Remove the prototype for gen_rtx.
11736         * doc/md.texi: Replace gen_rtx with gen_rtx_REG.
11737
11738 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
11739
11740         * config/arc/arc.h, config/fr30/fr30.h
11741         (SETUP_INCOMING_VARARGS): Remove the target-independent
11742         comments.
11743         * doc/tm.texi: Don't mention deprecated target macros.
11744
11745 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
11746
11747         * config/fr30/fr30.h (FUNCTION_VALUE): Remove the
11748         target-independent comment.
11749
11750 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
11751
11752         * doc/interface.texi, doc/tm.texi, doc/trouble.texi: Don't
11753         mention deprecated target macros.
11754
11755 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
11756
11757         * config.gcc: Remove obsolete ports and configurations.
11758         * config/linux-aout.h, config/netware.h,
11759         config/t-linux-gnulibc1, config/d30v/abi,
11760         config/d30v/d30v-protos.h, config/d30v/d30v.c,
11761         config/d30v/d30v.h, config/d30v/d30v.md,
11762         config/d30v/libgcc1.asm, config/d30v/t-d30v,
11763         config/dsp16xx/dsp16xx-modes.def,
11764         config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c,
11765         config/dsp16xx/dsp16xx.h, config/dsp16xx/dsp16xx.md,
11766         config/i370/README, config/i370/i370-c.c,
11767         config/i370/i370-protos.h, config/i370/i370.c,
11768         config/i370/i370.h, config/i370/i370.md, config/i370/linux.h,
11769         config/i370/mvs.h, config/i370/oe.h, config/i370/t-i370,
11770         config/i386/freebsd-aout.h, config/i386/linux-aout.h,
11771         config/i386/moss.h, config/i386/netware.h,
11772         config/i386/svr3.ifile, config/i386/svr3dbx.h,
11773         config/i386/svr3gas.h, config/i386/svr3z.ifile,
11774         config/i386/t-udk, config/i386/udk.h, config/i386/vsta.h,
11775         config/i960/i960-c.c, config/i960/i960-coff.h,
11776         config/i960/i960-modes.def, config/i960/i960-protos.h,
11777         config/i960/i960.c, config/i960/i960.h, config/i960/i960.md,
11778         config/i960/rtems.h, config/i960/t-960bare,
11779         config/m68k/hp310.h, config/m68k/hp320.h,
11780         config/m68k/hp320base.h, config/m68k/m68kv4.h,
11781         config/m68k/netbsd.h, config/m68k/sgs.h, config/m68k/t-hp320:
11782         Remove.
11783         * doc/extend.texi, doc/install.texi, doc/invoke.texi,
11784         doc/md.texi: Remove mentions of obsolete ports.
11785
11786 2004-02-04  Jan Hubicka  <jh@suse.cz>
11787
11788         * alias.c (find_base_term, get_addr):  Do not dereference NULL
11789         pointer when all VALUE's locations has been invalidated.
11790         (rtx_equal_for_memref_p): Simplify checking of VALUEs.
11791
11792 2004-02-03  Wolfgang Bangerth  <bangerth@dealii.org>
11793
11794         * doc/invoke.texi (x86 options): Fix spelling/wording.
11795
11796 2004-02-03  Richard Sandiford  <rsandifo@redhat.com>
11797
11798         * config/mips/iris5.h (ASM_OUTPUT_ASCII): Use mips_output_ascii to
11799         put the original string in a comment.
11800         * config/mips/mips-protos.h (mips_output_ascii): Add prefix argument.
11801         * config/mips/mips.c (mips_output_ascii): Likewise.
11802         * config/mips/mips.h (ASM_OUTPUT_ASCII): Adjust accordingly.
11803
11804 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
11805
11806         * system.h (GIV_SORT_CRITERION): Poison.
11807         * config/avr/avr.h (GIV_SORT_CRITERION): Remove.
11808         * config/ip2k/ip2k.h (GIV_SORT_CRITERION): Likewise.
11809
11810 2004-02-03  Roger Sayle  <roger@eyesopen.com>
11811
11812         PR target/9348
11813         * expr.c (expand_expr_real) <MULT_EXPR>:  When performing widening
11814         multiplies with a multiplication of the wrong signedness, its the
11815         signedness of the multiplication that we've performed that needs to
11816         be passed to expand_mult_highpart_adjust.  Avoid emitting a nop-move
11817         if expand_mult_highpart_adjust places the result in target.
11818
11819 2004-02-03  Richard Henderson  <rth@redhat.com>
11820
11821         * varasm.c (const_desc_rtx_sym_eq): Compare symbol strings.
11822
11823 2004-02-03  J"orn Rennecke <joern.rennecke@superh.com>
11824
11825         * config.gcc (sh[234]l): Use little endian fragments.
11826
11827 2004-02-03  Paul Koning  <pkoning@equallogic.com>
11828
11829         * config/pdp11/pdp11-modes.def: Add RESET_FLOAT_FORMAT calls.
11830         * config/pdp11/pdp11-protos.h (legitimate_const_double_p): Add.
11831         * config/pdp11/pdp11.c (encode_pdp11_f, decode_pdp11_f,
11832         encode_pdp11_d, decode_pdp11_d): New functions to handle PDP11
11833         floating point format.
11834         (pdp11_f_format, pdp11_d_format): New real_format descriptors for
11835         the above functions.
11836         (output_move_quad): Output float values in correct target format.
11837         (legitimate_const_double_p): New function.
11838         * config/pdp11/pdp11.h: Fix typos.
11839         (FLOAT_WORDS_BIG_ENDIAN): Add definition.
11840         (TARGET_FLOAT_FORMAT): Ditto.
11841         (pdp11_f_format, pdp11_d_format): Add external declarations.
11842         (MAX_REGS_PER_ADDRESS): Corrected.
11843         (LEGITIMATE_CONSTANT_P): Use legitimate_const_double_p().
11844         (PRINT_OPERAND): Output float literals in target format.
11845
11846 2004-02-03  Mark Mitchell  <mark@codesourcery.com>
11847
11848         PR c++/13975
11849         * tree.h (enum tree_index): Add TI_PUBLIC, TI_PROTECTED, and
11850         TI_PRIVATE.
11851         (access_public_node): Redefine.
11852         (access_protected_node): Likewise.
11853         (access_private_node): Likewise.
11854         * tree.c (build_common_tree_nodes): Create access_public_node,
11855         access_protected_node, and access_private_node.
11856
11857 2004-02-03  Steve Ellcey  <sje@cup.hp.com>
11858
11859         * config/ia64/ia64.h (MASK_INLINE_INT_DIV_LAT): Change value.
11860         (MASK_INLINE_INT_DIV_THR): Ditto.
11861         (MASK_INLINE_SQRT_LAT): Ditto.
11862         (MASK_INLINE_SQRT_THR): Ditto.
11863         (MASK_DWARF2_ASM): Ditto.
11864         (MASK_EARLY_STOP_BITS): Ditto.
11865
11866 2004-02-02  Paul Brook  <paul@codesourcery.com>
11867
11868         Merge from csl-arm-branch.
11869
11870         2004-01-30  Paul Brook  <paul@codesourcery.com>
11871
11872         * aof.h (REGISTER_NAMES): Add vfp reg names
11873         (ADDITIONAL_REGISTER_NAMES): Ditto.
11874         * aout.h (REGISTER_NAMES): Ditto.
11875         (ADDITIONAL_REGISTER_NAMES): Ditto.
11876         * arm-protos.h: Update/Add Prototypes.
11877         * arm.c (init_fp_table): Rename from init_fpa_table. Update users.
11878         Only allow 0.0 for VFP.
11879         (fp_consts_inited): Rename from fpa_consts_inited.  Update users.
11880         (values_fp): Rename from values_fpa.  Update Users.
11881         (arm_const_double_rtx): Rename from const_double_rtx_ok_for_fpa.
11882         Update users.  Only check valid constants for this hardware.
11883         (arm_float_rhs_operand): Rename from fpa_rhs_operand.  Update Users.
11884         Only allow consts for FPA.
11885         (arm_float_add_operand): Rename from fpa_add_operand.  Update users.
11886         Only allow consts for FPA.
11887         (use_return_insn): Check for saved VFP regs.
11888         (arm_legitimate_address_p): Handle VFP DFmode addressing.
11889         (arm_legitimize_address): Ditto.
11890         (arm_general_register_operand): New function.
11891         (vfp_mem_operand): New function.
11892         (vfp_compare_operand): New function.
11893         (vfp_secondary_reload_class): New function.
11894         (arm_float_compare_operand): New function.
11895         (vfp_print_multi): New function.
11896         (vfp_output_fstmx): New function.
11897         (vfp_emit_fstm): New function.
11898         (arm_output_epilogue): Output VPF reg restore code.
11899         (arm_expand_prologue): Output VFP reg save code.
11900         (arm_print_operand): Add 'P'.
11901         (arm_hard_regno_mode_ok): Return modes for VFP regs.
11902         (arm_regno_class): Return classes for VFP regs.
11903         (arm_compute_initial_elimination_offset): Include space for VFP regs.
11904         (arm_get_frame_size): Ditto.
11905         * arm.h (FIXED_REGISTERS): Add VFP regs.
11906         (CALL_USED_REGISTERS): Ditto.
11907         (CONDITIONAL_REGISTER_USAGE): Enable VFP regs.
11908         (FIRST_VFP_REGNUM): Define.
11909         (LAST_VFP_REGNUM): Define.
11910         (IS_VFP_REGNUM): Define.
11911         (FIRST_PSEUDO_REGISTER): Include VFP regs.
11912         (HARD_REGNO_NREGS): Handle VFP regs.
11913         (REG_ALLOC_ORDER): Add VFP regs.
11914         (enum reg_class): Add VFP_REGS.
11915         (REG_CLASS_NAMES): Ditto.
11916         (REG_CLASS_CONTENTS): Ditto.
11917         (CANNOT_CHANGE_MODE_CLASS) Handle VFP Regs.
11918         (REG_CLASS_FROM_LETTER): Add 'w'.
11919         (EXTRA_CONSTRAINT_ARM): Add 'U'.
11920         (EXTRA_MEMORY_CONSTRAINT): Define.
11921         (SECONDARY_OUTPUT_RELOAD_CLASS): Handle VFP regs.
11922         (SECONDARY_INPUT_RELOAD_CLASS): Ditto.
11923         (REGISTER_MOVE_COST): Ditto.
11924         (PREDICATE_CODES): Add arm_general_register_operand,
11925         arm_float_compare_operand and vfp_compare_operand.
11926         * arm.md (various): Rename as above.
11927         (divsf3): Enable when TARGET_VFP.
11928         (divdf3): Ditto.
11929         (movdfcc): Ditto.
11930         (sqrtsf2): Ditto.
11931         (sqrtdf2): Ditto.
11932         (arm_movdi): Disable when TARGET_VFP.
11933         (arm_movsi_insn): Ditto.
11934         (movsi): Only split with general regs.
11935         (cmpsf): Use arm_float_compare_operand.
11936         (push_fp_multi): Restrict to TARGET_FPA.
11937         (vfp.md): Include.
11938         * vfp.md: New file.
11939         * fpa.md (various): Rename as above.
11940         * doc/md.texi: Document ARM w and U constraints.
11941
11942         2004-01-15  Paul Brook  <paul@codesourcery.com>
11943
11944         * config.gcc: Add with_fpu.  Allow with-float=softfp.
11945         * config/arm/arm.c (arm_override_options): Rename *-s to *s.
11946         Break out of loop when we find a float-abi.  Fix typo.
11947         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "fpu".
11948         Set -mfloat-abi=.
11949         * doc/install.texi: Document --with-fpu.
11950
11951         2003-01-14  Paul Brook  <paul@codesourcery.com>
11952
11953         * config.gcc (with_arch): Add armv6.
11954         * config/arm/arm.h: Rename TARGET_CPU_*_s to TARGET_CPU_*s.
11955         * config/arm/arm.c (arm_overrride_options): Ditto.
11956
11957         2004-01-08  Richard Earnshaw  <rearnsha@arm.com>
11958
11959         * arm.c (FL_ARCH3M): Renamed from FL_FAST_MULT.
11960         (FL_ARCH6): Renamed from FL_ARCH6J.
11961         (arm_arch3m): Renamed from arm_fast_multiply.
11962         (arm_arch6): Renamed from arm_arch6j.
11963         * arm.h: Update all uses of above.
11964         * arm-cores.def: Likewise.
11965         * arm.md: Likewise.
11966
11967         * arm.h (CPP_CPU_ARCH_SPEC): Emit __ARM_ARCH_6J__ define for armV6j,
11968         not arm6j.  Add entry for arch armv6.
11969
11970         2004-01-07  Richard Earnshaw  <rearnsha@arm.com>
11971
11972         * arm.c (arm_emit_extendsi): Delete.
11973         * arm-protos.h (arm_emit_extendsi): Delete.
11974         * arm.md (zero_extendhisi2): Also handle zero-extension of
11975         non-subregs.
11976         (zero_extendqisi2, extendhisi2, extendqisi2): Likewise.
11977         (thumb_zero_extendhisi2): Only match if not v6.
11978         (arm_zero_extendhisi2, thumb_zero_extendqisi2, arm_zero_extendqisi2)
11979         (thumb_extendhisi2, arm_extendhisi2, arm_extendqisi)
11980         (thumb_extendqisi2): Likewise.
11981         (thumb_zero_extendhisi2_v6, arm_zero_extendhisi2_v6): New patterns.
11982         (thumb_zero_extendqisi2_v6, arm_zero_extendqisi2_v6): New patterns.
11983         (thumb_extendhisi2_insn_v6, arm_extendhisi2_v6): New patterns.
11984         (thumb_extendqisi2_v6, arm_extendqisi_v6): New patterns.
11985         (arm_zero_extendhisi2_reg, arm_zero_extendqisi2_reg): Delete.
11986         (arm_extendhisi2_reg, arm_extendqisi2_reg): Delete.
11987         (arm_zero_extendhisi2addsi): Remove subreg.  Add attributes.
11988         (arm_zero_extendqisi2addsi, arm_extendhisi2addsi): Likewise.
11989         (arm_extendqisi2addsi): Likewise.
11990
11991         2003-12-31  Mark Mitchell  <mark@codesourcery.com>
11992
11993         Revert this change:
11994         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
11995         + REG addressing modes.
11996
11997         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
11998         + REG addressing modes.
11999
12000         2003-12-30  Mark Mitchell  <mark@codesourcery.com>
12001
12002         * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept
12003         CONSTANT_P_RTX.
12004
12005         2003-30-12  Paul Brook  <paul@codesourcery.com>
12006
12007         * longlong.h: protect arm inlines with !defined (__thumb__)
12008
12009         2003-30-12  Paul Brook  <paul@codesourcery.com>
12010
12011         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Always define __arm__.
12012
12013         2003-12-30  Nathan Sidwell  <nathan@codesourcery.com>
12014
12015         * builtins.c (expand_builtin_apply_args_1): Fix typo in previous
12016         change.
12017
12018         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
12019
12020         * builtins.c (expand_builtin_apply_args_1): Add pretend args size
12021         to the virtual incoming args pointer for downward stacks.
12022
12023         2003-12-29  Paul Brook  <paul@codesourcery.com>
12024
12025         * config/arm/arm-cores.def: Add cost function.
12026         * config/arm/arm.c (arm_*_rtx_costs): New functions.
12027         (arm_rtx_costs): Remove
12028         (struct processors): Add rtx_costs field.
12029         (all_cores, all_architectures): Ditto.
12030         (arm_override_options): Set targetm.rtx_costs.
12031         (thumb_rtx_costs): New function.
12032         (arm_rtx_costs_1): Remove cases handled elsewhere.
12033         * config/arm/arm.h (processor_type): Add COSTS parameter.
12034
12035         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
12036
12037         * config/arm/arm.md (generic_sched): arm926 has its own scheduler.
12038         (arm926ejs.md): Include it.
12039         * config/arm/arm926ejs.md: New pipeline description.
12040
12041         2003-12-24  Paul Brook  <paul@codesourcery.com>
12042
12043         * config/arm/arm.c (arm_arch6j): New variable.
12044         (arm_override_options): Set it.
12045         (arm_emit_extendsi): New function.
12046         * config/arm/arm-protos.h (arm_emit_extendsi): Add prototype.
12047         * config/arm/arm.h (arm_arch6j): Declare.
12048         * config/arm/arm.md: Add sign/zero extend insns.
12049
12050         2003-12-23  Paul Brook  <paul@codesourcery.com>
12051
12052         * config/arm/arm.c (all_architectures): Add armv6.
12053         * doc/invoke.texi: Document it.
12054
12055         2003-12-19  Paul Brook  <paul@codesourcery.com>
12056
12057         * config/arm/arm.md: Add load1 and load_byte "type" attrs.  Modify
12058         insn patterns to match.
12059         * config/arm/arm-generic.md: Ditto.
12060         * config/arm/cirrus.md: Ditto.
12061         * config/arm/fpa.md: Ditto.
12062         * config/amm/iwmmxt.md: Ditto.
12063         * config/arm/arm1026ejs.md: Ditto.
12064         * config/arm/arm1135jfs.md: Ditto.  Add insn_reservation and bypasses
12065         for 11_loadb.
12066
12067         2003-12-18  Nathan Sidwell  <nathan@codesourcery.com>
12068
12069         * config/arm/arm-protos.h (arm_no_early_alu_shift_value_dep): Declare.
12070         * config/arm/arm.c (arm_adjust_cost): Check shift cost for
12071         TYPE_ALU_SHIFT and TYPE_ALU_SHIFT_REG.
12072         (arm_no_early_store_addr_dep, arm_no_early_alu_shift_dep,
12073         arm_no_early_mul_dep): Correctly deal with conditional execution,
12074         parallels and single shift operations.
12075         (arm_no_early_alu_shift_value_dep): Define.
12076         * arm.md (attr type): Replace 'normal' with 'alu',
12077         'alu_shift' and 'alu_shift_reg'.
12078         (attr core_cycles): Adjust.
12079         (*addsi3_carryin_shift, andsi_not_shiftsi_si, *arm_shiftsi3,
12080         *shiftsi3_compare0, *notsi_shiftsi, *notsi_shiftsi_compare0,
12081         *not_shiftsi_compare0_scratch, *cmpsi_shiftsi, *cmpsi_shiftsi_swp,
12082         *cmpsi_neg_shiftsi, *arith_shiftsi, *arith_shiftsi_compare0,
12083         *arith_shiftsi_compare0_scratch, *sub_shiftsi,
12084         *sub_shiftsi_compare0, *sub_shiftsi_compare0_scratch,
12085         *if_shift_move, *if_move_shift, *if_shift_shift): Set type
12086         attribute appropriately.
12087         * config/arm/arm1026ejs.md (alu_op): Adjust.
12088         (alu_shift_op, alu_shift_reg_op): New.
12089         * config/arm/arm1136.md: Add better bypasses for early
12090         registers. Remove load[234] and store[234] bypasses.
12091         (11_alu_op): Adjust.
12092         (11_alu_shift_op, 11_alu_shift_reg_op): New.
12093
12094         2003-12-15  Nathan Sidwell  <nathan@codesourcery.com>
12095
12096         * config/arm/arm-protos.h (arm_no_early_store_addr_dep,
12097         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Declare.
12098         * config/arm/arm.c (arm_no_early_store_addr_dep,
12099         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Define.
12100         * config/arm/arm1026ejs.md: Add load-store bypass.
12101         * config/arm/arm1136jfs.md (11_alu_op): Take 2 cycles.
12102         Add bypasses between instructions.
12103
12104         2003-12-10  Paul Brook  <paul@codesourcery.com>
12105
12106         * config/arm/arm.c (arm_fpu_model): New variable.
12107         (arm_fload_abi): New variable.
12108         (target_fpe_name): Rename from target_fp_name.
12109         (target_fpu_name): New variable.
12110         (arm_is_cirrus): Remove.
12111         (fpu_desc): New struct.
12112         (all_fpus): Define.
12113         (pf_model_for_fpu): Define.
12114         (all_loat_abis): Define.
12115         (arm_override_options): Set fp arch flags based on -mfpu=
12116         and -float-abi=.
12117         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
12118         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
12119         (*): Use new TARGET_* flags.
12120         * config/arm/arm.h (TARGET_ANY_HARD_FLOAT): Remove.
12121         (TARGET_HARD_FLOAT): No longer implies TARGET_FPA.
12122         (TARGET_SOFT_FLOAT): Ditto.
12123         (TARGET_SOFT_FLOAT_ABI): New.
12124         (TARGET_MAVERICK): Rename from TARGET_CIRRUS.  No longer implies
12125         TARGET_HARD_FLOAT.
12126         (TARGET_VFP): No longer implies TARGET_HARD_FLOAT.
12127         (TARGET_OPTIONS): Add -mfpu=.
12128         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
12129         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
12130         (arm_pf_model): Define.
12131         (arm_float_abi_type): Define.
12132         (fputype): Add FPUTYPE_VFP.  Change SOFT_FPA->NONE
12133         * config/arm/arm.md: Use new TARGET_* flags.
12134         * config/arm/cirrus.md: Ditto.
12135         * config/arm/fpa.md: Ditto.
12136         * config/arm/elf.h (ASM_SPEC): Pass -mfloat-abi= and -mfpu=.
12137         * config/arm/semi.h (ASM_SPEC): Ditto.
12138         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Specify vfp.
12139         (FPUTYPE_DEFAULT): Set to VFP.
12140         * doc/invoke.texi: Document -mfpu= and -mfloat-abi=.
12141
12142         2003-11-22  Phil Edwards  <phil@codesourcery.com>
12143
12144         PR target/12476
12145         * config/arm/arm.c (arm_output_mi_thunk):  In Thumb mode, use
12146         'bx' instead of 'b' to avoid branch range restrictions.  Output
12147         the thunk immediately before the thunked-to function.
12148         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME):  Do not emit
12149         .thumb_func if a thunk is being generated.  Emit .code 16 along
12150         with .thumb_func if a thunk is not being generated.
12151
12152         2003-11-15  Nicolas Pitre <nico@cam.org>
12153
12154         * config/arm/arm.md (ashldi3, arm_ashldi3_1bit, ashrdi3,
12155         arm_ashrdi3_1bit, lshrdi3, arm_lshrdi3_1bit): New patterns.
12156         * config/arm/iwmmxt.md (ashrdi3_iwmmxt): Renamed from ashrdi3.
12157         (lshrdi3_iwmmxt): Renamed from lshrdi3.
12158         * config/arm/arm.c (IWMMXT_BUILTIN2): Renamed argument accordingly.
12159
12160         2003-11-12  Steve Woodford  <scw@wasabisystems.com>
12161             Ian Lance Taylor  <ian@wasabisystems.com>
12162
12163         * config/arm/lib1funcs.asm (ARM_DIV_BODY, ARM_MOD_BODY): Add new
12164         code for __ARM_ARCH__ >= 5 && ! defined (__OPTIMIZE_SIZE__).
12165
12166         2003-11-05  Phil Edwards  <phil@codesourcery.com>
12167
12168         * config/arm/arm.md (insn):  Add new V6 instruction names.
12169         (generic_sched):  New attr.
12170         * config/arm/arm-generic.md:  Use generic_sched here.
12171         * config/arm/arm1026ejs.md:  Do not model fetch/issue/decode
12172         stages of pipeline.  Adjust latency counts accordingly.
12173         * config/arm/arm1136jfs.md:  New file.
12174
12175         2003-10-28  Mark Mitchell  <mark@codesourcery.com>
12176
12177         * config/arm/arm.h (processor_type): New enumeration type.
12178         (CPP_ARCH_DEFAULT_SPEC): Set appropriately for ARM 926EJ-S,
12179         ARM1026EJ-S, ARM1136J-S, and ARM1136JF-S processor cores.
12180         (CPP_CPU_ARCH_SPEC): Likewise.
12181         * config/arm/arm.c (arm_tune): New variable.
12182         (all_cores): Use cores.def.
12183         (all_architectures): Add representative processor.
12184         (arm_override_options): Restructure way in which tuning
12185         information is deduced.
12186         * arm.md: Update "insn" and "type" attributes throughout.
12187         (insn): New attribute.
12188         (type): Compute "mult" from "insn" attribute.  Add load2,
12189         load3, load4 alternatives.
12190         (arm automaton): Move to arm-generic.md.
12191         * config/arm/arm-cores.def: New file.
12192         * config/arm/arm-generic.md: Likewise.
12193         * config/arm/arm1026ejs.md: Likewise.
12194
12195 2004-02-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
12196
12197         * doc/invoke.texi (SPARC options): Remove -mflat and
12198         all -mxxx (xxx:chip) options.
12199         * config/sparc/aout.h (DBX_REGISTER_NUMBER): Delete.
12200         * config/sparc/litecoff.h (DBX_REGISTER_NUMBER): Likewise.
12201         * config/sparc/netbsd-elf.h (DBX_REGISTER_NUMBER): Likewise.
12202         * config/sparc/sol2.h (DBX_REGISTER_NUMBER): Likewise.
12203         * config/sparc/sparc-protos.h: Delete sparc_flat_* prototypes.
12204         * config/sparc/sparc.c: Likewise.
12205         (sparc_output_function_prologue): Remove TARGET_FLAT handling.
12206         (sparc_nonflat_function_prologue): Rename into sparc_function_prologue.
12207         (sparc_output_function_epilogue): Remove TARGET_FLAT handling.
12208         (sparc_nonflat_function_epilogue): Rename into sparc_function_epilogue.
12209         (struct sparc_frame_info, current_frame_info, zero_frame_info): Delete.
12210         (sparc_flat_must_save_register_p): Likewise.
12211         (sparc_flat_compute_frame_size): Likewise.
12212         (sparc_flat_save_restore): Likewise.
12213         (sparc_flat_function_prologue): Likewise.
12214         (sparc_flat_function_epilogue): Likewise.
12215         (sparc_flat_epilogue_delay_slots): Likewise.
12216         (sparc_flat_eligible_for_epilogue_delay): Likewise.
12217         (sparc_function_ok_for_sibcall): Remove TARGET_FLAT handling.
12218         * config/sparc/sparc.h (MASK_FLAT, TARGET_FLAT): Delete.
12219         (TARGET_SWITCHES): Remove -mflat and all -mxxx (xxx:chip) options.
12220         (SPARC_INCOMING_INT_ARG_FIRST): Remove TARGET_FLAT handling.
12221         (CONDITIONAL_REGISTER_USAGE): Likewise.
12222         (FRAME_POINTER_REQUIRED): Likewise.
12223         (INITIAL_ELIMINATION_OFFSET): Likewise.
12224         (BASE_RETURN_VALUE_REG): Likewise.
12225         (BASE_OUTGOING_VALUE_REG): Likewise.
12226         (BASE_PASSING_ARG_REG): Likewise.
12227         (BASE_INCOMING_ARG_REG): Likewise.
12228         (INCOMING_REGNO): Likewise.
12229         (OUTGOING_REGNO): Likewise.
12230         (LOCAL_REGNO): Likewise.
12231         (DELAY_SLOTS_FOR_EPILOGUE): Likewise.
12232         (ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise.
12233         (EPILOGUE_USES): Likewise.
12234         * config/sparc/sparc.md ("isa" attribute): Change "v6" into "v7".
12235         ("flat" attribute): Delete.
12236         (do_builtin_setjmp_setup): Remove TARGET_FLAT and "flat" attribute
12237         handling.
12238         (call followed by jump define_peephole's): Delete.
12239         (exception_receiver): Likewise.
12240         (builtin_setjmp_receiver): Likewise.
12241         * config/sparc/t-sparclite (MULTILIB_OPTIONS): Remove -mflat.
12242
12243 2004-02-03  Paolo Bonzini  <bonzini@gnu.org>
12244
12245         PR c/11658
12246         PR c/13994
12247         * Makefile.in (c-parse.o, c-convert.o, c-typeck.o): Depend
12248         on langhooks.h.
12249         * objc/Make-lang.in (objc-parse.o): Depend on langhooks.h.
12250         * c-parse.in, c-convert.c, c-typeck.c, objc/objc-act.c:
12251         Include langhooks.h.  Replace c_common_truthvalue_conversion
12252         with the truthvalue_conversion language hook throughout.
12253         (expr_no_commas): Call default_conversion before save_expr
12254         for the first term of the production 'x ? : y'.
12255         * c-common.c (c_common_truthvalue_conversion): Remove
12256         obsolete block.  Invoke recursively the hook instead
12257         of this function.
12258         * c-convert.c (convert): handle ERROR_MARK_NODE.
12259         * c-typeck.c (build_binary_op): handle ERROR_MARK_NODE
12260         returned by the truthvalue_conversion language hook.
12261         * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
12262         c_objc_common_truthvalue_conversion.
12263         * c-objc-common.c (c_objc_common_truthvalue_conversion):
12264         New function.
12265         * c-tree.h (c_objc_common_truthvalue_conversion): Declare it.
12266         * objc/objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
12267         c_objc_common_truthvalue_conversion.
12268
12269 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
12270
12271         * config/c4x/c4x.h (FUNCTION_VALUE): Use gen_rtx_REG instead
12272         of gen_rtx.
12273         (LIBCALL_VALUE): Likewise.
12274         * config/ip2k/ip2k.c (mdr_try_propagate_clr_sequence): Use
12275         gen_rtx_CC0 instead of gen_rtx.
12276         * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use
12277         gen_rtx_fmt_e and gen_rtx_fmt_ee instead of gen_rtx.
12278         (m68hc11_expand_compare): Use gen_rtx_fmt_ee instead of
12279         gen_rtx.
12280         (m68hc11_emit_logical): Likewise.
12281
12282 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
12283
12284         * config/alpha/alpha.c, config/arm/arm.c, config/c4x/c4x.c,
12285         config/fr30/fr30.md, config/frv/frv.c, config/frv/frv.md,
12286         config/h8300/h8300.c, config/ia64/ia64.c, config/ip2k/ip2k.md,
12287         config/m32r/m32r.md, config/m68hc11/m68hc11.c,
12288         config/mips/mips.md, config/mmix/mmix.c,
12289         config/mn10300/mn10300.c, config/mn10300/mn10300.md,
12290         config/ns32k/ns32k.c, config/pa/pa.md, config/pdp11/pdp11.c,
12291         config/rs6000/altivec.md, config/s390/s390.c,
12292         config/s390/s390.h, config/s390/s390.md, config/sh/sh.c,
12293         config/sh/sh.h, config/sh/sh.md, config/stormy16/stormy16.c:
12294         Use const0_rtx instead of GEN_INT (0).  Do the same for other
12295         constants that are readily available.
12296
12297 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
12298
12299         * doloop.c, optabs.c, regmove.c, sched-deps.c,
12300         config/i386/i386.c, config/i386/i386.md: Use const0_rtx
12301         instead of GEN_INT (0).  Do the same for other constants that
12302         are readily available.
12303
12304 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
12305
12306         * combine.c (simplify_set): Use gen_rtx_fmt_e instead of
12307         gen_rtx.
12308         * emit-rtl.c (init_emit_once): Use gen_rtx_PC and gen_rtx_CC0
12309         instead of gen_rtx.
12310         * reload1.c (init_elim_table): Use gen_rtx_fmt_e instead of
12311         gen_rtx.
12312         * config/ns32k/ns32k.md (udivmodhi4): Use gen_rtx_IOR and
12313         gen_rtx_ASHIFT instead of gen_rtx.
12314         (udivmodqi4): Likewise.
12315
12316 2004-02-02  Richard Henderson  <rth@redhat.com>
12317
12318         PR target/13789
12319         * expr.c (store_expr): Use force_operand before emit_move_insn.
12320
12321 2004-02-02  Jeff Law  <law@redhat.com>
12322             Roger Sayle  <roger@eyesopen.com>
12323
12324         * tree.c (commutative_tree_code, associative_tree_code): New
12325         functions.
12326         (iterative_hash_expr): Use commutative_tree_code.
12327         * tree.h (commutative_tree_code, associative_tree_code): Declare.
12328         * fold-const.c (operand_equal_p): Use commutative_tree_code
12329         rather than inlining the commutativity check.
12330         (fold): Likewise.
12331
12332 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
12333
12334         * system.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Poison.
12335         * config/frv/frv-protos.h: Remove the prototype for
12336         frv_function_arg_keep_as_reference.
12337         * config/frv/frv.c (frv_function_arg_keep_as_reference):
12338         Remove.
12339         * config/frv/frv.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Likewise.
12340         * config/stormy16/stormy16.h: Remove the commented-out
12341         definition of FUNCTION_ARG_KEEP_AS_REFERENCE.
12342
12343 2004-02-03  Alan Modra  <amodra@bigpond.net.au>
12344
12345         PR target/13914
12346         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Use ap
12347         for retaddr_column.
12348
12349 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
12350
12351         * genemit.c (gen_exp): Generate gen_rtx_fmt_e* instead of
12352         gen_rtx.
12353
12354 2004-02-02  Eric Christopher  <echristo@redhat.com>
12355             Zack Weinberg  <zack@codesourcery.com>
12356
12357         * c-opts.c (c_common_handle_option): Add -finput-charset.
12358         * c.opt: Ditto.
12359         * cppcharset.c (one_iso88591_to_utf8): Remove.
12360         (convert_iso88591_utf8): Ditto.
12361         (conversion_tab): Remove 8859-1 converter.
12362         (_cpp_input_to_utf8): Remove.
12363         (_cpp_init_iconv_buffer): Ditto.
12364         (_cpp_close_iconv_buffer): Ditto.
12365         (_cpp_convert_input): New function.
12366         (_cpp_default_encoding): Ditto.
12367         * cpphash.h: Add/remove prototypes for above.
12368         * cppfiles.c (read_file_guts): Use _cpp_convert_input.
12369         * cppinit.c (cpp_create_reader): Use _cpp_default_encoding
12370         for narrow execution and input character sets.
12371         * cpplib.c (cpp_push_buffer): Delete uses of removed functions.
12372         * doc/cppopts.texi: Document -finput-charset.
12373
12374 2004-02-02  David Edelsohn  <edelsohn@gnu.org>
12375
12376         * rtlanal.c (refers_to_regno_p): Test regno, not inner_regno,
12377         against FIRST_PSEUDO_REGISTER.
12378
12379 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
12380
12381         * doc/invoke.texi (SPARC options): Further improve.
12382
12383 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
12384
12385         * config/arm/arm.md, config/c4x/c4x.md, config/cris/cris.md,
12386         config/h8300/h8300.c, config/ip2k/ip2k.md,
12387         config/iq2000/iq2000.c, config/mips/mips.c,
12388         config/rs6000/rs6000.c, config/rs6000/rs6000.md,
12389         config/sh/sh.c, config/sh/sh.md, config/stormy16/stormy16.c,
12390         config/v850/v850.md: Fix indentation.
12391
12392 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
12393
12394         * config/sparc/sparc.c (function_arg_slotno): Align TImode
12395         arguments on a 16-byte boundary in the parameter array if ARCH64.
12396         Split handling of TFmode.
12397
12398 2004-02-02  Paolo Bonzini  <bonzini@gnu.org>
12399
12400         * rtlanal.c (reg_overlap_mentioned_p) [!ENABLE_CHECKING]:
12401         Don't test CONSTANT_P (x).
12402         (reg_overlap_mentioned_p): Merge check for STRICT_LOWPART,
12403         ZERO_EXTRACT, SIGN_EXTRACT with the switch statement.
12404         Fix misindentation.
12405
12406 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
12407
12408         * doc/invoke.texi (SPARC options): Document that -mflat is deprecated.
12409
12410 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
12411
12412         * config/arc/arc.md, config/arm/arm.c, config/arm/arm.md,
12413         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.md,
12414         config/frv/frv.c, config/h8300/h8300.c, config/ip2k/ip2k.md,
12415         config/iq2000/iq2000.c, config/m32r/m32r.c,
12416         config/mcore/mcore.c, config/mips/mips.c, config/mmix/mmix.md,
12417         config/mn10300/mn10300.c, config/rs6000/rs6000.c,
12418         config/rs6000/rs6000.md, config/sh/sh.c, config/sh/sh.md,
12419         config/stormy16/stormy16.c, config/v850/v850.md,
12420         config/xtensa/xtensa.c: Replace gen_rtx with gen_rtx_fmt_e*.
12421
12422 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
12423
12424         * config/mcore/mcore.c (block_move_sequence): Replace
12425         gen_rtx_CONST_INT with GEN_INT.
12426
12427 2004-02-02  Jan Hubicka  <jh@suse.cz>
12428
12429         * alias.c (record_set): Use hard_regno_nregs.
12430         * bt-load.c (find_btr_reference, note_btr_set): Likewise.
12431         * builtins.c (apply_args_size): Likewise.
12432         * caller-save.c (setup_save_areas, save_call_clobbered_regs,
12433         mark_set_regs, add_stored_regs, mark_referenced_regs,
12434         insert_restore, insert_save, insert_one_insn): Likewise.
12435         * cfgcleanup.c: Include regs.h
12436         (mark_effect, mentions_nonequal_regs): Likewise.
12437         * cfgrtl.c (mark_killed_regs): Likewise
12438         * combine.c (update_table_tick, record_value_for_reg,
12439         record_dead_and_set_regs, get_last_value_validate, use_crosses_set_p,
12440         reg_dead_at_p_1, reg_dead_at_p, mark_used_regs_combine, move_deaths,
12441         reg_bitfield_target_p, distribute_notes): Likewise.
12442         * cse.c (mention_regs, insert, invalidate, invalidate_for_call,
12443         exp_equiv_p, cse_insn): Likewise.
12444         * cselib.c (cselib_lookup): Likewise.
12445         (cselib_invalidate_regno, cselib_record_set): Likewise.
12446         * df.c (df_ref_record): Likewise.
12447         * dwarf2out.c (reg_loc_descriptor, multiple_reg_loc_descriptor):
12448         Likewise.
12449         * flow.c (mark_reg, insn_dead_p, mark_set_1, mark_used_reg,
12450         count_or_remove_death_notes_bb): Likewise.
12451         * function.c (aggregate_value_p, keep_stack_depressed): Likewise.
12452         * gloval.c (global_alloc, find_reg, mark_reg_store, mark_reg_conflicts,
12453         mark_reg_death, set_preference, reg_becomes_live, reg_dies): Likewise.
12454         * integrate.c (mark_stores): Likewise.
12455         * jump.c (delete_prior_computation): Likewise.
12456         * lcm.c (reg_dies, reg_becomes_live): Likewise.
12457         * local-alloc.c (combine_regs, find_free_reg, post_mark_life): Likewise.
12458         * loop.c (LOOP_REGNO_NREGS): Likewise.
12459         * postreload.c (reload_combine, reload_combine_note_store,
12460         reload_combine_note_use, reload_cse_move2add, move2add_note_store): Likewise.
12461         * ra-colorize.c (combine, color_usable_p, get_free_reg,
12462         calculate_dont_begin, calculate_dont_begin, colorize_one_web,
12463         try_recolor_web, insert_coalesced_conflicts, check_colors,
12464         break_precolored_alias): Likewise.
12465         * ra-debug.c: Include regs.h
12466         (ra_print_rtx_object): Likewise.
12467         * ra-rewrite (choose_spill_colors): Likewise.
12468         (spill_same_color_p, update_spill_colors, spill_is_free): Likewise.
12469         * ra.c (init_ra): Likewise.
12470         * recog.c (reg_fits_class_p, peep2_reg_dead_p,
12471         peep2_find_free_register): Likewise.
12472         * reg-stack.c (subst_stack_regs_pat, convert_regs_exit): Likewise.
12473         * regclass.c (hard_regno_nregs): New array.
12474         (init_reg_modes_once): Initialize it.
12475         (choose_hard_reg_mode): Use it.
12476         (record_reg_classes): Likewise.
12477         * regmove.c (mark_flags_life_zones): Likewise.
12478         * regrename.c (note_sets, clear_dead_regs, regrename_optimize,
12479         scan_rtx_reg, dump_def_use_chain, kill_value, set_value_regno,
12480         copy_value, maybe_mode_change, find_oldest_value_reg,
12481         copyprop_hardreg_forward_1):
12482         * regs.h (hard_regno_nregs): Declare.
12483         * realod.c (reload_inner_reg_of_subreg): Use it.
12484         (push_reload, combine_reloads, find_dummy_reload,
12485         hard_reg_set_here_p, operands_match_p, decompose, find_reloads,
12486         refers_to_regno_for_reload_p, find_equiv_reg, regno_clobbered_p,
12487         reload_adjust_reg_for_mode): Likewise.
12488         * reload1.c (compute_use_by_pseudos, count_pseudo,
12489         count_spilled_pseudo, find_reg, find_reload_regs, mark_home_live,
12490         spill_hard_reg, forget_old_reloads_1, mark_reload_reg_in_use,
12491         clear_reload_reg_in_use, reload_reg_free_for_value_p, free_for_value_p
12492         allocate_reload_reg, choose_reload_regs, emit_reload_insns,
12493         delete_output_reload): Likewise.
12494         * resource.c (update_live_status, mark_referenced_resources,
12495         mark_set_resources, mark_target_live_regs): Likewise.
12496         * rtlanal.c:  Include regs.h
12497         (refers_to_regno_p, reg_overlap_mentioned_p, dead_or_set_p,
12498         dead_or_set_regno_p, find_regno_note, find_reg_fusage,
12499         subreg_regno_offset, subreg_offset_representable_p,
12500         hoist_test_store): Likewise.
12501         * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
12502         * sched-rgn.c (check_live_1, update_live_1): Likewise.
12503         * stmt.c: Include regs.h
12504         (decl_conflicts_with_clobbers_p): Likewise.
12505         * varasm.c (make_decl_rtl): Likewise.
12506         * Makefile.in (cfgcleanup.o, rtlanal.o, ra-debug.o): Add regs.h dependnecy.
12507
12508 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
12509
12510         * config/arm/arm.c, config/arm/arm.h, config/arm/arm.md,
12511         config/arm/linux-gas.h, config/arm/netbsd-elf.h,
12512         config/arm/netbsd.h, config/arm/pe.c, config/avr/avr.c,
12513         config/avr/avr.h, config/avr/avr.md, config/c4x/c4x.h,
12514         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
12515         config/frv/frv.h, config/ip2k/ip2k.c, config/iq2000/iq2000.c,
12516         config/iq2000/iq2000.h, config/m32r/m32r.c,
12517         config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
12518         config/m68hc11/m68hc11.md, config/m68k/m68k.md,
12519         config/mcore/mcore.c, config/mcore/mcore.h,
12520         config/mcore/mcore.md, config/mips/mips.c,
12521         config/ns32k/ns32k.h, config/ns32k/ns32k.md,
12522         config/rs6000/rs6000.c, config/s390/s390.c,
12523         config/s390/s390.md, config/sparc/sparc.c, config/v850/v850.c,
12524         config/xtensa/xtensa.h, config/xtensa/xtensa.md: Replace
12525         "gen_rtx (FOO, " with "gen_rtx_FOO (".
12526
12527 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
12528
12529         * config/h8300/h8300.md (two peephole2's): New.
12530
12531 2004-02-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
12532
12533         * config/sparc/sol2-bi.h: Handle TARGET_CPU_ultrasparc3.
12534         (CPP_CPU_SPEC): Handle -mcpu=ultrasparc3.
12535         (ASM_CPU_SPEC): Likewise
12536         * config/sparc/sol2.h: Handle TARGET_CPU_ultrasparc3.
12537         (ASM_CPU_SPEC): Remove -mcpu=v8plus.  Handle -mcpu=ultrasparc3.
12538
12539 2004-02-01  Roger Sayle  <roger@eyesopen.com>
12540
12541         * builtins.c (expand_builtin_pow): If flag_unsafe_math_optimizations
12542         isn't set, don't call expand_builtin_mathfn_2 to use the pow optab.
12543         (expand_builtin): Always call expand_builtin_pow.
12544
12545 2004-02-01  Roger Sayle  <roger@eyesopen.com>
12546
12547         * builtins.def (BUILT_IN_SIGNBIT, BUILT_IN_SIGNBITF,
12548         BUILT_IN_SIGNBITL): New GCC builtins.
12549         * builtins.c (expand_builtin_signbit): New function to RTL expand
12550         calls to signbit, signbitf and signbitl as inline intrinsics.
12551         (expand_builtin): Call expand_builtin_signbit for BUILT_IN_SIGNBIT*.
12552         (fold_builtin_signbit): New function to perform constant folding
12553         of signbit, signbitf and signbitl.
12554         (fold_builtin): Call fold_builtin_signbit for BUILT_IN_SIGNBIT*.
12555
12556         * doc/extend.texi: Document new signbit{,f,l} builtins.
12557
12558 2004-02-01  Richard Sandiford  <rsandifo@redhat.com>
12559
12560         * config/mips/mips.md (adddi3_internal_2): Remove superfluous %s.
12561
12562 2004-02-01  Chris Demetriou  <cgd@broadcom.com>
12563
12564         * config/mips/mips.h (PREDICATE_CODES): Remove entries for
12565         "mips_const_double_ok" and "simple_memory_operand", which were
12566         removed from the MIPS port with the mips-3_4-rewrite branch merge.
12567         * config/mips/mips.c (mips16_lay_out_constants): Update comment
12568         for removal of simple_memory_operand.
12569
12570 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
12571
12572         * config/c4x/c4x.md: Use GEN_INT instead of
12573         gen_rtx (CONST_INT, ...).
12574
12575 2004-01-31  Richard Henderson  <rth@redhat.com>
12576
12577         * varasm.c (output_constant_pool): Don't zap the pool.
12578
12579 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
12580
12581         * genrecog.c (decision_type): Add DT_const_int.
12582         (write_cond) [DT_const_int]: Print a comparison against small
12583         constant.
12584         (write_node): Simplify comparisons against small constants
12585         before printing tests.
12586
12587 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
12588
12589         * config/m32r/m32r.c (m32r_load_pic_register): Use GEN_INT
12590         instead of gen_rtx_CONST_INT.
12591
12592 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
12593
12594         * config/xtensa/xtensa.h (DYNAMIC_CHAIN_ADDRESS): Use GEN_INT
12595         instead of gen_rtx_CONST_INT.
12596
12597 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
12598
12599         * target-def.h (TARGET_STRICT_ARGUMENT_NAMING): Define as
12600         hook_bool_CUMULATIVE_ARGS_false.
12601         * targhooks.c (default_strict_argument_naming): Rename to
12602         hook_bool_CUMULATIVE_ARGS_false.
12603         * targhooks.h: Update the prototype for
12604         default_strict_argument_naming.
12605
12606 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
12607
12608         * config/sh/sh.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
12609         * config/sh/sh.h: Likewise.
12610         * config/sh/sh.md: Likewise.
12611
12612 2004-01-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
12613
12614         * doc/invoke.texi (SPARC options): Restructure and update.
12615
12616 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
12617
12618         * system.h (PROMOTE_FUNCTION_ARGS, STRUCT_VALUE_INCOMING, and
12619         STRICT_ARGUMENT_NAMING): Poison.
12620         * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS): Define as
12621         hook_bool_tree_false.
12622         * targhooks.c (default_promote_function_args): Remove.
12623         (default_struct_value_rtx): Don't use STRUCT_VALUE_INCOMING.
12624         Don't check incoming.
12625         (default_strict_argument_naming): Don't use
12626         STRICT_ARGUMENT_NAMING.
12627         * targhooks.h: Remove the prototype for
12628         default_promote_function_args.
12629
12630 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
12631
12632         * config/i386/i386-protos.h: Remove the prototype for
12633         ix86_setup_incoming_varargs.
12634         * config/i386/i386.c (TARGET_SETUP_INCOMING_VARARGS): New.
12635         (ix86_setup_incoming_varargs): Make it static.
12636         * config/i386/i386.h (SETUP_INCOMING_VARARGS): Remove.
12637
12638 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
12639
12640         * alloc-pool.c: Fix comment typos.
12641         * builtin-types.def: Likewise.
12642         * builtins.def: Likewise.
12643         * c-pretty-print.c: Likewise.
12644         * df.h: Likewise.
12645         * reload1.c: Likewise.
12646
12647 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
12648
12649         * doc/invoke.texi: Follow spelling conventions.
12650         * doc/tm.texi: Likewise.
12651
12652 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
12653
12654         * doc/install.texi: Fix typos.
12655         * doc/invoke.texi: Likewise.
12656
12657 2004-01-31  Ulrich Weigand  <uweigand@de.ibm.com>
12658
12659         * config/s390/s390.c (s390_decompose_address): Do not treat virtual
12660         registers as pointers.
12661         * config/s390/s390.md ("*la_31" second peephole2): Fix incorrect mode.
12662
12663 2004-01-31  Paolo Bonzini  <bonzini@gnu.org>
12664
12665         * combine.c (cse_main): Set gen_lowpart to gen_lowpart_for_combine
12666         and restore it to gen_lowpart_general on exit.
12667         (gen_lowpart_for_combine): Adjust all callers to go through
12668         gen_lowpart.
12669         * cse.c (cse_main): Set gen_lowpart to gen_lowpart_if_possible
12670         and restore it to gen_lowpart_general on exit.
12671         (gen_lowpart_if_possible): Adjust all callers to go through
12672         gen_lowpart.
12673         * emit-rtl.c (gen_lowpart_general): New name of gen_lowpart.
12674         (gen_lowpart): Declare as pointer to function, initialized to
12675         gen_lowpart_general.
12676         * rtl.h (gen_lowpart): Declare as pointer to function.
12677
12678 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
12679
12680         * bt-load.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
12681         * calls.c: Likewise.
12682         * emit-rtl.c: Likewise.
12683         * function.c: Likewise.
12684         * reload1.c: Likewise.
12685         * config/i386/cygming.h: Likewise.
12686         * config/i386/i386.c: Likewise.
12687         * config/i386/winnt.c: Likewise.
12688
12689 2004-01-30  Dara Hazeghi  <dhazeghi@yahoo.com>
12690
12691         PR bootstrap/9249
12692         * doc/install.texi: document --enable-__cxa_atexit option.
12693         * configure.ac: Disable __cxa_atexit if not supported.
12694         * configure: Regenerate.
12695
12696 2003-01-30  Daniel Berlin  <dberlin@dberlin.org>
12697
12698         * ggc-zone.c (ggc_free): New function.
12699
12700 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
12701
12702         alloc-pool.c, c-lex.c, c-pragma.h, c-semantics.c, cfghooks.c,
12703         cfghooks.h, cfglayout.c, cfgloopmanip.c, debug.c, debug.h,
12704         flow.c, genextract.c, ggc-common.c, ggc-page.c, ggc.h,
12705         ifcvt.c, jump.c, loop-unswitch.c, timevar.c, timevar.def,
12706         tree-optimize.c, vmsdbgout.c, config/fp-bit.c,
12707         config/alpha/alpha.c, config/alpha/alpha.h,
12708         config/alpha/alpha.md, config/alpha/unicosmk.h,
12709         config/alpha/vms.h, config/arm/linux-elf.h, config/avr/avr.c,
12710         config/c4x/c4x-protos.h, config/c4x/c4x.md,
12711         config/d30v/d30v.h, config/frv/frv.md, config/frv/frvbegin.c,
12712         config/frv/frvend.c, config/i386/cygming.h,
12713         config/i386/djgpp.h, config/i386/emmintrin.h,
12714         config/i386/gthr-win32.c, config/i386/i386-interix.h,
12715         config/i386/i386-protos.h, config/i386/openbsd.h,
12716         config/i386/winnt.c, config/i386/xm-mingw32.h,
12717         config/i386/xmmintrin.h, config/ia64/ia64.md,
12718         config/iq2000/iq2000.md, config/m32r/m32r.md,
12719         config/m68k/m68k.md, config/mcore/mcore-elf.h,
12720         config/mcore/mcore.md, config/mips/elf.h, config/mips/elf64.h,
12721         config/mips/iris5gas.h, config/mips/iris6.h,
12722         config/mips/iris6gas.h, config/mips/linux.h,
12723         config/mips/mips.md, config/mips/netbsd.h,
12724         config/mips/openbsd.h, config/mips/windiss.h,
12725         config/pa/fptr.c, config/rs6000/aix.h,
12726         config/rs6000/altivec.h, config/rs6000/darwin.h,
12727         config/rs6000/xcoff.h, config/s390/s390-protos.h,
12728         config/s390/s390.c, config/s390/s390.h, config/s390/s390.md,
12729         config/sh/netbsd-elf.h, config/sh/sh.h, config/sh/vxworks.h,
12730         config/sparc/sol2.h: Update copyright.
12731
12732 2004-01-30  Kelley Cook  <kcook@gcc.gnu.org>
12733
12734         * Makefile.in (abs_docdir, abs_srcdir): Define.
12735         (doc/%.dvi, doc/gccinstall.dvi): Use $(abs_docdir).
12736
12737 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
12738
12739         * genconfig.c (main): Have CC0_P check its operand even on a
12740         target without cc0.
12741
12742 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
12743
12744         * config/alpha/alpha.c: Remove mentions of deprecates macros
12745         in comments, remove some target-independent comments about target
12746         macros, and/or add minimal function comments for target hook
12747         implementations.
12748         * config/avr/avr.c: Likewise.
12749         * config/ia64/ia64.h: Likewise.
12750         * config/ip2k/ip2k.c: Likewise.
12751         * config/iq2000/iq2000.c: Likewise.
12752         * config/m32r/m32r.h: Likewise.
12753         * config/m68hc11/m68hc11.c: Likewise.
12754         * config/mcore/mcore.c: Likewise.
12755         * config/mmix/mmix.c: Likewise.
12756         * config/mn10300/mn10300.c: Likewise.
12757         * config/pa/pa.c: Likewise.
12758         * config/pdp11/pdp11.c: Likewise.
12759         * config/rs6000/rs6000.h: Likewise.
12760         * config/sh/sh.c: Likewise.
12761         * config/sh/sh.h: Likewise.
12762         * config/sparc/sparc.c: Likewise.
12763         * config/sparc/sparc.h: Likewise.
12764         * config/stormy16/stormy16.c: Likewise.
12765         * config/xtensa/xtensa.c: Likewise.
12766
12767 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
12768
12769         PR optimization/12147
12770         * reload1.c (reload_reg_free_p): RELOAD_OTHER conflicts with
12771         RELOAD_FOR_OPADDR_ADDR.
12772         (reload_reg_reaches_end_p): RELOAD_FOR_OTHER_ADDRESS register
12773         might be reused as RELOAD_FOR_OPADDR_ADDR register.
12774
12775 2004-01-30  Jan Hubicka  <jh@suse.cz>
12776
12777         * reload.c (get_secondary_mem): Fix updating of
12778         secondary_memlocs_elim_used.
12779
12780 2004-01-30  Richard Henderson  <rth@redhat.com>
12781
12782         * varasm.c (struct rtx_const, struct pool_constant): Remove.
12783         (MAX_RTX_HASH_TABLE): Remove.
12784         (const_rtx_hash_table, const_rtx_sym_hash_table): Remove.
12785         (first_pool, last_pool, pool_offset): Remove.
12786         (struct rtx_constant_pool): Split out from ...
12787         (struct varasm_status): ... here.  Reference one via pointer.
12788         (struct constant_descriptor_rtx): Merge struct pool_constant.
12789         (SYMHASH): Remove.
12790         (decode_rtx_const): Remove.
12791         (const_hash_rtx, compare_constant_rtx): Remove.
12792         (record_constant_rtx): Remove.
12793         (const_desc_rtx_hash, const_desc_rtx_eq): New.
12794         (const_desc_rtx_sym_hash, const_desc_rtx_sym_eq): New.
12795         (const_rtx_hash_1, const_rtx_hash): New.
12796         (init_varasm_status): Allocate a rtx_constant_pool, and its hashes.
12797         (simplify_subtraction): Use simplify_rtx.
12798         (force_const_mem): Rewrite to use new data structures.
12799         (find_pool_constant): Likewise.
12800         (get_pool_constant, get_pool_constant_mark,
12801         get_pool_constant_for_function, get_pool_mode,
12802         get_pool_mode_for_function, get_pool_offset, get_pool_size): Likewise.
12803         (output_constant_pool_2): Split out from output_constant_pool.
12804         (output_constant_pool_1): Likewise.  Use new pool datastructures.
12805         (output_constant_pool): Zap entire pool datastructure.
12806         (mark_constant): Use new pool datastructures.
12807         (mark_constants): Use for_each_rtx.
12808         (mark_constant_pool): Use new pool datastructures.
12809
12810 2004-01-30  Fariborz Jahanian <fjahanian@apple.com>
12811
12812         * config/rs6000/rs6000.c (rs6000_emit_move): Remove #if 0.
12813         Copy operands[1] to pseudo for simplify_gen_subreg.
12814
12815 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
12816
12817         * gcse.c (bypass_block): Fix a typo in the previous check-in
12818         to the file.
12819
12820 2004-01-30  Andrew Pinski <pinskia@physics.uc.edu>
12821
12822         * toplev.c: Include alloc-pool.h.
12823         * Makefile.in (toplev.c): Update dependencies.
12824
12825 2004-01-30  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12826
12827         * combine.c (simplify_shift_const, case XOR): Be careful when
12828         commuting XOR with ASHIFTRT.
12829
12830 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
12831             Eric Botcazou  <ebotcazou@libertysurf.fr>
12832
12833         * config/sparc/sparc-protos.h: Remove the prototype for
12834         sparc_builtin_saveregs.
12835         * config/sparc/sparc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
12836         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
12837         (TARGET_PROMOTE_PROTOTYPES): Likewise.
12838         (TARGET_STRUCT_VALUE_RTX): Likewise.
12839         (TARGET_RETURN_IN_MEMORY): Likewise.
12840         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
12841         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
12842         (sparc_builtin_saveregs): Make it static.
12843         (sparc_promote_prototypes): New.
12844         (sparc_struct_value_rtx): Likewise.
12845         (sparc_return_in_memory): Likewise.
12846         * config/sparc/sparc.h: (PROMOTE_FUNCTION_ARGS): Remove.
12847         (PROMOTE_FUNCTION_RETURN): Likewise.
12848         (RETURN_IN_MEMORY): Likewise.
12849         (STRUCT_VALUE): Likewise.
12850         (STRUCT_VALUE_INCOMING): Likewise.
12851         (EXPAND_BUILTIN_SAVEREGS): Likewise.
12852         (STRICT_ARGUMENT_NAMING): Likewise.
12853         (PROMOTE_PROTOTYPES): Likewise.
12854
12855         * config/sparc/sparc.h (PROMOTE_MODE): Use word_mode.
12856
12857 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
12858
12859         PR c/12818
12860         * varasm.c (const_hash_1) <STRING_CST>: Use the
12861         address to compute the hash value if flag_writable_strings.
12862         (compare_constant) <STRING_CST>: Compare the addresses
12863         if flag_writable_strings.
12864         (build_constant_desc): Do not copy the expression for a
12865         STRING_CST if flag_writable_strings.
12866
12867 2004-01-30  Jan Hubicka  <jh@suse.cz>
12868
12869         * alloc-pool.c: Include hashtab.h
12870         (alloc_pool_descriptor): New structure
12871         (alloc_pool_hash): New global variable.
12872         (hash_descriptor, eq_descriptor, alloc_pool_descriptor): New.
12873         (create_alloc_pool): Update statistics.
12874         (free_alloc_pool): Likewise.
12875         (pool_alloc): Likewise.
12876         (output_info): New structure
12877         (print_statistics, dump_alloc_pool_statistics): New function.
12878         * alloc-pool.h (alloc_pool_def): Turn name to be constant.
12879         (dump_alloc_pool_statistics): Declare.
12880         * toplev.c (finalize):  Dump statistics.
12881
12882         * reload.c (secondary_memlocs_elim_used): New static variable.
12883         (get_secondary_mem): Update it.
12884         (find_reloads): Use it.
12885
12886 2004-01-30  Steven Bosscher <s.bosscher@student.tudelft.nl>
12887
12888         * toplev.c: Fix broken checkin of 2003-12-30, again.
12889
12890 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
12891
12892         * configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for
12893         s390*-*-* targets by specifying a 'nop' insn.
12894         * configure: Regenerate.
12895
12896 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
12897
12898         PR target/11475
12899         * config/sparc/sparc.md (movhi_lo_sum): Tighten predicates.
12900
12901 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
12902
12903         * emit-rtl.c (change_address): Use XEXP (memref, 0) instead
12904         of addr when creating MEM copy.
12905
12906 2004-01-29  Devang Patel  <dpatel@apple.com>
12907
12908         * dwarf2out.c (gen_field_die): Do not equate decl number to die.
12909
12910 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
12911
12912         PR inline-asm/6162
12913         * reload.c (find_reloads): Only support one pair of commutative
12914         operands.
12915
12916 2004-01-29  Roger Sayle  <roger@eyesopen.com>
12917
12918         PR java/13824
12919         * tree.c (unsafe_for_reeval): Handle EXIT_BLOCK_EXPR nodes specially
12920         as their EXIT_BLOCK_LABELED_BLOCK operands can lead to unbounded
12921         recursion.
12922
12923 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
12924
12925         * config/frv/frv.c: Don't mention deprecated macros in
12926         comments.  Remove some target-independent comments about
12927         target macros.
12928         * config/frv/frv.h: Likewise.
12929
12930 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12931
12932         * cfghooks.c (split_block): Set probability and count of the
12933         new edge.
12934
12935 2005-01-29  Josef Zlomek  <zlomekj@suse.cz>
12936
12937         * dwarf2out.c (struct die_struct): Added field decl_id.
12938         (decl_die_table): Changed to hash table.
12939         (decl_die_table_allocated): Deleted.
12940         (decl_die_table_in_use): Deleted.
12941         (DECL_DIE_TABLE_INCREMENT): Deleted.
12942         (decl_die_table_hash): New function.
12943         (decl_die_table_eq): New function.
12944         (lookup_decl_die): Lookup in a hash table.
12945         (equate_decl_number_to_die): Insert into a hash table.
12946         (dwarf2out_init): Init hash table decl_die_table.
12947
12948 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
12949
12950         PR optimization/13424
12951         * expr.c (store_constructor): Revert 2003-12-03 change.
12952
12953         * emit-rtl.c (change_address): Check also if MEM_ATTRS is set as
12954         expected before returning early.  Avoid sharing RTL if they
12955         need to be changed.
12956
12957         * config/i386/i386.c (ix86_expand_movstr): Rework rep_mov and strmov
12958         handling so that memory attributes are preserved.  Don't call
12959         ix86_set_move_mem_attrs.
12960         (ix86_set_move_mem_attrs_1, ix86_set_move_mem_attrs): Removed.
12961         (ix86_expand_clrstr): Rename src argument to
12962         dst.  Rework rep_stos and strset handling so that memory attributes
12963         are preserved.
12964         (ix86_expand_strlen): Pass src argument to
12965         ix86_expand_strlensi_unroll_1.  Rework strlenqi_1 handling so that
12966         memory attributes are preserved.
12967         (ix86_expand_strlensi_unroll_1): Add src argument.  Use
12968         change_address instead of gen_rtx_MEM.
12969         * config/i386/i386.md (strmov, strmov_singleop, rep_mov): New
12970         expanders.
12971         (strmovdi_rex64, strmovsi, strmovsi_rex64, strmovhi, strmovhi_rex64,
12972         strmovqi, strmovqi_rex64): Remove.
12973         (rep_mov*, strmov*): Prefix insn names with *.
12974         (strset, strset_singleop, rep_stos): New expanders.
12975         (strsetdi_rex64, strsetsi, strsetsi_rex64, strsethi, strsethi_rex64,
12976         strsetqi, strsetqi_rex64): Remove.
12977         (rep_stos*, strset*): Prefix insn names with *.
12978         (rep_stosqi_rex64): Likewise.  Fix mode of dirflag reg from DImode
12979         to SImode.
12980         (cmpstrsi): Rework cmpstrqi_1 handling so that memory attributes
12981         are preserved.
12982         (cmpstrqi_nz_1, cmpstrqi_nz_rex_1, cmpstrqi_1, cmpstrqi_rex_1):
12983         Prefix insn names with *.
12984         (cmpstrqi_nz_1, cmpstrqi_1): New expanders.
12985         (strlenqi_1, strlenqi_rex_1): Prefix insn names with *.
12986         (strlenqi_1): New expander.
12987         * config/i386/i386.h (ix86_set_move_mem_attrs): Remove prototype.
12988
12989 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12990
12991         * Makefile.in (cfghooks.o): Add TIMEVAR_H and toplev.h dependency.
12992         * basic-block.h (tidy_fallthru_edge, tidy_fallthru_edges, dump_bb,
12993         verify_flow_info): Declaration removed.
12994         * cfg.c (verify_flow_info, dump_bb): Moved to cfghooks.c.
12995         (debug_bb, debug_bb_n): Add argument to dump_bb call.
12996         * cfgcleanup.c (try_simplify_condjump, try_crossjump_to_edge,
12997         try_optimize_cfg, delete_unreachable_blocks): Use delete_basic_block
12998         instead of delete_block.
12999         * cfghooks.c: Include timevar.h and toplev.h.
13000         (cfg_hooks): Define here.
13001         (verify_flow_info, dump_bb): Moved from cfg.c.
13002         (redirect_edge_and_branch, redirect_edge_and_branch_force,
13003         split_block, split_block_after_labels, move_block_after,
13004         delete_basic_block, split_edge, create_basic_block,
13005         create_empty_bb, can_merge_blocks_p, merge_blocks,
13006         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
13007         New functions.
13008         * cfghooks.h (struct cfg_hooks): Added fields name,
13009         make_forwarder_block, tidy_fallthru_edge and
13010         move_block_after. Changed type of verify_flow_info, dump_bb,
13011         split_block fields. Renamed cfgh_split_edge and delete_block
13012         fields.
13013         (redirect_edge_and_branch, redirect_edge_and_branch_force,
13014         split_block, delete_block, split_edge, create_basic_block,
13015         can_merge_blocks_p, merge_blocks): Macros removed.
13016         (cfg_hooks): Do not export.
13017         (verify_flow_info, dump_bb, redirect_edge_and_branch,
13018         redirect_edge_and_branch_force, split_block, split_block_after_labels,
13019         move_block_after, delete_basic_block, split_edge, create_basic_block,
13020         create_empty_bb, can_merge_blocks_p, merge_blocks,
13021         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
13022         Declare.
13023         (cfg_layout_rtl_cfg_hooks): Declare.
13024         * cfgloop.c (update_latch_info, mfb_keep_just, mfb_keep_nonlatch):
13025         New functions.
13026         (canonicalize_loop_headers): Use new semantics of make_forwarder_block.
13027         (redirect_edge_with_latch_update): Removed.
13028         (make_forwarder_block): Moved to cfghooks.c, semantics changed.
13029         * cfgloopmanip.c (remove_bbs): Do not update dominators here.
13030         * cfgrtl.c (cfg_layout_split_block, rtl_split_block, rtl_dump_bb,
13031         rtl_delete_block, rtl_split_block, rtl_merge_blocks,
13032         tidy_fallthru_edge, rtl_split_edge, cfg_layout_delete_block,
13033         cfg_layout_merge_blocks, cfg_layout_split_edge): Partly moved to
13034         cfghooks.c.
13035         (rtl_create_basic_block): Coding style fix.
13036         (rtl_tidy_fallthru_edge, rtl_move_block_after,
13037         rtl_make_forwarder_block): New functions.
13038         (update_cfg_after_block_merging): Removed.
13039         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hooks): Fill in new entries.
13040         * flow.c (verify_wide_reg, verify_local_live_at_start): Add argument
13041         to dump_bb.
13042         * ifcvt.c (merge_if_block, find_cond_trap, find_if_case_1,
13043         find_if_case_2): Don't update dominators.
13044         * timevar.def (TV_CFG_VERIFY): New.
13045         * loop-unswitch.c (unswitch_loop): Don't call add_to_dominance_info.
13046         * cfglayout.c (copy_bbs): Don't call add_to_dominance_info.
13047         * cfgloopmanip.c (split_loop_bb): Don't update dominators.
13048         (remove_bbs): Don't call remove_bbs.
13049         (create_preheader): Use make_forwarder_block.
13050         (mfb_keep_just, mfb_update_loops): New static functions.
13051
13052 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
13053
13054         * config/avr/avr.h: Remove target-independent comments about
13055         target macros.
13056
13057 2004-01-28  Daniel Berlin  <dberlin@dberlin.org>
13058
13059         * timevar.c (timevar_print): Mention when checking is enabled.
13060
13061 2004-01-28  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
13062
13063         * c-lex.c (c_lex): Rename to...
13064         (c_lex_with_flags): Add new parameter to get CPP flags.
13065         (c_lex): Thunk to c_lex_with_flags while keeping the old interface.
13066         * c-pragma.h (c_lex_with_flags): Declare.
13067
13068 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13069
13070         * config/mcore/mcore.c (mcore_external_libcall): Add a
13071         comment.
13072         (mcore_return_in_memory): Likewise.
13073
13074 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13075
13076         * config/mcore/mcore-protos.h: Remove the prototype for
13077         mcore_setup_incoming_varargs.
13078         * config/mcore/mcore.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
13079         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
13080         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
13081         (TARGET_PROMOTE_PROTOTYPES): Likewise.
13082         (TARGET_STRUCT_VALUE_RTX): Likewise.
13083         (TARGET_RETURN_IN_MEMORY): Likewise.
13084         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
13085         (mcore_setup_incoming_varargs): Make it static.  Receive the
13086         first argument by reference.  Add argument second_time.
13087         (mcore_external_libcall): New.
13088         (mcore_return_in_memory): Likewise.
13089         * config/mcore/mcore.h (PROMOTE_FUNCTION_ARGS): New.
13090         (PROMOTE_FUNCTION_RETURN): Likewise.
13091         (STRUCT_VALUE): Likewise.
13092         (RETURN_IN_MEMORY): Likewise.
13093         (SETUP_INCOMING_VARARGS): Likewise.
13094         (PROMOTE_PROTOTYPES): Likewise.
13095         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
13096
13097 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13098
13099         * config/m32r/m32r-protos.h: Remove the prototype for
13100         m32r_setup_incoming_varargs.
13101         * config/m32r/m32r.c (TARGET_PROMOTE_PROTOTYPES): New.
13102         (TARGET_STRUCT_VALUE_RTX): Likewise.
13103         (TARGET_RETURN_IN_MEMORY): Likewise.
13104         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
13105         (m32r_return_in_memory): New.
13106         (m32r_setup_incoming_varargs): Make it static.
13107         * config/m32r/m32r.h: Remove #undef of
13108         ASM_OUTPUT_EXTERNAL_LIBCALL.  Remove the commented-out
13109         definitions of PROMOTE_FUNCTION_ARGS and
13110         PROMOTE_FUNCTION_RETURN.
13111         (PROMOTE_PROTOTYPES): Remove.
13112         (RETURN_IN_MEMORY): Likewise.
13113         (STRUCT_VALUE): Likewise.
13114
13115 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13116
13117         * config/m68k/m68k.c (TARGET_PROMOTE_PROTOTYPES): New.
13118         (TARGET_STRUCT_VALUE_RTX): Likewise.
13119         (m68k_struct_value_rtx): Likewise.
13120         * config/m68k/m68k.h (STRUCT_VALUE_REGNUM): Rename to
13121         STRUCT_VALUE_REGNUM.
13122         (PROMOTE_PROTOTYPES): Remove.
13123         * config/m68k/m68kelf.h (STRUCT_VALUE_REGNUM): Rename to
13124         STRUCT_VALUE_REGNUM.
13125         * config/m68k/m68kv4.h (STRUCT_VALUE_REGNUM): Likewise.
13126         * config/m68k/netbsd-elf.h (STRUCT_VALUE_REGNUM): Likewise.
13127
13128 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13129
13130         * config/stormy16/stormy16.c
13131         (TARGET_BUILD_BUILTIN_VA_LIST_TYPE): Rename to
13132         TARGET_BUILD_BUILTIN_VA_LIST.
13133
13134 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13135
13136         * config/v850/v850.c (TARGET_PROMOTE_PROTOTYPES): New.
13137         (TARGET_STRUCT_VALUE_RTX): Likewise.
13138         (TARGET_RETURN_IN_MEMORY): Likewise.
13139         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
13140         (v850_return_in_memory): Likewise.
13141         (v850_setup_incoming_varargs): Likewise.
13142         * config/v850/v850.h (PROMOTE_PROTOTYPES): Remove.
13143         (SETUP_INCOMING_VARARGS): Likewise.
13144         (RETURN_IN_MEMORY): Likewise.
13145         (STRUCT_VALUE): Likewise.
13146
13147 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13148
13149         * config/fr30/fr30.c (TARGET_PROMOTE_PROTOTYPES): New.
13150         (fr30_setup_incoming_varargs): Don't use
13151         STRICT_ARGUMENT_NAMING.
13152         * config/fr30/fr30.h (PROMOTE_PROTOTYPES): Remove.
13153         (STRICT_ARGUMENT_NAMING): Likewise.
13154
13155 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13156
13157         * config/frv/frv-protos.h: Remove the prototype for
13158         frv_expand_builtin_saveregs.
13159         * config/frv/frv.c (TARGET_STRUCT_VALUE_RTX): Likewise.
13160         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
13161         (frv_stack_info): Use FRV_STRUCT_VALUE_REGNUM instead of
13162         STRUCT_VALUE_REGNUM.
13163         (frv_expand_builtin_saveregs): Make it static.
13164         (frv_struct_value_rtx): New.
13165         * config/frv/frv.h (EXPAND_BUILTIN_SAVEREGS): Remove.
13166
13167 2004-01-29  Jan Hubicka  <jh@suse.cz>
13168
13169         PR c++/12850
13170         * cgraph.c (cgraph_remove_node): Clear out saved/insns/arguments and
13171         initial pointers.
13172         * cgraphunit.c (cgraph_finalize_function): Clear out DECL_SAVED_INSNS
13173         for functions that will be only inlined.
13174         (cgraph_mark_function_to_output): Likewise.
13175         (cgraph_expand_function): Sanity check that DECL_DEFER_OUTPUT is clear;
13176         do not clear function body.
13177         * tree-optimize.c (clear_decl_rtl): Use decl_function_context.
13178         (tree_rest_of_compilation): Reorganize the logic releasing function
13179         body to use callgraph datastructure.
13180
13181 2004-01-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13182
13183         * pa.md: Change predicate of a peephole2 pattern from reg_or_0_operand
13184         to register_operand.
13185
13186 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
13187
13188         * config/ia64/ia64.md (fetchadd_acq_si, fetchadd_acq_di)
13189         (cmpxchg_acq_si, cmpxchg_acq_di): Exchange match_dup and
13190         match_operand expressions so that all match_dups appear
13191         lexically after their corresponding match_operands.
13192
13193 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13194
13195         * config/h8300/h8300.c (WORD_REG_USED): Use
13196         HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM.
13197         (compute_saved_regs): Likewise.
13198         (h8300_expand_prologue): Likewise.  Allocate locals after
13199         saving registers.
13200         (h8300_expand_epilogue): Use HARD_FRAME_POINTER_REGNUM instead
13201         of FRAME_POINTER_REGNUM.  Deallocate locals before saving
13202         registers.
13203         (h8300_initial_elimination_offset): Adjust for the new frame
13204         layout, which swaps flips the order of locals and saved
13205         registers.
13206         * config/h8300/h8300.h (FIRST_PSEUDO_REGISTER): Change to 12.
13207         (HARD_FRAME_POINTER_REGNUM): New.
13208         (ELIMINABLE_REGS): Add an elimination rule from
13209         FRAME_POINTER_REGNUM to HARD_FRAME_POINTER_REGNUM.
13210         (REGISTER_NAMES): Add fp.
13211         * config/h8300/h8300.md (FP_REG): Change to 11.
13212         (HFP_REG): New.
13213
13214 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13215
13216         * genrecog.c (write_node): Remove a useless local variable.
13217
13218 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
13219
13220         * Makefile.in (options.c options.h): Use stamp file s-options to
13221         avoid unnecessary rebuilds.
13222         (options.o): New target listing dependencies.
13223         (gtyp-gen.h): Use stamp file s-gtyp-gen.
13224         (STAGESTUFF): Add s-gtyp-gen.
13225
13226 2004-01-28  Richard Henderson  <rth@redhat.com>
13227
13228         * ggc.h (ggc_free): Declare.
13229         * ggc-common.c (ggc_realloc): Use it.
13230         * ggc-page.c: Remove lots of inline markers.
13231         (globals): Add free_object_list.
13232         (ggc_alloc): Tidy.
13233         (ggc_free, validate_free_objects): New.
13234         (poison_pages): Provide default.
13235         (ggc_collect): Call validate_free_objects; emit markers to
13236         the debug file.
13237
13238 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
13239             Jim Wilson  <wilson@specifixinc.com>
13240
13241         * config/ia64/ia64.c (ia64_split_tmode, ia64_split_tmode_move):
13242         Rewrite to use POST_INC/POST_DEC/POST_MODIFY instead of a
13243         scratch pointer.
13244         (ia64_secondary_reload_class): Delete case GR_REGS.
13245         * config/ia64/ia64.md (movti, *movti_internal, movtf, *movtf_internal):
13246         Do not allocate a scratch register.
13247         (reload_inti, reload_outti, reload_intf, reload_outtf): Delete.
13248
13249 2004-01-28  Jan Hubicka  <jh@suse.cz>
13250
13251         * gcse.c (bypass_block): Prevent edges to be unified when we are
13252         about to emit compenstation code.
13253
13254 2004-01-28  Nick Clifton  <nickc@redhat.com>
13255
13256         * config/arm/arm.c (arm_expand_builtin): Force second argument of
13257         the setcwx insn into a register.
13258
13259 2004-01-28  Richard Sandiford  <rsandifo@redhat.com>
13260
13261         * config/fp-bit.c (pack_d): When using paired doubles to implement
13262         a long double, round the high part separately.
13263         (unpack_d): Fix the case in which the high part is a power of two
13264         and the low part is a nonzero value of the opposite sign.
13265
13266 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13267
13268         * config/c4x/c4x.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
13269         (TARGET_STRUCT_VALUE_RTX): Likewise.
13270         (c4x_external_libcall): Likewise.
13271         (c4x_struct_value_rtx): Likewise.
13272         * config/c4x/c4x.h: Remove.
13273         (STRUCT_VALUE_REGNUM): Likewise.
13274         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
13275
13276 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13277
13278         * config/i386/i386.c (TARGET_PROMOTE_PROTOTYPES): New.
13279         (TARGET_STRUCT_VALUE_RTX): Likewise.
13280         * config/i386/i386.h (STRUCT_VALUE_INCOMING): Remove.
13281         (STRUCT_VALUE): Likewise.
13282         (PROMOTE_PROTOTYPES): Likewise.
13283
13284 2004-01-27  Roger Sayle  <roger@eyesopen.com>
13285
13286         * config/pa/pa.c (emit_move_sequence): Check that operand1 is a
13287         CONST_INT before using INTVAL.
13288
13289 2004-01-27  Ulrich Weigand  <uweigand@de.ibm.com>
13290
13291         * config/s390/s390.h (TARGET_DEFAULT): Default to !TARGET_BACKCHAIN.
13292         * config/s390/s390.c (s390_return_addr_rtx): Fail for all but current
13293         frame if !TARGET_BACKCHAIN.
13294         * config/s390/s390.md ("allocate_stack"): Use pattern only if
13295         TARGET_BACKCHAIN.
13296         * doc/invoke.texi (-mbackchain/-mno-backchain): Document new default.
13297
13298 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
13299
13300         * ia64.c (ia64_function_arg): When placing HFAs in integer
13301         registers, do not special case the mode used for complex
13302         types.  Do not advance int_regs until the current register
13303         is full.
13304
13305 2004-01-27  Richard Sandiford  <rsandifo@redhat.com>
13306
13307         PR target/7297
13308         * except.c (init_eh): Use a 5-word __jbuf for __builtin_setjmp().
13309
13310 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
13311
13312         * config/rs6000/rs6000.c (rs6000_emit_move): #if 0 splitting
13313         slow, unaligned loads and stores while debugging.  Fix formatting.
13314
13315 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
13316
13317         * config/rs6000/rs6000.md (save_stack_nonlocal): Use Pmode instead
13318         of computing wmode.
13319         (restore_stack_nonlocal): Same.
13320
13321 2004-01-27  Devang Patel <dpatel@apple.com>
13322
13323         * Makefile.in (dwarf2out.o): Depend on input.h
13324         * dbxout.c (dbx_debug_hooks): Add new empty hook for
13325         imported_module_or_decl.
13326         (xcoff_debug_hooks): Same.
13327         * sdbout.c (sdb_debug_hooks): Same.
13328         * vmsdbgout.c (vmsdbg_debug_hooks): Same.
13329         * debug.c (do_nothing_debug_hooks): Same.
13330         (debug_nothing_tree_tree): New function.
13331         * debug.h (gcc_debug_hooks): New hook, imported_module_or_decl.
13332         * dwarf2out.c: Include input.h.
13333         (dwarf2_debug_hooks): Add new hook for imported_module_or_decl.
13334         (remove_child_TAG): New function.
13335         (dwarf_tag_name): Handle DW_TAG_imported_module.
13336         (gen_subprogram_die): Equate decl number to declaration die. Do not
13337         remove all children dies while reusing declaration die for definition.
13338         Instead, selectively remove only formal parameters.
13339         (gen_variable_die): Equate variable decl to declaration die.
13340         (gen_field_die): Equate field decl to line number.
13341         (force_namespace_die): Replace it with ...
13342         (force_decl_die): ... this.
13343         (force_type_die): New function.
13344         (setup_namespace_context): Replace use of force_namespace_die() with
13345         force_decl_die().
13346         (gen_namespace_die): Same.
13347         (dwarf2out_imported_module_or_decl): New function.
13348
13349 2004-01-27  Bob Wilson  <bob.wilson@acm.org>
13350
13351         * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Remove SUBREG
13352         on CQImode and CHImode incoming arguments in register a7.
13353         (function_arg): Wrap BLKmode argument in register a7 in a PARALLEL.
13354         * config/xtensa/xtensa.h (BLOCK_REG_PADDING): Define.
13355         * config/xtensa/xtensa.md (movdi, movdf): Only call force_reg or
13356         xtensa_copy_incoming_a7 before reload.
13357
13358 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
13359
13360         * coverage.c (get_coverage_counts): Give a different message
13361         if flag_guess_branch_prob is set.
13362         * predict.c (counts_to_freqs): Return an int.
13363         (estimate_bb_frequencies): If counts_to_freqs returns zero,
13364         calculate estimates.
13365
13366 2004-01-27  Kazu Hirata  <kazu@cs.umass.edu>
13367
13368         * config/iq2000/iq2000-protos.h: Remove the prototype for
13369         iq2000_setup_incoming_varargs.
13370         * config/iq2000/iq2000.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
13371         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
13372         (TARGET_PROMOTE_PROTOTYPES): Likewise.
13373         (TARGET_STRUCT_VALUE_RTX): Likewise.
13374         (TARGET_RETURN_IN_MEMORY): Likewise.
13375         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
13376         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
13377         (iq2000_return_in_memory): Likewise.
13378         (iq2000_setup_incoming_varargs): Make it static.  Receive the
13379         first argument by reference.
13380         * config/iq2000/iq2000.h (PROMOTE_FUNCTION_ARGS): Remove.
13381         (PROMOTE_FUNCTION_RETURN): Likewise.
13382         (PROMOTE_PROTOTYPES): Likewise.
13383         (RETURN_IN_MEMORY): Likewise.
13384         (STRUCT_VALUE): Likewise.
13385         (SETUP_INCOMING_VARARGS): Likewise.
13386         (STRICT_ARGUMENT_NAMING): Likewise.
13387
13388 2004-01-24  James A. Morrison  <ja2morri@uwaterloo.ca>
13389
13390         * fixinc/fixinc.c (test_test): Initialize res.
13391         (start_flexer): Initialize pz_cmd_save.
13392
13393 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
13394
13395         * doc/rtl.texi (Arithmetic): Rewrite entries for PLUS,
13396         SS_PLUS, US_PLUS, LO_SUM, MINUS, SS_MINUS, US_MINUS.
13397
13398 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
13399
13400         PR 7198
13401         * config/ia64/ia64.md (*nmaddsf4, *nmadddf4, *nmadddf4_alts)
13402         (*nmadddf4_trunc, *nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf)
13403         (*nmaddxf4_alts, *nmaddxf4_truncdf_alts):
13404         Rewrite pattern as (minus (op 3) (mult (op 1) (op 2))).
13405         Possibly rename pattern for consistency.
13406         Remove ??? comments suggesting that this be done.
13407         (*nmaddsf4_alts, *nmadddf4_truncsf_alts, *nmaddxf4_truncsf_alts):
13408         New patterns.
13409         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr)
13410         (divsf3_internal_lat, divsf3_internal_thr, sqrtsf2_internal_thr)
13411         (divdf3_internal_lat, divdf3_internal_thr, sqrtdf2_internal_thr)
13412         (divxf3_internal_lat, divxf3_internal_thr, sqrtxf2_internal_thr):
13413         Update to match.
13414
13415 2004-01-27  Ian Lance Taylor  <ian@wasabisystems.com>
13416
13417         * config/arm/arm.c (output_return_instruction): Only restore IP
13418         into SP if frame_pointer_needed.
13419
13420 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
13421
13422         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
13423         for SCmode and DCmode if ARCH32.
13424         (sparc_va_arg): Handle SCmode and DCmode by reference if ARCH32.
13425         * config/sparc/sparc.h (RETURN_IN_MEMORY): Return 0 for TCmode
13426         if ARCH32.
13427         (BASE_RETURN_VALUE_REG): Return 32 for all FP modes except TFmode
13428         if ARCH32.
13429         (BASE_OUTGOING_VALUE_REG): Likewise.
13430
13431 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
13432
13433         PR target/10904
13434         PR target/13058
13435         * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): New.
13436         Forbid mode changes from SImode for lower FP regs if ARCH64.
13437
13438 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
13439
13440         * Makefile.in (bt-load.o): Depend on except.h.
13441         * bt-load.c (except.h): #include.
13442         (compute_defs_uses_and_gen): If insn at end of BB can throw
13443         within this function, consider registers used by it unavailable for
13444         btr migration.
13445         (move_btr_def): If insn at end of BB can throw, insert before rather
13446         than after.
13447
13448         * flags.h (flag_btr_bb_exclusive): Declare.
13449         * toplev.c (flag_btr_bb_exclusive): New variable.
13450         (f_options): Add btr-bb-exclusive.
13451         * bt-load.c (augment_live_range): Restore old behaviour if
13452         flag_btr_bb_exclusive is set.
13453         * common.opt: Add entry for -fbtr-bb-exclusive.
13454         * opts.c (common_handle_options): Same.
13455         * doc/invoke.texi: Document -fbtr-bb-exclusive.
13456
13457         * bt-load.c (btrs_live_at_end): New variable.
13458         (compute_defs_uses_and_gen): Compute its pointed-to array.
13459         (clear_btr_from_live_range, add_btr_to_live_range): Update it.
13460         (augment_live_range): When augmenting with a new dominator,
13461         use only its btrs_live_at_end set, but also add in the full set
13462         of the old dominator.
13463         (btr_def_live_range): Use btrs_live_at_end.
13464         (move_btr_def): Set other_btr_uses_before_def, and move new set
13465         to the end of the basic block, if appropriate.
13466         (migrate_btr_defs): Allocate and free btrs_live_at_end.
13467
13468         * bt-load.c (basic_block_freq): Remove outdated comment.
13469
13470 2004-01-27  Alan Modra  <amodra@bigpond.net.au>
13471
13472         * config/rs6000/rs6000.h: Correct target_flags free bits comment.
13473         (PREDICATE_CODES): Remove duplicate.
13474         * config/rs6000/linux64.h (CPP_SYSV_SPEC): Don't define.
13475         (SUBSUBTARGET_OVERRIDE_OPTIONS): Disallow 32 bit TARGET_PROFILE_KERNEL.
13476         (MASK_PROFILE_KERNEL): Adjust define.
13477
13478 2004-01-27  Jakub Jelinek  <jakub@redhat.com>
13479
13480         * config/i386/i386.c (ix86_constant_alignment): Decrease alignment
13481         of long string literals from 32 bytes to sizeof (void *) when !-Os
13482         and to 1 with -Os.
13483
13484 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
13485
13486         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Accept
13487         constant addresses in the normal mode.
13488
13489 2004-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13490
13491         * system.h (CHAR_BITFIELD): Delete.
13492         (BOOL_BITFIELD): New.
13493         * c-decl.c (c_scope): Use BOOL_BITFIELD.
13494         * gengtype-lex.l: Recognize BOOL_BITFIELD instead of CHAR_BITFIELD.
13495
13496 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
13497
13498         * config/arc/arc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
13499         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
13500         (TARGET_PROMOTE_PROTOTYPES): Likewise.
13501         (TARGET_STRUCT_VALUE_RTX): Likewise.
13502         (TARGET_RETURN_IN_MEMORY): Likewise.
13503         (arc_return_in_memory): Likewise.
13504         * config/arc/arc.h (PROMOTE_FUNCTION_ARGS): Remove.
13505         (PROMOTE_FUNCTION_RETURN): Likewise.
13506         (RETURN_IN_MEMORY): Likewise.
13507         (STRUCT_VALUE): Likewise.
13508
13509 2004-01-26  Richard Henderson  <rth@redhat.com>
13510
13511         * c-parse.in (extension): Use itype.
13512         (SAVE_EXT_FLAGS): Don't allocate a tree.
13513         (RESTORE_EXT_FLAGS): Don't read a tree.
13514
13515 2004-01-26  Jan Hubicka  <jh@suse.cz>
13516
13517         * cselib.c (discard_useless_values):  Clear out value pointer pointing
13518         to datastructure to be recycled.
13519
13520 2004-01-25  Jan Hubicka  <jh@suse.cz>
13521
13522         * genextract.c (main): Do not output the memset when not checking.
13523
13524 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
13525
13526         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Use a
13527         switch statement instead of a chain of if statements.
13528
13529 2004-01-26  Jeff Law  <law@redhat.com>
13530
13531         * doc/contrib.texi: Minor cleanup for Paolo Carlini's entry.  Add
13532         acute accents for Petur Runolfsson's entry.
13533
13534 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
13535
13536         * config/pdp11/pdp11.c (TARGET_STRUCT_VALUE_RTX): New.
13537         (TARGET_RETURN_IN_MEMORY): Likewise.
13538         * config/pdp11/pdp11.h (STRUCT_VALUE): Remove.
13539         (RETURN_IN_MEMORY): Likewise.
13540
13541 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
13542
13543          * config/rs6000/rs6000.c (rs6000_emit_move): split slow
13544          unaligned load/store into smaller loads and stores.
13545
13546 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
13547
13548         * function.c (assign_parms): Do not assign
13549         long long argument to memory in prologue if
13550         is it loaded into register.
13551
13552 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
13553
13554          PR middle-end/13779
13555          * expr.c (emit_group_load): split constant
13556          correctly into register components of PARALLEL insn.
13557
13558 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
13559
13560         * gcc/config/rs6000/rs6000.md (save_stack_nonlocal):
13561         Use adjust_address_nv directly with appropriate mode.
13562         (restore_stack_nonlocal): Ditto.
13563
13564 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
13565
13566         * config/xtensa/xtensa-protos.h: Remove the prototype for
13567         xtensa_builtin_saveregs.
13568         * config/xtensa/xtensa.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
13569         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
13570         (TARGET_PROMOTE_PROTOTYPES): Likewise.
13571         (TARGET_STRUCT_VALUE_RTX): Likewise.
13572         (TARGET_RETURN_IN_MEMORY): Likewise.
13573         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
13574         (xtensa_builtin_saveregs): Make it static.
13575         (xtensa_return_in_memory): New.
13576         * config/xtensa/xtensa.h (PROMOTE_FUNCTION_ARGS: Remove.
13577         (PROMOTE_FUNCTION_RETURN): Likewise.
13578         (PROMOTE_PROTOTYPES): Likewise.
13579         (STRUCT_VALUE): Likewise.
13580         (RETURN_IN_MEMORY): Likewise.
13581         (EXPAND_BUILTIN_SAVEREGS): Likewise.
13582
13583 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
13584
13585         * config/arm/arm.c (TARGET_SETUP_INCOMING_VARARGS): New.
13586         (arm_setup_incoming_varargs): Likewise.
13587         * config/arm/arm.h (SETUP_INCOMING_VARARGS): Remove.
13588
13589 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
13590
13591         * config/cris/cris.c (TARGET_SETUP_INCOMING_VARARGS): New.
13592         (cris_setup_incoming_varargs): Likewise.
13593         * config/cris/cris.h (SETUP_INCOMING_VARARGS): Remove.
13594
13595 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
13596
13597         * config/ns32k/ns32k.c (TARGET_STRUCT_VALUE_RTX): New.
13598         (ns32k_struct_value_rtx): Likewise.
13599         * config/ns32k/ns32k.h (STRUCT_VALUE_REGNUM): Rename to
13600         NS32K_STRUCT_VALUE_REGNUM.
13601
13602 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
13603
13604         * config/arm/arm.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
13605         (TARGET_PROMOTE_PROTOTYPES): Likewise.
13606         (TARGET_STRUCT_VALUE_RTX): Likewise.
13607         (arm_struct_value_rtx): Likewise.
13608         * config/arm/arm.h (PROMOTE_FUNCTION_ARGS): Remove.
13609         (STRUCT_VALUE): Likewise.
13610         (STRUCT_VALUE_REGNUM): Likewise.
13611         (PROMOTE_PROTOTYPES): Likewise.
13612
13613 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
13614
13615         * config/ia64/ia64-protos.h: Remove the prototype for
13616         ia64_setup_incoming_varargs and ia64_return_in_memory.
13617         * config/ia64/ia64.c (TARGET_STRUCT_VALUE_RTX): New.
13618         (TARGET_RETURN_IN_MEMORY): Likewise.
13619         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
13620         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
13621         (ia64_setup_incoming_varargs): Adjust the arguments to meet
13622         the requirement of TARGET_SETUP_INCOMING_VARARGS.
13623         (ia64_return_in_memory): Make it static.  Change the return
13624         type to bool from int.  Add an argument.
13625         (ia64_struct_value_rtx): New.
13626         * config/ia64/ia64.h: Remove commented-out definitions of
13627         PROMOTE_FUNCTION_ARGS, PROMOTE_FUNCTION_RETURN, and
13628         PROMOTE_PROTOTYPES.
13629         (RETURN_IN_MEMORY): Remove.
13630         (STRUCT_VALUE_REGNUM): Likewise.
13631         (STRICT_ARGUMENT_NAMING): Likewise.
13632
13633 2004-01-26  Eric Botcazou  <ebotcazou@libertysurf.fr>
13634
13635         PR target/13666
13636         * config/sparc/sparc.c (function_arg_union_value): New function.
13637         (function_arg): Use it to deal with unions.
13638         (function_value): Likewise.  Define 'regbase' only for ARCH64.
13639         Replace a conditional statement by a simpler one.
13640
13641 2004-01-26  Richard Sandiford  <rsandifo@redhat.com>
13642
13643         * config/mips/mips.c (mips16_optimize_gp): Delete.
13644         (mips_reorg): Don't call it.
13645
13646 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13647
13648         * config/c4x/c4x.md (addqi3_noclobber): Move up pecking order.
13649         (floatunsqihf2): Remove operand 6.
13650         (fixhfqi_set, fix_trunchfqi2, fixuns_trunchfqi2): Group with other
13651         fix patterns.
13652         (ldi_conditional, ldf_conditional): Validate operands.
13653
13654 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13655
13656         * config/c4x/c4x.h (BCT_CHECK_LOOP_ITERATIONS): Remove.
13657         (HAVE_GAS_HIDDEN): Undefine as interim measure.
13658
13659 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13660
13661         * config/c4x/c4x.c (c4x_legitimate_address_p):  Invalidate direct
13662         memory references if TARGET_EXPOSE_LDP nonzero.
13663
13664 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13665
13666         * config/c4x/c4x.c (legitimize_operands): Truncate invalid shift counts.
13667
13668 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13669
13670         * config/c4x/c4x.c (c4x_valid_operands): More aggressively reject
13671         invalid operand combinations.
13672
13673 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13674
13675         * config/c4x/c4x.c (c4x_check_legit_addr): Rename to
13676         c4x_legitimate_address_p.  Fix post_modify check.
13677
13678         * config/c4x/c4x-protos.h (c4x_check_legit_addr): Adjust.
13679         * config/c4x/c4x.h (c4x_check_legit_addr): Adjust.
13680
13681 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
13682
13683         * config/pa/pa-protos.h: Remove the prototype for
13684         hppa_builtin_saveregs.  Add a prototype for
13685         pa_return_in_memory.
13686         * config/pa/pa.c (TARGET_PROMOTE_FUNCTION_RETURN): New.
13687         (TARGET_PROMOTE_PROTOTYPES): Likewise.
13688         (TARGET_STRUCT_VALUE_RTX): Likewise.
13689         (TARGET_RETURN_IN_MEMORY): Likewise.
13690         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
13691         (pa_struct_value_rtx): Likewise.
13692         (pa_return_in_memory): Likewise.
13693         * config/pa/pa.h (STRUCT_VALUE_REGNUM): Rename to
13694         PA_STRUCT_VALUE_REGNUM.
13695         (INIT_CUMULATIVE_ARGS): Use pa_return_in_memory.
13696         (EXPAND_BUILTIN_SAVEREGS): Remove.
13697         (PROMOTE_PROTOTYPES): Likewise.
13698         (PROMOTE_FUNCTION_RETURN): Likewise.
13699
13700 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
13701
13702         * config/vax/vax.c (TARGET_PROMOTE_PROTOTYPES): New.
13703         (TARGET_STRUCT_VALUE_RTX): Likewise.
13704         (vax_struct_value_rtx): Likewise.
13705         * config/vax/vax.h (STRUCT_VALUE_REGNUM): Rename to
13706         VAX_STRUCT_VALUE_REGNUM.
13707         (PROMOTE_PROTOTYPES): Remove.
13708
13709 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13710
13711         * config/c4x/c4x.h (LEGITIMIZE_RELOAD_ADDRESS):  Handle symref.
13712
13713 2003-04-25  Chris Demetriou  <cgd@broadcom.com>
13714
13715         * config/mips/mips.h (ISA_HAS_HILO_INTERLOCKS): MIPS32, MIPS32r2,
13716         and MIPS64 have HI/LO interlocks.  Update comment.
13717
13718 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
13719
13720         * config/stormy16/stormy16-protos.h: Remove the prototype for
13721         xstormy16_setup_incoming_varargs.
13722         * config/stormy16/stormy16.c
13723         (xstormy16_setup_incoming_varargs): Remove.
13724         (xstormy16_return_in_memory): New.
13725         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
13726         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
13727         (TARGET_PROMOTE_PROTOTYPES): Likewise.
13728         (TARGET_STRUCT_VALUE_RTX): Likewise.
13729         (TARGET_RETURN_IN_MEMORY): Likewise.
13730         * config/stormy16/stormy16.h (PROMOTE_FUNCTION_ARGS): Remove.
13731         (PROMOTE_FUNCTION_RETURN): Likewise
13732         (PROMOTE_PROTOTYPES): Likewise
13733         (RETURN_IN_MEMORY): Likewise
13734         (STRUCT_VALUE): Likewise
13735         (SETUP_INCOMING_VARARGS): Likewise
13736
13737 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
13738
13739         * config/mips/mips.c (mips_offset_within_object_p): New function.
13740         (mips_symbolic_constant_p): Use it in the SYMBOL_SMALL_DATA and
13741         SYMBOL_CONSTANT_POOL cases.  Also use it for SYMBOL_GENERAL if the
13742         ABI has 64-bit pointers and the object file only allows 32-bit symbols.
13743
13744 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
13745
13746         * config/sh/sh.h (PROMOTE_FUNCTION_ARGS): Remove.
13747         (PROMOTE_FUNCTION_RETURN): Likewise.
13748
13749 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
13750
13751         * config/mn10300/mn10300-protos.h: Remove the prototype for
13752         mn10300_builtin_saveregs.
13753         * config/mn10300/mn10300.c (TARGET_PROMOTE_PROTOTYPES): New.
13754         (TARGET_STRUCT_VALUE_RTX): Likewise.
13755         (TARGET_RETURN_IN_MEMORY): Likewise.
13756         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
13757         (mn10300_return_in_memory): Likewise.
13758         (mn10300_builtin_saveregs): Make it static.
13759         * config/mn10300/mn10300.h (PROMOTE_PROTOTYPES): Remove.
13760         (RETURN_IN_MEMORY): Likewise.
13761         (STRUCT_VALUE): Likewise.
13762         (EXPAND_BUILTIN_SAVEREGS): Likewise.
13763
13764 2004-01-25  Eric Botcazou  <ebotcazou@act-europe.fr>
13765
13766         PR bootstrap/13853
13767         * cfgcleanup.c (try_optimize_cfg): Explicitly test against 0.
13768
13769 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
13770
13771         * config/h8300/lib1funcs.asm (divnorm, modnorm): Optimize by
13772         using ccr.
13773
13774 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
13775
13776         * config/i860/i860-protos.h: Remove the prototype for
13777         i860_saveregs.
13778         * config/i860/i860.c (i860_saveregs): Make it static.
13779         (i860_struct_value_rtx): New.
13780         (TARGET_STRUCT_VALUE_RTX): Likewise.
13781         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
13782         * config/i860/i860.h (STRUCT_VALUE_REGNUM): Rename to
13783         I860_STRUCT_VALUE_REGNUM.
13784         (EXPAND_BUILTIN_SAVEREGS): Remove.
13785
13786 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
13787
13788         * config/m68hc11/m68hc11.c (TARGET_STRUCT_VALUE_RTX): New.
13789         (TARGET_RETURN_IN_MEMORY): Likewise.
13790         (m68hc11_struct_value_rtx): Likewise.
13791         (m68hc11_return_in_memory): Likewise.
13792         * config/m68hc11/m68hc11.h: Remove a commented-out definition
13793         of PROMOTE_PROTOTYPES.
13794         (RETURN_IN_MEMORY): Remove.
13795         (STRUCT_VALUE_REGNUM): Likewise.
13796
13797 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
13798
13799         * config/mmix/mmix-protos.h: Remove the prototype for
13800         mmix_setup_incoming_varargs.
13801         * config/mmix/mmix.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
13802         (TARGET_STRUCT_VALUE_RTX): Likewise.
13803         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
13804         (mmix_setup_incoming_varargs): Make it static.
13805         (mmix_struct_value_rtx): New.
13806         * config/mmix/mmix.h (PROMOTE_FUNCTION_ARGS): Remove.
13807         Remove a commented-out definition of PROMOTE_FUNCTION_RETURN.
13808         (STRUCT_VALUE_REGNUM): Remove.
13809         (SETUP_INCOMING_VARARGS): Likewise.
13810
13811 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
13812
13813         * config/mips/mips-protos.h: Remove the prototypes for
13814         mips_setup_incoming_varargs and mips_return_in_memory.
13815         * config/mips/mips.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
13816         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
13817         (TARGET_PROMOTE_PROTOTYPES): Likewise.
13818         (TARGET_STRUCT_VALUE_RTX): Likewise.
13819         (TARGET_RETURN_IN_MEMORY): Likewise.
13820         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
13821         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
13822         (mips_setup_incoming_varargs): Match the prototype for
13823         TARGET_SETUP_INCOMING_VARARGS.
13824         (mips_return_in_memory): Make it static.  Add argument fntype.
13825         (mips_strict_argument_naming): New.
13826         * config/mips/mips.h (PROMOTE_PROTOTYPES): Remove.
13827         (PROMOTE_FUNCTION_ARGS): Likewise.
13828         (PROMOTE_FUNCTION_RETURN): Likewise.
13829         (STRUCT_VALUE): Likewise.
13830         (RETURN_IN_MEMORY): Likewise.
13831         (SETUP_INCOMING_VARARGS): Likewise.
13832         (STRICT_ARGUMENT_NAMING): Likewise.
13833
13834 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
13835
13836         * config/ip2k/ip2k.c (TARGET_STRUCT_VALUE_RTX): New.
13837         (TARGET_RETURN_IN_MEMORY): Likewise.
13838         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
13839         (ip2k_return_in_memory): Likewise.
13840         (ip2k_setup_incoming_varargs): Likewise.
13841         * config/ip2k/ip2k.h (RETURN_IN_MEMORY): Remove.
13842         (STRUCT_VALUE): Likewise.
13843         (STRUCT_VALUE_INCOMING): Likewise.
13844         (SETUP_INCOMING_VARARGS): Likewise.
13845
13846 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
13847
13848         * config/avr/avr.c (TARGET_STRUCT_VALUE_RTX): New.
13849         (TARGET_RETURN_IN_MEMORY): Likewise.
13850         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
13851         (avr_return_in_memory): Remove.
13852         * config/avr/avr.h (RETURN_IN_MEMORY): Remove.
13853         (STRUCT_VALUE): Likewise.
13854         (STRUCT_VALUE_INCOMING): Likewise.
13855         (STRICT_ARGUMENT_NAMING): Likewise.
13856
13857 2004-01-25  Jan Hubicka  <jh@suse.cz>
13858
13859         * combine.c (recog_for_combine): Avoid allocating unnecesary RTX.
13860
13861 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
13862
13863         * config/mips/mips-protos.h (mips_reg_mode_ok_for_base_p): Delete.
13864         (mips_regno_mode_ok_for_base_p): Declare.
13865         * config/mips/mips.h (ARG_POINTER_REGNUM): Renumber to 77.
13866         (FRAME_POINTER_REGNUM): Renumber to 78.
13867         (FIRST_PSEUDO_REGISTER): Update comment accordingly.
13868         (BASE_REG_P, GP_REG_OR_PSEUDO_STRICT_P): Delete.
13869         (GP_REG_OR_PSEUDO_NONSTRICT_P): Delete.
13870         (REGNO_MODE_OK_FOR_BASE_P): Use mips_regno_mode_ok_for_base_p.
13871         (REG_MODE_OK_FOR_BASE_P): Likewise.
13872         * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Change
13873         entry for 77 to "$arg" and entry for 78 to "$frame".
13874         (mips_regno_to_class): Map 77 and 78 to ALL_REGS.
13875         (mips_reg_mode_ok_for_base_p): Remove.
13876         (mips_regno_mode_ok_for_base_p): New function, derived from old
13877         BASE_REG_P macro.  Don't enforce the mips16 stack pointer
13878         restrictions unless we're being strict.
13879         (mips_valid_base_register_p): Use mips_regno_mode_ok_for_base_p.
13880
13881 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
13882
13883         * c-common.h: Fix comment typos.
13884         * c-decl.c: Likewise.
13885         * cgraphunit.c: Likewise.
13886         * combine.c: Likewise.
13887         * et-forest.c: Likewise.
13888         * flow.c: Likewise.
13889         * function.c: Likewise.
13890         * ifcvt.c: Likewise.
13891         * integrate.c: Likewise.
13892         * jump.c: Likewise.
13893         * postreload.c: Likewise.
13894         * varray.c: Likewise.
13895
13896 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
13897
13898         * doc/frontends.texi: Update copyright.
13899         * doc/gcov.texi: Likewise.
13900         * doc/gty.texi: Likewise.
13901         * doc/sourcebuild.texi: Likewise.
13902         * doc/standards.texi: Likewise.
13903
13904 2004-01-24  Herman A.J. ten Brugge  <hermantenbrugge@home.nl>
13905
13906         PR target/12978
13907         * c4x.md: (movstrqi*) Use match_scratch instead of match_dup.
13908         Remove movstrqi_small because it conflicts with movstrqi_large.
13909
13910 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
13911
13912         * config/cris/cris.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
13913         (TARGET_STRUCT_VALUE_RTX): Likewise.
13914         (cris_struct_value_rtx): Likewise.
13915         * config/cris/cris.h (PROMOTE_FUNCTION_ARGS): Remove.
13916         (CRIS_STACKADJ_REG): Use CRIS_STRUCT_VALUE_REGNUM instead of
13917         STRUCT_VALUE_REGNUM.
13918         (STRUCT_VALUE_REGNUM): Rename to CRIS_STRUCT_VALUE_REGNUM.
13919
13920 2004-01-24  Ian Lance Taylor  <ian@wasabisystems.com>
13921
13922         PR bootstrap/13848
13923         * cse.c (cse_cc_succs): Change the mode of the source expression
13924         as soon as decide we need a new mode.  Don't permit changing modes
13925         if we found a match in a successor block.
13926         (cse_condition_code_reg): Save original mode of source expression
13927         so that we know whether we have to change the mode in other
13928         insns.
13929
13930 2004-01-24  Jan Hubicka  <jh@suse.cz>
13931
13932         * emit-rtl.c (change_address, adjust_address_1, offset_address,
13933         widen_memory_access):  Return early when there is nothing to change.
13934
13935 2004-01-24  Jakub Jelinek  <jakub@redhat.com>
13936
13937         * simplify-rtx.c (simplify_relational_operation): Don't
13938         simplify address == constant into address + -constant == 0.
13939
13940 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
13941
13942         * gcc.c (process_command): Don't internationalize the
13943         Copyright message.
13944         * mips-tfile.c (main): Likewise.
13945
13946 2004-01-24  Andreas Tobler  <a.tobler@schweiz.ch>
13947
13948         * cse.c: (cse_cc_succs) Fix comparison warning.
13949
13950 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
13951
13952         * config/h8300/h8300.md: Remove extraneous USE in expanders.
13953
13954 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
13955
13956         * config/h8300/h8300-protos.h: Provide prototypes for
13957         h8300_legitimate_constant_p and h8300_legitimate_address_p.
13958         * config/h8300/h8300.c (h8300_legitimate_constant_p): New.
13959         (h8300_rtx_ok_for_base_p): Likewise.
13960         (h8300_legitimate_address_p): Likewise.
13961         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Use
13962         h8300_legitimate_constant_p.
13963         (RTX_OK_FOR_BASE_P): Remove.
13964         (GO_IF_LEGITIMATE_ADDRESS): Use h8300_legitimate_address_p.
13965
13966 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
13967
13968         * config/h8300/h8300.h (REG_OK_FOR_INDEX_NONSTRICT_P): New.
13969         (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
13970         (REG_OK_FOR_INDEX_STRICT_P): Likewise.
13971         (REG_OK_FOR_BASE_STRICT_P): Likewise.
13972         (REG_OK_FOR_INDEX_STRICT_P): Use REGNO_OK_FOR_INDEX_P.
13973         (REG_OK_FOR_BASE_STRICT_P): Use REGNO_OK_FOR_BASE_P.
13974         (REG_OK_FOR_INDEX_P): Use REG_OK_FOR_INDEX_STRICT_P.
13975         (REG_OK_FOR_BASE_P): Use REG_OK_FOR_BASE_STRICT_P.
13976
13977 2004-01-24  Jan Hubicka  <jh@suse.cz>
13978
13979         * cselib.c (remove_useless_values):  Do not access discarded values.
13980
13981 2004-01-24  Joseph S. Myers  <jsm@polyomino.org.uk>
13982
13983         * c-typeck.c (build_conditional_expr): Do not allow non-lvalue
13984         arrays.
13985
13986 2004-01-23  Kazu Hirata  <kazu@cs.umass.edu>
13987
13988         * recog.c: Fix a typo in copyright.
13989
13990 2004-01-23  Andrew Pinski  <apinski@apple.com>
13991
13992         * config/rs6000/rs6000.md (call): Fix misappiled patch.
13993         (call_value): Likewise.
13994
13995 2004-01-23  Richard Henderson  <rth@redhat.com>
13996
13997         PR opt/12941
13998         * combine.c (SHIFT_COUNT_TRUNCATED): Provide default value.
13999         (simplify_comparison): Don't simplify (eq (zero_extract c 1 r) 0)
14000         if SHIFT_COUNT_TRUNCATED is set.
14001
14002 2004-01-23  Bob Wilson  <bob.wilson@acm.org>
14003
14004         * config/xtensa/xtensa.c (xtensa_va_arg): Handle complex values as
14005         separate real and imaginary parts.
14006         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Define.
14007
14008 2004-01-23  Hartmut Penner <hpenner@de.ibm.com>
14009
14010         PR target/13674
14011         * config/rs6000/rs6000.md (movdf_hardfloat64): Do not disparage
14012         loading into GPR.
14013
14014 2004-01-23  Jan Hubicka  <jh@suse.cz>
14015
14016         * emit-rtl.c (change_address_1):  Do not re-generate the RTX if nothing
14017         change.
14018
14019         * alloc-pool.c (align_four): Kill.
14020         (create_alloc_pool): Align size to eight.
14021         (free_alloc_pool, free_pool): Invalidate deallocated data.
14022
14023 2004-01-23  Ian Lance Taylor  <ian@wasabisystems.com>
14024
14025         PR gcc/1532
14026         * cse.c (cse_change_cc_mode): New static function.
14027         (cse_change_cc_mode_insns, cse_cc_succs): Likewise.
14028         (cse_condition_code_reg): New function.
14029         * rtl.h (cse_condition_code_reg): Declare.
14030         * toplev.c (rest_of_handle_cse2): Call cse_condition_code_reg.
14031         * target.h (struct gcc_target): Add fixed_condition_code_regs and
14032         cc_modes_compatible.
14033         * target-def.h (TARGET_FIXED_CONDITION_CODE_REGS): Define.
14034         (TARGET_CC_MODES_COMPATIBLE): Define.
14035         (TARGET_INITIALIZER): Add new initializers.
14036         * targhooks.c (default_cc_modes_compatible): New function.
14037         * targhooks.c (default_cc_modes_compatible): Declare.
14038         * hooks.c (hook_bool_intp_intp_false): New function.
14039         * hooks.h (hook_bool_intp_intp_false): Declare.
14040         * config/i386/i386.c (TARGET_FIXED_CONDITION_CODE_REGS): Define.
14041         (TARGET_CC_MODES_COMPATIBLE): Define.
14042         (ix86_fixed_condition_code_regs): New static function.
14043         (ix86_cc_modes_compatible): Likewise.
14044         * doc/tm.texi (Condition Code): Document new hooks.
14045
14046 2004-01-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14047
14048         * fixinc/inclhack.def (bad_lval): Renamed to ...
14049         (alpha_bad_lval): ... this.
14050         Removed file list.
14051         Restrict to alpha*-dec-osf*.
14052         * fixinc/fixincl.x: Regenerate.
14053         * fixinc/tests/base/dirent.h: Remove, moving test ...
14054         * fixinc/tests/base/testing.h: ... here, reflecting new name.
14055
14056 2004-01-23  Zack Weinberg  <zack@codesourcery.com>
14057
14058         PR c/13814
14059         * c-decl.c (diagnose_mismatched_decls): Also discard a
14060         built-in if we encounter an old-style definition with the
14061         same name.
14062
14063 2004-01-23  Jakub Jelinek  <jakub@redhat.com>
14064
14065         * config.gcc (powerpc*-*): Clear $with_cpu or $with_tune if it was
14066         set to default{32,64}.
14067
14068 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
14069
14070         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR)
14071         [!__powerpc64__]: Corrected to handle kernels with changed ucontext.
14072
14073 2004-01-23  Eric Botcazou  <ebotcazou@act-europe.fr>
14074             Olivier Hainque  <hainque@act-europe.fr>
14075
14076         * fold-const.c (fold_binary_op_with_conditional_arg): Only
14077         build a COMPOUND_EXPR if 'arg' is really a SAVE_EXPR.
14078
14079 2004-01-23  Daniel Jacobowitz  <drow@mvista.com>
14080
14081         * config/arm/arm.c (arm_legitimate_address_p): Don't check the mode
14082         size for minipool references.
14083
14084 2004-01-23  Roger Sayle  <roger@eyesopen.com>
14085
14086         * real.c (real_floor, real_ceil): Tweak to allow input and output
14087         arguments to overlap.
14088         (real_round): New function to implement round(3m) semantics.
14089         * real.h (real_round): Prototype here.
14090         * builtins.c (fold_builtin_round): New function to constant fold
14091         round, roundf and roundl.
14092         (fold_builtin): Call fold_builtin_round for BUILT_IN_ROUND{,F,L}.
14093
14094 2004-01-23  Alexandre Oliva  <aoliva@redhat.com>
14095
14096         PR optimization/13819
14097         * config/sh/sh.c (sh_reorg): Compensate for sharing of CLOBBERs
14098         introduced by 2004-01-20's Jan Hubicka's copy_insn change.
14099         (sh_handle_sp_switch_attribute): Remove warning.
14100
14101 2003-11-30  Jan Hubicka  <jh@suse.cz>
14102
14103         * i386.c (ix86_emit_restore_regs_using_mov):  Deal with large offsets.
14104
14105 2004-01-23  J"orn Rennecke <joern.rennecke@superh.com>
14106
14107         * doc/tm.texi: Insert some weasel words when LOAD_EXTEND_OP
14108         may or may not return non-NIL.
14109         * postreload.c (reload_cse_simplify_operands): In LOAD_EXTEND_OP code,
14110         check CANNOT_CHANGE_MODE_CLASS
14111
14112 2004-01-23  Jan Hubicka  <jh@suse.cz>
14113
14114         * basic-block.h (PROP_POSTRELOAD): New macro.
14115         (CLEANUP_LOG_LINKS): New.
14116         * cfgcleanup.c (cleanup_cfg): Only PROP_LOG_LINKS when asked to.
14117         * toplev.c (rest_of_handle_life):  Preserve LOG_LINKS trought cleanup_cfg.
14118
14119         * cselib.c (value_pool): New.
14120         (new_cselib_val): Use pool.
14121         (cselib_init): Initialize value_pool
14122         (cselib_finish): Free pool.
14123
14124 2004-01-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
14125
14126         * config/sparc/sparc.c (scan_record_type): New function.
14127         (function_arg_slotno): Use it to determine which kinds of
14128         registers the record can be passed in.
14129
14130 2004-01-22  James A. Mmorrison  <ja2morri@uwaterloo.ca>
14131
14132         * config/pa/fptr.c: Fix old-style definition.
14133
14134 2004-01-22  Paolo Bonzini  <bonzini@gnu.org>
14135
14136         PR optimization/13724
14137         * cse.c (fold_rtx) <SUBREG>:  Fold a SUBREG to zero if it
14138         represents the zero bits produced by a ZERO_EXTEND operation.
14139
14140 2004-01-22  Roger Sayle  <roger@eyesopen.com>
14141
14142         PR optimization/13821
14143         * simplify-rtx.c (simplify_subreg): Use subreg_lowpart_offset to
14144         correctly calculate the lowpart offset of the contracted subreg.
14145
14146 2004-01-22  Ian Lance Taylor  <ian@wasabisystems.com>
14147
14148         * doc/invoke.texi (Optimize Options): Note that --param arguments
14149         are subject to change without notice.
14150
14151 2004-01-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14152
14153         * config.gcc (mips-sgi-irix6*o32): Removed.
14154         * config/mips/iris6-o32-as.h: Likewise.
14155         * config/mips/iris6-o32-gas.h: Likewise.
14156         * config/mips/iris6-o32.h: Likewise.
14157
14158 2004-01-22  Jan Hubicka  <jh@suse.cz>
14159
14160         * cfgcleanup.c (first_pass): New static variable.
14161         (try_forward_edges):  Add work limiting check for threading.
14162         (try_crossjump_bb):  Add work limiting check for crossjumping.
14163         (try_optimize_cfg):  Maintain first pass variable.
14164
14165 2004-01-22  Bob Wilson  <bob.wilson@acm.org>
14166
14167         * config/xtensa/xtensa.c (function_arg): Generalize logic so that it
14168         handles complex and vector modes.
14169
14170 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
14171
14172         * config/h8300/h8300.h (REG_OK_FOR_INDEX_P_STRICT): Remove.
14173         (REG_OK_FOR_BASE_P_STRICT): Likewise.
14174         (STRICT): Likewise.
14175
14176 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
14177
14178         * c-semantics.c (genrtl_while_stmt, genrtl_do_stmt_1)
14179         (genrtl_for_stmt): Remove emit_nop calls.
14180
14181 2004-01-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14182
14183         PR target/13713
14184         PR target/13324
14185         * pa.md (movstrsi_prereload, movstrsi_postreload, movstrdi_prereload,
14186         movstrdi_postreload, clrstrsi_prereload, clrstrsi_postreload,
14187         clrstrdi_prereload, clrstrdi_postreload): Fix constraints.
14188
14189 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
14190
14191         * config/arm/arm.c: Include "debug.h".
14192         (thumb_pushpop): Take two new arguments.  Add some commentary.
14193         Output frame information when pushing.
14194         (thumb_exit, thumb_unexpanded_epilogue): Update calls to
14195         thumb_pushpop.
14196         (thumb_output_function_prologue): Likewise.  Accumulate a CFA
14197         offset, and pass it to thumb_pushpop.  Output CFI information.
14198         (thumb_expand_prologue): Add some frame-related markers and notes.
14199
14200 2004-01-22  Ulrich Weigand  <uweigand@de.ibm.com>
14201
14202         * config/s390/s390.c (s390_frame_info): Allow large frame sizes
14203         for TARGET_64BIT.
14204         (s390_arg_frame_offset): Change return type to HOST_WIDE_INT.
14205         * config/s390/s390-protos.h (s390_arg_frame_offset): Likewise.
14206
14207 2004-01-22  Roger Sayle  <roger@eyesopen.com>
14208             Paolo Bonzini  <bonzini@gnu.org>
14209
14210         * rtlanal.c (subreg_lsb_1): New function split out from subreg_lsb.
14211         (subreg_lsb): Change to call new subreg_lsb_1 helper function.
14212         * rtl.h (subreg_lsb_1): Prototype here.
14213         * simplify-rtx.c (simplify_subreg): Optimize subregs of zero and
14214         sign extensions.
14215
14216 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
14217
14218         * doc/tm.texi (CASE_VECTOR_PC_RELATIVE): Mention that the
14219         macro need not be defined if jump-tables should contain
14220         relative addresses only when -fPIC or -fPIC is in effect.
14221
14222 2004-01-22  Jan Hubicka  <jh@suse.cz>
14223
14224         * alias.c (reg_base_value): Turn into varray.
14225         (reg_base_value_size): Kill.
14226         (old_reg_base_value): New deletable varray.
14227         (alias_invariant_size): New variable.
14228         (REG_BASE_VALUE): Update to use varray.
14229         (find_base_value): Likewise.
14230         (record_set): Likewise.
14231         (record_base_value): Likewise.
14232         (memrefs_conflict_p): Likewise.
14233         (record_set): Likewise
14234         (record_base_value): Likewise.
14235         (memrefs_conflict_p): Use alias_invariant_size.
14236         (init_alias_analysis): Use varray; set alias_invariant_size;
14237         rescale other arrays to be sized by maxreg.
14238         (end_alias_analysis): Save reg_base_value; clear alias_invariant_size.
14239
14240 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
14241
14242         * config/sparc/sparc.c (function_arg_slotno): Use
14243         FLOAT_TYPE_P to detect FP fields in structures.
14244         (function_arg_record_value_1): Likewise.
14245         (function_arg_record_value_2): Likewise.
14246
14247 2004-01-22  Jan Hubicka  <jh@suse.cz>
14248
14249         * function.c (allocate_struct_function): Do not initialize expr, emit
14250         and varasm.
14251         (prepare_function_start): Do it here.
14252         * c-parse.in (maybe_type_qual): Do not produce line number notes.
14253
14254 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
14255
14256         PR target/13559
14257         * config/sparc/sparc.c (function_arg_record_value_3): Revert
14258         to 'word_mode' once the first slot has been filled.
14259
14260 2004-01-22  Olivier Hainque  <hainque@act-europe.fr>
14261
14262         * config/sparc/sparc.c (function_arg_record_value_1): Fix
14263         computation of the number of integer registers required.
14264
14265 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
14266
14267         * config/i386/i386.md: Simplify certain comparisons of
14268         const_int.
14269
14270 2004-01-21  Andrew Pinski  <apinski@apple.com>
14271
14272         PR target/13785
14273         * config/rs6000/rs6000.md (call_value): Force operand
14274         1 not operand 0 into a register.
14275
14276 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
14277
14278         * cpperror.c, cpptrad.c, longlong.h, params.def, rtl.def,
14279         unwind-dw2-fde.h: Update copyright.
14280
14281 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14282
14283         * pa-protos.h: Update copyright.
14284         * pa.h: Likewise.
14285         * pa.md: Likewise.
14286
14287 2004-01-21  Caroline Tice  <ctice@apple.com>
14288
14289         PR target/12308
14290         * config/i386/i386.md (fix_truncxfdi2): Add clause to clobber
14291         flags register.
14292         (fix_truncdfdi2): Likewise.
14293         (fix_truncsfdi2): Likewise.
14294         (*fix_truncdi_1): Likewise.
14295         (fix_truncxfsi2): Likewise.
14296         (fix_truncdfsi2): Likewise.
14297         (fix_truncsfsi2): Likewise.
14298         (*fix_truncsi_1): Likewise.
14299         (fix_truncxfhi2): Likewise.
14300         (fix_truncdfhi2): Likewise.
14301         (fix_truncsfhi2): Likewise.
14302         (*fix_trunchi_1): Likewise.
14303
14304 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
14305
14306         * alias.c, basic-block.h, c-common.c, c-common.h,
14307         c-cppbuiltin.c, c-opts.c, c-pragma.c, c-pretty-print.c,
14308         calls.c, cfg.c, cfgcleanup.c, cfgrtl.c, cgraph.h, collect2.c,
14309         combine.c, cppcharset.c, cpphash.h, cppinit.c, cpplib.c,
14310         cpplib.h, cppmacro.c, crtstuff.c, cselib.c, cselib.h,
14311         defaults.h, df.c, dominance.c, et-forest.c, expmed.c, expr.c,
14312         expr.h, fix-header.c, function.h, gcc.c, gcse.c, genattrtab.c,
14313         genautomata.c, genconditions.c, genemit.c, genflags.c,
14314         gengtype.c, gengtype.h, genopinit.c, genrecog.c, gensupport.c,
14315         ggc-zone.c, graph.c, haifa-sched.c, input.h, integrate.c,
14316         langhooks-def.h, langhooks.c, langhooks.h, line-map.c,
14317         line-map.h, local-alloc.c, optabs.c, optabs.h, postreload.c,
14318         ra.h, recog.c, reg-stack.c, regmove.c, reload.c, reorg.c,
14319         rtl.c, sched-deps.c, sched-ebb.c, sdbout.c, system.h,
14320         target.h, targhooks.c, toplev.h, tree-inline.c, unwind-pe.h,
14321         unwind.h, varray.c, varray.h: Update copyright.
14322
14323 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
14324
14325         * config/h8300/coff.h: Update copyright.
14326         * config/h8300/elf.h: Likewise.
14327         * config/h8300/h8300-protos.h: Likewise.
14328         * config/h8300/h8300.c: Likewise.
14329         * config/h8300/h8300.h: Likewise.
14330         * config/h8300/h8300.md: Likewise.
14331
14332 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14333
14334         * fixinc/inclhack.def (hpux10_stdio_declarations, ultrix_const3,
14335         ultrix_locale, ultrix_stdlib, ultrix_strings, ultrix_sys_time,
14336         ultrix_unistd): New hacks.
14337         * fixinc/tests/base/stdio.h (HPUX10_STDIO_DECLARATIONS_CHECK,
14338         ULTRIX_CONST2_CHECK): Add checks.
14339         * fixinc/tests/base/stdlib.h (ULTRIX_STDLIB_CHECK): Likewise.
14340         * fixinc/tests/base/strings.h (ULTRIX_STRINGS2_CHECK): Likewise.
14341         * fixinc/tests/base/unistd.h (ULTRIX_UNISTD_CHECK): Likewise.
14342         * fixinc/tests/base/sys/time.h (ULTRIX_SYS_TIME_CHECK): Likewise.
14343         * fixinc/tests/base/locale.h: New file.
14344         * fixinc/fixincl.x: Rebuilt.
14345
14346 2004-01-21  Andreas Jaeger  <aj@suse.de>
14347             Michael Matz  <matz@suse.de>
14348
14349         * doc/extend.texi (Extended Asm): Clarify memory clobber.
14350
14351 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
14352
14353         * crtstuff.c (frame_dummy, __do_global_ctors_1): Call
14354         _Jv_RegisterClasses through a function pointer.
14355
14356 2004-01-21  Falk Hueffner  <falk@debian.org>
14357
14358         PR target/12898
14359         * config/alpha/alpha.c (alpha_emit_set_const_1): If
14360         no_new_pseudos, use gen_rtx_SET directly for SImode constants
14361         which need multiple instructions to emit.
14362
14363 2004-01-21  Inaoka Kazuhiro  <inaoka.kazuhiro@renesas.com>
14364
14365         * config/m32r/m32r.h (CPP_SPEC): Define.
14366
14367 2004-01-21  Zack Weinberg  <zack@codesourcery.com>
14368
14369         * c-decl.c (merge_decls): Kill different_binding_level and
14370         different_tu arguments; simplify throughout.
14371         (duplicate_decls): Likewise.
14372         (pushdecl, merge_translation_unit_decls): Update calls to
14373         duplicate_decls.
14374
14375 2004-01-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14376
14377         * Makefile.in (pretty-print.o): Depend on $(CONFIG_H) and
14378         $(SYSTEM_H).
14379         (print-rtl1.o): Depend on $(SYSTEM_H).
14380
14381 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
14382
14383         PR bootstrap/12730
14384         * configure.ac: Delete definition and subsitution of docdir.
14385         Add info, man, srcman and srcinfo to target hooks. Create doc/
14386         directory.
14387         * configure: Regenerate.
14388         * Makefile.in: Don't substitute docdir and delete all references
14389         throughout.
14390         (MAKEINFOFLAGS): Define.
14391         (stmp-docobjdir): Delete.
14392         (INFOFILES, MANFILES): Define.
14393         (info): Call lang.info, srcinfo and lang.srcinfo.
14394         (generated-manpages): Call lang.man, srcman and lang.srcman.
14395         (srcinfo, srcman): New rules to copy back files to source directory.
14396         (doc/%.info, doc/%.dvi, doc/%.1, doc/%.7): New implict rule.
14397         (install-man): Revamp rule.
14398         (clean): Update dvi directory.
14399         (distclean): Delete TAGS from front end directorys.
14400         (maintainer-clean): Delete all document files in source directory.
14401
14402         objc/Make-lang.in (objc.man, objc.info): Dummy entries.
14403         (objc.srcman, objc.srcinfo): Likewise.
14404
14405 2004-01-20  Bruce Korb  <bkorb@gnu.org>
14406
14407         * fixinc/inclhack.def(math_exception): bypass only for glibc.
14408         (matherr_decl): rename & relocate as exception_structure.
14409         This fix must precede the math_exception fix.
14410
14411 2004-01-20  Roger Sayle  <roger@eyesopen.com>
14412
14413         * fold-const.c (fold_convert): Rename to fold_convert_const.
14414         (fold_convert_const): Change arguments to take a tree_code,
14415         a type and the operand/expression to be converted.  Return
14416         NULL_TREE if no simplification is possible.  Add support for
14417         FIX_CEIL_EXPR and FIX_FLOOR_EXPR in addition to FIX_TRUNC_EXPR.
14418         (fold): Handle FIX_CEIL_EXPR and FIX_FLOOR_EXPR.
14419         Adjust call to fold_convert to match new fold_convert_const.
14420         Avoid modifying the tree passed to fold in-place.
14421
14422 2004-01-21  Alan Modra  <amodra@bigpond.net.au>
14423
14424         * config/rs6000/sysv4.h (DWARF2_FRAME_REG_OUT): Define.
14425         * dwarf2out.c (output_cfi): Map regs using DWARF2_FRAME_REG_OUT.
14426         * doc/tm.texi (DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Document.
14427
14428 2004-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14429
14430         * pa-protos.h (compute_frame_size): Use HOST_WIDE_INT for frame sizes.
14431         * pa.c (store_reg, store_reg_modify, load_reg, set_reg_plus_d):
14432         Likewise.  Handle frames larger than 0x7fffffff on 64-bit ports.
14433         (emit_move_sequence): Check scratch_reg first in various if statements.
14434         Extend source simplification to handle all 64-bit CONST_INTs.
14435         (pa_output_function_prologue): Use HOST_WIDE_INT_PRINT_DEC for printing
14436         frame size.
14437         (hppa_expand_prologue, hppa_expand_epilogue): Use HOST_WIDE_INT for
14438         frame offset calculations.
14439         * pa.h (NEW_HP_ASSEMBLER): Add comment.
14440         (MAX_LEGIT_64BIT_CONST_INT, MIN_LEGIT_64BIT_CONST_INT,
14441         LEGITIMATE_64BIT_CONST_INT_P): Define.
14442         (LEGITIMATE_CONSTANT_P): Use LEGITIMATE_64BIT_CONST_INT_P.  Treat
14443         any CONST_INT as legitimate during and after reload.
14444         (VAL_32_BITS_P, INT_32_BITS): Define.
14445         (LEGITIMIZE_RELOAD_ADDRESS): Handle large frame offsets.
14446
14447 2004-01-20  Jan Hubicka  <jh@suse.cz>
14448
14449         * emit-rtl.c (verify_rtx_sharing, copy_insn_1,
14450         emit_copy_of_insn_after, emit_copy_of_insn_after): Clobbers
14451         containing hard regs are shared.
14452         (gen_hard_reg_clobber): New function.
14453         (hard_reg_clobbers): New array.
14454         * genemit.c (gen_exp): Use gen_hard_reg_clobber.
14455         (copy_rtx): Do not copy clobbers containing hard regs.
14456         * rtl.h (gen_hard_reg_clobber): Declare.
14457
14458 2004-01-20  Jan Hubicka  <jh@suse.cz>
14459
14460         * varray.c:  Include hashtab.h
14461         (varray_descriptor): New structure.
14462         (hash_descriptor, eq_descriptor, varray_descriptor,
14463         print_statistics): New static functions
14464         (varray_init, varray_grow): Update statistics
14465         (dump_varray_statistics): New function.
14466         * varray.h (dump_varray_statistics): Declare.
14467         * toplev.c (finalize): Call it.
14468         * Makefile.in (varray.o): Add dependency.
14469
14470 2004-01-20  Jan Hubicka  <jh@suse.cz>
14471
14472         * cselib.c: Include alloc-pool.h
14473         (empty_vals, empty_elt_lists, empty_elt_loc_lists): Kill.
14474         (elt_loc_list_pool, elt_list_pool, cselib_val_pool): Declare.
14475         (new_elt_list, new_elt_loc_list, unchain_one_elt_list,
14476         unchain_one_elt_loc_list_pool, unchain_one_value,
14477         new_cselib_val): Simplify using allocpool.
14478         (cselib_init): Initialize allocpools.
14479         (cselib_finish): Finish allocpools.
14480         * Makefile.in (cselib.o): Depend on alloc-pool.h
14481
14482 2004-01-20  Richard Sandiford  <rsandifo@redhat.com>
14483
14484         * config/mips/mips.c (mips_load_call_address): Make the call insn
14485         use $gp if it could be calling a lazy binding stub.
14486
14487 2004-01-20  Kazu Hirata  <kazu@cs.umass.edu>
14488
14489         * config/s390/s390.c (TARGET_PROMOTE_FUNCTION_ARGS): Define.
14490         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
14491         (TARGET_STRUCT_VALUE_RTX): Likewise.
14492         * config/s390/s390.h (PROMOTE_FUNCTION_ARGS): Remove.
14493         (PROMOTE_FUNCTION_RETURN): Remove.
14494         (STRUCT_VALUE): Remove.
14495
14496 2004-01-20  Denis Chertykov  <denisc@overta.ru>
14497
14498         PR bootstrap/13735
14499         * config/avr/avr.h (BASE_REG_CLASS): Don't permit to use X
14500         register as pointer after reload.
14501
14502 2004-01-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
14503
14504         PR optimization/12440
14505         * loop.c: Include ggc.h.
14506         (loop_optimize): Run garbage collector between optimization of loops.
14507         * Makefile.in (loop.o): Add GGC_H dependency.
14508
14509 2004-01-20  Hartmut Penner  <hpenner@de.ibm.com>
14510
14511         * gcc/config/rs6000/rs6000.c (function_arg) Handle
14512         vector register special in function without prototype.
14513         (function_arg_advance): Vector parameters get always
14514         GPRs allocated for the linux64 target.
14515
14516 2004-01-20  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
14517
14518         * config/m32r/m32r.h (TARGET_M32R2). Test for TARGET_M32R2_MASK
14519         not TARGET_M32RX_MASK.
14520
14521 2004-01-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
14522
14523         PR target/13557
14524         * config/sparc/sparc.c (function_arg): Reorder the cases.
14525
14526 2004-01-19  Per Bothner  <per@bothner.com>
14527
14528         Move cpp_reader's line_maps field to a shared global.
14529         * cpphash.h (cpp_reader):  Rename line_maps field to line_table
14530         and change the type to a pointer rather than a struct.
14531         * cppinit.c (cpp_push_main_field):  Adjust accordingly.
14532         * cpplib.c (do_include_common, _cpp_do_file_change, cpp_get_callbacks):
14533         Likewise.
14534         * cppfiles.c (validate_pch):  Likewise.
14535         * cppmacro.c (_cpp_warn_if_unused_macro, _cpp_builtin_macro_text):
14536         Likewise.
14537         * cpperror.c (print_location):  Likewise.
14538         * cpplib.h (cpp_create_reader):  New line_maps pointer parameter.
14539         * cppinit.c (cpp_create_reader):  Handle new parameter.
14540         (cpp_destroy):  Don't free line_maps - that's no longer our job.
14541         * input.h (line_table):  New variable.
14542         * toplev.c (line_table):  Declare variable.
14543         (general_init):  Initialize line_table.
14544         * c-opts.c (c_common_init_options):  Pass line_table to
14545         cpp_create_reader.
14546         * fix-header.c (read_scan_file):  New local variable line_table.
14547         Initialize, and pass it to cpp_create_reader.
14548         * Makefile.in (LIBS, LIBDEPS):  Add libcpp.a.
14549         (C_AND_OBJC_OBJS, fix-header):  Remove redundant libcpp.a.
14550
14551 2004-01-19  Per Bothner  <per@bothner.com>
14552
14553         Implement a cache for linemap_lookup.
14554         * line-map.h (struct_line_maps):  Add cache field.
14555         * line-map.c (linemap_init):  Zero cache field.
14556         (linemap_add):  Set cache field to offset of newly allocated map.
14557         (linemap_lookup):  Use and set cache field.
14558
14559 2004-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
14560
14561         PR optimization/13567
14562         * cse.c (cse_basic_block): Call cse_insn with a non-null
14563         libcall_insn for the last SET insn of a no-confilict block.
14564
14565 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
14566
14567         * Makefile.in (target_noncanonical, program_transform_name): Use
14568         immediate define instead of deferred.
14569         (GCC_INSTALL_NAME, GCC_TARGET_INSTALL_NAME, CPP_INSTALL_NAME,
14570         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, GCOV_INSTALL_NAME,
14571         GCCBUG_INSTALL_NAME): Define via a immediate $(shell) instead of
14572         deferred backquote.
14573
14574 2004-01-20  Joseph S. Myers  <jsm@polyomino.org.uk>
14575
14576         * c-decl.c (c_init_decl_processing): Set pedantic_lvalues to
14577         true unconditionally.
14578         * c-typeck.c (unary_complex_lvalue, pedantic_lvalue_warning):
14579         Remove.
14580         (build_unary_op, build_modify_expr): Don't handle extended
14581         lvalues.
14582         (build_component_ref, build_conditional_expr): Call non_lvalue
14583         instead of pedantic_non_lvalue.
14584         (build_c_cast): Don't condition use of non_lvalue on pedantic.
14585         * fold-const.c (fold): Don't check pedantic directly for
14586         COMPOUND_EXPR.  Ensure that results for COMPOUND_EXPR are
14587         passed to pedantic_non_lvalue.
14588         * doc/extend.texi: Remove documentation of extended lvalues.
14589
14590 2004-01-19  Roger Sayle  <roger@eyesopen.com>
14591
14592         PR optimization/5263
14593         * simplify-rtx.c (associative_constant_p): Delete.
14594         (simplify_associative_operation): Rewrite to linearize terms, and
14595         attempt to simplify new term against both left and right subterms.
14596         (simplify_binary_operation): Call swap_commutative_operands_p on
14597         op0 and op1, not trueop0 and trueop1.  Move the initialization of
14598         trueop0 and trueop1 down to where first needed.
14599         (simplify_relational_operation): Likewise.
14600         * rtlanal.c (commutative_operand_precedence): Also order constant
14601         operands using avoid_constant_pool_reference.
14602
14603 2004-01-19  Richard Henderson  <rth@redhat.com>
14604
14605         * config/alpha/alpha.c (aligned_memory_operand): Check MEM_ALIGN,
14606         don't check memory mode.
14607         (unaligned_memory_operand): Likewise.
14608         (reload_inqi, reload_inhi, reload_outqi, reload_outhi): Don't
14609         abort for op0 not MEM.
14610
14611         * config/alpha/alpha.c (alpha_expand_mov_nobwx): If the destination
14612         is not a reg, copy to a scratch first.
14613         (aligned_loadqi, aligned_loadhi, unaligned_loadqi, unaligned_loadhi,
14614         unaligned_loadqi_le, unaligned_loadqi_be, unaligned_loadhi_le,
14615         unaligned_loadhi_be): Expect op0 in DImode; don't SUBREG.
14616         (reload_inqi, reload_inhi): Fix mode of op0.
14617         (reload_inqi_help, reload_inhi_help, reload_outqi_help,
14618         reload_outhi_help): Likewise.  Use define_insn_and_split.
14619
14620         * config/alpha/alpha.md (call peepholes): Check for REG_NORETURN
14621         as well as $29 dead.
14622
14623 2004-01-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
14624
14625         * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): New.  Emit
14626         "tls_object" for thread-local objects.
14627         * config/sparc/sparc.c (sparc_elf_asm_named_section): Emit
14628         "#tls" for thread-local sections.
14629         * configure.ac (thread-local checks): Specify --fatal-warnings in
14630         every binutils-specific checks.  For sparc*-*-*, test whether the
14631         OS is Solaris and the tools are native and act accordingly.
14632         * configure: Rebuild.
14633
14634 2004-01-19  Jeff Law  <law@redhat.com>
14635
14636         * contrib.texi: Update Paolo Carlini's entry.  New entries for
14637         Jerry Quinn and Petur Runolfsson.
14638
14639 2004-01-19  Roger Sayle  <roger@eyesopen.com>
14640
14641         * config/i386/i386.md (*movhi_1, *movqi_1): When optimizing for
14642         size, don't use the larger zero-extending loads.
14643
14644 2004-01-19  Richard Henderson  <rth@redhat.com>
14645
14646         * alpha.h (HARD_REGNO_MODE_OK): Disallow SImode in FP regs.
14647         * alpha.md (UNSPEC_NT_LDA): Remove.
14648         (UNSPEC_CVTLQ, cvtlq): New.
14649         (extendsidi2_1): Rename from extendsidi2_nofix; remove f/f.
14650         (extendsidi2_fix): Remove.
14651         (extendsidi2 splitter): Use cvtlq.
14652         (extendsidi2 fp peepholes): Remove.
14653         (cvtql): Use SFmode instead of SImode.
14654         (fix_trunc?fsi): Update to match.
14655         (floatsisf2_ieee, floatsisf2, floatsidf2_ieee, floatsidf2): New.
14656         (movsi): Rename from movsi_nofix, remove f alternatives.
14657         (movsi_nt_vms): Similarly.
14658         (movsi_fix, movsi_nt_vms_fix): Remove.
14659         (nt_lda): Remove.
14660         * alpha.c (alpha_expand_prologue): Use adddi3, not nt_lda.
14661
14662 2004-01-19  Jan Hubicka  <jh@suse.cz>
14663
14664         * cgraph.c (cgraph_remove_node): Fix removal from linked list.
14665         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear next_needed
14666         list.
14667         (cgraph_remove_unreachable_nodes): New function
14668         (cgraph_decide_inlining_of_small_function): Fix pasto.
14669         (cgraph_decide_inlining_incrementally): Fix pasto.
14670         (cgrpah_decide_inlining): Likewise; remove unreachable nodes.
14671
14672 2004-01-19  Steven Bosscher  <stevenb@suse.de>
14673
14674         * gengtype.c (header_file): Make it static.
14675         (write_types_process_field, write_enum_defn): Minor whitespace fixes.
14676         * gengtype.h (header_file): No longer extern.
14677
14678 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
14679
14680         * defaults.h (CASE_VECTOR_PC_RELATIVE): Provide the default.
14681         * expr.c (CASE_VECTOR_PC_RELATIVE): Remove.
14682         * stmt.c (CASE_VECTOR_PC_RELATIVE): Likewise.
14683
14684 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
14685
14686         * stmt.c (HAVE_casesi): Define it not already defined.
14687         (HAVE_tablejump): Likewise.
14688         (expand_end_case_type): Resort to the binary tree method if
14689         neither casesi or tablejump is available.
14690
14691 2004-01-18  Daniel Jacobowitz  <drow@mvista.com>
14692
14693         * final.c (final_scan_insn): Make non-static again.
14694         * output.h (final_scan_insn): Re-add prototype.
14695         * config/arc/arc.c (arc_output_function_epilogue): Add NULL
14696         to final_scan_insn call.
14697         * config/cris/cris.c (cris_target_asm_function_epilogue): Likewise.
14698         * config/mips/mips.c (mips_output_conditional_branch): Likewise.
14699         * config/pa/pa.c (output_lbranch, output_call): Likewise.
14700         * config/sh/sh.c (print_slot): Likewise.
14701         * config/sparc/sparc.c (sparc_nonflat_function_epilogue): Likewise.
14702         (output_sibcall, sparc_flat_function_epilogue): Likewise.
14703
14704 2004-01-18  Jan Hubicka  <jh@suse.cz>
14705
14706         * basic-block.h (try_redirect_by_replacing_jump): Declare.
14707         * cfgcleanup.c (try_optimize_cfg): Use it.
14708         * cfgrtl.c (try_redirect_by_replacing_jump): Export.
14709         (rtl_redirect_edge_and_branch, cfg_layout_redirect_edge_and_branch):
14710         Kill hack.
14711         (cfg_layout_merge_blocks): Use try_redirect_by_replacing_jump.
14712
14713         Revert:
14714         2004-01-16  Geoffrey Keating  <geoffk@apple.com>
14715
14716                 * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
14717                 even after reload, just don't remove the actual jump tables.
14718
14719 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
14720
14721         * config/rs6000/rs6000.h (STRICT_ARGUMENT_NAMING): Remove.
14722
14723 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
14724
14725         * defaults.h (ASM_OUTPUT_ADDR_VEC_ELT): Fix the computation of
14726         the size of a pointer in bytes.
14727
14728 2004-01-18  Roger Sayle  <roger@eyesopen.com>
14729
14730         * builtins.c (expand_builtin_expect_jump): Fix thinko of reusing
14731         live "next" variable, which could lead to an infinite loop.
14732
14733 2004-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
14734
14735         * config/rs6000/altivec.h: Wrap C++ functions in extern "C++"
14736         block.
14737
14738         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
14739         Check for NULL in the chain and remove repeated code.
14740
14741 2004-01-18  Jan Hubicka  <jh@suse.cz>
14742
14743         * coverage.c (checksum_string): Rename to ...
14744         (coverage_checksum_string): ... this one, Use crc32_string; recognize
14745         names containing random number and zero the number out in order to get
14746         match.
14747
14748 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
14749
14750         * config/mips/mips.c (mips_got_alias_set): Mark for PCH.
14751
14752 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
14753
14754         * doc/c-tree.texi, doc/cpp.texi, doc/extend.texi,
14755         doc/frontends.texi, doc/gcov.texi, doc/gty.texi, doc/install.texi,
14756         doc/invoke.texi, doc/libgcc.texi, doc/md.texi, doc/rtl.texi,
14757         doc/sourcebuild.texi, doc/standards.texi, doc/tm.texi,
14758         doc/trouble.texi: Remove trailing whitespace.
14759
14760 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
14761
14762         PR target/7618
14763         * config/mips/mips.c: Include cfglayout.h.
14764         (TARGET_ASM_OUTPUT_MI_THUNK, TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
14765         (mips_unspec_offset_high): Add temporary register argument.
14766         (mips_load_call_address): New function, split out from...
14767         (mips_expand_call): ...here.
14768         (mips_output_cplocal): New function.
14769         (mips_output_function_prologue, mips_output_function_epilogue): Use it.
14770         (mips_emit_loadgp): New function, split out from...
14771         (mips_expand_prologue): ...here.
14772         (mips_output_mi_thunk): New function.
14773
14774 2004-01-17  Bernardo Innocenti  <bernie@develer.com>
14775
14776         * longlong.h (mc68020, __mc68030__, mc68030, __mc68040__, mc68040,
14777         mcpu32): Remove redundant checks for implied target predefines.
14778
14779 2004-1-17  Andrew Pinski  <pinskia@physics.uc.edu>
14780
14781         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
14782         Return type is unsigned int not int.
14783         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
14784         Likewise.
14785
14786 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
14787
14788         * doc/contrib.texi, doc/cppenv.texi, doc/extend.texi,
14789         doc/install.texi, doc/invoke.texi, doc/tm.texi: Consistently use
14790         "GNU/Linux" and "Microsoft Windows" terminology.
14791
14792 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
14793
14794         * doc/c-tree.texi, doc/compat.texi, doc/cpp.texi,
14795         doc/cppopts.texi, doc/extend.texi, doc/install.texi,
14796         doc/interface.texi, doc/invoke.texi, doc/libgcc.texi, doc/md.texi,
14797         doc/objc.texi, doc/rtl.texi, doc/tm.texi, doc/trouble.texi: Use
14798         @smallexample instead of @example.
14799
14800 2004-01-17  Ziemowit Laski  <zlaski@apple.com>
14801
14802         * objc/objc-act.c (build_objc_method_call): Use target
14803         hooks instead of macros to determine if ..._stret
14804         dispatchers should be used (NeXT runtime only).
14805
14806 2004-01-17  Roger Sayle  <roger@eyesopen.com>
14807
14808         * builtins.c (expand_builtin_expect_jump): Fix mistake in my
14809         last patch.  Use XEXP (x, 0) to get a LABEL_REF's CODE_LABEL.
14810
14811 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
14812
14813         * rtl.h (emit_insn_before_sameloc, emit_jump_insn_before_sameloc)
14814         (emit_call_insn_before_sameloc, emit_insn_after_sameloc)
14815         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): New
14816         macros.
14817         * reload1.c (emit_reload_insns): Use them.
14818         * emit-rtl.c (emit_insn_before_sameloc, emit_insn_after_sameloc)
14819         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): Check
14820         for NULL PATTERN.
14821
14822 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
14823
14824         * final.c (SEEN_BB, SEEN_NOTE, SEEN_EMITTED): Define.
14825         (final_scan_insn): Update to take an additional SEEN argument.  Emit
14826         a line note after the prologue.  Make static.
14827         (line_note_exists): Remove.
14828         (final): Don't initialize line_note_exists.  Update call to
14829         final_scan_insn.
14830         * output.h (final_scan_insn): Remove prologue.
14831         * function.c (set_insn_locators): Update comment.
14832         (thread_prologue_and_epilogue_insns): Add a comment.
14833
14834 2004-01-17  Andrew Pinski  <pinskia@physics.uc.edu>
14835
14836         PR target/10781
14837         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
14838         Prototype.
14839         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
14840         New function.
14841         * config/rs6000/linux64.h (ROUND_TYPE_ALIGN): Use it.
14842         * config/rs6000/aix.h (ROUND_TYPE_ALIGN): Likewise.
14843         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Likewise.
14844
14845 2004-01-17  Jan Hubicka  <jh@suse.cz>
14846
14847         * toplev.c (rest_of_handle_reorder_blocks): Fix pasto in previous
14848         commit.
14849
14850         * toplev.c (HAVE_conditional_execution): Provide default.
14851         (rest_of_handle_reorder_blocks): For conditional_execution target
14852         update liveness once after all transformations
14853         (rest_of_compilation): Do crossjumping before ce3.
14854
14855 2004-01-17  Geoffrey Keating  <geoffk@apple.com>
14856
14857         * alias.c (new_alias_set): Mark last_alias_set for PCH.
14858         (get_varargs_alias_set): Rename 'set' to 'varargs_set' and mark it
14859         for PCH.
14860         (get_frame_alias_set): Likewise, except rename it to 'frame_set'.
14861         * config/rs6000/rs6000.c (rs6000_sr_alias_set): Mark for PCH.
14862         (get_TOC_alias_set): Mark 'set' for PCH.
14863
14864 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
14865
14866         * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
14867         even after reload, just don't remove the actual jump tables.
14868
14869 2004-01-17  J. Brobecker  <brobecker@gnat.com>
14870
14871         * dwarf2out.c (is_subrange_type): Renamed from is_ada_subrange_type().
14872         Remove checks for is_ada() and TREE_UNSIGNED.
14873         (subrange_type_die): Emit a byte_size attribute if the subrange
14874         type size is different from the base type size.
14875         (modified_type_die): Replace call to is_ada_subrange_type() by
14876         call to is_subrange_type().
14877
14878 2004-01-16  Andrew Pinski  <pinskia@physics.uc.edu>
14879
14880         * config/sh/sh.c: Include ggc.h.
14881
14882 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
14883
14884         * Makefile.in (MD5_H): New.
14885         (fold-const.o): Depend on md5.h.
14886         (dwarf2out.o): Likewise.
14887         (cppfiles.o): Likewise.
14888         * cppfiles.c: Include md5.h.
14889         (should_stack_file): Check against list read from PCH file.
14890         (struct pchf_data): New.
14891         (pchf): New variable.
14892         (struct pchf_adder_info): New.
14893         (pchf_adder): New.
14894         (pchf_save_compare): New.
14895         (_cpp_save_file_entries): New.
14896         (_cpp_read_file_entries): New.
14897         (struct pchf_compare_data): New.
14898         (pchf_compare): New.
14899         (check_file_against_entries): New.
14900         * cpphash.h (_cpp_save_file_entries): Prototype.
14901         (_cpp_read_file_entries): Prototype.
14902         * cpppch.c (cpp_write_pch_state): Write the list of headers.
14903         (cpp_read_state): Read the list of headers.
14904
14905 2004-01-17  Jan Hubicka  <jh@suse.cz>
14906
14907         * c-common.c (c_estimate_num_insns_1): Handle builtin_constant_p and
14908         builtin_expect specially.
14909         * params.def (PARAM_MAX_INLINE_INSNS_AUTO): Set to 100.
14910         (PARAM_LARGE_FUNCTION_INSNS): Set to 3000.
14911         * invoke.texi (max-inline-insns-single): Set to 100.
14912         (large-function-insns): Set to 3000.
14913
14914 2004-01-16  Eric Christopher  <echristo@redhat.com>
14915             Chandrakala Chavva <cchavva@redhat.com>
14916
14917         * cppcharset.c (one_iso88591_to_utf8): New function.
14918         (convert_iso88591_utf8): Ditto. Use.
14919         (conversion_tab): Use.
14920         (_cpp_input_to_utf8): New function.
14921         (_cpp_init_iconv_buffer): Ditto.
14922         (_cpp_close_iconv_buffer): Ditto.
14923         * cpphash.h: Prototype new functions.
14924         (cpp_buffer): Add input_cset_desc.
14925         * cppinit.c: Add input_charset default.
14926         * cpplib.c (cpp_push_buffer): Support init and
14927         close of iconv.
14928         * cpplib.h (cpp_options): Add input_charset.
14929
14930 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
14931
14932         * system.h (ASM_OUTPUT_SECTION_NAME): Poison.
14933         * config/alpha/unicosmk.h: Remove a commented-out definition
14934         of ASM_OUTPUT_SECTION_NAME.
14935         * config/stormy16/stormy16.h: Likewise.
14936
14937 2004-01-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14938
14939         * fixinc/inclhack.def (alpha___extern_prefix): Renamed to ...
14940         (alpha___extern_prefix_sys_stat): ... this.
14941         Apply to <sys/mount.h>, too.
14942         Tweak to match more variations.
14943         * fixinc/tests/base/sys/stat.h: Adapt for new hackname.
14944
14945         * fixinc/inclhack.def (alpha___extern_prefix,
14946         alpha___extern_prefix_standards): New hacks to obey
14947         __PRAGMA_EXTERN_PREFIX.
14948         * fixinc/tests/base/testing.h [ALPHA___EXTERN_PREFIX_CHECK]: New
14949         test.
14950         * fixinc/tests/base/standards.h: Likewise.
14951
14952         * fixincl/inclhack.def (alpha_pthread): Tweak to match more
14953         variations.
14954         New testcase.
14955         * fixinc/tests/base/pthread.h: Handle it.
14956
14957         * fixincl/inclhack.def (bad_lval): Sort file list.
14958         Add many missing files up to Tru64 UNIX V5.1B.
14959         * gcc/fixinc/tests/base/libgen.h: Renamed to ...
14960         * gcc/fixinc/tests/base/dirent.h: ... this to match new file list
14961         order.
14962
14963         * fixinc/fixincl.x: Regenerate.
14964
14965 2004-01-16  Mark Mitchell  <mark@codesourcery.com>
14966
14967         * version.c (version_string): Change to 3.5.0.
14968         * doc/include/gcc-common.texi (version-GCC): Likewise.
14969
14970 2004-01-16  Jan Hubicka  <jh@suse.cz>
14971
14972         * i386.md (load_tp_di): Fix pasto.
14973
14974         PR opt/13608
14975         * i386.c (ix86_compute_frame_layout): Fix for alloca on leaf function.
14976
14977         * c-pretty-print.c (pp_c_type_cast, pp_c_abstract_declarator,
14978         pp_c_character_constant, pp_c_floating_constant,
14979         pp_c_additive_expression, pp_c_shift_expression,
14980         pp_c_equality_expression, pp_c_and_expression,
14981         pp_c_exclusive_or_expression, pp_c_inclusive_or_expression,
14982         pp_c_logical_and_expression): Remove inline modifier.
14983         * dwarf2out.c (get_AT): Likewise.
14984         * et-forest.c (et_splay): Likewise.
14985         * ra.h (ra_alloc, ra_calloc): Likewise
14986
14987 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
14988
14989         * config/frv/frv-protos.h: Fix comment formatting.
14990         * config/frv/frv.c: Likewise.
14991         * config/frv/frv.h: Likewise.
14992         * config/frv/frv.md: Likewise.
14993         * config/frv/frvbegin.c: Likewise.
14994         * config/frv/frvend.c: Likewise.
14995
14996 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
14997
14998         * system.h (LINKER_DOES_NOT_WORK_WITH_DWARF2): Poison.
14999         * doc/tm.texi (PREFERRED_DEBUGGING_TYPE): Don't mention
15000         LINKER_DOES_NOT_WORK_WITH_DWARF2.
15001         (LINKER_DOES_NOT_WORK_WITH_DWARF2): Remove.
15002
15003 2004-01-16  J"orn Rennecke <joern.rennecke@superh.com>
15004
15005         PR 11864
15006         * postreload.c (reload_cse_simplify_operands): Don't remove
15007         implicit extension from LOAD_EXTEND_OP.
15008
15009 2004-01-16  Jan Hubicka  <jh@suse.cz>
15010
15011         PR opt/11350
15012         * cfgcleanup.c (try_optimize_cfg): Suppress tablejump removal
15013         after reload.
15014         * cfgrtl.c (rtl_can_merge_blocks, cfglayout_can_merge_blocks,
15015         rtl_try_redirect_by_replacing_branch): Likewise.
15016
15017 2004-01-15  Geoffrey Keating  <geoffk@apple.com>
15018
15019         PR pch/13689
15020         * alias.c (struct alias_set_entry): Mark for GC.
15021         (alias_sets): Make static, mark for GC.
15022         (record_alias_subset): Use GC to allocate alias structures.
15023         * varray.c (element): Make generic varrays GCed.
15024
15025         PR pch/13361
15026         * c-typeck.c (constructor_asmspec): Delete.
15027         (struct initializer_stack): Delete field 'asmspec'.
15028         (start_init): Delete saving of asmspec.
15029         (finish_init): Don't update constructor_asmspec.
15030         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
15031         * stmt.c (expand_asm): Duplicate strings from tree.
15032         (expand_asm_operands): Likewise.
15033         * tree.c (tree_size): Update computation of size of STRING_CST.
15034         (make_node): Don't make STRING_CST nodes.
15035         (build_string): Allocate string with tree node.
15036         * tree.def (STRING_CST): Update comment.
15037         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
15038         (tree_string): Place contents of string in tree node.
15039         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
15040         from tree.
15041
15042         * config/rs6000/rs6000.c (rs6000_va_arg): No need to special-case
15043         altivec operands.
15044
15045 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
15046
15047         * c-common.h: Fix comment formatting.
15048         * c-cppbuiltin.c: Likewise.
15049         * c-pragma.c: Likewise.
15050         * calls.c: Likewise.
15051         * collect2.c: Likewise.
15052         * cppcharset.c: Likewise.
15053         * cpptrad.c: Likewise.
15054         * dbxout.c: Likewise.
15055         * defaults.h: Likewise.
15056         * dwarf2out.c: Likewise.
15057         * fold-const.c: Likewise.
15058         * genautomata.c: Likewise.
15059         * genconditions.c: Likewise.
15060         * genflags.c: Likewise.
15061         * gengtype.c: Likewise.
15062         * integrate.c: Likewise.
15063         * loop.c: Likewise.
15064         * predict.c: Likewise.
15065         * sdbout.c: Likewise.
15066
15067 2004-01-15  Zack Weinberg  <zack@codesourcery.com>
15068
15069         * config/ia64/ia64.md (*movti_internal): C output template
15070         extracted to ia64.c.
15071         (*movti_internal_reg): Delete.
15072         (reload_inti, reload_outti): Use the correct mode on operand 2
15073         in the first place, don't fix it up in the output template.
15074         (movtf, reload_ointf, reload_outtf): New expanders.
15075         (*movtf_internal): New define_insn_and_split.
15076         * config/ia64/ia64.c (ia64_split_timode): Rename to ia64_split_tmode;
15077         make static; do not hand TFmode CONST_DOUBLEs to split_double.
15078         (ia64_split_tmode_move): New function, body mostly pulled
15079         from ia64.md:*movti_internal.
15080         (ia64_function_arg_words): New function, extracted common
15081         logic from ia64_function_arg et seq.
15082         (ia64_function_arg_offset): Likewise.  Handle correctly the
15083         case of a scalar quantity 16 bytes wide with only 8-byte alignment.
15084         (ia64_function_arg, ia64_function_arg_partial_nregs)
15085         (ia64_function_arg_advance): Use ia64_function_arg_words and
15086         ia64_function_arg_offset.
15087         (ia64_function_value): TCmode does not go in float regs.
15088         (ia64_secondary_reload_class): Also handle TFmode.
15089         * config/ia64/ia64-protos.h: Remove prototype for
15090         ia64_split_timode; add prototype for ia64_split_tmode_move.
15091
15092 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
15093
15094         * Makefile.in (MAINT): Make it an immediate assignment.
15095
15096 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
15097
15098         * config/m32r/m32r.md: Remove useless calls to gen_lowpart.
15099
15100 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
15101
15102         * config/h8300/coff.h: Replace Hitachi with Renesas.
15103         * config/h8300/elf.h: Likewise.
15104         * config/h8300/h8300-protos.h: Likewise.
15105         * config/h8300/h8300.c: Likewise.
15106         * config/h8300/h8300.h: Likewise.
15107         * config/h8300/h8300.md: Likewise.
15108         * config/h8300/lib1funcs.asm: Likewise.
15109
15110 2004-01-15  Andrew Pinski  <apinski@apple.com>
15111
15112         * config/rs6000/rs6000.c (uses_TOC): Wrap #if TARGET_ELF
15113         around it.
15114
15115 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
15116
15117         * config/h8300/h8300.c (h8300_return_in_memory): New.
15118         (TARGET_STRUCT_VALUE_RTX): Likewise.
15119         (TARGET_RETURN_IN_MEMORY): Likewise.
15120         * config/h8300/h8300.h (STRUCT_VALUE): Remove.
15121         (RETURN_IN_MEMORY): Likewise.
15122
15123 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
15124
15125         PR optimization/13375
15126         * gcse.c (handle_avail_expr): Just return if the source is not a
15127         single set.
15128
15129 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
15130             Daniel Jacobowitz  <drow@mvista.com>
15131
15132         * arm/lib1funcs.asm (ARM_FUNC_START): Correct interworking case.
15133         (EQUIV): Define.
15134         (ARM_FUNC_ALIAS): New macro.
15135         * arm/ieee754-df.S (gedf2, ledf2, nedf2, eqdf2): Use it.
15136         * arm/ieee754-sf.S (gesf2, lesf2, nesf2, eqsf2): Use it.
15137
15138 2004-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15139
15140         PR optimization/12372
15141         * calls.c (expand_call): Add call_fusage data for stack arguments in
15142         constant calls.
15143
15144 2004-01-15  Alan Modra  <amodra@bigpond.net.au>
15145
15146         * config/rs6000/rs6000.c (uses_TOC): Correct comment.  Make static.
15147         (rs6000_elf_declare_function_name): Formatting.
15148         * config/rs6000/rs6000-protos.h (uses_TOC): Remove declaration.
15149
15150 2004-01-15  Jan Hubicka  <jh@suse.cz>
15151
15152         PR bootstrap/13692
15153         * sched-deps.c (sched_analyze_1, sched_analyze_2): Fix thinko in
15154         previous patch.
15155
15156 2004-01-15  Richard Henderson  <rth@redhat.com>
15157
15158         * config/alpha/alpha.h (REG_ALLOC_ORDER): Reorder fp regs after
15159         integer regs of the same call-savedness.
15160
15161 2004-01-15  Andreas Schwab  <schwab@suse.de>
15162
15163         PR bootstrap/13562
15164         * config/m68k/m68k.c (output_move_const_into_data_reg): Clear cc
15165         status for NOTB/NOTW/NEGW methods.
15166
15167 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
15168
15169         * doc/invoke.texi: Update dump file names.  Fix a typo.
15170
15171 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
15172
15173         * builtins.c (expand_builtin_va_end): Don't use
15174         EXPAND_BUILTIN_VA_END.
15175         * system.h (EXPAND_BUILTIN_VA_END): Poison.
15176         * config/d30v/d30v.h: Remove a commented-out definition of
15177         EXPAND_BUILTIN_VA_END.
15178         * config/stormy16/stormy16.h: Likewise.
15179
15180 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
15181
15182         * system.h (STRUCT_VALUE_INCOMING_REGNUM): Poison.
15183         * targhooks.c (default_struct_value_rtx): Don't use
15184         STRUCT_VALUE_INCOMING_REGNUM.
15185
15186 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
15187
15188         PR bootstrap/12744
15189         * configure.in: Revamp enable-generated-files-in-srcdir rule to define
15190         GENINSRC and not parsedir.  Define srcextra as a langhook.
15191         * configure: Regenerate.
15192         * Makefile.in: Suppress default .l.c rule.  Don't substitute
15193         parsedir and delete all references throughout.  Conditionally define
15194         rule for srcextra dependent on GENINSRC.
15195         (stmp-docobjdir): Delete.
15196         (c-parse.o, gengtype-lex.o, gengtype-yacc.o): Use implicit build rule.
15197         (srcextra): Copy c-parse.y, c-parse.c, gengtype-lex.c, gengtype-yacc.c,
15198         and gengtype-yacc.h back to source directory.
15199         (maintainer-clean): Delete all parse files in source directory.
15200         (distclean): Delete generated files.
15201
15202         * objc/Make-lang.in (objc-parse.o): Use implicit build rule.
15203         (objc-parse.c, objc-parse.y): Don't use parsedir.
15204         (objc.srcextra): Copy objc-parse.y and objc-parse.c back to source
15205         directory if requested.
15206         (po-generated): Don't use parsedir.
15207         (objc.maintainer-clean): Delete above files from source directory.
15208
15209 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
15210
15211         * doc/tm.texi (FUNCTION_VALUE): Fix a typo.
15212
15213 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
15214
15215         * doc/tm.texi: Replace RETURN_IN_MEMORY with
15216         TARGET_RETURN_IN_MEMORY.
15217
15218 2004-01-15  Jan Hubicka  <jh@suse.cz>
15219
15220         * builtins.c (std_expand_builtin_va_arg): Align operand when needed.
15221         * i386.c (init_cumulative_args): Set warn_sse; fix handling of variadic
15222         functions accepting SSE arguments
15223         (function_arg): Warn only when asked to warn.
15224         * i386.h (ix86_args): Add warn_sse/warn_mmx fiels.
15225
15226 2004-01-14  Joseph S. Myers  <jsm@polyomino.org.uk>
15227
15228         * c-parse.in (stmts_and_decls): Make label at end of compound
15229         statement a hard error.
15230
15231 2004-01-14  Jan Hubicka  <jh@suse.cz>
15232
15233         * cgraph.c (create_edge): Use local.redefined_extern_inline.
15234         * cgraph.h (cgraph_local_info): Sort fields by size; add
15235         redefined_extern_inline
15236         (cgraph_global_info): Sort fields by size.
15237         (cgraph_node): Likewise.
15238         * cgraphunit.c (cgraph_finalize_function): Se
15239         local.redefined_extern_inline on redefinition.
15240         (cgraph_analyze_function): Use it; fix formating.
15241
15242 2004-01-14  Jan Hubicka  <jh@suse.cz>
15243
15244         PR c++/10776
15245         * sched-deps.c (trye_dependency_cache, anti_dependency_cache,
15246         outptu_dependency_cache, forward_dependency_cahe): Trun to vectors of
15247         bitmaps
15248         (cache_size): New variable
15249         (add_dependence): Update use; canonize early memory locations
15250         (sched_analyze_1): Likewise.
15251         (sched_analyze_2): Likewise.
15252         (init_dependency_caches): Initialize bitmaps.
15253         (free_dependency_caches): Free bitmaps
15254
15255 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
15256
15257         * calls.c: Replace STRICT_ARGUMENT_NAMING in comments with
15258         targetm.calls.strict_argument_naming().
15259         * target.h: Likewise.
15260
15261 2004-01-14  Richard Henderson  <rth@redhat.com>
15262
15263         PR debug/13231
15264         * dwarf2out.c (dwarf2out_stack_adjust): Skip prologue and epilogue
15265         instructions.
15266
15267 2004-01-14  Richard Henderson  <rth@redhat.com>
15268
15269         PR c++/12491
15270         * except.c (struct eh_region): Add u.fixup.resolved.
15271         (resolve_one_fixup_region): Split out from ...
15272         (resolve_fixup_regions): ... here.
15273
15274 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
15275
15276         * config/mn10300/mn10300.h (STRUCT_VALUE): Change to 0.
15277
15278 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
15279
15280         * config/alpha/alpha.h (STRUCT_VALUE): Remove.
15281         * config/alpha/vms.h (STRUCT_VALUE_REGNUM): Remove #undef.
15282         (STRUCT_VALUE): Remove.
15283
15284 2004-01-14  Steven Bosscher  <stevenb@suse.de>
15285
15286         * system.h: Poison PROMOTED_MODE
15287         * integrate.c (expand_inline_function): Don't mention the
15288         PROMOTED_MODE.
15289         * loop.c (update_giv_derive): Same.
15290         * tree.h (DECL_RTL): Same.
15291
15292 2004-01-14  J"orn Rennecke <joern.rennecke@superh.com>
15293
15294         PR target/9365
15295         * sh.c (gen_block_redirect): Add special handling of RETURN.
15296         (gen_far_branch) Don't call gen_stuff_delay_slot if there is no
15297         far branch target (i.e. it's a return).
15298
15299 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
15300
15301         * regrename.c (find_oldest_value_reg): Fix a warning.
15302
15303 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
15304
15305         PR bootstrap/12527
15306         * config.gcc (arm*-*-linux*): Don't include unknown-elf.h in tm_file.
15307         Move linux-gas.h and linux-elf.h before aout.h.
15308         * arm/arm.h (INITIALIZE_TRAMPOLINE): Only define if not already.
15309         * arm/linux-elf.h (SUBTARGET_CPU_DEFAULT): Define.
15310
15311 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
15312
15313         * config/m32r/m32r.md: Use GEN_INT instead of gen_rtx
15314         (CONST_INT, VOIDmode, ...).
15315
15316 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
15317
15318         * regrename.c (find_oldest_value_reg): If the replacement uses
15319         multiple hard registers, check that all of them are in CLASS.
15320
15321 2004-01-14  Jan Hubicka  <jh@suse.cz>
15322
15323         * alias.c (get_alias_set):  Initialize alias set to 0 when subset is
15324         impossible.
15325
15326 2004-01-14  Kelley Cook  <kcook@gcc.gnu.org>
15327
15328         * Makefile.in: Define MAINT from --enable-maintainer-mode.
15329
15330 2004-01-14  Hartmut Penner  <hpenner@de.ibm.com>
15331
15332         * gcc/config/rs6000/rs6000.c (rs6000_stack_info)
15333         Calculate always vrsave_mask if TARGET_ALTIVEC.
15334         (rs6000_emit_prologue): Emit code for vrsave
15335         only if TARGET_ALTIVEC_VRSAVE.
15336         (rs6000_emit_epilogue): Likewise.
15337
15338 2004-01-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
15339
15340         * config/sparc/sparc.md (tie_add32): Fix pasto.
15341         (tie_add64): Likewise.
15342
15343 2004-01-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
15344
15345         * config/i386/i386.md (*addqi_1_slp): Do not access operands[2].
15346
15347 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
15348
15349         * config/iq2000/iq2000-protos.h: Fix comment formatting.
15350         * config/iq2000/iq2000.c: Likewise.
15351         * config/iq2000/iq2000.md: Likewise.
15352
15353 2004-01-14  J. Brobecker  <brobecker@gnat.com>
15354
15355         * dwarf2out.c (is_ada_subrange_type): No longer check the TYPE_NAME.
15356         (subrange_type_die): Add handle for nameless subrange types.
15357
15358 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
15359
15360         * config/h8300/h8300-protos.h: Replace do_movsi with
15361         h8300_expand_movsi.
15362         * config/h8300/h8300.c (do_movsi): Change to
15363         h8300_expand_movsi.
15364         * config/h8300/h8300.md (movsi): Replace do_movsi with
15365         h8300_expand_movsi.
15366         (movsf): Likewise.
15367
15368 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
15369
15370         * config/h8300/h8300.c (dosize): Change to
15371         h8300_emit_stack_adjustment.  Update callers.
15372
15373 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
15374
15375         * config/h8300/h8300.md (movstrictqi): Add an alternative with
15376         the source being post_inc.  Tighten the predicate for the
15377         destination to register_operand.
15378         (movstricthi): Likewise.
15379
15380 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
15381
15382         * system.h (SHARED_BSS_SECTION_ASM_OP): Poison.
15383         * varasm.c (bss_section): Don't use SHARED_BSS_SECTION_ASM_OP.
15384         * doc/tm.texi (SHARED_BSS_SECTION_ASM_OP): Remove.
15385
15386 2004-01-14  Jan Hubicka  <jh@suse.cz>
15387
15388         Partial fix PR c++/12850
15389         * cgraphunit.c (cgraph_finalize_function): Always ggc_collect when
15390         at zero nest level.
15391
15392 2004-01-13  Bernardo Innocenti  <bernie@develer.com>
15393
15394         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Add missing "argptr"
15395         pseudo-register.
15396
15397 2004-01-13  Devang Patel <dpatel@apple.com
15398
15399         PR debug/7078
15400         * dbxout.c (dbxout_symbol_name): Emit mangled names for
15401         NAMESPACE_DECL memebers.
15402
15403 2004-01-13  Andrew Pinski  <pinskia@physics.uc.edu>
15404
15405         PR c++/12709
15406         * c-common.c (finish_fname_decls): Use the chain only if the
15407         tree is an expr_stmt.
15408
15409 2004-01-13  Vladimir Makarov  <vmakarov@redhat.com>
15410
15411         * rtl.def: Add comment about new option in automata_option.
15412
15413         * genautomata.c (PROGRESS_OPTION): New macro.
15414         (progress_flag): New global variable.
15415         (gen_automata_option): Process `progress'.
15416         (transform_insn_regexps, check_unit_distributions_to_automata,
15417         make_automaton, NDFA_to_DFA, build_automaton, create_automata,
15418         expand_automata, write_automata): Print about the progress only if
15419         progress_flag.  Remove fflush.
15420         (initiate_automaton_gen): Process command line flag `-progress'.
15421
15422         * doc/md.texi: Describe the new option.
15423
15424 2004-01-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
15425
15426         * cfg.c (dump_bb): Dump entry edges.
15427
15428 2004-01-13  Richard Earnshaw  <rearnsha@arm.com>
15429
15430         * arm.c (thumb_legitimate_address_p): Only allow constant pool
15431         references from SImode.
15432         * arm.md (thumb_movhi_insn): Don't allow minipool references.
15433
15434 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
15435
15436         * system.h (TEXT_SECTION): Poison.
15437         * varasm.c (text_section): Don't use TEXT_SECTION.
15438         * config/sh/sh.c (sh_file_start): Fix a comment typo.
15439         * doc/tm.texi (TEXT_SECTION): Remove.
15440
15441 2004-01-13  Ben Elliston  <bje@wasabisystems.com>
15442
15443         * doc/rtl.texi (Vector Operations): Remove defunct vec_const item.
15444
15445 2004-01-12  James E Wilson  <wilson@specifixinc.com>
15446
15447         * unwind-libunwind.c: Delete.
15448
15449 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
15450
15451         PR 13656
15452         * c-decl.c (diagnose_mismatched_decls): Whenever newtype or
15453         oldtype is set, set *newtypep or *oldtypep too.  Do not set
15454         them at the very end.
15455         (validate_proto_after_old_defn): Restructure for comprehensibility;
15456         make error messages clearer.
15457
15458 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
15459
15460         * varray.h (VARRAY_POP): Add checking variant, aborts on underflow.
15461         (VARRAY_TOP): Use VARRAY_CHECK so the access is bounds-checked.
15462         * varray.c: No need to prototype error.
15463         (varray_check_failed): Wrap long string onto two lines.
15464         (varray_underflow): New function.
15465
15466 2004-01-13  Steven Bosscher  <stevenb@suse.de>
15467
15468         PR c++/13376
15469         * function.h (struct function): Kill `name' field.
15470         (current_function_name): Make it an extern function.
15471         * function.c (current_function_name): New function.
15472         * graph.c: Update all uses of current_function_name.
15473         * gcse.c: Likewise.
15474         * config/alpha/alpha.c, config/avr/avr.c, config/c4x/c4x.c,
15475         config/mips/mips.c, config/pdp11/pdp11.c: Likewise.
15476         * config/ip2k/ip2k.c (function_prologue): Use MAIN_NAME_P
15477         instead of a strcmp with "main".
15478
15479 2004-01-13  Jan Hubicka  <jh@suse.cz>
15480
15481         * c-decl.c (diagnose_mismatched_decls):  Fix warning calls.
15482
15483         * cgraphunit.c (cgraph_optimize_function):  Always do
15484         optimize_inline_calls when there is always_inline callee.
15485         (cgraph_decide_inlining): Fix formating.
15486         * tree-inline.c (inlinable_function_p): Do sorry for alwaysinline
15487         functions.
15488         (expand_call_inline): Likewise.
15489         * toplev.h (sorry): Fix prototype.
15490
15491 2004-01-12  Roger Sayle  <roger@eyesopen.com>
15492
15493         * builtins.c (expand_builtin_expect_jump): Simplify logic. Handle
15494         conditional jumps that drop through to unconditional jumps or the
15495         end of the sequence.
15496
15497 2004-01-13  Jan Hubicka  <jh@suse.cz>
15498
15499         * alias.c (new_alias_set): Construct the alias_set varray.
15500         (init_alias_once): Don't do it here.
15501
15502 2004-01-12  Marc Espie <espie@openbsd.org>
15503
15504         * system.h: handle YYBYACC like YYBISON.
15505
15506 2004-01-12  Jonathan Merriman <jonm@dualitymedia.com>
15507
15508         PR target/10847
15509         * config.gcc: No longer includes conflicting header sparc/sol2.h when
15510         building on sparc64-*-openbsd*.
15511
15512 2004-01-12  Andrew Pinski  <pinskia@physics.uc.edu>
15513
15514         PR debug/13539
15515         * dbxout.c (dbxout_type): Protected inheritance is not
15516         private but protected.
15517
15518 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
15519
15520         * config/mips/mips.c (mips_symbolic_constant_p): Revert last patch.
15521
15522 2004-01-12  Kazu Hirata  <kazu@cs.umass.edu>
15523
15524         PR optimization/12508.
15525         * combine.c (try_combine): Remove a dead set in a parallel
15526         even if its destination is a subreg.
15527
15528         Revert:
15529         2003-06-03  Kazu Hirata  <kazu@cs.umass.edu>
15530         * combine.c (simplify_set): Don't move a subreg in SET_SRC to
15531         SET_DEST if WORD_REGISTER_OPERATIONS is not defined.
15532
15533 2004-01-12  Geoffrey Keating  <geoffk@apple.com>
15534
15535         * real.c: Update copyright date.
15536         * emit-rtl.c: Likewise.
15537         * rtl.h: Likewise.
15538         * dwarf2out.c: Likewise.
15539         * config/rs6000/darwin-ldouble.c: Likewise.
15540         * config/rs6000/rs6000.md: Likewise.
15541
15542 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
15543
15544         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Add AIX
15545         TFmode to SImode libfuncs.
15546
15547 2004-01-12  Roger Sayle  <roger@eyesopen.com>
15548
15549         PR middle-end/11397
15550         * varasm.c (assemble_alias): Remove weak aliases from weak_decls.
15551
15552 2004-01-12  Jan Hubicka  <jh@suse.cz>
15553
15554         PR opt/12826
15555         * loop.c (insert_loop_mem): Preffer VOLATILE memory references to be
15556         stored.
15557
15558         PR opt/12863
15559         * cfgcleanup.c (label_is_jump_target_p): Move to...
15560         * rtlanal.c (label_is_jump_target_p): ... here.
15561         * cfgrtl.c (cfg_layout_redirect_edge_and_branch):  Fix redirecting of fallthru
15562         edges unified with branch edges.
15563
15564 2004-01-12  Richard Earnshaw  <rearnsha@arm.com>
15565
15566         * simplify-rtx.c (simplify_immed_subreg): Correctly extract the
15567         high word of an integral CONST_DOUBLE.
15568
15569 2004-01-12  Paul Brook  <paul@codesourcery.com>
15570
15571         * simplify-rtx.c (simplify_plus_minus): Always generate canonical form.
15572
15573 2004-01-12  J"orn Rennecke <joern.rennecke@superh.com>
15574
15575         PR target/13585
15576         * sh-protos.h (check_use_sfunc_addr): Declare.
15577         * sh.c (extract_sfunc_addr, check_use_sfunc_addr): New functions.
15578         * sh.md (use_sfunc_addr): Use check_use_sfunc_addr in insn predicate.
15579
15580 2004-01-12  Jan Hubicka  <jh@suse.cz>
15581
15582         * alias.c:  Invlude varray.h
15583         (alias_sets): Turn into varray.
15584         (get_alias_set_entry): Use VARRAY; mark inline.
15585         (mems_in_disjoint_alias_sets_p): Mark inline.
15586         (record_alias_subset): Use varray.
15587         (init_alias_once): Initialize varray.
15588         (new_alias_set): Grow array.
15589         * varray.c: Make VARRAY_GENERIC_PTR non GTYized.
15590
15591 2004-01-12  Jan Hubicka  <jh@suse.cz>
15592
15593         Partial fix for PR opt/10776 II
15594         * cselib.c: Include params.h
15595         (cselib_invalidate_mem):  Limit amount of nonconflicting memory
15596         locations.
15597         * params.def (PARAM_MAX_CSELIB_MEMORY_LOCATIONS): New.
15598         * Makefile.in (cselib.o): Depend on params.h
15599
15600 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
15601
15602         * combine.c (combine_simplify_rtx): Don't pass VOIDmode to
15603         simplify_unary_operation if the operand has a known mode.
15604
15605 2004-01-12  Hartmut Penner  <hpenner@de.ibm.com>
15606
15607         PR target/13534
15608         * gcc/config/rs6000/rs6000.c (word_offset_memref_operand): New
15609         predicate to handle 'ld' conform addresses.
15610         * gcc/config/rs6000/rs6000.h (EXTRA_CONSTRAINT): New 'Y'
15611         contraint.
15612         (EXTRA_MEMORY_CONSTRAINT): Tell reload which constraint
15613         are memory contraints.
15614         * gcc/config/rs6000/rs6000-protos.h (word_offset_memref_operand):
15615         New prototype.
15616         * gcc/config/rs6000/rs6000.md (*movdf_hardfloat64):
15617         Change 'o' to 'Y' constraint.
15618         (*movdf_softfloat64): Ditto.
15619
15620 2004-01-12  Bernardo Innocenti  <bernie@develer.com>
15621
15622         * gcc/config/m68k/m68k.md: Switch from the "*..." syntax to the
15623         brace-enclosed syntax in all C output statements.
15624
15625 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
15626
15627         PR target/13401
15628         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
15629         Objective-C language type value is 14.
15630
15631 2004-01-12  Markus F.X.J. Oberhumer  <markus@oberhumer.com>
15632
15633         PR c/12148
15634         * config/m68k/fpgnulib.c: Fix `-mshort' bugs: Use `long' instead of
15635         `int' in a number of places to make sure we always have a SImode
15636         and not a HImode.  Add a 'L' suffix to a number of constants.
15637
15638 2004-01-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15639
15640         * pa.c: Don't include obstack.h.
15641
15642         * pa.md: Correct constraint in pattern for loading PIC label address.
15643
15644 2004-01-11  Kaz Kojima  <kkojima@gcc.gnu.org>
15645
15646         * config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine
15647          before defining.
15648
15649 2004-01-11  Steven Bosscher  <stevenb@suse.de>
15650
15651         PR fortran/9972
15652         * toplev.c (rest_of_handle_inline): Also consider functions
15653         for deferral if the language is GNU F77.
15654
15655 2004-01-11  Zack Weinberg  <zack@codesourcery.com>
15656
15657         * c-decl.c (diagnose_arglist_conflict): Add missing space to
15658         diagnostic messages.
15659
15660 2004-01-11  Jakub Jelinek  <jakub@redhat.com>
15661
15662         PR middle-end/13392
15663         * builtins.c (expand_builtin_expect_jump): Handle conditional jumps
15664         to drop through label.  Don't fall back to SCC even when conditional
15665         jump has not been found.
15666
15667 2004-01-11  Jan Hubicka  <jh@suse.cz>
15668
15669         * invoke.texi: Fix syntax error in previous patch.
15670
15671         Partial fix for PR opt/10776
15672         * Makefile.in (reload.o): Include param.h
15673         * params.def (PARAM_MAX_RELOAD_SEARCH_INSNS): New parameter.
15674         * reload.c: Include params.h.
15675         (find_equiv_reg): Work limiting check.
15676         * invoke.texi: Document.
15677
15678 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
15679
15680         * config/mips/mips.c (mips_symbolic_constant_p): Don't allow
15681         out-of-bounds accesses to string constants.  Simplify mips16
15682         case accordingly.
15683
15684 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
15685
15686         PR optimization/13469
15687         * toplev.c (rest_of_compilation): Call purge_all_dead_edges after
15688         reload_cse_regs (-fnon-call-exceptions only).
15689
15690 2004-01-11  Kazu Hirata  <kazu@cs.umass.edu>
15691
15692         * config/mcore/lib1.asm: Fix comment formatting.
15693         * config/mcore/mcore-elf.h: Likewise.
15694         * config/mcore/mcore.c: Likewise.
15695         * config/mcore/mcore.h: Likewise.
15696         * config/mcore/mcore.md: Likewise.
15697
15698 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
15699
15700         * c-decl.c (duplicate_decls): Break apart into...
15701         (diagnose_arglist_conflict, validate_proto_after_old_defn)
15702         (locate_old_defn, diagnose_mismatched_decls, merge_decls):
15703         ... these new functions.  Restructure for comprehensibility.
15704         Remove various archaic special cases.  Always report the
15705         location of the previous declaration when a diagnostic is issued.
15706         (redeclaration_error_message): Fold into diagnose_mismatched_decls.
15707         (match_builtin_function_types): Delete unnecessary forward declaration.
15708
15709 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
15710
15711         * genautomata.c (make_automaton, NDFA_to_DFA):
15712         Print progress bars with '.' characters instead of '*'.
15713         (build_automaton): Change notes to match.
15714
15715 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
15716
15717         * config/m32r/m32r.md: Use define_constants for unspec and
15718         unspec_volatile.
15719
15720 2004-01-10  Jan Hubicka  <jh@suse.cz>
15721
15722         PR opt/11635
15723         * expr.c (expand_expr_real):  More curefully expand union casts.
15724
15725 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
15726
15727         * config/m32r/m32r.md (flush_icache): Use 1 for
15728         unspec_volatile.
15729
15730 2004-01-10  David Edelsohn  <edelsohn@gnu.org>
15731             James E Wilson  <wilson@specifixinc.com>
15732
15733         PR debug/12860
15734         * dbxout.c (dbxout_symbol): Remove initialization of
15735         current_sym_code, current_sym_value, and current_sym_addr.
15736         (dbxout_symbol_location): Same.
15737         (dbxout_prepare_symbol): Zero current_sym_code,
15738         current_sym_value, and current_sym_addr.
15739
15740 2004-01-10  Richard Sandiford  <rsandifo@redhat.com>
15741
15742         * tree.c (get_unwidened): Reorder conditions so that the null pointer
15743         check is done first.
15744
15745 2004-01-09  Eric Christopher  <echristo@redhat.com>
15746
15747         * toplev.c (rest_of_handle_cfg): Add reg_scan pass
15748         if we're running mark_constant_function.
15749
15750 2004-01-09  Jeff Bailey  <jbailey@nisa.net>
15751
15752         PR target/12561
15753         * config/t-gnu: Rename SYSTEM_HEADER_DIR to NATIVE_SYSTEM_HEADER_DIR.
15754
15755 2004-01-09  Andrew Pinski <pinskia@physics.uc.edu>
15756
15757         PR debug/11231
15758         * dbxout.c (dbxout_type_fields): Return if any item is
15759         error_mark_node or the type is error_mark_node.
15760
15761 2004-01-09  Geoffrey Keating  <geoffk@apple.com>
15762
15763         * config/rs6000/darwin-ldouble.c: Add big comment explaining
15764         exactly what is expected as a 'long double'.
15765         (_xlqadd): When a value to be returned is representable as a
15766         'double', just return it directly, do not construct it using a union.
15767         Also, correct final fixup.
15768         (_xlqmul): Likewise.
15769         (_xlqdiv): Likewise.
15770         * real.c (encode_ibm_extended): Make consistent with darwin-ldouble.c.
15771
15772         * config/rs6000/rs6000.md (fix_trunctfdi2): Delete.
15773
15774 2004-01-09  Richard Henderson  <rth@redhat.com>
15775
15776         * recog.c (constrain_operands): Validate mem operands.
15777
15778 2004-01-09   James E Wilson  <wilson@specifixinc.com>
15779
15780         * gcc.c (init_spec): Remove -lunwind from shared case.
15781         * conifg/ia64/t-hpux (SHLIB_LINK): Add -lunwind.
15782
15783 2004-01-09  Steve Ellcey  <sje@cup.hp.com>
15784
15785         * configure.ac: (gcc_cv_ld_hidden) Set to true for ia64*-*-hpux*.
15786         * configure: Regenerate
15787
15788 2004-01-09  Joseph S. Myers  <jsm@polyomino.org.uk>
15789
15790         PR c/11234
15791         * c-typeck.c (build_c_cast): If pedantic, warn for conversions
15792         between function and object pointers.
15793         (digest_init): When comparing a pointer to function type to the
15794         target type, only apply TREE_TYPE once to the pointer to function
15795         type.
15796         * except.c (for_each_eh_label_1): Treat data as a pointer to a
15797         function pointer rather than casting it to a function pointer.
15798         (for_each_eh_label): Update caller.
15799         * recog.h (struct insn_data): Use a struct or union for output.
15800         * genoutput.c (output_insn_data): Update.
15801         * final.c (get_insn_template): Update.
15802
15803 2004-01-09  Mark Mitchell  <mark@codesourcery.com>
15804
15805         * expr.h (expand_expr): Make it a macro, not a function.
15806         (expand_expr_real): New function.
15807         * expr.c (store_expr): Adjust logic for deciding whether or not to
15808         copy the value returned by expand_expr.
15809         (expand_expr): Rename to ...
15810         (expand_expr_real): ... this.  Add alt_rtl parameter.  Adjust
15811         calls to language hooks.
15812         * c-common.h (c_expand_expr): Adjust prototype.
15813         * c-common.c (c_expand_expr): Add alt_rtl parameter.
15814         * langhooks-def.h (lhd_expand_expr): Change prototype.
15815         * langhooks.c (lhd_expand_expr): Add all_rtl parameter.
15816         * langhooks.h (lang_hooks): Change type of expand_expr.
15817         * stmt.c (stmt_status): Add x_last_expr_alt_rtl.
15818         (last_expr_alt_rtl): Likewise.
15819         (expand_expr_stmt_value): Set last_expr_alt_rtl.
15820         (clear_last_expr): Clear it.
15821         (expand_end_stmt_expr): Set RTL_EXPR_ATL_RTL.
15822         (expand_end_bindings): Save and restor last_expr_alt_rtl.
15823         * tree.def (RTL_EXPR): Give it an additional operand.
15824         * tree.h (RTL_EXPR_ALT_RTL): New macro.
15825
15826 2004-01-09  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
15827
15828         * config/m32r/m32r.h (TARGET_CPU_CPP_BUILTINS): Add __m32r__.
15829         * config/m32r/m32r.c (call26_operand): Allow in PIC mode.
15830
15831 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
15832
15833         PR target/13380.
15834         * config/m32r/m32r.md: Replace (reg:SI 17) with (reg:CC 17)
15835         or (ne:SI (reg:CC 17) (const_int 0)).
15836         Be specific about modes wherever possible.
15837
15838 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
15839
15840         * config/m32r/m32r.c (m32r_expand_block_move): Call
15841         gen_movestrsi_internal with two more arguments.
15842         (m32r_output_block_move): Adjust operand numbers.
15843         Properly update the source and destination pointers.
15844         * config/m32r/m32r.md (movstrsi_internal): Use 'r' instead of
15845         'r+'.  Change the set detinations to match_operand.
15846
15847 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
15848
15849         * final.c (FIRST_INSN_ADDRESS): Remove.
15850         (shorten_branches): Don't use FIRST_INSN_ADDRESS.
15851         * system.h (FIRST_INSN_ADDRESS): Poison.
15852         * config/avr/avr.h: Remove a comment about FIRST_INSN_ADDRESS.
15853         * config/m32r/m32r-protos.h: Remove the prototype for
15854         m32r_first_insn_address.
15855         * config/m32r/m32r.c (m32r_first_insn_address): Remove.
15856         * config/m32r/m32r.h (FIRST_INSN_ADDRESS): Likewise.
15857         * doc/md.texi (FIRST_INSN_ADDRESS): Likewise.
15858
15859 2004-01-09  J. Brobecker  <brobecker@gnat.com>
15860
15861         * dwarf2out.c (gen_enumeration_type_die): Return the DIE that
15862         we just created.
15863         (is_ada_subrange_type): DIEs for enumeration subtypes should be
15864         emitted as subrange types too.
15865         (subrange_type_die): Add handling of enumeration subtypes.
15866
15867 2004-01-08  Richard Henderson  <rth@redhat.com>
15868
15869         PR opt/12441
15870         Revert: Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>
15871         * i386.c (aligned_operand): Be prepared for SUBREGed registers.
15872         (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
15873         (ix86_address_cost): Be prepared for SUBREGed registers.
15874         (legitimate_address_p): Accept SUBREGed registers.
15875
15876 2004-01-08  Kelley Cook  <kcook@gcc.gnu.org>
15877
15878         * Makefile.in: Rename configure.in to configure.ac
15879         * doc/sourcebuild.texi: Likewise.
15880         * configure: Regenerate.
15881         * config.in: Regenerate.
15882
15883 2004-01-08  Stuart Hastings  <stuart@apple.com>
15884
15885         * config/i386/i386.md: Typos in MMX/SSE immediate shifts.
15886
15887 2004-01-08  Jan Hubicka  <jh@suse.cz>
15888
15889         * cgraphunit.c (cgraph_decide_inlining):  Fix typo.
15890
15891 2004-01-08  Geoffrey Keating  <geoffk@apple.com>
15892
15893         * config/rs6000/rs6000.md (cmptf_internal1): Correct branch offset.
15894         (UNSPEC_FIX_TRUNC_TF): New constant.
15895         (movtf_internal): Make splitter active only when insn is active.
15896         (extenddftf2): Rewrite to properly load zero into low part.
15897         (extenddftf2_internal): New.
15898         (extendsftf2): Rewrite.
15899         (truncdftf2): Correct length.
15900         (floatditf2): Delete.
15901         (fix_trunc_helper): New.
15902         (fix_trunctfdi2): Use fix_trunc_helper.
15903         (fix_trunctfsi2): Likewise.fix_trunc
15904         (fix_trunctfsi2_internal): New.
15905
15906         * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): lo_sum
15907         addresses are legitimate on Darwin even when flag_pic.
15908         (rs6000_legitimize_reload_address) [TARGET_MACHO]: Don't create
15909         non-offsettable addresses for loads of TFmode constants.
15910
15911 2004-01-08  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
15912
15913         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Actually emit
15914         variables in the appropriate bss section.
15915
15916 2004-01-09  Alan Modra  <amodra@bigpond.net.au>
15917
15918         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Ensure
15919         target_flags has MASK_POWERPC64 when -m64.
15920         * config/rs6000/rs6000.c (processor_target_table): Add MASK_POWERPC64
15921         to 620, 630, power3, power4 and rs64a entries.
15922         * config/rs6000/rs6000.h (MASK_64BIT): Expand comment.
15923
15924 2004-01-08  Richard Sandiford  <rsandifo@redhat.com>
15925
15926         * simplify-rtx.c (simplify_immed_subreg): Fix construction of
15927         floating-point constants.
15928
15929 2004-01-08  J. Brobecker  <brobecker@gnat.com>
15930
15931         * dwarf2out.c (subrange_type_die): Add context_die parameter.
15932         Create the subrange_type DIE using the given context DIE.
15933         (modified_type_die): Update call to subrange_type_die.
15934
15935 2004-01-08  Zack Weinberg  <zack@codesourcery.com>
15936
15937         * dwarf2.h, unwind-dw2-fde.h, unwind-pe.h, unwind.h:
15938         Add multiple-include guard.
15939
15940 2004-01-08  Hartmut Penner  <hpenner@de.ibm.com>
15941
15942         * gcc/config/rs6000/rs6000.c (easy_vector_constant): Accept
15943         all vector constant loadable by vsplt*.
15944         (output_vec_const_move): Likewise.
15945
15946 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
15947
15948         PR c/6024
15949         * c-typeck.c (comptypes): Only treat enumerated types in the same
15950         translation unit as compatible with each other when they are the
15951         same type.
15952         * doc/extend.texi: Update.
15953
15954 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
15955
15956         PR c/12165
15957         * c-decl.c (grokdeclarator): Take type qualifiers of typedefed
15958         array type from the array element type.
15959
15960 2004-01-07  Alan Modra  <amodra@bigpond.net.au>
15961
15962         * config/rs6000/rs6000.c (rs6000_dbx_register_number): New function.
15963         * config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Declare.
15964         * config/rs6000/rs6000.h (DWARF_FRAME_REGNUM): Define.
15965         (DWARF_REG_TO_UNWIND_COLUMN): Correct column adjustment and comment.
15966         * config/rs6000/sysv4.h (DBX_REGISTER_NUMBER): Define.
15967
15968 2004-01-06  Eric Christopher  <echristo@redhat.com>
15969
15970         * config/mips/mips.h (MDEBUG_ASM_SPEC): Change for dwarf2 default.
15971         (DWARF2_DEBUGGING_INFO): Define.
15972         (PREFERRED_DEBUGGING_TYPE): Set to dwarf2.
15973         * config/mips/openbsd.h (PREFERRED_DEBUGGING_TYPE): Remove.
15974         * config/mips/iris6.h (SUBTARGET_ASM_DEBUGGING_SPEC): Only pass -g0
15975         for irix as.
15976         (SUBTARGET_ASM_OPTIMIZING_SPEC): Only pass O0 for irix as.
15977         * config/mips/iris6gas.h (MDEBUG_ASM_SPEC): Remove.
15978         * config/mips/iris5gas.h: Ditto.
15979         (DBX_DEBUGGING_INFO): Remove.
15980         (DWARF2_DEBUGGING_INFO): Ditto.
15981         (MIPS_DEBUGGING_INFO): Ditto.
15982         (PREFERRED_DEBUGGING_TYPE): Ditto.
15983         * config/mips/elf.h (DWARF2_DEBUGGING_INFO): Remove.
15984         (PREFERRED_DEBUGGING_TYPE): Ditto.
15985         (SUBTARGET_ASM_DEBUGGING_SPEC): Ditto.
15986         * config/mips/elf64.h: Ditto.
15987
15988 2004-01-06  Jan Hubicka  <jh@suse.cz>
15989
15990         * Makefile.in (STAGEPROFILE_FLAGS_TO_PASS): Use -fprofile-generate.
15991         (STAGEFEEDBACK_FLAGS_TO_PASS): Use -fprofile-use.
15992
15993 2004-01-06  Geoffrey Keating  <geoffk@apple.com>
15994
15995         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Compile darwin-ldouble.c.
15996         (TARGET_LIBGCC2_CFLAGS): Use -mlong-double-128.
15997         * config/rs6000/darwin-ldouble.c: New.
15998
15999         * emit-rtl.c (gen_lowpart_common): Use simplify_gen_subreg
16000         for constants.
16001         (constant_subword): Delete.
16002         * rtl.h (constant_subword): Delete prototype.
16003         (immed_double_const): Is not in varasm.c.
16004         * simplify-rtx.c (simplify_immed_subreg): New.
16005         (simplify_subreg): Use simplify_immed_subreg.
16006
16007         * config/rs6000/rs6000.md (floatsitf2): Use expand_float rather
16008         than trying to generate RTL directly.
16009         (fix_trunctfsi2): Use expand_fix rather than trying to generate
16010         RTL directly.
16011
16012         * dwarf2out.c (add_const_value_attribute): Remove incorrect comment.
16013
16014 2004-01-06  David Edelsohn  <edelsohn@gnu.org>
16015
16016         * config/rs6000/xcoff.h (EXTRA_SECTION_FUNCTIONS): Split each
16017         function into a separate macro.
16018         (read_only_data_section): Add void argument.
16019         (private_data_section): Same.
16020         (read_only_private_data_section): Same.
16021         (toc_section): Same.
16022
16023 2004-01-06  Jan Hubicka  <jh@suse.cz>
16024
16025         * invoke.texi:  Remove typo in last change.
16026
16027         PR target/10301
16028         * config.gcc: Accept opteron and athlon-64 as variants
16029         of k8.
16030         * i386.c (override_options): Likewise.
16031         * invoke.texi (i386 -mtune): Expand documentation.
16032
16033 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
16034
16035         * alias.c: Fix comment typos.
16036         * builtins.c: Likewise.
16037         * cfg.c: Likewise.
16038         * df.c: Likewise.
16039         * dominance.c: Likewise.
16040         * dwarf2out.c: Likewise.
16041         * emit-rtl.c: Likewise.
16042         * expr.c: Likewise.
16043         * final.c: Likewise.
16044         * fold-const.c: Likewise.
16045         * gcse.c: Likewise.
16046         * genattrtab.c: Likewise.
16047         * genrecog.c: Likewise.
16048         * gensupport.c: Likewise.
16049         * ggc-zone.c: Likewise.
16050         * integrate.c: Likewise.
16051         * local-alloc.c: Likewise.
16052         * loop.c: Likewise.
16053         * recog.c: Likewise.
16054         * regmove.c: Likewise.
16055         * reg-stack.c: Likewise.
16056         * reorg.c: Likewise.
16057         * rtlanal.c: Likewise.
16058         * rtl.h: Likewise.
16059         * sched-ebb.c: Likewise.
16060         * simplify-rtx.c: Likewise.
16061         * toplev.c: Likewise.
16062         * varasm.c: Likewise.
16063
16064 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
16065
16066         * doc/install.texi: Fix typos.
16067         * doc/invoke.texi: Likewise.
16068         * doc/md.texi: Likewise.
16069
16070 2004-01-06  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
16071
16072         * config/m32r/m32r.h (TRAMPOLINE_LINE_SIZE): Changed
16073
16074 2004-01-06  Jan Hubicka  <jh@suse.cz>
16075
16076         * i386.c (init_cumulative_args):  Add handling of MMX_REGPARM.
16077         (function_arg_advance):  Do not pass aggregates in SSE; deal handling
16078         of MMX_REGPARM.
16079         (function_arg): Add new warnings about ABI changes;  fix SSE_REGPARM;
16080         add MMX_REGPARM.
16081         * i386.h (ix86_args): Add mmx_words/mmx_regs/mmx_regno fields.
16082         (SSE_REGPARM_MAX): Default to 3 on i386 -msse ABI.
16083         (MMX_REGPARM_MAX): Similarly for -mmmx.
16084
16085 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
16086
16087         * config/sh/linux.h: Fix comment formatting.
16088         * config/sh/netbsd-elf.h: Likewise.
16089         * config/sh/sh.c: Likewise.
16090         * config/sh/sh.h: Likewise.
16091         * config/sh/vxworks.h: Likewise.
16092
16093 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
16094
16095         * system.h (ASM_OUTPUT_MAIN_SOURCE_FILENAME): Poison.
16096         * toplev.c (output_file_directive): Don't use
16097         ASM_OUTPUT_MAIN_SOURCE_FILENAME.
16098
16099 2004-01-05  Steven Bosscher <s.bosscher@student.tudelft.nl>
16100
16101         * toplev.c: Fix broken checkin of 2003-12-30.
16102
16103 2004-01-05  Daniel Berlin  <dberlin@dberlin.org>
16104
16105         * ggc-zone.c: Remove everything in #ifdef USING_MALLOC_PAGE_GROUPS
16106         (USING_MMAP): We don't support non-mmap.
16107         (struct alloc_chunk): Steal 1 bit from typecode, use it to mark
16108         large objects.
16109         (struct page_entry): Remove bytes_free.
16110         (struct page_table_chain): Remove.
16111         (struct globals): Remove page_table member.
16112         (loookup_page_table_entry): Function deleted.
16113         (set_page_table_entry): Ditto.
16114         (ggc_allocated_p): No longer need page table lookups.
16115         (ggc_marked_p): Ditto.
16116         (alloc_small_page): Don't care about bytes_free anymore.
16117         (alloc_large_page): Round up size.
16118         (ggc_alloc_zone_1): Mark large objects as such, and calculate
16119         their size the new way.
16120         Remove page table lookups and setting.
16121         (ggc_get_size): Calculate large object size the new way.
16122         (sweep_pages): Redo to account for fact that we no longer have
16123         bytes_free.
16124         (ggc_collect): No longer need to reincrement bytes_free.
16125         (ggc_pch_alloc_object): Handle new large objects properly.
16126         (ggc_pch_read): Put PCH stuff into it's own uncollected zone.
16127
16128 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
16129
16130         * doc/invoke.texi: Remove a page break.
16131
16132 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
16133
16134         * config/avr/avr.c (avr_output_function_prologue): Remove an
16135         extra pair of curly braces.
16136
16137 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
16138
16139         * config/mn10300/mn10300.c: Fix comment formatting.
16140         * config/mn10300/mn10300.h: Likewise.
16141
16142 2004-01-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16143
16144         * tree.h: Update documentation on nothrow_flag.
16145         * print-tree.c (print_node): Print TREE_NOTHROW as "align-ok" for
16146         types.
16147
16148 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
16149
16150         * doc/invoke.texi: Remove traces of dead ports.
16151
16152 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
16153
16154         * doc/invoke.texi: Add documentation for the MIPS -mexplicit-relocs
16155         option.
16156
16157 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
16158
16159         PR target/12945
16160         * coverage.c (coverage_counter_alloc): Set SYMBOL_FLAG_LOCAL for
16161         counter labels.
16162         * config/mips/mips.c (INTERNAL_SYMBOL_P): Delete.
16163         (mips_classify_symbol): Always treat SYMBOL_REF_FLAG as indicating
16164         string constants if TARGET_MIPS16.  Use SYMBOL_REF_DECL to check
16165         the binding of decl symbols, otherwise check SYMBOL_REF_LOCAL_P.
16166         (mips_symbol_insns): Don't trust the local/global classification.
16167         (m16_usym8_4, m16_usym5_4): Same mips16 change as mips_classify_symbol.
16168         (override_options): Make -mabicalls -fno-unit-at-a-time imply
16169         -mno-explicit-relocs.
16170         (mips_encode_section_info): Don't use SYMBOL_REF_FLAG to distinguish
16171         between local and global symbols.
16172
16173 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
16174
16175         * config/mips/mips-protos.h (mips_dangerous_for_la25_p): Declare.
16176         (mips_preferred_reload_class): Declare.
16177         * config/mips/mips.h (DANGEROUS_FOR_LA25_P): Replace with function.
16178         (EXTRA_CONSTRAINT): Update accordingly.
16179         (PREFERRED_RELOAD_CLASS): Use mips_preferred_reload_class.
16180         * config/mips/mips.c (mips_dangerous_for_la25_p): New function.
16181         (mips_preferred_reload_class): New function.  Prefer LEA_REGS if
16182         mips_dangerous_for_la25_p.
16183         (mips_secondary_reload_class): Use LEA_REGS rather than GR_REGS
16184         if mips_dangerous_for_la25_p.
16185
16186 2004-01-05  Bernardo Innocenti  <bernie@develer.com>
16187
16188         * config/m68k/m68k.c (output_andsi3): Fix signed/unsigned comparison
16189         warning.
16190
16191 2004-01-04  Nathanael Nerode  <neroden@gcc.gnu.org>
16192
16193         * configure.ac: Use AC_PROG_CPP_WERROR.
16194         * configure: Regenerate.
16195
16196 2004-01-04  Zack Weinberg  <zack@codesourcery.com>
16197
16198         * .cvsignore: Add autom4te.cache.
16199
16200 2004-01-04  Richard Sandiford  <rsandifo@redhat.com>
16201
16202         * doc/invoke.texi: Revamp documentation of MIPS options.  Remove
16203         -mabi=meabi, -mabi-fake-default, -mmips-as, -mgas, -mmips-tfile,
16204         -m4650, -mfix7000 and -(m)no-crt0.  Put endianness options first,
16205         then architecture options, then ABI options.  General rewording.
16206
16207 2004-01-04  Joseph S. Myers  <jsm@polyomino.org.uk>
16208
16209         PR c/3414
16210         * doc/extend.texi: Clarify definition of malloc attribute.
16211
16212 2004-01-04  Jan Hubicka  <jh@suse.cz>
16213
16214         * Makefile.in (cgraph.o, cgraphunit.o): Add intl.h dependency.
16215         * cgraph.c (create_edge, dump_cgraph): Update to use inline_failed
16216         * cgraph.h (cgraph_edge): Replace inline_call by inline_failed
16217         (cgraph_inline_p): Add extra argument reason.
16218         * cgraphunit.c: Minor formating fixes.
16219         cgraph_first_inlined_callee): New functions.
16220         (record_call_1): Record builtins too.
16221         (cgraph_analyze_function): Update inline_failed messages.
16222         (cgraph_mark_functions_to_output, cgraph_expand_function, cgraph_inlined_into,
16223         cgraph_inlined_callees, cgraph_estimate_growth): Update to use inline_failed.
16224         (cgraph_check_inline_limits): Likewise; Add argument reason.
16225         (cgraph_set_inline_failed): New static function.
16226         (cgraph_decide_inlining_of_small_function, cgraph_decide_inlining): Set
16227         reasons.
16228         (cgraph_inline_p): Add new argument reason.
16229         * tree-inline.c (expand_call_inline):  Update warning.
16230
16231 2004-01-03  Nathanael Nerode  <neroden@gcc.gnu.org>
16232
16233         * configure.ac: Replace AC_INIT, AC_OUTPUT, AC_CANONICAL_SYSTEM
16234         with modern equivalents.
16235         * configure: Regenerate.
16236
16237         * configure.ac: Replace gcc_AC_CHECK_TYPE with AC_CHECK_TYPE.
16238         * aclocal.m4 (gcc_AC_CHECK_TYPE): Remove.
16239         * configure: Regenerate.
16240
16241         * doc/install.texi: Note that 'gcc' is now a 2.57 directory.
16242
16243         * configure.in: Rename to configure.ac.
16244         * configure.ac: Renamed from configure.in; make minimum necessary
16245         changes for autoconf 2.5x.
16246         * aclocal.m4: Make minimum necessary changes for autoconf 2.5x.
16247         * configure: Regenerate with autoconf 2.57.
16248
16249 2004-01-03  Kazu Hirata  <kazu@cs.umass.edu>
16250
16251         * config/mips/linux.h: Fix comment formatting.
16252         * config/mips/mips.c: Likewise.
16253         * config/mips/mips.h: Likewise.
16254         * config/mips/mips.md: Likewise.
16255         * config/mips/netbsd.h: Likewise.
16256         * config/mips/windiss.h: Likewise.
16257
16258 2004-01-02  Richard Henderson  <rth@redhat.com>
16259
16260         * config/i386/i386.md (fp constant pool splitter): Reorg suppression
16261         for sse and 387; add suppression for mmx.
16262
16263 2004-01-02  Andrew Pinski  <pinskia@physics.uc.edu>
16264
16265         * loop.c (loop_optimize): Free all loops_info's mems.
16266
16267         * c-typeck.c (finish_init): Free spelling_base before
16268         setting it again.
16269
16270         * cfgloop.c (flow_loops_find): Always free the sbitmap
16271         headers.
16272
16273         * predict.c (estimate_probability): Free bbs after being
16274         done with it.
16275
16276 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
16277
16278         * config/mn10300/mn10300.h (PREDICATE_CODES): Add
16279         const_8bit_operand and call_address_operand.
16280
16281 2004-01-02  Jan Hubicka  <jh@suse.cz>
16282
16283         * cgraphunit.c (cgraph_optimize_function):  Call optimize_inline_calls
16284         when there is nothing to inline but warnings are requested.
16285         (cgraph_decide_inlining):  Fix memory leak.
16286
16287 2004-01-02  Jan Hubicka  <jh@suse.cz>
16288
16289         * expr.c (store_constructor):  Fix pasto in previous patch.
16290
16291 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
16292
16293         * config/i386/cygming.h: Fix comment formatting.
16294         * config/i386/djgpp.h: Likewise.
16295         * config/i386/gthr-win32.c: Likewise.
16296         * config/i386/i386-interix.h: Likewise.
16297         * config/i386/i386.c: Likewise.
16298         * config/i386/i386.h: Likewise.
16299         * config/i386/openbsd.h: Likewise.
16300         * config/i386/winnt.c: Likewise.
16301         * config/i386/xm-mingw32.h: Likewise.
16302
16303 2004-01-02  Joseph S. Myers  <jsm@polyomino.org.uk>
16304
16305         * doc/gcc.texi, doc/invoke.texi, doc/install.texi: Update
16306         copyright and last modification dates.
16307
16308 2004-01-02  Andreas Jaeger  <aj@suse.de>, Gerald Pfeifer  <gp@suse.de>
16309
16310         * doc/install.texi (Specific): Mention x86_64.
16311
16312 2004-01-01  Hans-Peter Nilsson  <hp@bitrange.com>
16313
16314         * builtins.c (expand_builtin_apply_args_1) [STACK_GROWS_DOWNWARD]:
16315         Call force_operand on plus_constant result.
16316
16317 2004-01-01  Jan Hubicka  <jh@suse.cz>
16318
16319         * expmed.c (store_bit_field, extract_bit_field): Use new named patterns
16320         * expr.c (store_constructor): Use vec_init pattern.
16321         * genopinit.c (optabs): Initailize vec_set/vec_extract/vec_init.
16322         * optabs.h (optab_index): ADD OTI_vec_set/OTI_vec_extract/OTI_vec_init
16323         (vec_set_optab, vec_extract_optab, vec_init_optab): New.
16324         * i386.md (vec_setv2df, vec_extractv2df, vec_setv4sf, vec_extractv4sf):
16325         New patterns.
16326         (sse2_unpc?pd): Fix pattern.
16327         (sse2_movlpd): Kill.
16328         (sse2_movsd): Deal with movlpd too.
16329         * i386.c (ix86_expand_builtin): Use sse2_movsd instead of sse2_movlpd.
16330         (ix86_expand_vector_init): New.
16331         * emmintrin.h (__mm_set_pd, __mm_set_ps): Use vector extensions.
16332         * md.texi (vec_set, vec_extract): Document
16333
16334 2003-12-31  Jan Hubicka  <jh@suse.cz>
16335
16336         PR opt/13473
16337         * recog.c (validate_replace_rtx_1):  Take care for RTL sharing inside
16338         ASM input operands
16339
16340         PR opt/12617
16341         * toplev.c (dump_file_index): Reorder ce3 and bbro.
16342         (dump_file): Likewise.
16343         (rest_of_compilation): Likewise.
16344
16345         PR debug/13367
16346         * cgraph.c (cgraph_function_possibly_inlined):  Even with
16347         flag_really_no_inline we inline always_inline functions.
16348         * cgraphunit.c (cgraph_analyze_function): Clear inlinable flag
16349         for non-always_inline functions when there is flag_really_no_inline.
16350         (cgraph_decide_inlining): Limit work done when not inlining.
16351         (cgraph_decide_inlining_incrementally): Likewise.
16352         (cgraph_optimize_function): Check whether something got inlined.
16353         * c-objc-common.c (c_disregard_inline_limits): Do not always inline
16354         extern inline functions when not inlining.
16355
16356         * opts.c (decode_options):  Disable crossjumping at -O1
16357         * invoke.texi (-O1): Document change.
16358
16359 See ChangeLog.10 for earlier changes.