OSDN Git Service

2004-06-02 Eric Christopher <echristo@redhat.com>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2004-06-02  Eric Christopher  <echristo@redhat.com>
2
3         * c-typeck.c (common_type): Don't lose type qualifiers
4         when creating new variants.
5
6 2004-06-02  Andrew Pinski  <pinskia@physics.uc.edu>
7
8         PR tree-optimization/14042
9         PR tree-optimization/14729
10         PR tree-optimization/14736
11         * tree-ssa.c (tree_ssa_useless_type_conversion_1):
12         Check the type which the pointer points to
13         instead of the pointer types.
14
15 2004-06-02  Kazu Hirata  <kazu@cs.umass.edu>
16
17         PR tree-optimization/15738.
18         * builtins.c (fold_builtin_strchr): Transform
19         strrchr (s, '\0') to strchr (s, '\0').
20
21 2004-06-02  Steven Bosscher  <stevenb@suse.de>
22
23         * i386.c (ix86_adjust_cost): Don't increase the cost for
24         load+operation for PROCESSOR_PENTIUMPRO, it is already
25         modelled in the DFA description
26
27 2004-06-01  Jerry Quinn  <jlquinn@optonline.net>
28
29         * Makefile.in (EXPR_H): Add insn-config.h, function.h,
30         $(RTL_H), flags.h, $(TREE_H), $(MACHMODE_H), $(EXPR_H).
31         (ALIAS_H, EMIT_RTL_H): New.
32         (cselib.o): Replace EXPR_H with EMIT_RTL_H.
33         (cfgcleanup.o): Add EMIT_RTL_H.
34         (alias.o): Replace EXPR_H with EMIT_RTL_H and ALIAS_H.
35         * alias.c: Replace expr.h with emit-rtl.h and alias.h.
36         * attribs.c, c-lex.c, c-obj-common.c, c-semantics.c: Remove expr.h.
37         * cfgcleanup.c, cselib.c: Replace expr.h with emit-rtl.h.
38         * expr.h: Add include guard.  Include function.h, rtl.h, flags.h,
39         tree.h, machmode.h, insn-config.h, alias.h, emit-rtl.h.
40         (get_varargs_alias_set, get_frame_alias_set, record_base_value,
41         record_alias_subset, new_alias_set, can_address_p): Move to alias.h.
42         (set_mem_alias_set, set_mem_align, set_mem_expr, set_mem_offset,
43         set_mem_size): Move to emit-rtl.h.
44         * emit-rtl.h: New.
45         * alias.h: New.
46
47 2004-06-01  Eric Botcazou  <ebotcazou@act-europe.fr>
48
49         * function.c (walk_fixup_memory_subreg): New parameter 'var'.
50         Call fixup_memory_subreg only if the MEM is equal to 'var'.
51         Adjust recursive calls to self.
52         (fixup_var_refs_insn): Pass 'var' to walk_fixup_memory_subreg.
53
54 2004-06-01  Richard Henderson  <rth@redhat.com>
55             Andrew Pinski  <pinskia@physics.uc.edu>
56
57         * c-parse.in (OFFSETOF, offsetof_member_designator): New.
58         (primary): Handle offsetof.  Add error productions for faux functions.
59         Move component_ref objc checking to build_component_ref.
60         (reswords): Add offsetof.
61         (rid_to_yy): Add offsetof.
62         * c-tree.h (build_offsetof): Declare.
63         * c-common.h (objc_is_public): Declare.
64         * c-typeck.c (build_component_ref): Check objc_is_public.
65         (build_offsetof): New.
66         * stub-objc.c (objc_is_public): New.
67         * objc/objc-act.c, objc/objc-act.h (objc_is_public): Rename
68         from is_public.
69         * ginclude/stddef.h (offsetof): Use __builtin_offsetof.
70         * doc/extend.texi (Offsetof): Move from C++ section to C section
71         and rewrite for __builtin_offsetof.
72
73 2004-06-01  Peter Barada  <peter@the-baradas.com>
74             Peter Jakubek  <peter@laseranimation.com>
75
76         * config/m68k/m68k.c(m68k_output_mi_thunk):  For ColdFire, use %d0 as
77         a scratch to perform an add to memory.
78
79 2004-06-01  Bernardo Innocenti  <bernie@develer.com>
80
81         PR target/14018
82         * config/m68k/m68k.c (m68k_align_loops_string, m68k_align_jumps_string,
83         m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
84         m68k_align_funcs): Remove.
85         (override_options): Remove code to handle -malign-* options.
86         * config/m68k/m68k.h (TARGET_OPTIONS): Remove -malign-* options.
87         (FUNCTION_BOUNDARY, LOOP_ALIGN, LOOP_ALIGN_AFTER_BARRIER): Remove.
88         (m68k_align_loops_string, m68k_align_jumps_string,
89         m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
90         m68k_align_funcs): Remove definitions.
91
92 2004-06-01  Paul Eggert  <eggert@cs.ucla.edu>
93
94         PR target/15626
95         * doc/install.texi (sparc-sun-solaris2*): Document messages issued
96         by the Sun linker in conjunction with the Sun assembler.
97         (sparc-sun-solaris2.7): Update revision info for Sun patch 106950.
98
99 2004-06-01  Jeff Law  <law@redhat.com>
100
101         * stmt.c (expand_decl): Be more selective about calling
102         mark_reg_pointer.
103
104 2004-06-01  Nicola Pero  <nicola@brainstorm.co.uk>
105
106         PR objc/7993
107         * objc-act.c (is_private): Do not emit the 'instance variable %s
108         is declared private' error.
109         (is_public): Emit the error after calling is_private.
110         (lookup_objc_ivar): If the instance variable is private, return 0
111         - the instance variable is invisible here.
112
113 2004-06-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
114
115         * doc/invoke.texi (-static-libgcc): Explicitly mention
116         non-GNU linkers.
117
118 2004-06-01  Bernardo Innocenti  <bernie@develer.com>
119
120         PR target/12968
121         * doc/invoke.texi: Document stack alignment side-effect of -mshort.
122
123 2004-05-31  Joseph S. Myers  <jsm@polyomino.org.uk>
124
125         PR c/15749
126         * c-decl.c (grokdeclarator, finish_struct): Don't pedwarn for
127         misuses of structures with flexible array members if
128         in_system_header.
129
130 2004-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
131
132         PR target/15693
133         * config/sparc/sparc.c (compare_operand): New predicate.
134         * config/sparc/sparc.h (PREDICATE_CODES): Add it.
135         * config/sparc/sparc.md (cmpsi expander): Use it.  If the first
136         operand is a ZERO_EXTRACT and the second operand is not zero,
137         force the former to a register.
138         (cmpdi expander): Likewise.
139
140 2004-05-31  Geoffrey Keating  <geoffk@apple.com>
141
142         * gengtype-lex.l: Catch stray GTY markers in the files gengtype
143         looks at.
144         * alias.c (alias_invariant_size): Make alias_invariant_size
145         static, fix GTY marker.
146
147 2004-05-31  Kazu Hirata  <kazu@cs.umass.edu>
148
149         PR tree-optimization/15743.
150         * builtins.c (fold_builtin_1): Fold index() and rindex().
151
152 2004-05-31  Roger Sayle  <roger@eyesopen.com>
153
154         PR middle-end/15069
155         * fold-const.c (fold_single_bit_test): Only perform "(X & C) != 0"
156         into "X < 0" (where C is the signbit) if X's type is a full mode.
157
158 2004-05-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
159
160         * pa.md: Disable the peephole2 patterns that generate indexed
161         floating-point stores when indexing is disabled.
162
163 2004-05-31  Gabriel Dos Reis  <gdr@integrable-solutions.net>
164
165         * c-pretty-print.c (pp_c_left_bracket): Make a function.
166         (pp_c_right_bracket): Likewise.
167         (pp_c_star): Likewise.
168         (pp_c_ampersand): Define.
169         * c-pretty-print.h (pp_c_left_bracket): Declare.
170         (pp_c_right_bracket): Likewise.
171         (pp_c_star): Likewise.
172         (pp_c_ampersand): Likewise.
173
174 2004-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
175
176         * config/sol2.h (__enable_execute_stack): ANSIfy function
177         definition.
178
179 2004-05-31  Danny Smith  <dannysmith@users.sourceforge.net>
180
181         * c-incpath.c (add_path): Canonicalize paths to use '/' if
182         HAVE_DOS_BASED_FILESYSTEM.
183
184 2004-05-31  Steven Bosscher  <stevenb@suse.de>
185
186         * tree-ssa-dom.c (record_equivalences_from_incoming_edge):
187         Only look at case labels if the immediate dominator is also
188         the only predecessor.  Don't look for more case labels if the
189         first seen is a case range.
190
191 2004-05-31  Kazu Hirata  <kazu@cs.umass.edu>
192
193         * builtins.c: Add a prototype for fold_builtin_strchr().
194
195 2004-05-31  Paolo Bonzini  <bonzini@gnu.org>
196
197         Revert this patch:
198         2004-05-27  Paolo Bonzini  <bonzini@gnu.org>
199
200         * combine.c (gen_binary): Remove.
201         (known_cond, simplify_shift_const
202         find_split_point, combine_simplify_rtx,
203         simplify_if_then_else, simplify_set,
204         simplify_logical, expand_field_assignment,
205         extract_left_shift, force_to_mode,
206         if_then_else_cond, apply_distributive_law,
207         simplify_and_const_int, simplify_shift_const,
208         gen_lowpart_for_combine, simplify_comparison,
209         reversed_comparison): Replace with
210         simplify_gen_binary, simplify_gen_relational or
211         distribute_and_simplify_rtx.
212         (distribute_and_simplify_rtx): New function.
213
214 2004-05-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
215
216         * pa.c (emit_move_sequence): Fix loading of non 14-bit CONST operands
217         when generating PIC code.
218
219 2004-05-30  Andrew Pinski  <pinskia@physics.uc.edu>
220
221         * c-decl.c (c_expand_body_1): Remove and fold back into ...
222         (c_expand_body): here.
223         (c_expand_decl): Move to ...
224         * c-common.c (c_expand_decl): Here and remove check for nested
225         functions.
226         * c-common.h (c_expand_decl): Add prototype.
227         * c-tree.h (c_expand_decl): Remove.
228
229 2004-05-30  Roger Sayle  <roger@eyesopen.com>
230
231         * fold-const.c (combine_comparisons, optimize_bit_field_compare,
232         range_binop, fold_truthop, fold_binary_op_with_conditional_arg,
233         fold_mathfn_compare, fold_inf_compare, fold,
234         fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
235         Use constant_boolean_node where appropriate.  Don't bother using
236         fold_convert on the second argument to omit_one_operand.
237
238 2004-05-30  Roger Sayle  <roger@eyesopen.com>
239
240         * doc/c-tree.texi (Expressions): Document FLOOR_DIV_EXPR,
241         CEIL_DIV_EXPR, ROUND_DIV_EXPR, FLOOR_MOD_EXPR, CEIL_MOD_EXPR,
242         ROUND_MOD_EXPR, EXACT_DIV_EXPR.  Improve documentation of
243         TRUNC_DIV_EXPR, TRUNC_MOD_EXPR and comparison operations.
244         Add missing (but documented) tree nodes to the index.
245
246 2004-05-30  Steven Bosscher  <stevenb@suse.de>
247
248         PR tree-optimization/14819
249         * builtins.c (fold_builtin_strchr): New.
250         (fold_builtin_1): Handle BUILT_IN_STRCHR and BUILT_IN_STRRCHR
251         with fold_builtin_strchr().
252
253 2004-05-30  Kazu Hirata  <kazu@cs.umass.edu>
254
255         * bb-reorder.c, builtins.c, c-common.c, c-gimplify.c,
256         c-incpath.c, cgraphunit.c, ddg.c, defaults.h, dwarf2out.c,
257         expmed.c, flags.h, gcc.c, gensupport.c, gimplify.c, global.c,
258         passes.c, reg-stack.c, target.h, toplev.c, tree-alias-ander.c,
259         tree-alias-common.c, tree-cfg.c, tree-complex.c, tree-dfa.c,
260         tree-eh.c, tree-mudflap.c, tree-mudflap.h, tree-outof-ssa.c,
261         tree-phinodes.c, tree-pretty-print.c, tree-ssa-alias.c,
262         tree-ssa-ccp.c, tree-ssa-live.c, tree-ssa-live.h,
263         tree-ssa-pre.c, tree.h, value-prof.h, varasm.c: Fix comment
264         formatting.
265
266 2004-05-30  Steven Bosscher  <stevenb@suse.de>
267
268         * gimplify.c (sort_case_labels): New.  Split out from...
269         (gimplify_switch_expr): ...here.  Use it.
270         * tree-eh.c (lower_try_finally_switch): Sort the labels of
271         the SWITCH_EXPR created here before leaving the function.
272         * tree.c (sort_case_labels): Add prototype.
273
274 2004-05-30  Andrew Pinski  <pinskia@physics.uc.edu>
275
276         * fold-const.c (fold) [case TRUTH_NOT_EXPR]: Make sure the type is
277         of BOOLEAN_TYPE.
278
279 2004-05-30  Kazu Hirata  <kazu@cs.umass.edu>
280
281         * c-common.c, calls.c, cfgcleanup.c, cgraph.c, cgraphunit.c,
282         ddg.c, ddg.h, df.c, df.h, except.c, expr.c, flags.h,
283         fold-const.c, gcc.c, gimplify.c, haifa-sched.c,
284         modulo-sched.c, tree-inline.c, tree-into-ssa.c, tree-nested.c,
285         tree-nrv.c, tree-ssa-ccp.c, tree-ssa-dom.c, tree-ssa-live.c,
286         tree-ssa-loop.c, tree-ssa-pre.c, tree-tailcall.c, tree.h: Fix
287         comment typos.  Follow spelling conventions.
288
289 2004-05-29  Geoffrey Keating  <geoffk@apple.com>
290
291         * gengtype-yacc.y: Add NESTED_PTR token.
292         (option): Record `nested_ptr' option.
293         * gengtype-lex.l: Handle `nested_ptr' keyword.
294         * gengtype.c (walk_type): Process `nested_ptr' option.
295         * gengtype.h (struct nested_ptr_data): New.
296         * doc/gty.texi (GTY Options): Document `nested_ptr' option.
297         * stringpool.c (struct string_pool_data): Make 'entries' point to
298         ht_identifier instead of tree.
299         (gt_pch_save_stringpool): Don't adjust pointers.
300         (gt_pch_restore_stringpool): Call ht_load.
301
302 2004-05-29  Jason Merrill  <jason@redhat.com>
303
304         * gimplify.c (gimplify_expr): Don't build a statement list
305         if no gimplification was necessary.
306
307 2004-05-29  Joseph S. Myers  <jsm@polyomino.org.uk>
308
309         * pretty-print.c (pp_base_format_text): Support %< instead of %`
310         and %> as well as %'.
311         * c-format.c: Use %< and %>.
312         (gcc_diag_char_table, gcc_cdiag_char_table,
313         gcc_cxxdiag_char_table): Update.
314
315 2004-05-29  Joseph S. Myers  <jsm@polyomino.org.uk>
316
317         * c-typeck.c (common_type): Correct comment.
318
319 2004-05-29  Peter Barada  <peter@the-baradas.com>
320
321         * config/m68k/m68k.c (CONST_METHOD): Add MVZ, MVS.
322         * config/m68k/m68k.c (const_method): Likewise.
323         * config/m68k/m68k.c (const_int_cost): Likewise.
324         * config/m68k/m68k.c (const_int_cost): Likewise.
325         * config/m68k/m68k.c (output_move_const_into_data_reg): Likewise.
326
327 2004-05-29  Peter Barada  <peter@the-baradas.com>
328
329         * config/m68k/m68k.h (EXTRA_CONSTRAINT): add 'U' for register offset
330         addressing.
331         * config/m68k/m68k.md: Add 'U,U' alternative to ColdFire variants of
332         movsi,movhi,movqi insn patterns.
333
334 2005-05-28  Andrew Pinski  <pinskia@physics.uc.edu>
335
336         * c-semantics.c (emit_local_var): Remove code for DECL_INITIAL.
337
338         PR target/15720
339         * config/darwin.c (machopic_indirect_call_target): Copy
340         the SYMBOL_REF_DECL from the original RTX for the new
341         stub RTX.
342
343 2004-05-28  DJ Delorie  <dj@redhat.com>
344
345         * stor-layout.c (place_field): Revert erroneous commit.
346
347 2004-05-28  Ziemowit Laski  <zlaski@apple.com>
348
349         * config/rs6000/altivec.h (vec_ctf, vec_vcfsx, vec_vcfux, vec_cts,
350         vec_ctu, vec_dss, vec_dst, vec_dstst, vec_dststt, vec_dstt, vec_ld,
351         vec_ldl, vec_lvsl, vec_lvsr, vec_sld, vec_splat, vec_vspltw,
352         vec_vsplth, vec_vspltb, vec_splat_s8, vec_splat_s16, vec_splat_s32,
353         vec_splat_u8, vec_splat_u16, vec_splat_u32, vec_st, vec_stl,
354         vec_ste): Remove type checks for integral parameters and literals
355         from '..._args_eq' macros.
356
357 2004-05-28  Aldy Hernandez  <aldyh@redhat.com>
358
359         * c-common.c (fname_as_string): Fix xcalloc to xmalloc.
360
361 2004-05-28  Aldy Hernandez  <aldyh@redhat.com>
362
363         * testsuite/g++.dg/charset/function.cc: New.
364
365         * testsuite/gcc.dg/charset/function.c: New.
366
367         * c-decl.c (c_make_fname_decl): Free return value from
368         fname_as_string.
369
370         * cp/decl.c (cp_make_fname_decl): Free return value from
371         fname_as_string.
372
373         * c-common.c (fname_as_string): Translate if necessary.
374
375 2004-05-28  Geoffrey Keating  <geoffk@apple.com>
376
377         * stringpool.c: Add comments to PCH saving/restoring routines.
378
379 2004-05-28  Andrew Pinski  <pinskia@physics.uc.edu>
380
381         * c-common.c (c_estimate_num_insns_1): Kill.
382         (c_estimate_num_insns): Kill.
383         * c-common.h (c_estimate_num_insns): Kill.
384
385         * gthr-posix.h: Check for _POSIX_PRIORITY_SCHEDULING
386         when checking for _POSIX_THREAD_PRIORITY_SCHEDULING.
387         Remove comment about not checking for
388         _POSIX_PRIORITY_SCHEDULING.
389         * gthr-posix.c: Likewise.
390
391 2004-05-28  Paolo Bonzini  <bonzini@gnu.org>
392             Roger Sayle  <roger@eyesopen.com>
393
394         PR rtl-optimization/15649
395         Add LTGT_EXPR and improve pretty-printing of unordered
396         comparisons.
397         * c-common.c (c_common_truthvalue_conversion):
398         Handle LTGT_EXPR.
399         * c-typeck.c (build_binary_op): Likewise.
400         * dojump.c (do_jump): Likewise.
401         * expr.c (expand_expr_real_1, do_store_flag): Likewise.
402         * predict.c (tree_predict_by_opcode): Likewise.
403         * real.c (real_compare): Likewise.
404         * tree-cfg.c (verify_expr): Likewise.
405         * tree-inline.c (estimate_num_insns_1): Likewise.
406         * tree-pretty-print.c (dump_generic_node): Likewise.
407         Handle ORDERED_EXPR, UNORDERED_EXPR.
408         (op_symbol): Print unordered comparisons differently
409         than ordered ones.
410         * tree.def (LTGT_EXPR): New '<' tree code.
411         * doc/c-tree.texi (Expressions): Document floating-point
412         comparison nodes.
413
414         Fold comparisons between floating point values.
415         * fold-const.c (enum comparison_code): New, from
416         #define'd constants.  Define compcodes for unordered
417         comparisons and for invalid transformations.
418         (invert_tree_comparison): Add "honor_nans" parameter.
419         (fold_truthop): Revamp to work on floating-point types too.
420         (comparison_to_compcode): Support unordered comparisons.
421         Use new enum comparison_code.
422         (compcode_to_comparison): Likewise.
423         (combine_compcodes): New function.
424         (invert_truthvalue): Let invert_tree_comparison decide
425         whether it is valid to fold the comparison.  Fold ORDERED
426         and UNORDERED even if flag_unsafe_math_optimizations is off,
427         and the remaining even if flag_unsafe_math_optimizations
428         is off but we are under -fno-trapping-math.
429         (fold_relational_const): Integer modes do not honor NaNs.
430
431 2004-05-28  Paul Brook  <paul@codesourcery.com>
432
433         * config/arm/arm.c (arm_output_epilogue): Remove redundant code.
434
435 2004-05-28  Paul Brook  <paul@codesourcery.com>
436
437         * config/arm/arm.c (thumb_force_lr_save): New function.
438         (arm_get_frame_offsets, thumb_unexpanded_epilogue,
439         thumb_output_function_prologue): Use it.
440         (thumb_expand_prologue): Set lr_save_eliminated.
441
442 2004-05-28  Richard Sandiford  <rsandifo@redhat.com>
443
444         * config/mips/mips.md (extendsidi2): Tie the source and destination
445         of the register alternative.  Split it into nothing.
446
447 2004-05-28  Richard Sandiford  <rsandifo@redhat.com>
448
449         * rtl.h (skip_consecutive_labels): Declare.
450         * emit-rtl.c (skip_consecutive_labels): New function.
451         * reorg.c (relax_delay_slots, dbr_schedule): Use it.
452         * jump.c (follow_jumps): Say what null return values mean.
453
454 2004-05-28  Kaz Kojima  <kkojima@gcc.gnu.org>
455
456         PR target/13250
457         * config/sh/sh.md (rotlsi3): Use emit_move_insn.
458
459 2004-05-27  Kaz Kojima  <kkojima@gcc.gnu.org>
460
461         * config/sh/t-linux (SHLIB_MAPFILES): Use sh specific
462         libgcc-std.ver.
463         * config/sh/libgcc-std.ver: New file.
464
465 2004-05-27  Bryce McKinlay  <mckinlay@redhat.com>
466
467         * except.c: Revert change of 2004-05-26.
468         * config/i386/i386.md: Revert change of 2004-05-27.
469
470 2004-05-27  Bryce McKinlay  <mckinlay@redhat.com>
471
472         * configure.ac: Remove --enable-tree-browser option.
473         Define TREEBROWSER when ac_tree_checking is defined.
474         * configure: Rebuilt.
475
476 2004-05-27  Olivier Hainque  <hainque@act-europe.fr>
477
478         * expr.c (store_constructor): Restore sanity check on
479         the size of the type before clearing.
480
481 2004-05-27  Jan Hubicka  <jh@suse.cz>
482
483         * cfgbuild.c (control_flow_insn_p):  Notice noreturn call
484
485 2004-05-27  Paolo Bonzini  <bonzini@gnu.org>
486
487         * combine.c (gen_binary): Remove.
488         (known_cond, simplify_shift_const
489         find_split_point, combine_simplify_rtx,
490         simplify_if_then_else, simplify_set,
491         simplify_logical, expand_field_assignment,
492         extract_left_shift, force_to_mode,
493         if_then_else_cond, apply_distributive_law,
494         simplify_and_const_int, simplify_shift_const,
495         gen_lowpart_for_combine, simplify_comparison,
496         reversed_comparison): Replace with
497         simplify_gen_binary, simplify_gen_relational or
498         distribute_and_simplify_rtx.
499         (distribute_and_simplify_rtx): New function.
500         * simplify-rtx.c (simplify_binary_operation):
501         Use nonzero_bits to simplify ANDs where we are
502         turning off bits already known to be off in OP0.
503
504 2004-05-27  Alan Modra  <amodra@bigpond.net.au>
505
506         PR target/14478
507         * config/rs6000/rs6000.c (reg_or_neg_short_operand): Don't allow zero.
508
509 2004-05-27  Josef Zlomek  <zlomekj@suse.cz>
510
511         PR middle-end/14084
512         * emit-rtl.c (gen_rtx_REG_offset): Adjust the offset according
513         to size of decl.
514
515 2004-05-26  Aldy Hernandez  <aldyh@redhat.com>
516
517         PR/14924
518         * config/rs6000/rs6000.c (spe_expand_stv_builtin): New.
519
520 2004-05-26  Roger Sayle  <roger@eyesopen.com>
521
522         * tree.h: Fix comment typo.
523
524 2004-05-27  Steven Bosscher  <stevenb@suse.de>
525
526         * gimplify.c (compare_case_labels): New function.
527         (gimplify_switch_expr): Sort case labels, and make sure the
528         last label in the label vector is the default case.
529         * tree-cfg.c (group_case_labels): New function.
530         (build_tree_cfg): Cleanup redundant labels and group case labels
531         before creating edges.
532         (cleanup_dead_labels): Handle GOTO_EXPRs.
533         (find_case_label_for_value): Use a binary search to find the
534         case label for the given value.
535         * tree-gimple.c: Mention that labels are sorted, and that the
536         last label must be the default.
537
538 2004-05-27  Jan Hubicka  <jh@suse.cz>
539
540         * cfgcleanup.c (try_optimize_cfg): Do not merge across jumptables.
541
542 2004-05-27  Jan Hubicka  <jh@suse.cz>
543
544         * i386.md (UNSPECV_EH_RETURN): Kill.
545         (eh_return): Use jump_insn.
546         (eh_return_si, eh_return_di): Change pattern to jump instruction.
547
548 2004-05-26  Jan Hubicka  <jh@suse.cz>
549
550         * cfgcleanup.c (try_forward_edges):  Do not check loop structure when
551         not loop optimizing.
552
553 2004-05-26  Jan Hubicka  <jh@suse.cz>
554
555         * except.c (can_throw_internal):  Notice RESX instructions.
556
557 2004-05-26  Eric Botcazou  <ebotcazou@act-europe.fr>
558
559         * varasm.c (output_constant) <INTEGER_TYPE>: Pass the minimum
560         of the two sizes to assemble_integer.
561
562 2004-05-25  Paul Brook  <paul@codesourcery.com>
563
564         * config/arm/arm.c (thumb_exit, thumb_unexpanded_epilogue): Remove
565         pointless #ifdef.
566
567 2004-04-25  Paolo Bonzini  <bonzini@gnu.org>
568
569         * Makefile.in (top_builddir): Define to .
570
571 2004-05-25  Alexandre Oliva  <aoliva@redhat.com>
572
573         * configure.ac (gcc_cv_ld): Prefer in-tree ld over whatever the
574         top-level detects, except when in-tree ld is being cross-built.
575         (gcc_cv_as): Likewise for as.  Use AS_FOR_TARGET otherwise, and
576         then AS only if target is host.
577         * configure: Rebuilt.
578
579 2004-05-25  Vladimir Makarov  <vmakarov@redhat.com>
580
581         * global.c (global_alloc): Call make_accurate_live_analysis.
582         (record_one_conflict): Remove dead code.
583         (mark_reg_clobber): Remove ATTRIBUTE_UNUSED for parameter data.
584         (bb_info): New structure.
585         (BB_INFO, BB_INFO_BY_INDEX): New macros.
586         (allocate_bb_info, free_bb_info, mark_reg_change,
587         calculate_local_reg_bb_info, set_up_bb_rts_numbers, rpost_cmp,
588         modify_bb_reg_pav, calculate_reg_pav,
589         make_accurate_live_analysis): New functions.
590
591 2004-05-25  Devang Patel  <dpatel@apple.com>
592
593         * alias.c (init_alias_analysis): Use ggc_calloc instead of
594         xrealloc.
595         (end_alias_analysis): Use ggc_free instead fo free.
596
597 2004-05-25  Andrew Pinski  <pinskia@physics.uc.edu>
598
599         PR target/15546
600         * config/ia64/ia64.h (ASM_OUTPUT_FDESC): Mark the DECL
601         as needed to be outputted.
602
603 2004-05-25  Jan Hubicka  <jh@suse.cz>
604
605         * builtins.def (__builtin_expect):  Mark the function as const&nothrow.
606
607 2004-05-25  Ayal Zaks  <zaks@il.ibm.com>
608         Mostafa Hagog  <mustafa@il.ibm.com>
609
610         * Makefile.in (modulo-sched.o, ddg.o): New.
611         * ddg.h, ddg.c, modulo-sched.c: New files.
612         * cfglayout.c (duplicate_insn_chain): Remove "static" and push
613         internals to "dupicate_insn".
614         (duplicate_insn): New function.
615         * cfglayout.h (duplicate_insn_chain, duplicate_insn): New
616         declarations.
617         * common.opt (fmodulo-sched): New flag.
618         * df.c (df_bb_regno_last_use_find, df_bb_regno_first_def_find):
619         Remove static and forward declaration.
620         (df_find_def, df_reg_used, df_bb_regno_last_def_find): New
621         functions.
622         * df.h (df_bb_regno_last_use_find, df_bb_regno_first_def_find,
623         df_bb_regno_last_def_find, df_find_def, df_reg_used): New
624         declarations.
625         * flags.h (flag_modulo_sched): New flag.
626         * opts.c (common_handle_option): Handle modulo-sched flag.
627         * params.def (max-sms-loop-number, sms-max-ii-factor,
628         sms-dfa-history, sms-loop-average-count-threshold): New
629         parameters.
630         * params.h (MAX_SMS_LOOP_NUMBER, SMS_MAX_II_FACTOR,
631         SMS_DFA_HISTORY, SMS_LOOP_AVERAGE_COUNT_THRESHOLD): New
632         parameters.
633         * passes.c ("sms", "sms-vcg"): New dumps.
634         (rest_of_handle_sched): Call sms_schedule.
635         * rtl.h (sms_schedule): New declaration.
636         * timevar.def (TV_SMS): New.
637         * toplev.c (flag_modulo_sched): Initialize.
638         (f_options): Handle -fmodulo-sched option.
639         * docs/invoke.texi: Document -fmodulo-sched & -dm options.
640         * docs/passes.texi: Document new SMS pass.
641
642 2004-05-25  Paolo Bonzini  <bonzini@gnu.org>
643
644         * Makefile.in (OBJS): Add rtlhooks.o.
645         (rtlanal.o): Depend on function.h.
646         (cse.o): Depend on rtlhooks-def.h.
647         (combine.o): Depend on rtlhooks-def.h.
648         (rtlhooks.o): New rule.
649         * combine.c: Include rtlhooks-def.h.
650         (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
651         num_sign_bit_copies, cached_num_sign_bit_copies,
652         num_sign_bit_copies1): Move most of the code to rtlanal.c.
653         (reg_nonzero_bits_for_combine,
654         reg_num_sign_bit_copies_for_combine): New functions holding
655         the remnants of the above.
656         (combine_rtl_hooks): New.
657         (combine_instructions): Set rtl_hooks instead of gen_lowpart.
658         * cse.c: Include rtlhooks-def.h.
659         (cse_rtl_hooks): New.
660         (cse_main): Set rtl_hooks instead of gen_lowpart.
661         * emit-rtl.c (gen_lowpart): Remove.
662         (gen_lowpart_general): Move to rtlhooks.c.
663         * rtl.h (nonzero_bits, num_sign_bit_copies,
664         struct rtl_hooks, rtl_hooks, general_rtl_hooks): New.
665         (gen_lowpart_general): Remove.
666         (gen_lowpart): Temporarily redefine as a macro.
667         * rtlanal.c: Include function.h.
668         (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
669         num_sign_bit_copies, cached_num_sign_bit_copies,
670         num_sign_bit_copies1): New, from combine.c.
671         * rtlhooks.c: New file.
672
673 2004-05-25  Svein E. Seldal  <Svein.Seldal@solidas.com>
674
675         * config/avr/avr.h (LONG_LONG_TYPE_SIZE): Changed long long type
676         to support 32-bit -mint8 mode.
677
678         * doc/invoke.texi (-mint8): Added documentation for the -mint8
679         option in the AVR architecture.
680
681 2004-05-24  Mike Stump  <mrs@apple.com>
682
683         * doc/install.texi: Document that dejagnu 1.4.4 is required.
684
685 2004-05-24  Joseph S. Myers  <jsm@polyomino.org.uk>
686
687         * intl.h (open_quote, close_quote): New.
688         * intl.c (open_quote, close_quote): New.
689         (gcc_init_libintl): Set them.
690         * pretty-print.c: Include "intl.h".
691         (pp_base_format_text): Support 'q' format flag and %` and %'
692         formats.  Use ' instead of ` in comments.
693         * c-format.c (gcc_diag_flag_specs, gcc_cxxdiag_flag_specs,
694         gcc_diag_char_table, gcc_cdiag_char_table, gcc_cxxdiag_char_table,
695         foramt_types_orig): Describe these new formats.
696         (decode_format_attr, check_function_format,
697         check_format_info_main): Use these new formats.
698         (status_warning): Use ATTRIBUTE_GCC_DIAG.
699         * toplev.c (ATTRIBUTE_GCC_DIAG): Increase required GCC version to
700         check these formats to 3.5.
701
702 2004-05-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
703
704         * Makefile.in (CPPLIBS): Renamed to CPPLIB.
705         (BACKEND): Reflect this.
706         (LIBDEPS): Move CPPLIB before LIBIBERTY.
707         (LIBS): Likewise.
708
709 2004-05-24  Ulrich Weigand  <uweigand@de.ibm.com>
710
711         PR tree-optimization/14197
712         * builtins.c: Include "tree-gimple.h"
713         (readonly_data_expr): Use get_base_address.  Make sure to call
714         decl_readonly_section only on trees it can handle.
715         * tree-gimple.c (get_base_address): Accept STRING_CST and
716         CONSTRUCTOR expressions.
717         * Makefile.in: Update dependencies.
718
719 2004-05-23  Paolo Bonzini  <bonzini@gnu.org>
720
721         Move libcpp to the toplevel.
722         * Makefile.in: Remove references to libcpp files,
723         use CPPLIBS instead of libcpp.a.  Define SYMTAB_H
724         and change hashtable.h to that.
725         * aclocal.m4 (gcc_AC_HEADER_STDBOOL,
726         gcc_AC_HEADER_STRING, gcc_AC_C__BOOL): Remove.
727         * configure.ac (gcc_AC_C__BOOL, HAVE_UCHAR): Remove tests.
728         * configure: Regenerate.
729         * config.in: Regenerate.
730         * c-ppoutput.c: Include ../libcpp/internal.h instead of cpphash.h.
731         * cppcharset.c: Removed.
732         * cpperror.c: Removed.
733         * cppexp.c: Removed.
734         * cppfiles.c: Removed.
735         * cpphash.c: Removed.
736         * cpphash.h: Removed.
737         * cppinit.c: Removed.
738         * cpplex.c: Removed.
739         * cpplib.c: Removed.
740         * cpplib.h: Removed.
741         * cppmacro.c: Removed.
742         * cpppch.c: Removed.
743         * cpptrad.c: Removed.
744         * cppucnid.h: Removed.
745         * cppucnid.pl: Removed.
746         * cppucnid.tab: Removed.
747         * hashtable.c: Removed.
748         * hashtable.h: Removed.
749         * line-map.c: Removed.
750         * line-map.h: Removed.
751         * mkdeps.c: Removed.
752         * mkdeps.h: Removed.
753         * stringpool.h: Include symtab.h instead of hashtable.h.
754         * tree.h: Include symtab.h instead of hashtable.h.
755         * system.h (O_NONBLOCK, O_NOCTTY): Do not define.
756
757 2004-05-23 Paolo Bonzini <bonzini@gnu.org>
758
759         * gcc.c (struct prefix_list): Add forward declaration.
760         (do_spec_path): New function, extracted from...
761         (do_spec_1) <'D'>: ... here.  Drop support for
762         SPACE_AFTER_L_OPTION.
763         (do_spec_1) <'I'>: Use do_spec_path.
764         (process_command): Do not store the 'include' suffix
765         in include_prefixes.
766         * system.h: Poison SPACE_AFTER_L_OPTION.
767
768 2002-05-23  Roger Sayle  <roger@eyesopen.com>
769
770         * fold-const.c (non_lvalue): Explicitly list the tree codes that
771         need to be wrapped by NON_LVALUE_EXPR, instead of those that don't.
772
773 2004-05-23  Joseph S. Myers  <jsm@polyomino.org.uk>
774
775         * doc/gcc.texi, doc/gccint.texi, doc/include/gcc-common.texi:
776         Update based on printed manual.  Enable setting of offsets for
777         FSFPRINT and move it to gcc-common.texi.
778         * doc/gcc.texi: Update FSF printing details.
779         * doc/gccint.texi: Remove FSF printing details.
780
781 2004-05-23  Andrew Pinski  <pinskia@physics.uc.edu>
782
783         * config/rs6000/t-rs6000: Remove the disabling -Werror.
784
785 2004-05-22  Roger Sayle  <roger@eyesopen.com>
786
787         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
788         expand_builtin_strrchr, expand_builtin_strpbrk,
789         expand_builtin_mempcpy, expand_builtin_memcmp,
790         expand_builtin_strcmp, expand_builtin_strncmp,
791         expand_builtin_strcat, std_expand_builtin_va_start,
792         std_expand_builtin_va_arg, expand_builtin_va_copy,
793         expand_builtin_signbit, fold_builtin_cabs,
794         fold_builtin_logarithm, fold_builtin_mempcpy,
795         fold_builtin_signbit, fold_builtin_isascii,
796         fold_builtin_toascii, fold_builtin_isdigit,
797         fold_builtin_1, build_function_call_expr,
798         simplify_builtin_strchr, simplify_builtin_strrchr,
799         simplify_builtin_strpbrk, simplify_builtin_strncpy,
800         simplify_builtin_memcmp, simplify_builtin_strcmp,
801         simplify_builtin_strncmp, simplify_builtin_strncat,
802         simplify_builtin_strspn, simplify_builtin_strcspn,
803         simplify_builtin_fputs, simplify_builtin_sprintf): Replace calls
804         to build with calls to build2, build3 or omit_one_operand.
805
806 2004-05-22  Richard Sandiford  <rsandifo@redhat.com>
807
808         * config/mips/mips.c (mips_file_start): Emit a .gcc_compiled_longXX
809         section when generating EABI code.
810
811 2004-05-22  Andrew Pinski  <pinskia@physics.uc.edu>
812
813         PR 15546
814         * config/i386/i386.c (output_pic_addr_const <case SYMBOL_REF>):
815         Call mark_decl_referenced on the SYMBOL_REF_DECL.
816
817 2004-05-22  Andrew Pinski  <pinskia@physics.uc.edu>
818
819         * c-common.c (c_common_truthvalue_conversion): Handle
820         UNEQ_EXPR, UNLE_EXPR, UNGE_EXPR, UNLT_EXPR, UNGT_EXPR,
821         ORDERED_EXPR, and UNORDERED_EXPR as comparison operators,
822         i.e. set the type to truthvalue_type_node and return.
823
824 2004-05-22  Zack Weinberg  <zack@codesourcery.com>
825
826        * tree.h (struct tree_decl): Add possibly_inlined bit.
827         (DECL_POSSIBLY_INLINED): New accessor macro.
828         * cgraph.h: Remove declaration of cgraph_inline_hash.
829         * cgraph.c: Remove definition of cgraph_inline_hash.
830         (hash_node): Revert to hashing DECL_UID.
831         (eq_node): Take two pointers to cgraph_node structures.
832         Compare DECL_UIDs.
833         (cgraph_remove_node): Pass the node directly to htab_find_slot.
834         (cgraph_varpool_hash_node): Rename hash_varpool_node;
835         hash on DECL_UID.
836         (eq_cgraph_varpool_node): Rename eq_varpool_node; take two
837         pointers to cgraph_varpool_node structures; compare DECL_UIDs.
838         (cgraph_node): Allocate a temporary node on the stack, fill in
839         its DECL field, and pass that to htab_find_slot.
840         (cgraph_varpool_node): Likewise.
841         (cgraph_function_possibly_inlined_p): If global info is ready,
842         return the DECL_POSSIBLY_INLINED bit.
843         * cgraphunit.c (cgraph_mark_inline_edge): Set DECL_POSSIBLY_INLINED
844         instead of mucking with cgraph_inline_hash.
845
846 2004-05-22  Joseph S. Myers  <jsm@polyomino.org.uk>
847
848         * doc/contrib.texi: Add g77 contributors.
849
850 2004-05-22  Richard Sandiford  <rsandifo@redhat.com>
851
852         * calls.c (initialize_argument_information): Forbid sibcalls if a
853         callee-copied argument is stored in the current function's frame.
854
855 2004-05-22  Eric Christopher  <echristo@redhat.com>
856
857         * fix-header.c (read_scan_file): Update for add_path change.
858
859 2004-05-22  Ben Elliston  <bje@au.ibm.com>
860
861         * c.opt (Wmissing-include-dirs): New.
862         * c-opts.c (c_common_handle_option): Pass true for user_supplied_p
863         to add_path () for -I, but false for OPT_idirafter, OPT_iquote and
864         OPT_isystem. Handle case OPT_Wmissing_include_dirs.
865         * c-incpath.h (add_path): Add fourth (bool) argument.
866         * c-incpath.c (add_env_var_paths): Pass false to add_path ().
867         (add_standard_paths): Likewise.
868         (remove_duplicates) [REASON_NOENT]: Warn if -Wmissing-include-dirs
869         is used and the directory was user-supplied via -I.
870         (add_path): Set p->user_supplied_p.  Remove duplicated code by
871         using add_cpp_dir_path ().
872         * cpplib.h (struct cpp_options): Add warn_missing_include_dirs.
873         (struct cpp_dir): Add user_supplied_p.
874         * doc/invoke.texi (Warning Options): Document new option.
875
876 2004-05-21  Ulrich Weigand  <uweigand@de.ibm.com>
877
878         * fold-const.c (fold_read_from_constant_string): Convert result to
879         requested type.
880
881 2004-05-21  Richard Henderson  <rth@redhat.com>
882
883         * gimplify.c (mostly_copy_tree_r): Don't attempt to copy decls.
884         (copy_if_shared_r): Don't copy decls, types, constants, BINDs.
885         Don't mark VA_ARG_EXPRs volatile here.
886         (gimplify_modify_expr): Unshare TYPE_SIZE_UNIT.
887
888 2004-05-21  Richard Henderson  <rth@redhat.com>
889
890         * Makefile.in (tree-dump.o): Depend on tree-iterator.h.
891         * tree-dump.c (dequeue_and_dump): Dump STATEMENT_LISTs.
892
893 2004-05-21  Roger Sayle  <roger@eyesopen.com>
894
895         * fold-const.c (fold, fold_relational_hi_lo,
896         nondestructive_fold_binary_to_constant,
897         fold_read_from_constant_string): Use fold_convert instead of convert.
898         * builtins.c (simplify_builtin, simplify_builtin_strstr,
899         simplify_builtin_strchr, simplify_builtin_strrchr,
900         simplify_builtin_strpbrk): Use fold_convert instead of convert.
901
902 2004-05-21  Diego Novillo  <dnovillo@redhat.com>
903
904         * tree-flow-inline.h (num_immediate_uses): Don't abort if DF
905         is NULL.
906
907 2004-05-21  Jakub Jelinek  <jakub@redhat.com>
908
909         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): If SPARC_BI_ARCH,
910         override sparc.h definition.
911
912 2004-05-20  Roger Sayle  <roger@eyesopen.com>
913
914         * tree.c (array_type_nelts, save_expr, substitute_in_expr,
915         get_unwidened, get_narrower): Replace build with build2.
916         * fold-const.c (negate_expr, associate_trees, size_binop,
917         fold_convert, eval_subst, omit_one_operand, invert_truthvalue,
918         pedantic_omit_one_operand, distribute_bit_expr,
919         make_bit_field_ref, optimize_bit_field_compare,
920         decode_field_reference, range_binop, make_range,
921         build_range_check, fold_range_test, fold_truthop,
922         optimize_minmax_comparison, extract_muldiv_1,
923         fold_binary_op_with_conditional_arg, fold_mathfn_compare,
924         fold_inf_compare, fold_single_bit_test, fold,
925         fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
926         Likewise replace build with either build2 or build3.
927
928 2004-05-20  Ian Lance Taylor  <ian@wasabisystems.com>
929
930         * system.h: Poison NO_RECURSIVE_FUNCTION_CSE.
931         * calls.c (prepare_call_address): Don't test
932         NO_RECURSIVE_FUNCTION_CSE.
933         * config/arc/arc.h (NO_RECURSIVE_FUNCTION_CSE): Don't define.
934         * config/arm/arm.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
935         * config/avr/avr.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
936         * config/frv/frv.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
937         * config/i386/i386.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
938         * config/ip2k/ip2k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
939         * config/iq2000/iq2000.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
940         * config/m32r/m32r.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
941         * config/m68k/m68k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
942         * config/mcore/mcore.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
943         * config/mips/mips.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
944         * config/stormy16/stormy16.h (NO_RECURSIVE_FUNCTION_CSE):
945         Likewise.
946         * config/xtensa/xtensa.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
947         * config/sh/sh.h: Remove NO_RECURSIVE_FUNCTION_CSE comment.
948         * doc/tm.texi (Costs): Remove documentation for
949         NO_RECURSIVE_FUNCTION_CSE.
950
951 2004-05-20  Paul Brook  <paul@codesourcery.com>
952
953         * unwind-dw2-fde.c (get_cie_encoding): Handle dwarf3 CIE format.
954         * unwind-dw2.c (extract_cie_info): Ditto.
955         (_Unwind_FrameState): Change retaddr_column to word type.
956
957 2004-05-20  Roger Sayle  <roger@eyesopen.com>
958
959         PR middle-end/3074
960         * fold-const.c (strip_compound_expr): Delete function.
961         (count_cond): Delete function.
962         (fold_binary_op_with_conditional_arg): Only perform transformations
963         "a + (b?c:d) -> b ? a+c : a+d" and "(b?c:d) + a -> b ? c+a : d+a"
964         when a is constant.  This greatly simplifies this routine.
965
966         * tree.c (saved_expr_p): Delete function.
967         * tree.h (saved_expr_p): Delete function prototype.
968
969 2004-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
970
971         * common.opt (ftree-loop-optimize): Remove.
972
973 2004-05-20  Daniel Jacobowitz  <dan@debian.org>
974
975         * Makefile.in (AR_FOR_TARGET, RANLIB_FOR_TARGET)
976         (NM_FOR_TARGET): Use := and $(shell).
977         (mainversion): Remove unused variable.
978
979 2004-05-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
980
981         * reorg.c (delete_from_delay_slot): If we have a barrier after the
982         sequence containing the insn to be deleted, always reemit it.
983
984 2004-05-20  Richard Henderson  <rth@redhat.com>
985
986         PR 15454
987         * tree-nested.c (get_chain_decl): Create a PARM_DECL by hand.
988         * function.c (expand_function_start): Expand static_chain_decl by hand.
989         * gimplify.c (create_tmp_var_name): Export.
990         * tree-gimple.h (create_tmp_var_name): Declare.
991
992 2004-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
993
994         * rs6000.c (print_operand) <case 'z'>: Call
995         mark_decl_referenced before assemble_name.
996
997 2004-05-20  Zack Weinberg  <zack@codesourcery.com>
998
999         * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
1000         (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
1001         (cgraph_varpool_node): Hash on the pointer to the decl, not
1002         the DECL_UID.  Fixes 64-bit bootstrap failure.
1003
1004 2004-05-20  Richard Earnshaw <rearnsha@arm.com>
1005
1006         * arm.md (ite_ne_zeroextractsi, ite_ne_zeroextractsi_shifted): Ensure
1007         we don't earlyclobber operands used in the second insn.
1008
1009 2004-05-20  Steven Bosscher  <stevenb@suse.de>
1010
1011         * tree-mudflap.c: Formatting fixes.
1012
1013 2004-05-20  J"orn Rennecke <joern.rennecke@superh.com>
1014
1015         * Makefile.in (GTFILES): Add $(srcdir)/reload.h.
1016         * gengtype.c (open_base_files): Include reload.h in ifiles.
1017         * reload.h (reg_equiv_memory_loc_varray): Declare.
1018         * reload1.c (reg_equiv_memory_loc_varray): New variable.
1019         (init_reload): Initialize it.
1020         (reload): Instead of freeing reg_equiv_memory_loc, 'grow'
1021         reg_equiv_memory_loc_varray to size 0.
1022         * ra.c (reg_alloc): Allocate reg_equiv_memory_loc by
1023         growing reg_equiv_memory_loc_varray to the desired size.
1024         * passes.c (rest_of_handle_old_regalloc): Likewise.
1025         * reload.c: Amend comment on calling init_reload.
1026
1027 2004-05-20  Nick Clifton  <nickc@redhat.com>
1028
1029         * config/c4x/c4x.h (INITIALIZE_TRAMPOLINE): Replace 'tramp'
1030         with 'TRAMP' in the body of the macro definition.
1031
1032 2004-05-19  H.J. Lu  <hongjiu.lu@intel.com>
1033
1034         PR target/15383
1035         * config/ia64/ia64.c (ia64_expand_compare): Don't check
1036         TARGET_HPUX for TFmode compare. Abort if op0 is in TFmode and
1037         cmptf_libfunc isn't set.
1038         (ia64_init_libfuncs): Rename TFmode libfuncs using the HPUX
1039         conventions.
1040         (ia64_sysv4_init_libfuncs): New.
1041
1042         * config/ia64/sysv4.h (TARGET_INIT_LIBFUNCS): New. Defined as
1043         ia64_sysv4_init_libfuncs.
1044
1045 2004-05-20  Falk Hueffner  <falk@debian.org>
1046
1047         PR other/15526
1048         * libgcc2.c (__mulvsi3): Fix overflow test.
1049
1050 2004-05-19  Andrew Pinski  <pinskia@physics.uc.edu>
1051
1052         PR c/14171
1053         * reg-stack.c (nan): Rename to ...
1054         (not_a_num): Here.
1055         (reg_to_stack): Rename nan to not_a_num.
1056         (subst_stack_regs_pat): Likewise.
1057         (convert_regs_entry): Likewise.
1058         (convert_regs_1): Likewise.
1059
1060         * tree-cfg.c (find_case_label_for_value): Replace call to
1061         simple_cst_equal with tree_int_cst_equal.
1062
1063 2004-05-19  Jeff Law <law@redhat.com>
1064
1065         * tree-into-ssa.c (prepare_operand_for_rename): New argument is_use.
1066         If the operand is for a use, then strip away the SSA_NAME, do not
1067         strip away the SSA_NAME for a set.  Never call release_ssa_name.
1068         (mark_def_sites): Appropriately pass additional argument to
1069         prepare_operand_for_rename.  If a VDEF_RESULT is not an SSA_NAME,
1070         then set the VDEF_RESULT to the VDEF_OP.
1071         (set_def_block): Strip away any SSA_NAME to get to the real
1072         underlying variable.
1073
1074         * tree-ssa-phiopt.c (value_replacement): Handle the case where
1075         the desired edge out of COND_BLOCK reaches OTHER_BLOCK rather than
1076         BB directly.
1077
1078 2004-05-19  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1079
1080         PR c++/15463
1081         * loop-iv.c (iv_number_of_iterations):  Use trunc_int_for_mode on
1082         result of inverse.
1083
1084         PR rtl-optimization/15274
1085         * loop-iv.c (determine_max_iter, shorten_into_mode,
1086         iv_number_of_iterations): Handle constants correctly.
1087         * rtl.h (get_mode_bounds): Declaration changed.
1088         * stor-layout.c (get_mode_bounds): Return a constant suitable for
1089         the target mode.
1090
1091         PR rtl-optimization/14692
1092         * loop-unswitch.c (may_unswitch_on): Try folding the result.
1093         (unswitch_single_loop): Work correctly when may_unswitch_on
1094         returns a folded constant.
1095
1096         * loop-iv.c (implies_p): Handle A < B ==> A + 1 <= B.
1097         * simplify-rtx.c (simplify_const_relational_operation): Optimize
1098         comparisons with mode bounds.
1099
1100         * function.c (struct temp_slot): Add new field prev.
1101         (free_after_compilation, init_temp_slots): Free new fields.
1102         (cut_slot_from_list, insert_slot_to_list,
1103         temp_slots_at_level, max_slot_level, move_slot_to_level,
1104         make_slot_available): New functions.
1105         (assign_stack_temp_for_type, combine_temp_slots,
1106         find_temp_slot_from_address, preserve_temp_slots,
1107         preserve_rtl_expr_result, free_temp_slots,
1108         free_temps_for_rtl_expr, pop_temp_slots): Work with
1109         the new structure of lists.
1110         (mark_all_temps_used): Removed.
1111         * function.h (struct function): Field x_temp_slots
1112         replaced by x_used_temp_slots and x_avail_temp_slots.
1113         (temp_slots): Replaced by ...
1114         (used_temp_slots, avail_temp_slots): New.
1115         * tree.h (mark_all_temps_used): Declaration removed.
1116
1117         * loop-iv.c (mark_single_set, get_biv_step_1, iv_analyze,
1118         simplify_using_assignment): Take the expression out of
1119         the expr_list wrapper.
1120
1121         * loop-iv.c (iv_number_of_iterations): Improve clasification of
1122         infinite loops.
1123
1124 2004-05-19  Roger Sayle  <roger@eyesopen.com>
1125
1126         * doc/tm.texi (TARGET_RTX_COSTS): Document that instruction
1127         costs should be based on code size when optimizing for size.
1128
1129 2004-05-19  Paolo Bonzini  <bonzini@gnu.org>
1130
1131         * fold-const.c: Remove non-printable character 160.
1132
1133 2004-05-19  Nick Clifton  <nickc@redhat.com>
1134
1135         * doc/invoke.texi (ARM Options): Fix typo.
1136         Remove descrption of -mshort-load-bytes and
1137         -mno-short-load-bytes.
1138
1139         * config/ip2k/ip2k.c (ip2k_composite_xexp_not_uses_reg_p): Add
1140         missing parenthesis.
1141         * config/ip2k/ip2k.c (ip2k_unary_operator): Likewise.
1142         * config/ip2k/ip2k.c (ip2k_binary_operator): Likewise.
1143
1144 2004-05-19  Steven Bosscher  <stevenb@suse.de>
1145
1146         * expr.c (store_constructor): Build loop start and end by hand
1147         instead of via loop functions from stmt.c.
1148         (expand_expr_real_1): Abort if we see an EXIT_EXPR or a LOOP_EXPR.
1149         Remove the code to expand them.
1150
1151         * stmt.c (loop_stack): Remove this and everything related.
1152         (struct nesting, enum nesting_desc): Update.
1153         (expand_fixup): Likewise.
1154         (expand_loop_start, expand_start_loop_continue_elsewhere,
1155         expand_start_null_loop, expand_loop_continue_here, expand_end_loop,
1156         expand_end_null_loop, expand_continue_loop, expand_exit_loop,
1157         expand_exit_loop_if_false, expand_exit_loop_top_cond,
1158         expand_exit_something): Remove.
1159         * tree.h: Remove prototypes.
1160
1161 2004-05-18  Mike Stump  <mrs@apple.com>
1162             Devang Patel  <dpatel@apple.com>
1163
1164         * doc/tm.texi (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument to indicate
1165         if this label is for eh.
1166         * config/darwin-protos.h (darwin_emit_unwind_label): Likewise.
1167         * config/darwin.c (darwin_emit_unwind_label): Likewise.
1168         * dwarf2out.c (output_call_frame_info): Likewise.
1169         * output.h (default_emit_unwind_label): Likewise.
1170         * target.h (unwind_label): Likewise.
1171         * varasm.c (default_emit_unwind_label): Likewise.
1172
1173         * config/darwin.h (DWARF2_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE,
1174         DEBUG_FRAME_SECTION, DEBUG_INFO_SECTION, DEBUG_ABBREV_SECTION,
1175         DEBUG_ARANGES_SECTION, DEBUG_MACINFO_SECTION, DEBUG_LINE_SECTION,
1176         DEBUG_LOC_SECTION, DEBUG_PUBNAMES_SECTION, DEBUG_STR_SECTION,
1177         DEBUG_RANGES_SECTION): Define.
1178
1179 2004-05-18  Zack Weinberg  <zack@codesourcery.com>
1180
1181         * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
1182         (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
1183         (cgraph_varpool_node):
1184         Use DECL_UID for the key, not DECL_ASSEMBLER_NAME.
1185         (cgraph_function_possibly_inlined_p): Use the decl itself for
1186         the key, not DECL_ASSEMBLER_NAME.
1187         (change_decl_assembler_name): No need to muck with the hash tables.
1188         (cgraph_node_for_identifier, cgraph_varpool_node_for_identifier):
1189         Delete.
1190         * cgraphunit.c (cgraph_mark_inline_edge): Use the decl itself
1191         for the key, not DECL_ASSEMBLER_NAME.
1192         * cgraph.h: Remove prototypes of deleted functions.
1193         * varasm.c (mark_referenced): Just set TREE_SYMBOL_REFERENCED.
1194         (mark_decl_referenced): New function.
1195         * tree.h: Prototype mark_decl_referenced.
1196         * final.c (output_addr_const) <case SYMBOL_REF>: Call
1197         mark_decl_referenced before assemble_name.
1198         * c-decl.c (finish_decl): Use mark_decl_referenced.
1199
1200 2004-05-18  Andrew Pinski  <pinskia@physics.uc.edu>
1201             Jeff Law <law@redhat.com>
1202
1203         * tree-ssa-phiopt.c (abs_replacement): New function.
1204         (empty_block_p): New function extracted from...
1205         (candidate_bb_for_phi_optimization): Break out empty block test.
1206         (conditional_replacement): Use empty_block_p.
1207         (value_replacement): Similarly.
1208
1209         * Makefile.in (tree-ssa-phiopt.o): Depends on flags.h.
1210         * tree-ssa-phiopt.c: Include flags.h.
1211         (conditional_replacement): Remove argument names from prototype.
1212         Minor formatting and comment fixes.
1213         (tree_ssa_phiopt): If conditional_replacement returns false, then
1214         call value_replacement.
1215         (value_replacement): New function.
1216
1217 2004-05-18  Jeff Law  <law@redhat.com>
1218
1219         * tree-ssa-phiopt.c (replace_phi_with_stmt): New function extracted
1220         from conditional_replacement.
1221         (candidate_bb_for_phi_optimization): Similarly.
1222         (conditional_replacement): Use replace_phi_with_stmt and
1223         candidate_bb_for_phi_optimization.
1224
1225         * tree-ssa-phiopt.c: Fix various formatting issues.
1226
1227 2004-05-18  Steven Bosscher  <stevenb@suse.de>
1228
1229         * config/s390/s390.c (s390_expand_movstr, s390_expand_clrstr,
1230         s390_expand_cmpmem): Do not use expand_start_loop and
1231         expand_end_loop, instead build the loop manually.
1232
1233 2004-05-18  Alan Modra  <amodra@bigpond.net.au>
1234
1235         * config/rs6000/rs6000.md (ctrsi_internal3): Delete.
1236         (ctrsi_internal4, ctrdi_internal3, ctrdi_internal4): Delete.
1237
1238 2004-05-17  Jeff Law  <law@redhat.com>
1239
1240         * toplev.h (flag_delete_null_pointer_checks): Move from here to...
1241         * flags.h (flag_delete_null_pointer_checks): Here.
1242         * tree-flow.h (cprop_into_successor_phis): Add argument to prototype.
1243         * tree-phinodes.c (resize_phi_node): Initialize PHI_ARG_NONZERO.
1244         (add_phi_arg, remove_phi_arg_num): Similarly.
1245         * tree-ssa-copy.c (cprop_into_successor_phis): Propagate nonzero
1246         property into PHI nodes.
1247         * tree-ssa-dom.c: Remove redundant inclusion of flags.h.
1248         (record_equivalences_from_phis): If all PHI arguments are known to be
1249         nonzero, then the result must be nonzero as well.
1250         (cprop_into_phis): Pass nonzero_vars bitmap to cprop_into_successor_phis.
1251         (record_equivalences_from_stmt): Check flag_delete_null_pointer_checks
1252         appropriately.  Walk the USE-DEF chains and propagate nonzero property
1253         as appropriate.
1254         * tree.h (PHI_ARG_NONZERO): Define.
1255         (phi_arg_d): Add nonzero flag.
1256
1257 2004-05-17  Zack Weinberg  <zack@codesourcery.com>
1258
1259         * f: Entire directory removed
1260
1261         * c-common.h (CTI_G77_INTEGER_TYPE, CTI_G77_UINTEGER_TYPE)
1262         (CTI_G77_LONGINT_TYPE, CTI_G77_ULONGINT_TYPE)
1263         (g77_integer_type_node, g77_uinteger_type_node)
1264         (g77_longint_type_node, or g77_ulongint_type_node): Delete.
1265         * c-common.c (c_common_nodes_and_builtins): Do not initialize
1266         the above set of variables.
1267
1268         * config/i386/uwin.h: No need to define WIN32_UWIN_TARGET.
1269         * doc/invoke.texi, doc/standards.texi: Remove cross-references
1270         to g77 manual.
1271
1272 2004-05-17  Steven Bosscher  <stevenb@suse.de>
1273
1274         PR tree-optimization/15438
1275         * tree-ssa-operands.c (get_expr_operands): Do not treat malloc
1276         attributed functions as pure or const.
1277
1278 2004-05-17  Frank Ch. Eigler  <fche@redhat.com>
1279
1280         * tree-mudflap.c (mx_register_decls): Tolerate decl trees resulting
1281         from source code with errors.
1282
1283 2004-05-17  Ranjit Mathew  <rmathew@hotmail.com>
1284
1285         Enable tree browser for all front ends.
1286         * Makefile.in (cc1): Moved @TREEBROWSER@ from here...
1287         (BACKEND): ...to here.
1288
1289 2004-05-17  Jan Hubicka  <jh@suse.cz>
1290
1291         * i386.c (construct_container): Do not produce BLKmode registers.
1292         (classify_argument): Properly compute alignment of complex types.
1293
1294 2004-05-17  H.J. Lu  <hongjiu.lu@intel.com>
1295
1296         PR target/15084
1297         * config/i386/i386.md (*movsi_insv_1_rex64): Changed to DImode
1298         and renamed to movdi_insv_1_rex64.
1299         (insv): Support SImode for 32bit and DImode for 64bit.
1300
1301 2004-05-17  Richard Sandiford  <rsandifo@redhat.com>
1302
1303         * config/mips/mips.h (MASK_DEBUG_G, TARGET_DEBUG_G_MODE): Delete.
1304         (TARGET_SWITCHES): Remove debugg.
1305         * config/mips/mips.md (adddi3, ashldi3, ashrdi3, lshrdi3): Only handle
1306         TARGET_64BIT.
1307         (subdi3): Replace the define_expand with a define_insn, the latter
1308         renamed from subdi3_internal_3.
1309         (negdi2): Likewise negdi2_internal_2.
1310         (adddi3_internal_[12], subdi3_internal, ashldi3_internal{,2,3})
1311         (ashrdi3_internal{,2,3}, lshrdi3_internal{,2,3}): Remove patterns
1312         and associated define_splits.
1313         (adddi3_internal): Renamed from adddi3_internal_3.
1314         (ashldi3_internal): Likewise ashldi3_internal4.
1315         (ashrdi3_internal): Likewise ashrdi3_internal4.
1316         (lshrdi3_internal): Likewise lshrdi3_internal4.
1317
1318 2004-05-17  Richard Sandiford  <rsandifo@redhat.com>
1319
1320         * optabs.c (expand_unop): Try implementing negation using subtraction
1321         from zero.
1322
1323 2004-05-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1324
1325         * pa.md:  Fix typo from last change.  Remove DFmode move to and from
1326         SAR register.
1327
1328 2004-05-16  Richard Earnshaw  <rearnsha@arm.com>
1329
1330         PR target/10982
1331         * arm.md (ne_zeroextractsi): Convert to insn-and-split.
1332         (ne_zeroextractsi_shifted): New pattern.
1333         (ite_ne_zeroextractsi): New pattern.
1334         (ite_ne_zeroextractsi_shifted): New pattern.
1335
1336 2004-05-15  Steven Bosscher  <stevenb@suse.de>
1337
1338         * c-gimplify.c (c_genericize):
1339         Replace calls via (*lang_hooks.foo) with lang_hooks.foo.
1340         * c-parse.in <expr_no_commas>: Likewise.
1341         <if_prefix>: Likewise.
1342         <select_or_iter_stmt>: Likewise.
1343         * expr.c (expand_var, expand_expr_real_1): Likewise.
1344         * expr.h (expand_expr): Make it a static inline function.
1345         Move prototype for expand_expr_real up before this.
1346         * fold-const.c (fold_relational_hi_lo, fold_relational_const):
1347         Likewise.
1348         * gimplify.c (gimple_boolify, gimplify_addr_expr,
1349         gimplify_asm_expr, gimplify_expr): Likewise.
1350         * tree-cfg.c (dump_tree_cfg, dump_cfg_stats, tree_cfg2vcg,
1351         dump_function_to_file): Likewise.
1352         * tree-dfa.c (dump_immediate_uses, dump_dfa_stats): Likewise.
1353         * tree-inline.c (remap_block, save_body, walk_tree): Likewise.
1354         * tree-into-ssa.c (dump_tree_ssa): Likewise.
1355         * tree-mudflap.c (mf_varname_tree, mf_file_function_line_tree):
1356         Likewise.
1357         * tree-optimize.c (execute_one_pass): Likewise.
1358         * tree-pretty-print.c (dump_generic_bb_buff): Likewise.
1359         * tree-ssa-alias.c (dump_alias_stats, dump_alias_info): Likewise.
1360
1361         * objc/objc-act.c (objc_build_try_enter_fragment,
1362         objc_build_try_epilogue, objc_build_catch_stmt,
1363         objc_build_finally_prologue): Replace calls via (*lang_hooks.foo)
1364         with lang_hooks.foo ().
1365
1366 2004-05-15  Roger Sayle  <roger@eyesopen.com>
1367
1368         * builtins.c (simplify_builtin_strcpy): Avoid use of chainon, so
1369         that simplify_builtin doesn't destructively modify its argument.
1370
1371 2004-05-15  Richard Earnshaw  <reanrsha@arm.com>
1372
1373         * arm/lib1funcs.asm (_lshrdi3, _ashrdi3, _ashldi3): Add ASM
1374         implementations for ARM and Thumb.
1375         * arm/t-arm-elf (LIB1ASMFUNCS): Use them.
1376
1377 2004-05-15  Thomas Quinot  <quinot@act-europe.fr>
1378
1379         * prefix.c (update_path): Replace PREFIX with KEY only
1380         when it matches a full directory name in PATH.
1381
1382 2004-05-15  Richard Earnshaw  <reanrsha@arm.com>
1383
1384         * arm.h (TARGET_APCS_32): Delete.
1385         (TARGET_MMU_TRAPS): Delete.
1386         (TARGET_CPU_CPP_BUILTINS): Unconditionally define __APCS_32__.  Never
1387         define __APCS_26__.
1388         (CPP_SPEC): Remove checking of -mapcs-{26,32}.
1389         (ARM_FLAG_APCS_32, ARM_FLAG_MMU_TRAPS): Delete.
1390         (TARGET_SWITCHES): Remove alignment_traps and apcs-{26,32} switches.
1391         (prog_mode_type): Delete.
1392         (PROMOTE_MODE): Always promote unsigned for HImode.
1393         (SECONDARY_INPUT_RELOAD_CLASS): Simplify.
1394         (MASK_RETURN_ADDR): Simplify.
1395         * arm.c (arm_prgmode): Delete.
1396         (arm_override_options, arm_gen_rotated_half_load): Simplify.
1397         (print_multi_reg, output_return_instruction): Simplify.
1398         (arm_output_epilogue, arm_final_prescan_insn): Simplify.
1399         (arm_return_addr): Simplify.
1400         * arm.md (prog_mode): Delete.
1401         (conds): Simplify.
1402         (zero_extendhisi2, extendhisi2, movhi, movhi_bytes): Simplify.
1403         (rotated_loadsi, movhi_insn_littleend, movhi_insn_bigend): Delete.
1404         (loadhi_si_bigend, loadhi_preinc, loadhi_shiftpreinc): Delete.
1405         (loadhi_shiftpredec): Delete.
1406         (peephole for post-increment on HImode load): Delete.
1407         * arm/crtn.asm: (FUNC_END): Simplify.
1408         * arm/lib1funcs.asm: Remove APCS-26 return macros.
1409         * arm/aof.h, arm/coff.h arm/elf.h arm/linux-elf.h arm/netbsd-elf.h
1410         * arm/netbsd.h arm/pe.h arm/semi.h arm/semiaof.h arm/unknown-elf.h
1411         * arm/vxworks.h arm/wince-pe.h: Tidy TARGET_DEFAULTS and
1412         MULTILIB_DEFAULTS as required.
1413         * arm/t-arm-elf arm/t-linux arm/t-pe arm/t-semi arm/t-wince-pe
1414         * arm/t-xscale-coff arm/t-xscale-elf arm/uclinux-elf: Tidy MULTILIB
1415         variables as required.
1416         * doc/invoke.texi (ARM Options): Remove obsolete flags.
1417
1418 2004-05-15  Alan Modra  <amodra@bigpond.net.au>
1419
1420         * config/rs6000/rs6000.c (rs6000_va_arg <ABI_V4>): Don't use
1421         UNITS_PER_WORD to calculate gpr size.  Re-instate code to set reg
1422         count to 8 to handle n_reg > 2.
1423
1424 2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>
1425
1426         * doc/extend.texi: Update WG14 URL.
1427
1428 2004-05-15  Steven Bosscher  <stevenb@suse.de>
1429
1430         * basic-block.h (life_analysis, delete_noop_moves):
1431         Update prototypes.
1432         * bt-load.c (branch_target_load_optimize): Don't take the
1433         insns stream as an argument.  Update the life_analysis calls.
1434         * combine.c (combine_instructions): Update delete_noop_moves
1435         calls.
1436         * flow.c (notice_stack_pointer_modification): Don't take the
1437         insns stream as an argument.  Work on the flow graph.
1438         (life_analysis): Likewise.
1439         (delete_noop_moves): Likewise.
1440         * passes.c (rest_of_handle_stack_regs): Update reg_to_stack call.
1441         (rest_of_handle_life): Update life_analysis call.
1442         (rest_of_compilation): Likewise, and also update
1443         branch_target_load_optimize call.
1444         * ra.c (reg_alloc): Update life_analysis call.
1445         * reg-stack.c (reg_to_stack): Likewise.  Also, don't take
1446         the insns stream as an argument.
1447         * regrename.c (copyprop_hardreg_forward): Update delete_noop_moves
1448         call.
1449         * rtl.c (branch_target_load_optimize, reg_to_stack): Update
1450         prototypes.
1451         * value-profile.c (branch_prob): Update life_analysis call.
1452         * web.c (web_main): Work on the CFG, not on the insns stream.
1453
1454         * config/ip2k/ip2k.c (ip2k_reorg): Update life_analysis calls.
1455         * config/m68hc11/m68hc11.c (m68hc11_reorg): Likewise.
1456         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
1457
1458 2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>
1459
1460         PR c/15444
1461         * c-format.c (avoid_dollar_number): New function.
1462         (check_format_info_main): Call avoid_dollar_number when operand
1463         numbers might occur but has_operand_number == 0.
1464
1465 2004-05-14  Richard Earnshaw  <rearnsha@arm.com>
1466
1467         * arm.md (all peephole2 patterns): Use predicates that validate
1468         register classes as appropriate.
1469
1470 2004-05-14  Steven Bosscher  <stevenb@suse.de>
1471
1472         PR opt/14472
1473         * tree-tailcall.c (process_assignment): Use STRIP_NOPS to
1474         ignore type conversions that do not inhibit tail calling.
1475         (find_tail_calls): Likewise.
1476
1477 2004-05-14  Jeff Law  <law@redhat.com>
1478
1479         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Don't even
1480         bother marking bypassed virtuals for out-of-ssa.  Instead merge
1481         bypassed virtuals into vars_to_rename just before into-ssa pass.
1482
1483         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Reorganize
1484         so that it picks up more opportunities to eliminate ABS expressions
1485         or turn them into negations.
1486
1487 2004-05-14  Steven Bosscher  <stevenb@suse.de>
1488
1489         * passes.c (rest_of_handle_null_pointer): Remove.
1490         (rest_of_handle_cse): Don't call rest_of_handle_null_pointer.
1491         (rest_of_compilation): Likewise.
1492         * rtl.h (delete_null_pointer_checks): Remove prototype.
1493         * gcse.c (rd_kill, rd_gen, reaching_defs, rd_out, ae_in, ae_out):
1494         Remove declarations.
1495         (get_bitmap_width, alloc_rd_mem, free_rd_mem, handle_rd_kill_set,
1496         compute_kill_rd, compute_rd, alloc_avail_expr_mem,
1497         free_avail_expr_mem, compute_ae_gen, expr_killed_p, compute_ae_kill,
1498         expr_reaches_here_p, computing_insn, def_reaches_here_p,
1499         can_disregard_other_sets, handle_avail_expr, classic_gcse,
1500         one_classic_gcse_pass, invalidate_nonnull_info,
1501         delete_null_pointer_checks_1, delete_null_pointer_checks,
1502         expr_reached_here_p_work): Remove.
1503         (gcse_main): Do not perform classic GCSE when optimizing for size.
1504         (alloc_pre_mem, free_pre_mem): Don't touch ae_in and ae_out, they
1505         are never used.
1506
1507 2004-05-14  Andrew Pinski  <pinskia@physics.uc.edu>
1508
1509         PR optimization/14466
1510         * tree-complex.c (make_temp): Remove.
1511         (gimplify_val): Replace make_temp with make_rename_temp
1512         and add NULL as the second argument.
1513         (expand_complex_div_wide): Likewise.
1514         * tree-dfa.c (make_rename_temp): New function.
1515         * tree-flow.h (make_rename_temp): Declare.
1516         * tree-sra.c (make_temp): Remove.
1517         (lookup_scalar): Replace make_temp with make_rename_temp.
1518         (create_scalar_copies): Likewise.
1519         * tree-ssa-phiopt.c (conditional_replacement): When we
1520         get non gimple create a temporary variable to hold the
1521         casted expression.
1522
1523 2004-05-14  Paul Brook  <paul@codesourcery.com>
1524
1525         * stor-layout.c (update_alignment_for_field): Use
1526         targetm.align_anon_bitfield.
1527         * target-def.h (TARGET_ALIGN_ANON_BITFIELD): Define.
1528         (TARGET_INITIALIZER): Use it.
1529         * target.h (struct gcc_target): Add align_anon_bitfield.
1530         * config/arm/arm.c (arm_align_anon_bitfield):  New function.
1531         (TARGET_ALIGN_ANON_BITFIELD): Define.
1532         * doc/tm.texi: Document TARGET_ALIGN_ANON_BITFIELD.
1533
1534 2004-05-13  Zack Weinberg  <zack@codesourcery.com>
1535
1536         * tree.def (documentation): Remove mention of class 'b'.
1537         (BLOCK): Now in class 'x'.
1538         * c-common.c (verify_tree): Remove case 'b'.
1539         * c-typeck.c (same_translation_unit_p): Change 'b' to 'x'.
1540         * calls.c (calls_function_1): Control cannot get past the switch
1541         when exp is a BLOCK.
1542         * print-tree.c (print_node): Move code for class 'b' to the class
1543         'c'/'x' switch, as case BLOCK.
1544         * tree.c (tree_size, make_node_stat, tree_node_structure): Likewise.
1545         (unsafe_for_reeval, substitute_placeholder_in_expr)
1546         (stabilize_reference_1): Remove case 'b'.
1547         * tree-browser.c (browse_tree): Change all tests for TREE_CODE_CLASS
1548         of something being 'b' to tests for TREE_CODE of something being
1549         BLOCK.
1550         * tree-ssa-operands.c (get_expr_operands): Likewise.
1551
1552 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
1553
1554         * tree-gimple.c: Rename from tree-simple.c.
1555         * tree-gimple.h: Rename from tree-simple.h.
1556         * c-gimplify.c: Rename from c-simplify.c
1557         * Makefile.in, c-decl.c, gimple-low.c, gimplify.c,
1558         langhooks.c, tree-alias-ander.c, tree-alias-common.c,
1559         tree-complex.c, tree-dfa.c, tree-flow.h, tree-inline.c,
1560         tree-into-ssa.c, tree-iterator.c, tree-mudflap.c,
1561         tree-nested.c, tree-nomudflap.c, tree-outof-ssa.c, tree-sra.c,
1562         tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-copyrename.c,
1563         tree-ssa-dce.c, tree-ssa-live.c, tree-ssa-pre.c, tree-ssa.c:
1564         Update.
1565
1566 2004-05-14  Ranjit Mathew  <rmathew@hotmail.com>
1567
1568         * doc/sourcebuild.texi: Mention libbanshee and libmudflap.
1569
1570 2004-05-13  Andrew Pinski  <pinskia@physics.uc.edu>
1571
1572         * tree-ssa.c (delete_tree_ssa): XFREE
1573         bitmaps allocated with BITMAP_XMALLOC.
1574
1575         * tree-ssa-pre.c (execute_pre): Free ephi_use_pool and
1576         idfs_cache at the end of the function.
1577
1578         * tree-ssa-live.c (calculate_live_on_entry): Free saw_def
1579         at the end of the function.
1580
1581         * tree-ssa-dce.c (perform_tree_ssa_dce): Free
1582         el at the end of the function.
1583
1584         * tree-into-ssa.c (insert_phi_nodes_for): XFREE
1585         bitmaps allocated with BITMAP_XMALLOC.
1586
1587         * loop-unswitch.c (unswitch_single_loop): Free bbs at
1588         the end.
1589
1590         * final.c (shorten_branches): Free uid_shuid before
1591         reallocating it.
1592
1593         * bb-reoder.c (connect_traces): Free cold_traces at the end.
1594
1595 2004-05-13  Jeff Law  <law@redhat.com>
1596
1597         * tree-ssa-live.c (calculate_live_on_entry): Ignore virtual
1598         variables.  Simplify slightly by using USE_OP/DEF_OP instead
1599         of USE_OP_PTR/DEF_OP_PTR and dereferencing the result.
1600
1601         * tree-into-ssa.c (compute_global_livein): Use EXECUTE_IF_SET_IN_BITMAP
1602         rather than iterating through the blocks testing each bit in
1603         livein to initialize the worklist.
1604         (mark_def_sites): Remove useless checks of KILLS for virtual
1605         operands.
1606
1607         * tree-ssa-forwprop.c (record_single_argument_cond_exprs): Accept
1608         new parameters for the statement and variable worklist as well
1609         as a bitmap of interesting SSA_NAMEs.  Walk over the statement
1610         worklist recording interesting variables in the variable worklist
1611         and bitmap.  Handle casts between integral and boolean types.
1612         (substitute_single_use_vars): Accept new parameters for the statement
1613         and variable worklist.  When a substitution is made add a new
1614         entry to the statement worklist.  Handle casts between integral
1615         and boolean types.
1616         (tree_ssa_forward_propagate_single_use_vars): Rework to pass
1617         worklists to children.  Iterate until the statement worklist
1618         is empty.
1619
1620 2004-05-13  Andrew Pinski  <pinskia@physics.uc.edu>
1621
1622         * tree-outof-ssa.c (rewrite_vars_out_of_ssa): Free map at
1623         the end of the block.
1624
1625         * tree-into-ssa.c (def_blocks_free): XFREE bitmaps allocated
1626         with BITMAP_XMALLOC.
1627
1628         * tree-ssa-alias.c (delete_alias_info): XFREE bitmaps allocated
1629         with BITMAP_XMALLOC.
1630
1631         * tree-ssa-dom.c (tree_ssa_dominator_optimize):
1632         Free nonzero_vars at the end of the function.
1633
1634         * convert.c (convert_to_integer): Make a CONVERT_EXPR when there is a
1635         need to generate code instead of a NOP_EXPR.
1636
1637 2004-05-13  Ian Lance Taylor  <ian@wasabisystems.com>
1638
1639         * gcc.c (default_compilers): Fill out initializers for new Fortran
1640         entries.
1641
1642 2004-05-13  Paul Brook  <paul@codesourcery.com>
1643
1644         * config/arm/arm.h (PCC_BITFIELD_TYPE_MATTERS): Define.
1645
1646 2004-05-13  Paul Brook  <paul@codesourcery.com>
1647
1648         * config/arm/arm.c (arm_default_short_enums): New function.
1649         (TARGET_DEFAULT_SHORT_ENUMS): Define.
1650
1651 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
1652
1653         Merge from tree-ssa-20020619-branch.
1654
1655         * Makefile.in (reload1.o-warn): Add.
1656         (tree-alias-ander.o-warn): Add.
1657         (GMPLIBS): Define.
1658         (GMPINC): Define.
1659         (BANSHEELIB): Define.
1660         (BANSHEEINC): Define.
1661         (TREE_DUMP_H): Define.
1662         (TREE_SIMPLE_H): Define.
1663         (TREE_FLOW_H): Define.
1664         (LIBDEPS): Add BANSHEELIB.
1665         (INCLUDES): Add BANSHEEINC and GMPINC.
1666         (C_AND_OBJC_OBJS): Add c-simplify.o, tree-mudflap.o,
1667         c-mudflap.o and c-pretty-print.o.
1668         (C_OBJS): Remove c-pretty-print.o.
1669         (OBJS-common): Remove sibcall.o.
1670         Add tree-cfg.o, tree-dfa.o, tree-eh.o,
1671         tree-ssa.o, tree-optimize.o, tree-simple.o,
1672         tree-alias-type.o, gimplify.o, tree-pretty-print.o,
1673         tree-into-ssa.o, tree-outof-ssa.o, tree-alias-common.o,
1674         tree-ssa-ccp.o, @ANDER@, tree-ssa-dce.o, tree-ssa-copy.o,
1675         tree-nrv.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
1676         tree-ssa-live.o, tree-ssa-operands.o, tree-ssa-alias.o,
1677         tree-ssa-phiopt.o, tree-ssa-forwprop.o, tree-nested.o,
1678         tree-ssa-dse.o, tree-ssa-dom.o, domwalk.o,
1679         tree-tailcall.o, gimple-low.o, tree-iterator.o,
1680         tree-phinodes.o, tree-ssanames.o, tree-sra.o,
1681         tree-complex.o, tree-ssa-loop.o, rtl-profile.o and
1682         tree-profile.o.
1683         (OBJC-archive): Add tree-nomudflap.o.
1684         (cc1): Add dependency on @TREEBROWSER@.
1685         (c-decl.o): Add dependency on TREE_DUMP_H.
1686         (c-dump.o): Likewise.
1687         (c-common.o): Add dependency on tree-iterator.h
1688         (c-pretty-print.o): Add dependency on DIAGNOSTIC_H.
1689         (gtype-desc.o): Add dependency on TREE_FLOW_H.
1690         (tree.o): Add dependency on tree-iterator.h,
1691         BASIC_BLOCK_H and TREE_FLOW_H.
1692         (tree-dump.o): Depend on TREE_DUMP_H instead of tree-dump.h.
1693         (langhooks.o): Add dependency on TREE_SIMPLE_H.
1694         (tree-alias-type.o, tree-alias-ander.o,
1695         tree-alias-common.o, tree-ssa.o, tree-into-ssa.o,
1696         tree-outof-ssa.o, tree-ssa-dse.o, tree-ssa-forwprop.o,
1697         tree-ssa-phiopt.o, tree-nrv.o, tree-ssa-copy.o,
1698         tree-ssa-dom.o, tree-ssanames.o, tree-phinodes.o,
1699         domwalk.o, tree-ssa-live.o, tree-ssa-copyrename.o,
1700         tree-ssa-pre.o, tree-cfg.o, tree-tailcall.o,
1701         tree-nested.o, tree-iterator.o, tree-dfa.o,
1702         tree-ssa-operands.o, tree-eh.o, tree-ssa-loop.o,
1703         tree-ssa-alias.o, tree-optimize.o, c-simplify.o,
1704         gimplify.o, gimple-low.o, tree-browser.o, tree-simple.o,
1705         tree-mudflap.o, c-mudflap.o, tree-nomudflap.o,
1706         tree-pretty-print.o, tree-ssa-dce.o, tree-ssa-ccp.o,
1707         tree-sra.o, tree-complex.o, tree-profile.o,
1708         rtl-profile.o): New rules.
1709         (function.o): Add dependency on basic-block.h
1710         (expr.o): Add dependency on tree-iterator.h.
1711         (sibcall.o): Remove.
1712         (profile.o): Depend on TREE_FLOW_H instead of TREE_H.
1713         (cfg.o): Add dependency on TIMEVAR_H.
1714         (cfghooks.o): Add dependency on TREE_FLOW_H.
1715         (reg-stack.o): Add dependency on basic-block.h.
1716         (GTFILES): Add hwint.h, tree-mudflaph.c, tree-flow.h,
1717         c-objc-common.c, c-common.c, c-parse.in, tree-ssanames.c,
1718         tree-eh.c, tree-phinodes.c, tree-cfg.c, tree-dfa.c,
1719         tree-ssa-ccp.c, tree-iterator.c, gimplify.c,
1720         tree-alias-type.h, tree-alias-common.h,
1721         tree-alias-type.c, tree-alias-common.c,
1722         tree-ssa-operands.h, tree-ssa-operands.c, tree-profile.c,
1723         rtl-profile.c and tree-nested.c.
1724         (gt-tree-alias-common.h, gt-tree-mudflap.h,
1725         gt-tree-ssa-ccp.h, gt-tree-eh.h, gt-tree-ssanames.h,
1726         gt-tree-iterator.h, gt-gimplify.h, gt-tree-phinodes.h,
1727         gt-tree-cfg.h, gt-tree-nested.h): New rules.
1728         (TEXI_GCCINT_FILES): Add cfg.texi and tree-ssa.texi.
1729         * basic-block.h: Include predict.h
1730         (struct edge_def): Add GTY marker.
1731         Change field 'insns' to be a union of tree and rtx.
1732         (EDGE_TRUE_VALUE): Define.
1733         (EDGE_FALSE_VALUE): Define.
1734         (EDGE_EXECUTABLE): Define.
1735         (struct bb_ann_d): Forward declare.
1736         (struct basic_block_def): Add GTY marker.
1737         Remove fields head_tree and end_tree.
1738         Add fields stmt_list, rbi and tree_annotations.
1739         (struct reorder_block_def): Define.
1740         (basic_block_info): Add GTY marker.
1741         (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Change to global
1742         variables instead of macros.
1743         (flow_call_edges_add): Remove declaration.
1744         (make_eh_edge): Remove declaration.
1745         (brief_dump_cfg, find_edge, tree_predicted_by_p,
1746         rtl_predicted_by_p, tree_predict_edge, rtl_predict_edge,
1747         predict_edge_def, rtl_make_eh_edge, find_basic_blocks,
1748         cleanup_cfg, delete_unreachable_blocks, merge_seq_blocks,
1749         alloc_rbi_pool, initialize_bb_rbi, free_rbi_pool): Declare.
1750         (try_redirect_by_replacing_jump): Modfiy return type to
1751         edge instead of bool.
1752         * bb-reorder.c (copy_bb): Call duplicate_block
1753         instead of cfg_layout_duplicate_bb.
1754         (copy_bb_p): Call can_duplicate_block_p instead of
1755         cfg_layout_can_duplicate_bb_p.
1756         * bitmap.c (bitmap_first_set_bit): Abort if word
1757         wasn't found.
1758         (bitmap_last_set_bit): Likewise.
1759         * builtin-types.def (DEF_FUNCTION_TYPE_2): Add
1760         (DEF_FUNCTION_TYPE_3): Add.
1761         * builtins.c (c_strlen): Make extern.
1762         (builtin_save_expr): New.
1763         (expand_builtin_nonlocal_goto): New.
1764         (expand_builtin_constant_p): Remove.
1765         (expand_builtin_mathfn): Call builtin_save_expr instead
1766         of save_expr.
1767         (expand_builtin_mathfn_2): Likewise.
1768         (expand_builtin_strcmp): Likewise.
1769         (expand_builtin_strncmp): Likewise.
1770         (expand_builtin_strcat): Likewise.
1771         (fold_builtin_cabs): Likewise.
1772         (expand_builtin_alloca): Don't trigger if -fmudflap is
1773         given.
1774         (build_string_literal): Set TREE_INVARIANT on new node.
1775         (expand_builtin_profile_fun): New.
1776         (round_trampoline_addr): New.
1777         (expand_builtin_init_trampoline): New.
1778         (expand_builtin_adjust_trampoline): New.
1779         (expand_builtin) <BUILT_IN_NEXT_ARG>: Call simplify_builtin_next_arg.
1780         <BUILT_IN_CONSTANT_P>: Return const0_rtx;
1781         <BUILT_IN_STACK_ALLOC, BUILT_IN_STACK_SAVE,
1782         BUILT_IN_STACK_RESTORE, BUILT_IN_NONLOCAL_GOTO,
1783         BUILT_IN_PROFILE_FUNC_ENTER, BUILT_IN_PROFILE_FUNC_EXIT,
1784         BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE>:
1785         Handle.
1786         (fold_builtin_expect): New.
1787         (fold_builtin_isascii): Don't return non-constant results
1788         in GIMPLE form.
1789         (fold_builtin_isdigit): Likewise.
1790         (fold_builtin_1): New.
1791         (fold_builtin): Call it.
1792         (build_function_call_expr): Update call to build a new
1793         CALL_EXPR.
1794         (purge_builtin_constant_p): Remove.
1795         (simplify_builtin, simplify_builtin_memcmp,
1796         simplify_builtin_strcmp, simplify_builtin_strncmp,
1797         simplify_builtin_strpbrk, simplify_builtin_strstr,
1798         simplify_builtin_strchr, simplify_builtin_strrchr,
1799         simplify_builtin_strcat, simplify_builtin_strncat,
1800         simplify_builtin_strspn, simplify_builtin_strcspn,
1801         simplify_builtin_next_arg, simplify_builtin_va_start,
1802         simplify_builtin_sprintf): New.
1803         * builtins.def (BUILT_IN_STACK_ALLOC,
1804         BUILT_IN_STACK_SAVE, BUILT_IN_STACK_RESTORE,
1805         BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE,
1806         BUILT_IN_NONLOCAL_GOTO, BUILT_IN_PROFILE_FUNC_ENTER,
1807         BUILT_IN_PROFILE_FUNC_EXIT): Define.
1808         * c-common.c: Include tree-iterator.h and hashtab.h.
1809         (lang_statement_code_p): Declare.
1810         (lang_gimplify_stmt): Declare.
1811         (fix_string_type): Set TREE_INVARIANT for value.
1812         (pointer_int_sum): Rely on build to set TREE_CONSTANT.
1813         (c_type_hash): New.
1814         (c_common_get_alias_set): Handle multiple type nodes
1815         referring to "the same" type, currently for C90 only.
1816         (c_add_case_label): Use create_artificial_label.
1817         (finish_label_address_expr): Don't set TREE_CONSTANT on
1818         result.
1819         (c_expand_expr): Don't handle STMT_EXPR.
1820         (handle_alias_attribute): Marke aliased variables to be
1821         TREE_STATIC.
1822         (handle_nonnull_attribute): Initialize arg_num.
1823         (check_function_nonnull): Likewise.
1824         (c_walk_subtrees): New.
1825         (c_estimate_num_insns_1): Don't handle
1826         EXPR_WITH_FILE_LOCATION nor FILE_STMT.
1827         (c_decl_uninit_1): Remove.
1828         (c_decl_uninit): Remove.
1829         (c_warn_unused_result): New.
1830         * c-common.def (ASM_STMT): Change number of operands
1831         to 4.
1832         (FILE_STMT): Remove.
1833         * c-common.h (lang_expand_stmt, lang_expand_decl_stmt):
1834         Remove.
1835         (lang_gimplify_stmt): Add.
1836         (expand_stmt): Remove.
1837         (ASM_CV_QUAL, ASM_STRING, ASM_OUTPUTS, ASM_INPUTS,
1838         ASM_CLOBBERS, STMT_EXPR_WARN_UNUSED_RESULT,
1839         ASM_VOLATILE_P, FILE_STMT_FILENAME_NODE,
1840         FILE_STMT_FILENAME, STMT_LINENO, STMT_LINENO_FOR_FN_P,
1841         ASM_INPUT_P, DECL_C_HARD_REGISTER): Remove.
1842         (genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
1843         genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
1844         genrtl_while_stmt, genrtl_do_stmt, genrtl_return_stmt,
1845         genrtl_for_stmt, genrtl_break_stmt, genrtl_continue_stmt,
1846         genrtl_scope_stmt, genrtl_switch_stmt, genrtl_case_label,
1847         genrtl_compound_stmt, genrtl_asm_stmt,
1848         genrtl_cleanup_stmt, c_decl_uninit): Remove.
1849         (c_do_switch_warnings, c_gimplify_expr, c_walk_subtrees,
1850         c_tree_chain_matters_p, c_warn_unused_result,
1851         c_genericize, c_gimplify_stmt, stmt_expr_last_stmt):
1852         Declare.
1853         * c-convert.c (convert): Make convert work when
1854         converting to compatible types across translation unit.
1855         * c-decl.c: Include langhooks.h, tree-mudflap.h,
1856         tree-simple.h, diagnostic.h and tree-dump.h
1857         (merge_decls): Initialize oldtype to NULL.
1858         (finish_decl): Use DECL_HARD_REGISTER instead of
1859         DECL_C_HARD_REGISTER.
1860         (check_bitfield_type_and_width): Check for null
1861         lang_type_specific when check the precision of an enum.
1862         (grokdeclarator): Immediately layout an ARRAY_TYPE used
1863         in a pointer-to-array declarator.
1864         (finish_struct): Clear allocated struct lang_type.
1865         (finish_enum): Set enum_min and enum_max.  Set
1866         TYPE_MIN/MAX_VALUE to the limits of the compatible type,
1867         not to the enumerators.
1868         (set_decl_nonlocal): New.
1869         (store_parm_decls): Use it via walk_tree.
1870         (c_finalize): New.
1871         (finish_function): When !targetm.have_ctors_dtors,
1872         record static constructors and destructors here...
1873         (c_expand_body_1): ... not here.
1874         (c_expand_decl): Rename from c_expand_decl_stmt.
1875         Handle all C-specific expansion semantics.
1876         * c-dump.c (dump_stmt): Use EXPR_LOCUS instead of
1877         STMT_LINENO.
1878         * c-format.c (handle_format_arg_attribute): Initialize
1879         format_num.
1880         * c-lang.c: Include tree-inline.h
1881         (LANG_HOOKS_EXPAND_DECL,
1882         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
1883         LANG_HOOKS_TREE_INLINING_WALK_SUBTREES,
1884         LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P,
1885         LANG_HOOKS_GIMPLIFY_EXPR, LANG_HOOKS_TYPES_COMPATIBLE_P): Define.
1886         (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
1887         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS): Remove.
1888         (c_types_compatible_p): New.
1889         * c-mudflap.c: New file.
1890         * c-objc-common.c: Include tree-mudflap.h
1891         (start_cdtor, finish_cdtor): Collapse
1892         together into
1893         (build_cdtor): ...here.  Update to construct a complete tree
1894         for the function.  No need to call push_scope, pop_scope, or
1895         clear_last_expr, or set current_function_cannot_inline.
1896         (c_missing_noreturn_ok_p): Change prototype to return
1897         bool.
1898         (c_objc_common_init): Don't set lang_missing_noreturn_ok_p.
1899         * c-opts.c (c_common_handle_option): Move handling of -fdump- to
1900         opts.c.
1901         (c_common_post_options): Don't ever use rtl inlining.
1902         * c-parse.in: Use EXPR_LOCUS instead of STMT_LINENO.
1903         * c-pragma.c (handle_pragma_redefine_extname): Define
1904         always.
1905         (init_pragma): Activate #pragma redefine_extname for mudflap.
1906         * c-pretty-print.c (pp_c_statement): Remove FILE_STMT.
1907         (pp_c_initializer): Accept any type CONSTRUCTOR.
1908         (pp_c_initializer_list): Fix code expectations for VECTOR_TYPE and
1909         COMPLEX_TYPE.
1910         (decl_name_str): New local function.
1911         (pp_c_direct_declarator): Call it.
1912         (pp_c_primary_expression): Call it.
1913         (pp_c_id_expression): Call it.
1914         (pp_c_statement): Call it.
1915         (print_c_tree): Create new pp object.
1916         * c-pretty-print.h (pp_c_tree_decl_identifier,
1917         print_c_tree): Declare.
1918         * c-semantics.c: Include langhooks.h
1919         (lang_expand_stmt, lang_expand_decl_stmt,
1920         find_reachable_label_1, find_reachable_label,
1921         expand_unreachable_if_stmt, expand_unreachable_stmt,
1922         genrtl_do_stmt_1): Remove.
1923         (begin_stmt_tree): Don't check for changed filename.
1924         Call annotate_with_locus.
1925         (finish_stmt_tree): Don't set line for end of function.
1926         (build_stmt): Don't check type nodes for
1927         side effects.
1928         (build_stmt): Set TREE_SIDE_EFFECTS.
1929         Set EXPR_LOCUS instead of STMT_LINENO.
1930         (lang_expand_stmt, lang_expand_decl_stmt,
1931         expand_cond, genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
1932         genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
1933         genrtl_while_stmt, genrtl_do_stmt_1, genrtl_do_stmt,
1934         genrtl_return_stmt, genrtl_for_stmt, genrtl_break_stmt,
1935         genrtl_continue_stmt, genrtl_scope_stmt, genrtl_switch_stmt,
1936         genrtl_case_label, genrtl_compound_stmt, genrtl_asm_stmt,
1937         genrtl_cleanup_stmt, expand_stmt, find_reachable_label,
1938         find_reachable_label_1, expand_unreachable_if_stmt,
1939         expand_unreachable_stmt): Remove.
1940         (prep_stmt): Use EXPR_LOCUS instead of STMT_LINENO.
1941         * c-simplify.c: New file.
1942         * c-tree.h (C_LANG_TREE_NODE_CHAIN_NEXT): Define.
1943         (struct lang_type): Add fields enum_min and enum_max.
1944         (c_expand_decl_stmt, c_missing_noreturn_ok_p): Remove.
1945         (c_expand_decl, c_missing_noreturn_ok_p,
1946         c_types_compatible_p): Declare.
1947         * c-typeck.c (tagged_types_tu_compatible_p): Allow for
1948         compiler-generated TYPE_DECLs without a DECL_ORIGINAL_TYPE.
1949         (default_function_array_conversion): Rely on build to
1950         set TREE_CONSTANT.
1951         (parser_build_binary_op, pointer_diff): Likewise.
1952         (build_unary_op, build_binary_op): Likewise.
1953         (build_array_ref):
1954         (build_external_ref): Set TREE_INVARIANT.
1955         (build_c_cast, pop_init_level): Likewise.
1956         (process_init_element): Use ASM_VOLATILE_P.
1957         (build_asm_expr): Adapt to GENERIC/GIMPLE syntax.
1958         (c_finish_case): Call c_do_switch_warnings.
1959         * c.opt (fdump-): Remove.
1960         * calls.c (try_to_integrate): Remove.
1961         (prepare_call_address): Replace fndecl arg with a
1962         precomputed static chain value.
1963         (emit_call_1): New argument for full call expr.
1964         (flags_from_decl_or_type): Call special_function_p.
1965         (initialize_argument_information): Add argument
1966         may_tailcall.
1967         (purge_reg_equiv_notes): New.
1968         (expand_call): Do not try to expand calls inline.
1969         (fixup_tail_calls): New.
1970         * cfg.c: Include timevar.h and ggc.h.
1971         (bb_pool, edge_pool): Remove.
1972         (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Declare.
1973         (entry_exit_blocks): Remove.
1974         (rbi_pool): Declare.
1975         (init_flow): Do not create pools.
1976         Allocate entry/exit block.
1977         (free_edge, alloc_block, expunge_block, unchecked_make_edge): Use GGC.
1978         (alloc_rbi_pool, free_rbi_pool, initialize_bb_rbi): New.
1979         (unlink_block): Clear b->prev_bb and b->next_bb.
1980         (compact_blocks): Clear all slots of BASIC_BLOCK array.
1981         (dump_flow_info): Work on trees too.
1982         (dump_cfg_bb_info): New.
1983         (brief_dump_cfg): New.
1984         * cfganal.c (need_fake_edge_p, flow_call_edges_add): Remove.
1985         (find_edge): New.
1986         * cfgbuild.c (rtl_make_eh_edge): Rename from
1987         make_eh_edge.  Update all users.
1988         (find_basic_blocks): Don't call VARRAY_FREE on
1989         basic_block_info.
1990         * cfgcleanup.c (outgoing_edges_match): Initialize newpos1
1991         and newpos2.
1992         (delete_unreachable_blocks): Return changed status.
1993         (merge_seq_blocks): New.
1994         * cfghooks.c: Include tree-flow.h
1995         (tree_register_cfg_hooks, ir_type): New.
1996         (redirect_edge_and_branch): Change return type to edge.
1997         (predict_edge, predicted_by_p, can_duplicate_block_p,
1998         duplicate_block, block_ends_with_call_p,
1999         block_ends_with_condjump_p, flow_call_edges_add): New.
2000         * cfghooks.h (redirect_edge_and_branch): Change return
2001         type to edge.
2002         (predict_edge, predicted_by_p, can_duplicate_block_p,
2003         duplicate_block, block_ends_with_call_p,
2004         block_ends_with_condjump_p, flow_call_edges_add): Declare.
2005         (redirect_edge_and_branch): Change return type to edge.
2006         (struct cfg_hooks): Add fields block_ends_with_call_p,
2007         block_ends_with_condjump_p, flow_call_edges_add,
2008         predict_edge, predicted_by_p, can_duplicate_block_p and
2009         duplicate_block.
2010         (tree_cfg_hooks, ir_type, tree_register_cfg_hooks): Declare.
2011         * cfglayout.c (cfg_layout_pool, cfg_layout_initialize_rbi): Removed.
2012         (fixup_reorder_chain): Use initialize_bb_rbi.
2013         (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Hookized.
2014         (cfg_layout_initialize): Use cfg.c rbi pool manipulation functions.
2015         (can_copy_bbs_p, copy_bbs): Use cfghooks for bb duplication.
2016         (insn_locators_initialize): Use new info about blocks.
2017         * cfglayout.h (typedef struct reorder_block_def): Moved to
2018         basic_block.h.
2019         (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Declaration
2020         removed.
2021         * cfgloop.c: Include tree.h and tree-flow.h.
2022         * cfgloop.h (create_loop_notes): Declare.
2023         * cfgloopmanip.c (create_loop_notes): New.
2024         * cfgrtl.c (cfg_layout_create_basic_block): Use initialize_bb_rbi.
2025         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Fill in can_duplicate_block_p
2026         and duplicate_block fields.
2027         (create_basic_block_structure): Don't look at
2028         RTX_INTEGRATED_P.
2029         (rtl_block_ends_with_call_p): New.
2030         (rtl_block_ends_with_condjump_p): New.
2031         (need_fake_edge_p): Moved from cfganal.c.
2032         (rtl_flow_call_edges_add): Moved from cfganal.c (flow_call_edges_add).
2033         (rtl_cfg_hooks): Add rtl_block_ends_with_call_p,
2034         rtl_block_ends_with_condjump_p, rtl_flow_call_edges_add.
2035         (cfg_layout_rtl_cfg_hooks): Ditto.
2036         * cgraph.c (cgraph_mark_reachable_node): Don't force nested
2037         functions to be reachable.
2038         * cgraphunit.c (decide_is_function_needed):
2039         * cgraphunit.c (decide_is_function_needed): Nested functions of extern
2040         inline functions don't need to be output.
2041         (cgraph_assemble_pending_functions): Don't do anything
2042         special for nested functions.
2043         (cgraph_mark_functions_to_output): Likewise.
2044         (cgraph_finalize_function): Don't zap DECL_STRUCT_FUNCTION.
2045         (cgraph_analyze_function): Use estimate_num_insns.
2046         (cgraph_mark_functions_to_output): Likewise.
2047         (cgraph_estimate_growth, cgraph_clone_inlined_nodes): Likewise.
2048         (cgraph_expand_function): Allow functions to not be
2049         emitted.
2050         (cgraph_remove_unreachable_nodes):
2051         (cgraph_recursive_inlining_p): Simplify.
2052         (lookup_recursive_calls,
2053         cgraph_decide_recursive_inlining): New.
2054         (cgraph_decide_inlining_*): Update calls of
2055         cgraph_mark_inline.
2056         * combine.c (get_pos_from_mask): Always set *plen.
2057         * common.opt (fdump-, fmudflap, fmudflapth, fmudflapir,
2058         ftree-based-profiling, ftree-ccp, ftree-ch,
2059         ftree-combine-temps, ftree-copyrename, ftree-dce,
2060         ftree-dominator-opts, ftree-dse, ftree-loop-optimize,
2061         ftree-points-to, ftree-pre, ftree-sra, ftree-ter,
2062         ftree-lrs): Add.
2063         * config.in (HAVE_LD_PIE, HAVE_BANSHEE, PREFIX_INCLUDE_DIR):
2064         Undefine.
2065         * configure.ac: Add --enable-tree-browser option.
2066         Add --with-libbanshee option.
2067         Add GMPLIBS and GMPINC.
2068         * configure: Regenerate.
2069         * coverage.c (tree_ctr_tables): New.
2070         (coverage_counter_alloc): Use it.
2071         (build_ctr_info_value): Ditto.
2072         (coverage_counter_ref): Ditto.  Rename to rtl_coverage_counter_ref.
2073         (tree_coverage_counter_ref): New.
2074         * coverage.h (coverage_counter_ref): Remove declaration.
2075         (rtl_coverage_counter_ref): Declare.
2076         (tree_coverage_counter_ref): Declare.
2077         * cppexp.c (append_digit): Rearrange unsignedp/overflow setting.
2078         (eval_token, num_binary_op, num_part_mul, num_div_op): Likewise.
2079         * cse.c (fold_rtx): Do not handle CONSTANT_P_RTX.
2080         (struct cse_basic_block_data): Rename enum values to not
2081         conflict with profile.h; update all uses.
2082         * dbxout.c (dbxout_symbol_location): Don't mention integrate.c
2083         in comments.
2084         * defaults.h (TRAMPOLINE_ALIGNMENT): Move from function.c.
2085         * diagnostic.h (debug_output_buffer, dump_generic_node,
2086         print_generic_stmt, print_generic_stmt_indented,
2087         print_generic_expr, print_generic_decl,
2088         debug_generic_expr, debug_generic_stmt, debug_c_tree):
2089         Declare.
2090         * dominance.c: Cache immediate dominators.
2091         * domwalk.c: New file.
2092         * domwalk.h: New file.
2093         * dwarf2out.c (is_fortran): Support DW_LANG_Fortran95.
2094         (gen_subprogram_die): Generate a DIE for a named
2095         return value.
2096         (loc_descriptor_from_tree): Treat RESULT_DECL like VAR_DECL.
2097         (add_location_or_const_value_attribute): Likewise.
2098         (add_bound_info): Likewise.
2099         (gen_decl_die): Likewise.
2100         * emit-rtl.c (maybe_set_first_label_num): New.
2101         (copy_most_rtx): Don't copy the integrated flag.
2102         Copy the new return_val flag.
2103         * et-forest.c (MAX_NODES): Define.
2104         (record_path_before_1): Abort if len is greater than
2105         MAX_NODES.
2106         * except.c (gen_eh_region, gen_eh_region_cleanup, gen_eh_region_try,
2107         gen_eh_region_catch, gen_eh_region_allowed,
2108         gen_eh_region_must_not_throw, get_eh_region_number,
2109         get_eh_region_may_contain_throw, get_eh_region_tree_label,
2110         set_eh_region_tree_label, expand_resx_expr): New.
2111         (expand_eh_region_start, expand_start_catch): Use them.
2112         (expand_end_catch): Tidy.
2113         (note_eh_region_may_contain_throw): Take region argument.
2114         (note_current_region_may_contain_throw): New.
2115         (get_exception_filter): Export.
2116         (collect_eh_region_array): Export.
2117         (remove_unreachable_regions): Check ERT_TRY based on reachability
2118         of catches, not reachability of continue_label.  Never remove
2119         ERT_MUST_NOT_THROW regions.
2120         (collect_rtl_labels_from_trees): New.
2121         (convert_from_eh_region_ranges): Use it.
2122         (connect_post_landing_pads): Handle dying cleanups.
2123         (struct reachable_info): Add callback data.
2124         (add_reachable_handler): Invoke the callback.
2125         (foreach_reachable_handler): New.
2126         (reachable_handlers): Use it.
2127         (arh_to_landing_pad, arh_to_label): New.
2128         (can_throw_internal_1): Split out from can_throw_internal.
2129         (can_throw_external_1): Similarly.
2130         * except.h: Update.
2131         * explow.c (emit_stack_save): Remove savearea mode check.
2132         (update_nonlocal_goto_save_area): New.
2133         (allocate_dynamic_stack_space): Use it.
2134         (probe_stack_range): Never emit loop notes.
2135         * expmed.c (extract_fixed_bit_field): Always propagate the
2136         target for the shift if it is a REG.
2137         * expr.c: Include tree-iterator.h
2138         (is_zeros_p): Remove.
2139         (categorize_ctor_elements_1, categorize_ctor_elements): New.
2140         (count_type_elements): New.
2141         (mostly_zeros_p): Use them.
2142         (expr_wfl_stack): Remove.
2143         (convert_move): Do nothing if to and from are the same.
2144         (emit_block_move_via_loop): Don't emit LOOP notes.
2145         (emit_move_insn): Don't handle CONSTANT_P_RTX.
2146         (emit_move_insn_1): Don't generate inline warnings.
2147         (expand_vars, expand_var): Split from ...
2148         (expand_expr_1): ... here.
2149         (expand_expr_real, expand_expr_real_1):  Use new macros
2150         EXPR_LOCATION and EXPR_HAS_LOCATION.
2151         * expr.h (simplify_builtin_fputs,
2152         simplify_builtin_strcpy, simplify_builtin_strncpy,
2153         expand_var, fixup_tail_calls,
2154         update_nonlocal_goto_save_area): Declare.
2155         (lookup_static_chain, expand_inline_function,
2156         mark_seen_cases): Remove.
2157         (prepare_call_address): Change type of 2nd argument to
2158         rtx.
2159         * final.c (profile_function): Update static chain test.
2160         (final): Don't look at RTX_INTEGRATED_P.
2161         * flags.h (flag_mudflap, flag_mudflap_threads,
2162         flag_mudflap_ignore_reads, flag_tree_pre, flag_tree_ccp,
2163         flag_tree_dce, flag_tree_combine_temps,
2164         flag_tree_live_range_split, flag_tree_dom, flag_tree_ch,
2165         flag_tree_dse, flag_tree_sra, flag_tree_copyrename,
2166         flag_tree_points_to): Declare.
2167         (enum pta_type): Declare.
2168         * flow.c (lang_missing_noreturn_ok_p): Remove.
2169         (check_function_return_warnings): Remove.
2170         (update_life_info): Update comments.
2171         (free_basic_block_vars): Don't call VARRAY_FREE for
2172         basic_block_info.
2173         (regno_uninitialized): Remove.
2174         * fold-const.c (int_const_binop): Make extern.
2175         (non_lvalue): Rely on build to set TREE_CONSTANT.
2176         (operand_equal_p): Replace only_const argument with
2177         flags.  Allow pure functions if OEP_PURE_SAME.
2178         (fold): Use OEP_ONLY_CONST.
2179         (invert_truthvalue) <NOP_EXPR> Break if argument is of
2180         boolean type.
2181         (fold_relational_hi_lo,
2182         nondestructive_fold_binary_to_constant,
2183         nondestructive_fold_unary_to_constant,
2184         fold_read_from_constant_string): New.
2185         * function.c (struct function): Remove calls_constant_p.
2186         (current_function_calls_constant_p): Remove.
2187         (inline_function_decl): Remove.
2188         (put_var_into_stack): Don't use it.
2189         (fix_lexical_addr): Likewise.
2190         (inline_function_decl): Remove extern declaration.
2191         (TRAMPOLINE_ALIGNMENT): Move to defaults.h.
2192         (trampolines_created): Move to varasm.c.
2193         (free_after_compilation): Update for removed fields.
2194         (allocate_struct_function): Likewise.
2195         (delete_handlers, lookup_static_chain): Remove.
2196         (fix_lexical_addr): Don't consider non-local variable refs.
2197         (trampoline_address): Remove.
2198         (round_trampoline_addr): Move to builtins.c.
2199         (adjust_trampoline_addr): Remove.
2200         (expand_function_start): Update for changes to static chain
2201         and nonlocal goto handling.
2202         (initial_trampoline): Move to varasm.c.
2203         (expand_function_end): Don't build trampolines or kill
2204         unreferenced nonlocal goto labels.
2205         (free_after_compilation): Don't set it.
2206         (expand_function_end): Likewise.
2207         (setjmp_vars_warning): Rename from
2208         uninitialized_vars_warning, remove uninitialized vars warning.
2209         (uninitialized_vars_warning): Remove old comment
2210         and check for DECL_INITIAL, replace with a check of TREE_NO_WARNING
2211         and do not call the langhook.
2212         (expand_function_start, expand_function_end): Don't do
2213         function instrumentation here.
2214         (clear_block_marks): Rename from reorder_blocks_0, export.
2215         (blocks_nreverse): Export.
2216         (uninitialized_vars_warning): Use DECL_RTL_SET_P to test for presence
2217         of rtl.
2218         (reset_block_changes, record_block_change, finalize_block_changes,
2219         check_block_change, free_block_changes): New functions.
2220         (assign_parms): Setting of current_function_stdarg
2221         moved ...
2222         (allocate_struct_function): ... here.
2223         * function.h (struct function): Remove x_nonlocal_labels,
2224         x_nonlocal_goto_handler_slots, x_nonlocal_goto_stack_level,
2225         x_context_display, x_trampoline_list, needs_context.
2226         Add static_chain_decl, nonlocal_goto_save_area.
2227         (struct function): Remove x_clobber_return_insn.
2228         Add tail_call_emit field, last_label_uid,
2229         unexpanded_var_list, dont_emit_block_notes,
2230         ib_boundaries_block, function_end_locus and saved_tree/saved_args.
2231         (clear_block_marks): Declare.
2232         * gcc.c (MFWRAP_SPEC, MFLIB_SPEC): Add -fmudflapth support.
2233         (mfwrap_spec, mflib_spec): Declare.
2234         (cpp_unique_options, cc1_options): Ditto.
2235         (default_compilers): Add .F and .f90.
2236         (static_specs): Add mfwrap and mflib.
2237         * gcse.c (want_to_gcse_p, gcse_constant_p): Don't handle
2238         CONSTANT_RTX_P.
2239         (reg_used_on_edge, reg_killed_on_edge, bypass_block):
2240         Update to match insns field in struct edge_def.
2241         * gdbinit.in (pgs, pge): Define.
2242         * genattrtab.c (ATTR_PERMANENT_P): Use the return_val flag
2243         instead of the integrated flag.
2244         * gengtype-lex.l (IWOrD): Add HOST_WIDEST_INT
2245         * gengtype-yacc.y (bitfieldlen): Add empty action.
2246         (struct_fields): Accept unnamed bitfields.
2247         (bitfieldlen): Split from ...
2248         (bitfieldopt): ... here.
2249         * gengtype.c (ifiles): Add tree-alias-type.h and
2250         tree-flow.h.
2251         * genrecog.c (validate_pattern): Do not handle
2252         CONSTANT_P_RTX.
2253         * gimple-low.c: New file.
2254         * gimplify.c: New file.
2255         * haifa-sched.c (priority): Do not handle CONSTANT_P_RTX.
2256         (restore_line_notes): Do not set RTX_INTEGRATED_P.
2257         * ifcvt.c (dead_or_predicable): Initialize local variable
2258         'earliest'.
2259         * input.h (expr_wfl_stack): Remove.
2260         * integrate.c (INTEGRATE_THRESHOLD): Remove.
2261         (setup_initial_hard_reg_value_integration): Likewise.
2262         (initialize_for_inline): Likewise.
2263         (note_modified_parmregs): Likewise.
2264         (integrate_parm_decls): Likewise.
2265         (process_reg_param): Likewise.
2266         (save_parm_insns): Likewise.
2267         (copy_insn_list): Likewise.
2268         (copy_insn_notes): Likewise.
2269         (compare_blocks): Likewise.
2270         (find_block): Likewise.
2271         (inlining): Likewise.
2272         (function_cannot_inline_p): Likewise.
2273         (parmdecl_map): Likewise.
2274         (in_nonparam_insns): Likewise.
2275         (save_for_inline): Likewise.
2276         (FIXED_BASE_PLUS): Likewise.
2277         (expand_inline_function): Likewise.
2278         (copy_rtx_and_substitute): Don't look at map->integrating,
2279         map->inline_target, and inlining, since we are never copying
2280         for integrating.
2281         Don't abort on RTX_INTEGRATED_P.
2282         (old_fun): Remove.
2283         (output_inline_function): Remove.
2284         * integrate.h (struct inline_map): Remove fields integrating,
2285         block_map, leaf_reg_map, inline_target, and local_return_label.
2286         * jump.c (next_nonnote_insn_in_loop, duplicate_loop_exit_test,
2287         copy_loop_headers, never_reached_warning): Removed.
2288         (any_uncondjump_p): Reject nonlocal goto.
2289         * langhooks-def.h (lhd_types_compatible_p,
2290         lhd_expand_decl, lhd_gimplify_expr): Declare.
2291         (LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
2292         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
2293         LANG_HOOKS_FUNCTION_LEAVE_NESTED,
2294         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
2295         LANG_HOOKS_GIMPLIFY_EXPR,
2296         LANG_HOOKS_GIMPLE_BEFORE_INLINING,
2297         LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
2298         LANG_HOOKS_GIMPLIFY_EXPR,
2299         LANG_HOOKS_GIMPLE_BEFORE_INLINING): Define.
2300         (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_START,
2301         LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_RTL_EXPAND_END,
2302         LANG_HOOKS_FUNCTION_LEAVE_NESTED,
2303         LANG_HOOKS_RTL_EXPAND_INITIALIZER,
2304         LANG_HOOKS_DECL_UNINIT,
2305         LANG_HOOKS_RTL_EXPAND_INITIALIZER): Remove.
2306         * langhooks.c: Include tree-simple.h.
2307         (lhd_expand_decl): New.
2308         (lhd_types_compatible_p): New.
2309         (lhd_decl_uninit): Remove.
2310         (lhd_gimplify_expr): New.
2311         * langhooks.h (struct lang_hooks_for_rtl_expansion):
2312         Remove.
2313         (struct lang_hooks_for_functions): Add field
2314         missing_noreturn_ok_p.
2315         (struct lang_hooks): Add field expand_decl,
2316         types_compatible_p, gimplify_expr and
2317         gimple_before_inlining.
2318         Remove fields decl_uninit and rtl_expand
2319         * opts.c (decode_options): Set flag_tree_ccp,
2320         flag_tree_dce, flag_tree_dom, flag_tree_dse,
2321         flag_tree_pre, flag_tree_ter,
2322         flag_tree_live_range_split, flag_tree_sra,
2323         flag_tree_copyrename and flag_tree_ch at -O1 and higher.
2324         (common_handle_option): Handle OPT_fdump_, OPT_fmudflap,
2325         OPT_fmudflapth, OPT_fmudflapir,
2326         OPT_ftree_based_profiling, OPT_ftree_ccp, OPT_ftree_dce,
2327         OPT_ftree_combine_temps, OPT_ftree_ter, OPT_ftree_lrs,
2328         OPT_ftree_dominator_opts, OPT_ftree_copyrename,
2329         OPT_ftree_ch, OPT_ftree_dse, OPT_ftree_sra,
2330         OPT_ftree_points_to_ and OPT_ftree_pre.
2331         * output.h (regno_uninitialized, find_basic_blocks,
2332         cleanup_cfg, delete_unreachable_blocks,
2333         check_function_return_warnings): Remove.
2334         * params.def (PARAM_MAX_INLINE_INSNS_RECURSIVE,
2335         PARAM_MAX_INLINE_INSNS_RECURSIVE_AUTO,
2336         PARAM_MAX_INLINE_RECURSIVE_DEPTH,
2337         PARAM_MAX_INLINE_RECURSIVE_DEPTH_AUTO,
2338         PARAM_GLOBAL_VAR_THRESHOLD, PARAM_MAX_ALIASED_VOPS):
2339         * params.h (GLOBAL_VAR_THRESHOLD, MAX_ALIASED_VOPS):
2340         Define.
2341         * passes.c (rest_of_decl_compilation):
2342         (rest_of_handle_sibling_calls): Remove.
2343         (rest_of_handle_inlining): Remove.
2344         (rest_of_handle_gcse): Do not run
2345         purge_builtin_constant_p.
2346         (rest_of_compilation): Update.
2347         Do not call copy_loop_headers.
2348         Do rtl-based profiling only when
2349         !flag_tree_based_profiling.  Register rtl-based profiling
2350         hooks.
2351         * predict.c:  Include tree-flow.h, ggc.h, tree-dump.h
2352         (predicted_by_p): Rename to ...
2353         (rtl_predicted_by_p): .. this one; make global
2354         (tree_predicted_by_p): New.
2355         (dump_prediction): Add FILE argument.
2356         (predict_edge): Rename to ...
2357         (rtl_predict_edge): .. this one.
2358         (tree_predict_edge): New.
2359         (combine_predictions_for_insn): Update calls of predict_edge.
2360         (predict_loops): Break out from ...
2361         (estimate_probability): ... here; update comments; move updating
2362         of unknown probabilities from ...
2363         (estimate_bb_frequencies): ... here.
2364         (combine_predictions_for_bb): New.
2365         (tree_predict_by_opcode): New.
2366         (tree_estimate_probability): New.
2367         * predict.def (PRED_TREE_POINTER, PRED_TREE_OPCODE_POSITIVE,
2368         PRED_TREE_OPCODE_NONEQUAL, PRED_TREE_FPOPCODE): New predictors.
2369         * predict.h: Add include guard.
2370         (predict_edge, predict_edge_def): Move prototypes to basic_block.h
2371         * pretty-print.c (pp_write_text_to_stream): Make extern.
2372         * pretty-print.h (pp_write_text_to_stream): Declare.
2373         * print-rtl.c (print_rtx): Don't print the integrated flag.
2374         Print the return_val flag.
2375         * print-tree.c: Use TREE_FILENAME and TREE_LINENO instead
2376         of DECL_SOURCE_FILE and DECL_SOURCE_LINE respectively.
2377         Remove support for EXPR_WITH_FILE_LOCATION nodes.
2378         (print_node): Print TREE_INVARIANT and TREE_VISITED.
2379         * profile.c: Include cfghooks.h, tree-flow.h.
2380         (profile_hooks): New.
2381         (profile_dump_file): New.
2382         (instrument_edges): Use hooks instead of RTL-specific code.
2383         (instrument_values): Ditto.
2384         (get_exec_counts): Ditto.
2385         (compute_branch_probabilities): Ditto.
2386         (compute_value_histograms): Ditto.
2387         (branch_prob): Ditto.
2388         (find_spanning_tree): Ditto.
2389         (end_branch_prob): Ditto.
2390         (gen_edge_profiler): Move to rtl-profile.c (rtl_gen_edge_profiler).
2391         (gen_interval_profiler): Ditto (rtl_gen_interval_profiler).
2392         (gen_pow2_profiler): Ditto (rtl_gen_pow2_profiler).
2393         (gen_one_value_profiler): Ditto (rtl_gen_one_value_profiler).
2394         (tree_register_profile_hooks): New.
2395         (rtl_register_profile_hooks): New.
2396         * ra-rewrite.c (rewrite_program): Clear variable info.
2397         * recog.c (immediate_operand): Do not handle CONSTANT_P_RTX.
2398         * regs.h: Add include guards.
2399         * reload.c (decompose): Clear val using memset.
2400         * rtl.def (CONSTANT_P_RTX): Remove.
2401         * rtl.h (CONSTANT_P): Do not handle CONSTANT_P_RTX.
2402         (copy_loop_headers): Remove.
2403         (struct rtx_def): Replace the integrated flag with the
2404         return_val flag.
2405         (maybe_set_first_label_num): Declare.
2406         (init_branch_prob): Move declaration to value-prof.h.
2407         (end_branch_prob): Ditto.
2408         (branch_prob): Ditto.
2409         (never_reached_warning): Don't declare it.
2410         * rtlanal.c (get_related_value): Initialize get_jump_table_offset
2411         (hoist_insn_to_edge): Update to match field insns in
2412         struct edge_def.
2413         * sbitmap.c (sbitmap_realloc): New.
2414         * sbitmap.h (sbitmap_realloc): Declare.
2415         * sibcall.c: Remove file.
2416         * simplify-rtx.c (simplify_rtx): Do not handle
2417         CONSTANT_P_RTX.
2418         * stmt.c (parse_output_constraint): Don't warn for read-write
2419         memory operand.
2420         (tail_recursion_args): Use types_compatible_p langhook.
2421         (force_label_rtx): Don't look at inline_function_decl.
2422         (label_rtx): Set LABEL_PRESERVE_P appropriately.
2423         (expand_label): Handle DECL_NONLOCAL and FORCED_LABEL.
2424         (declare_nonlocal_label): Remove.
2425         (expand_goto): Don't handle nonlocal gotos.
2426         (expand_nl_handler_label): Remove.
2427         (expand_nl_goto_receivers): Remove.
2428         (expand_end_bindings): Don't expand_nl_goto_receivers.  Use
2429         update_nonlocal_goto_save_area.
2430         (expand_expr_stmt_value): Check TREE_NO_WARNING.
2431         (warn_if_unused_value): Likewise.
2432         (expand_start_loop, expand_loop_continue_here,
2433         expand_end_loop): Don't create loop notes.
2434         (all_cases_count, BITARRAY_TEST, BITARRAY_SET,
2435         mark_seen_cases, check_for_full_enumeration_handling): Remove.
2436         (expand_end_case_type): Don't do warn_switch handling.
2437         (pushcase, pushcase_range) Update add_case_node calls.
2438         (add_case_node): Add dont_expand_label argument.
2439         (same_case_target_p): Don't search rtl.
2440         (expand_start_bindings_and_block, expand_end_bindings):
2441         Don't emit block notes when dont_emit_block_notes.
2442         (using_eh_for_cleanups_p): Export.
2443         (expand_return): Allow any typed rhs.
2444         (expand_stack_alloc): New.
2445         (expand_stack_save, expand_stack_restore): New.
2446         (containing_blocks_have_cleanups_or_stack_level): New
2447         function.
2448         (asm_op_is_mem_input): New fn.
2449         (expand_asm_expr): New fn.
2450         (warn_if_unused_value): Check operand 0 of SAVE_EXPR
2451         nodes.
2452         * stor-layout.c (layout_type): Just return if type is
2453         error_mark_node.
2454         (update_alignment_for_field): Export.
2455         (variable_size): We don't care about global_bindings_p if
2456         the frontend doesn't want a list of the expressions.
2457         * system.h: Poison INTEGRATE_THRESHOLD.
2458         * timevar.def (TV_TREE_GIMPLIFY, TV_TREE_EH, TV_TREE_CFG,
2459         TV_TREE_CLEANUP_CFG, TV_TREE_PTA, TV_TREE_MAY_ALIAS,
2460         TV_TREE_INSERT_PHI_NODES, TV_TREE_SSA_REWRITE_BLOCKS,
2461         TV_TREE_SSA_OTHER, TV_TREE_OPS,
2462         TV_TREE_SSA_DOMINATOR_OPTS, TV_TREE_SRA, TV_TREE_CCP,
2463         TV_TREE_SPLIT_EDGES, TV_TREE_PRE, TV_TREE_PHIOPT,
2464         TV_TREE_FORWPROP, TV_TREE_DCE, TV_TREE_CD_DCE,
2465         TV_TREE_DSE, TV_TREE_LOOP, TV_TREE_CH,
2466         TV_TREE_SSA_TO_NORMAL, TV_TREE_SSA_TO_NORMAL,
2467         TV_TREE_NRV, TV_TREE_COPY_RENAME, TV_TREE_SSA_VERIFY,
2468         TV_TREE_STMT_VERIFY, TV_DOM_FRONTIERS,
2469         TV_CONTROL_DEPENDENCES): Define.
2470         * toplev.c: Include tree-alias-common.h
2471         (current_file_decl, flag_mudflap, flag_mudflap_threads,
2472         flag_mudflap_ignore_reads, flag_tree_based_profiling,
2473         flag_tree_gvn, flag_tree_points_to, flag_tree_ccp,
2474         flag_tree_dce, flag_tree_ch, flag_tree_sra,
2475         flag_tree_combine_temps, flag_tree_ter,
2476         flag_tree_live_range_split, flag_tree_dom,
2477         flag_tree_copyrename, flag_tree_dse): Declare.
2478         (f_options): Add tree-based-profiling, tree-gvn,
2479         tree-pre, tree-ccp, tree-dce,
2480         tree-dominator-opts, tree-copyrename, tree-dse,
2481         tree-combine-temps, tree-ter, tree-lrs and tree-ch.
2482         (wrapup_global_declarations): Don't output nested inlined functions.
2483         (general_init): Call init_tree_optimization_passes.
2484         (process_options): Sorry for -ftree-based-profiling plus
2485         -ftest-coverage or -fprofile-values.
2486         * toplev.h (init_tree_optimization_passes,
2487         flag_tree_based_profiling): Declare.
2488         * tracer.c (tail_duplicate): Use cfghooks for bb duplication.
2489         * tree-alias-ander.c: New file.
2490         * tree-alias-ander.h: New file.
2491         * tree-alias-common.c: New file.
2492         * tree-alias-common.h: New file.
2493         * tree-alias-type.c: New file.
2494         * tree-alias-type.h: New file.
2495         * tree-browser.c: New file.
2496         * tree-browser.def: New file.
2497         * tree-cfg.c: New file.
2498         * tree-complex.c: New file.
2499         * tree-dfa.c: New file.
2500         * tree-dump.c (dump_enable_all): New.
2501         (dequeue_and_dump): Do not handle EXPR_WITH_FILE_LOCATION.
2502         (dump_node): Remove const from field suffix and swtch.
2503         (dump_files): Add null entry, .generic, .nested, .vcg,
2504         .xml and a match-all entry.
2505         (extra_dump_files, extra_dump_files_in_use,
2506         extra_dump_files_alloced): Declare
2507         (dump_option_value_info): Add raw, details, stats,
2508         blocks, vops, lineno, uid and all.
2509         (dump_register): New.
2510         (get_dump_file_info): New.
2511         (dump_begin): Call it.
2512         Do nothing for TDI_none.
2513         (dump_begin): Include phase number in dump filename.
2514         (dump_enable_all): New.
2515         (dump_switch_p_1): Split out from dump_switch_p.
2516         (dump_switch_p): Handle extra_dump_files.
2517         Start our scan at TDI_none + 1.
2518         If -fdump-tree-all was given, call dump_enable_all.
2519         * tree-dump.h: Include splay-tree.h.
2520         (dump_function, dump_function_to_file, dump_register):
2521         Declare.
2522         * tree-eh.c: New file.
2523         * tree-flow-inline.h: New file.
2524         * tree-flow.h: New file.
2525         * tree-inline.c: Re-write to handle inlining on GIMPLE.
2526         * tree-inline.h (walk_tree,
2527         walk_tree_without_duplicates): Move to tree.h.
2528         (estimate_num_insns): Declare.
2529         * tree-into-ssa.c: New file.
2530         * tree-iterator.c: New file.
2531         * tree-iterator.h: New file.
2532         * tree-mudflap.c: New file.
2533         * tree-mudflap.h: New file.
2534         * tree-nested.c: New file.
2535         * tree-nomudflap.c: New file.
2536         * tree-nrv.c: New file.
2537         * tree-optimize.c (dump_flags, vars_to_rename,
2538         in_gimple_form, all_passes, pass_gimple,
2539         pass_rebuild_bind, pass_all_optimizations, pass_del_cfg): Declare.
2540         (execute_gimple, execute_rebuild_bind,
2541         gate_all_optimizations, execute_del_cfg,
2542         register_one_dump_file, register_dump_files, dup_pass_1,
2543         init_tree_optimization_passes, execute_todo,
2544         execute_one_pass, execute_pass_list): New.
2545         (clear_decl_rtl): Remove.
2546         (tree_rest_of_compilation): Update to use tree
2547         optimizers.
2548         * tree-outof-ssa.c: New file.
2549         * tree-pass.h: New file.
2550         * tree-phinodes.c: New file.
2551         * tree-pretty-print.c: New file.
2552         * tree-profile.c: New file.
2553         * tree-simple.c: New file.
2554         * tree-simple.h: New file.
2555         * tree-sra.c: New file.
2556         * tree-ssa-alias.c: New file.
2557         * tree-ssa-ccp.c: New file.
2558         * tree-ssa-copy.c: New file.
2559         * tree-ssa-copyrename.c: New file.
2560         * tree-ssa-dce.c: New file.
2561         * tree-ssa-dom.c: New file.
2562         * tree-ssa-dse.c: New file.
2563         * tree-ssa-forwprop.c: New file.
2564         * tree-ssa-live.c: New file.
2565         * tree-ssa-live.h: New file.
2566         * tree-ssa-loop.c: New file.
2567         * tree-ssa-operands.c: New file.
2568         * tree-ssa-operands.h: New file.
2569         * tree-ssa-phiopt.c: New file.
2570         * tree-ssa-pre.c: New file.
2571         * tree-ssa.c: New file.
2572         * tree-ssanames.c: New file.
2573         * tree-tailcall.c: New file.
2574         * tree.c: Include tree-iterator.h, basic-block.h and
2575         tree-flow.h.
2576         (tree_node_kind): Add phi_nodes and ssa names.
2577         (tree_size): Handle PHI_NODE, EPHI_NODE, SSA_NAME,
2578         EUSE_NODE, EKILL_NODE, EEXIT_NODE and STATEMENT_LIST.
2579         (make_node_stat): Handle PHI_NODE and SSA_NAME.
2580         <'c'> Set TREE_INVARIANT.
2581         (copy_node_stat): Abort if trying to copy a
2582         STATEMENT_LIST.
2583         Clear TREE_VISITED.
2584         Clear annotation field.
2585         (build_constructor): Copy TREE_INVARIANT from vals.
2586         Don't clear TREE_CONSTANT.
2587         (expr_first, expr_last, expr_length): Remove.
2588         (staticp): Pass unknown component references to the language.
2589         (save_expr): Check TREE_INVARIANT instead of TREE_CONSTANT.
2590         (skip_simple_arithmetic): Likewise.
2591         (stabilize_reference_1): Likewise.
2592         (tree_node_structure): Handle PHI_NODE, EPHI_NODE,
2593         EUSE_NODE, EKILL_NODE, EEXIT_NODE, SSA_NAME and
2594         STATEMENT_LIST.
2595         (lhd_unsave_expr_now): Remove.
2596         (unsafe_for_reeval): Handle LABEL_EXPR and BIND_EXPR.
2597         (recompute_tree_invarant_for_addr_expr): New.
2598         (build1_stat): Clear EXPR_LOCUS and TREE_BLOCK.
2599         Call recompute_tree_invarant_for_addr_expr.
2600         Set TREE_INVARIANT accordingly.
2601         (build2_stat): Don't handle CALL_EXPR.
2602         (build3_stat): Don't call build2_stat for CALL_EXPRs.
2603         (build_expr_wfl): Remove.
2604         (annotate_with_file_line, annotate_with_locus): New.
2605         (simple_cst_equal): Call simple_cst_list_equal to compare
2606         CONSTRUCTOR_ELTS pointers.
2607         (iterative_hash_expr): Don't hash types associated
2608         with conversions.  Instead hash on the signedness of the
2609         toplevel object and the operand of the conversion.
2610         (dump_tree_statistics): Call ssanames_print_statistics
2611         and phinodes_print_statistics.
2612         (ephi_node_elt_check_failed, phi_node_elt_check_failed,
2613         add_var_to_bind_expr, build_empty_stmt, is_essa_node,
2614         needs_to_live_in_memory): New.
2615         (initializer_zerop): Handle VECTOR_CST.  Don't check
2616         AGGREGATE_TYPE_P for CONSTRUCTOR.
2617         * tree.def (FILTER_EXPR, CASE_LABEL_EXPR, RESX_EXPR,
2618         SSA_NAME, EUSE_NODE, EKILL_NODE, EPHI_NODE, EEXIT_NODE,
2619         PHI_NODE, CATCH_EXPR, EH_FILTER_EXPR, STATEMENT_LIST): Define.
2620         (GOTO_SUBROUTINE_EXPR): Change type to 's'.
2621         (CALL_EXPR): Add another operand.
2622         (EXPR_WITH_FILE_LOCATION): Remove.
2623         (SWITCH_EXPR): Add another operand.
2624         * tree.h: Update various comments.
2625         (union tree_ann_d): Forward declare.
2626         (struct tree_common): Add fields nowarning_flag,
2627         invariant_flag and visited.
2628         (EREF_NODE_CHECK, EPHI_NODE_ELT_CHECK,
2629         PHI_NODE_ELT_CHECK, EREF_NODE_CHECK, PHI_NODE_ELT_CHECK,
2630         EPHI_NODE_ELT_CHECK, TREE_BLOCK,
2631         STRIP_USELESS_TYPE_CONVERSION, CALL_EXPR_TAILCALL,
2632         TREE_NO_WARNING, FORCED_LABEL, TREE_INVARIANT,
2633         IS_EMPTY_STMT, EXPR_LOCUS, SET_EXPR_LOCUS, EXPR_FILENAME,
2634         EXPR_LINENO, EXPR_LOCATION, EXPR_HAS_LOCATION,
2635         EXIT_EXPR_COND, SWITCH_COND, SWITCH_BODY, SWITCH_LABELS,
2636         CASE_LOW, CASE_HIGH, CASE_LABEL, BIND_EXPR_VARS,
2637         BIND_EXPR_BODY, BIND_EXPR_BLOCK, GOTO_DESTINATION,
2638         ASM_STRING, ASM_OUTPUTS, ASM_INPUTS, ASM_CLOBBERS,
2639         ASM_INPUT_P, ASM_VOLATILE_P, COND_EXPR_COND,
2640         COND_EXPR_THEN, COND_EXPR_ELSE, LABEL_EXPR_LABEL,
2641         CATCH_TYPES, CATCH_BODY, EH_FILTER_TYPES,
2642         EH_FILTER_FAILURE, EH_FILTER_MUST_NOT_THROW,
2643         SSA_NAME_VAR, SSA_NAME_DEF_STMT, SSA_NAME_VERSION,
2644         SSA_NAME_OCCURS_IN_ABNORMAL_PHI, SSA_NAME_IN_FREE_LIST,
2645         PHI_RESULT, PHI_REWRITTEN, PHI_NUM_ARGS,
2646         PHI_ARG_CAPACITY, PHI_ARG_ELT, PHI_ARG_EDGE, PHI_ARG_DEF,
2647         EREF_PROCESSED, EREF_ID, EREF_NAME, EREF_STMT,
2648         EREF_RELOAD, EREF_SAVE, EREF_CLASS, EREF_INJURED,
2649         EREF_TEMP, EUSE_DEF, EUSE_PHIOP, EUSE_INSERTED,
2650         EUSE_LVAL, EPHI_NUM_ARGS, EPHI_ARG_CAPACITY,
2651         EPHI_ARG_ELT, EPHI_ARG_EDGE, EPHI_ARG_PRED, EPHI_ARG_DEF,
2652         EPHI_ARG_INJURED, EPHI_ARG_DELAYED_RENAME,
2653         EPHI_ARG_HAS_REAL_USE, EPHI_ARG_STOPS,
2654         EPHI_ARG_PROCESSED2, EPHI_IDENTITY, EPHI_IDENT_INJURED,
2655         EPHI_REP_OCCUR_KNOWN, EPHI_IDENTICAL_TO, EPHI_DOWNSAFE,
2656         EPHI_CANT_BE_AVAIL, EPHI_DEAD, EPHI_USES, EPHI_STOPS,
2657         TREE_VISITED, SSA_VAR_P, DECL_NUM_STMTS,
2658         DECL_HARD_REGISTER, DECL_PTA_ALIASVAR, LABEL_DECL_UID,
2659         DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL,
2660         STATEMENT_LIST_HEAD, STATEMENT_LIST_TAIL, TDF_RAW,
2661         TDF_DETAILS, TDF_STATS, TDF_BLOCKS, TDF_VOPS, TDF_LINENO,
2662         TDF_UID,): Define.
2663         (TREE_NO_UNUSED_WARNING, EXPR_WFL_EMIT_LINE_NOTE,
2664         EXPR_WFL_NODE, EXPR_WFL_FILENAME_NODE, EXPR_WFL_FILENAME,
2665         EXPR_WFL_LINECOL, EXPR_WFL_LINENO, EXPR_WFL_COLNO,
2666         EXPR_WFL_SET_LINECOL): Remove.
2667         (phi_node_elt_check_failed, ephi_node_elt_check_failed,
2668         make_phi_node, init_phinodes, fini_phinodes,
2669         release_phi_node, phinodes_print_statistics,
2670         init_ssanames, fini_ssanames, make_ssa_name,
2671         release_ssa_name, ssanames_print_statistics,
2672         annotate_with_file_line, build_empty_stmt,
2673         annotate_with_locus, expr_only, categorize_ctor_elements,
2674         count_type_elements, add_var_to_bind_expr, is_essa_node,
2675         expand_stack_alloc, expand_stack_save,
2676         expand_stack_restore, add_case_node, operand_equal_p,
2677         nondestructive_fold_unary_to_constant,
2678         nondestructive_fold_binary_to_constant,
2679         fold_read_from_constant_string, int_const_binop,
2680         strip_float_extensions, simplify_builtin, c_strlen,
2681         recompute_tree_invarant_for_addr_expr,
2682         needs_to_live_in_memory, make_vector,
2683         setjmp_vars_warning, update_alignment_for_field,
2684         expand_asm_expr, asm_op_is_mem_input,
2685         containing_blocks_have_cleanups_or_stack_level,
2686         create_artificial_label, gimplify_function_tree,
2687         get_name, unshare_expr, walk_tree,
2688         walk_tree_without_duplicates, in_gimple_form): Declare.
2689         (struct tree_exp): Add fields locus and block.
2690         (struct tree_ssa_name, struct edge_def, struct
2691         tree_phi_node, struct tree_eref_common, struct
2692         tree_euse_node, struct ephi_arg_d, struct tree_ephi_node,
2693         union alias_var_def, struct tree_statement_list_node,
2694         struct tree_statement_list, enum operand_equal_flag): Declare.
2695         (enum tree_node_structure_enum): Add TS_SSA_NAME,
2696         TS_PHI_NODE, TS_EPHI_NODE, TS_EUSE_NODE, TS_EREF_NODE,
2697         TS_STATEMENT_LIST.
2698         (union tree_node): Add fields ssa_name, phi, eref, ephi,
2699         euse and stmt_list.
2700         (function_cannot_inline_p, uninitialized_vars_warning,
2701         save_for_inline, output_inline_function, all_cases_count,
2702         check_for_full_enumeration_handling,
2703         declare_nonlocal_label): Remove.
2704         (enum tree_dump_index): Add TDI_none, TDI_tu,
2705         TDI_generic, TDI_nested, TDI_vcg, TDI_xml.
2706         * unroll.c (unroll_loop): Don't clear map->inline_target.
2707         * unwind-sjlj.c (uw_install_context): Make a proper static inline
2708         function.
2709         * value-prof.c (value_prof_hooks): New.
2710         (find_values_to_profile): Rename to rtl_find_values_to_profile.
2711         Move rtl-specific bits in from branch_prob.
2712         (value_profile_transformations): Rename to
2713         rtl_value_profile_transformations.
2714         (struct value_prof_hooks): New.
2715         (rtl_value_prof_hooks): New.
2716         (rtl_register_value_prof_hooks): New.
2717         (tree_find_values_to_profile): New stub.
2718         (tree_value_profile_transformations): New stub.
2719         (tree_value_prof_hooks): New stub.
2720         (tree_register_value_prof_hooks): New stub.
2721         (find_values_to_profile): New.
2722         (value_profile_transformations): New.
2723         * value-prof.h: Add multiple inclusion guard.
2724         (struct histogram_value): Change rtx fields to void *.
2725         (rtl_register_value_prof_hooks): New declaration.
2726         (tree_register_value_prof_hooks): New declaration.
2727         (find_values_to_profile): New declaration.
2728         (free_profiled_values): New declaration.
2729         (value_profile_transformations): New declaration.
2730         (struct profile_hooks): New declaration.
2731         (init_branch_prob): Declaration moved from rtl.h.
2732         (branch_prob): Declaration moved from rtl.h.
2733         (end_branch_prob): Declaration mooved from rtl.h.
2734         (tree_register_profile_hooks): New declaration.
2735         (rtl_register_profile_hooks): New declaration.
2736         (tree_profile_hooks): New declaration.
2737         (rtl_profile_hooks): New declaration.
2738         * varasm.c: Include tree-mudflap.h.
2739         (TRAMPOLINE_ALIGNMENT): Remove.
2740         (make_decl_rtl): Call mudflap_enqueue_decl.
2741         (assemble_static_space):
2742         (assemble_trampoline_template): Set and return
2743         TRAMPOLINE_ALIGNMENT.
2744         * varray.c (element): Add GENERIC_PTR_NOGC entry.
2745         Add entry for 'tree *'.
2746         Add entry for struct edge_def *.
2747         (varray_copy): New.
2748         * varray.h (enum varray_data_enum): Add
2749         VARRAY_DATA_GENERIC_NOGC, VARRAY_DATA_EDGE and
2750         VARRAY_DATA_TREE_PTR.
2751         (union varray_data_tag): Corresponding changes.
2752         (VARRAY_GENERIC_PTR_NOGC_INIT, VARRAY_EDGE_INIT,
2753         VARRAY_TREE_PTR_INIT, VARRAY_GENERIC_PTR_NOGC,
2754         VARRAY_EDGE, VARRAY_TREE_PTR,
2755         VARRAY_PUSH_GENERIC_PTR_NOGC, VARRAY_PUSH_EDGE,
2756         VARRAY_PUSH_TREE_PTR, VARRAY_TOP_GENERIC_PTR_NOGC,
2757         VARRAY_TOP_EDGE, VARRAY_TOP_TREE_PTR): Define.
2758
2759         * config/*/*: Various updates for changed macros, tree
2760         codes, etc.  Check ChangeLog.tree-ssa.
2761
2762         * doc/cfg.texi: New file.
2763         * doc/tree-ssa.texi: New file.
2764         * doc/c-tree.texi: Document new codes.
2765         * doc/gccint.texi: Include new files.
2766         * doc/install.texi: Document new features.
2767         * doc/invoke.texi: Document new switches.
2768         * doc/passes.texi: Document new passes.
2769         * doc/rtl.texi: Update changed RTL codes.
2770         * doc/sourcebuild.texi: Update build instructions.
2771         * doc/standards.texi: Document Fortran changes.
2772         * doc/tm.texi: Update.
2773
2774 2004-05-12  Paolo Bonzini  <bonzini@gnu.org>
2775
2776         Replace several arrays with a struct of arrays.
2777         * combine.c (struct reg_stat): New.
2778         (init_reg_last_arrays): Renamed to...
2779         (init_reg_last): ...this.  Callers adjusted.
2780         (reg_stat): New.
2781         (combine_instructions): Allocate it and use it.
2782         (reg_last_death, reg_last_set, reg_last_set_value,
2783         reg_last_set_label, reg_last_set_table_tick,
2784         reg_last_set_invalid, reg_nonzero_bits, reg_sign_bit_copies,
2785         reg_last_set_mode, reg_last_set_nonzero_bits,
2786         reg_last_set_sign_bit_copies): Replace throughout
2787         with items of reg_stat.
2788
2789 2004-05-11  Kaz Kojima  <kkojima@gcc.gnu.org>
2790
2791         PR optimization/15100
2792         * combine.c (distribute_notes): Don't create a dangling
2793         REG_LIBCALL/REG_RETVAL note.
2794
2795 2004-05-11  Aldy Hernandez  <aldyh@redhat.com>
2796
2797         * config/rs6000/spe.md (spe_evneg): Rename to negv2si2.
2798
2799         * config/rs6000/rs6000.c (bdesc_1arg): Change spe_evneg to
2800         negv2si2.
2801
2802 2004-05-11  Aldy Hernandez  <aldyh@redhat.com>
2803
2804         * doc/md.texi (Standard Names): Fix typo in vec_init description.
2805
2806 2004-05-11  Geoffrey Keating  <geoffk@apple.com>
2807
2808         * doc/gty.texi (GTY Options): Clarify example.
2809
2810 2004-05-11  Fariborz Jahanian  <fjahanian@apple.com>
2811
2812         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute):
2813         Add const qualifier to altivec vector type if one is needed.
2814
2815 2004-05-11  Paul Brook  <paul@codesourcery.com>
2816
2817         * flags.h (flag_short_enums): Update comment.
2818         * opts.c (decode_options): Set flag_short_enums to 2.
2819         * toplev.c (flag_short_enums): Update comment.
2820         (process_options): Call default_short_enums target hook.
2821
2822 2004-05-11  Andrew Pinski  <pinskia@gcc.gnu.org>
2823
2824         PR target/14063
2825         * config/rs6000/altivec.md (altivec_dssall):
2826         Change to unspec_volatile.
2827         (altivec_dss): Likewise.
2828
2829 2004-05-10  Aldy Hernandez  <aldyh@redhat.com>
2830
2831         * config/rs6000/altivec.md ("one_cmplv16qi2"): Change vnot to
2832         vnor.
2833         ("one_cmplv8hi2"): Same.
2834         ("one_cmplv4si2"): Same.
2835
2836 2004-05-10  Kaz Kojima  <kkojima@gcc.gnu.org>
2837
2838         PR target/15130
2839         * config/sh/sh-protos.h (sh_expand_epilogue): Change prototype.
2840         * config/sh/sh.c (output_stack_adjust): Take the sibcall epilogue
2841         into account.  Compute the correct number of general registers
2842         for the return value.  Generate a special push/pop sequence when
2843         failing to get a temporary register for non SHmedia epilogue.
2844         (sh_expand_epilogue): Add an argument to show whether it's for
2845         sibcall or not.  Set the 3rd argument of output_stack_adjust to
2846         -1 if needed.
2847         (sh_need_epilogue): Call sh_expand_epilogue with 0.
2848         * config/sh/sh.md (sibcall_epilogue): Call sh_expand_epilogue
2849         with 1.
2850         (epilogue): Call sh_expand_epilogue with 0.
2851
2852 2004-05-10  Andrew Pinski  <pinskia@physics.uc.edu>
2853
2854         * gcse.c (eliminate_partially_redundant_loads): Instead of returning early,
2855         goto a cleanup label.  After the cleanup, free the allocated memory.
2856
2857 2004-05-10  Ziemowit Laski  <zlaski@apple.com>
2858
2859         * config/rs6000/altivec.h (vec_sld): Add overloads for
2860         argument/return types of 'vector bool int', 'vector bool short'
2861         and 'vector bool char'.
2862
2863 2004-05-10  Zack Weinberg  <zack@codesourcery.com>
2864
2865         * c-decl.c (store_parm_decls_newstyle): Correct test for a
2866         nested function.
2867
2868 2004-05-10  Richard Sandiford  <rsandifo@redhat.com>
2869
2870         * read-rtl.c (read_rtx): Allow 's' and 'T' strings to be omitted,
2871         treating missing ones as "".
2872         * config/mips/mips.md: Remove constraints from match_operands and
2873         match_scratches if they appear in define_expands (except reload*),
2874         define_peephole2s, define_splits or attribute specifications.
2875         * config/mips/7000.md, config/mips/sb1.md: Remove match_operand
2876         constraint strings.
2877
2878 2004-05-10  Alan Modra  <amodra@bigpond.net.au>
2879
2880         * config/rs6000/rs6000.c (function_arg_boundary): Always align
2881         AltiVec vectors.
2882         (function_arg_advance): Pass TARGET_32BIT -mabi=no-altivec AltiVec
2883         vectors by refererence.  Align the same for TARGET_64BIT to a 16
2884         byte boundary.  Remove useless code.  Add function comment.
2885         (function_arg): Similarly.  Move gpr rs6000_mixed_function_arg
2886         call to where it belongs.
2887         (function_arg_partial_nregs): Return true for all TARGET_32BIT
2888         -mabi=no-altivec AltiVec vectors.  Fix debug output.
2889         (rs6000_va_arg): Adjust for AltiVec change.
2890
2891 2004-05-10  Paul Brook  <paul@codesourcery.com>
2892
2893         * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
2894         * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
2895         (TARGET_DOUBLEWORD_ALIGN): Use it.
2896         (WCHAR_TYPE): Define.
2897         (WCHAR_SIZE_TYPE): Define.
2898         (SIZE_TYPE): Define.
2899
2900 2004-05-10  Alan Modra  <amodra@bigpond.net.au>
2901
2902         * config/rs6000/rs6000.c (function_arg_boundary): Align for ABI_V4
2903         when size is 8 bytes.
2904         (function_arg_advance): Account for stack space used by AltiVec
2905         args when -mabi=altivec.  Simplify alignment calculations.  For
2906         ABI_V4, pass AltiVec vectors by reference when -mabi=no-altivec.
2907         (function_arg): Similarly.
2908         (function_arg_pass_by_reference): True for ABI_V4 AltiVec when
2909         not AltiVec ABI.
2910         (rs6000_va_arg): Correct fp arg test.  Adjust for AltiVec change.
2911         Correct alignment, and align before testing reg count.  Remove
2912         TREE_THIS_VOLATILE from reg.  Don't emit unused labels.
2913         (rs6000_complex_function_value): Check TARGET_HARD_FLOAT and
2914         TARGET_FPRS here..
2915         (rs6000_function_value): .. not here before call.
2916
2917 2004-05-09  Aldy Hernandez  <aldyh@redhat.com>
2918
2919         * config/rs6000/spe.md ("tstsflt_gpr"): Fix typo in unspec.
2920
2921 2004-05-09  Zack Weinberg  <zack@codesourcery.com>
2922
2923         PR 15007
2924         * c-decl.c (current_file_decl): Rename to all_translation_units,
2925         adjust comment.
2926         (pop_scope): If popping file_scope, construct a
2927         TRANSLATION_UNIT_DECL and make it the context of all the
2928         symbols in the scope.
2929         (push_file_scope): Don't construct a TRANSLATION_UNIT_DECL here.
2930         (pushdecl): Clarify comment.  Do not set DECL_CONTEXT of
2931         anything to current_file_decl.
2932         (pushdecl_top_level): Likewise.
2933         (store_parm_decls_newstyle): Adjust check for nested function.
2934         (c_write_global_declarations): Update for renamed variable.
2935
2936 2004-05-09  Aldy Hernandez  <aldyh@redhat.com>
2937
2938         * config/rs6000/rs6000-protos.h
2939         (rs6000_conditional_register_usage): Protoize.
2940
2941         * config/rs6000/rs6000.c (rs6000_conditional_register_usage): New.
2942
2943         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Call
2944         function.
2945
2946 2004-05-08  Roger Sayle  <roger@eyesopen.com>
2947
2948         * fold-const.c (fold_div_compare): New function to optimize X/C1 op C2
2949         where op is a comparison operator and C1 and C2 are integer constants
2950         into a range check.
2951         (fold): Call fold_div_compare.
2952
2953 2004-05-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
2954
2955         * doc/install.texi (sparc-sun-solaris2*): Document bootstrap
2956         problems with earlier versions of the GNU compiler.
2957
2958 2004-05-07  Aldy Hernandez  <aldyh@redhat.com>
2959
2960         * config/rs6000/rs6000-protos.h (rs6000_hard_regno_mode_ok_p):
2961         Declare.
2962
2963         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok_p): New.
2964         (rs6000_hard_regno_mode_ok): New.
2965         (rs6000_init_hard_regno_mode_ok): New.
2966         (rs6000_override_options): Call rs6000_init_hard_regno_mode_ok.
2967
2968         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Use precomputed
2969         result.
2970
2971 2004-05-07  Ziemowit Laski  <zlaski@apple.com>
2972
2973         * config/rs6000/altivec.h (vector, pixel, bool): Do not
2974         define as macros #ifdef __APPLE_ALTIVEC__.
2975
2976 2004-05-07  Fariborz Jahanian  <fjahanian@apple.com>
2977
2978         * config/rs6000/rs6000.c (rs6000_mixed_function_arg):
2979         Generate appropriate parallels for vector arguments
2980         passed to vararg functions. (function_arg): make the call
2981         to rs6000_mixed_function_arg for vector args as needed.
2982
2983 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
2984
2985         * config/mips/mips.c (mips_va_arg): Fix calculation of osize for
2986         EABI_FLOAT_VARARGS_P.
2987
2988 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
2989
2990         * config/mips/mips.h (ISA_HAS_BRANCHLIKELY): Remove TARGET_MIPS5500.
2991         * config/mips/mips.c (override_options): Disable branch likely
2992         instructions if TUNE_MIPS5500.
2993
2994 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
2995
2996         * config/mips/mips.c (override_options): Allow the hi and lo registers
2997         to store any integral mode, not just MODE_INTs.
2998
2999 2004-05-07  Paul Brook  <paul@codesourcery.com>
3000
3001         * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
3002         * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
3003         (TARGET_DOUBLEWORD_ALIGN): Use it.
3004         (WCHAR_TYPE): Define.
3005         (WCHAR_SIZE_TYPE): Define.
3006         (SIZE_TYPE): Define.
3007
3008 2004-05-07  Uros Bizjak  <uros@kss-loka.si>
3009
3010         * config/i386/i386.c (ix86_emit_fp_unordered_jump): Use
3011         testb $4, %ah insn instead of sahf insn if !TARGET_USE_SAHF.
3012
3013 2004-05-07  Andrew Pinski  <pinskia@physics.uc.edu>
3014
3015         * loop-doloop.c (doloop_valid_p): Make sure that body
3016         gets freed.
3017
3018 2004-05-07  Eric Botcazou  <ebotcazou@act-europe.fr>
3019
3020         * config/sparc/sparc-protos.h (sparc_skip_caller_unimp): New
3021         declaration.
3022         * config/sparc/sparc.c (SKIP_CALLERS_UNIMP_P): Delete.
3023         (sparc_skip_caller_unimp): New global variable.
3024         (sparc_function_epilogue): Set 'sparc_skip_caller_unimp'.
3025         Use it instead of SKIP_CALLERS_UNIMP_P.
3026         * config/sparc/sparc.md (call expander): Add sanity check.
3027         (call_address_struct_value_sp32): Re-sync with expander.
3028         (call_symbolic_struct_value_sp32): Likewise.
3029         (return peepholes): Use 'sparc_skip_caller_unimp' instead
3030         of custom predicate.
3031
3032 2004-05-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
3033
3034         PR c++/14962
3035         * c-pragma.c (handle_pragma_redefine_extname): Only change
3036         the assembler name of FUNCTION_DECLs and VAR_DECLs.
3037
3038 2004-05-07  Uros Bizjak  <uros@kss-loka.si>
3039
3040         * optabs.h (enum optab_index): Add new OTI_log1p.
3041         (log1p_optab): Define corresponding macro.
3042         * optabs.c (init_optabs): Initialize log1p_optab.
3043         * genopinit.c (optabs): Implement log1p_optab using log1p?f2
3044         patterns.
3045         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG1P{,F,L}
3046         using log1p_optab.
3047         (expand_builtin): Expand BUILT_IN_LOG1P{,F,L} using
3048         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
3049
3050         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FYL2XP1.
3051
3052         * config/i386/i386.c (ix86_emit_i387_log1p): New function.
3053         * config/i386/i386-protos.h (ix86_emit_i387_log1p):
3054         Prototype here.
3055         * config/i386/i386.md (UNSPEC_FYL2XP1): New unspec to represent
3056         x87's fyl2xp1 instruction.
3057         (*fyl2x_xf3): Rename insn definition to fyl2x_xf3.
3058         (fyl2xp1_xf3): New pattern to implement fyl2xp1 x87 instruction.
3059         (log1psf2, log1pdf2, log1pxf2): New expanders to implement log1pf,
3060         log1p  and log1pl built-ins as inline x87 intrinsics.
3061
3062 2004-05-07  Loren James Rittle  <ljrittle@acm.org>
3063
3064         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Proper redefinition.
3065         * config/arm/freebsd.h: Likewise.
3066         * config/ia64/freebsd.h: Likewise.
3067         * config/sparc/freebsd.h: Likewise.
3068
3069 2004-05-07  Hans-Peter Nilsson  <hp@axis.com>
3070
3071         PR optimization/15296
3072         * reorg.c (fill_simple_delay_slots): Use next_real_insn when
3073         getting last consecutive label at a branch.
3074         (relax_delay_slots): Similar, near top of loop.
3075
3076 2004-05-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3077
3078         PR target/15202
3079         * pa.md (movdi, movsi, movhi, movqi): Support move from shift amount
3080         register to general register.
3081
3082 2004-05-07  Alan Modra  <amodra@bigpond.net.au>
3083
3084         * config/rs6000/rs6000.h (STACK_BOUNDARY): Use 128 bit for either
3085         TARGET_ALTIVEC or TARGET_ALTIVEC_ABI.
3086         * config/rs6000/sysv4.h (ABI_STACK_BOUNDARY): Likewise.
3087         (STACK_BOUNDARY): Delete.
3088
3089 2004-05-06  Stuart Hastings  <stuart@apple.com>
3090
3091         * gcc/doc/invoke.texi: Restore -fgcse-after-reload doc from 1.421,
3092         mistakenly clobbered by 1.423.
3093
3094 2004-05-06  Richard Sandiford  <rsandifo@redhat.com>
3095
3096         * doc/invoke.texi: Document -mvr4130-align.
3097         * config/mips/mips.h (MASK_VR4130_ALIGN, TARGET_VR4130_ALIGN)
3098         (TUNE_MIPS4120, TUNE_MIPS4130): New macros.
3099         (TUNE_MACC_CHAINS): Include TUNE_MIPS4120 and TUNE_MIPS4130.
3100         (TARGET_SWITCHES): Add -mvr4130-align and -mno-vr4130-align.
3101         * config/mips/mips.md: Include sched-int.h.
3102         (USEFUL_INSN_P, SEQ_BEGIN, SEQ_END, FOR_EACH_SUBINSN): New macros.
3103         (mips_rtx_costs): Set integer multiplication costs for TUNE_MIPS4130.
3104         (override_options): Enable -mvr4130-align at -O3 and above.
3105         (mips_sim_insn): New variable.
3106         (mips_sim): New structure.
3107         (mips_sim_reset, mips_sim_init, mips_sim_next_cycle, mips_sim_wait_reg)
3108         (mips_sim_wait_regs_2, mips_sim_wait_regs_1, mips_sim_wait_regs)
3109         (mips_sim_wait_units, mips_sim_wait_insn, mips_sim_record_set)
3110         (mips_sim_issue_insn, mips_sim_issue_nop, mips_sim_finish_insn)
3111         (vr4130_avoid_branch_rt_conflict, vr4130_align_insns): New functions.
3112         (mips_reorg): Call vr4130_align_insns.
3113         (vr4130_last_insn): New variable.
3114         (vr4130_true_reg_dependence_p_1, vr4130_true_reg_dependence_p)
3115         (vr4130_swap_insns_p, vr4130_reorder): New functions.
3116         (mips_sched_reorder, mips_variable_issue): Hook in vr4130 code.
3117         (mips_issue_rate): Return 2 for PROCESSOR_R4130.
3118         (mips_use_dfa_pipeline_interface): Return true for the same.
3119         * config/mips/4130.md: New file.
3120         * config/mips/mips.md: Include it.  Add a peephole2 to convert
3121         "mult;mflo" into "mtlo;macc".
3122         (*macc, *umul_acc_di, *smul_acc_di): Use $1 rather than $0 as the
3123         target of maccs.
3124         (*msac_using_macc): New pattern.
3125
3126 2004-05-06  Richard Sandiford  <rsandifo@redhat.com>
3127
3128         * config/mips/5500.md (ir_vr55_store): Set latency to 0.
3129         (ir_vr55_hilo): Split into...
3130         (ir_vr55_mfhilo, ir_vr55_mthilo): ...these new reservations.
3131         (ir_vr55_imul_si, ir_vr55_imadd): Change latency to 5.
3132         (ir_vr55_imul_di): Change latency to 9.  Reserve vr55_mac for 4 cycles.
3133         Add various multiplication bypasses.
3134         * config/mips/mips.c (mips_rtx_costs): Adjust VR5500 costs for integer
3135         multiplication.
3136
3137 2004-05-06  Uros Bizjak  <uros@kss-loka.si>
3138
3139         * config/i386/i386.md (*fscalexf4): Correct insn "mode"
3140         attribute to "XF".
3141
3142 2004-05-05  Uros Bizjak  <uros@kss-loka.si>
3143
3144         * optabs.h (enum optab_index): Add new OTI_fmod and OTI_drem.
3145         (fmod_optab, drem_optab): Define corresponding macros.
3146         * optabs.c (init_optabs): Initialize fmod_optab and drem_optab.
3147         * genopinit.c (optabs): Implement fmod_optab and drem_optab
3148         using fmod?f3 and drem?f3 patterns.
3149         * builtins.c (expand_builtin_mathfn_2): Handle BUILT_IN_FMOD{,F,L}
3150         using fmod_optab and BUILT_IN_DREM{,F,L} using drem_optab.
3151         (expand_builtin): Expand BUILT_IN_FMOD{,F,L} and
3152         BUILT_IN_DREM{,F,L} using expand_builtin_mathfn_2 if
3153         flag_unsafe_math_optimizations is set.
3154
3155         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FPREM_F,
3156         UNSPEC_FPREM_U, UNSPEC_FPREM1_F and UNSPEC_FPREM1_U.
3157
3158         * config/i386/i386.c (ix86_emit_fp_unordered_jump): New function.
3159         * config/i386/i386-protos.h (ix86_emit_fp_unordered_jump):
3160         Prototype here.
3161         * config/i386/i386.md (UNSPEC_FPREM_F, UNSPEC_FPREM_U,
3162         UNSPEC_FPREM1_F, UNSPEC_FPREM1_U): New unspecs to represent x87's
3163         fprem and fprem1 instructions.
3164         (*x86_fnstsw_1): Change input parameter to (reg:CCFP 18).
3165         Rename insn definition to x86_fnstsw_1.
3166         (fpremxf4, fprem1xf4): New patterns to implement fprem and fprem1
3167         x87 instructions.
3168         (fmodsf3, fmoddf3, fmodxf3): New expanders to implement fmodf, fmod
3169         and fmodl built-ins as inline x87 intrinsics.
3170         (dremsf3, dremdf3, dremxf3): New expanders to implement dremf, drem
3171         and dreml built-ins as inline x87 intrinsics.
3172
3173 2004-05-05  Roger Sayle  <roger@eyesopen.com>
3174
3175         * reload1.c (inherit_piecemeal_p): Mark parameters potentially unused.
3176
3177 2004-05-05  Ian Lance Taylor  <ian@wasabisystems.com>
3178
3179         PR driver/9822
3180         * doc/invoke.texi (Spec Files): Remove documentation of %c.
3181
3182 2004-05-05  Chris Demetriou  <cgd@broadcom.com>
3183
3184         * config/mips/mips.md: Update the msub define_split for new mflo/mfhi
3185         representation.
3186
3187 2004-05-06  Paul Brook  <paul@codesourcery.com>
3188
3189         * config/arm/arm-protots.h (vfp_mem_operand): Rename ...
3190         (arm_coproc_mem_operand): ... To this.
3191         * config/arm/arm.c (arm_legitimate_address_p): Allow ldrd modes.
3192         (arm_legitimate_index_p): Ditto.
3193         (vfp_mem_operand): Rename ...
3194         (arm_coproc_mem_operand): ... To this.  Handle writeback modes.
3195         (vfp_secondary_reload_class): Use it.
3196         (output_move_double): Use doubleword load/store instructions.
3197         (arm_hard_regno_mode_ok): Only allow even reg pairs for ldrd.
3198         * config/arm/arm.h (TARGET_LDRD): Define.
3199         (EXTRA_CONSTRAINT_STR_ARM): Add 'Uy'.
3200         * config/gcc/arm/arm.md (arm_movdi): Allow all valid memory operands.
3201         New splitter for invalid doubleword loads.
3202         * config/arm/iwmmxt.md (iwmmxt_arm_movdi): Use Uy constraint.
3203         * config/arm/vfp.md (arm_movdi_vfp): Allow all valid memory operands.
3204         * doc/md.texi: Document Uy constraint.
3205
3206 2004-05-05  Jan Hubicka  <jh@suse.cz>
3207
3208         PR opt/14980
3209         * cgraphunit.c (cgraph_remove_unreachable_nodes): Deal properly with
3210         inline clones.
3211
3212 2004-05-05  H.J. Lu  <hongjiu.lu@intel.com>
3213
3214         PR target/15290
3215         * config/i386/i386.c (ix86_split_to_parts): Use real_to_target
3216         instead of REAL_VALUE_TO_TARGET_LONG_DOUBLE.
3217
3218 2004-05-05  Mike Stump  <mrs@apple.com>
3219
3220         * config/darwin-c.c (add_framework): Copy the directory name as it
3221         can be freed later.  Also, ensure we always allocate enough room
3222         for the cached framework information.
3223         (find_subframework_header): Keep track of the directory where the
3224         subframework header was found.
3225         (framework_construct_pathname): Speed up by not trying to re-add a
3226         framework.
3227         * cppfiles.c (search_path_exhausted): Arrange for the missing
3228         header callback to be able to set the directory where the header
3229         was found.
3230         (cpp_get_dir): Add.
3231         * cpplib.h (missing_header_cb): Add a parameter.
3232         (cpp_get_dir): Add.
3233
3234 2004-05-03  Mike Stump  <mrs@apple.com>
3235
3236         * doc/invoke.texi (Directory Options): Document -iquote.
3237         * doc/cpp.texi: Likewise.
3238         * doc/cppopts.texi: Likewise.
3239         * c-opts.c (c_common_missing_argument): Add -iquote processing.
3240         (c_common_handle_option): Likewise.
3241         * c.opt (iquote): Add.
3242         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add -iquote.
3243         * c-incpath.c (merge_include_chains): Update comment to use -iquote.
3244
3245         * c-opts.c (case OPT_I): Deprecate -I- support.
3246         * doc/invoke.texi: Likewise.
3247         * doc/cpp.texi: Likewise.
3248         * doc/cppopts.texi: Likewise.
3249
3250 2004-05-05  Steven Bosscher  <stevenb@suse.de>
3251
3252         * basic-block.h (free_basic_block_vars): Update prototype.
3253         * flow.c (free_basic_block_vars): Remove the keep_head_end_p
3254         argument.
3255         (life_analysis): Update call.
3256         * ifcvt.c (if_convert): Likewise.
3257         * sibcall.c (optimize_sibling_and_tail_recursive_call): Likewise.
3258         * passes.c (rest_of_handle_final): Likewise.
3259         (rest_of_compilation): Likewise.
3260         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
3261
3262         * emit-rtl.c (next_real_insn): Use INSN_P.
3263         (prev_real_insn): Likewise.
3264
3265 2004-05-05  Eric Christopher  <echristo@redhat.com>
3266
3267         * config/mips/mips.md: Update the madd define_split for new mflo/mfhi
3268         representation.
3269
3270 2004-05-05  Paolo Bonzini  <bonzini@gnu.org>
3271
3272         * config/rs6000/rs6000.c (build_opaque_vector_type):
3273         New function.
3274         (rs6000_init_builtins): Use it.
3275
3276 2004-05-04  Bernard Giroud  <bgiroud2@free.fr>
3277
3278         * gcc/gcc/vmsdbgout.c (vms_func_node, vms_func_ref): New.
3279         (func_table): Change type from char ** to vms_func_ref.
3280         (write_rtnbeg):  Update to reflect func_table change.  Use
3281         fde->funcdef_number instead of rtnnum in output.
3282         (write_rtnend, vmxdbgout_begin_function, vmsdbgout_init): Likewise.
3283
3284 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
3285             Richard Henderson  <rth@redhat.com>
3286
3287         PR target/14899
3288
3289         * c-common.c (vector_types_convertible_p): New function.
3290         * c-typeck.c (comptypes): Recurse on vector types.
3291         (convert_for_assignment): Use vector_types_convertible_p.
3292         (digest_init): Use vector_types_convertible_p to check
3293         validness of constant vector initializers; otherwise treat
3294         them as scalars.
3295         * tree.c (make_or_reuse_type): New.
3296         (build_common_tree_nodes): Use it.
3297         * cp/call.c (standard_conversion): Likewise.
3298         * cp/typeck.c (comptypes): Recurse on vector types.
3299         (convert_for_assignment): Use vector_types_convertible_p.
3300
3301 2004-05-04  Chris Demetriou  <cgd@broadcom.com>
3302
3303         * config/mips/mips.c (override_options): Default to no
3304         generation of branch-likely operations when tuning for
3305         CPUs where they tend to have a negative performance impact
3306         (e.g., SB-1).
3307
3308 2004-05-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3309
3310         * expr.c (store_constructor_field): Don't call store_constructor
3311         if bitsize is not a multiple of a byte.
3312
3313 2004-05-04  Richard Sandiford  <rsandifo@redhat.com>
3314
3315         * reload1.c (inherit_piecemeal_p): New function.
3316         (emit_reload_insns): When reloading a group of hard registers, use
3317         inherit_piecemeal_p to decide whether the values of individual hard
3318         registers can be inherited.
3319
3320 2004-05-04  H.J. Lu  <hongjiu.lu@intel.com>
3321
3322         * config/ia64/t-ia64 (LIB2ADDEH): Remove gthr-gnat.c.
3323         * config/s390/t-tpf (LIB2ADDEHDEP): Likewise.
3324         * config/t-linux (LIB2ADDEHDEP): Likewise.
3325
3326 2004-05-04  Paul Brook  <paul@codesourcery.com>
3327
3328         * config/arm/crti.asm: Push an even number of registers.
3329         * config/arm/crtn.asm: And restore them.  Load via sp.
3330
3331 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
3332
3333         * ggc-zone.c (ggc_alloc_zone_1): Add MEM_STAT_DECL parameter.
3334         Collect overhead information.
3335         (ggc_alloc_stat): New name of ggc_alloc.  Add MEM_STAT_DECL
3336         parameter and pass it through.
3337         (ggc_alloc_typed_stat): New name of ggc_alloc_typed.  Add
3338         MEM_STAT_DECL parameter and pass it through.
3339         (ggc_alloc_zone_stat): New name of ggc_alloc_zone.  Add
3340         MEM_STAT_DECL parameter and pass it through.
3341
3342 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
3343
3344         * config/rs6000/rs6000-protos.h: Protoize rs6000_hard_regno_nregs.
3345
3346         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs): New.
3347
3348         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Call
3349         rs6000_hard_regno_nregs.
3350
3351 2004-05-03  Eric Christopher  <echristo@redhat.com>
3352
3353         * config/s390/s390.c (s390_emit_prologue): Call unspec tpf
3354         prologue insn instead of setting up call.
3355         (s390_emit_epilogue): Ditto.
3356         * config/s390/s390.md (prologue_tpf, epilogue_tpf): New patterns.
3357         (define_constants): Add numbers for above patterns.
3358
3359 2004-05-03  Eric Christopher  <echristo@redhat.com>
3360
3361         * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Move body...
3362         * config/s390/s390.c (s390_conditional_register_usage): ...here.
3363         * config/s390/s390-protos.h: Prototype.
3364
3365 2004-05-03  Joe Buck <jbuck@welsh-buck.org>
3366
3367         * cppfiles.c (pchf_adder): Eliminate use of |= in d->have_once_only
3368         assignment.
3369
3370 2004-05-03  Eric Christopher  <echristo@redhat.com>
3371
3372         * config/mips/mips.md: Fix branch length attribute definition.
3373
3374 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
3375
3376         * config.gcc: Remove --enable-altivec support.
3377
3378         * config/rs6000/altivec-defs.h: Remove.
3379
3380 2004-05-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3381
3382         * fixinc/inclhack.def (svr4_profil): Don't apply on IRIX 5/6.
3383         * fixinc/fixincl.x: Regenerate.
3384
3385 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
3386
3387         * config/i386/i386.md (*fyl2x_sfxf3, *fyl2x_dfxf3): Remove insn
3388         definition.
3389         (log?f2, log10?f2, log2?f2): Reimplement expanders with
3390         float_truncate insn.
3391         (*fxtractsf3, *fxtractdf3): Remove insn definition.
3392         (logb?f2): Reimplement expanders with float_truncate insn.
3393
3394 2004-05-03  Graham Stott  <graham.stott@btinternet.com>
3395
3396         PR 14718
3397         * dwarf2out.c (dwarf2out_imported_module_or_decl): Use
3398         force_type_die for CONST_DECL.
3399
3400 2004-05-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
3401             Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3402
3403         * config.gcc (sparc64-*-solaris2*, sparcv9-*-solaris2*): Add
3404         tm-dwarf2.h to tm_file.
3405         (sparc-*-solaris2*): Add tm-dwarf2.h to tm_file for Solaris 7+.
3406         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Delete.
3407         (ASM_DEBUG_SPEC): Delete.
3408
3409 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
3410
3411         * optabs.h (enum optab_index): Add new OTI_expm1.
3412         (expm1_optab): Define corresponding macro.
3413         * optabs.c (init_optabs): Initialize expm1_optab.
3414         * genopinit.c (optabs): Implement expm1_optab using expm1?f2
3415         patterns.
3416         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXPM1{,F,L}
3417         using expm1_optab.
3418         (expand_builtin): Expand BUILT_IN_EXPM1{,F,L} using
3419         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
3420
3421         * config/i386/i386.md (expm1df2, expm1sf2, expm1xf2): New expanders
3422         to implement expm1, expm1f and expm1l built-ins as inline x87
3423         intrinsics.
3424
3425 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
3426
3427         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
3428         * config/frv/frv.md (*return_true, *return_false): New patterns.
3429
3430 2004-05-02  Kazu Hirata  <kazu@cs.umass.edu>
3431
3432         * rtl.h (PHI_NODE_P): Remove.
3433
3434 2004-05-02  Eric Botcazou  <ebotcazou@act-europe.fr>
3435
3436         PR middle-end/14988
3437         * function.c (assign_stack_local_1): Use BITS_PER_UNIT alignment
3438         when passed -2 as 'align'.
3439         (put_var_into_stack): Use 'bool' as the type for the three local
3440         predicates.  Adjust calls to put_reg_into_stack.
3441         When passed a CONCAT, instruct put_reg_into_stack to use
3442         a consecutive stack slot for the second part.
3443         (put_reg_into_stack): Remove 'promoted_mode' parameter, add
3444         'consecutive_p' parameter.  Turn the three predicates into 'bool'
3445         parameters.  Retrieve the register mode from 'reg'.
3446         When consecutive_p is true, instruct assign_stack_local_1 to use
3447         BITS_PER_UNIT alignment.
3448         (put_addressof_into_stack): Use 'bool' as the type for the two
3449         local predicates. Adjust call to put_reg_into_stack.
3450
3451 2004-05-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3452
3453         * fold-const.c (fold_convert_const, fold): Add missing
3454         FIX_ROUND_EXPR case.
3455
3456 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
3457
3458         * configure.ac (FLEX, BISON): Only use tools from the build tree
3459         if build equals host.
3460         * configure: Rebuilt.
3461
3462         * config/frv/frv-protos.h (frv_expand_epilogue,
3463         frv_expand_fdpic_call): Add bool argument.
3464         * config/frv/frv.c (frv_function_ok_for_sibcall): New.
3465         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to it.
3466         (frv_expand_epilogue): Use new argument to decide whether to emit
3467         return instruction or copy the return address to LR.
3468         (frv_expand_fdpic_call): Inline PLT entry when emitting direct
3469         sibcalls.
3470         (sibcall_operand): New.
3471         * config/frv/frv.h (PREDICATE_CODES): call_operand doesn't match
3472         PLUS nor LABEL_REF.  Add sibcall_operand.
3473         * config/frv/frv.md (call, call_value): Pass false to
3474         frv_expand_fdpic_call.
3475         (call_fdpicdi, call_value_fdpicdi): Insert %i0 in calll.
3476         (sibcall, sibcall_internal, sibcall_fdpicdi, sibcall_value,
3477         sibcall_value_internal, sibcall_value_fdpicdi): New.
3478         (return_unsigned_true, return_unsigned_false): New.
3479         (epilogue): Adjust call to frv_expand_epilogue.
3480         (sibcall_epilogue): New.
3481
3482         * config/frv/frv.h (ASM_SPEC): Pass -mno-fdpic as -mnopic.
3483         (CPP_SPEC, CPP_SIMPLE_SPEC): Undefine __FRV_ACC__ and __FRV_FPR__
3484         before redefining them.
3485
3486 2004-05-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3487
3488         * builtins.c (fold_fixed_mathfn): New function.
3489         (fold_builtin_lround, fold_builtin): Use it.
3490
3491 2004-05-01  Jakub Jelinek  <jakub@redhat.com>
3492
3493         * config/sparc/linux64.h (TARGET_DEFAULT): Make 64-bit by default
3494         also for TARGET_CPU_DEFAULT == TARGET_CPU_ultrasparc3.
3495
3496 2004-05-01  Kazu Hirata  <kazu@cs.umass.edu>
3497
3498         * config/cris/cris.h: Revert my "fix comment typos" patch.
3499
3500 2004-05-01  Richard Sandiford  <rsandifo@redhat.com>
3501
3502         * config/mips/mips.h (TUNE_MACC_CHAINS): Fix comment.
3503
3504 2004-05-01  Falk Hueffner  <falk@debian.org>
3505
3506         * config/alpha/alpha.md (builtin_insbl, builtin_inswl,
3507         builtin_insll): Disallow 0 as first input operand.
3508
3509 2004-05-01  Falk Hueffner  <falk@debian.org>
3510
3511         * config/alpha/alpha.c (alpha_rtx_costs): Fix shiftadd costs.
3512
3513 2004-05-01  Ulrich Weigand  <uweigand@de.ibm.com>
3514
3515         PR middle-end/15054
3516         * expr.c (expand_expr_real): Do not call preserve_temp_slots
3517         on a TARGET_EXPR temp.
3518         * function.c (assign_stack_temp_for_type): Set 'keep' flag for
3519         TARGET_EXPR temp slots.
3520
3521 2004-05-01  Paolo Bonzini  <bonzini@gnu.org>
3522
3523         * simplify-rtx.c (simplify_ternary_operation): When
3524         converting an IF_THEN_ELSE to a relational op, return
3525         correct mode.
3526
3527 2004-04-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3528
3529         * builtins.c (fold_builtin_round): Fix comment typo.
3530         (fold_builtin_lround): New function.
3531         (fold_builtin): Use it.
3532
3533 2004-04-20  Andrew Pinski  <pinskia@physics.uc.edu>
3534
3535         PR target/11608
3536         * config/sh/elf.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Update and make it
3537         more like the one in config/dbxelf.h.
3538
3539 2004-04-30  Zack Weinberg  <zack@codesourcery.com>
3540
3541         * tree.h (SET_ARRAY_OR_VECTOR_CHECK): Rename to SET_OR_ARRAY_CHECK
3542         and adjust definition accordingly.
3543         (TYPE_DOMAIN): Allow only SET_TYPE and ARRAY_TYPE.
3544         (TYPE_DEBUG_REPRESENTATION_TYPE): Allow only VECTOR_TYPE.
3545         * expr.c (store_constructor): Do not access TYPE_DOMAIN of a
3546         VECTOR_TYPE.
3547
3548 2004-04-30  Jason Merrill  <jason@redhat.com>
3549
3550         PR c++/14587
3551         * config/i386/winnt.c (associated_type): Look for attributes on
3552         the TYPE_MAIN_VARIANT of *this.
3553         * attribs.c (decl_attributes): If ATTR_FLAG_TYPE_IN_PLACE, also
3554         apply the attributes to the variants.
3555
3556 2004-04-30  Paul Brook  <paul@codesourcery.com>
3557
3558         * config.gcc: Simplify arm --with-{cpu,tune} test.
3559         * config/arm/arm-cores.def: Document whitespace restrictions.
3560
3561 2004-04-30  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3562
3563         PR other/1963
3564         * config/alpha/osf.h (SWITCHES_NEED_SPACES): Define.
3565
3566 2004-04-30  Brian Ford  <ford@vss.fsi.com>
3567             DJ Delorie  <dj@redhat.com>
3568
3569         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
3570         (DWARF2_DEBUGGING_INFO): Define to enable.
3571         (DBX_REGISTER_NUMBER): Define to use the svr4 register map for
3572         DWARF2.
3573         * configure.ac (Target-specific assembler checks)
3574         <i[34567]86-*-[cygwin*|pe|mingw32*]>: New test for .secrel32
3575         relocs.
3576         * configure: Regenerate.
3577         * config.in: Likewise.
3578
3579         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
3580         (ASM_OUPUT_DWARF_OFFSET): Define.
3581
3582 2004-04-29  Andreas Krebbel  <krebbel1@de.ibm.com>
3583
3584         * config/s390/s390-protos.h (s390_emit_epilogue): Parameter added.
3585         (s390_emit_call): New function prototype added.
3586         (s390_tls_get_offset): Function removed.
3587         * config/s390/s390.c (s390_function_ok_for_sibcall,
3588         s390_call_saved_register_used_p): New functions.
3589         (TARGET_FUNCTION_OK_FOR_SIBCALL): Definition of target macro added.
3590         (s390_tls_get_offset): Function merged into s390_emit_tls_call_insn.
3591         (s390_emit_tls_call_insn): New function.
3592         (legitimize_tls_address): Call s390_emit_tls_call_insn instead of
3593         emit_call_insn.
3594         (s390_emit_prologue): Use s390_emit_call instead of emit_call_insn.
3595         (s390_emit_epilogue): Like s390_emit_prologue. Parameter for sibcalls
3596         added.
3597         * config/s390/s390.h (SIBCALL_REGNUM): New macro representing the
3598         register number used to hold the target address for sibcalls.
3599         * config/s390/s390.md ("sibcall", "sibcall_value", "sibcall_epilogue"):
3600         New expanders.
3601         ("*sibcall_br", "*sibcall_brc", "*sibcall_brcl", "*sibcall_value_br",
3602         "*sibcall_value_brc", "*sibcall_value_brcl"): New insns.
3603         ("call_exp", "call_value_exp", "call_value_tls", "call_value_tls_exp"):
3604         Expanders removed.
3605         ("call", "call_value"): Call s390_emit_call to emit the call patterns.
3606         ("*bras", "*brasl", "*bras_r", "*brasl_r", "*bras_tls", "*brasl_tls",
3607         "*basr", "*basr_r", "*basr_tls"): Added constraint: !SIBLING_CALL_P.
3608         ("epilogue"): Changed the call to s390_emit_epilogue to use the
3609         new parameter.
3610
3611 2004-04-30  Kazu Hirata  <kazu@cs.umass.edu>
3612
3613         * bb-reorder.c, c-opts.c, cfglayout.c, cgraph.c, cgraphunit.c,
3614         cppfiles.c, fold-const.c, ggc-zone.c, loop-doloop.c, optabs.c,
3615         reg-stack.c, varasm.c, config/alpha/ev4.md,
3616         config/alpha/ev5.md, config/alpha/ev6.md, config/arm/arm.c,
3617         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.c,
3618         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
3619         config/frv/frv.h, config/frv/frv.md, config/h8300/h8300.c,
3620         config/i386/i386.c, config/i386/i386.md, config/i386/winnt.c,
3621         config/ia64/itanium2.md, config/ip2k/ip2k.c,
3622         config/mips/mips.c, config/mips/mips.h, config/mips/sr71k.md,
3623         config/pa/pa.c, config/s390/s390.c, config/sh/sh.c: Fix
3624         comment typos.
3625
3626 2004-04-30  Paul Brook  <paul@codesourcery.com>
3627
3628         * config.gcc: Default ep9312 to hard-float.
3629         * config/arm/arm-cores.def: Add ARCH field.
3630         * config/arm/arm.c (FL_FOR_ARCH*): Define.
3631         (arm_arch_cirrus): New variable.
3632         (all_cores): Set and use arch.
3633         (all_architectures): Ditto.
3634         (arm_arch_name): New variable.
3635         (arm_override_options): Set it. Use [SUB]TARGET_CPU_DEFAULT.
3636         Set and use arm_arch_cirrus.
3637         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set arch defines.
3638         (enum processor_type): Update ARM_CORE define.
3639         (enum target_cpus): Add.  Replaces TARGET_CPU_* defines.
3640         (CPP_SPEC): Remove %(cpp_cpu_arch).
3641         (CPP_ARCH_DEFAULT_SPEC): Remove.
3642         (CPP_CPU_ARCH_SPEC): Remove.
3643         (EXTRA_SPECS): Don't use CPP_*ARCH*_SPEC.
3644         (FPUTYPE_DEFAULT): Don't define here.
3645
3646 2004-04-30  J"orn Rennecke <joern.rennecke@superh.com>
3647
3648         * flow.c (propagate_one_insn): Call mark_set_regs for stack pointer
3649         updates too.
3650
3651 2004-04-30  Paul Brook  <paul@codesourcery.com>
3652
3653         * arm.c (arm_needs_doubleword_align): Use mode alignment.
3654
3655 2004-04-30  Paolo Bonzini  <bonzini@gnu.org>
3656
3657         * config/altivec/altivec.h [__cplusplus] (vec_subsubs): Rename to
3658         vec_sububs.
3659         [__cplusplus] (vec_subsuhs): Rename to vec_subuhs, without
3660         duplicates.
3661
3662 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
3663
3664         * config/i386/i386.md (atansf2, atandf2, atanxf2): Move near
3665         atan2?f3 expanders.
3666
3667 2004-04-29  Nick Clifton  <nickc@redhat.com>
3668
3669         Bug 14093
3670         * config/sh/sh-protos.h (sh_promote_prototypes): Declare.
3671         * config/sh/sh.c (sh_promote_prototypes): Remove declaration.
3672         Delete static from definition.
3673         * config/sh/sh.h (FUNCTION_VALUE): Add sh_promote_prototypes call.
3674
3675 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
3676
3677         * reg-stack.c (subst_stack_regs_pat): <UNSPEC_SIN, UNSPEC_COS,
3678         UNSPEC_FRNDINT, UNSPEC_F2XM1>: abort() if src1 dies.
3679         <UNSPEC_SINCOS_COS, UNSPEC_TAN_ONE, UNSPEC_XTRACT_FRACT>: Same.
3680         <UNSPEC_SINCOS_SIN, UNSPEC_TAN_TAN, UNSPEC_XTRACT_EXP>: Same.
3681
3682 2004-04-29  Richard Guenther  <richard.guenther@uni-tuebingen.de>
3683
3684         * commom.opt (Wfatal-errors): Add it.
3685         * diagnostic.c (flag_fatal_errors): Define it.
3686         (diagnostic_action_after_output): Check for flag_fatal_errors.
3687         * flags.h (flag_fatal_errors): Declare it.
3688         * opts.c (common_handle_option): Add OPT_Wfatal_errors.
3689         * doc/invoke.texi (Warning Options): Document -Wfatal-errors.
3690
3691 2004-04-30  Josef Zlomek  <zlomekj@suse.cz>
3692
3693         * gcse.c (remove_reachable_equiv_notes): Delete notes also in
3694         blocks which have kill flag set.
3695
3696 2004-04-29  Ben Elliston  <bje@au.ibm.com>
3697
3698         * configure.ac (--with-as): Abort if user-supplied assembler
3699         cannot be executed.
3700         (--with-ld): Likewise for the linker.
3701         * configure: Regenerate.
3702
3703 2004-04-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3704
3705         * convert.c (convert_to_integer): Ensure `long_integer_type_node'
3706         isn't NULL before using it.
3707
3708 2004-04-29  Richard Sandiford  <rsandifo@redhat.com>
3709
3710         PR target/15189
3711         * config/mips/mips.md (load_df_low): Use default length.
3712         (load_df_high, store_df_high): Likewise.
3713
3714 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
3715
3716         * config/mips/mips.md, config/mips/sb1.md,
3717         config/rs6000/rs6000.c: Fix comment typos.
3718
3719 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
3720
3721         * builtins.c, cgraph.c, cgraphunit.c, final.c, fold-const.c:
3722         Fix comment typos.
3723
3724 2004-04-29  Douglas B Rupp  <rupp@gnat.com>
3725
3726         * gcc.c (DELETE_IF_ORDINARY): New macro default definition.
3727         (delete_if_ordinary): Use above macro.
3728         * config/alpha/xm-vms.h (DELETE_IF_ORDINARY): New macro VMS definition.
3729         Update copyright.
3730         * doc/hostconfig.texi (DELETE_IF_ORDINARY): Document new macro.
3731
3732 2004-04-29  Richard Earnshaw  <rearnsha@arm.com>
3733
3734         * c-decl.c (get_parm_info): Use the correct tag keywords when
3735         warning about type declarations in prototypes.
3736
3737 2004-04-29  Paul Brook  <paul@codesourcery.com>
3738
3739         * config.gcc: Pull list of cores from arm-cores.def.
3740
3741 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
3742
3743         * combine.c (combine_simplify_rtx): Adjust call to use
3744         simplify_relational_operation.  Do not use SELECT_CC_MODE
3745         when a comparison already has a MODE_CC mode.
3746
3747 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
3748
3749         (simplify_set): simplify_relational_operation may now
3750         return another relational expression.
3751         * cse.c (fold_rtx): simplify_relational_operation now
3752         takes of computing the comparison mode.
3753         * dojump.c (compare_from_rtx): Use simplify_relational_operation,
3754         remove dead code.
3755         (do_compare_rtx_and_jump): Likewise.
3756         * integrate.c (subst_constants): simplify_relational_operation
3757         may now return another relational expression.
3758         * simplify-rtx.c (simplify_gen_relational): Move most code to
3759         the new simplify_relational_operation and
3760         simplify_relational_operation_1 functions.
3761         (simplify_relational_operation): Rewritten.
3762         (simplify_relational_operation_1): New function.
3763         (simplify_ternary_operation): simplify_relational_operation
3764         may now return another relational expression.
3765         (simplify_rtx): Remove unnecessary temp variable.
3766
3767 2004-04-29  Uros Bizjak  <uros@kss-loka.si>
3768
3769         * reg-stack.c (swap_to_top): New function.
3770         (subst_stack_regs_pat): UNSPEC_FPATAN, UNSPEC_FYL2X: Use
3771         swap_to_top().
3772         (subst_stack_regs_pat): UNSPEC_FSCALE: Remove.
3773         (subst_stack_regs_pat): Handle UNSPEC_FSCALE_FRACT and
3774         UNSPEC_FSCALE_EXP.
3775
3776         * config/i386/i386.md (UNSPEC_FSCALE): Remove.
3777         (*fscale_sfxf3, *fscale_dfxf3, *fscale_xf3): Remove insn pattern.
3778         (UNSPEC_FSCALE_FRACT, UNSPEC_FSCALE_EXP): New unspecs to represent
3779         x87's fscale insn.
3780         (*fscalexf4: Define new insn pattern to implement x87 fscale insn.
3781         (exp?f2, exp10?f2, exp2?f2): Use *fscalexf4 and float_truncate
3782         patterns.
3783
3784 2004-04-28  Serge Belyshev  <1319@bot.ru>
3785
3786         PR 14944
3787         * coverage.c (read_counts_file): Fix usage of warning () call.
3788         * pretty-print.c (pp_base_format_text): Fix typo in the comment.
3789
3790 2004-04-28  Ben Elliston  <bje@au.ibm.com>
3791
3792         * doc/invoke.texi (Objective-C Dialect Options): Don't prefix
3793         options with "-" in the option index.
3794         (SPARC Options): Likewise.
3795         (M32R/D Options): Likewise.
3796
3797 2004-04-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3798
3799         * convert.c (convert_to_integer): Convert (long)round -> lround,
3800         etc.
3801
3802 2004-04-28  Andrew Pinski  <pinskia@physics.uc.edu>
3803
3804         * config/rs6000/rs6000.c (registers_ok_for_quad_peep):
3805         Return false if we do not have fp register.
3806         (addrs_ok_for_quad_peep): Rename to ...
3807         (mems_ok_for_quad_peep): this.
3808         Add check for volatile memory.
3809         * config/rs6000/rs6000-protos.h (addrs_ok_for_quad_peep):
3810         Rename to ...
3811         (mems_ok_for_quad_peep): this.
3812         * config/rs6000/rs6000.md: Change peephole's for lfq/stq
3813         to peephole2's.
3814         (lfq_power2): New instruction.
3815         (stfq_power2): Likewise.
3816
3817 2004-04-28  Jan Hubicka  <jh@suse.cz>
3818
3819         PR c/15004
3820         * function.c (do_warn_unused_parameter): Break out form ...
3821         (expand_function_end): ... here; warn only when not using cgraphunit.
3822         * function.h (do_warn_unused_parameter): Declare.
3823         * cgraphunit.c: Include function.h.
3824         (cgraph_finalize_function): Do unused parameter warning.
3825         * Makefile.in (cgraphunit.o): Depend on function.h
3826
3827 2004-04-28  Joseph S. Myers  <jsm@polyomino.org.uk>
3828
3829         * Makefile.in ($(DESTDIR)$(infodir)/%.info): Don't condition
3830         calling install-info on $(DESTDIR)$(infodir)/dir already being
3831         present.
3832
3833 2004-04-28  Paul Brook  <paul@codesourcery.com>
3834
3835         * dwarf2out.c (mem_loc_descriptor): Handle shifts.
3836
3837 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
3838
3839         * gcse.c (find_moveable_store): Do not accept store insns with
3840         REG_EH_REGION note.
3841
3842 2004-04-28  Paul Brook  <paul@codesourcery.com>
3843
3844         * calls.c (precompute_arguments): Remove PROMOTE_FOR_CALL_ONLY.
3845         * function.c (assign_temp): Ditto.
3846         * system.h (PROMOTE_FOR_CALL_ONLY): Poison.
3847
3848 2004-04-28  Paul Brook  <paul@codesourcery.com>
3849
3850         * config/arm/lib1funcs.asm: Recognize armv5tej and armv6.
3851
3852 2004-04-28  Josef Zlomek  <zlomekj@suse.cz>
3853
3854         * var-tracking.c (variable_different_p): Add a parameter
3855         compare_current_location, compare current location of variable parts
3856         if it is true.
3857         (dataflow_set_different_1): Pass compare_current_location == false.
3858         (dataflow_set_different_2): Pass compare_current_location == false.
3859         (emit_notes_for_differences_1): Pass compare_current_location == true.
3860
3861 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
3862
3863         * config/s390/s390.md ("casesi"): Mark jump table access as
3864         non-trapping and unchanging.
3865
3866 2004-04-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3867
3868         PR debug/14829
3869         * dwarf2out.c (reg_number): Rename to dbx_reg_number.  Adjust all
3870         callers.
3871         (multiple_reg_loc_descriptor, reg_loc_descriptor): Use gcc register
3872         number for indexing hard_regno_nregs array.
3873
3874 2004-04-27  Geoffrey Keating  <geoffk@apple.com>
3875
3876         * config/darwin.h (STARTFILE_SPEC): Use %s to find crt2.o.
3877         * config/darwin-crt2.c: Only have contents on __ppc__.
3878
3879 2004-04-27  Bob Wilson  <bob.wilson@acm.org>
3880
3881         * config/xtensa/xtensa.c (call_insn_operand): Check
3882         SYMBOL_REF_EXTERNAL_P in addition to SYMBOL_REF_LOCAL_P.
3883         * config/xtensa/xtensa.h (LEGITIMATE_PIC_OPERAND): Likewise.
3884         * config/xtensa/xtensa.md (call, call_value): Likewise.
3885
3886 2004-04-27  Wu Yongwei  <adah@sh163.net>
3887
3888         * gthr-win32.h (__gthread_mutex_t): Change typedef to new structure.
3889         (__GTHREAD_MUTEX_INIT_DEFAULT): Adjust.
3890         (__gthread_mutex_init_function): Replace CreateMutex with
3891         initialization of custom mutex using CreateSemaphore.
3892         (__gthread_mutex_lock): Use InterlockedIncrement.
3893         (__gthread_mutex_trylock): Use InterlockedCompareExchange.
3894         (__gthread_mutex_unlock): Use InterlockedDecrement and
3895         ReleaseSemaphore to unlock
3896         * config/i386/gthr-win32.c (__gthread_mutex_init_function,
3897         __gthread_mutex_lock, __gthread_mutex_trylock,
3898         __gthread_mutex_unlock): Adjust to match inline versions in
3899         gthr-win32.h.
3900
3901 2004-04-27  Paul Brook  <paul@codesourcery.com>
3902
3903         * config/arm/arm.c (arm_promote_prototypes): New function.
3904         (TARGET_PROMOTE_PROTOTYPES): Use it.
3905
3906 2004-04-27  Paul Brook  <paul@codesourcery.com>
3907
3908         * config/arm/arm.c (arm_expand_epilogue): Count blocks of 4 regs.
3909
3910 2004-04-26  Bernard Giroud  <bgiroud@free.fr>
3911
3912         * config/alpha.c (alpha_end_function): For OpenVMS gas,
3913         correctly output .pdesc directive before .end.
3914
3915 2004-04-26  James E Wilson  <wilson@specifixinc.com>
3916
3917         Bug 14927
3918         * config/ia64/ia64.md (movxf): New local op0.  Handle case where
3919         operands[0] is a SUBREG.  Handle case where operands[1] is a GR reg.
3920
3921 2004-04-26  Zack Weinberg  <zack@codesourcery.com>
3922
3923         * config/ia64/hpux.h: Predefine __STDCPP__ when compiling C++.
3924         * config/pa/pa-hpux10.h: Likewise.
3925         * config/pa/pa-hpux11.h: Likewise.
3926
3927 2004-04-26  Geoffrey Keating  <geoffk@apple.com>
3928
3929         * doc/invoke.texi (Overall Options): Document default for -o
3930         for PCH files.
3931
3932 2004-04-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3933
3934         * builtins.c (expand_builtin_update_setjmp_buf): New function.
3935         (expand_builtin, case BUILT_IN_UPDATE_SETJMP_BUF): New case.
3936         * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): New code.
3937
3938 2004-04-26  Paul Brook  <paul@codesourcery.com>
3939
3940         * config/arm/arm.c (arm_legitimate_index_p): Correct iwmmxt offsets.
3941
3942 2004-04-26  Paul Brook  <paul@codesourcery.com>
3943
3944         * config/arm/arm.c (arm_legitimate_index_p): Correct maverick offsets.
3945
3946 2004-04-25  Roger Sayle  <roger@eyesopen.com>
3947
3948         * fold-const.c (fold): Prefer fold_convert (negate_expr (...)) to
3949         fold (build1 (NEGATE_EXPR, ...)).  Optimize X / -1 as -X and
3950         X % -1 as 0.
3951
3952 2004-04-26  Hans-Peter Nilsson  <hp@bitrange.com>
3953
3954         PR bootstrap/15141
3955         * except.c (connect_post_landing_pads): Delete insns after the
3956         barrier when generating a unwind_resume_libfunc call.
3957
3958 2004-04-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3959
3960         PR/c++ 15119
3961         * tree.c (substitute_placeholder_in_expr, case 4): New case,
3962         for TARGET_EXPR.
3963
3964 2004-04-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3965
3966         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
3967         __gcov_execv, __gcov_execvp, __gcov_execve): Do not declare when
3968         inhibit_libc is defined.
3969
3970 2004-04-25  Richard Sandiford  <rsandifo@redhat.com>
3971
3972         * config/mips/mips-protos.h (mips_linked_macc_p): Declare.
3973         * config/mips/mips.h (TUNE_MACC_CHAINS): New macro.
3974         * config/mips/mips.c (TARGET_SCHED_REORDER): Define.
3975         (TARGET_SCHED_VARIABLE_ISSUE): Define.
3976         (mips_adjust_cost): Move later in file, next to other sched hooks.
3977         (mips_macc_chains_last_hilo): New variable.
3978         (mips_linked_madd_p, mips_macc_chains_record, mips_macc_chains_reorder)
3979         (mips_promote_ready, mips_sched_reorder, mips_variable_issue): New.
3980         * config/mips/mips.md (may_clobber_hilo): New attribute.
3981
3982 2004-04-24  Roger Sayle  <roger@eyesopen.com>
3983             Bruce Korb  <bkorb@gnu.org>
3984
3985         * fixinc/inclhack.def (aix_syswait_2): New fix.
3986         * fixinc/fixincl.x: Regenerate.
3987         * fixinc/tests/base/sys/wait.h: Update for new test.
3988
3989 2004-04-24  Alan Modra  <amodra@bigpond.net.au>
3990
3991         PR target/14960
3992         * config/rs6000/rs6000.c (rs6000_stack_info): Rename total_raw_size
3993         to non_fixed_size, and leave out fixed_size from the sum.
3994         (generate_set_vrsave): Correct clobbers.
3995         (rs6000_emit_epilogue): Test TARGET_ALTIVEC with TARGET_ALTIVEC_SAVE.
3996         (rs6000_function_value): Test TARGET_ALTIVEC and TARGET_ALTIVEC_ABI.
3997         (rs6000_libcall_value): Likewise.
3998         * config/rs6000/rs6000.h (FUNCTION_VALUE_REGNO_P): Likewise.
3999         (FUNCTION_ARG_REGNO_P): Likewise.
4000
4001 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
4002
4003         * expmed.c (expand_mult_highpart_adjust): Do not assume OP1
4004         is a CONST_INT.
4005         (expand_mult_highpart_optab): Call expand_mult_highpart_adjust
4006         with NARROW_OP1 instead of OP1.
4007
4008 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
4009
4010         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __s390__
4011         and __s390x__ hosts.
4012
4013 2004-03-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4014
4015         * Makefile.in (LIBGCOV): Add _gcov_fork, _gcov_execl, _gcov_execlp,
4016         _gcov_execle, _gcov_execv, _gcov_execvp, _gcov_execve.
4017         * builtin-types.def (BT_PID, BT_PTR_CONST_STRING, BT_FN_PID,
4018         BT_FN_INT_CONST_STRING_PTR_CONST_STRING,
4019         BT_FN_INT_CONST_STRING_PTR_CONST_STRING_PTR_CONST_STRING): New.
4020         * builtins.c (expand_builtin_fork_or_exec): New.
4021         (expand_builtin): Call it.
4022         * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP,BUILT_IN_EXECLE,
4023         BUILT_IN_EXECV, BUILT_IN_EXECVP, BUILT_IN_EXECVE, BUILT_IN_FORK): New.
4024         * c-common.c (PID_TYPE): New macro.
4025         (c_common_nodes_and_builtins): Initialize pid_type_node.
4026         * calls.c (special_function_p): Do not handle fork and exec.
4027         (expand_call): Do not handle ECF_FORK_OR_EXEC.
4028         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
4029         __gcov_execv, __gcov_execvp, __gcov_execve): Declare.
4030         * libgcov.c (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
4031         __gcov_execv, __gcov_execvp, __gcov_execve): New.
4032         * tree.h (enum tree_index): Add TI_PID_TYPE.
4033         (pid_type_node): New macro.
4034         (ECF_FORK_OR_EXEC): Removed.
4035
4036 2004-04-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
4037
4038         PR optimization/13985
4039         * cfgloopmanip.c (fix_loop_placements): New prototype.
4040         Call fix_bb_placements on the preheader of loops that have
4041         been reparented.
4042         (remove_path): Adjust call to fix_loop_placements.
4043
4044 2004-04-23  Andrew Pinski  <pinskia@physics.uc.edu>
4045
4046         * config/darwin7.h: New file.
4047         * config.gcc (*-*-darwin*): Add darwin7.h if the
4048         version is greater than 6.
4049         * config/darwin.h (TARGET_C99_FUNCTIONS): Define.
4050         (MATH_LIBRARY): Wrap in ifdefs.
4051
4052 2004-04-23  Daniel Jacobowitz  <drow@mvista.com>
4053
4054         * config/arm/arm.c (arm_output_epilogue): Reverse the order of
4055         loading iWMMXt registers with a frame pointer.  Use post-increment
4056         without a frame pointer.
4057         (arm_expand_prologue): Reverse the order of saving iWMMXt registers.
4058
4059 2004-04-23  Paolo Bonzini  <bonzini@gnu.org>
4060
4061         * doc/invoke.texi (Optimize Options): Refer to "unit-at-a-time
4062         mode" rather than "-funit-at-a-time" since -O2 enables it
4063         without requiring -f* options.  Refer to -fprofile-generate and
4064         -fprofile-use correctly.  Move -funit-at-a-time among options
4065         enabled by -O.  Add information about unit-at-a-time caveats.
4066
4067 2004-04-22  Per Bothner  <per@bothner.com>
4068
4069         * line-map.h (struct line_maps):  New field highest_line.
4070         (linemap_position_for_column):  Make non-inline function.
4071         (LINEMAP_POSITION_FOR_COLUMN):  New macro.
4072         * line-map.c (linemap_init):  Clear highest_line field.
4073         (linemap_add):  Set highest_line field.
4074         (linemap_line_start):  Minor optimization - use highest_line field.
4075         Reduce maximum column hint to 10000.  Update highest_line field.
4076         (linemap_position_for_column):  Moved from line-map.h.  Optimize a bit.
4077         * cpphash.h (struct cpp_reader):  Remove line field - instead use
4078         line_table->highest_line.
4079         (saved_line):  Remove unused field.
4080         (CPP_INCREMENT_FILE):  Don't do linemap_lookup - just use newest map.
4081         Use  line_table's highest_line field instead of cpp_reader's line.
4082         * cpplib.c (start_directive):  Likewise use highest_line field.
4083         (do_line, do_linemarker):  Likewise just use newest map.
4084         (_cpp_do_file_change):  Don't need to set cpp_reader's line field.
4085         * cpperror.c (cpp_error):  Likewise use highest_line field.
4086         * cppfiles.c (open_file_failed:  Likewise.
4087         (cpp_make_system_header):  Likewise use newest map and highest_line.
4088         * cppinit.c (cpp_create_reader):  Don't initialize removed field.
4089         * cpplex.c (_cpp_process_line_notes, _cpp_skip_block_comment,
4090         skip_line_comment, skip_whitespace, _cpp_get_fresh_line,
4091         _cpp_lex_direct):  Likewise use highest_line.
4092         (_cpp_lex_direct):  Use new LINEMAP_POSITION_FOR_COLUMN macro.
4093         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use highest_line,
4094         and use newest map.
4095         * cpppch.c (cpp_read_state):  Don't save+restore cpp_reader's line.
4096         * cpptrad.c (_cpp_overlay_buffer):  Don't save cpp_reader's line.
4097         (copy_comment, _cpp_scan_out_logical_line):  Likewise use highest_line.
4098
4099 2004-04-23  Alan Modra  <amodra@bigpond.net.au>
4100
4101         PR bootstrap/14992
4102         * gcc.c (init_gcc_specs): Test USE_LD_AS_NEEDED, not HAVE_LD_AS_NEEDED.
4103         * config/linux.h (USE_LD_AS_NEEDED): Define.
4104         * gcc/config/alpha/linux.h (USE_LD_AS_NEEDED): Define.
4105         * gcc/config/arm/linux-elf.h (USE_LD_AS_NEEDED): Define.
4106         * gcc/config/rs6000/linux.h (USE_LD_AS_NEEDED): Define.
4107         * gcc/config/rs6000/linux64.h (USE_LD_AS_NEEDED): Define.
4108         * gcc/config/sh/linux.h (USE_LD_AS_NEEDED): Define.
4109         * gcc/config/sparc/linux.h (USE_LD_AS_NEEDED): Define.
4110         * gcc/config/sparc/linux64.h (USE_LD_AS_NEEDED): Define.
4111
4112 2004-04-22  Per Bothner  <per@bothner.com>
4113
4114         * cppinit.c (cpp_read_main_file):  Return NULL rather than false.
4115         Fixes PR preprocessor/15067.
4116
4117 2004-04-23  Andreas Schwab  <schwab@suse.de>
4118
4119         * config/ia64/ia64intrin.h: Add intermediate cast to void * to
4120         avoid aliasing warning.
4121
4122 2004-04-22  Jan Hubicka  <jh@suse.cz>
4123             Mostafa Hagog <mustafa@il.ibm.com>
4124
4125       * cfgloopmanip.c (scale_bbs_frequencies): Use RDIV macro
4126       * cfgloopanal.c (expected_loop_iterations): Change the return value
4127
4128 2004-04-22  Jakub Jelinek  <jakub@redhat.com>
4129
4130         * cselib.h (struct elt_loc_list): Remove canon_loc field.
4131         * cselib.c (new_elt_loc_list): Remove canon_loc initialization.
4132         (cselib_invalidate_mem): Remove all canon_loc and canon_x
4133         traces.
4134
4135 2004-04-22  Josef Zlomek  <zlomekj@suse.cz>
4136
4137         Revert
4138         2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
4139
4140                 * var-tracking.c (variable_part_different_p): Variable parts
4141                 differ when the most recent locations differ.
4142
4143 2004-04-22  Richard Sandiford  <rsandifo@redhat.com>
4144
4145         * doc/invoke.texi: Remove the MIPS -membedded-pic option.
4146         * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): Delete.
4147         (embedded_pic_offset): Delete.
4148         * config/mips/mips.h (MASK_EMBEDDED_PIC): Delete.  Shuffle other
4149         MASK_* constants.
4150         (TARGET_EMBEDDED_PIC): Delete.
4151         (TARGET_SWITCHES): Remove -m{no-,}embedded-pic.
4152         (ASM_SPEC): Remove -membedded-pic.
4153         (ASM_OUTPUT_ADDR_DIFF_ELT): Remove embedded-pic handling.
4154         (ASM_OUTPUT_CASE_LABEL): Likewise.
4155         * config/mips/vxworks.h (ASM_SPEC): Remove -membedded-pic.
4156         * config/mips/windiss.h (ASM_SPEC): Likewise.
4157         * config/mips/mips.c (struct machine_function): Remove
4158         embedded_pic_fnaddr_rtx.
4159         (TARGET_ENCODE_SECTION_INFO): Remove override.
4160         (embedded_pic_fnaddr_reg, embedded_pic_offset): Delete.
4161         (override_options): Remove -membedded-pic handling.
4162         (print_operand): Remove handling of '%S'.
4163         (mips_select_section: Remove -membedded-pic handling.
4164         (mips_encode_section_info): Delete.
4165         (mips_output_conditional_branch): Remove mention of -membedded-pic.
4166         * config/mips/mips.md (define_attr length, movsi, movdi, jump): Remove
4167         -membedded-pic handling.
4168         (casesi, casesi_internal, casesi_internal_di, get_fnaddr): Delete.
4169
4170 2004-04-22  Alan Modra  <amodra@bigpond.net.au>
4171
4172         * var-tracking.c (frame_base_decl): Remove useless GTY.
4173
4174 2004-04-21  Aldy Hernandez  <aldyh@redhat.com>
4175
4176         * config/rs6000/rs6000.c (rs6000_override_options): Error when
4177         user wants altivec and e500 instructions.
4178
4179 2004-04-21  H.J. Lu  <hongjiu.lu@intel.com>
4180
4181         PR target/14813
4182         * config/ia64/crtend.asm: Move pointer to __do_global_ctors_aux
4183         in .init_array section to ...
4184         * config/ia64/crtbegin.asm: Here.
4185
4186         * config/ia64/crtend.asm: Mark __do_global_ctors_aux global
4187         and hidden if HAVE_INITFINI_ARRAY is defined.
4188
4189 2004-04-21  James E Wilson  <wilson@specifixinc.com>
4190
4191         * config/mips/mips-protos.h (fp_register_operand, lo_operand): Declare.
4192         * config/mips/mips.c (mips_multipass_dfa_lookahead): Declare.
4193         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): New.
4194         (fp_register_operand, lo_operand): New.
4195         (mips_rtx_costs): Add TUNE_SB1 support.
4196         (mips_issue_rate): Add comment.  Add PROCESSOR_SB1 support.
4197         (mips_use_dfa_pipeline_interface): Add PROCESSOR_SB1 support.
4198         (mips_multipass_dfa_lookahead): New.
4199         * config/mips/mips.h (MASK_FP_EXCEPTIONS, TARGET_FP_EXCEPTIONS,
4200         TUNE_SB1): New.
4201         (TARGET_SWITCHES): Add -mfp-exceptions support.
4202         (TARGET_FP_EXCEPTIONS_DEFAULT): New.
4203         (BRANCH_COST): Fix whitespace.
4204         * config/mips/mips.md: Include sb1.md.
4205         * config/mips/sb1.md: New file.
4206         * doc/invoke.texi: Document -mfp-exceptions.
4207
4208         * Makefile.in (fixinc.sh): Don't set or export WARN_CFLAGS.  Fix
4209         comment.
4210         * fixinc/Makefile.in (FL_LIST): Don't mention WARN_CFLAGS.
4211         (fixincl.o-warn): Delete.
4212
4213 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
4214
4215         * config/rs6000/rs6000 (print_operand) ['z']:
4216         Change ifdef of TARGET_MACHO to if TARGET_MACHO.
4217
4218 2004-04-21 Daniel Jacobowitz  <drow@mvista.com>
4219
4220         * config.gcc: Support --with-arch=iwmmxt for ARM.
4221
4222 2004-04-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4223
4224         * expmed.c (expand_mult_highpart_optab): Use narrower version of OP1
4225         in two more places; remove unneeded force_reg
4226
4227 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
4228
4229         * config/rs6000/rs6000.c (symbol_ref_operand): Remove hack
4230         for TARGET_MACHO.
4231         (print_operand): For TARGET_MACHO check to see if we need a stub
4232         and output one if we need it.
4233
4234         PR debug/15033
4235         * dwarf2out.c (rtl_for_decl_location): Check for NULL
4236         rtl.
4237
4238 2004-04-20  James E Wilson  <wilson@specifixinc.com>
4239
4240         * config/ia64/ia64.md (call_value_nogp): Add constraints for op0.
4241         (vall_value_gp): Likewise.
4242
4243 2004-04-20  DJ Delorie  <dj@redhat.com>
4244
4245         * dwarf2out.c (rtl_for_decl_location): Adjust rtl for byte
4246         variables stored in word registers, then in memory.
4247
4248 2004-04-20  Eric Christopher  <echristo@redhat.com>
4249
4250         * cp/parser.c (cp_parser_declaration): Move translate
4251         up before tokens are lexed.
4252
4253 2004-04-20  Uros Bizjak  <uros@kss-loka.si>
4254
4255         * optabs.h (enum optab_index): Add new OTI_asin and OTI_acos.
4256         (asin_optab, acos_optab): Define corresponding macros.
4257         * optabs.c (init_optabs): Initialize asin_optab and acos_optab.
4258         * genopinit.c (optabs): Implement asin_optab and acos_optab
4259         using asin?f2 and acos?f2 patterns.
4260         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_ASIN{,F,L}
4261         using asin_optab, and BUILT_IN_ACOS{,F,L} using acos_optab.
4262         (expand_builtin): Expand BUILT_IN_ASIN{,F,L} and BUILT_IN_ACOS{,F,L}
4263         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
4264
4265         * config/i386/i386.md (asindf2, asinsf2, asinxf2, acosdf2,
4266         acossf2, acosxf2): New expanders to implement asin, asinf, asinl,
4267         acos, acosf and acosl built-ins as inline x87 intrinsics.
4268
4269 2004-04-20  Paul Brook  <paul@codesourcery.com>
4270
4271         * config/arm/arm.c (arm_legitimate_address_p): Use rtx_equal_p.
4272
4273 2004-04-20  Paul Brook  <paul@codesourcery.com>
4274
4275         * config/arm/arm.c (arm_expand_prologue): Fix size calculation.
4276
4277 2004-04-20  Paolo Bonzini  <bonzini@gnu.org>
4278
4279         Revert part of 2004-04-17 change that moved -frename-registers
4280         to -O1.  -frename-registers is buggy.
4281
4282         * toplev.c (flag_rename_registers): Initialize to 0.
4283         * doc/invoke.texi (Optimize options): Move -frename-registers
4284         to "Not triggered by any -O level" section.  Adjust commentary
4285         accordingly.
4286
4287 2004-04-20  Anil Paranjpe <anilp1@kpitcummins.com>
4288
4289         * toplev.c (compile_file): Move targetm.asm_out.file_end call to end.
4290
4291 2004-04-20  Richard Sandiford  <rsandifo@redhat.com>
4292
4293         * config/mips/mips.c (mips_legitimize_move): Generate special patterns
4294         for mflo and mfhi instructions.
4295         (mips_output_move): Remove mflo and mfhi handling.
4296         * config/mips/mips.md (UNSPEC_MFHILO): New unspec.
4297         (*mulsidi3_64bit): Update for new mfhi/mflo representation.
4298         Likewise various define_peephole2s.
4299         (*movdi_32bit, *movdi_64bit, *movsi_internal): Merge x<-J and x<-d
4300         alternatives.
4301         (*movdi_64bit, *movdi_64bit_mips16, *mov[shq]i_internal)
4302         (*mov[shq]i_mips16): Remove mflo and mfhi alternatives.
4303         (mfhilo_di, mfhilo_si): New patterns.
4304
4305 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
4306
4307         * function.c (assign_parms): Force
4308         MEM_EXPR (DECL_INCOMING_RTL (parm)) == parm.
4309
4310 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
4311
4312         * var-tracking.c (variable_part_different_p): Variable parts differ
4313         when the most recent locations differ.
4314
4315 2004-04-19  James E Wilson  <wilson@specifixinc.com>
4316
4317         * rtl.h (reg_set_last): Delete declaration.
4318         * rtlanal.c (reg_set_last): Delete.
4319
4320 2004-04-19  Roger Sayle  <roger@eyesopen.com>
4321
4322         * fold-const.c (fold_convert): Make function extern/public.
4323         * tree.h (fold_convert): Prototype here.
4324         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
4325         expand_builtin_strrchr, expand_builtin_strpbrk,
4326         expand_builtin_mempcpy, expand_builtin_bcopy,
4327         expand_builtin_bzero, expand_builtin_memcmp,
4328         expand_builtin_strcmp, expand_builtin_strncmp,
4329         stabilize_va_list, expand_builtin_sprintf,
4330         fold_trunc_transparent_mathfn, fold_builtin_logarithm,
4331         fold_builtin_exponent, fold_builtin_mempcpy,
4332         fold_builtin_strcpy, fold_builtin_strcmp, fold_builtin_strncmp,
4333         fold_builtin_signbit, fold_builtin_isdigit, fold_builtin): Prefer
4334         fold_convert to "convert" or "fold (build1 (NOP_EXPR, ...))".
4335
4336 2004-04-19  Aldy Hernandez  <aldyh@redhat.com>
4337
4338         * config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): New constant.
4339         (move_from_CR_gt_bit): New.
4340         (cceq_ior_compare): Name previously unnamed pattern.  Disable for
4341         E500.
4342         (cceq_rev_compare): Name previously unnamed pattern.  Allow for
4343         E500.
4344
4345         * config/rs6000/spe.md (cmpsfeq_gpr): Rewrite as unspec.
4346         (tstsfeq_gpr): Same.
4347         (cmpsfgt_gpr): Same.
4348         (tstsfgt_gpr): Same.
4349         (cmpsflt_gpr): Same.
4350         (tstsflt_gpr): Same.
4351         (e500_cceq_ior_compare): New.
4352         (e500_flip_gt_bit): New.
4353
4354         * config/rs6000/rs6000.c (ccr_bit): Remove E500 specific code.
4355         (print_operand): Add 'c' and 'D'.
4356         (rs6000_generate_compare): Rewrite to generate correct rtl.
4357         (rs6000_emit_sCOND): Handle E500.
4358         (output_cbranch): Adjust for changes in rs6000_generate_compare.
4359         (output_e500_flip_gt_bit): New.
4360
4361         * config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit):
4362         Protoize.
4363
4364 2004-04-19  Eric Christopher  <echristo@redhat.com>
4365
4366         * config/mips/mips.h (DWARF2_ADDR_SIZE): New.
4367
4368 2004-04-19  David Edelsohn  <edelsohn@gnu.org>
4369
4370         * doc/install.texi (*-ibm-aix*): Add AIX 5.1 assembler and archiver
4371         fix information.
4372
4373 2004-04-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4374
4375         * doc/install.texi (Specific, mips-sgi-irix5): Fix IRIX 5.3 IDO
4376         download URL.
4377
4378 2004-04-19  Daniel Jacobowitz  <drow@mvista.com>
4379
4380         * stor-layout.c (layout_decl): Check DECL_PACKED before calling
4381         ADJUST_FIELD_ALIGN.  Check maximum_field_alignment after.
4382
4383 2004-04-19  Andrew PInski  <pinskia@physics.uc.edu>
4384
4385         * builtins.c (fold_builtin_cabs): Remove fndecl parameter.
4386         (fold_builtin): Update caller to match.
4387
4388         PR bootstrap/15009
4389         * bb-reorder.c (fix_up_fall_thru_edges): Init cond_jump.
4390
4391         PR bootstrap/14999
4392         * builtins.c (fold_builtin_cabs): Mark fndecl as unused.
4393
4394 2004-04-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4395
4396         * varasm.c (compare_constant, case VIEW_CONVERT_EXPR): Add case.
4397
4398         * expmed.c (expand_mult_highpart_adjust): Make OP1 valid for MODE.
4399         (expand_mult_highpart_optab): Likewise.
4400         (expand_mult_highpart): Make OP1 valid for WIDER_MODE, not MODE.
4401
4402 2004-04-19  Paul Brook  <paul@codesourcery.com>
4403
4404         * config/arm/arm.md (fixuns_truncsfsi2, fixuns_truncdfsi2,
4405         floatunssisf2, floatunssidf2): New patterns.
4406
4407 2004-04-18  Mark Mitchell  <mark@codesourcery.com>
4408
4409         PR other/14918
4410         * doc/invoke.texi (-fprofile-generate): Document requirement to
4411         use -fprofile-generate when linking.
4412
4413         * doc/extend.texi (Strong Using): Warn users against using this
4414         feature.
4415
4416 2004-04-18  Richard Sandiford  <rsandifo@redhat.com>
4417
4418         * config/mips/mips-protos.h (m16_usym8_4, m16_usym5_4): Delete.
4419         * config/mips/mips.h (mips_entry, mips_string_length): Delete.
4420         (CONSTANT_POOL_BEFORE_FUNCTION, ASM_OUTPUT_POOL_EPILOGUE): Undefine.
4421         * config/mips/mips.c (struct mips16_constant): Renamed from struct
4422         constant.  Propogate change throughout file.
4423         (struct machine_function): Remove insns_len.
4424         (mips_string_length, mips16_strings, string_constants): Delete.
4425         (mips_classify_symbol): Return SYMBOL_CONSTANT_POOL for LABEL_REFs
4426         when generating mips16 code.  Remove special mips16 treatment of
4427         string constants.
4428         (mips_symbolic_constant_p): Allow mips16 constant pool accesses
4429         to have the form LABEL+CONSTANT.
4430         (mips_symbolic_address_p): Fix comment.
4431         (m16_usym8_4, m16_usym5_4): Delete.
4432         (mips_output_function_epilogue): Remove mips16 string handling.
4433         (mips_output_mi_thunk): Call mips16_lay_out_constants.
4434         (mips_select_section, mips_encode_section_info): Remove mips16
4435         string handling.
4436         (struct mips16_constant_pool): New.
4437         (add_constant): Take a mips16_constant_pool structure.  Keep pool
4438         sorted into order of ascending mode size.  Keep track of the highest
4439         possible start address, taking padding and the masking of the base PC
4440         value into account.
4441         (dump_constants_1): New function, split out from dump_constants.
4442         Handle vector constants.  Use gen_consttable_{int,float} rather than
4443         separate functions for each mode.
4444         (dump_constants): Simplify.  Use GET_MODE_ALIGNMENT.  Use gen_align
4445         rather than separate functions for each alignment.
4446         (mips_find_symbol): Delete.
4447         (mips16_insn_length): New function, split out from
4448         mips16_lay_out_constants.
4449         (mips16_rewrite_pool_refs): New function.
4450         (mips16_lay_out_constants): Rework. Remove string handling.
4451         Always create an inline constant pool.
4452         * config/mips/mips.md (UNSPEC_CONSTTABLE_INT, UNSPEC_CONSTTABLE_FLOAT)
4453         (UNSPEC_ALIGN): New constants.
4454         (UNSPEC_CONSTTABLE_[QHSD]I, UNSPEC_CONSTTABLE_[SD]F): Delete.
4455         (UNSPEC_ALIGN_[248]): Delete.
4456         (consttable_int, consttable_float, align): New patterns.
4457         (consttable_[qhsd]i, consttable_[sd]f, align_[248]): Delete.
4458
4459 2004-04-17  Aldy Hernandez  <aldyh@redhat.com>
4460
4461         * config/rs6000/altivec.h (vec_any_numeric): Correct typo in
4462         __unn_args_eq.
4463
4464 2004-04-17  Alan Modra  <amodra@bigpond.net.au>
4465
4466         PR target/14715
4467         * config/rs6000/rs6000.c (rs6000_stack_info): Make parm_size agree
4468         with STARTING_FRAME_OFFSET.
4469
4470 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
4471
4472         * config/mips/mips.h (PREDICATE_CODES): Add macc_msac_operand.
4473         * config/mips/mips.c (macc_msac_operand): New function.
4474         * config/mips/mips.md (*msac): Move after *macc.
4475         (*msac2): New.  Generalize macc-related peepholes so that they apply
4476         to msac too.
4477
4478 2004-04-17  Paolo Bonzini  <bonzini@gnu.org>
4479
4480         * opts.c (decode_options): Do not enable flag_rename_registers
4481         and flag_web at -O3.
4482         * toplev.c (flag_rename_registers): Initialize
4483         flag_rename_registers and flag_web to
4484         AUTODETECT_FLAG_VAR_TRACKING.
4485         (default_debug_hooks): New global.
4486         (process_options): Initialize default_debug_hooks.  Warn if
4487         -fvar-tracking specified but not supported by the current
4488         debug format.  Do not run var tracking at -O0 or if not
4489         supported by the current debug format, even if
4490         -fvar-tracking was given.  If -fno-rename-registers
4491         is not specified, always run register renaming if var
4492         tracking is supported by the default debugging information
4493         format for the target, and we are at -O1 or higher; similarly
4494         for -fweb, but only at -O2 or higher.
4495         * doc/invoke.texi (Optimize Options): Document this.
4496
4497 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
4498
4499         * configure.ac (gcc_cv_ld_as_needed): Use AC_CACHE_CHECK.
4500         * configure: Regenerate.
4501
4502 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
4503
4504         * gcc.c (used_arg): Check whether an option has been removed.
4505
4506 2004-04-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4507
4508         * config.gcc (i[34567]86-*-solaris2*): Default to DWARF-2
4509         debugging on Solaris 7 and up.
4510
4511 2004-04-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4512
4513         * doc/install.texi (Specific, mips-sgi-irix5): Reflect working
4514         IRIX 5 port.
4515         Remove -save-temps workaround, handled automatically.
4516         Require GNU binutils 2.15 for debugging.
4517         Remove SGI make warnings since GNU make is now required.
4518         (Specific, mips-sgi-irix6): Some markup fixes.
4519         Describe MIPSpro C problems and workarounds.
4520         Mention working O32 ABI support.
4521         Recommend GNU as 2.15 for O32 with debugging.
4522         Remove description of fixed structure pass/return bug.
4523
4524 2004-04-16  DJ Delorie  <dj@redhat.com>
4525
4526         * sdbout.c (sdbout_one_type): Use TYPE_VALUES for enums, not
4527         TYPE_FIELDS.
4528         (sdbout_finish): Don't free deferred_global_decls; it's GC'd.
4529
4530 2004-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4531
4532         * pa.md: Remove unnecessary declarations for asm_out_file.
4533
4534         * pa64-regs.h (DBX_REGISTER_NUMBER): Simplify and correct mapping of
4535         SAR register.  Fix comment.
4536         (ADDITIONAL_REGISTER_NAMES): Correct register number of SAR register
4537         (%cr11).
4538
4539         * pa64-hpux.h (LIB_SPEC): Fix library specification used with GNU ld.
4540
4541 2004-04-16  Nick Clifton  <nickc@redhat.com>
4542
4543         * config/arm/arm.c (arm_override_options): Revert previous patch.
4544         * config/arm/t-xscale-elf: Disable iwmmxt multilibs until they can
4545         be safely built.
4546
4547 2004-04-16  Kazuhiro Inaoka <inaoka dot kazuhiro at renesas dot com>
4548
4549         * config/m32r/m32r.h (BIG_ENDIAN_BIT): Deleted to fix endian
4550         bug.
4551         (TARGET_LITTLE_ENDIAN, TARGET_BIG_ENDIAN,
4552         TARGET_DEFAULT): Changed. Ditto.
4553         (LITTLE_ENDIAN_BIT, TARGET_CPU_DEFAULT,
4554         TARGET_ENDIAN_DEFAULT): Added. Ditto.
4555         * config/m32r/little.h (TARGET_LITTLE_ENDIAN): Deleted.
4556         (TARGET_ENDIAN_DEFAULT): Added.
4557
4558 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4559
4560         * builtins.def (BUILT_IN_ISDIGIT, BUILT_IN_ISXDIGIT): Mark with
4561         ATTR_CONST_NOTHROW_LIST.
4562
4563 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4564
4565         PR/middle-end 14915
4566         * builtins.c (expand_builtin_signbit): Test BYTES_BIG_ENDIAN, not
4567         BITS_BIG_ENDIAN.
4568
4569 2004-04-15  Pat Haugen  <pthaugen@us.ibm.com>
4570
4571         * ra-debug.c (ra_print_rtx): Add break's to case legs.
4572
4573 2004-04-14  James E Wilson  <wilson@specifixinc.com>
4574
4575         * Makefile.in (fixinc.sh): Set WARN_CFLAGS to empty string.
4576
4577 2004-04-14  Nathanael Nerode  <neroden@gcc.gnu.org>
4578
4579         * libada-mk.in: New file.
4580         * configure.ac: Create libada-mk from libada-mk.in.
4581         * configure: Regenerate.
4582
4583 2004-04-14  Uros Bizjak  <uros@kss-loka.si>
4584
4585         * optabs.h (enum optab_index): Add new OTI_logb and OTI_ilogb.
4586         (logb_optab, ilogb_optab): Define corresponding macros.
4587         * optabs.c (init_optabs): Initialize logb_optab and ilogb_optab.
4588         * genopinit.c (optabs): Implement logb_optab and ilogb_optab
4589         using logb?f2 and ilogb?i2 patterns.
4590         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOGB{,F,L}
4591         using logb_optab, and BUILT_IN_ILOGB{,F,L} using ilogb_optab.
4592         (expand_builtin): Expand BUILT_IN_LOGB{,F,L} and BUILT_IN_ILOGB{,F,L}
4593         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
4594
4595         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_XTRACT_FRACT
4596         and UNSPEC_XTRACT_EXP.
4597
4598         * config/i386/i386.md (*fxtractdf3, *fxtractsf3, *fxtractxf3): New
4599         patterns to implement fxtract x87 instruction.
4600         (logbdf2, logbsf2, logbxf2, ilogbsi2): New expanders to implement
4601         logb, logbf, logbl, ilogb, ilogbf and ilogbl built-ins as inline x87
4602         intrinsics.
4603         (UNSPEC_XTRACT_FRACT, UNSPEC_XTRACT_EXP): New unspecs to represent
4604         x87's fxtract insn.
4605
4606 2004-04-14  Eric Christopher  <echristo@redhat.com>
4607
4608         * config/mips/t-elf: Enable multilibs by default.
4609
4610 2004-04-14  Andreas Tobler  <a.tobler@schweiz.ch>
4611
4612         * bb-reorder.c (fix_crossing_conditional_branches): Adjust the
4613         previous fix to check HAVE_return at runtime too.
4614
4615 2004-04-14  Nick Clifton  <nickc@redhat.com>
4616
4617         * config/arm/arm.c (arm_override_options): If the user has not
4618         specified an ABI, then default to AAPCS for the iWMMXt processor.
4619         * config/arm/t-xscale-elf: Remove redundant multilib specifications.
4620         * config/arm/t-xscale-coff: Likewise.
4621
4622 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4623
4624         * builtins.c (fold_builtin_isdigit): New.
4625         (fold_builtin): Handle BUILT_IN_ISDIGIT.
4626         * defaults.h: Add TARGET_DIGIT0 and sort.
4627         * doc/tm.texi: Add TARGET_BS and TARGET_DIGIT0.
4628
4629 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4630
4631         * builtins.c (fold_builtin_cabs, fold_builtin): Use
4632         `mathfn_built_in' to determine the new builtin.
4633         * fold-const.c (fold): Likewise.
4634
4635 2004-04-14  Richard Sandiford  <rsandifo@redhat.com>
4636
4637         * doc/invoke.texi: Rename MIPS's -mfix-vr4122-bugs to -mfix-vr4120.
4638         * config/mips/mips.h (MASK_FIX_VR4120): Renamed from MASK_FIX_VR4122.
4639         (TARGET_FIX_VR4120): Likewise TARGET_FIX_VR4122.
4640         (TARGET_SWITCHES): Replace -mfix-vr4122-bugs with -mfix-vr4120.
4641         (ASM_SPEC): Update accordingly.
4642         * config/mips/mips.c: Update after above renaming.
4643         * config/mips/mips.md, config/mips/t-vr, config/mips/vr.h: Likewise.
4644         * config/mips/vr4120-div.S: Renamed from vr4122-div.S.
4645
4646 2004-04-13  James E Wilson  <wilson@specifixinc.com>
4647
4648         * c-opt.c (c_common_post_options): If this_input_filename is NULL,
4649         increment errorcount and return false instead of true.
4650
4651 2004-04-13  Uros Bizjak  <uros@kss-loka.si>:
4652
4653         * optabs.c (expand_twoval_unop): Reorder function arguments.
4654         * builtins.c (expand_builtin_mathfn_3): Update calls to
4655         expand_twoval_unop.
4656
4657         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_TAN_ONE
4658         and UNSPEC_TAN_TAN. Add missing comment.
4659
4660         * config/i386/i386.md (*tandf3_1, *tansf3_1, *tanxf3_1): New
4661         patterns to implement fptan x87 instruction.
4662         (tandf2, tansf2, tanxf2): New expanders to implement tan, tanf
4663         and tanl built-ins as inline x87 intrinsics. Define corresponding
4664         peephole2 optimizers for 'fptan; fstp %st(0); fld1' sequence.
4665         (UNSPEC_TAN_ONE, UNSPEC_TAN_TAN): New unspecs to represent
4666         x87's fptan insn.
4667
4668 2004-03-13  Richard Henderson  <rth@redhat.com>
4669
4670         * bb-reorder.c (fix_crossing_unconditional_branches): Use Pmode
4671         for LABEL_REFs.
4672
4673         * defaults.h (HOT_TEXT_SECTION_NAME): Add leading dot.
4674         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Likewise.
4675         * doc/invoke.texi: Update to match.
4676
4677         * varasm.c (unlikely_text_section): Use assemble_align instead of
4678         ASM_OUTPUT_ALIGN.  Use it in the correct place with an approximately
4679         correct alignment argument.
4680
4681 2004-04-13  Ulrich Weigand  <uweigand@de.ibm.com>
4682
4683         * reload1.c (emit_reload_insns): Set reg_has_output_reload to one
4684         after setting reg_last_reload_reg for optional output reloads.
4685
4686 2004-04-12  Fariborz Jahanian <fjahanian@apple.com>
4687
4688         * config/rs6000/altivec.h (vec_mergeh, vec_mergel):
4689         Definition of these two macros are corrected by adding
4690         matchine right paren.
4691
4692 2004-04-12  Jonathan Larmour  <jifl@eCosCentric.com>
4693
4694         * fix-header.c: kill(), putenv() and tzset() are POSIX not ANSI.
4695
4696 2004-04-12  Roger Sayle  <roger@eyesopen.com>
4697
4698         * config/i386/i386.c (output_387_reg_move): New function.
4699         * config/i386/i386-protos.h (output_387_reg_move): Prototype here.
4700         * config/i386/i386.md (*movsf_1, *movsf1_nointerunit,
4701         *movdf_nointeger, *movdf_integer, *movxf_nointeger, *movxf_integer,
4702         *extendsfdf2_1,  *extendsfxf2_1, *extenddfxf2_1, truncdfsf2_noop,
4703         truncxfsf2_noop, truncxfdf2_noop): Call output_387_reg_move.
4704
4705 2004-04-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4706
4707         * c-decl.c (finish_decl): Make a decl_stmt for a variable-sized
4708         TYPE_DECL.
4709         * c-semantics.c (genrtl_decl_stmt): Handle TYPE_DECL.
4710         * stmt.c (expand_decl): Remove redundant expansion of TYPE_DOMAIN.
4711         * stor-layout.c (variable_size): Don't check for MINUS_EXPR.
4712         Use skip_simple_arithmetic to find SAVE_EXPR.
4713         (force_type_save_exprs, force_type_save_exprs_1): New functions.
4714         * tree-inline.c (remap_type, case POINTER_TYPE, case REFERENCE_TYPE):
4715         Properly chain multiple pointers.
4716         (copy_tree_r): Copy a TYPE_DECL.
4717         * tree.c (variably_modified_type_p): Add some missing tests and
4718         make some other minor changes.
4719         * tree.h (force_type_save_exprs): New declaration.
4720
4721 2004-04-12  Roger Sayle  <roger@eyesopen.com>
4722
4723         * simplify-rtx.c (simplify_binary_operation) <UDIV, DIV, UMOD, MOD>:
4724         Remove fall throughs.  Convert 0/x and 0%x into x&0 when x has
4725         side-effects.  Don't convert x/1.0 into x if we honor signaling NaNs.
4726         Convert x/-1.0 into -x if we don't honor signaling NaNs.  Convert
4727         x/-1 into -x.  Optimize x%1 into x&0 if x has side-effects.  Optimize
4728         x%-1 into 0 (or x&0 if x has side-effects).
4729
4730 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
4731
4732         * config/rs6000/rs6000.md: Document why a pattern is not
4733         available.
4734
4735         * config/rs6000/rs6000.c (rs6000_emit_cmove): Disable comparisons
4736         of floats on the E500.
4737         (branch_positive_comparison_operator): Do not allow NE even on the
4738         E500.
4739
4740 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
4741
4742         * config/rs6000/rs6000.c (rs6000_assemble_integer): Change
4743         in_text_unlikely_section to in_unlikely_text_section.
4744
4745 2004-04-11  Roger Sayle  <roger@eyesopen.com>
4746
4747         * fold-const.c (fold_binary_op_with_conditional_arg):  Tweak
4748         calling convention to allow a NULL_TREE to be returned.  Factor
4749         sanity checks from callers, return NULL_TREE when appropriate.
4750         (fold): Handle COMPOUND_EXPR operands of binary expressions
4751         before COND_EXPR operands.  Use reorder_operands_p(a,b) to check
4752         whether a op (b,c) can be rewritten as (b, a op c).  Simplify
4753         calls to fold_binary_op_with_conditional_arg.
4754
4755 2004-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4756
4757         * config/mips/iris5.h (current_section_flags):  Add
4758         in_unlikely_executed_text and default case.
4759
4760 2004-04-11  Andreas Tobler  <a.tobler@schweiz.ch>
4761
4762         * bb-reorder.c (fix_crossing_conditional_branches): Fix bootstrap
4763         failure on solaris. Place ifdef HAVE_return around gen_ret call.
4764         * cfgrtl.c (force_nonfallthru_and_redirect): Remove ifdef
4765         HAVE_return and place it around the place where it is needed.
4766
4767 2004-04-11  Andrew Pinski  <pinskia@physics.uc.edu>
4768
4769         * varasm.c (text_section): Use TEXT_SECTION_ASM_OP and
4770         ASM_OUTPUT_ALIGN instead of SECTION_FORMAT_STRING
4771         and NORMAL_TEXT_SECTION_NAME.
4772         (unlikely_text_section): Check targetm.have_named_sections
4773         instead of TARGET_ASM_NAMED_SECTION and use TEXT_SECTION_ASM_OP
4774         instead of SECTION_FORMAT_STRING.
4775         * config/mips/iris5.h (current_section_name): Add
4776         in_unlikely_executed_text case and move the abort into the switch.
4777         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME): Remove.
4778         (NORMAL_TEXT_SECTION_NAME): Remove.
4779         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
4780         (SECTION_FORMAT_STRING): Remove.
4781         * defaults.h (SECTION_FORMAT_STRING): Remove.
4782         * tm.texi (NORMAL_TEXT_SECTION_NAME): Remove.
4783         (SECTION_FORMAT_STRING): Remove.
4784
4785 2004-04-10  Joseph S. Myers  <jsm@polyomino.org.uk>
4786
4787         * c-typeck.c (common_type): Prefer long long to long when same
4788         precision.
4789
4790 2004-04-09  Zack Weinberg  <zack@codesourcery.com>
4791
4792         PR 14887
4793         * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Look only at
4794         mode argument.
4795         * config/ia64/ia64.c (ia64_hpux_file_end): Check
4796         TREE_SYMBOL_REFERENCED on DECL_ASSEMBLER_NAME, not DECL_NAME.
4797
4798 2004-04-09  Roger Sayle  <roger@eyesopen.com>
4799
4800         * simplify-rtx.c (mode_signbit_p): New function to check whether
4801         an RTX is an immediate constant that represents the most significant
4802         bit of a given machine mode.
4803         (simplify_unary_operation) <NOT>: Optimize ~(X+C) as X ^ ~C, where
4804         C is the sign bit.
4805         (simplify_binary_operation) <PLUS>: Optimize (X^C1) + C2 as X^(C1^C2)
4806         when C2 is the sign bit.
4807         (simplify_binary_operation) <XOR>: Canonicalize X^C as X+C when C
4808         is the sign bit.  Optimize (X+C1) ^ C2 as X^(C1^C2) when C1 is the
4809         sign bit.
4810
4811 2004-04-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4812
4813         * builtins.c (mathfn_built_in): Check TYPE_MAIN_VARIANT, not
4814         TYPE_MODE.
4815
4816 2004-04-09  Andrew Pinski  <pinskia@physics.uc.edu>
4817
4818         * c-common.c (handle_noreturn_attribute): Use TYPE_READONLY instead
4819         of TREE_READONLY for types.
4820
4821 2004-04-09  Caroline Tice  <ctice@apple.com>
4822
4823         * basic-block.h (struct edge_def):  Add new field, crossing_edge.
4824         (struct basic_block_def):  Add new field, partition.
4825         (UNPARTITIONED, HOT_PARTITION, COLD_PARTITION):  New constant macro
4826         definitions.
4827         (partition_hot_cold_basic_blocks): Add extern function
4828         declaration.
4829         * bb-reorder.c (function.h, obstack.h, expr.h, regs.h):  Add four new
4830         include statements.
4831         (N_ROUNDS): Increase the maximum number of rounds by 1.
4832         (branch_threshold): Add array value for new round.
4833         (exec_threshold): Add array value for new round.
4834         (push_to_next_round_p): New function.
4835         (add_unlikely_executed_notes): New function.
4836         (find_rarely_executed_basic_blocks_and_crossing_edges): New function.
4837         (mark_bb_for_unlikely_executed_section): New function.
4838         (add_labels_and_missing_jumps): New function.
4839         (add_reg_crossing_jump_notes): New function.
4840         (fix_up_fall_thru_edges): New function.
4841         (find_jump_block): New function.
4842         (fix_crossing_conditional_branches): New function.
4843         (fix_crossing_unconditional_branches): New function.
4844         (fix_edges_for_rarely_executed_code): New function.
4845         (partition_hot_cold_basic_blocks): New function.
4846         (find_traces):  Add an extra round for partitioning hot/cold
4847         basic blocks.
4848         (find_traces_1_round): Add a parameter.  Modify to push all cold blocks,
4849         and only cold blocks, into the last (extra) round of collecting traces.
4850         (better_edge_p): Add a parameter.  Modify to favor non-crossing edges
4851         over crossing edges.
4852         (bb_to_key):  Add code to correctly identify cold blocks when
4853         doing partitioning.
4854         (connect_traces): Modify to connect all the non-cold traces first, then
4855         go back and connect up all the cold traces.
4856         (reorder_basic_blocks):  Add call to add_unlikely_executed_notes.
4857         * cfg.c (entry_exit_blocks): Add initialization for partition field in
4858         entry and exit blocks.
4859         * cfgbuild.c (make_edges): Update current_function_has_computed_jump
4860         if we are doing hot/cold partitioning.
4861         * cfgcleanup.c (cfglayout.h): Add new include statement.
4862         (try_simplify_condjump): Modify to not attempt on blocks with jumps
4863         that cross section boundaries.
4864         (try_forward_edges): Likewise.
4865         (merge_blocks_move_predecessor_nojumps): Likewise.
4866         (merge_blocks_move_successor_nojumps): Likewise.
4867         (merge_blocks_move): Likewise.
4868         (try_crossjump_to_edge): Modify to not attempt after we have done
4869         the block partitioning.
4870         (try_crossjump_bb): Modify to not attempt on blocks with jumps that
4871         cross section boundaries.
4872         (try_optimize_cfg): Likewise.
4873         * cfghooks.c (tidy_fallthru_edges): Modify to not remove indirect
4874         jumps that cross section boundaries.
4875         * cfglayout.c (flags.h): Add new include statement.
4876         (update_unlikely_executed_notes):  New function.
4877         (fixup_reorder_chain):  Add code so when a new jumping basic block is
4878         added, it's UNLIKELY_EXECUTED_CODE and REG_CROSSING_JUMP notes are
4879         updated appropriately.
4880         (duplicate_insn_chain):  Add code to duplicate the new NOTE insn
4881         introduced by this optimization.
4882         * cfglayout.h (scan_ahead_for_unlikely_executed_note):  Add new
4883         extern function declaration.
4884         * cfgrtl.c (can_delete_note_p):  Add NOTE_INSN_UNLIKELY_EXECUTED_CODE to
4885         list of notes that can be deleted.
4886         (create_basic_block_structure):  Add initialization for partition field.
4887         (rtl_can_merge_blocks):  Modify to test blocks for jumps that cross
4888         section boundaries.
4889         (try_redirect_by_replacing_jump):  Modify to not attempt on jumps that
4890         cross section boundaries.
4891         (commit_one_edge_insertion): Add code so newly created basic block
4892         ends up in correct (hot or cold) section.  Modify to disallow
4893         insertions before NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
4894         (rtl_verify_flow_info_1):  Add code to verify that no fall_thru edge
4895         crosses section boundaries.
4896         (cfg_layout_can_merge_blocks_p): Modify to test blocks for jumps that
4897         cross section boundaries.
4898         (force_nonfallthru_and_redirect): Modify to make sure new basic block
4899         ends up in correct section, with correct notes attached.
4900         * common.opt (freorder-blocks-and-partition):  Add new flag for this
4901         optimization.
4902         * dbxout.c (dbx_function_end):  Add code to make sure scope labels at
4903         the end of functions are written into the correct (hot or cold)
4904         section.
4905         (dbx_source_file): Add code so writing debug file information
4906         doesn't incorrectly change sections.
4907         * defaults.h (NORMAL_TEXT_SECTION_NAME): New constant macro, for use
4908         in partitioning hot/cold basic blocks into separate sections.
4909         (SECTION_FORMAT_STRING): New constant macro, for linux/i386 hot/cold
4910         section partitioning.
4911         (HAS_LONG_COND_BRANCH): New constant macro, indicating whether or not
4912         conditional branches can span all of memory.
4913         (HAS_LONG_UNCOND_BRANCH): New constant macro, indicationg whether or not
4914         unconditional branches can span all of memory.
4915         * final.c (scan_ahead_for_unlikely_executed_note):  New function.
4916         (final_scan_insn):  Add code to check for NOTE instruction indicating
4917         whether basic block belongs in hot or cold section, and to make sure
4918         the current basic block is being written to the appropriate section.
4919         Also added code to ensure that jump table basic blocks end up in the
4920         correct section.
4921         * flags.h (flag_reorder_blocks_and_partition):  New flag.
4922         * ifcvt.c (find_if_case_1):  Modify to not attempt if conversion if
4923         one of the branches has a jump that crosses between sections.
4924         (find_if_case_2): Likewise.
4925         (ifcvt): Modify to not attempt to mark loop exit edges after
4926         hot/cold partitioning has occurred.
4927         * opts.c (decode_options): Code to handle new flag,
4928         flag_reorder_blocks_and_partition; also to turn it off if
4929         flag_exceptions is on.
4930         (common_handle_option): Code to handle new flag,
4931         flag_reorder_blocks_and_partition.
4932         * output.h (unlikely_text_section): New extern function declaration.
4933         (in_unlikely_text_section): New extern function declaration.
4934         * passes.c (rest_of_handle_stack_regs):  Add
4935         flag_reorder_blocks_and_partition as an 'or' condition for calling
4936         reorder_basic_blocks.
4937         (rest_of_handle_reorder_blocks):  Add flag_reorder_blocks_and_partition
4938         as an 'or' condition for calling reorder_basic_blocks.
4939         (rest_of_compilation):  Add call to partition_hot_cold_basic_blocks.
4940         * print-rtl.c (print_rtx): Add code for handling new note,
4941         NOTE_INSN_UNLIKELY_EXECUTED_CODE
4942         * rtl.c  (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note insn (see below).
4943         (REG_CROSSING_JUMP): New kind of reg_note, to mark jumps that
4944         cross between section boundaries.
4945         * rtl.h (NOTE_INSN_UNLIKELY_EXECUTED_CODE):  New note instruction,
4946         indicating the basic block containing it belongs in the cold section.
4947         (REG_CROSSING_JUMP): New type of reg_note, to mark jumps that cross
4948         between hot and cold sections.
4949         * toplev.c (flag_reorder_blocks_and_partition):  Add code to
4950         initialize this flag, and to tie it to the command-line option
4951         freorder-blocks-and-partition.
4952         * varasm.c (cfglayout.h):  Add new include statement.
4953         (unlikely_section_label_printed):  New global variable, used for
4954         determining when to output section name labels for cold sections.
4955         (in_section):  Add in_unlikely_executed_text to enum data structure.
4956         (text_section):  Modify code to use SECTION_FORMAT_STRING and
4957         NORMAL_TEXT_SECTION_NAME macros.
4958         (unlikely_text_section):  New function.
4959         (in_unlikely_text_section):  New function.
4960         (function_section):  Add code to make sure beginning of function is
4961         written into correct section (hot or cold).
4962         (assemble_start_function):  Add code to make sure stuff is written to
4963         the correct section.
4964         (assemble_zeros):  Add in_unlikely_text_section as an 'or' condition
4965         to an if statement that was checking 'in_text_section'.
4966         (assemble_variable):  Add 'in_unlikely_text_section' as an 'or'
4967         condition to an if statement that was checking 'in_text_section'.
4968         (default_section_type_flags_1):  Add check: if in cold section
4969         flags = SECTION_CODE.
4970         * config/darwin.c (darwin_asm_named_section):  Modify to use
4971         SECTION_FORMAT_STRING if we are partitioning hot/cold blocks.
4972         * config/i386/i386.h (HAS_LONG_COND_BRANCH): Defined this macro
4973         specifically for the i386.
4974         (HAS_LONG_UNCOND_BRANCH):  Defined this macro specifically for the i386.
4975         * config/rs6000/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Change
4976         text string to something more informative.
4977         (NORMAL_TEXT_SECTION_NAME): Add new definition.
4978         (SECTION_FORMAT_STRING):  Add new definition.
4979         * config/rs6000/rs6000.c (rs6000_assemble_integer):  Add
4980         '!in_unlikely_text_section' as an 'and' condition to an if statement
4981         that was already checking '!in_text_section'.
4982         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME,NORMAL_TEXT_SECTION_NAME,
4983         UNLIKELY_EXECUTED_TEXT_SECTION_NAME,SECTION_FORMAT_STRING): Make
4984         sure these are properly defined for linux on ppc.
4985         * doc/invoke.texi  (freorder-blocks-and-partition): Add documentation
4986         for this new flag.
4987         * doc/rtl.texi (REG_CROSSING_JUMP):  Add documentation for new
4988         reg_note.
4989         * doc/tm.texi (NORMAL_TEXT_SECTION_NAME, SECTION_FORMAT_STRING,
4990         HAS_LONG_COND_BRANCH, HAS_LONG_UNCOND_BRANCH): Add documentation for
4991         these new macros.
4992
4993 2004-04-08  Roger Sayle  <roger@eyesopen.com>
4994
4995         * function.c (gen_mem_addressof): When changing the RTX from a REG
4996         to a MEM, clear MEM_VOLATILE_P which was formerly REG_USERVAR_P.
4997
4998 2004-04-08  Roger Sayle  <roger@eyesopen.com>
4999
5000         PR target/14888
5001         * config/i386/i386.md (truncdfsf2_noop, truncxfsf2_noop,
5002         truncxfdf2_noop): Provide dummy "fmov" implementations.
5003
5004 2004-04-08  Ian Lance Taylor  <ian@wasabisystems.com>
5005
5006         * gcc.c (default_compilers): Add missing initializers.
5007
5008         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
5009         Return 1 if file was successfully mapped.
5010
5011 2004-04-08  Geoffrey Keating  <geoffk@apple.com>
5012
5013         PR pch/13419
5014         PR pch/14137
5015         Radar #: 3315288
5016         * doc/invoke.texi (Precompiled Headers): Suggest -o
5017         to put an output file in a particular place.  Be more detailed
5018         about which options affect PCH validity and which options
5019         might not work.
5020         * c-pch.c (pch_matching): New.
5021         (MATCH_SIZE): New.
5022         (struct c_pch_validity): New field 'match'.
5023         (pch_init): Handle pch_matching.
5024         (c_common_valid_pch): Check pch_matching.
5025
5026         * explow.c: Fix typo defining default of PROMOTE_FUNCTION_MODE.
5027
5028 2004-04-08  Mark Mitchell  <mark@codesourcery.com>
5029
5030         * doc/invoke.texi (Precompiled Headers): Warn about known
5031         problems.
5032
5033 2004-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
5034
5035         PR c++/14808
5036         * defaults.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): New macro. Default
5037         to 1 if ASM_OUTPUT_DEF is defined.
5038         * doc/tm.texi (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document.
5039         * config/i386/cygming.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): Define.
5040         Set to non-zero iff not a one_only decl.
5041
5042 2004-04-08  Paul Brook  <paul@codesourcery.com>
5043
5044         * arm.h (CLASS_LIKELY_SPILLED_P): Define.
5045
5046 2004-04-08  Paul Brook  <paul@codesourcery.com>
5047
5048         * explow.c (promote_mode): Use PROMOTE_FUNCTION_MODE instead of
5049         PROMOTE_FOR_CALL_ONLY.
5050         * config/arm/arm-protos.h (arm_function_value): Declare.
5051         * config/arm/arm.h (TARGET_PROMOTE_FUNCTION_ARGS): Define.
5052         (TARGET_PROMOTE_PROTOTYPES): Return false.
5053         (arm_function_value): New function.
5054         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Define.
5055         (FUNCTION_VALUE): Call arm_function_value.
5056         * config/cris/cris.h (PROMOTE_MODE): Rename ...
5057         (PROMOTE_FUNCTION_MODE): ... to this.
5058         (PROMOTE_FOR_CALL_ONLY): Remove.
5059         * config/mmix/mmix.h: Likewise.
5060         * config/s390/s390.h: Likewise.
5061         * config/sparc/sparc.h: Likewise.
5062         * config/sparc/sparc.c: Update comments about PROMOTE_MODE.
5063         * doc/tm.texi (PROMOTE_FUNCTION_MODE): Document.
5064         (TARGET_PROMOTE_FUNCTION_MODE, TARGET_PROMOTE_FUNCTION_RETURN): Update.
5065         (PROMOTE_FOR_CALL_ONLY): Remove.
5066
5067 2004-04-08  Joel Sherrill <joel@oarcorp.com>
5068
5069         PR ada/14538
5070         * ada/5rosinte.adb: Remove fake mprotect() body.
5071         * ada/5rosinte.ads: Add SA_SIGINFO.
5072         * ada/5rtpopsp.adb: Rewrite to use new interface.
5073         * ada/init.c: Reorder so the simple single OS conditional __rtems__
5074         is tested before more complex ones which mix UNIX and embedded
5075         systems in the conditional.
5076
5077 2004-04-08  Joel Sherrill  <joel@oarcorp.com>
5078
5079         PR ada/14665
5080         * ada/osint.adb (Find_Program_Name): Rework to properly handle
5081         filenames which end in .exe or have versioning suffixes like VMS.
5082
5083 2004-04-08  Andrew Pinski  <pinskia@physics.uc.edu>
5084
5085         PR target/10129
5086         * config/darwin.c (darwin_encode_section_info): When the decl has
5087         a DECL_INITIAL, it is only defined also when it is not a common.
5088
5089 2004-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5090
5091         * builtins.c (fold_builtin_isascii, fold_builtin_toascii): New.
5092         (fold_builtin): Handle BUILT_IN_ISASCII and BUILT_IN_TOASCII.
5093
5094 2004-04-07  H.J. Lu  <hongjiu.lu@intel.com>
5095
5096         * config/ia64/ia64.c (ia64_encode_section_info): Don't prod
5097         global register variables.
5098
5099 2004-04-07  Joseph S. Myers  <jsm@polyomino.org.uk>
5100
5101         * fixinc/inclhack.def (rpc_xdr_lvalue_cast_a,
5102         rpc_xdr_lvalue_cast_b): New fixes.
5103         * fixinc/fixincl.x: Regenerate.
5104         * fixinc/tests/base/rpc/xdr.h: Add new tests.
5105
5106 2004-04-07  David Edelsohn  <edelsohn@gnu.org>
5107
5108         * config/rs6000/rs6000.c (processor_target_table): Add MASK_MFCRF
5109         to power4 and power5 entries.
5110
5111 2004-04-06  Geoffrey Keating  <geoffk@apple.com>
5112
5113         * c-common.h (pending_lang_change): Mark for PCH.
5114
5115 2004-04-07  Caroline Tice  <ctice@apple.com>
5116
5117         * gcc.c (main): Move 'break' in main loops (on an error)
5118         to wait until error processing has occurred.
5119
5120 2004-04-06  Nathanael Nerode  <neroden@gcc.gnu.org>
5121
5122         * config.gcc: Stop changing enable_threads midstream.
5123         Replace uses of enable_threads_flag with enable_threads.
5124         * configure.ac: Replace uses of enable_threads_flag with
5125         enable_threads.  Improve autoconf quotation in one place.
5126         * configure: Regenerate.
5127
5128 2004-04-06  Uros Bizjak  <uros@kss-loka.si>
5129
5130         * builtins.c: Implement support for sincos function.
5131         (expand_builtin_mathfn): Remove BUILT_IN_SIN{,F,L} and
5132         BUILT_IN_COS{,F,L}.
5133         (expand_builtin_mathfn_3): New function.
5134         (expand_builtin): Expand BUILT_IN_SIN{,F,L} and
5135         BUILT_IN_COS{,F,L} using expand_builtin_mathfn_3 if
5136         flag_unsafe_math_optimization is set.
5137
5138         * optabs.h (enum optab_index): Add new OTI_sincos.
5139         (sincos_optab): Define corresponding macro.
5140
5141         * optabs.c (init_optabs): Initialize sincos_optab.
5142         (expand_twoval_unop): New function.
5143
5144         * genopinit.c (optabs): Implement sincos_optab using sincos?f3
5145         patterns.
5146
5147         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_SINCOS_COS
5148         and UNSPEC_SINCOS_SIN.
5149
5150         * config/i386/i386.md (sincosdf3, sincossf3, *sincosextendsfdf3,
5151         sincosxf3): New patterns to implement sincos, sincosf and sincosl
5152         built-ins as inline x87 intrinsics. Define splits for
5153         sindf2, sinsf2, *sinextendsfdf2, sinxf2, cosdf2,
5154         cossf2, *cosextendsfdf2 and cosxf2 patterns from corresponding
5155         sincos patterns.
5156         (sindf2, sinsf2, sinxf2): Rename to *sindf2, *sinsf2, *sinxf2.
5157         (cosdf2, cossf2, cosxf2): Rename to *cosdf2, *cossf2, *cosxf2.
5158
5159         (UNSPEC_SINCOS_SIN, UNSPEC_SINCOS_COS): New unspecs to represent
5160         x87's fsincos insn.
5161
5162 2004-04-06  Devang Patel  <dpatel@apple.com>
5163
5164         PR 14467
5165         * config/darwin.h (LINK_COMMAND_SPEC): Use c++filt instead of c++filt3.
5166
5167 2004-04-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5168
5169         * doc/install.texi: Update HP-UX 11 installation procedure.
5170
5171 2004-04-06  Paul Brook  <paul@codesourcery.com>
5172
5173         * doc/sourcebuild.texi: Remove obsolete contraint on testcases.
5174
5175 2004-04-05  Kaz Kojima  <kkojima@gcc.gnu.org>
5176
5177         * config/sh/sh.c (prepare_move_operands): Use emit_call_insn
5178         when the TLS address is generated by a function call.
5179         * config/sh/sh.md (tls_global_dynamic): Use a call expression.
5180         (tls_local_dynamic): Likewise.
5181
5182 2004-04-05  Andrew Pinski  <pinskia@physics.uc.edu>
5183
5184         * tree.c (reconstruct_complex_type): Use TYPE_READONLY
5185         and TYPE_VOLATILE.
5186
5187 2004-04-05  Caroline Tice  <ctice@apple.com>
5188
5189         * gcc.c (combine_flag): New global variable, for new driver option.
5190         (struct compiler): Add two new fields, to be used when
5191         combining multiple input files in a single pass (IMA).
5192         (default_compilers):  Add values for the new fields to all
5193         compiler entries. Modify the "@c" compiler entry for doing IMA
5194         properly with "-save-temps" and the "combine" flag.
5195         (option_map):  Add new driver option, "--combine", to tell driver
5196         to pass multiple input files to compiler at one time.
5197         (have_o_argbuf_index): New global variable.
5198         (store_arg): Modify to assign value to have_o_argbuf_index.
5199         (struct infile):  Add three new fields, to help with IMA.
5200         (display_help): Add help for new "combine" option.
5201         (process_command): Remove local variable have_o; add code to check
5202         for new "combine" option; remove assignment to combine_inputs.
5203         (do_spec_1):  Modify to deal with IMA better.
5204         (main): Make variable 'lang_n_infiles' local to entire function
5205         rather than to a single block.  Use flag combine_flag to
5206         determine whether to do IMA or not; Modify loop initializing
5207         infiles to deal properly with linker files.
5208         Add code for doing preprocessing in presence of
5209         IMA with "-save-temps" flag.  Modify "main" loop to handle
5210         multiple input files, in multiple languages, with or without
5211         preprocessing,  gracefully.
5212         * toplev.c (set_src_pwd): Modify to not complain if attempting to
5213         re-set it to same directory it's previously been set to (avoid
5214         irritating, meaningless warning messages when doing IMA with
5215         save-temps).
5216         * doc/invoke.texi: Add "-combine" to list of Overall Options;
5217         remove documentation about IMA that is no longer accurate; Add
5218         documentation explaining what "-combine" does.
5219         * ada/lang-specs.h: Add initialization values for new fields in
5220         "struct compiler".
5221         * cp/lang-specs.h: Likewise.
5222         * f/lang-specs.h: Likewise.
5223         * java/lang-specs.h: Likewise.
5224         * objc/lang-specs.h: Likewise.
5225         * treelang/lang-specs.h: Likewise.
5226
5227 2004-04-05  David Edelsohn
5228
5229         * config/rs6000/rs6000.c (VTABLE_NAME_P): Add _ZTI to special
5230         symbol handling.
5231
5232 2004-04-05  Jakub Jelinek  <jakub@redhat.com>
5233             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5234
5235         PR optimization/13424 (hppa), bootstrap/14462, c/14828
5236         * pa.md: Use replace_equiv_address to retain the attributes of the
5237         memory operands used in the split and peephole2 patterns for optimizing
5238         the pre-reload movstrsi, movstrdi, clrstrsi and clrstrdi patterns.
5239
5240 2004-04-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5241
5242         * c-decl.c (build_compound_literal): Use TYPE_READONLY.
5243         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
5244         * objc/objc-act.c (adorn_decl, gen_declspecs): Likewise.
5245         * c-typeck.c (decl_constant_value): Don't access DECL_INITIAL of a
5246         PARM_DECL.
5247         * calls.c (flags_from_decl_or_type): Use TYPE_READONLY and do so only
5248         for a type.
5249         * print-tree.c (print_node): Properly handle side-effects, readonly,
5250         and constant flags.
5251         * tree.c (build1_stat, build_expr_wfl): Only look at TREE_SIDE_EFFECTS
5252         and TREE_CONSTANT if not a type.
5253         * tree.h (IS_NON_TYPE_CODE_CLASS): New macro.
5254         (IS_EXPR_CODE_CLASS): Write 'E', not 'e'.
5255         (NON_TYPE_CHECK): New macro.
5256         (TREE_SIDE_EFFECT, TREE_READONLY, TREE_CONSTANT: Add check.
5257
5258 2004-04-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
5259
5260         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Set
5261         to DWARF2_DEBUG unconditionally.
5262         (ASM_DEBUG_SPEC): Set the default to --gdwarf2 unconditionally.
5263
5264 2004-04-04  Ian Lance Taylor  <ian@wasabisystems.com>
5265             Nathanael Nerode  <neroden@gcc.gnu.org>
5266
5267         PR target/14548
5268         * config.host: Set the shell variable host_can_use_collect2.
5269         Set it to yes by default, and to no for alpha*-dec-*vms*,
5270         i[34567]86-*-mingw32*, and powerpc-*-beos*.
5271         * configure.ac: Set and substitute the shell variable collect2.
5272         Give an error if use_collect2 is yes and host_can_use_collect2 is
5273         no.
5274         * Makefile.in (COLLECT2): Rename from USE_COLLECT2.  Change all
5275         uses.  Initialize to @collect2@.
5276         (STAGESTUFF): Remove $(USE_COLLECT2).
5277         * config/alpha/x-vms (USE_COLLECT2): Don't set.
5278         * config/i386/t-mingw32 (USE_COLLECT2): Likewise.
5279         * config/rs6000/t-beos (USE_COLLECT2): Likewise.
5280         * config/pa/t-pa64: Remove commented out USE_COLLECT2.
5281         * configure: Regenerate.
5282
5283 2004-04-04  Roger Sayle  <roger@eyesopen.com>
5284
5285         * simplify-rtx.c (simplify_binary_operation): Constant fold
5286         DIV, MOD, UDIV and UMOD using div_and_round_double.
5287
5288 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
5289
5290         PR c++/14804
5291         * varasm.c (initializer_constant_valid_p): Allow NOP_EXPRs to
5292         RECORD_TYPEs.
5293
5294 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
5295
5296         * doc/invoke.texi (-mabi=o64): Create link to O64 ABI
5297         documentation.
5298
5299 2004-04-04  Roger Sayle  <roger@eyesopen.com>
5300
5301         * cse.c (cse_insn): Correct usage of simplify_replace_rtx when
5302         updating the REG_EQUAL note on an insn's libcall_insn.
5303
5304 2004-04-04  Roger Sayle  <roger@eyesopen.com>
5305
5306         * df.h: Tidy up whitespace in the definitions of the DF_ flags.
5307
5308 2004-04-03  Roger Sayle  <roger@eyesopen.com>
5309
5310         * fold-const.c (fold) <PLUS_EXPR>: Guard (-A)+B -> B-A transformation
5311         with reorder_operands_p.
5312
5313 2004-04-03  Jan Hubicka  <jh@suse.cz>
5314
5315         * md.texi (vec_set, vec_extract, vec_init): Document.
5316
5317 2004-04-02  Gabor Loki <loki@inf.u-szeged.hu>
5318
5319        * opts.c (decode_options): Do function inlining with very small
5320        max-inline-insns-* parameters when optimizing for size.
5321
5322 2004-04-02  Vladimir Makarov  <vmakarov@redhat.com>
5323
5324         * config/i386/i386.h (TARGET_NOCONA): New macro.
5325         (TARGET_CPU_CPP_BUILTINS): Add code for Nocona.
5326         (processor_type): Add PROCESSOR_NOCONA.
5327
5328         * config/i386/i386.md (cpu): Add nocona to the attribute values.
5329
5330         * config/i386/i386.c (nocona_cost): New variable.
5331         (m_NOCONA): New macro.
5332         (x86_push_memory, x86_movx, x86_cmove, x86_deep_branch,
5333         x86_branch_hints, x86_use_sahf, x86_single_stringop,
5334         x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8,
5335         x86_integer_DFmode_moves, x86_partial_reg_dependency,
5336         x86_memory_mismatch_stall, x86_accumulate_outgoing_args,
5337         x86_decompose_lea, x86_arch_always_fancy_math_387,
5338         x86_sse_partial_reg_dependency, x86_sse_load0_by_pxor,
5339         x86_ext_80387_constants, x86_four_jump_limit):
5340         (override_options): Add nocona_cost to processor_target_table.
5341         Set up PROCESSOR_NOCONA for Nocona entry in processor_alias_table.
5342         (incdec_operand): Prevent inc/dec generation for Nocona too.
5343         (ix86_issue_rate): Add PROCESSOR_NOCONA.
5344
5345 2004-04-01  Andrew Pinski  <pinskia@physics.uc.edu>
5346
5347         * rtlanal.c (find_reg_note): Manually
5348         unswitch the loop.
5349
5350 2004-04-01  Mark Mitchell  <mark@codesourcery.com>
5351
5352         * genemit.c (gen_split): Change prototype of generated code.
5353         * genrecog.c (write_action): Adjust prototype for and calls to
5354         gen_split_*.
5355         * gensupport.c (struct queue_elem): Add split field.
5356         (queue_pattern): Return a value.  Clear the split field.
5357         (process_rtx): Maintain an association between an insn and the
5358         split generated from it for a define_insn_and_split.
5359         (process_one_cond_exec): Generate a new split for a
5360         define_insn_and_split.
5361         * config/arm/arm-protos.h (arm_split_constant): Add insn
5362         parameter.
5363         (emit_constant_insn): New function.
5364         (arm_gen_constant): Use it.
5365         * config/arm/arm.md: Adjust calls to arm_split_constant.
5366
5367 2004-04-02  Jan Hubicka  <jh@suse.cz>
5368
5369         * cgraph.c: Add overall comment.
5370         (cgraph_inline_hash): New global variable.
5371         (cgraph_create_node): Break out from ...
5372         (cgraph_node): ... here.
5373         (cgraph_edge): New function.
5374         (cgraph_create_edge): New CALL_EXPR argument; some sanity checking.
5375         (cgraph_remove_edge): Accept edge, intead of source and destination.
5376         (cgraph_redirect_edge_callee): New.
5377         (cgraph_remove_node): Update all new datastructures.
5378         (cgraph_record_call, cgraph_remove_call): Kill.
5379         (dump_cgraph_node): Break out from ... ; dump new datastructures.
5380         (dump_cgraph): ... here.
5381         (cgraph_function_possibly_inlined_p): Use new hashtable.
5382         (cgraph_clone_edge, cgraph_clone_node): New.
5383         * cgraph.h: Include hashtab.h
5384         (struct cgraph_global_info): Kill cloned_times, inline_once, will_be_output
5385         fields, add inlined_to pointer.
5386         (cgraph_node): Add pointer to next_clone.
5387         (cgraph_remove_edge, cgraph_create_edge): Update prototype.
5388         (cgraph_remove_call, cgraph_record_call): Kill.
5389         (cgraph_inline_hash): Declare.
5390         (dump_cgraph_node, cgraph_edge, cg4raph_clone_edge, cgraph_clone_node,
5391         cgraph_redirect_edge_callee): Declare.
5392         (cgraph_create_edges, cgraph_inline_p): Update prorotype.
5393         (cgraph_preserve_function_body_p, verify_cgraph, verify_cgraph_node,
5394         cgraph_mark_inline_edge, cgraph_clone_inlined_nodes): Declare.
5395         * cgraphunit.c: Add overall comment.
5396         (cgraph_optimize_function): Kill.
5397         (cgraph_assemble_pending_functions): Do not assemble inline clones.
5398         (cgraph_finalize_function): Update call of cgraph_remove_node
5399         (record_call_1): Record call sites.
5400         (cgraph_create_edges): Accept node instead of decl argument.
5401         (error_found): New static variable.
5402         (verify_cgraph_node_1, verify_cgraph_node, verify_cgraph): New functions.
5403         (cgraph_analyze_function): Update for new datastructures.
5404         (cgraph_finalize_compilation_unit): Plug memory leak.
5405         (cgraph_optimize_function): Kill.
5406         (cgraph_expand_function): Do not use cgraph_optimize_function.
5407         (INLINED_TIMES, SET_INLINED_TIMES, cgraph_inlined_into,
5408         cgraph_inlined_callees): Kill.
5409         (cgraph_remove_unreachable_nodes): Verify cgraph; update handling of
5410         clones.
5411         (estimate_growth): Simplify.
5412         (cgraph_clone_inlined_nodes): New function.
5413         (cgraph_mark_inline_edge): Re-implement.
5414         (cgraph_mark_inline): Likewise.
5415         (cgraph_check_inline_limits): Simplify.
5416         (cgraph_recursive_inlining_p): New.
5417         (update_callee_keys): Break out from ...
5418         (cgraph_decide_inlining_of_small_functions): ... here; simplify.
5419         (cgraph_decide_inlining, cgraph_decide_inlining_incrementally):
5420         Likewise.
5421         (cgraph_expand_all_functions):  Remove inline clones from the ordered
5422         list.
5423         (cgraph_preserve_function_body_p): New predicate.
5424         (cgraph_optimize): Verify cgraph.
5425         * function.h (struct function): Add fields saved_tree/saved_args.
5426         * timevar.def (TV_CGRAPH_VERIFY): Use verifier.
5427         * toplev.c (rest_of_compilation): Do not free cfun.
5428         * tree-inline.c: Include function.h
5429         (struct inline_data): Add saving_p field; replace decl/current_decl by
5430         node/current_node.
5431         (insert_decl_map): New function.
5432         (copy_body_r): Handle saving; update cgraph datastructure.
5433         (copy_body): Handle recursive inlining.
5434         (initialize_inlined_parameters): Likewise.
5435         (expand_call_inline): Propagate node attributes; update cgraph.
5436         (optimize_inline_calls): Verify that datastructure still match.
5437         (save_body): New function.
5438         * tree-inline.h (save_body): New.
5439         * tree-optimize.c (tree_rest_of_compilation): preserve function body; do inlining.
5440         * langhooks-def.c (LANG_HOOKS_UPDATE_DECL_AFTER_SAVING): New.
5441         * langhooks.c (lang_hooks): Add update_decl_after_saving.
5442
5443 2004-04-01  Serge Belyshev  <1319@bot.ru>
5444
5445         PR target/14702
5446         * config/i386/i386.md: fix source operand constraints in
5447         mmx_pshufw, sse2_pshufd, sse2_pshuflw, sse2_pshufhw
5448
5449 2004-04-01  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
5450
5451         * fold-const.c (folda): Preserve types of comparisons.
5452
5453 2004-04-01  Richard Henderson  <rth@redhat.com>
5454
5455         * toplev.c (backend_init): Move init_optimization_passes call ...
5456         (lang_dependent_init): ... here.
5457
5458 2004-04-01  Alan Modra  <amodra@bigpond.net.au>
5459             Jakub Jelinek  <jakub@redhat.com>
5460
5461         * gcc.c (init_gcc_specs): If HAVE_LD_AS_NEEDED, link with
5462         -lgcc --as-needed -lgcc_s --no-as-needed by default.
5463         * configure.ac (HAVE_LD_AS_NEEDED): Check for ld --as-needed.
5464         * configure: Rebuilt.
5465         * config.in: Rebuilt.
5466         * Makefile.in (stage1-start): Copy also libgcc_s*$(SHLIB_EXT).
5467         (stage2-start, stage3-start, stage4-start): Likewise.
5468         (stageprofile-start, stagefeedback-start): Likewise.
5469
5470 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
5471
5472         * config/sparc/sparc.h (DITF_CONVERSION_LIBFUNCS): Define to 0.
5473         * config/sparc/linux.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
5474         * config/sparc/linux64.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
5475         * config/sparc/sol2.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
5476         (SOLARIS_CONVERSION_LIBFUNCS): Rename to SUN_CONVERSION_LIBFUNCS.
5477         * config/sparc/sparc.c (sparc_init_libfuncs): Initialize optabs
5478         with _Q_qtoll, _Q_qtoull and _Q_lltoq if DITF_CONVERSION_LIBFUNCS.
5479         * config.gcc (sparc-*-linux*): Revert 2004-03-23 change.
5480         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Likewise.
5481         * config/sparc/t-linux: Removed.
5482
5483 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
5484
5485         PR c++/14755
5486         * fold-const.c (fold) <EQ_EXPR>: Properly compute newconst in
5487         "bitfld++ == const" to "++bitfld == const + incr" transformations.
5488
5489 2004-04-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5490
5491         * expr.c (get_inner_reference): Use DECL_UNSIGNED, not TREE_UNSIGNED.
5492         * stor-layout.c (layout_decl): Likewise.
5493         * tree.c (get_narrower): Likewise and also use BIT_FIELD_REF_UNSIGNED.
5494         * fold-const.c (make_bit_field_ref): Use BIT_FIELD_REF_UNSIGNED.
5495         * print-tree.c (print_node): Handle various used of unsigned_flag.
5496         * tree.def (BIT_FIELD_REF): Update comment.
5497         * tree.h (TREE_UNSIGNED): Deleted.
5498         (DECL_UNSIGNED, BIT_FIELD_REF_UNSIGNED): New macros.
5499
5500 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5501
5502         * builtins.c, c-aux-info.c, c-common.c, c-cppbuiltin.c, c-decl.c:
5503         Change most occurrences of TREE_UNSIGNED to TYPE_UNSIGNED.
5504         * c-format.c, c-opts.c, c-pretty-print.c, c-typeck.c: Likewise.
5505         * calls.c, convert.c, dbxout.c, dojump.c, dwarf2out.c: Likewise.
5506         * expmed.c, expr.c, fold-const.c, function.c, integrate.c: Likewise.
5507         * optabs.c, sdbout.c, stmt.c, stor-layout.c, tree-dump.c: Likewise.
5508         * tree.c, config/iq2000/iq2000.c, config/m32r/m32r.c: Likewise.
5509         * config/mips/mips.c, config/rs6000/rs6000.c: Likewise.
5510         * config/s390/s390.c, config/sparc/sparc.c, objc/objc-act.c: Likewise.
5511         * stor-layout.c (layout_type, case COMPLEX_TYPE): Test for
5512         REAL_TYPE, not INTEGER_TYPE.
5513         (layout_type, case VECTOR_TYPE): Simplify code.
5514         * tree.c (build_vector_type_for_mode): Remove dup unsigned setting.
5515         * tree.h: Update comments.
5516         (STRIP_NOPS): Use TYPE_UNSIGNED.
5517         (TYPE_UNSIGNED): New macro.
5518         (TYPE_TRAP_SIGNED): Remove now redundant check.
5519         (SAVE_EXPR_NOPLACEHOLDER): Don't use TREE_UNSIGNED.
5520
5521 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5522
5523         * function.c (put_var_into_stack): Properly set orig_reg for indirect.
5524
5525 2004-03-31  Andrew Pinski  <pinskia@physics.uc.edu>
5526
5527         * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA):
5528         Add darwin-fpsave.asm, darwin-vecsave.asm,
5529         and darwin-world.asm.
5530         (TARGET_LIBGCC2_CFLAGS): Add -Wa,-force_cpusubtype_ALL
5531         as the asm files contain altivec instructions.
5532         * config/rs6000/darwin-fpsave.asm: New file.
5533         * config/rs6000/darwin-vecsave.asm: New file.
5534         * config/rs6000/darwin-world.asm: New file.
5535
5536 2004-03-31  Zack Weinberg  <zack@codesourcery.com>
5537
5538         * gengtype-yacc.y (option, stringseq): Add missing
5539         terminating semicolon.
5540
5541 2004-03-30  David Edelsohn  <edelsohn@gnu.org>
5542
5543         * config/rs6000/rs6000.md (tls_gd_32, tls_gd_64,
5544         tls_ld_32, tls_ld_64, tls_dtprel_32, tls_dtprel_64,
5545         tls_dtprel_ha_32, tls_dtprel_ha_64,
5546         tls_dtprel_lo_32, tls_dtprel_lo_64,
5547         tls_got_dtprel_64, tls_tprel_32, tls_tprel_64,
5548         tls_tprel_ha_32, tls_tprel_ha_64,
5549         tls_tprel_lo_32, tls_tprel_lo_64,
5550         tls_got_tprel_32, tls_got_tprel_64,
5551         tls_tls_32, tls_tls_64): Replace register_operand with
5552         gpc_reg_operand.
5553
5554 2004-03-30  Mostafa Hagog  <mustafa@il.ibm.com>
5555
5556         * config/rs6000/rs6000.md (*ctrsi_internal1, *ctrsi_internal2,
5557         *ctrdi_internal1, *ctrdi_internal2, *ctrsi_internal3,
5558         *ctrsi_internal4, *ctrdi_internal3, *ctrdi_internal4,
5559         *ctrsi_internal5, *ctrsi_internal6, *ctrdi_internal5,
5560         *ctrdi_internal6): Replace register_operand with
5561         nonimmediate_operand.
5562
5563 2004-03-29  Fariborz Jahanian <fjahanian@apple.com>
5564
5565         * fold-const.c (fold): Reassociate multiply expression
5566         with an adjacent non-multiply expression to use
5567         architecture's multiply-add instruction.
5568
5569 2004-03-30  Zack Weinberg  <zack@codesourcery.com>
5570
5571         * gengtype.c (create_option): New function.
5572         * gengtype.h: Prototype it.
5573         * gengtype-yacc.y (stringseq): New rule.
5574         (option): Use create_option.  Add new bare ID production.  Use
5575         stringseq, not STRING directly.
5576
5577         * alias.c, bitmap.c, c-decl.c, cgraph.h, cpplib.h, cselib.h
5578         * dwarf2out.c, emit-rtl.c, function.h, lists.c, tree.h
5579         * varray.h, config/alpha/alpha.c:
5580         Use new shorter form of GTY markers.
5581
5582         * doc/gty.texi: Rewrite.
5583
5584 2004-03-30  Andrew Pinski  <pinskia@physics.uc.edu>
5585
5586         * config/darwin.c (machopic_function_base_name):
5587         Remove current_name and getting the name of the
5588         current function.
5589
5590 2004-03-30  Nick Clifton  <nickc@redhat.com>
5591
5592         * config/arm/arm.md (thumb_jump): Reduce the backward branch
5593         range, and increase the forward branch range, to allow for
5594         the fact that the PC will be off by 4.
5595
5596 2004-03-30  Alan Modra  <amodra@bigpond.net.au>
5597
5598         * .cvsignore: Add GPATH, GRTAGS, GSYMS and GTAGS (GNU GLOBAL)
5599
5600 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
5601
5602         * config/rs6000/rs6000.c (output_vec_const_move):
5603         Find all cases of EASY_VECTOR_15_ADD_SELF.
5604         (easy_vector_constant_add_self): Accept
5605         all vector constant loadable by vsplt* and vadd*.
5606         (easy_vector_same): Use easy_vector_splat_const.
5607         (easy_vector_const): Use easy_vector_splat_const.
5608         (easy_vector_splat_const): New function.
5609         (gen_easy_vector_constant_add_self): New function.
5610
5611         * config/rs6000/rs6000-protos.c (gen_easy_vector_constant_add_self):
5612         New prototype.
5613
5614         * config/rs6000/altivec.md (movv4si splitter): Change to
5615         emit move insn with halfed vector constant.
5616         (*movv8hi splitter): Likewise.
5617         (*movv16qi splitter): Likewise.
5618
5619 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
5620
5621         PR 11591
5622         * config/rs6000/rs6000.c (rs6000_legitimate_address):
5623         Allow any offset to argument pointer in no-strict case.
5624
5625 2004-03-30  Jan Hubicka  <jh@suse.cz>
5626
5627         * toplev.c (backend_init): Add missing call to inint_optimization_passes.
5628         * passes.c (init_optimization_passes, finish_optimization_passes): Output cgraph
5629         dump file in non-unit-at-a-time mode.
5630
5631 2004-03-29  Hans-Peter Nilsson  <hp@axis.com>
5632
5633         * config/cris/cris.h: Correct #ifdef to test for
5634         HAVE_AS_NO_MUL_BUG_ABORT_OPTION, not
5635         HAVE_AS_MUL_BUG_ABORT_OPTION.
5636
5637 2004-03-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5638
5639         * function.c (put_var_into_stack): If old RTL was ADDRESSOF, update
5640         the address inside the old RTL.
5641
5642 2004-03-28  Zack Weinberg  <zack@codesourcery.com>
5643
5644         * c-decl.c: Verify that C_SIZEOF_STRUCT_LANG_IDENTIFIER is correct.
5645         (struct c_binding, struct c_scope): Add chain_next
5646         attributes to GTY markers.
5647         (struct lang_identifier, struct lang_tree_node): Define
5648         here...
5649         * c-tree.h: ... not here.  No longer need to declare struct
5650         c_binding either.  Do define C_SIZEOF_STRUCT_LANG_IDENTIFIER.
5651         * c-lang.c, objc/objc-lang.c: Set LANG_HOOKS_IDENTIFIER_SIZE
5652         to C_SIZEOF_STRUCT_LANG_IDENTIFIER.
5653
5654         PR 14734, 11944
5655         * c-decl.c (get_parm_info): If error_mark_node is encountered
5656         in the bindings chain, unbind and discard it; don't abort.
5657
5658 2004-03-28  Olga Golovonevsky <olga@il.ibm.com>
5659             Dorit Naishlos <dorit@il.ibm.com>
5660
5661         * config/rs6000/altivec.md: (andvv16qi3, andv8hi3, one_cmplv16qi2,
5662         one_cmplv8hi2, one_cmplv4si2, iorv16qi3, iorv8hi3,): New modelling.
5663
5664 2004-03-28  Stephane Carrez  <stcarrez@nerim.fr>
5665
5666         * config/m68hc11/m68hc11-protos.h (m68hc11_page0_symbol_p): Declare.
5667
5668         * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute): New.
5669         (m68hc11_attribute_table): New attribute "page0" to mark a global
5670         variable as being allocated from within page0 section.
5671         (m68hc11_encode_label): New function.
5672         (m68hc11_strip_name_encoding): New function.
5673         (m68hc11_page0_symbol_p): New function.
5674         (m68hc11_indirect_p): Accept global variables marked in page0.
5675         (m68hc11_encode_section_info): Lookup "page0" attribute.
5676
5677         * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): 'R' constraint also
5678         represents access to page0 variables.
5679
5680         * config/m68hc11/m68hc11.md ("*logicalsi3_zexthi"): Use gen_rtx_REG.
5681         ("*logicalsi3_silshl16_zext"): Likewise.
5682         ("*ashldi3_const32"): Likewise.
5683         (peephole2 ashift): Likewise.
5684
5685 2004-03-28  Joseph S. Myers  <jsm@polyomino.org.uk>
5686
5687         * c-tree.h (C_DECL_REGISTER): New.
5688         * c-aux-info.c (gen_decl), c-decl.c (objc_mark_locals_volatile,
5689         finish_decl, grokdeclarator, get_parm_info), c-typeck.c
5690         (build_array_ref, c_mark_addressable): Set and use it.
5691         * c-decl.c (grokdeclarator), c-typeck.c (c_mark_addressable):
5692         Allow structures with volatile fields to be declared register.
5693         Don't check TREE_ADDRESSABLE before warning about taking address
5694         of register.
5695         * c-decl.c (finish_decl): Don't allow structures with volatile
5696         fields to be placed in named register.
5697         * doc/trouble.texi: Remove reference to structures with volatile
5698         fields in registers.
5699
5700 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
5701
5702         * function.c (thread_prologue_and_epilogue): Move
5703         NOTE_INSN_FUNCTION_END and NOTE_INSN_FUNCTION_BEG notes
5704         before the epilogue.
5705
5706 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
5707
5708         * expr.c (store_constructor): Use gen_int_mode to correctly
5709         sign-extend CONST_INT value.
5710
5711 2004-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5712
5713         * builtin-types.def (BT_WINT, BT_FN_INT_WINT, BT_FN_WINT_WINT): New.
5714         * builtins.def (DEF_C94_BUILTIN): New.  Add wctype builtins.
5715         * doc/extend.texi: Likewise.
5716
5717 2004-03-26  Diego Novillo  <dnovillo@redhat.com>
5718
5719         * c-typeck.c (comptypes): Replace calls to TYPE_DOMAIN
5720           with TYPE_ORIG_SIZE_TYPE.
5721
5722 2004-03-25  Aldy Hernandez  <aldyh@redhat.com>
5723
5724         PR 14219
5725         * c-typeck.c (build_binary_op): Do not allow comparisons of
5726         vectors.
5727
5728 2004-03-26  James A. Morrison  <ja2morri@uwaterloo.ca>
5729
5730         * config.gcc: Remove sparc-tti-*.
5731         * config/sparc/pbd.h: Delete.
5732
5733         * config/sparc/sol2.h: Remove note about Sun OS 4.x.
5734         * config/sparc/aout.h: Likewise.
5735
5736         * config/sparc/sparc.h: Remove if 0'd code.
5737         * config/sparc/sparc.md (call): Remove if 0'd code.
5738         (call_value): Likewise.
5739         (nonlocal_goto): Likewise.
5740         (unimp_insn): Delete.
5741
5742 2004-03-25  Roger Sayle  <roger@eyesopen.com>
5743
5744         * fold-const.c (tree_expr_nonnegative_p): Handle BIT_XOR_EXPR like
5745         BIT_IOR_EXPR; A^B is nonnegative when A and B are nonnegative.
5746
5747 2004-03-25  Richard Henderson  <rth@redhat.com>
5748
5749         PR 11527
5750         * c-typeck.c (pop_init_level): Emit pending init elements earlier
5751         rather than later.
5752
5753 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5754
5755         * builtins.c (fold_builtin): Fix error in last change.
5756
5757 2004-03-25  Richard Sandiford  <rsandifo@redhat.com>
5758
5759         * config/mips/mips.h: Formatting fix.
5760
5761 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5762
5763         * builtins.def: Add ctype builtins.
5764         * doc/extend.texi: Likewise.
5765
5766 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5767
5768         * builtins.c (fold_builtin): Add new builtin optimizations for
5769         sqrt and/or cbrt.
5770         * fold-const.c (fold): Likewise.
5771
5772 2004-03-25  David Edelsohn  <edelsohn@gnu.org>
5773
5774         * config/rs6000/rs6000.c (rs6000_always_hint): New variable.
5775         (rs6000_sched_groups): New variable.
5776         (processor_target_table): Add power5.
5777         (rs6000_override_options): Set rs6000_sched_insert_nops,
5778         rs6000_sched_costly_dep and rs6000_sched_restricted_insns_priority
5779         from rs6000_sched_groups.
5780         (output_cbranch): Use rs6000_always_hint.
5781         (rs6000_variable_issue): Use rs6000_sched_groups.
5782         (rs6000_adjust_cost): Add CPU_POWER5.
5783         (is_microcoded_insn): Use rs6000_sched_groups.
5784         (is_dispatch_slot_restricted): Use rs6000_sched_groups.
5785         Return 2 for POWER5 cracked instructions.
5786         (is_cracked_insn): Use rs6000_sched_groups.
5787         (is_branch_slot_insn): Use rs6000_sched_groups.
5788         (rs6000_issue_rate): Add CPU_POWER5.
5789         (rs6000_sched_finish): Use rs6000_sched_groups.
5790         (rs6000_rtx_costs): Add PROCESSOR_POWER5.
5791         * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER5.
5792         (DEFAULT_SCHED_COSTLY_DEP): Delete.
5793         (DEFAULT_RESTRICTED_INSNS_PRIORITY): Delete.
5794         (DEFAULT_SCHED_FINISH_NOP_INSERTION_SCHEME): Delete.
5795         * config/rs6000/rs6000.md (define_attr "cpu"): Add power5.
5796         * config/rs6000/power5.md: New file.
5797         * doc/invoke.texi: Add power5 option.
5798
5799 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
5800
5801         * cfgrtl.c, dbxout.c, tree.def, config/darwin.h,
5802         config/arm/arm.c, objc/objc-act.c: Fix comment typos.
5803         * doc/invoke.texi: Fix a typo.
5804
5805 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
5806
5807         PR optimization/9707.
5808         * stmt.c (emit_case_nodes): Emit equality comparisons instead
5809         of recursing if both children are single-valued cases with no
5810         children.
5811
5812 2004-03-25  Paul Brook  <paul@codesourcery.com>
5813
5814         * config/arm/arm.c (vfp_print_multi): Remove.
5815         (arm_output_fldmx): New function.
5816         (vfp_emit_fstmx): Return block size, not insn. Add ARM10 VFPr1 bugfix.
5817         (arm_expand_prologue): Update to match.
5818         (arm_get_vfp_saved_size): New Function.
5819         (arm_get_frame_offsets): Use it.
5820         (arm_output_epilogue): Use new functions.
5821
5822 2004-03-24  Richard Henderson  <rth@redhat.com>
5823
5824         * alias.c (alias_invariant, alias_invariant_size): Mark GTY.
5825         (reg_known_value, reg_known_value_size): Likewise; make static.
5826         (reg_known_equiv_p): Make static.
5827         (clear_reg_alias_info): Update for new indexing.
5828         (get_reg_known_value, set_reg_known_value): New.
5829         (get_reg_known_equiv_p, set_reg_known_equiv_p): New.
5830         (canon_rtx): Use them.
5831         (init_alias_analysis): Likewise.  Allocate reg_known_value with gc.
5832         Don't play queer offsetting games with reg_known_value and
5833         reg_known_equiv_p.
5834         (end_alias_analysis): Free reg_known_value with gc.
5835         * rtl.h (get_reg_known_value, get_reg_known_equiv_p): Declare.
5836         * sched-deps.c (reg_known_equiv_p, reg_known_value): Remove.
5837         (deps_may_trap_p, sched_analyze_1, sched_analyze_2): Use the new
5838         functions instead.
5839
5840 2004-03-24  Kazu Hirata  <kazu@cs.umass.edu>
5841
5842         * dwarf2asm.c, loop.h, pretty-print.c, pretty-print.h,
5843         config/i386/mmintrin.h: Update copyright.
5844
5845 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
5846
5847         * configure.ac: Add --enable-werror-always (for top level bootstrap
5848         support).
5849         * configure: Regenerate.
5850
5851 2004-03-24  Ziemowit Laski  <zlaski@apple.com>
5852
5853         * objc/objc-act.c (objc_comptypes): Treat comparisons
5854         between 'Class' and '<class> *' as explicitly invalid.
5855
5856 2004-03-24  David Edelsohn  <edelsohn@gnu.org>
5857
5858         * doc/invoke.texi (-frename-registers): Add enabled at -O3.
5859         (-fprofile-values): Add enabled with profile-{generate,use}.
5860         (-fvpt): Same.
5861         (-ftracer): Add enabled with profile-use.
5862         (-funit-at-a-time): Add enabled at -O2,-O3.
5863         (-funroll-loops): Add enabled with profile-use.
5864         (-funswitch-loops): Add enabled with profile-use.  Remove duplicates.
5865         (max-gcse-passes): Mention default.
5866         (max-cse-path-length): Mention default.
5867
5868 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
5869
5870         * Makefile.in (STRICT2_WARN): Reorder.
5871         * configure.ac: Check for -Wold-style-definition, and use it
5872         in strict1_warn if it's available.
5873         * configure: Regnerate.
5874
5875 2004-03-24  Paul Brook  <paul@nowt.org>
5876
5877         * config.gcc <arm>: Add --with-abi=
5878         * config/arm/arm-protos.h (arm_get_frame_size, thumb_get_frame_size,
5879         thumb_far_jump_used): Remove prototypes.
5880         (arm_needs_doubleword_align): Add prototype.
5881         (thumb_compute_initial_elimination_offset): Ditto.
5882         * config/arm/arm.c (arm_get_frame_offsets): New function.
5883         (use_return_insn, output_return_instruction, arm_output_epilogue,
5884         arm_output_function_epilogue, arm_compute_initial_elimination_offset,
5885         arm_expand_prologue, thumb_expand_epilogue): Use it.
5886         (arm_abi, target_abi_name, all_arm_abis): New variables.
5887         (arm_override_options): Set them.  Set structure padding for AAPCS.
5888         (arm_return_in_memory): Update ABI check.
5889         (arm_init_cumulative_args): Initialize can_split.
5890         (arm_needs_doubleword_align): New function.
5891         (arm_function_arg): Don't split args after pushing to stack. Handle
5892         doubleword/even reg alignment.
5893         (arm_va_arg): Handle all doubleword aligned args.
5894         (add_minpoolforward ref, dump_minpool, push_minpool_fix): Align based
5895         on ABI, not CPU.
5896         (arm_compute_save_reg0_reg12_mask): Fix comment.
5897         (thumb_get_frame_size, thumb_get_frame_size): Remove.
5898         (thumb_jump_far_used_p): Remove superfluous argument.  Return save
5899         value for alignment.
5900         (thumb_unexpanded_epilogue, thumb_output_function_prologue): Change
5901         to match.
5902         (thumb_compute_initial_elimination_offset): New function.
5903         (thumb_expand_prologue): Use arm_get_frame_offsets.  Remove
5904         unneccessary rounding.
5905         * config/arm/arm.h (target_abi_name): Declare.
5906         (ARM_DOUBLEWORD_ALIGN, DOUBLEWORD_ALIGNMENT, TARGET_IWMMXT_ABI,
5907         arm_abi_type, ARM_DEFAULT_ABI): Define.
5908         (ARM_FLAG_ATPCS): Remove.
5909         (TARGET_OPTIONS, OPTION_DEFAULT_SPECS): Add -mabi=.
5910         (BIGGEST_ALIGNMENT, PREFERRED_STACK_BOUNDARY, STACK_BOUNDARY): Use it.
5911         (ADJUST_FIELD_ALIGN, DATA_ALIGNMENT, LOCAL_ALIGNMENT,
5912         TYPE_NEEDS_IWMMXT_ALIGNMENT): Remove.
5913         (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P, FUNCTION_ARG_REGNO_P):
5914         Contitionalize on ABI, not CPU.
5915         (struct arm_stack_offsets): Define.
5916         (struct machine_function): Add stack_offsets.  Remove frame_size.
5917         (FUNCTION_ARG_PARTIAL_NREGS): Don't split if previous args have been
5918         pushed.
5919         (FUNCTION_ARG_ADVANCE, FUNCTION_ARG_BOUNDARY): Handle general
5920         doubleword alignment.
5921         (THUMB_INITIAL_ELIMINATION_OFFSET,
5922         ARM_INITIAL_ELIMINATION_OFFSET): Remove.
5923         (INITIAL_ELIMINATION_OFFSET): Call functions directly.
5924         * config/arm/arm.md (align_8): Enable for all targets.
5925         * config/arm/netbsd-elf.h (TARGET_DEFAULT): Remove TARGET_ATPCS.
5926         (ARM_DEFAULT_ABI): Define.
5927         * doc/invoke.texi <ARM>: Document -mabi=. Update documentation for
5928         -mstructure-size-boundary.
5929
5930 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
5931
5932         * configure.ac: Check for -Wno-variadic-macros; don't use
5933         -pedantic (in stage 1 or a simple 'make all') unless it's available,
5934         and if it's available, use it.  Also, clean up check for
5935         -Wno-long-long.
5936         * configure: Regenerate.
5937
5938 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
5939
5940         * config.gcc (mips64vr-*-elf*, mips64vrel-*-elf*): Remove tm_defines.
5941         * config/mips/vr.h (DEFAULT_VR_ARCH): New macro, defined to vr4130.
5942         (MULTILIB_DEFAULTS): Use it.
5943         (MIPS_CPU_STRING_DEFAULT): Remove.
5944         (MIPS_ABI_DEFAULT, MIPS_MARCH_CONTROLS_SOFT_FLOAT): Define.
5945         (DRIVER_SELF_SPECS): Make -mfix-vr4122-bugs imply -march=vr4120.  Make
5946         EABI64 -mlong32 the default ABI.  Enforce the default architecture.
5947         * config/mips/t-vr (MULTILIB_OPTIONS): Add mfix-vr4122-bugs,
5948         march=vr4130, march=vr4300, march=vr5000 and march=vr5500.
5949         (MULTILIB_MATCHES): Use -mfix-vr4122-bugs multilibs for -march=vr4120.
5950         (MULTILIB_EXCEPTIONS): Change choice of multilibs.  Update comments
5951         accordingly.
5952
5953 2004-03-24  DJ Delorie  <dj@redhat.com>
5954             Richard Sandiford  <rsandifo@redhat.com>
5955
5956         * config/mips/mips.h (MASK_FIX_VR4122, TARGET_FIX_VR4122): New macros.
5957         (TARGET_SWITCHES): Add -mfix-vr4122-bugs and -mno-fix-vr4122-bugs.
5958         (ASM_SPEC): Pass down -mfix-vr4122-bugs.
5959         * config/mips/mips.c (mips_avoid_hazards): Don't emit whole functions
5960         in .set noreorder and .set nomacro if TARGET_FIX_VR4122.
5961         (mips_init_libfuncs): Use special functions for divsi3 and modsi3
5962         if TARGET_FIX_VR4122.
5963         * config/mips/mips.md (define_attr length): Account for nops inserted
5964         after macc and dmult when using -mfix-vr4122-bugs.
5965         (umuldi3_highpart, divmodsi4, divmoddi4): Disable if TARGET_FIX_VR4122.
5966         * config/mips/t-vr (LIB2FUNCS_STATIC_EXTRA): Define instead of
5967         LIB2FUNCS_EXTRA.  Add config/mips/vr4122-div.S.
5968         * config/mips/vr4122-div.S: New file.
5969         * doc/invoke.texi: Document -mfix-vr4122-bugs.
5970
5971 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
5972
5973         * config/mips/mips.h (PROCESSOR_R4130): New processor_type.
5974         (TARGET_MIPS4130): New macro.
5975         (ISA_HAS_MACC): Return true if TARGET_MIPS4130 && !TARGET_MIPS16.
5976         * config/mips/mips.c (mips_cpu_info_table): Add a vr4130 entry.
5977         (override_options): Extend MIPS_MARCH_CONTROLS_SOFT_FLOAT to deal
5978         with PROCESSOR_R4130.
5979         * config/mips/mips.md (define_attr cpu): Add r4130.
5980         * doc/invoke.texi: Document vr4130 as a supported MIPS architecture.
5981
5982 2004-03-24  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
5983             Richard Sandiford  <rsandifo@redhat.com>
5984
5985         * doc/invoke.texi: Apply missed hunk from 2004-03-03 change.
5986
5987 2004-03-24  Alexandre Oliva  <aoliva@redhat.com>
5988
5989         PR preprocessor/14438
5990         * cpplib.c (do_pragma): Remove line_change call after pragma
5991         handler.
5992
5993 2004-03-23  Ian Lance Taylor  <ian@wasabisystems.com>
5994
5995         * doc/extend.texi (ARM Built-in Functions): Replace with correct
5996         declarations.
5997
5998 2004-03-23  Roger Sayle  <roger@eyesopen.com>
5999
6000         * reg-stack.c (get_true_reg): Handle FLOAT_TRUNCATE like FLOAT_EXTEND
6001         if flag_unsafe_math_optimizations.
6002         * config/i386/i386.md (truncdfsf2): If flag_unsafe_math_optimizations
6003         and TARGET_80387 expand using truncdfsf2_noop pattern.
6004         (truncxfsf2): Likewise using truncxfsf2_noop.
6005         (truncxfdf2): Likewise using truncxfdf2_noop.
6006         (truncdfsf2_noop, truncxfsf2_noop, truncxfdf2_noop): New patterns.
6007
6008 2004-03-23  Ziemowit Laski  <zlaski@apple.com>
6009
6010         * hooks.c (hook_constcharptr_tree_null): New hook.
6011         * hooks.h (hook_constcharptr_tree_null): New prototype.
6012         * target-def.h (TARGET_MANGLE_FUNDAMENTAL_TYPE): New target hook.
6013         * target.h (mangle_fundamental_type): New target hook.
6014         * config/rs6000/rs6000.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Point
6015         target hook at rs6000_mangle_fundamental_type.
6016         (rs6000_mangle_fundamental_type): New function.
6017         * doc/tm.texi (TARGET_MANGLE_FUNDAMENTAL_TYPE): Document.
6018
6019 2004-03-23  Zack Weinberg  <zack@codesourcery.com>
6020
6021         PR 12267, 12391, 12560, 13129, 14114, 14133
6022         * c-tree.h: Forward declare struct c_binding.  Declare
6023         c_override_bindings_to_false.  Update prototypes.
6024         (struct lang_identifier): Update comments.  Change fields to be
6025         struct c_binding *.
6026         (IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE)
6027         (IDENTIFIER_LABEL_VALUE, C_DECL_INVISIBLE)
6028         (KEEP_NO, KEEP_YES, KEEP_MAYBE): Delete.
6029         (C_DECL_IN_EXTERNAL_SCOPE, C_DECL_DECLARED_BUILTIN): New.
6030         * c-common.h: Update prototypes.
6031         * c-decl.c (struct c_scope): Update commentary.  Remove names,
6032         names_last, parms, parms_last, tags, and shadowed fields.  Add
6033         bindings and depth fields.
6034         (scope_freelist): Move to more appropriate location.
6035         (c_print_identifier): Update for changes to struct lang_identifier.
6036         (objc_mark_locals_volatile): Update for new bindings structures.
6037         (global_bindings_p): Honor c_override_global_bindings_to_false.
6038         (pushlevel): Rename to push_scope; take no arguments; use the
6039         scope_freelist; initialize scope->depth and check for overflow.
6040         (poplevel): Rename to pop_scope; totally rewritten for new bindings
6041         structures.
6042         (diagnose_mismatched_decls): Use C_DECL_DECLARED_BUILTIN, not
6043         C_DECL_INVISIBLE, for certain decisions.  Adjust some diagnostics.
6044         Improve some commentary.  Adjust handling of forward parm decls.
6045         (merge_decls): Set C_DECL_DECLARED_BUILTIN when appropriate.
6046         Preserve C_DECL_IN_EXTERNAL_SCOPE.
6047         (warn_if_shadowing): Correct indentation.  Improve diagnostics.
6048         (pushdecl): Remove unnecessary assertion.  Short-circuit anonymous
6049         decls.  Rewrite for new bindings structures.  Improve commentary.
6050         Eliminate the copy_node call.
6051         (implicit_decl_warning): Use the "diag" idiom (as seen in
6052         locate_old_decl) to reduce code duplication; call locate_old_decl
6053         if appropriate.  Relocate to remove need for forward declaration.
6054         (implicitly_declare): Adjust for new bindings structures.  Kludge
6055         around Objective-C not-really-builtin functions.
6056         (undeclared_variable): Improve diagnostics.  If current_function_decl
6057         is nonnull but current_function_scope is null, use current_scope.
6058         Use bind.
6059         (lookup_tag): Adjust for new bindings structures.  Kludge around
6060         Objective-C's tag declarations that wind up in the external scope.
6061         (lookup_name): Adjust for new bindings structures.  Kludge around
6062         c-common.c's pseudo-typedefs that wind up in the external scope.
6063         (lookup_name_current_level): Rename lookup_name_in_scope; take a
6064         second argument indicating the scope to examine; rewrite for
6065         new bindings structures.
6066         (c_init_decl_processing): Adjust for renamed functions.  Do not
6067         initialize current_file_decl, first_builtin_decl, last_builtin_decl.
6068         First scope pushed is the external scope, not the global scope.
6069         (builtin_function): Use bind, not pushdecl.  Adjust other bits
6070         for new data structures.  Keep track of builtins that should be
6071         made visible automatically.
6072         (start_decl): Adjust diagnostics.  Remove unnecessary call to
6073         expand_decl.
6074         (grokparms): Return 0 if arg_types is error_mark_node.
6075         (get_parm_info): Rename "void_at_end" argument to "ellipsis", with
6076         reversed sense.  Rewrite for new bindings structures.  Do not
6077         leave any decls in the scope, to prevent pop_scope from doing
6078         contradictory things with them.
6079         (finish_struct, finish_enum): Remove redundant diagnostics.
6080         (build_enumerator): Don't cascade diagnostics for error_mark_node.
6081         Mark location where -pedantic changes the meaning of the program.
6082         (store_parm_decls_newstyle, store_parm_decls_oldstyle): Load the
6083         parameter decls into the function's scope structure using bind.
6084         Warn here about function definitions in the wrong style.
6085         Adjust diagnostics.
6086         (store_parm_decls): Correct the determination of whether a
6087         function was defined with a prototype.
6088         (c_write_global_declarations): Operate on all file decls and on
6089         the external scope.  Split body of the loop to...
6090         (c_write_global_declarations_1): ... this new function, to avoid
6091         code duplication.
6092         (truly_local_externals, first_builtin_decl, last_builtin_decl)
6093         (make_scope, pop_scope, in_parm_level_p, set_block)
6094         (any_external_decl, record_external_decl, bind_label, getdecls)
6095         (link_hash_hash, link_hash_eq, merge_translation_unit_decls)
6096         (c_reset_state): Delete.
6097         (visible_builtins, c_override_global_bindings_to_false)
6098         (c_binding, I_SYMBOL_BINDING, I_SYMBOL_DECL, I_TAG_BINDING)
6099         (I_TAG_DECL, I_LABEL_BINDING, I_LABEL_DECL, file_scope)
6100         (external_scope, binding_freelist, bind, free_binding_and_advance)
6101         (push_file_scope, pop_file_scope): New.
6102         (pushtag, pushdecl_top_level, lookup_label, declare_label)
6103         (define_label, c_make_fname_decl, finish_decl)
6104         (mark_forward_parm_decls, build_compound_literal)
6105         (grokdeclarator, start_function, check_for_loop_decls)
6106         (identifier_global_value, record_builtin_type): Minor adjustments
6107         for new bindings structures.  Improve diagnostics and commentary.
6108         * c-objc-common.c (start_cdtor, finish_cdtor): Adjust calls to
6109         pushlevel/poplevel respectively.
6110         (c_objc_common_finish_file): Don't call merge_translation_unit_decls.
6111         * c-opts.c (c_common_parse_file): Remove spurious ATTRIBUTE_UNUSED.
6112         Warn about YYDEBUG not being defined only if -dy.  Remove no-longer-
6113         correct loop over multiple translation units; call fatal_error if
6114         requested to compile more than one file at once.  (This disables
6115         IMA temporarily - an up-front error being preferable to a crash.)
6116         * c-parse.in (pushlevel, poplevel rules): Rename push_scope, pop_scope.
6117         (all actions): Adjust calls to pushlevel/poplevel.
6118         (parsing_iso_function_signature): Delete.
6119         (extdef_1): Fold into extdef.
6120         (old_style_parm_decls_1): Fold into old_style_parm_decls.  Don't
6121         warn here about function definitions in the wrong style.
6122         (after_tyle_declarator, parm_declarator_starttypename)
6123         (parm_declarator_nostarttypename, notype_declarator): Remove
6124         commented-out productions.
6125         (parmlist_1, parmlist_2): Use make_node, not tree_cons, to create
6126         an empty TREE_LIST node.  Adjust calls to get_parm_info.
6127         (parmlist_2 : ELLIPSIS): Tag the arg-info block with error_mark_node
6128         to suppress -Wold-style-definition after this error.
6129         (c_parse_file): Don't clear the binding stack or call
6130         finish_fname_decls here.  Correct comment.
6131         * c-typeck.c (same_translation_unit_p): Export.
6132         (common_type): Use c_override_global_bindings_to_false, not
6133         pushlevel/poplevel/declare_parm_level.
6134         * c-lang.c: Override LANG_HOOKS_CLEAR_BINDING_STACK,
6135         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK,
6136         and LANG_HOOKS_GETDECLS with do-nothing stubs.
6137         * objc/objc-lang.c: Likewise.
6138         * objc/objc-act.c: Adjust all calls to pushlevel, poplevel,
6139         get_parm_info.
6140         (OBJC_VOID_AT_END): Delete; replace all uses
6141         with void_list_node.
6142         (generate_forward_declaration_to_string_table): Delete.
6143         * objc/objc-act.h (OCTI_STRG_DECL, UOBJC_STRINGS_decl): Delete.
6144
6145         * coverage.c (create_coverage): Don't pushdecl anything.
6146         * langhooks.c (lhd_clear_binding_stack): Call
6147         lang_hooks.decls.poplevel, not poplevel.
6148         * tree.c (list_length): If ENABLE_TREE_CHECKING, abort on a
6149         circular list rather than going into an infinite loop.
6150
6151 2004-03-23  Olivier Hainque  <hainque@act-europe.fr>
6152
6153         * optabs.c (expand_binop): When synthesizing double word rotates
6154         from single word shifts, use a new register target if the provided
6155         target is not a REG already.
6156
6157 2004-03-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6158
6159         * alias.c (get_alias_set): Add support for TYPE_REF_CAN_ALIAS_ALL.
6160         * c-common.c (handle_mode_attribute): Add extra arg to
6161         build_pointer_type_for_mode and build_reference_type_for_mode.
6162         * c-typeck.c (build_c_cast): Only look at TREE_CONSTANT_OVERFLOW
6163         for INTEGER_CST.
6164         * tree.c (build_pointer_type_for_mode): Add arg CAN_ALIAS_ALL.
6165         Chain pointers via TYPE_NEXT_PTR_TO.
6166         (build_reference_type_for_mode): Similarly.
6167         (build_type_no_quals): Add extra arg to build_pointer_type_for_mode
6168         and build_reference_type_for_mode.
6169         (tree_check4_failed): New function.
6170         * tree.h (TREE_CHECK4, PTR_OR_REF_CHECK): New macros.
6171         (TYPE_REF_CAN_ALIAS_ALL, TYPE_NEXT_PTR_TO, TYPE_NEXT_REF_TO): Likewise.
6172         (TREE_NO_UNSUED_WARNING, TREE_VIA_VIRTUAL, TREE_CONSTANT_OVERFLOW):
6173         Add check.
6174
6175 2004-03-23  Roger Sayle  <roger@eyesopen.com>
6176
6177         * fold-const.c (tree_expr_nonnegative_p): A&B is nonnegative when
6178         A is nonnegative or B is nonnegative.  Similarly A|B is nonnegative
6179         when both A and B are nonnegative.
6180         (tree_expr_nonzero_p): A|B is nonzero when A is nonzero or B is
6181         nonzero.
6182
6183 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
6184
6185         * fold-const.c (fold): Remove cases for INTEGER_CST, REAL_CST,
6186         VECTOR_CST, STRING_CST, COMPLEX_CST, and CONSTRUCTOR.
6187
6188 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
6189
6190         PR optimization/14669
6191         * fold-const.c (fold): Only unwiden integer comparisons for equality
6192         and inequality operators, or when the signedness doesn't change.
6193
6194 2004-03-23  Jakub Jelinek  <jakub@redhat.com>
6195
6196         * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
6197         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Set.
6198         * config/sparc/t-linux: New file.
6199
6200 2004-03-23  Richard Sandiford  <rsandifo@redhat.com>
6201
6202         * gcse.c (can_assign_to_reg_p): New function, split out from...
6203         (want_to_gcse_p): ...here.
6204         (compute_ld_motion_mems): Use can_assign_to_reg_p to validate
6205         the rhs of a store.
6206
6207 2004-03-22  Diego Novillo  <dnovillo@redhat.com>
6208
6209         * c-typeck.c (same_translation_unit_p): Fix pasto.
6210
6211 2004-03-22  David Edelsohn  <edelsohn@gnu.org>
6212
6213         * params.def (PARAM_MAX_SCHED_REGION_BLOCKS): New.
6214         (PARAM_MAX_SCHED_REGION_INSNS): New.
6215         * sched-rgn.c: Include params.h
6216         (MAX_RGN_BLOCKS): Delete.
6217         (MAX_RGN_INSNS): Delete.
6218         (too_large): Return bool.  Convert to PARAM_VALUE.
6219         * Makefile.in (sched-rgn.o): Depend on $(PARAMS_H).
6220         * doc/invoke.texi (param): Document max-sched-region-blocks and
6221         max-sched-region-insns.
6222
6223 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
6224
6225         * dwarf2out.c (is_subrange_type): Do not emit a subrange_type DIE
6226         for base types.
6227
6228 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
6229
6230         * dwarf2out.c (is_subrange_type): Minor code rework. No behavior
6231         change.
6232
6233 2004-03-22  Jakub Jelinek  <jakub@redhat.com>
6234
6235         PR c/14069
6236         * c-decl.c (finish_struct): Change type of incorrect flexible array
6237         field into error_mark_node.
6238
6239 2004-03-22  Andrew Pinski  <pinskia@physics.uc.edu>
6240
6241         PR target/14580
6242         * config/rs6000/rs6000.c (symbol_ref_operand): Reject symbols
6243         who are not local for Darwin PIC.
6244
6245 2004-03-22  Ulrich Weigand  <uweigand@de.ibm.com>
6246
6247         * regrename.c (regrename_optimize): Set regs_ever_live for all
6248         registers introduced as replacement.
6249
6250 2004-03-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
6251
6252         PR middle-end/14470
6253         * expr.c (mark_queue): New function.
6254         (emit_insns_enqueued_after_mark): New function replacing
6255         emit_queue.  Clear the body of emitted queued insns.
6256         (emit_queue): Call emit_insns_enqueued_after_mark.
6257         (store_expr): Mark the increment queue on entry.  Emit
6258         only the incrementations queued when expanding the source.
6259
6260 2004-03-22  Nathanael Nerode  <neroden@gcc.gnu.org>
6261
6262         * configure.ac: Allow --disable-coverage-flags (for the future benefit
6263         of top level bootstrap, and consistency).  Reindent.
6264         * configure: Regenerate.
6265
6266 2004-03-21  Kazu Hirata  <kazu@cs.umass.edu>
6267
6268         * bt-load.c, builtins.c, cfghooks.c, cfgrtl.c, gcse.c,
6269         ggc-page.c, integrate.c, var-tracking.c, web.c: Remove
6270         unnecessary casts.
6271
6272 2004-03-22  Danny Smith  <dannysmith@users.sourceforge.net>
6273
6274         PR target/14291
6275         * gcov-io.h (gcov_truncate): Define ftruncate as _chsize for
6276         __MINGW32__.
6277
6278 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
6279
6280         * config/s390/s390.md ("*doloop_si"): Change predicate for operand 2
6281         to nonimmediate_operand.
6282         ("*doloop_di"): Likewise.
6283
6284 2004-03-21  Alexandre Oliva  <aoliva@redhat.com>
6285
6286         * real.h (struct real_value): Use the same type for all
6287         bitfields.  Rename exp to uexp.
6288         (REAL_EXP, SET_REAL_EXP): New accessor macros for uexp.
6289         Adjust all uses of exp...
6290         * builtins.c: ... here, ...
6291         * emit-rtl.c: ... here, and ...
6292         * real.c: ... and here.
6293
6294 2004-03-21  Gabriel Dos Reis  <gdr@integrable-solutions.net>
6295
6296         * pretty-print.c (pp_base_maybe_space): New function.
6297         * pretty-print.h (pp_base_maybe_space): Declare.
6298         (pp_maybe_space): New macro.
6299
6300 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
6301
6302         * config/s390/s390.md ("addti3", "subti3"): New insns and splitters.
6303
6304 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
6305
6306         * expmed.c (choose_mult_variant): Pass MULT_COST as argument instead
6307         of using register multiplication cost.
6308         (expand_mult): Adapt choose_mult_variant call.
6309         (expand_mult_highpart): Call choose_mult_variant with WIDER_MODE
6310         of MODE; pass appropriate cost bound.  Adjust result when
6311         performing signed multiplication by a negative constant.
6312         Don't use intermediate modes larger than word_mode.
6313
6314 2004-03-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6315
6316         * alias.c (get_alias_set): Remove handling of PLACEHOLDER_EXPR.
6317         * emit-rtl.c (component_ref_for_mem_expr): Likewise.
6318         (set_mem_attributes_minus_bitpos): Call SUBSTITUTE_PLACEHOLDER_IN_EXPR.
6319         * explow.c (expr_size): Likewise.
6320         * expr.h (placeholder_list, find_placeholder): Deleted.
6321         * expr.c (store_constructor): Likewise.
6322         (get_inner_reference): Likewise.  Also don't call find_placeholder.
6323         (placeholder_list, find_placeholder): Deleted.
6324         (is_aligning_offset): Don't handle WITH_RECORD_EXPR, PLACEHOLDER_EXPR.
6325         (expand_expr_real, cases PLACEHOLDER_EXPR, WITH_RECORD_EXPR): Likewise.
6326         (highest_pow2_factor, case WITH_RECORD_EXPR): Remove.
6327         * dojump.c (do_jump, case WITH_RECORD_EXPR): Likewise.
6328         * dwarf2out.c (loc_descriptor_from_tree, case WITH_RECORD_EXPR):
6329         Likewise.
6330         * fold-const.c (invert_truthvalue, case WITH_RECORD_EXPR): Likewise.
6331         (extract_muldiv, case WITH_RECORD_EXPR): Likewise.
6332         * tree.c (expr_align, case WITH_RECORD_EXPR): Likewise.
6333         (contains_placeholder_p): Don't handle WITH_RECORD_EXPR.
6334         Clean up by using first_rtl_op.
6335         (substitute_in_expr): Use SUBSTITUTE_IN_EXPR for recursive call.
6336         (substitute_placeholder_in_expr): New function.
6337         * tree.def (WITH_RECORD_EXPR): Deleted.
6338         * tree.h (SUBSTITUTE_IN_EXPR, SUBSTITUTE_PLACEHOLDER_IN_EXPR): New.
6339         (substitute_placeholder_in_expr): New.
6340
6341 2004-03-21  Andrew Pinski  <pinskia@gcc.gnu.org>
6342
6343         * dojump.c (prefer_and_bit_test): Fix which part of
6344         the and_test is replaced.
6345
6346 2004-03-21  Joseph S. Myers  <jsm@polyomino.org.uk>
6347
6348         * frontends.texi: Add missing line.
6349
6350 2004-03-21  Zack Weinberg  <zack@codesourcery.com>
6351             Chris Devers  <cdevers@pobox.com>
6352             Joseph S. Myers  <jsm@polyomino.org.uk>
6353
6354         * doc/frontends.texi: Rewrite.
6355         * doc/gcc.texi: Update last modification date.
6356
6357 2004-03-21  Josef Zlomek  <zlomekj@suse.cz>
6358
6359         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Print the debug
6360         message before redirecting the edge.
6361
6362 2004-03-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6363
6364         * emit-rtl.c (set_mem_attributes_minus_bitpos): Set MEM_POINTER
6365         flag.
6366         * explow.c (force_not_mem): Set REG_POINTER flag according to
6367         MEM_POINTER one.
6368         * rtl.h (MEM_POINTER): New macro.
6369         (struct rtx_def): Use integrated for MEM_SCALAR_P and frame_related
6370         for MEM_POINTER.
6371
6372 2004-03-20  Roger Sayle  <roger@eyesopen.com>
6373
6374         PR target/13889
6375         * cse.c (fold_rtx): Avoid substituting constants into unary
6376         conversion operations.
6377
6378 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
6379
6380         * fold-const.c (fold): Replace "expr" with "t".
6381
6382 2004-03-20  Ian Lance Taylor  <ian@wasabisystems.com>
6383
6384         PR c/12373
6385         * c-typeck.c (tagged_types_tu_compatible_p): Don't use
6386         DECL_ORIGINAL_TYPE if there isn't one.
6387
6388 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
6389
6390         * fold-const.c (fold): Replace "final_type" with "type".
6391         Remove variable "final_type".
6392
6393 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
6394
6395         * fold-const.c (fold): Constify "type".
6396         Replace "TREE_TYPE (t)" with "type".
6397
6398 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
6399
6400         * bb-reorder.c, bt-load.c, c-decl.c, cfgcleanup.c, coverage.c,
6401         dwarf2asm.c, ifcvt.c, stor-layout.c, varasm.c: Replace calls
6402         via (*targetm.foo) () with targetm.foo ().
6403
6404 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
6405
6406         PR other/14630
6407         * doc/install.texi: Add info directory category and entry.
6408
6409 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
6410
6411         * fold-const.c (fold): Replace "t" with "tem" where it is used
6412         as a temporary variable.  Remove "orig_t" and all of its uses.
6413
6414 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
6415
6416         * fold-const.c (fold): Remove variable "invert".
6417         Move the handling of relational expressions that can be folded
6418         to a constant ...
6419         (fold_relational_const): ... here.
6420         (tree_expr_nonzero_p): New.
6421
6422 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
6423
6424         PR c/14635
6425         * builtins.def (nan, nanf, nanl, nans, nansf, nansl): Change to
6426         DEF_GCC_BUILTIN.
6427
6428 2004-03-20  Richard Sandiford  <rsandifo@redhat.com>
6429
6430         * Makefile.in (dojump.o): Depend on $(GGC_H) and dojump.h.
6431         (GTFILES): Add $(srcdir)/dojump.h.
6432         (gt-dojump.h): New dependency.
6433         * dojump.c (and_reg, and_test, shift_test): New static variables.
6434         (prefer_and_bit_test): New function.
6435         (do_jump): Use it to choose between (X & (1 << C)) and (X >> C) & 1.
6436
6437 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
6438
6439         * c-common.c, cfgcleanup.c, cgraphunit.c, c-pretty-print.c,
6440         expmed.c, ggc-common.c, jump.c, passes.c, recog.c, regmove.c,
6441         reorg.c, tree.h: Fix comment typos.
6442
6443 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
6444
6445         * alias.c, attribs.c, bt-load.c, builtins.c, c-common.c,
6446         c-decl.c, c-objc-common.c, c-typeck.c, calls.c, cfglayout.c,
6447         cse.c, dbxout.c, dwarf2out.c, except.c, final.c,
6448         haifa-sched.c, integrate.c, passes.c, rtlanal.c, sched-rgn.c,
6449         sched-vis.c, simplify-rtx.c, stor-layout.c, tree.c, varasm.c,
6450         vmsdbgout.c: Replace calls via (*targetm.foo) () with
6451         targetm.foo ().
6452
6453 2004-03-19  Ziemowit Laski  <zlaski@apple.com>
6454
6455         * config/rs6000/altivec.h (vec_dst, vec_dstst, vec_dststt,
6456         vec_dstt, vec_sld, vec_splat): Add prototypes, marked with
6457         always_inline attribute.
6458         * config/rs6000/rs6000.c (altivec_expand_dst_builtin):
6459         Treat expansion as completed even if literal argument is
6460         invalid (so that other expansions are not tried in vain).
6461
6462 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
6463
6464         * loop-doloop.c (add_test): Replace GEN_INT (0) with
6465         const0_rtx.
6466
6467 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
6468
6469         * fold-const.c (fold) <ABS_EXPR>: Move the handling of constants
6470         ...
6471         (fold_abs_const): ... here.
6472
6473 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6474
6475         * tree.h (TYPE_ARRAY_MAX_SIZE): Use type.maxval directly.
6476
6477 2004-03-19  Denis Chertykov  <denisc@overta.ru>
6478
6479         PR target/11520
6480         * config/avr/avr.md ("call_insn"): Handle explicit integer
6481         specially.
6482         (call_value_insn): Likewise.
6483
6484 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6485
6486         * tree.c (substitute_in_expr): Rewrite to simplify and be more generic.
6487
6488 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
6489
6490         * fold-const.c (negate_expr): Move the handling of constants
6491         ...
6492         (fold_negate_const): ... here.
6493
6494 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6495
6496         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): New macro and hook.
6497         * langhooks.h (struct lang_hooks_for_types): New field hash_types.
6498         * tree.c (debug_no_type_hash): Deleted.
6499         (type_hash_canon): Abort if passed a variant.
6500         Check lang_hooks.types.hash_types.
6501         (build_type_no_quals): Copy mode of POINTER_TYPE and REFERENCE_TYPE.
6502         (build_array_type): Remove unnecessary allocation of pointer type.
6503         (build_complex_type): Properly qualify resulting type.
6504
6505 2004-03-19  Paolo Bonzini  <bonzini@gnu.org>
6506
6507         * config/rs6000/rs6000.c (rs6000_init_builtins): Fix typo.
6508
6509 2004-03-19  Richard Sandiford  <rsandifo@redhat.com>
6510
6511         * expmed.c (choose_mult_variant, expand_mult_const): New, split from...
6512         (expand_mult): ...here.
6513         (extract_high_half): New, split out from expand_mult_highpart.
6514         (expand_highpart_optab): Likewise.  Don't clobber target prematurely.
6515         (expand_highpart): Evaluate the cost of a shift/add sequence,
6516         then see if any of the specialized optabs are cheaper.
6517
6518 2004-03-18  Ian Lance Taylor  <ian@wasabisystems.com>
6519
6520         * mklibgcc.in: Remove obsolete MAYBE_USE_COLLECT2.
6521
6522 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6523
6524         * convert.c (convert_to_real): Add more math builtins.
6525
6526 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6527
6528         * convert.c (convert_to_real): Reformat using switch stmt.
6529
6530 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
6531
6532         * c-common.c (pointer_int_sum): Do not complain about using
6533         pointers to pointers-to-members.
6534
6535 2004-03-18  Kazu Hirata  <kazu@cs.umass.edu>
6536
6537         * system.h (MD_ASM_CLOBBERS): Move to "Old target macros that
6538         have moved to the target hooks structure".
6539
6540 2004-03-18  James E Wilson  <wilson@specifixinc.com>
6541
6542         * config/mips/mips.md (type): Split move into arith and fmove.  Split
6543         hilo into mthilo and mfhilo.  Add trap.  Delete icmp.  Fix all uses.
6544         * config/mips/5400.md (ir_vr54_hilo, ir_vr54_arith, ir_vr54_fabs):
6545         Likewise.
6546         * config/mips/5500.md (ir_vr55_hilo, ir_vr55_arith, ir_vr55_fabs):
6547         Likewise.
6548         * config/mips/7000.md (rm7_int_other, rm7_mthilo, rm7_mfhilo,
6549         rm7_fp_quick): Likewise.
6550         * config/mips/9000.md (rm9k_int, rm9k_mfhilo, rm9k_mthilo,
6551         rm9k_fquick): Likewise.
6552         * config/mips/sr71k.md (ir_sr70_hilo, ir_sr70_arith, ir_sr70_fabs):
6553         Likewise.
6554         (ir_sr70_icmp): Delete.
6555
6556 2004-03-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6557
6558         * tree.h (TREE_CHECK2, TREE_CHECK3, TREE_CHECK5): New macros.
6559         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New decl.
6560         (FUNC_OR_METHOD_CHECK, SET_ARRAY_OR_VECTOR_CHECK): New macros.
6561         (REC_OR_UNION_CHECK, NUMERICAL_TYPE_CHECK): Likewise.
6562         (TYPE_VALUES, TYPE_DOMAIN, TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD):
6563         Protect with proper check.
6564         (TYPE_ARG_TYPES, TYPE_METHOD_BASETYPE, TYPE_OFFSET_BASETYPE): Likewise.
6565         (TYPE_MIN_VALUE, TYPE_MAX_VALUE): Likewise.
6566         * tree.c (type_hash_eq): Rewrite to access proper fields for each type.
6567         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New.
6568         * c-typeck.c (build_array_ref): Use TYPE_DOMAIN, not TYPE_VALUES.
6569         * dwarf2out.c (gen_enumeration_type_die): Use TYPE_VALUES,
6570         not TYPE_FIELDS.
6571         * stor-layout.c (set_sizetype): Use TYPE_ORIG_SIZE_TYPE.
6572
6573 2004-03-18  Mostafa Hagog  <mustafa@il.ibm.com>
6574
6575         * gcse.c (eliminate_partially_redundant_loads): Reject change if
6576         dest is set between beginning and current insn.
6577
6578 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
6579
6580         * c-decl.c (grokdeclarator): Do not complain about redeclaring
6581         visible "static" identifiers "extern" in a local scope.
6582         * dwarf2out.c (loc_descriptor_from_tree): Handle pre- and
6583         post-increments/decrements.
6584
6585 2004-03-18  Bob Wilson  <bob.wilson@acm.org>
6586
6587         * config/xtensa/xtensa.c (current_function_arg_words): Delete.
6588         (xtensa_builtin_saveregs): Use current_function_args_info.arg_words.
6589         (xtensa_va_start): Remove assignment to current_function_arg_words.
6590
6591 2004-03-18  Richard Sandiford  <rsandifo@redhat.com>
6592
6593         * alias.c (record_set): Detect the case where a register is assigned
6594         a new value that has the same base term as the old one.
6595
6596 2004-03-18  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6597
6598         * doloop.c: Removed.
6599         * loop-doloop.c: New file.
6600         * Makefile.in (doloop.o): Remove.
6601         (loop-doloop.o): New.
6602         * cfgloop.h (get_loop_level, doloop_optimize_loops): Declare.
6603         * cfgloopanal.c (get_loop_level): New function.
6604         * loop-iv.c (iv_number_of_iterations): Handle case when loop
6605         is leaved immediatelly.
6606         * loop.c (strength_reduce): Do not call doloop optimization.
6607         * loop.h (LOOP_BCT): Removed.
6608         * passes.c (rest_of_handle_loop_optimize): Do not use LOOP_BCT.
6609         (rest_of_handle_loop2): Call doloop_optimize_loops.
6610         (rest_of_compilation): Test for optimizations moved to
6611         rest_of_handle_loop2.
6612
6613 2004-03-17  Fariborz Jahanian <fjahanian@apple.com>
6614
6615         * config/rs6000/rs6000.c (rs6000_stack_info): correct reg_size
6616         for mixed mode.
6617         (rs6000_emit_prologue): Ditto.
6618         (rs6000_emit_epilogue): Ditto.
6619         * config/rs6000/rs6000.h: Definition of DWARF_CIE_DATA_ALIGNMENT
6620         macro for mixed mode.
6621
6622 2004-03-18  Jan Hubicka  <jh@suse.cz>
6623
6624         * predict.c (propagate_freq): Compute correctly frequency of
6625         EXIT_BLOCK.
6626
6627 2004-03-17  Eric Christopher  <echristo@redhat.com>
6628
6629         * builtins.c (apply_args_size): Use reg_raw_mode.
6630         (apply_result_size): Ditto.
6631
6632 2004-03-17  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
6633
6634         PR target/14620
6635         * config/rtems.h: Add STD_LIB_SPEC and LIB_SPEC.
6636
6637 2004-03-17  Jakub Jelinek  <jakub@redhat.com>
6638
6639         * config/rs6000/t-linux64 (bispecs): Don't add -mlong-double-128 for
6640         32-bit builds when defaulting to 32-bit.
6641
6642 2004-03-17  Jan Hubicka  <jh@suse.cz>
6643
6644         * cfgrtl.c (rtl_create_basic_block): Pre-allocate basic_block_info
6645         array.
6646
6647 2004-03-17  James E Wilson  <wilson@specifixinc.com>
6648
6649         * config/mips/mips.md (zero_extendsidi2): Add length attribute.
6650         (hazard_nop): Change type to nop.
6651         (type): Split arith into arith, shift, slt, clz.  Delete darith.
6652         Fix all uses.  Change arith to multi if more than one insn emitted.
6653         * config/mips/5400.md (ir_vr54_arith): Likewise.
6654         * config/mips/5500.md (ir_vr55_arith): Likewise.
6655         * config/mips/7000.md (rm7_int_other): Likewise.
6656         * config/mips/9000.md (rm9k_int): Likewise.
6657         * config/mips/sr71k.md (ir_sr70_arith): Likewise.
6658
6659 2004-03-17  Joel Brobecker  <brobecker@gnat.com>
6660
6661         * dwarf2out.c (subrange_type_die): Define new variable "subtype"
6662         to hold the subtype tree instead of recomputing it several times.
6663
6664 2004-03-17  Kazu Hirata  <kazu@cs.umass.edu>
6665
6666         * config/mn10300/mn10300.c (notice_update_cc): Don't handle
6667         CC_INVERT.
6668         * config/mn10300/mn10300.md (cc): Remove "invert".
6669
6670 2004-03-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6671
6672         * builtins.c (integer_valued_real_p): Add builtin rint.
6673         (fold_builtin): Likewise.
6674         * convert.c (convert_to_real): Likewise.
6675
6676         * convert.c (convert_to_real): Fix typos in `long double'
6677         builtins.
6678
6679 2004-03-16  Mark Mitchell  <mark@codesourcery.com>
6680
6681         PR c++/14481
6682         * fold-const.c (fold): Set TREE_NO_UNUSED_WARNING on implicitly
6683         generated COMPOUND_EXPRs.
6684
6685 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
6686
6687         * config/h8300/t-rtems (h8300-*-rtems*): New.
6688
6689 2004-03-16  Eric Christopher  <echristo@redhat.com>
6690
6691         * doc/cppopts.texi(fwide-exec-charset): Fix typo.
6692
6693 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
6694
6695         * config/i386/i386-protos.h: Add a prototype for
6696         ix86_reverse_condition.
6697         * config/i386/i386.c (ix86_reverse_condition): New.
6698         * config/i386/i386.h (REVERSE_CONDITION): Use
6699         ix86_reverse_condition.
6700         * config/i386/i386.md: Use ix86_reverse_condition instead of
6701         REVERSE_CONDITION.
6702
6703 2004-03-16  J. Brobecker  <brobecker@gnat.com>
6704
6705         * dwarf2out.c (loc_descriptor_from_tree): Add handling for MIN_EXPR.
6706
6707 2004-03-16  Nathanael Nerode  <neroden@gcc.gnu.org>
6708
6709         PR bootstrap/12974
6710         * Makefile.in: Pass $(INCLUDES) down to libgcc.mk explicitly.
6711
6712 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
6713
6714         * c-common.c (c_common_type_for_mode): Build vector types on
6715         demand.
6716         (handle_mode_attribute): Deprecate using the mode attribute
6717         to create vector types.  Fix indentation.
6718         (vector_type_node_list): Remove.
6719         (handle_vector_size_attribute): Create vector types on demand.
6720         Strip a NON_LVALUE_EXPR from the attribute if there is one.
6721         * c-typeck.c (comptypes): Make vector types compatible if they
6722         have the same underlying mode.
6723         (convert_for_assignment): Use comptypes to convert between
6724         vector types.
6725         * tree.c (build_common_tree_nodes_2): Do not create vector types.
6726         * config/arm/arm.c (arm_init_iwmmxt_builtins): Create necessary
6727         vector types.
6728         * tree.h: Remove vector types.
6729         * config/i386/i386.c (i386_init_mmx_sse_builtins): Likewise.
6730         * config/rs6000/rs6000.c (rs6000_init_builtins): Likewise.
6731         (V16QI_type_node, V2SI_type_node, V2SF_type_node, V4HI_type_node,
6732         V4SI_type_node, V4SF_type_node, V8HI_type_node): New globals.
6733         * doc/extend.texi (Vector Types): Document how to use the
6734         vector_size attribute to create vectors, rather than mode.
6735
6736         * config/arm/mmintrin.h: Use vector_size attribute, not mode.
6737         * config/i386/emmintrin.h: Likewise.
6738         * config/i386/mmintrin.h: Likewise.
6739         * config/i386/xmmintrin.h: Likewise.
6740         * config/sh/ushmedia.h: Likewise.
6741
6742 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
6743
6744         * config/freebsd-spec.h, config/arc/arc-protos.h,
6745         config/arm/aout.h, config/arm/elf.h, config/arm/freebsd.h,
6746         config/arm/linux-gas.h, config/arm/semi.h,
6747         config/cris/cris-protos.h, config/i386/xm-djgpp.h,
6748         config/ia64/freebsd.h, config/mips/7000.md,
6749         config/mips/9000.md, config/ns32k/ns32k-protos.h,
6750         config/sparc/pbd.h: Update copyright.
6751
6752 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
6753
6754         PR target/14577
6755         * config.gcc: Switch sh-*-rtems* to ELF.  Add sh-*-rtemscoff.
6756
6757 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
6758
6759         * combine.c (combine_simplify_rtx): Remove the "last"
6760         parameter and its documentation.  Adjust recursive calls.
6761         (simplify_logical): Always perform the only simplification
6762         controlled by "last", if the simplified expression is
6763         actually different.
6764         (try_combine): Do not pass the "last" parameter to
6765         combine_simplify_rtx.
6766
6767 2004-03-16  Richard Sandiford  <rsandifo@redhat.com>
6768
6769         PR target/14599
6770         * config/mips/mips.md (UNSPEC_GP): New constant.
6771         * config/mips/mips.c (CONST_GP_P): Expect the CONST to contain
6772         an UNSPEC instead of (reg $gp).
6773         (mips16_gp_pseudo_reg): Change accordingly.
6774         (print_operand): Print $gp directly when handling CONST_GP_P.
6775
6776 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
6777
6778         * config.gcc, config/m68k/linux.h: Implement with-cpu for m68k-linux.
6779         * longlong.h: Make code 68060 clean when compiling for m68060.
6780
6781 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
6782
6783         * config/m68k/m68k.md: Fix constraints for bitfield instructions.
6784         * doc/md.texi: Clarify description of "i" constraint.
6785
6786 2004-03-15  James E Wilson  <wilson@specifixinc.com>
6787
6788         * config/mips/mips.md (type): Split load into load, fpload, fpidxload.
6789         Split store into store, fpstore, fpidxstore.  Fix all uses.
6790         * config/mips/5400.md (ir_vr54_load, ir_vr54_store, ir_vr54_fstore):
6791         Likewise.
6792         * config/mips/5500.md (ir_vr55_load, i5_vr55_store): Likewise.
6793         * config/mips/7000.md (rm7_ld, rm7_st): Likewise.
6794         * config/mips/9000.md (rm9k_load, rm9k_store): Likewise.
6795         * config/mips/sr71k.md (ir_sr70_load, ir_sr70_store, ir_sr70_fload,
6796         ir_sr70_fstore): Likewise.
6797
6798 2004-03-15  Richard Henderson  <rth@redhat.com>
6799
6800         PR middle-end/14535
6801         * except.c (collect_one_action_chain): Record action for cleanup
6802         outer of exception spec.
6803
6804 2004-03-15  Ian Lance Taylor  <ian@wasabisystems.com>
6805
6806         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
6807         Fix the check for abort and only do the mmap if we can.
6808
6809 2004-03-15  Eric Botcazou  <ebotcazou@act-europe.fr>
6810
6811         * config/sparc/sparc.h: Rework comments about the code model
6812         in 64-bit environment and the mode 'Pmode'.
6813         * doc/invoke.texi (SPARC options): Rework description of the
6814         different code models supported in 64-bit environment.
6815
6816 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
6817
6818         * defaults.h (REVERSIBLE_CC_MODE): Define.
6819         * jump.c (reversed_comparison_code_parts): Don't check if
6820         REVERSIBLE_CC_MODE is defined.
6821
6822 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
6823
6824         * c-incpath.c, c-incpath.h, c-pch.c, c.opt, cppexp.c,
6825         et-forest.h, genattr.c, ggc-none.c, hosthooks-def.h,
6826         hosthooks.h, params.h, ra-colorize.c, web.c,
6827         config/darwin-c.c, config/alpha/freebsd.h, config/arm/pe.c,
6828         config/avr/avr-protos.h, config/avr/avr.md,
6829         config/fr30/fr30-protos.h, config/fr30/fr30.md,
6830         config/h8300/fixunssfsi.c, config/i386/darwin.h,
6831         config/i386/freebsd.h, config/i386/freebsd64.h,
6832         config/ia64/hpux.h, config/ia64/unwind-ia64.c,
6833         config/ip2k/libgcc.S, config/m32r/xm-m32r.h,
6834         config/mmix/mmix-modes.def, config/ns32k/netbsd.h,
6835         config/ns32k/ns32k.md, config/pa/pa64-hpux.h,
6836         config/pa/pa64-regs.h, config/rs6000/aix41.h,
6837         config/rs6000/aix43.h, config/rs6000/host-darwin.c,
6838         config/sparc/aout.h, config/sparc/freebsd.h,
6839         config/sparc/litecoff.h, config/vax/vax-protos.h,
6840         doc/hostconfig.texi, doc/include/gcc-common.texi: Update
6841         copyright.
6842
6843 2004-03-15  Paul Brook  <paul@codesourcery.com>
6844
6845         * config/arm/arm.c (thumb_expand_prologue): Tie prologue insns to fp.
6846
6847 2004-03-15  Gabriel Dos Reis  <gdr@integrable-solutions.net>
6848
6849         * c-pretty-print.c (pp_c_semicolon): Fix formatting.
6850         (pp_c_cv_qualifier): Document.
6851         (pp_c_space_for_pointer_operator): Likewise.
6852         (pp_c_integer_constant): Likewise.
6853         (pp_c_identifier): Likewise.
6854         (pp_c_init_declarator): Don't print function body.
6855
6856 2004-03-14  Joseph S. Myers  <jsm@polyomino.org.uk>
6857
6858         * doc/contrib.texi, doc/extend.texi, doc/gcov.texi,
6859         doc/install.texi, doc/invoke.texi, doc/makefile.texi,
6860         doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi: Capitalize
6861         "gcc", "g++" and "g77" or mark up with appropriate markup.  Adjust
6862         wording and grammar.
6863
6864 2004-03-14  Roger Sayle  <roger@eyesopen.com>
6865
6866         * alias.c (get_alias_set): Replace calls via (*lang_hooks.foo) ()
6867         with lang_hooks.foo ().
6868         * builtins.c (expand_builtin_va_arg): Likewise.
6869         * c-common.c (fname_as_string, c_common_truthvalue_conversion,
6870         c_common_type_for_mode, c_common_nodes_and_builtins,
6871         handle_mode_attribute, handle_vector_size_attribute): Likewise.
6872         * c-convert.c (convert): Likewise.
6873         * c-format.c (check_format_types): Likewise.
6874         * c-objc-common.c (c_tree_printer): Likewise.
6875         * c-typeck.c (build_unary_op, build_conditional_expr,
6876         build_binary_op): Likewise.
6877         * calls.c (try_to_integrate, expand_call,
6878         emit_library_call_value_1): Likewise.
6879         * cgraph.c (cgraph_node_name, cgraph_function_possibly_inlined_p):
6880         Likewise.
6881         * cgraphunit.c (record_call_1, cgraph_analyze_function,
6882         cgraph_expand_function): Likewise.
6883         * convert.c (convert_to_pointer, convert_to_integer): Likewise.
6884         * coverage.c (build_fn_info_type, build_ctr_info_type,
6885         build_gcov_info, create_coverage): Likewise.
6886         * dbxout.c (dbxout_init): Likewise.
6887         * diagnostic.c (diagnostic_report_current_function): Likewise.
6888         * dojump.c (do_jump): Likewise.
6889         * dwarf2out.c (dwarf2_name): Likewise.
6890         * except.c (init_eh): Likewise.
6891         * explow.c (expr_size, int_expr_size): Likewise.
6892         * expmed.c (make_tree, const_mult_add_overflow_p, expand_mult_add):
6893         Likewise.
6894         * expr.c (store_expr, store_constructor, safe_from_p,
6895         expand_expr_real, do_store_flag, try_casesi): Likewise.
6896         * function.c (push_function_context_to, pop_function_context_from,
6897         free_after_parsing, assign_stack_local_1, assign_stack_temp_for_type,
6898         put_var_into_stack, allocate_struct_function, current_function_name):
6899         Likewise.
6900         * integrate.c (copy_decl_for_inlining, expand_inline_function):
6901         Likewise.
6902         * langhooks.c (lhd_clear_binding_stack, write_global_declarations,
6903         lhd_print_error_function): Likewise.
6904         * opts.c (handle_option, decode_options): Likewise.
6905         * passes.c (open_dump_file): Likewise.
6906         * print-tree.c (print_node): Likewise.
6907         * stmt.c (expand_fixup, fixup_gotos, expand_asm_operands,
6908         expand_decl_cleanup, emit_case_nodes): Likewise.
6909         * stor-layout.c (variable_size): Likewise.
6910         * toplev.c (announce_function, wrapup_global_declarations,
6911         check_global_declarations, compile_file, default_tree_printer,
6912         process_options, lang_dependent_init, finalize): Likewise.
6913         * tree-dump.c (dequeue_and_dump): Likewise.
6914         * tree-inline.c (remap_decl, remap_block, copy_body_r,
6915         initialize_inlined_parameters, declare_return_variable,
6916         inlinable_function_p, expand_call_inline, optimize_inline_calls,
6917         walk_tree, copy_tree_r): Likewise.
6918         * tree-optimize.c (tree_rest_of_compilation): Likewise.
6919         * tree.c (decl_assembler_name, tree_size, size_in_bytes, staticp,
6920         unsafe_for_reeval, get_unwidened, get_narrower, get_callee_fndecl,
6921         variably_modified_type_p, dump_tree_statistics): Likewise.
6922         * varasm.c (assemble_variable, compare_constant, copy_constant,
6923         force_const_mem, compute_reloc_for_constant, output_constant,
6924         output_addressed_constants, initializer_constant_valid_p): Likewise.
6925
6926 2004-03-14  Kelley Cook  <kcook@gcc.gnu.org>
6927
6928         * doc/install.texi: Make autoconf 2.13 the exception, not the rule.
6929
6930 2004-03-14  Andreas Tobler  <a.tobler@schweiz.ch>
6931
6932         * doc/install.texi: Reflect autoconf and automake version for
6933         libffi. Update autoconf version to 2.59.
6934
6935 2004-03-13  Roger Sayle  <roger@eyesopen.com>
6936
6937         * fold-const.c (negate_expr, operand_equal_for_comparison_p,
6938         optimize_bit_field_compare, decode_field_reference, all_ones_mask_p,
6939         make_range, build_range_check, fold_range_test, unextend,
6940         constant_boolean_node, fold_binary_op_with_conditional_arg,
6941         fold_truthop, fold_mathfn_compare, fold_inf_compare,
6942         fold_single_bit_test, fold): Replace calls via (*lang_hooks.foo) ()
6943         with lang_hooks.foo ().
6944
6945 2004-03-14  Richard Earnshaw  <rearnsha@arm.com>
6946
6947         * arm.h (EXTRA_CONSTRAINT_STR_ARM): Update comment.
6948
6949 2004-03-13  Dara Hazeghi  <dhazeghi@yahoo.com>
6950
6951         * doc/install.texi: Note status of -fnew-ra.
6952
6953 2004-03-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
6954
6955         PR middle-end/14470
6956         * expr.c (store_expr): Call emit_queue before generating the move
6957         from the temporary to the original target.  Protect the temporary
6958         from emit_queue.
6959
6960 2004-03-13  Jakub Jelinek  <jakub@redhat.com>
6961
6962         PR target/14533
6963         * config/s390/s390.c (legitimize_pic_address): Don't abort on UNSPEC
6964         other than UNSPEC_GOTOFF.
6965
6966 2004-03-13  Richard Earnshaw  <rearnsha@arm.com>
6967
6968         * arm.c (arm_legitimate_address_p): New argument, OUTER.  Pass through
6969         to arm_legitimate_index_p.  Update all callers with SET as default
6970         value.
6971         (arm_legitimate_index_p): New argument, OUTER.  Restrict the index
6972         range if OUTER is a sign-extend operation on QImode.  Correctly
6973         reject shift operations on sign-extended QImode addresses.
6974         (bad_signed_byte_operand): Delete.
6975         (arm_extendqisi_mem_op): New function.
6976         * arm.h (EXTRA_CONSTRAINT_ARM): Delete.  Replace with...
6977         (EXTRA_CONSTRAINT_STR_ARM): ... this.  Handle extended address
6978         constraints.
6979         (CONSTRAINT_LEN): New.
6980         (EXTRA_CONSTRAINT): Delete.  Replace with...
6981         (EXTRA_CONSTRAINT_STR): ... this.
6982         (PREDICATE_CODES): Remove bad_signed_byte_operand.
6983         * arm.md (extendqihi_insn): Use new constraint Uq.  Rework.  Length
6984         is now always default.
6985         (define_splits for bad sign-extend loads): Delete.
6986         (arm_extendqisi, arm_extendqisi_v5): Likewise.
6987         * arm/vfp.md (arm_movsi_vfp, arm_movdi_vfp, movsf_vfp, movdf_vfp):
6988         Rework 'U' constraint to 'Uv'.
6989         * arm-protos.h: Remove bad_signed_byte_operand.  Add
6990         arm_extendqisi_mem_op.
6991         * doc/md.texi (ARM constraints): Rename VFP constraint (now Uv).
6992         Add Uq constraint.
6993
6994 2004-03-13  Alan Modra  <amodra@bigpond.net.au>
6995
6996         * config/rs6000/rs6000.c (rs6000_va_arg): Replace SPLIT_COMPLEX_ARGS
6997         with targetm version.
6998
6999         PR target/14567
7000         * config/rs6000/rs6000.h (UNITS_PER_ARG, RS6000_ARG_SIZE): Delete.
7001         (HARD_REGNO_MODE_OK): Disallow TFmode for fp31.
7002         * config/rs6000/rs6000.c (rs6000_arg_size): New function.
7003         Update all users of RS6000_ARG_SIZE.
7004         (function_arg_advance): Count fregno using mode size.
7005         (function_arg): Handle long double split over regs and memory.
7006         (function_arg_partial_nregs): Likewise.
7007         (rs6000_va_arg): Repackage complex args.
7008
7009 2004-03-13  Dean Ferreyra <dferreyra@igc.org>
7010
7011         PR target/14047
7012         * config/avr/avr.c (avr_progmem_p): Add "attributes" parameter.
7013         (avr_insert_attributes): Pass "attributes" to avr_progmem_p.
7014         * config/avr/avr-protos.h (avr_progmem_p): Change prototype.
7015
7016 2004-03-12  Jakub Jelinek  <jakub@redhat.com>
7017
7018         * config/rs6000/rs6000-protos.h (rs6000_output_dwarf_dtprel): Add
7019         prototype.
7020         * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): New.
7021         * config/rs6000/rs6000.h (ASM_OUTPUT_DWARF_DTPREL): Define.
7022
7023 2003-03-12  Andrew Pinski  <apinski@apple.com>
7024
7025         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
7026         Use ret instead of result. Use addr instead of base.
7027
7028 2004-03-12  David Edelsohn  <edelsohn@gnu.org>
7029
7030         * doc/install.texi (*-ibm-aix*): Document assembler and achiver
7031         fixes required by libstdc++ and update installation instructions
7032         for libstdc++.a.
7033
7034 2004-03-12  Danny Smith  <dannysmith@users.sourceforge.net>
7035
7036         * config/i386/winnt.c (i386_pe_strip_name_encoding_full): Strip
7037         leading '@' on fastcall symbols before stripping suffix.
7038
7039 2004-03-12  Roger Sayle  <roger@eyesopen.com>
7040
7041         * combine.c (unmentioned_reg_p): New function to check whether an
7042         expression is a "specialization" of another, i.e. that there are
7043         no registers or memory references mentioned in the first that don't
7044         appear in the second.
7045         (unmentioned_reg_p_1): New helper subroutine of unmentioned_reg_p.
7046         (combine_instructions): Also try combining instructions using the
7047         REG_EQUAL note from a preceding log-linked instruction.
7048
7049 2004-03-12  Roger Sayle  <roger@eyesopen.com>
7050
7051         * config/i386/i386.c (ix86_split_ashrdi): Optimize shift by 63.
7052
7053 2004-03-12  Matt Austern  <austern@apple.com>
7054
7055         * target.h (struct gcc_target): New target hook, unwind_label.
7056         * target-def.h (TARGET_ASM_EMIT_UNWIND_LABEL): New hook.
7057         * output.h (default_emit_unwind_label): New function.
7058         * default.h (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): New macro.
7059         (TARGET_USES_WEAK_UNWIND_INFO): New target macro.
7060         (TARGET_SUPPORTS_HIDDEN): New target macro.
7061         * dwarf2out.c (struct dw_fde_struct): Add field for function decl
7062         that corresponds to this FDE.
7063         (FRAME_BEGIN_LABEL): Allow target to override default label.
7064         (output_call_frame_info): If FDEs are linknonce, then use extra
7065         indirection for FDE encoding, output a label for each FDE, and
7066         output an empty label for each function without an FDE.
7067         (dwarf2out_begin_prologue): Set up decl field when creating an FDE.
7068         * varasm.c (globalize_decl): Call ASM_MAKE_LABEL_LINKONCE for
7069         decls with DECL_ONE_ONLY set, if that macro is defined.
7070         (make_decl_one_only): Don't use DECL_COMMON if we're compiling
7071         for a SUPPORTS_ONE_ONLY target.
7072         * config/darwin-protos.h (darwin_unique_section): Declare.
7073         (darwin_asm_named_section): Likewise.
7074         (darwin_section_type_flags): Likewise.
7075         (darwin_non_lazy_pcrel): Likewise.
7076         (darwin_emit_unwind_label): Likewise.
7077         (darwin_make_decl_one_only): Likewise.
7078         * config/darwin.c (machopic_finish): Get rid of tweak that
7079         eliminate stubs for symbols that are defined.
7080         (darwin_encode_section_info): Don't treat weak functions as defined.
7081         (darwin_make_decl_one_only): Define.
7082         (darwin_asm_named_section): Likewise.
7083         (darwin_section_type_flags): Likewise.
7084         (darwin_unique_section): Likewise.
7085         (darwin_emit_unwind_label): Likewise.
7086         (darwin_non_lazy_pcrel): Likewise.
7087         (darwin_asm_output_dwarf_delta): Difference between two labels is
7088         local only if both labels are local.
7089         * config/darwin.h (MAKE_DECL_ONE_ONLY): Define.
7090         (ASM_MAKE_LABEL_LINKONCE): Likewise.
7091         (TARGET_SUPPORTS_HIDDEN): Likewise.
7092         (TARGET_USES_WEAK_UNWIND_INFO): Likewise.
7093         (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): Likewise.
7094         (FRAME_BEGIN_LABEL): Likewise.
7095         (ASM_DECLARE_OBJECT_NAME): Make references to weak symbols indirect.
7096         (ASM_DECLARE_FUNCTION_NAME): Likewise.
7097         (darwin_eh_frame_section): Give __eh_frame section the coalesced flag.
7098         (TARGET_ASM_UNIQUE_SECTION): Define.
7099         (EH_FRAME_SECTION_NAME): Define.
7100         (EH_FRAME_SECTION_ATTR): Likewise.
7101         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
7102         (TARGET_ASM_NAMED_SECTION): Likewise.
7103         (TARGET_SECTION_TYPE_FLAGS): Likewise.
7104         * doc/tm.texi: Document TARGET_USES_WEAK_UNWIND_INFO,
7105         TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, TARGET_SUPPORTS_HIDDEN,
7106         TARGET_ASM_EMIT_UNWIND_LABEL.
7107
7108 2004-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7109
7110         * builtins.c (expand_builtin_mathfn): Add pow10* to the
7111         existing exp10* case.
7112         (expand_builtin): Likewise.
7113
7114 2004-03-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
7115
7116         * doc/tm.texi (registers) <Values in Registers>: Add
7117         entry for REGMODE_NATURAL_SIZE.
7118
7119 2004-03-12  Richard Henderson  <rth@redhat.com>
7120
7121         PR target/14547
7122         * target.h (struct gcc_target): Move calls substructure before
7123         booleans.  Add split_complex_arg.
7124         * function.c (assign_parms, split_complex_args): Use it.
7125         * calls.c (expand_call): Likewise.
7126         (split_complex_values): Likewise.  Check for splittable types
7127         before allocating memory.
7128         (split_complex_types): Likewise.
7129         * system.h (SPLIT_COMPLEX_ARGS): Poison.
7130         * expr.h (SPLIT_COMPLEX_ARGS): Remove.
7131         * target-def.h (TARGET_SPLIT_COMPLEX_ARG): New.
7132         * config/alpha/alpha.c (alpha_split_complex_arg): New.
7133         (TARGET_SPLIT_COMPLEX_ARG): New.
7134         * config/alpha/alpha.h (SPLIT_COMPLEX_ARGS): Remove.
7135         * config/rs6000/rs6000.c (TARGET_SPLIT_COMPLEX_ARG): New.
7136         (rs6000_override_options): Zap it for non-AIX.
7137         (rs6000_function_value): Use targetm.calls.split_complex_arg.
7138         * config/rs6000/rs6000.h (SPLIT_COMPLEX_ARGS): Remove.
7139         * config/xtensa/xtensa.c (TARGET_SPLIT_COMPLEX_ARG): New.
7140         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Remove.
7141         * doc/tm.texi (TARGET_SPLIT_COMPLEX_ARG): Modify from old
7142         SPLIT_COMPLEX_ARGS entry.
7143
7144 2004-03-11  Richard Henderson  <rth@redhat.com>
7145
7146         * config/alpha/alpha.c (xfloating_ops, vax_cvt_ops): New.
7147         (alpha_lookup_xfloating_lib_func): Use them, return rtx.
7148         (alpha_emit_xfloating_arith): Update to match.
7149         (alpha_emit_xfloating_compare): Likewise.
7150         (alpha_emit_xfloating_cvt): Likewise.
7151         (alpha_emit_xfloating_libcall): Take already built symbol,
7152         mark call const.
7153         * config/alpha/alpha.md (extendsftf2, extenddftf2): Take
7154         op1 in a register.
7155
7156 2004-03-11  Richard Henderson  <rth@redhat.com>
7157
7158         PR target/14539
7159         * config/alpha/alpha.h (STACK_BOUNDARY): Set to 128.
7160
7161         * simplify-rtx.c (simplify_relational_operation): Fix typo.
7162
7163 2004-03-11  Richard Henderson  <rth@redhat.com>
7164
7165         PR middle-end/14477
7166         * except.c (remove_unreachable_regions): Look thru CALL_PLACEHOLDER.
7167
7168 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
7169
7170         PR target/14262
7171         * calls.c (load_register_parameters): If BLOCK_REG_PADDING is not
7172         defined, pass small BLKmode values in registers in the low-order part.
7173
7174 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
7175
7176         * combine.c (if_then_else_cond): Check for NULL return value of
7177         simplify_gen_subreg.
7178
7179 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
7180
7181         PR target/14496
7182         * config/mips/mips.h (UNITS_PER_FPVALUE): Fix value for
7183         TARGET_SINGLE_FLOAT.
7184
7185 2004-03-11  Steve Ellcey  <sje@cup.hp.com>
7186
7187         * config/ia64/hpux.h (TARGET_INIT_LIBFUNCS): Add undef.
7188         * config/ia64/ia64.h (TARGET_INIT_LIBFUNCS): Add define.
7189         * config/ia64/ia64.c (ia64_init_libfuncs): New.
7190         (ia64_hpux_init_libfuncs): Add call to ia64_init_libfuncs.
7191
7192 2004-03-11  Roger Sayle  <roger@eyesopen.com>
7193
7194         * fold-const.c (negate_expr_p) <RSHIFT_EXPR>: We can optimize
7195         -((int)X>>C) where C is an integer constant one bit less than the
7196         size of X into (unsigned)X>>C.  Similarly for unsigned->signed.
7197         (negate_expr) <RSHIFT_EXPR>: Implement the above transformations.
7198
7199         * simplify-rtx.c (simplify_unary_operation): Also implement the
7200         above transformations at the RTL level.
7201
7202 2004-03-11  Alan Modra  <amodra@bigpond.net.au>
7203
7204         * real.c (encode_ibm_extended): Do round low word.
7205
7206 2004-03-11  Ben Elliston  <bje@wasabisystems.com>
7207
7208         * config/arm/arm.md (is_xscale): Comment this attribute and move
7209         it a bit further up in the file, closer to related attributes.
7210
7211 2004-03-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
7212
7213         * config/host-solaris.c (sol_gt_pch_use_address): Add
7214         missing terminating marker to comment.
7215
7216 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
7217
7218         * config/mips/mips.md: Use move_operand in splitters for 64-bit moves.
7219         (movdi, movsi, movhi, movqi, movsf, movdf): Remove predicates.
7220         (*movdi_32bit_mips16, *movsi_mips16, *movhi_mips16, *movqi_mips16)
7221         (*movsf_mips16, *movdf_mips16):  Name unnamed patterns.  Use
7222         move_operand as source predicate in all cases.
7223         (*movdi_32bit): Renamed from movdi_internal.  Remove 'F' constraint.
7224         Test reg_or_0_operand.  Use move_operand as source predicate.
7225         (*movdi_64bit): Renamed from movdi_internal2.  Test reg_or_0_operand.
7226         (*movdi_64bit_mips16): Renamed from movdi_internal2_mips16.
7227         (*movsi_internal): Renamed from movsi_internal.  Test reg_or_0_operand.
7228         (movhi, movqi, movsf, movdf): Use mips_legitimize_move.
7229         (*movhi_internal): Renamed from movhi_internal.  Test reg_or_0_operand.
7230         Use move_operand as source predicate.  Remove 'K' constraint.
7231         (*movqi_internal): Likewise movqi_internal.
7232         (*movsf_hardfloat): Renamed from movsf_internal1.  Test
7233         reg_or_0_operand.  Use move_operand as source predicate.
7234         (*movsf_softfloat): Likewise movsf_internal2.
7235         (*movdf_hardfloat_64bit): Likewise movsf_internal1a.
7236         (*movdf_hardfloat_32bit): Likewise movsf_internal1b.
7237         (*movdf_softfloat): Likewise movdf_internal2.
7238         * config/mips/mips.c (move_operand): Match arbitrary CONST_INTs
7239         for DImode if !TARGET_64BIT.
7240         (mips_legitimize_move): Simplify accordingly.
7241
7242 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
7243
7244         PR/14362
7245         * var-tracking.c (struct variable_def): Added field refcount.
7246         (variable_htab_free): Decrease the refcount and delete variable
7247         only if there are no more references.
7248         (unshare_variable): New function.
7249         (vars_copy_1): Increase refcount instead of copying the variable.
7250         (variable_union): Share the variables where possible, unshare
7251         the variables if needed.
7252         (variable_different_p): Return false if var1 and var2 are
7253         the same structure.
7254         (variable_was_changed): Init the refcount of new variable.
7255         (set_frame_base_location): Unshare variable if needed.
7256         (set_variable_part): Init the refcount of new variable.
7257         Unshare the variables if needed.
7258         (delete_variable_part): Unshare the variables if needed.
7259         (emit_notes_for_differences_1): Init the refcount of new variable.
7260         (vt_add_function_parameters): Do not add function parameters to
7261         IN set of ENTRY_BLOCK_PTR because it is unused anyway.
7262         (vt_initialize): Do not add frame_base_decl to IN set of
7263         ENTRY_BLOCK_PTR because it is unused anyway.
7264
7265 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
7266
7267         * var-tracking.c (vars_copy_1): Cleanup and speedup chain operations.
7268         (vars_copy): Likewise.
7269         (variable_union): Likewise.
7270         (set_variable_part): Likewise.
7271         (delete_variable_part): Likewise.
7272
7273 2004-03-11  Kazu Hirata  <kazu@cs.umass.edu>
7274
7275         * c-typeck.c, combine.c, cse.c, dominance.c, et-forest.h,
7276         ggc-page.c, var-tracking.c, config/fp-bit.c, config/c4x/c4x.c,
7277         config/cris/cris.c, config/i386/ppro.md, config/i860/i860.c,
7278         config/i860/i860.h, config/m32r/m32r.h, config/m32r/xm-m32r.h,
7279         config/m68hc11/m68hc11.h, config/m68hc11/m68hc11.md,
7280         config/mips/mips.c, config/mmix/mmix.c, config/ns32k/ns32k.h,
7281         config/pa/pa.c, config/pa/pa32-regs.h, config/pa/pa64-regs.h,
7282         config/pdp11/pdp11.h, config/rs6000/rs6000.c,
7283         config/stormy16/stormy16.c: Fix comment typos and formatting.
7284
7285 2004-03-11  Nathanael Nerode  <neroden@gcc.gnu.org>
7286
7287         * configure: Regenerate, since I forgot to while committing Paolo's
7288         changes.
7289
7290 2004-03-08  Paolo Bonzini  <bonzini@gnu.org>
7291
7292         PR ada/14131
7293         Move language detection to the top level.
7294         * configure.ac: Remove code to detect languages,
7295         it now lives exclusively in the top level.
7296         * aclocal.m4 (gcc_AC_PROG_GNAT): Moved to the
7297         top level, renamed to ACX_PROG_GNAT.
7298
7299 2004-03-10  Richard Henderson  <rth@redhat.com>
7300
7301         * c-pch.c (c_common_no_more_pch): Update for gt_pch_use_address
7302         extra arguments.
7303         * config.host (*-*-solaris2*, *-*-linux*): Add out_host_hook_obj
7304         and host_xmake_file fragments.
7305         * ggc-common.c (gt_pch_save): Update for gt_pch_get_address change.
7306         (gt_pch_restore): Similarly for gt_pch_use_address.
7307         (default_gt_pch_get_address): New.
7308         (mmap_gt_pch_get_address): Split out of gt_pch_save.
7309         (default_gt_pch_use_address): Split out of gt_pch_restore.
7310         (mmap_gt_pch_use_address): Likewise.
7311         * hooks.c (hook_voidp_size_t_null): Remove.
7312         (hook_bool_voidp_size_t_false): Remove.
7313         * hooks.h: Likewise.
7314         * hosthooks-def.h (HOST_HOOKS_GT_PCH_GET_ADDRESS): Use one of the
7315         default_ or mmap_ definitions.
7316         (HOST_HOOKS_GT_PCH_USE_ADDRESS): Likewise.
7317         * hosthooks.h (struct host_hooks): Update gt_pch_get_address
7318         and gt_pch_use_address.
7319         * config/host-linux.c, config/host-solaris.c: New files.
7320         * config/x-linux, config/x-solaris: New files.
7321         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_get_address):
7322         Update for changed definition.
7323         (darwin_rs6000_gt_pch_use_address): Likewise.
7324         * doc/hostconfig.texi: Update docs.
7325
7326 2004-03-10  Richard Henderson  <rth@redhat.com>
7327
7328         PR c/14517
7329         * c-decl.c (grokdeclarator): Don't warn for duplicate qualifiers
7330         except for pedantic c90 mode.
7331
7332 2004-03-10  Kelley Cook  <kcook@gcc.gnu.org>
7333
7334         * configure.ac: Bump AC_PREREQ to 2.59.
7335         * configure: Regenerate.
7336
7337 2004-03-10  Uros Bizjak  <uros@kss-loka.si>
7338
7339         * optabs.h (enum optab_index): Add new OTI_exp10 and OTI_exp2.
7340         (exp10_optab, exp2_optab): Define corresponding macros.
7341         * optabs.c (init_optabs): Initialize exp10_optab and exp2_optab.
7342         * genopinit.c (optabs): Implement exp10_optab and exp2_optab
7343         using exp10?f2 and exp2?f2 patterns.
7344         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXP10{,F,L}
7345         using exp10_optab, and BUILT_IN_EXP2{,F,L} using exp2_optab.
7346         (expand_builtin): Expand BUILT_IN_EXP10{,F,L} and BUILT_IN_EXP2{,F,L}
7347         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
7348
7349         * config/i386/i386.md (exp10sf2, exp10df2, exp10xf2, exp2sf2,
7350         exp2df2, exp2xf2): New patterns to implement exp10, exp10f, exp10l,
7351         exp2, exp2f and exp2l built-ins as inline x87 intrinsics.
7352
7353 2004-03-10  Anthony Green  <green@redhat.com>
7354
7355         * doc/invoke.texi (ARM Options): Fix -mpfu typo.
7356
7357 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
7358
7359         * config/rs6000/aix.h (TARGET_OS_CPP_BUILTINS): Rename to ...
7360         (TARGET_OS_AIX_CPP_BUILTINS): this.  Conditionally define
7361         __LONGDOUBLE128.
7362         * config/rs6000/aix41.h (TARGET_OS_CPP_BUILTINS): Use
7363         TARGET_OS_AIX_CPP_BUILTINS.
7364         * config/rs6000/aix43.h (TARGET_OS_CPP_BUILTINS): Same.
7365         * config/rs6000/aix51.h (TARGET_OS_CPP_BUILTINS): Same.
7366         * config/rs6000/aix52.h (TARGET_OS_CPP_BUILTINS): Same.
7367         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Revert
7368         previous change.
7369
7370 2004-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7371
7372         * fold-const.c (tree_expr_nonnegative_p): Add more builtin cases.
7373
7374 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
7375
7376         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
7377         __LONGDOUBLE128 on AIX.
7378
7379 2004-03-10  Andrew Haley  <aph@redhat.com>
7380
7381         PR optimization/14381
7382         * function.c (expand_function_end): Emit a blockage insn before
7383         the epilogue when -fnon-call-exceptions is used.
7384
7385         * except.c (expand_start_all_catch): Make comment more accurate.
7386
7387 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
7388
7389         PR target/14480
7390         * config/rs6000/t-rtems: Add missing file on branch.
7391
7392 2004-03-10  Ulrich Weigand  <uweigand@de.ibm.com>
7393
7394         * dbxout.c (dbxout_symbol_location): Do not output references
7395         to optimized-out constant pool symbols.
7396
7397 2004-03-10  Andreas Schwab  <schwab@suse.de>
7398
7399         * config/ia64/ia64.md (divsi3, udivsi3): Remove unused variable
7400         twon34_r.
7401
7402 2004-03-09  James E Wilson  <wilson@specifixinc.com>
7403
7404         * alias.c (alias_sets_might_conflict_p): New.
7405         * c-typeck.c (build_c_cast): Call it if warn_strict_aliasing > 1.
7406         * common.opt (Wstrict-aliasing=): New.
7407         * flags.h (warn_strict_aliasing): Change type to int.
7408         * opts.c (warn_strict_aliasing): Change type to int.
7409         (common_handle_option): Handle OPT_Wstrict_aliasing_.
7410         * tree.h (alias_sets_might_conflict_p): Declare it.
7411         * doc/invoke.tex (-Wstrict-aliasing=2): Document it.
7412
7413 2004-03-10  Roman Zippel  <zippel@linux-m68k.org>
7414
7415         PR bootstrap/12371
7416         * config/m68k/m68k.h (FIXED_REGISTERS): Add arg pointer.
7417         (CALL_USED_REGISTERS): Likewise.
7418         (REG_CLASS_CONTENTS): Likewise.
7419         (REG_ALLOC_ORDER): New.
7420         (REGNO_REG_CLASS): Use regno_reg_class.
7421         * config/m68k/m68k.c: Add regno_reg_class array.
7422
7423 2004-03-09  Steve Ellcey  <sje@cup.hp.com>
7424
7425         * config/ia64/ia64.md (divsi3): Fix algorithm.
7426           (udivsi3): Ditto.
7427           (setf_exp_xf): Remove '*' from name.
7428         * testsuite/gcc.dg/20040309-1.c: New test.
7429
7430 2004-03-09  Ian Lance Taylor  <ian@wasabisystems.com>
7431
7432         * system.h (SUNOS4_SHARED_LIBRARIES): Poison.
7433         * collect2.c: Remove SUNOS4_SHARED_LIBRARIES code.
7434         * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): Don't define.
7435         * config/sparc/sparc.c (sparc_aout_select_section): Remove.
7436         (sparc_aout_select_rtx_section): Don't check
7437         SUNOS4_SHARED_LIBRARIES.
7438         * config/sparc/sparc.h (SUNOS4_SHARED_LIBRARIES): Don't define.
7439
7440 2004-03-10  Hans-Peter Nilsson  <hp@axis.com>
7441
7442         PR other/14474
7443         * doc/md.texi (Pattern Ordering, Dependent Patterns)
7444         (Jump Patterns, Looping Patterns): Wrap in separate "@ifset
7445         INTERNALS".
7446
7447 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
7448
7449         * config/ia64/hpux.h (MULTILIB_DEFAULTS): Define.
7450         (LIBGCC_SPEC): Update to match.
7451
7452 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
7453
7454         * c-decl.c (last_function_parms, last_function_parm_tags)
7455         (last_function_parm_others, current_function_parms)
7456         (current_function_parm_tags, current_function_parm_others):
7457         Delete.
7458         (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES, ARG_INFO_OTHERS):
7459         New macros.
7460         (grokdeclarator): For function definitions, save the arg-info
7461         block from the declarator in DECL_ARGUMENTS.
7462         (grokparms): Do not write to last_function_parm*.  Use ARG_INFO_*
7463         macros to operate on arg-info block.  Can assume ARG_INFO_PARMS
7464         contains only PARM_DECLs.  Improve diagnostics.
7465         (get_parm_info): Use ARG_INFO_* macros.  Improve comments and
7466         diagnostics.  Disable some expensive checks if not ENABLE_CHECKING.
7467         (store_parm_decls_newstyle): Take the function to operate on,
7468         and an arg-info block, as arguments; don't get anything from
7469         current_function_* globals.
7470         (store_parm_decls_oldstyle): Likewise.
7471         (store_parm_decls): Pass fndecl and its arg-info block down to
7472         store_parm_decls_newstyle/oldstyle.  Send functions with empty
7473         argument lists through store_parm_decls_newstyle to reduce
7474         overhead.
7475         (pushdecl): Comment on the problems with the call to copy_node.
7476         Clear DECL_ARGUMENTS of the old node after copying it, if it
7477         is an arg-info block instead of a chain of decls.
7478         (start_function): Do not manipulate current_function_parm* or
7479         last_function_parm*.
7480
7481 2004-03-09  Roger Sayle  <roger@eyesopen.com>
7482             Andrew Pinski  <pinskia@physics.uc.edu>
7483
7484         * ifcvt.c (noce_try_sign_mask): New function to transform
7485         "x = (y < 0) ? z : 0" into the equivalent "x = (y >> C) & z".
7486         (noce_process_if_block): Call noce_try_sign_mask.
7487
7488 2004-03-09  Andrew Pinski  <apinski@apple.com>
7489
7490         * c-typeck.c (tagged_types_tu_compatible_p):
7491         Fix typo.
7492
7493 2004-03-09  Roger Sayle  <roger@eyesopen.com>
7494
7495         * simplify-rtx.c (simplify_const_relational_operation): New function
7496         renamed from simplify_relational_operation.
7497         (simplify_relational_operation): Change prototype to accept an
7498         additional mode argument.  Call simplify_const_relational_operation.
7499         (simplify_gen_relational): Update simplify_relational_operation call.
7500         (simplify_ternary_operation): Update simplify_relational_operation
7501         subroutine call to use simplify_const_relational_operation instead.
7502
7503         * rtl.h (simplify_const_relational_operation): Prototype here.
7504         (simplify_relational_operation): Add addtional mode argument.
7505
7506         * combine.c (combine_simplify_rtx): Update calls to
7507         simplify_relational_operation.
7508         (simplify_set): Likewise.
7509         (gen_binary): Likewise.
7510         * cse.c (fold_rtx): Likewise.
7511         * dojump.c (compare_from_rtx): Likewise.
7512         (do_compare_rtx_and_jump): Likewise.
7513         * integrate.c (subst_constants): Likewise.
7514         * unroll.c (simplify_cmp_and_jump_insns): Likewise.
7515
7516 2004-03-09  Kazu Hirata  <kazu@cs.umass.edu>
7517
7518         * config/m32r/m32r.md: Remove all define_peephole's.
7519
7520 2004-03-09  Alan Modra  <amodra@bigpond.net.au>
7521
7522         * config/rs6000/rs6000.md: Remove trailing whitespace.
7523
7524 2004-03-08  Eric Christopher  <echristo@redhat.com>
7525
7526         * Makefile.in (site.exp): Add libiconv variable definition.
7527
7528 2004-03-09  Hans-Peter Nilsson  <hp@axis.com>
7529
7530         * configure: Regenerate for config/accross.m4 correction.
7531
7532 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
7533
7534         PR target/14480
7535         * config/rs6000/t-rtems: Add missing file on branch.
7536
7537 2004-03-08  Roger Sayle  <roger@eyesopen.com>
7538
7539         PR middle-end/14289
7540         * c-typeck.c (c_mark_addressable): A register variable should
7541         be considered global if its not automatic, i.e. TREE_PUBLIC,
7542         TREE_STATIC or DECL_EXTERNAL.
7543         * function.c (put_var_into_stack): Call abort when placing a
7544         hard register into the stack, if x_parm_reg_stack_loc is NULL.
7545
7546 2004-03-08  Ulrich Weigand  <uweigand@de.ibm.com>
7547
7548         * config/s390/s390.md ("*extendqidi2_short_displ"): Add CC clobber.
7549         ("*extendqisi2_short_displ"): Likewise.
7550
7551 2004-03-08  Kazu Hirata  <kazu@cs.umass.edu>
7552
7553         * config/pdp11/pdp11.c (comparison_operator_index): Remove.
7554         (comp_operator): Likewise.
7555         * config/pdp11/pdp11-protos.h: Remove corresponding
7556         prototypes.
7557
7558 2004-03-08  Eric Botcazou  <ebotcazou@act-europe.fr>
7559
7560         * expr.c (highest_pow2_factor_for_type): Rename into
7561         highest_pow2_factor_for_target.  Use DECL_ALIGN instead of
7562         TYPE_ALIGN when the target is a COMPONENT_REF.
7563         (expand_assignment): Ajust call to highest_pow2_factor_for_type.
7564
7565 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
7566
7567         * config/rs6000/rs6000.c: Formatting fix.
7568         (legitimate_offset_address_p): Correct offset range check.
7569
7570         * config/rs6000/rs6000.c (rs6000_override_options): Don't override
7571         -msoft-float by -mcpu.  Consolidate similar code for MASK_MULTIPLE
7572         and MASK_STRING.
7573
7574 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
7575
7576         * config/rs6000/rs6000.md (ashrdi3): Do not call ashrdi3_no_power
7577         for little endian.
7578         ("ashrdi3_no_power"): Disable for little endian.
7579         (ashrdi3): Same.
7580
7581 2004-03-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7582
7583         * fold-const.c (tree_expr_nonnegative_p): Reformat checks for
7584         builtins.
7585
7586 2004-03-08  Hans-Peter Nilsson  <hp@axis.com>
7587
7588         PR target/14471
7589         * configure.ac (Target-specific assembler checks) <cris-*-*>: New
7590         case, checking for -no-mul-bug-abort option.
7591         * configure, config.in: Regenerate.
7592         * doc/invoke.texi (CRIS Options): Document -mmul-bug-workaround
7593         and -mno-mul-bug-workaround.
7594         * config/cris/cris.md ("smulsi3_highpart", "umulsi3_highpart")
7595         ("mulsidi3", "umulsidi3"): Prefix output template with "%!".
7596         ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3"):
7597         Ditto.  Make attribute "slottable" dependent on TARGET_MUL_BUG.
7598         * config/cris/mulsi3.asm (__Mul) [__CRIS_arch_version >= 10]: Make
7599         sure mulu.d is not last on cache-line.
7600         * config/cris/cris.h (ASM_SPEC): Translate -mno-mul-bug-workaround
7601         into -no-mul-bug-abort depending on HAVE_AS_MUL_BUG_ABORT_OPTION.
7602         (TARGET_MASK_MUL_BUG, TARGET_MUL_BUG): New macros.
7603         (TARGET_SWITCHES): New options -mmul-bug-workaround and
7604         -mno-mul-bug-workaround.
7605         (TARGET_DEFAULT): Include TARGET_MASK_MUL_BUG.
7606         (PRINT_OPERAND_PUNCT_VALID_P): Include '!'.
7607         * config/cris/cris.c (cris_operand_extend_operator): Clarify
7608         relation to MULT in head comment.
7609         (cris_op_str): Abort for MULT.
7610         (cris_print_operand) <case '!'>: New case.
7611
7612 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
7613
7614         PR debug/11983
7615         * dwarf2out.c (enum dw_val_class): Rename dw_val_class_float to
7616         dw_val_class_vec.  Replace use throughout file.
7617         (dw_float_const): Delete.
7618         (dw_vec_const): New.
7619         (dw_val_struct_union): Rename val_float to val_vec.  Replace use
7620         throughout file.
7621         (add_AT_vec): Rename from add_AT_float.  Add elt_size param.
7622         (same_dw_val_p): Adjust vec comparison.  Use memcmp.
7623         (size_of_die): Adjust dw_val_class_vec sizing.
7624         (output_die): Output dw_val_class_vec.
7625         (insert_int, extract_int, insert_float): New functions.
7626         (add_const_value_attribute): Use insert_float for CONST_DOUBLE.
7627         Handle CONST_VECTOR.
7628         (add_location_or_const_value_attribute): Handle CONST_VECTOR.
7629
7630 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
7631
7632         * config/rs6000/rs6000.c (rs6000_parse_abi_options): SPE and
7633         AltiVec abi cannot co-exist.
7634
7635         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Same.
7636
7637 2004-03-07  Jan Hubicka  <jh@suse.cz>
7638
7639         * except.c (emit_to_new_bb_before):  Break fallthru edges.
7640
7641 2004-03-07  Stephane Carrez  <stcarrez@nerim.fr>
7642
7643         * config/m68hc11/m68hc11.md ("*lshrsi3_const"): Disable for 68HC12.
7644         ("*lshrsi3"): Also accept an immediate for 68HC12.
7645         ("*ashrsi3_const"): Likewise.
7646         ("*ashrsi3"): Likewise.
7647         ("*ashlsi3_const"): Likewise.
7648         ("*ashlsi3"): Likewise.
7649         ("cmphi_1_hc12"): Compare two hard register by pushing them and
7650         comparing with a pop; don't use a split for that.
7651         ("cmphi split"): Disable compare split for 68HC12.
7652
7653         * config/m68hc11/m68hc11.c (m68hc11_notice_update_cc): Invalidate
7654         the status operands if they have side effects.
7655
7656 2004-03-07  Kazu Hirata  <kazu@cs.umass.edu>
7657
7658         * defaults.h (LEGITIMIZE_ADDRESS): Provide a default
7659         definition.
7660         * config/arc/arc.h, config/fr30/fr30.h, config/frv/frv.h,
7661         config/h8300/h8300.h, config/ia64/ia64.h,
7662         config/mcore/mcore.h, config/mmix/mmix.h,
7663         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
7664         config/stormy16/stormy16.h, config/v850/v850.h,
7665         config/vax/vax.h (LEGITIMIZE_ADDRESS): Remove.
7666         * doc/tm.texi (LEGITIMIZE_ADDRESS): Mention the default
7667         definition.
7668
7669 2004-03-07  Roger Sayle  <roger@eyesopen.com>
7670
7671         * fold-const.c (fold) <IOR_EXPR>: Fold x | x as x.
7672         <XOR_EXPR>: Fold x ^ x as zero.
7673         <AND_EXPR>: Fold x & x as x.
7674
7675 2004-03-07  Roger Sayle  <roger@eyesopen.com>
7676
7677         * fold-const.c (fold) <EQ_EXPR>: Rewrite optimization to transform
7678         "foo++ == const" into "++foo == const+incr".
7679
7680 2004-03-07  Richard Sandiford  <rsandifo@redhat.com>
7681
7682         * config/mips/mips.c (mips_in_small_data_p): Return false if
7683         TARGET_ABICALLS.
7684
7685 2004-03-06  Stephane Carrez  <stcarrez@nerim.fr>
7686
7687         * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Use 2,-sp to push
7688         the stack register.
7689         (expand_prologue): Don't make an interrupt or a trap handler a far
7690         symbol.
7691         (m68hc11_initial_elimination_offset): Likewise.
7692
7693 2004-03-06  Richard Henderson  <rth@redhat.com>
7694
7695         * config/alpha/alpha.c (alpha_in_small_data_p): False for functions.
7696
7697 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
7698
7699         * config/ns32k/ns32k-protos.h: Add a prototype for
7700         ns32k_notice_update_cc.
7701         * config/ns32k/ns32k.c (ns32k_notice_update_cc): New.
7702         * config/ns32k/ns32k.h (NOTICE_UPDATE_CC): Call
7703         ns32k_notice_update_cc.
7704
7705 2004-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
7706
7707         * config/s390/s390.md ("load_multiple", "*load_multiple_di",
7708         "*load_multiple_si"): Allow only if reload_completed.
7709         ("store_multiple", "*store_multiple_di", "*store_multiple_si"):
7710         Likewise.
7711
7712 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
7713
7714         * config/vax/vax-protos.h: Add a prototype for
7715         vax_notice_update_cc.
7716         * config/vax/vax.c (vax_notice_update_cc): New.
7717         * config/vax/vax.h (NOTICE_UPDATE_CC): Call
7718         vax_notice_update_cc.
7719
7720 2004-03-06  David Edelsohn  <edelsohn@gnu.org>
7721
7722         * collect2.c (main): Only export initfunc and finifunc if
7723         LD_INIT_SWITCH not defined.
7724         (scan_prog_file): Only export constructors and destructors if
7725         LD_INIT_SWITCH not defined.  Only export symbols not found in
7726         shared objects.
7727
7728 2004-03-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7729
7730         * pa.md (icacheflush): Reorder operands to make match_scratch operand
7731         last.
7732         * pa.h (INITIALIZE_TRAMPOLINE): Remove unnecessary scratch argument
7733         from calls to gen_icacheflush.
7734
7735 2004-03-06  Richard Henderson  <rth@redhat.com>
7736
7737         * config/alpha/alpha.h (MASK_LONG_DOUBLE_128): New.
7738         (TARGET_LONG_DOUBLE_128): New.
7739         (TARGET_SWITCHES): Add long-double-{128,64}.
7740         (TARGET_HAS_XFLOATING_LIBS): Default to TARGET_LONG_DOUBLE_128.
7741         (LONG_DOUBLE_TYPE_SIZE): Honor TARGET_LONG_DOUBLE_128.
7742         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): New.
7743         (WIDEST_HARDWARE_FP_SIZE): New.
7744         (TARGET_CPU_CPP_BUILTINS): Define __LONG_DOUBLE_128__.
7745         * config/alpha/alpha.c (override_options): Clear MASK_LONG_DOUBLE_128
7746         if TARGET_VAX_FLOAT.
7747         * config/alpha/osf5.h (LONG_DOUBLE_TYPE_SIZE): Remove.
7748         (TARGET_DEFAULT): Set MASK_LONG_DOUBLE_128.
7749
7750 2004-03-06  Richard Henderson  <rth@redhat.com>
7751
7752         * config/alpha/alpha.c (alpha_swapped_comparison_operator): Fix
7753         botched rtx class conversion.
7754
7755 2004-03-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7756
7757         * tree.h (BUILTIN_EXP10_P, BUILTIN_EXPONENT_P, BUILTIN_SQRT_P,
7758         BUILTIN_CBRT_P, BUILTIN_ROOT_P): New macros.
7759
7760         * builtins.c (fold_builtin_logarithm, fold_builtin): Use new
7761         macros.
7762         * fold-const.c (fold_mathfn_compare, fold): Likewise.
7763
7764 2004-03-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
7765
7766         PR target/14343
7767         * config/i386/i386.md (movv2di_internal): Conditionalize on
7768         TARGET_SSE, not TARGET_SSE2.
7769
7770 2004-03-05  Chris Demetriou  <cgd@broadcom.com>
7771
7772         * config.gcc (mips64orion-*-elf*, mips64orionel-*-elf*): Delete
7773         duplicated line.
7774
7775 2004-03-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7776
7777         * builtins.c: Consistently use logN not log* in comments.
7778
7779 2004-03-05  Andreas Krebbel  <krebbel1@de.ibm.com>
7780
7781         * rtl.h (mem_expr_equal_p): Function prototype added.
7782         * cfgcleanup.c (merge_memattrs): New function.
7783         (flow_find_cross_jump): Call merge_memattrs for matching insns.
7784         * emit-rtl.c (mem_expr_equal_p): New function.
7785
7786 2004-03-05  Ziemowit Laski  <zlaski@apple.com>
7787
7788         * objc/objc-act.c (synth_module_prologue): Const-qualify
7789         objc_selector type if using the GNU runtime; fix generated
7790         signatures for objc_msg_lookup and objc_msg_lookup_super
7791         to match what GNU ObjC headers provide; reformat and clean up.
7792         (synth_self_and_ucmd_args): Use previously constructed (and
7793         hence possibly const-qualified) objc_selector type.
7794
7795 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
7796
7797         * doc/tm.texi (HARD_REGNO_RENAME_OK): Document.
7798
7799 2004-03-05  Jason Merrill  <jason@redhat.com>
7800
7801         * tree.h (TYPE_HASH): Use TYPE_UID.
7802         (TREE_HASH): New macro with old definition of TYPE_HASH.
7803         * tree.c (build_type_attribute_variant): Use iterative_hash_object.
7804         (build_array_type, build_function_type): Likewise.
7805         (build_method_type_directly): Likewise.
7806         (build_offset_type, build_complex_type): Likewise.
7807         (type_hash_list, attribute_hash_list): Likewise. Now static.
7808         * except.c: s/TYPE_HASH/TREE_HASH/.
7809
7810 2004-03-05  Bob Wilson  <bob.wilson@acm.org>
7811
7812         * config/xtensa/xtensa.c (function_arg): Handle 16-byte aligned args.
7813         (xtensa_va_start): Initialize __va_stk to ($arg_ptr - 32).  Adjust
7814         __va_ndx by 2 words when referencing an argument on the stack.
7815         (xtensa_va_arg): Handle 16-byte aligned args.  Adjust __va_ndx by 2
7816         words when an arg on the stack is first seen.
7817
7818 2004-03-05  Paul Brook  <paul@codesourcery.com>
7819
7820         * arm.h (ARM_FLAG_VFP): Remove.
7821         (ARM_FLAG_ATPCS, CIRRUS_FIX_INVALID_INSNS): Renumber.
7822         * netbsd-elf.h (ARM_FLAG_VFP): Remove.
7823
7824 2004-03-05  Paul Brook  <paul@codesourcery.com>
7825
7826         * function.c (assign_parms): Include pretend alignment offset.
7827
7828 2004-03-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7829
7830         * stor-layout.c (layout_type, case FUNCTION_TYPE): Make size
7831         FUNCTION_BOUNDARY, not POINTER_SIZE * 2.
7832
7833 2004-03-05  Ian Lance Taylor  <ian@wasabisystems.com>
7834
7835         * configure.ac: When passing --enable-languages to subdir
7836         configure when host != build, make sure we don't pass an empty
7837         value.
7838         * configure: Regenerate.
7839
7840 2004-03-05  Nathan Sidwell  <nathan@codesourcery.com>
7841
7842         PR 13577
7843         * gcc.c (cc1_options): Robustify -auxbase-strip from multiple -o
7844         options.
7845
7846 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
7847
7848         * simplify-rtx.c (simplify_relational_operation): If
7849         flag_wrapv is set, do not move terms between the two
7850         side of a relational operator.
7851
7852 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
7853
7854         * rtlanal.c: Include target.h and output.h
7855         (rtx_cost, address_cost, default_address_cost): Move from...
7856         * cse.c (rtx_cost, address_cost, default_address_cost):
7857         ... this file.
7858         * rtl.h (rtx_cost, address_cost): Move under rtlanal.c.
7859         * Makefile.in: Adjust dependencies.
7860
7861 2004-03-05  Paolo Bonzini <bonzini@gnu.org>
7862
7863         * cse.c (cse_end_of_basic_block): Make static.
7864         * local-alloc.c (function_invariant_p): Move to
7865         reload1.c.
7866         * loop.c (libcall_other_reg, record_excess_regs):
7867         Make static.
7868         * reload1.c (function_invariant_p): Moved here
7869         from local-alloc.c, made static.
7870         * rtl.h (cse_end_of_basic_block, function_invariant_p,
7871         libcall_other_reg, record_excess_regs): Remove
7872         declarations.
7873
7874 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
7875
7876         * config/m32r/m32r.c (signed_comparison_operator): Add a
7877         missing parenthesis.
7878
7879 2004-03-04  Ian Lance Taylor  <ian@wasabisystems.com>
7880
7881         * ggc-common.c (gt_pch_restore): Don't unmap addr unless we are
7882         going to call mmap again.  Read the file into the right place.
7883         Give a fatal error if we have to relocate.
7884
7885 2004-03-04  Bob Wilson  <bob.wilson@acm.org>
7886
7887         * config/xtensa/xtensa.c (xtensa_return_in_msb): New function.
7888         (TARGET_RETURN_IN_MSB): Define to xtensa_return_in_msb.
7889
7890 2004-03-05  Hans-Peter Nilsson  <hp@axis.com>
7891
7892         PR other/14354
7893         * config/fp-bit.c (_fpdiv_parts): Do not round when pack_d would
7894         round the same.  When rounding, clear bits that would cause a
7895         second rounding in pack_d.
7896         (_fpmul_parts): Ditto.  Remove #if 0:d code.
7897
7898 2004-03-04  Ziemowit Laski  <zlaski@apple.com>
7899
7900         PR c++/14425, c++/14426
7901         * config/rs6000/altivec.h (vec_splat_s8, vec_splat_s16,
7902         vec_splat_s32, vec_splat_u8, vec_splat_u16, vec_splat_u32):
7903         Change C++ definitions to accept a 'const int' argument;
7904         the prototypes already do.
7905         * config/rs6000/rs6000.c (rs6000_common_init_builtins):
7906         Rename v4si_ftype_char, v8hi_ftype_char, v16qi_ftype_char,
7907         v4sf_ftype_v4si_char, v4si_ftype_v4sf_char, v4si_ftype_v4si_char,
7908         v8hi_ftype_v8hi_char, v16qi_ftype_v16qi_char,
7909         v16qi_ftype_v16qi_v16qi_char, v8hi_ftype_v8hi_v8hi_char,
7910         v4si_ftype_v4si_v4si_char and v4sf_ftype_v4sf_v4sf_char to
7911         end in ..._int; change them to accept an int instead of a char
7912         as the last parameter.
7913
7914 2004-03-04  Phil Edwards  <phil@codesourcery.com>
7915
7916         * genmultilib:  Change '=' to '-' when translating option names
7917         to directory names.
7918
7919 2004-03-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7920
7921         * expr.c (expand_expr_real, case COMPONENT_REF): Get proper type of
7922         stack slot for temp used for result of BLKmode but in integral mode.
7923
7924 2004-03-04  Jan Hubicka  <jh@suse.cz>
7925
7926         * reload.c (find_reloads): Reorganize if seqeunce to switch.
7927
7928         * cfgrtl.c (rtl_redirect_edge_and_branch):  Set the source BB as dirty.
7929         (cfglayout_redirect_edge_and_branch):  Set the source BB as dirty.
7930
7931 2004-03-04  Steve Ellcey  <sje@cup.hp.com>
7932
7933         * config/ia64/ia64.md (divdf3_internal_thr): Fix algorithm.
7934         * testsuite/gcc.dg/20040303-1.c: New test.
7935
7936 2004-03-04  Steven Bosscher  <stevenb@suse.de>
7937
7938         * ppro.md: Rewrite as a DFA pipeline description.
7939         * i386.md: Remove all uses of the ppro_uops attribute.
7940         * i386.c: (ix86_safe_ppro_uops, ix86_dump_ppro_packet,
7941         ix86_reorder_insn, ix86_sched_reorder_ppro, ix86_sched_init,
7942         ix86_sched_reorder, ix86_variable_issue,
7943         struct ix86_sched_data, TARGET_SCHED_VARIABLE_ISSUE,
7944         TARGET_SCHED_INIT, TARGET_SCHED_REORDER): Remove.
7945         (ia32_use_dfa_pipeline_interface): Add TARGET_PENTIUMPRO.
7946         (ia32_multipass_dfa_lookahead): Add TARGET_PENTIUMPRO.
7947         * athlon.md (athlon_ssecmp_load): Fix comment
7948
7949 2004-03-04  Stuart Hastings  <stuart@apple.com>
7950
7951         * gcc/doc/invoke.texi: Document -mlongcall for Darwin/PPC.
7952
7953 2004-03-04  Stuart Hastings  <stuart@apple.com>
7954
7955         * gcc/config/i386/darwin.h: Darwin/x86 doesn't support CPUs before
7956         686, tell Darwin assembler to allow prefetch insns, non-empty def
7957         of SUBTARGET_OPTION_TRANSLATE_TABLE.
7958
7959 2004-03-04  DJ Delorie  <dj@redhat.com>
7960
7961         PR optimization/14282
7962         * sched-deps.c (sched_analyze_insn): Allow a stack adjustment
7963         between a call and the assignment of its return value.
7964
7965 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
7966
7967         * config/h8300/h8300.c: Put a comment for every function.
7968
7969 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
7970
7971         * config/h8300/h8300.md: Add comments about peephole2's.
7972
7973 2004-03-04  Steven Bosscher  <stevenb@suse.de>
7974
7975         * i386.h (TARGET_CPU_DEFAULT_nocona): Fix value.
7976
7977 2004-03-04  Jan Hubicka  <jh@suse.cz>
7978
7979         * cfgcleanup.c (thread_jump): Update call of cselib_init.
7980         * cselib.c (cselib_record_memory): New static variable.
7981         (cselib_lookup_mem, cselib_record_set, cselib_record_sets):
7982         Give up on memories when asked for.
7983         (cselib_init): Accept new argument.
7984         * cselib.h (cselib_init): Update prototype.
7985         * gcse.c (local_cprop_pass): Update call of cselib_init.
7986         * loop.c (load_mems): Update call of cselib_init.
7987         * postreload.c (reload_cse_regs_1): Update call of cselib_init.
7988         * sched-deps.c (sched_analyze): Update call of cselib_init.
7989
7990 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
7991             GP <gp@qnx.com>
7992
7993         * config/rs6000/rs6000.c (output_function_profiler): Append @plt
7994         when compiling PIC.
7995
7996 2004-03-04  Josef Zlomek  <zlomekj@suse.cz>
7997
7998         PR/14362
7999         * var-tracking.c (track_expr_p): Do not track variables which
8000         should be ignored for debugging purposes.
8001
8002 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
8003
8004         * real.c (encode_ibm_extended): Don't bother rounding low double.
8005         * c-cppbuiltin.c (builtin_define_float_constants): Tweak MAX
8006         when fmt->pnan < fmt->p.
8007
8008 2004-03-04  Eric Christopher  <echristo@redhat.com>
8009
8010         * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Fix to check
8011         only range of valid arg registers and fixed_regs.
8012
8013 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
8014
8015         PR target/14406
8016         * config/rs6000/rs6000.md (abstf2, abstf2+1): Delete define_insn.
8017         (abstf2, abstf2_internal): New define_expand.
8018
8019 2004-03-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
8020
8021         PR optimization/14235
8022         * expr.c (convert_move): Copy the source to a new pseudo
8023         when converting from a sub-word source to a larger-than-word
8024         register which conflicts with the source.
8025
8026 2004-03-03  Zack Weinberg  <zack@codesourcery.com>
8027
8028         PR 13728
8029         * c-decl.c (diagnose_mismatched_decls): Issue an error for two
8030         parameters with the same name, unless one is a forward decl.
8031         Do not issue a redundant-redeclaration warning for forward
8032         decls of parameters.
8033
8034 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
8035
8036         * doc/install.texi (*-ibm-aix*): Document use of Bash to speed up
8037         configuration.
8038
8039 2004-03-03  Ian Lance Taylor  <ian@wasabisystems.com>
8040
8041         * ggc-zone.c (ggc_pch_write_object): Don't align file pointer.
8042
8043 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
8044
8045         * target-def.h (TARGET_OPTF): Delete.
8046         * c-opts.c (TARGET_OPTF): Define.
8047
8048 2004-03-04  Jan Hubicka  <jh@suse.cz>
8049
8050         * cselib.c (cselib_finish): Fix another miss-application of my previous
8051         patch.
8052
8053 2004-03-03  Mike Stump  <mrs@apple.com>
8054
8055         Add framework support for darwin.
8056
8057         * c-incpath.c: Include target.h and machmode.h.
8058         (add_path): Use a consistent style for cpp_dir.  Initialize
8059         p->construct to 0.
8060         (add_cpp_dir_path): New.
8061         (register_include_chains): Add use of extra_includes callback.
8062         (hook_void_int): Add.
8063         (target_c_incpath): Add.
8064         * c-incpath.h (add_cpp_dir_path): New.
8065         (target_c_incpath_s): Add.
8066         (target_c_incpath): Add.
8067         (C_INCPATH_INIT): Add.
8068         * c-opts.c (c_common_missing_argument,
8069         c_common_handle_option): Add -F argument processing.
8070         * c.opt: Add -F argument processing.
8071         * gcc.c (trad_capable_cpp): Add -F argument processing.
8072         * cppfiles.c (find_file_in_dir): Update to use construct
8073         callback.
8074         (search_path_exhausted, cpp_get_path, cpp_get_buffer,
8075         cpp_get_prev): New.
8076         (_cpp_find_file): Use search_path_exhausted.
8077         (make_cpp_dir): Initialize construct to 0.
8078         * cpplib.h (missing_header_cb
8079         cpp_get_path, cpp_get_buffer, cpp_get_file, cpp_get_prev): New.
8080         (cpp_callbacks): Add missing_header
8081         (cpp_dir): Add construct.
8082         * target-def.h: (TARGET_OPTF): New.
8083         * hooks.c (hook_void_int, hook_void_charptr): Add.
8084         * hooks.h (hook_void_int, hook_void_charptr): Add.
8085         * Makefile.in (c-incpath.o) : Add $(TARGET_H) and
8086         $(MACHMODE_H) dependencies.
8087         * doc/invoke.texi (Darwin Options): Document -F.
8088         * doc/tm.texi (TARGET_EXTRA_INCLUDES): Add.
8089         (TARGET_OPTF): Add.
8090         * fix-header.c (target_c_incpath): Add.
8091
8092         * config/darwin-c.c: Add c-incpath.h include.
8093         (using_frameworks, find_subframework_file,
8094         find_subframework_header, add_system_framework_path,
8095         frameworks_in_use, num_frameworks, max_frameworks,
8096         add_framework, find_framework, struct framework_header,
8097         framework_header_dirs, framework_construct_pathname,
8098         find_subframework_file, add_system_framework_path,
8099         add_framework_path, framework_defaults,
8100         darwin_register_frameworks, find_subframework_header): Add.
8101         * config/darwin.h (TARGET_EXTRA_INCLUDES, TARGET_OPTF): New.
8102         (TARGET_OPTION_TRANSLATE_TABLE): Add -framework support.
8103         (CPP_SPEC): Add __APPLE_CC__ support.
8104         * t-darwin (darwin-c.o): Add c-incpath.h dependency.
8105
8106 2004-03-04  Jan Hubicka  <jh@suse.cz>
8107
8108         * cselib.c (cselib_finish): Fix miss-application of my previous
8109         patch.
8110
8111 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
8112
8113         * hooks.c (hook_tree_tree_identity): New.
8114         * hooks.h: Add a prototype for hook_tree_tree_identity.
8115         * stmt.c (expand_asm_operands): Use targetm.md_asm_clobbers
8116         instead of MD_ASM_CLOBBERS.
8117         * system.h (MD_ASM_CLOBBERS): Poison.
8118         * target-def.h (TARGET_MD_ASM_CLOBBERS): New.
8119         (TARGET_INITIALIZER): Add TARGET_MD_ASM_CLOBBERS.
8120         * target.h (gcc_target): Add md_asm_clobbers.
8121         * config/i386/i386.c (TARGET_MD_ASM_CLOBBERS): New.
8122         (ix86_md_asm_clobbers): New.
8123         * config/i386/i386.h (MD_ASM_CLOBBERS): Remove.
8124         * doc/tm.texi (MD_ASM_CLOBBERS): Change to
8125         TARGET_MD_ASM_CLOBBERS.
8126
8127 2004-03-03  Stuart Hastings  <stuart@apple.com>
8128
8129         * gcc/config.gcc: Arrange for Darwin/x86 to build libgcc_eh.a.
8130
8131 2004-03-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
8132
8133         * config/sparc/sparc.c (noov_compare64_op): Fix typo.
8134
8135         * config/sparc/sparc.h (ASM_FLOAT): Delete.
8136         (ASM_DOUBLE): Likewise.
8137         (ASM_LONGDOUBLE): Likewise.
8138         * config/sparc/pbd.h (ASM_INT_OP): Delete.
8139
8140 2003-03-03  Richard Henderson  <rth@redhat.com>
8141
8142         PR opt/13862
8143         * cselib.c (cselib_record_sets): Don't record multiple sets in
8144         asm insns.
8145
8146 2004-03-03  Mostafa Hagog  <mustafa@il.ibm.com>
8147
8148         * common.opt: Add description of the new -fgcse-after-reload flag.
8149
8150         * flags.h (flag_gcse_after_reload): Declaration of global variable.
8151
8152         * gcse.c (reg_used_on_edge ,reg_set_between_after_reload_p,
8153         reg_used_between_after_reload_p, rtx get_avail_load_store_reg,
8154         is_jump_table_basic_block, bb_has_well_behaved_predecessors,
8155         get_bb_avail_insn, hash_scan_set_after_reload,
8156         compute_hash_table_after_reload, eliminate_partially_redundant_loads,
8157         gcse_after_reload, get_bb_avail_insn): New functions to implement
8158         gcse-after-reload.
8159         (gcse_after_reload_main): New function, the main entry point to
8160         gcse-after-reload.
8161
8162         * rtl.h (gcse_after_reload_main): Declaration of the new function.
8163
8164         * opts.c (common_handle_option): Handle the -fgcse-after-reload flag.
8165
8166         * toplev.c (flag_gcse_after_reload): Initialization.
8167
8168         * passes.c (rest_of_handl_gcse2): Call gcse_after_reload_main.
8169
8170         * params.def (PARAM_GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
8171         PARAM_GCSE_AFTER_RELOAD_CRITICAL_FRACTION): New parameters for tuning
8172         the gcse after reload optimization.
8173
8174         * params.h (GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
8175         GCSE_AFTER_RELOAD_CRITICAL_FRACTION): Two macros to access the tuning
8176         parameters.
8177
8178         * doc/invoke.texi: Documentation for the new flag gcse-after-reload.
8179
8180 2004-03-03  Nicolas Pitre <nico@cam.org>
8181
8182         * config/arm/ieee754-df.S (muldf3, divdf3): Fix denormalization of
8183         small negative values.
8184
8185 2004-03-03  Jan Hubicka  <jh@suse.cz>
8186
8187         * cselib.c (hash_table):  Remove GTY marker.
8188         (reg_values): Turn into array.
8189         (used_regs): Likewise.
8190         (n_used_regs): New static variable.
8191         (reg_values_old): Kill.
8192         (clear_table): Update uses of arrays.
8193         (cselib_lookup): Likewise.
8194         (cselib_record_set): Likewise.
8195         (cselib_init): Likewise.
8196         (cselib_finish): Likewise.
8197         (cselib_udpate_varray_sizes): Kill.
8198         * cselib.h (cselib_update_varray_sizes): Kill.
8199
8200 2004-03-03  Paul Brook  <paul@codesourcery.com>
8201
8202         * flow.c (ior_reg_cond, and_reg_cond): Remove stray ")".
8203
8204 2004-03-03  Jan Hubicka  <jh@suse.cz>
8205
8206         * ggc-common.c (ggc_alloc_cleared_stat, ggc_realloc_stat):
8207         Rename from ...; make statistics transparent.
8208         (ggc_alloc_cleared, ggc_realloc_stat): ... these.
8209         (loc_descriptor): New structure.
8210         (hash_descriptor, eq_descriptor, loc_descriptor, cmp_statistics,
8211         add_statistics):
8212         New static function.
8213         (ggc_record_overhead, dump_statistics): New global function.
8214         * ggc-none.c (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
8215         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Rename
8216         from ...; accept locations
8217         (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
8218         ggc_realloc, ggc_alloc_typed):  ... this one.
8219         from ...; accept locations
8220         * ggc-page.c (ggc_alloc_typed_stat, ggc_alloc_zone_stat,
8221         ggc_alloc_stat): Rename from ... ; pass locations
8222         * ggc-page.c (ggc_alloc_typed, ggc_alloc_zone, ggc_alloc):
8223         ... this one.
8224         (ggc_alloc_stat): Record overehead.
8225         * ggc.h (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
8226         ggc_realloc, ggc_alloc_typed):  Turn to macros
8227         (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
8228         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Declare.
8229         (dump_ggc_loc_satistics, ggc_record_overehead): Declare.
8230         * langhooks.h (lhd_make_node): Declare.
8231         (LANG_HOOKS_MAKE_TYPE): Default to new function,
8232         * langhooks.c (lhd_make_node): New.
8233         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Rename from ... ; pass
8234         locations.
8235         (rtx_alloc, swallow_copy_rtx): ... this one.
8236         * rtl.h (rtx_alloc, swallow_copy_rtx): Turn to macros.
8237         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Declare.
8238         * toplpev.c (finalize): Dump stats.
8239         * tree.c (make_node_stat, copy_node_stat, make_tree_vec_stat,
8240         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
8241         Rename from ... ; pass locators.
8242         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
8243         build?,  build_decl): Declare.
8244         * tree.h (make_node_stat, copy_node_stat, make_tree_vec_stat,
8245         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
8246         Declare.
8247         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
8248         build?,  build_decl): New macros.
8249         * Makefile.in (RTL_H, TREE_H): Add statistics.h dependency.
8250         * statistics.h: New file.
8251
8252 2004-03-03  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
8253             Richard Sandiford  <rsandifo@redhat.com>
8254
8255         * config/mips/mips.h (MASK_FIX_SB1): Bump.
8256         (MASK_FIX_R4400, TARGET_FIX_R4400): New macros.
8257         (TARGET_SWITCHES): Add -mfix-r4400 and -mno-fix-r4400.
8258         * config/mips/mips.c (mips_output_division): Fill the branch delay
8259         slot with a nop if TARGET_FIX_R4000.  Extend R4000 workarounds to
8260         TARGET_FIX_R4400.
8261         (mips_output_division): Adjust accordingly.
8262         (override_options): Make -march=r4400 imply -mfix-r4400 by default.
8263         * doc/invoke.texi: Document -mfix-r4400 and new errata workarounds.
8264
8265 2004-03-03  Paolo Bonzini  <bonzini@gnu.org>
8266
8267         * alias.c (rtx_equal_for_memref_p): Use predicates
8268         to test rtx classes and new rtx class codes, possibly
8269         splitting conditionals that tested against '<' and 'o'.
8270         * caller-save.c (save_call_clobbered_regs): Likewise.
8271         * combine.c (contains_muldiv, find_split_point, subst,
8272         combine_simplify_rtx, simplify_if_then_else,
8273         simplify_set, simplify_logical, expand_compound_operation,
8274         make_compound_operation, if_then_else_cond, known_cond,
8275         apply_distributive_law, cached_nonzero_bits,
8276         cached_num_sign_bit_copies, simplify_shift_const,
8277         gen_binary, simplify_comparison, update_table_tick,
8278         record_value_for_reg, get_lsat_value_validate): Likewise.
8279         * cse.c (mention_regs, find_best_addr, find_comparison_args,
8280         fold_rtx, cse_insn, invalidate_memory, cse_basic_block):
8281         Likewise.
8282         * emit-rtl.c (copy_insn_1): Likewise.
8283         * expr.c (force_operand): Likewise.
8284         * final.c (final_scan_insn, get_mem_expr_from_op): Likewise.
8285         * flow.c (notice_stack_pointer_modification_1,
8286         invalidate_mems_from_autoinc, ior_reg_cond, not_reg_cond,
8287         and_reg_cond, elim_reg_cond): Likewise.
8288         * function.c (update_epilogue_consts): Likewise.
8289         * genattrtab.c (attr_rtx_1): Likewise.
8290         * genopinit.c (gen_insn): Likewise.
8291         * integrate.c (subst_constants): Likewise.
8292         * jump.c (reversed_comparison_code_parts,
8293         reversed_comparison_code, delete_related_insns,
8294         rtx_renumbered_equal_p): Likewise.
8295         * local-alloc.c (block_alloc): Likewise.
8296         * loop.c (rtx_equal_for_prefetch_p, maybe_eliminate_biv,
8297         canonicalize_condition): Likewise.
8298         * loop-iv.c (simplify_using_conditions, iv_number_of_iterations):
8299         Likewise.
8300         * optabs.c (add_equal_node, expand_binop): Likewise.
8301         * predict.c (estimate_probability): Likewise.
8302         * ra-debug.c (ra_print_rtx_2op, ra_print_rtx): Likewise.
8303         * recog.c (validate_replace_rtx_1, comparison_operator,
8304         offsettable_address_p, constrain_operands): Likewise.
8305         * reg-stack.c (swap_rtx_condition_1, subst_stack_regs_pat):
8306         Likewise.
8307         * regclass.c (scan_one_insn): Likewise.
8308         * regmove.c (stable_and_no_regs_but_for_p): Likewise.
8309         * regrename.c (kill_autoinc_value): Likewise.
8310         * reload.c (find_reusable_reload, find_reloads,
8311         reg_overlap_mentioned_for_reload_p): Likewise.
8312         * reload1.c (gen_reload, delete_address_reloads_1): Likewise.
8313         * rtl.c (copy_rtx): Likewise.
8314         * rtl.h (CONSTANT_P, INSN_P): Likewise.
8315         * rtlanal.c (commutative_operand_precedence): Likewise.
8316         * sched-deps.c (conditions_mutex_p): Likewise.
8317         * sched-rgn.c (is_cfg_nonregular): Likewise.
8318         * simplify-rtx.c (simplify_gen_binary,
8319         simplify_gen_relational, simplify_replace_rtx,
8320         simplify_unary_operation, simplify_binary_operation,
8321         simplify_ternary_operation, simplify_rtx): Likewise.
8322         * unroll.c (reg_dead_after_loop): Likewise.
8323         * config/alpha/alpha.c (alpha_swapped_comparison_operator,
8324         print_operand): Likewise.
8325         * config/arc/arc.c (proper_comparison_operator): Likewise.
8326         * config/arm/arm.c (arm_arm_address_cost, arm_select_cc_mode):
8327         Likewise.
8328         * config/avr/avr.c (_reg_unused_after): Likewise.
8329         * config/frv/frv.c (frv_ifcvt_modify_tests,
8330         frv_ifcvt_modify_insn, frv_pack_insn): Likewise.
8331         * config/i386/i386.c (ix86_comparison_operator,
8332         ix86_carry_flag_operator, fcmov_comparison_operator,
8333         arith_or_logical_operator, print_operand,
8334         ix86_expand_binary_operator, ix86_binary_operator_ok):
8335         Likewise.
8336         * config/i386/i386.md: Likewise.
8337         * config/ia64/ia64.c (not_postinc_memory_operand,
8338         ia64_print_operand, update_set_flags, errata_emit_nops):
8339         Likewise.
8340         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS,
8341         CONSTRAINT_OK_FOR_S): Likewise.
8342         * config/ip2k/ip2k.c (mdr_resequence_xy_yx,
8343         mdr_try_move_dp_reload, ip2k_check_can_adjust_stack_ref,
8344         ip2k_xexp_not_uses_reg_for_mem, ip2k_xexp_not_uses_reg_p,
8345         ip2k_composite_xexp_not_uses_reg_p, ip2k_unary_operator):
8346         Likewise.
8347         * config/iq2000/iq2000.c (cmp_op, symbolic_expression_p,
8348         eqne_comparison_operator, signed_comparison_operator):
8349         Likewise.
8350         * config/mips/mips.c (cmp_op, symbolic_expression_p):
8351         Likewise.
8352         * config/mmix/mmix (mmix_foldable_comparison_operator,
8353         mmix_comparison_operator): Likewise.
8354         * config/pa/pa.c (hppa_legitimize_address): Likewise.
8355         * config/rs6000/rs6000.c (stmw_operation,
8356         branch_comparison_operator, trap_comparison_operator,
8357         ccr_bit): Likewise.
8358         * config/rs6000/rs6000.h (SELECT_CC_MODE): Likewise.
8359         * config/s390/s390.c (s390_alc_comparison,
8360         s390_slb_comparison):L Likewise.
8361         * config/sh/sh.c (gen_block_redirect, reg_unused_after):
8362         Likewise.
8363         * config/sparc/sparc.c (eq_or_neq, normal_comp_operator,
8364         noov_compare_op, noov_compare64_op, v9_regcmp_op,
8365         emit_hard_tfmode_operation, reg_unused_after)
8366         * doc/md.texi, doc/rtl.texi: Likewise.
8367
8368         * ra-debug.c: Add 2004 to list of copyright years.
8369         * unroll.c: Likewise.
8370
8371         * combine.c (simplify_logical): Remove dummy test,
8372         (apply_distributive_law): Fix typo in comment.
8373         GET_CODE (x) == AND so x is a commutative binary op.
8374         * jump.c (delete_related_insns): simplify loop
8375         condition, move testing of RTX codes inside the loop.
8376         (rtx_renumbered_equal_p): do not use RTX_CODE.
8377         * rtl.c (rtx_class): Declare as enum rtx_class.
8378         * rtl.def (EQ, NE, UNEQ, LTGT, UNORDERED, ORDERED):
8379         Move to RTX_COMM_COMPARE class.
8380         (HIGH, SYMBOL_REF, LABEL_REF, CONST, CONST_INT, CONST_DOUBLE):
8381         Move to RTX_CONST_OBJ class.
8382         * rtl.h (enum rtx_class): New declaration,
8383         (RTX_OBJ_MASK, RTX_OBJ_RESULT, RTX_COMPARE_MASK,
8384         RTX_COMPARE_RESULT, RTX_ARITHMETIC_MASK, RTX_ARITHMETIC_RESULT,
8385         RTX_BINARY_MASK, RTX_BINARY_RESULT, RTX_COMMUTATIVE_MASK,
8386         RTX_COMMUTATIVE_RESULT, RTX_NON_COMMUTATIVE_RESULT,
8387         RTX_EXPR_FIRST, RTX_EXPR_LAST, UNARY_P, BINARY_P,
8388         ARITHMETIC_P, COMMUTATIVE_ARITHMETIC_P, COMPARISON_P,
8389         SWAPPABLE_OPERANDS_P, NON_COMMUTATIVE_P, COMMUTATIVE_P,
8390         OBJECT_P): New macros.
8391         * config/sparc/sparc.c (noov_compare_op): Remove register
8392         from parameter.
8393
8394 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
8395
8396         * target.h: Remove texi jargons in comments.
8397
8398 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
8399
8400         * config/h8300/lib1funcs.asm (___fixunssfsi): Change the
8401         threshold to 0x4f.
8402
8403         Revert:
8404         2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
8405         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
8406         as well.
8407         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
8408         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
8409
8410 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
8411
8412         * doc/md.texi (cbranchmode4): New.
8413
8414 2004-03-02  Eric Christopher  <echristo@redhat.com>
8415
8416         * config/mips/mips16.S: Change fixsfsi and fixdfsi to
8417         fix_trunc.
8418         * config/mips/mips.c (mips_init_libfuncs): Change accordingly.
8419         * config/mips/t-elf (LIB1ASMFUNCS): Ditto.
8420         * config/mips/t-isa3264 (LIB1ASMFUNCS): Ditto.
8421         * config/mips/t-r3900 (LIB1ASMFUNCS): Ditto.
8422
8423 2004-03-02  Richard Henderson  <rth@redhat.com>
8424
8425         PR middle-end/11767
8426         * coverage.c (coverage_counter_ref): Set MEM_NOTRAP_P.
8427         * optabs.c (prepare_cmp_insn): Force trapping memories to registers
8428         before the compare, if flag_non_call_exceptions.
8429
8430 2004-03-02  Richard Henderson  <rth@redhat.com>
8431
8432         PR middle-end/14327
8433         * stmt.c (expand_computed_goto): Do do_pending_stack_adjust before
8434         emitting the label, not after.
8435
8436 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
8437
8438         * config/m68hc11/m68hc11.c (m68hc11_addr_mode): New variable.
8439         (m68hc11_mov_addr_mode): Likewise.
8440         (m68hc11_override_options): Initialize them based on target.
8441         (register_indirect_p): Allow a MEM for indirect addressing modes and
8442         use flags to control what is allowed.
8443         (m68hc11_small_indexed_indirect_p): Use m68hc11_mov_addr_mode for
8444         supported addressing modes.
8445         (m68hc11_register_indirect_p): Use m68hc11_addr_mode.
8446         (go_if_legitimate_address_internal): Likewise.
8447         (m68hc11_indirect_p): Likewise and check the mode.
8448         (print_operand): Allow a (MEM (MEM)) and generate indirect addressing.
8449
8450 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
8451
8452         * builtins.c (BUILTIN_SETJMP_FRAME_VALUE): Remove.
8453         (expand_builtin_setjmp_setup): Use
8454         targetm.builtin_setjmp_frame_value instead of
8455         BUILTIN_SETJMP_FRAME_VALUE.
8456         * system.h (BUILTIN_SETJMP_FRAME_VALUE): Poison.
8457         * target-def.h (TARGET_BUILTIN_SETJMP_FRAME_VALUE): New.
8458         (TARGET_INITIALIZER): Add TARGET_BUILTIN_SETJMP_FRAME_VALUE.
8459         * target.h (gcc_target): Add builtin_setjmp_frame_value.
8460         * targhooks.c (default_builtin_setjmp_frame_value): New.
8461         * targhooks.h: Add a prototype for
8462         default_builtin_setjmp_frame_value.
8463         * doc/tm.texi (BUILTIN_SETJMP_FRAME_VALUE): Change to
8464         TARGET_BUILTIN_SETJMP_FRAME_VALUE.
8465
8466 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
8467
8468         * config/m68hc11/m68hc11.md (move peephole2): New peepholes to optimize
8469         sequences of moves.
8470         (add peepholes): New peepholes to optimize sequences adding small
8471         constants.
8472         (bset peepholes): New peepholes to transform an OR in a bset form
8473         (bclr peepholes): Likewise for bclr form.
8474         (cmp peepholes): New peepholes to avoid register copies when comparing.
8475
8476 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
8477
8478         * config/m68hc11/m68hc11.md ("*pushdi_internal"): New insn and split
8479         to separate push from moves.
8480         ("*pushdf_internal"): Likewise.
8481         ("*pushsf_internal"): Likewise.
8482         ("*pushsi_internal"): Likewise.
8483         ("movdi_internal"): Use define_insn_and_split; non push operand.
8484         ("movdf_internal"): Likewise.
8485         ("movsf_internal"): Likewise.
8486         ("movsi_internal"): Likewise.
8487         ("*movhi_68hc12", "*addhi3_68hc12"): Fix and tune constraints
8488         ("*addhi3", "*subhi3", "*andhi3_mem", "*iorhi3_mem"): Likewise.
8489         ("*ashlsi3_const1", "*lshrsi3_const1"): Likewise.
8490
8491 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
8492
8493         * config/m68hc11/m68hc11.md ("tstqi_z_used"): Use define_insn_and_split.
8494         ("cmphi_z_used", "cmpqi_z_used"): Likewise.
8495         ("movstrictsi", "movstricthi", "movstrictqi"): Likewise.
8496         ("anddi3", "andsi3", "iordi3", "iorsi3"): Likewise.
8497         ("xordi3", "xorsi3", "*logicalsi3_zexthi"): Likewise.
8498         ("*logicalsi3_zextqi", "*logicalhi3_zexthi_ashift8"): Likewise.
8499         ("logicalhi3_zexthi", "*logicalsi3_silshr16"): Likewise.
8500         ("*logicalsi3_silshl16", "*logicalsi3_silshl16_zext"): Likewise.
8501         ("*ashldi3_const32", "*ashldi3_const1", "addsi_silshr16"): Likewise.
8502         ("addsi_andshr16", "*ashlsi3_const16_zexthi"): Likewise.
8503         ("*lshrdi3_const32", "*lshrdi_const1"): Likewise.
8504
8505 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
8506
8507         * config/m68hc11/m68hc11.md (SOFT_TMP_REGNUM): Define.
8508         (SOFT_XY_REGNUM): Define.
8509         (cmp split): Use the above instead of hard coded numbers.
8510         (8-bit op split): No need to check the mode; allow Q_REG.
8511         (ashift split): Adjust the first operand if it uses the SP and we
8512         are pushing the shifted value.
8513         (plus shift split): Fix when a source is in register D+X.
8514         ("doloop_end"): Pass dummy arguments to gen_rtx_NE.
8515
8516 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
8517
8518         * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Fix when
8519         comparing with Z register.
8520
8521 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8522
8523         * cfgloop.h (struct loop_desc): Removed.
8524         (struct loop): Fields simple, desc and has_desc removed.
8525         (simple_loop_p, count_loop_iterations): Declaration removed.
8526         * cfgloopanal.c (struct unmark_altered_insn_data): Removed.
8527         (unmark_altered, blocks_invariant_registers, unmark_altered_insn
8528         blocks_single_set_registers, invariant_rtx_wrto_regs_p_helper,
8529         invariant_rtx_wrto_regs_p, test_for_iteration, constant_iterations,
8530         simple_loop_exit_p, variable_initial_value, variable_initial_values,
8531         simple_condition_p, simple_increment, count_strange_loop_iterations,
8532         inverse, fits_in_mode_p, simple_loop_p, count_loop_iterations):
8533         Removed.
8534         * loop-iv.c (check_simple_exit, find_simple_exit): Update comments.
8535
8536 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
8537
8538         * genattrtab.c: Don't handle MATCH_INSN.
8539         * genrecog.c: Likewise.
8540         * gensupport.c: Likewise.
8541         * rtl.def (match_insn): Remove.
8542         * doc/md.texi (match_insn, match_insn2): Remove.
8543
8544 2004-03-02  Mark Mitchell  <mark@codesourcery.com>
8545
8546         * doc/c-tree.texi (DECL_ASSEMBLER_NAME): Mention that using this
8547         macro results in memory allocation.
8548
8549 2004-03-02  David O'Brien  <obrien@FreeBSD.org>
8550
8551         * config/freebsd-spec.h (FBSD_DYNAMIC_LINKER): Add.
8552         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Define
8553         %(fbsd_dynamic_linker),
8554         (LINK_SPEC): Use %(fbsd_dynamic_linker), and sync style with
8555         config/i386/freebsd.h
8556         * config/arm/freebsd.h: Ditto.
8557         * config/i386/freebsd.h: Ditto.
8558         * config/i386/freebsd64.h: Ditto.
8559         * config/ia64/freebsd.h: Ditto.
8560         * config/rs6000/sysv4.h: Ditto.
8561         * config/sparc/freebsd.h: Ditto.
8562
8563 2004-03-02  Loren James Rittle  <ljrittle@acm.org>
8564
8565         * gcc/doc/install.texi (*-*-freebsd*): Update target information.
8566
8567 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
8568
8569         * rtl.def (define_combine): Remove.
8570
8571 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
8572
8573         * config/h8300/h8300.md: Tweak formatting.
8574
8575 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
8576
8577         * config/h8300/h8300.md (*cmphi_h8300): Rename to
8578         *cmphi_h8300_znvc.
8579         (*cmphi_h8300hs): Rename to *cmphi_h8300hs_znvc.
8580
8581 2004-03-01  Mark Mitchell  <mark@codesourcery.com>
8582
8583         PR bootstrap/14356
8584         * gcc.c (process_command): Remove const-qualification from argv.
8585         (main): Likewise.
8586
8587 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
8588
8589         * config/h8300/h8300.md (pushqi1_h8300hs): Rename to
8590         pushqi1_h8300hs_advanced.  Adjust its caller.
8591         (pushhi1_h8300hs): Rename to pushhi1_h8300hs_advanced.
8592         Adjust its caller.
8593
8594 2004-03-02  Nicolas Roche  <roche@act-europe.fr>
8595
8596         * Makefile.in (install-libgcc, install-multilib): Pass
8597         mkinstalldirs var to libgcc.mk.
8598
8599 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
8600
8601         * system.h (DBX_OUTPUT_STANDARD_TYPES): Poison.
8602         * doc/tm.texi (DBX_OUTPUT_STANDARD_TYPES): Remove.
8603
8604 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
8605
8606         * config/h8300/h8300.c (gtle_operator): Accept GT and LE.
8607         * config/h8300/h8300.md: Split several peephole2's, each into
8608         two.
8609
8610 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8611
8612         * dominance.c (recount_dominator): Handle postdominators.
8613
8614 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
8615
8616         * config/mips/mips-protos.h (enum mips_symbol_type): Move from mips.h.
8617         (NUM_SYMBOL_TYPES): Likewise.
8618         (SYMBOL_64_HIGH, SYMBOL_64_MID, SYMBOL_64_LOW): New symbol types.
8619         (mips_unspec_address): Declare.
8620         (mips_gotoff_page, mips_gotoff_global): Delete.
8621         * config/mips/mips.h (PREDICATE_CODES): Add general_symbolic_operand.
8622         * config/mips/mips.c (enum mips_symbol_type, NUM_SYMBOL_TYPES): Delete.
8623         (mips_symbolic_constant_p, mips_symbolic_address_p)
8624         (mips_symbol_insns): Handle new symbol types.
8625         (general_symbolic_operand): New predicate.
8626         (mips_unspec_address): Make extern.
8627         (mips_gotoff_page, mips_gotoff_global): Delete.
8628         (override_options): Allow -mabi=64 -mno-abicalls -mexplicit-relocs.
8629         Handle new symbol types.
8630         * config/mips/mips.md (*lea_high64, *lea64): New patterns.
8631         (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_disp[sd]i): Call
8632         mips_unspec_address directly.
8633         * doc/invoke.texi: Remove the -mabi=64 -mno-abicalls exception from
8634         the documentation of -mexplicit-relocs.
8635
8636 2004-03-01  Jeff Law  <law@redhat.com>
8637
8638         * fold-const.c (fold): An equality comparison of a non-weak object
8639         against zero has a known result.  Similarly an equality comparison
8640         of the address of two non-weak, unaliased symbols has a known result.
8641
8642         * ggc-page.c (struct page_entry): New field PREV.
8643         (ggc_alloc): Update PREV field appropriately.
8644         (sweep_pages): Likewise.
8645         (ggc_free): Likewise.  Use PREV field rather than loop to
8646         improve ggc_free performance.
8647
8648 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
8649
8650         * config/mips/mips.c (mips_output_division): Use the division
8651         instruction to fill the delay slot of a zero check.
8652         (mips_idiv_insns): Adjust accordingly.
8653
8654 2004-03-01  Nathanael Nerode  <neroden@gcc.gnu.org>
8655
8656         * config.gcc: Create a default tmake_file for linux, and use
8657         it in all but two linux clauses.  Comment those two.
8658
8659 2004-03-01  Paolo Bonzini  <bonzini@gnu.org>
8660
8661         * combine.c (try_combine):  Do not refer to is_replaced.
8662         (gen_lowpart_for_combine):  Perverse subregs now have a
8663         more politically correct name.
8664         * cse.c (cse_insn): Likewise.
8665         * jump.c: Fix bogus reference to delete_insn.
8666
8667 2004-02-29  Mark Mitchell  <mark@codesourcery.com>
8668
8669         PR debug/14328
8670         * dwarf2out.c (gen_enumeration_type_die): Output all enumeration
8671         constants as signed values.
8672
8673         PR middle-end/13448
8674         * c-tree.h (readonly_warning): Rename to ...
8675         (readonly_error): ... this.
8676         * c-typeck.c (build_unary_op): Adjust accordingly.
8677         (readonly_warning): Rename to ...
8678         (readonly_error): ... this and issue errors, not warnings.
8679         (build_modify_expr): Call readonly_error, not readonly_warning.
8680         (c_expand_asm_operands): Likewise.
8681         * tree-inline.c (optimize_inline_calls): Do not inline functions
8682         after errors have occurred.
8683
8684 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
8685
8686         * configure.ac: Rearrange some threading code for clarity;
8687         add section comment.
8688         * configure: Regenerate.
8689
8690 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
8691
8692         * passes.c, config/frv/frv.c, config/sh/sh.c: Fix comment
8693         typos.
8694         * doc/cppopts.texi: Fix a typo.
8695
8696 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
8697
8698         * config/i386/i386.md: Fix formatting.
8699
8700 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
8701
8702         * configure.ac: Add some comments delineating sections of code.
8703
8704         * doc/install.texi: Note that libada uses autoconf 2.57 also.
8705
8706         * doc/install.texi: Fix idiot typo in previous commit.
8707
8708         * doc/install.texi: Update for conversion of intl to autoconf 2.57.
8709
8710 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
8711
8712         * config/h8300/h8300.md: Add comments about peephole2's.
8713
8714 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
8715
8716         * config/h8300/h8300.md: Tweak operand numbers of some
8717         peephole2's.
8718
8719 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
8720
8721         * config/h8300/h8300.md: Tweak comments about peephole2's.
8722
8723 2004-02-29  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
8724
8725         PR middle-end/14203
8726         * function.c (uninitialized_vars_warning): Use DECL_RTL_SET_P
8727         instead of testing whether DECL_RTL is not NULL.
8728
8729 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
8730
8731         * config/sh/sh.c: Fix formatting.
8732
8733 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
8734
8735         * config/sh/sh.c: Convert to ISO-C.
8736
8737 2004-02-28  Andrew Pinski  <pinskia@physics.uc.edu>
8738
8739         * c-typeck.c (tagged_types_tu_compatible_p): Fix pasto in
8740         my previous patch.
8741
8742         * config/darwin.h (machopic_finish): Output stub even if the
8743         symbol is already defined.
8744
8745 2004-02-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8746
8747         * pa64-hpux.h (LIB_SPEC): Fix linking under HP-UX 11.00 with -p and -pg.
8748
8749 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
8750
8751         * genattr.c (main): Don't define
8752         TRADITIONAL_PIPELINE_INTERFACE or DFA_PIPELINE_INTERFACE.
8753         * system.h (TRADITIONAL_PIPELINE_INTERFACE): Poison.
8754         (DFA_PIPELINE_INTERFACE): Likewise.
8755         * doc/tm.texi (TRADITIONAL_PIPELINE_INTERFACE): Remove.
8756         (DFA_PIPELINE_INTERFACE): Likewise.
8757
8758 2004-02-28  Richard Sandiford  <rsandifo@redhat.com>
8759
8760         * config/mips/mips.md (tstsi, tstdi): Delete.
8761
8762 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
8763
8764         * config/mips/mips.c (override_options): Remove an obsolete
8765         duplicate definition of the "e" constraint.
8766         * config/mips/mips.h: Update a comment accordingly.
8767
8768 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
8769
8770         * config/mips/mips.md: Complete the unfinished R4000
8771         multiply/shift errata workaround.  Improve documentation.
8772         (hazard): Use TARGET_FIX_R4000 to decide whether an "imul" instruction
8773         has a hilo hazard.
8774         (mulsi3, mulsi3_internal, mulsi3_r4000): Use TARGET_FIX_R4000.
8775         (muldi3, muldi3_internal): Likewise.
8776         (muldi3_internal2): Remove, replacing with...
8777         (muldi3_mult3, muldi3_r4000): ...these new patterns.
8778         (mulsidi3): Take the errata into account.
8779         (mulsidi3_32bit): Remove, replacing with...
8780         (mulsidi3_32bit_internal, mulsidi3_32bit_r4000): ...these new patterns.
8781         (mulsidi3_64bit, mulsidi3_64bit_parts): Disable if TARGET_FIX_R4000.
8782         (umulsidi3): Take the errata into account.
8783         (umulsidi3_32bit): Remove, replacing with..
8784         (umulsidi3_32bit_internal, umulsidi3_32bit_r4000): ...these patterns.
8785         (umulsi3_highpart, umulsi3_highpart_internal): Disable if
8786         TARGET_FIX_R4000.
8787         (smulsi3_highpart, smulsi3_highpart_internal): Likewise.
8788         (smuldi3_highpart, umuldi3_highpart): Likewise.
8789         * doc/invoke.texi: Document the errata workaround.
8790
8791 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
8792
8793         * config/mips/mips-protos.h (mips_idiv_insns): Declare.
8794         * config/mips/mips.h (MASK_FIX_SB1): Bump.
8795         (MASK_FIX_R4000, TARGET_FIX_R4000): New macros.
8796         (TARGET_SWITCHES): Add -mfix-r4000 and -mno-fix-r4000.
8797         * config/mips/mips.c (mips_idiv_insns): New function.
8798         (override_options): Make -march=r4000 imply -mfix-r4000 by default.
8799         (mips_output_division): Add a workaround for the R4000 divide/shift
8800         errata.
8801         * config/mips/mips.md (length): Use mips_idiv_insns() to calculate
8802         the length of an "idiv" instruction.
8803         * doc/invoke.texi: Document the new switches.
8804
8805 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
8806
8807         * doc/tm.texi (IS_COSTLY_DEPENDENCE): Change to
8808         TARGET_SCHED_IS_COSTLY_DEPENDENCE.
8809
8810 2004-02-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8811
8812         PR optimization/14229
8813         * cfgrtl.c (rtl_tidy_fallthru_edge): Do not fail for !onlyjump jump.
8814
8815 2004-02-28  Eric Botcazou  <ebotcazou@act-europe.fr>
8816
8817         * fold-const.c (fold): Strip NOPs that change the signedness
8818         for RSHIFT too.  Expand comment.
8819
8820 2004-02-27  Ian Lance Taylor  <ian@wasabisystems.com>
8821
8822         PR optimization/7871
8823         * flow.c (mark_set_1): Don't add LOG_LINKS for global registers
8824         from or to call insns.
8825
8826 2004-02-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
8827
8828         PR optimization/7871
8829         * flow.c (propagate_one_insn): Interpret calls as setting global
8830         registers, not merely clobbering them.
8831
8832 2004-02-27  Dale Johannesen  <dalej@apple.com>
8833
8834         * config/darwin.c (machopic_output_possible_stub_label):  Remove.
8835         config/darwin-protos.h:  Ditto.
8836         config/darwin.h:  Remove call to it.
8837         * combine.c (distribute_notes): Do not place a REG_DEAD note
8838         when value is both set and used.
8839
8840 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
8841
8842         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
8843         as well.
8844         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
8845         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
8846
8847 2004-02-27  Andrew Pinski  <apinski@apple.com>
8848
8849         * c-typeck.c (tagged_types_tu_compatible_p) <ENUMERAL_TYPE>:
8850         Speedup common case of the type values being in the same order.
8851
8852 2004-02-27  Steve Ellcey  <sje@cup.hp.com>
8853
8854         * config/ia64/ia64.h (no-inline-float-divide): New option.
8855         * config/ia64/ia64.h (no-inline-int-divide): New option.
8856         * config/ia64/ia64.h (no-inline-sqrt): New option.
8857         (TARGET_DEFAULT): Add MASK_INLINE_FLOAT_DIV_THR to define.
8858         * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
8859         * config/ia64/ia64.c (ia64_override_options): Modify error
8860         checking for inlined division/sqrt.
8861
8862 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
8863
8864         * bb-reorder.c, cfgbuild.c, diagnostic.c, explow.c, profile.c,
8865         ra-build.c, read-rtl.c, tracer.c, unwind-dw2-fde-glibc.c,
8866         value-prof.c, config/darwin-protos.h, config/frv/frv-abi.h,
8867         config/i386/pmmintrin.h, config/pa/pa-hpux.h: Update
8868         copyright.
8869
8870 2004-02-27  Paul Brook  <paul@codesourcery.com>
8871
8872         * function.c (assign_parms): Don't count pretend args for alignment.
8873
8874 2004-02-27  Richard Henderson  <rth@redhat.com>
8875
8876         * passes.c: New file.
8877         * Makefile.in (OBJS-common): Add it.
8878         * diagnostic.c (rtl_dump_and_exit): Move decl ...
8879         * flags.h (rtl_dump_and_exit): ... here.
8880         * output.h (size_directive_output, last_assemble_variable_decl):
8881         Move from toplev.c.
8882         * rtl.h (reg_alloc): Move from toplev.c.
8883         * toplev.c (HAVE_conditional_execution, DUMPFILE_FORMAT,
8884         struct dump_file_info, enum dump_file_index, dump_file_tbl,
8885         open_dump_file, close_dump_file, rest_of_decl_compilation,
8886         rest_of_type_compilation, rest_of_handle_final,
8887         rest_of_handle_delay_slots, rest_of_handle_stack_regs,
8888         rest_of_handle_variable_tracking, rest_of_handle_machine_reorg,
8889         rest_of_handle_new_regalloc, rest_of_handle_old_regalloc,
8890         rest_of_handle_regrename, rest_of_handle_reorder_blocks,
8891         rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_regmove,
8892         rest_of_handle_tracer, rest_of_handle_if_conversion,
8893         rest_of_handle_if_after_combine, rest_of_handle_web,
8894         rest_of_handle_branch_prob,
8895         rest_of_handle_value_profile_transformations, rest_of_handle_cfg,
8896         rest_of_handle_addressof, rest_of_handle_sibling_calls,
8897         rest_of_handle_jump_bypass, rest_of_handle_inlining,
8898         rest_of_handle_null_pointer, rest_of_handle_combine,
8899         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
8900         rest_of_handle_gcse, rest_of_handle_loop_optimize,
8901         rest_of_handle_loop2, rest_of_compilation): Move to passes.c.
8902         (decode_d_option): Use enable_rtl_dump_file.
8903         (compile_file, finalize, do_compile): Move profile+combine+graph
8904         cleanup to finish_optimization_passes.
8905         * toplev.h (init_optimization_passes, finish_optimization_passes,
8906         enable_rtl_dump_file): Declare.
8907
8908 2004-02-27  Eric Botcazou  <ebotcazou@act-europe.fr>
8909             Roger Sayle  <roger@eyesopen.com>
8910
8911         * fold-const.c (fold): Revert 2004-02-25 change.  Use the original
8912         operands to build a tree with swapped operands.
8913         * expr.c (expand_expr_real) <MAX_EXPR>: Consistently use the
8914         'unsignedp' predicate to specify the signedness.
8915
8916 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
8917
8918         * c-decl.c, c-ppoutput.c, combine.c, cppfiles.c, dwarf2out.c,
8919         expr.c, fold-const.c, gcc.c, haifa-sched.c, loop-iv.c,
8920         params.def, read-rtl.c, rtl.c, rtlanal.c, toplev.c: Fix
8921         comment typos and formatting.  Follow spelling conventions.
8922
8923 2004-02-26  Aldy Hernandez  <aldyh@redhat.com>
8924
8925         * config/rs6000/rs6000.md: Add fixuns_truncsfsi2 and
8926         fix_truncsfsi2.
8927
8928         * config/rs6000/spe.md: Delete spe_efsctuiz.
8929         Add spe_fixuns_truncsfsi2.
8930         Add spe_fix_truncsfsi2.
8931
8932 2004-02-26  Eric Christopher  <echristo@redhat.com>
8933
8934         * c-lex.c (c_lex_string_translate): New variable.
8935         (lex_string): Use to determine string translation.
8936         * c-pragma.h: Prototype.
8937         * c-parse.in (start_string_translation): New. Set above.
8938         (stop_string_translation): Ditto.
8939         (attribute, attribute_list, asm_def, asm_stmt,
8940         asm_operand): Use above functions.
8941         * cp/parser.c (cp_parser_declaration): Translate strings
8942         unless token is RID_EXTERN. Set c_lex_string_translate
8943         for recursive use.
8944         (cp_parser_asm_definition): Only translate argument strings
8945         to asms.
8946         (cp_parser_asm_operand_list): Ditto.
8947         (cp_parser_attribute_list): Do not translate attribute strings.
8948
8949 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
8950
8951         * stmt.c (expand_start_case_dummy): Remove.
8952         * tree.h: Remove the corresponding prototype.
8953
8954 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
8955
8956         * builtins.c (apply_args_register_offset): Remove.
8957         * tree.h: Remove the corresponding prototype.
8958
8959 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
8960
8961         * stor-layout.c (is_pending_size): Remove.
8962         * tree.h: Remove the corresponding prototype.
8963
8964 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
8965
8966         * recog.c (validate_replace_src): Remove.
8967         * recog.h: Remove the corresponding prototype.
8968
8969 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
8970
8971         * calls.c: Don't reference FINAL_REG_PARM_STACK_SPACE or
8972         MAYBE_REG_PARM_STACK_SPACE.
8973         * function.c: Likewise.
8974         * system.h (FINAL_REG_PARM_STACK_SPACE): Poison.
8975         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
8976         * doc/tm.texi (FINAL_REG_PARM_STACK_SPACE): Remove.
8977         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
8978
8979 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
8980
8981         * c-decl.c (c_expand_deferred_function): Remove.
8982         * c-tree.h: Remove the corresponding prototype.
8983
8984 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
8985
8986         * postreload.c (reload_cse_move2add): Generate just a PLUS
8987         instead of an entire SET.
8988
8989 2004-02-26  Jan Hubicka  <jh@suse.cz>
8990
8991         * config.gcc: Add support for nocoma/prescott/pentium-m/pentium3m
8992         /pentium4m.
8993         * i386.c (override_options): Add support for new CPUs.
8994         * i386.h (TARGET_CPU_DEFAULT_NAMES): New names.
8995         (TARGET_CPU_DEFAULT_pentium_m, TARGET_CPU_DEFAULT_pentium4e): New
8996         constants.
8997         * invoke.texi: Extend documentation of -mtune/-march for new CPUs.
8998
8999 2004-02-26  Bob Wilson  <bob.wilson@acm.org>
9000
9001         * config/xtensa/xtensa.h (TARGET_CPU_CPP_BUILTINS): Define __xtensa__.
9002
9003 2004-02-26  Eric Botcazou  <ebotcazou@act-europe.fr>
9004
9005         * config/sparc/sparc-protos.h (sparc_emit_floatunsdi): Add 'mode'.
9006         (sparc_emit_fixunsdi): New prototype.
9007         * config/sparc/sparc.c (sparc_emit_floatunsdi): Use 'mode' argument.
9008         (sparc_emit_fixunsdi): New function.
9009         * config/sparc/sparc.md (floatunsdisf2): Use 'general_operand' for
9010         operand 1.  Pass SFmode to sparc_emit_floatunsdi.
9011         (floatunsdidf2): Use 'general_operand' for operand 1.  Pass DFmode
9012         to sparc_emit_floatunsdi.
9013         (fixuns_truncsfdi2): New expander.
9014         (fixuns_truncdfdi2): Likewise.
9015
9016 2004-02-26  Alan Modra  <amodra@bigpond.net.au>
9017
9018         * gcse.c (delete_null_pointer_checks_1): Do not delete CC setter
9019         unless HAVE_cc0.
9020
9021 2004-02-25  Richard Henderson  <rth@redhat.com>
9022
9023         * explow.c (force_reg): Call mark_reg_pointer as appropriate.
9024         * config/alpha/alpha.c (alpha_emit_conditional_branch): Don't
9025         use (op0-op1) == 0 if op0 is a pointer.
9026         * config/alpha/alpha.md (cmpdi): Use some_operand.
9027         (three comparison combine splits): Remove.
9028
9029 2004-02-25  Richard Henderson  <rth@redhat.com>
9030
9031         PR c/12794
9032         * c-common.c (handle_alias_attribute): Reject the attribute if
9033         current_function_decl is set.
9034
9035 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
9036
9037         * config.gcc: Add comment describing extra_gcc_objs.
9038         i[34567]86-*-cygwin*): Replace host_extra_gcc_objs with extra_gcc_objs.
9039         * configure.ac (extra_gcc_objs): New substitution variable.
9040         (host_extra_gcc_objs): Don't substitute.
9041         * configure: Regenerate.
9042         * Makefile.in: Use extra_gcc_objs.
9043
9044 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
9045
9046         * doc/contrib.texi: Add an entry for myself.
9047
9048 2004-02-25  Jan Hubicka  <jh@suse.cz>
9049
9050         * basic-block.h (make_eh_edge, break_superblocks): Declare.
9051         * cfgbuild.c (make_eh_edge):  Make global.
9052         * cfglayout.c (break_superblocks): Likewise; fix memory leak.
9053         * except.c (build_post_landing_pads, connect_post_landing_pads,
9054         dw2_build_landing_pads, sjlj_emit_function_enter,
9055         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
9056         sjlj_build_landing_pads): Update CFG.
9057         (emit_to_new_bb_before): New function.
9058         (finish_eh_generation): Do not rebuild the CFG.
9059
9060 2004-02-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9061
9062         * config.gcc (hppa*-*-*, parisc*-*-*): Add MASK_BIG_SWITCH to all
9063         target_cpu_default defines.
9064         * pa-hpux.h (TARGET_DEFAULT): Add MASK_BIG_SWITCH to define.
9065         * pa.h (TARGET_DEFAULT): Likewise.
9066
9067 2004-02-25  Eric Botcazou  <ebotcazou@act-europe.fr>
9068
9069         * fold-const.c (fold): Treat MAX_EXPR and MIN_EXPR like
9070         comparisons with regard to signedness.
9071
9072 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
9073
9074         * arm.c (thumb_legitimize_address): New function.
9075         * arm-protos.h: Prototype it.
9076         * arm.h (THUMB_LEGITIMIZE_ADDRESS): Define.
9077         (LEGITIMIZE_ADDRESS): Use it.
9078
9079 2004-02-25  J"orn Rennecke <joern.rennecke@superh.com>
9080
9081         * reload1.c (reload): Only spill eliminable register with multiple
9082         adjacent elimination alternatives if all alternatives fail.
9083
9084 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
9085
9086         * arm.c (arm_legitimate_index_p): For QImode the range of an offset
9087         is -4095...+4095 inclusive.
9088
9089 2004-02-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
9090
9091         * doc/install.texi (sparc-sun-solaris2* specific notes): Document
9092         the bootstrap failure with Sun CC 5.4 and 5.5.
9093
9094 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
9095
9096         * cse.c (cse_change_cc_mode_insns): Stop at any instruction
9097         which modifies NEWREG.
9098         (cse_condition_code_reg): Update the mode of CC_REG in
9099         CC_SRC_INSN on our own.
9100
9101 2004-02-24  Michael Matz  <matz@suse.de>
9102
9103         * config/i386/i386.c (ix86_comp_type_attributes): Check for
9104         regparm attributes.
9105
9106 2004-02-24  Richard Henderson  <rth@redhat.com>
9107
9108         * toplev.c (dump_file_tbl): Rename from dump_file.
9109         * bb-reorder.c, bt-load.c, cfgcleanup.c, cfglayout.c, cfgloopanal.c,
9110         cfgloopmanip.c, cfgrtl.c, config/arm/arm.c, config/frv/frv.c,
9111         config/i386/i386.c, config/ia64/ia64.c, config/mips/mips.c,
9112         config/sh/sh.c, cse.c, flow.c, ifcvt.c, loop-iv.c, loop-unroll.c,
9113         loop-unswitch.c, output.h, predict.c, profile.c, ra-build.c,
9114         ra-colorize.c, ra-debug.c, ra-rewrite.c, ra.c, regrename.c, reload1.c,
9115         toplev.c, tracer.c, value-prof.c, var-tracking.c, web.c:
9116         s/rtl_dump_file/dump_file/g.
9117
9118 2004-02-24  Aldy Hernandez  <aldyh@redhat.com>
9119
9120         * config/rs6000/spe.md (spe_fix_truncsfsi2): Delete.
9121         (spe_fixuns_truncsfsi2): Delete.
9122
9123         * config/rs6000/rs6000.md (fix_truncsfsi2): Delete.
9124         (fixuns_truncsfsi2): Delete.
9125
9126 2004-02-24  Josef Zlomek  <zlomekj@suse.cz>
9127
9128         PR/14240
9129         * rtlanal.c (replace_label): Fix replacing labels in constant pool.
9130
9131 2004-02-24  Geoffrey Keating  <geoffk@apple.com>
9132
9133         * config/darwin.h (TARGET_HAS_F_SETLKW): Define.
9134
9135 2004-02-24  Jason Merrill  <jason@redhat.com>
9136
9137         * tree.c (check_qualified_type): New fn.
9138         (get_qualified_type): Use it.  If type already has the desired
9139         quals, just return it.
9140         * tree.h: Declare it.
9141
9142 2003-02-24  Sanjiv Kumar Gupta  <sanjivg@noida.hcltech.com>
9143
9144         * target-def.h (TARGET_SCHED_INIT_GLOBAL,
9145         TARGET_SCHED_FINISH_GLOBAL): New macros.
9146
9147         * target.h (md_init_global, md_finish_global): Function
9148         declarations corresponding to new target macros.
9149
9150         * haifa-sched.c (sched_init, sched_finish): Allow target to
9151         call the new schedular hooks.
9152
9153         * flow.c (recompute_reg_usage): Add PROP_DEATH_NOTES flag in
9154         call to update_life_info.
9155
9156         * config/sh/sh.h (OVERRIDE_OPTIONS): Re-enable
9157         flag_schedule_insns for SH4.
9158
9159         * config/sh/sh.c (sh_md_init_global, sh_md_finish_global,
9160         find_set_regmode_weight, find_insn_regmode_weight,
9161         find_regmode_weight), sh_md_init, sh_dfa_new_cycle,
9162         sh_variable_issue, high_pressure, ready_reorder,
9163         rank_for_reorder, swap_reorder, sh_reorder, sh_reorder2): New
9164         functions used to throttle the insn movement in first
9165         scheduling pass for SH.
9166
9167         * gcc/doc/tm.texi: Document TARGET_SCHED_INIT_GLOBAL and
9168         TARGET_SCHED_FINISH_GLOBAL.
9169
9170 2004-02-24  Alexandre Oliva  <aoliva@redhat.com>
9171
9172         Implement FR-V FDPIC ABI support for frv-uclinux and frv-linux.
9173         2004-02-05  Alexandre Oliva  <aoliva@redhat.com>
9174         * config/frv/frv.c (frv_emit_movsi): Use GOT relocations for
9175         symbols in sections named by the user.
9176         2004-01-30  Alexandre Oliva  <aoliva@redhat.com>
9177         * config/frv/linux.h (TARGET_OS_CPP_BUILTINS): New.
9178         2004-01-27  Alexandre Oliva  <aoliva@redhat.com>
9179         * config.gcc (frv-*-*linux*): Handle like *-*-linux*.
9180         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Remove, obviated by
9181         the above.
9182         2004-01-20  Alexandre Oliva  <aoliva@redhat.com>
9183         * config/frv/frv.md (symGOT2reg_hilo, symGOTOFF2reg_hilo): Add
9184         one more pseudo to further improve code generation.
9185         2004-01-19  Alexandre Oliva  <aoliva@redhat.com>
9186         * config/frv/frv.md (movdi_ldd): Introduce explicit indirection
9187         inside UNSPEC.
9188         2004-01-16  Alexandre Oliva  <aoliva@redhat.com>
9189         * config/frv/frv.c (frv_legitimate_address_p): Added
9190         allow_double_reg_p argument.  Adjust all callers.  Use it to
9191         decide whether to enable double-register indirect addressing.
9192         (frv_funcdesc_alias_set): Remove.
9193         (frv_expand_fdpic_call): Force non-SYMBOL_REF operand into
9194         register.  Emit movdi_ldd.
9195         (ldd_address_operand): New.
9196         * config/frv/frv-protos.h (frv_legitimate_address_p): Adjust.
9197         * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Likewise.
9198         (PREDICATE_CODES): Add ldd_address_operand.
9199         * config/frv/frv.md (movdi_ldd): New.
9200         (symGOT2reg_hilo, symGOTOFF2reg_hilo): Use separate pseudo for
9201         intermediate computations if possible.
9202         (symGOTOFF2reg_i): Fix harmless typo.
9203         2003-12-18  Alexandre Oliva  <aoliva@redhat.com>
9204         * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Cast
9205         relocated p_vaddr to vaddr type.
9206         * config/frv/frv-protos.h (frv_expand_fdpic_call): Return void.
9207         * config/frv/frv.c (frv_get_funcdesc_alias_set): New.
9208         (frv_expand_fdpic_call): Propagate incoming MEM's expr to funcdesc
9209         MEM, or use a funcdesc alias set.  Use regular move instead of
9210         ldd.
9211         (dbl_memory_one_insn_operand): Recognize function descriptors by
9212         type or by alias set, and don't split them.
9213         * config/frv/frv.md (call, call_value): Never use call_internal
9214         for fdpic.
9215         (call_internal, call_value_internal): Never match for FDPIC.
9216         (call_fdpicdi, call_fdpicsi, call_value_fdpicdi,
9217         call_value_fdpicsi): Require FDPIC.
9218         (ldd): Removed.
9219         2003-12-17  Alexandre Oliva  <aoliva@redhat.com>
9220         * config/frv/frv.h (CRT_GET_RFIB_DATA): Define for __FRV_FDPIC__.
9221         * unwind-dw2-fde-glibc.c: Don't include elf-fdpic.h any more.
9222         (_Unwind_IteratePhdrCallback): Adjust type of load_base for FRV
9223         FDPIC.  Compute data base address.
9224         * config/frv/linux.h (SUBTARGET_DRIVER_SELF_SPECS): Enable -mfdpic
9225         before the other self-specs are processed.
9226         * config/frv/t-linux (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS):
9227         Build with -fPIC.
9228         2003-12-15  Alexandre Oliva  <aoliva@redhat.com>
9229         * unwind-dw2-fde-glibc.c: Don't include bits/elf-fdpic.h if
9230         inhibit_libc is defined.
9231         2003-12-12  Alexandre Oliva  <aoliva@redhat.com>
9232         * unwind-dw2-fde-glibc.c: Include bits/elf-fdpic.h for
9233         __FRV_FDPIC__.
9234         (__RELOC_POINTER): Define.
9235         (_Unwind_IteratePhdrCallback): Use it.
9236         * config/frv/frv.h (Twrite): Define.
9237         (TRANSFER_FROM_TRAMPOLINE): Use it.
9238         * config/frv/linux.h (INVOKE__main): Undefine.
9239         (Twrite): Override.
9240         2003-12-05  Richard Sandiford  <rsandifo@redhat.com>
9241         * doc/invoke.texi (-mlong-calls, -mlinked-fp): Document FRV options.
9242         (-mlibrary-pic): Emphasize that this option generates EABI code.
9243         (-mcpu): Add fr550.
9244         (-mpack): Remove.
9245         2003-11-30  Alexandre Oliva  <aoliva@redhat.com>
9246         * config/frv/frv.c (int_2word_operand): Reject LABELs, SYMBOL_REFs
9247         and CONSTs in FDPIC mode.
9248         * gcc/config.gcc (with_cpu): Default to fr400 on frv-*-*linux*.
9249         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
9250         * config/frv/frv.c (move_source_operand): Don't accept symbolic
9251         constants.
9252         * config/frv/frv.md (*movhi_internal, *movsi_internal): Use an 'n'
9253         rather than 'i' constraint for the 2-instruction alternative.
9254         (*movsi_2word): New, incorporating existing int_2word_operand splitter.
9255         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
9256         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Q): Renamed from
9257         EXTRA_CONSTRAINT_FOR_Y.
9258         (EXTRA_CONSTRAINT): Remove handling of 'Y'.
9259         * config/frv/frv.md (*movsi_internal): Remove 'Q' constraint.
9260         (addsi3): Change 'Y' constraint to 'Q'.
9261         2003-11-27  Richard Sandiford  <rsandifo@redhat.com>
9262         * reload.c (CONST_POOL_OK_P): New macro.
9263         (find_reloads): Use it to decide whether a constant can be forced
9264         into memory.
9265         * config/frv/frv.h (LEGITIMATE_PIC_OPERAND_P): Return true if the
9266         constant satisfies got12_operand.
9267         (frv_cannot_force_const_mem): Always return true for TARGET_FDPIC.
9268         (frv_legitimate_address_p): Check for valid unspec offsets using
9269         got12_operand rather than frv_legitimate_fdpic_operand_p.
9270         (frv_legitimate_fdpic_operand_p): Delete.
9271         (frv_emit_movsi): Abort if we try to use the FDPIC register during
9272         or after reload.
9273         (frv_legitimate_constant_p): Return LEGITIMATE_PIC_OPERAND_P if
9274         TARGET_FDPIC.
9275         * config/frv/frv.md (*movdf_double): Add alternatives for CONST_DOUBLE.
9276         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
9277         * config/frv/frv-protos.h (fdpic_operand, fdpic_got12_operand)
9278         (frv_fdpic_fptr_operand): Don't declare here.
9279         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Y): Call got12_operand
9280         rather than fdpic_got12_operand.
9281         (PREDICATE_CODES): Remove symbolic_operand entry.  Add entries for
9282         got12_operand and const_unspec_operand.
9283         * config/frv/frv.c (got12_operand): Renamed from fdpic_got12_operand.
9284         (gpr_or_int12_operand, dbl_memory_one_insn_operand): Update calls.
9285         (symbolic_operand): Remove.
9286         (const_unspec_operand): New predicate.
9287         * config/frv/frv.md (*movsi_got): Use got12_operand.
9288         (*movsi_high_got, *movsi_lo_sum_got): Use const_unspec_operand.
9289         2003-11-18  Richard Sandiford  <rsandifo@redhat.com>
9290         * config/frv/frv-protos.h (frv_output_addr_const_extra): Remove.
9291         * config/frv/frv.h (OUTPUT_ADDR_CONST_EXTRA): Remove definition.
9292         * config/frv/frv.c (frv_unspec): New structure.
9293         (frv_small_data_reloc_p, frv_const_unspec_p): New functions.
9294         (frv_print_operand_memory_reference): Use frv_const_unspec_p to
9295         validate CONST indices.  Use frv_output_const_unspec to print them.
9296         (frv_print_operand): Update call to unspec_got_name.  Use
9297         frv_output_const_unspec to print constant unspecs.
9298         (frv_legitimate_fdpic_operand_p): Return true if frv_const_unspec_p.
9299         Reject UNSPECs otherwise.
9300         (unspec_got_name): Take the relocation number as argument, not an
9301         rtx containing it.
9302         (frv_output_addr_const_extra): Remove, replacing with...
9303         (frv_output_const_unspec): ...this new function.
9304         (frv_find_base_term): Use frv_const_unspec_p & frv_small_data_reloc_p.
9305         (gpr_or_int12_operand): Use fdpic_got12_operand.
9306         (dbl_memory_one_insn_operand): Likewise.
9307         (fdpic_got12_operand): Use frv_const_unspec_p.
9308         (frv_emit_movsi): Use frv_const_unspec_p to check for CONSTs that
9309         are already legitimate.  Use frv_small_data_reloc_p when deciding
9310         whether to use HIGH/LO_SUM for R_FRV_GOTOFF12 and R_FRV_GPREL12.
9311         2003-11-18  Alexandre Oliva  <aoliva@redhat.com>
9312         * config/frv/t-linux (SHLIB_MAPFILES): Override so as to export...
9313         * config/frv/libgcc-frv.ver: ... frv-specific symbols.  New file.
9314         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
9315         label, for real this time.
9316         * config/frv/frv.c (frv_local_funcdesc_p): Update to new
9317         representation of visibility.
9318         (fdpic_got12_operand, symbolic_operand): Mark unused arguments as
9319         such.
9320         2003-11-17  Richard Sandiford  <rsandifo@redhat.com>
9321         * config/frv/frv.h (MASK_LINKED_FP, TARGET_LINKED_FP): New macros.
9322         (TARGET_SWITCHES): Add -mlinked-fp and -mno-linked-fp.
9323         * config/frv/frv.c (frv_override_options): Set MASK_LINKED_FP unless
9324         it was explicitly disabled.
9325         (frv_stack_info): There is no need to save the link register in every
9326         frame unless TARGET_LINKED_FP is true.
9327         (frv_frame_pointer_required): If !TARGET_LINKED_FP, only require a
9328         frame pointer if the stack pointer might change value.
9329         (frv_return_addr_rtx): Check and process "count" argument.
9330         2003-11-14  Richard Sandiford  <rsandifo@redhat.com>
9331         * config/frv/frv-protos.h (frv_legitimize_address): Remove.
9332         (frv_find_base_term): Declare.
9333         * config/frv/frv.h (LEGITIMIZE_ADDRESS): Do nothing.
9334         (FIND_BASE_TERM): Define.
9335         (PREDICATE_CODES): Remove pic_register_operand, pic_symbolic_operand,
9336         small_data_register_operand, small_data_symbolic_operand.  Add
9337         symbolic_operand.
9338         * config/frv/frv.c (const_small_data_p, plus_small_data_p): Delete.
9339         (frv_print_operand_memory_reference, output_move_single): Remove
9340         special handling for unlegitimized sdata addresses.
9341         (frv_legitimate_address_p): Don't allow sums of SDA_BASE_REG
9342         and symbolic addresses.
9343         (frv_legitimize_address, frv_legitimize_fdpic_address): Delete.
9344         (frv_find_base_term): New function.
9345         (int_2word_operand): Check specifically for symbolic address constants.
9346         (pic_register_operand, pic_symbolic_operand): Delete.
9347         (small_data_register_operand, small_data_symbolic_operand): Delete.
9348         (dbl_memory_one_insn_operand): Don't call plus_small_data_p.
9349         Allow UNSPEC_GOT constants if !TARGET_FDPIC.
9350         (move_source_operand): Only accept CONSTs if they're a two-insn
9351         symbolic constant.
9352         (fdpic_got12_operand): Don't require TARGET_FDPIC.
9353         (frv_emit_movsi): Legitimize sdata and -mlibrary-pic addresses
9354         using gen_symGOTOFF2reg*.
9355         (frv_ifcvt_rewrite_mem): Remove (plus gr16 ...) special cases.
9356         (frv_rtx_costs): Give all MEM addresses a cost of 0.  Give MEMs
9357         themselves a cost of 3 insns.
9358         * config/mips/mips.md (*movsi_got): Allow for !TARGET_FDPIC too.
9359         Change predicate to symbolic_operand.
9360         (*movsi_high_got, *movsi_lo_sum_got): Likewise.
9361         (*movsi_lda_sdata): Delete.
9362         (*movsi_pic, movsi_high_pic, movsi_lo_sum_pic): Delete.
9363         2003-11-05  Alexandre Oliva  <aoliva@redhat.com>
9364         * config.gcc: Add t-slibgcc-elf-ver and support --with-cpu for
9365         frv-*-*linux*.
9366         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
9367         label.
9368         * config/frv/frv.h (DRIVER_SELF_SPECS): Add blank before
9369         -multilib-library-pic.
9370         (LINK_SPEC): Add -z text for -mfdpic.
9371         * config/frv/frvbegin.c (__ROFIXUP_LIST__): Don't define on FDPIC.
9372         * config/frv/frvend.c (__ROFIXUP_END__): Likewise.
9373         * config/frv/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, LINK_SPEC):
9374         Override.
9375         (OPTION_DEFAULT_SPECS, HAS_INIT_SECTION, INIT_SECTION_ASM_OP,
9376         FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION): Define.
9377         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Use
9378         crtstuff-generated files.
9379         2003-10-31  Alexandre Oliva  <aoliva@redhat.com>
9380         * config.gcc: Add frv-*-*linux*.
9381         * config/frv/linux.h, config/frv/t-linux: New.
9382         2003-10-06  Alexandre Oliva  <aoliva@redhat.com>
9383         * config/frv/frv.h (LINK_SPEC): Pass -melf32frvfd to the linker
9384         when -mfdpic even if a linker script is explicitly listed.
9385         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
9386         * config/frv/frv.c (frv_override_options): Clear asm_out
9387         unaligned_op for SImode on FDPIC.
9388         (frv_emit_movsi): Use compute_reloc_for_constant to compute the
9389         argument passed to decl_readonly_section.
9390         (frv_assemble_integer): Revert 2003-09-30's change, but make the
9391         whole block run with FDPIC even with -fno-PIC.
9392         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
9393         * config/frv/frv.c (frv_cannot_force_const_mem): Don't force
9394         symbol or label plus offset to memory.
9395         (frv_emit_movsi): Emit GPREL only if -mgprel-ro.  Emit 32-bit
9396         GOTOFF and GPREL for LABEL_REF.
9397         * config/frv/frv.h (DRIVER_SELF_SPECS): Add -mgprel-ro with
9398         -mfdpic unless -mno-gprel-ro, -fpic or -fpie.
9399         (MASK_GPREL_RO, TARGET_GPREL_RO): New.
9400         (TARGET_SWITCHES): Added gprel-ro and no-gprel-ro.
9401         * doc/invoke.texi: Document them.
9402         2003-09-30  Alexandre Oliva  <aoliva@redhat.com>
9403         * config/frv/frv-protos.h (frv_gen_GPsym2reg): Declare.
9404         (frv_splittable_got_operand): Removed.
9405         * config/frv/frv.c (frv_cannot_force_const_mem): Reject HIGH and
9406         LO_SUM.  Add comments.
9407         (frv_override_options): Moved enabling of FDPIC to
9408         DRIVER_SELF_SPECS.  Don't enable MASK_DWORD.
9409         (frv_local_funcdesc_p): Remove unnecessary heck for flag_pie.
9410         (frv_legitimize_fdpic_address): Don't duplicate logic in
9411         frv_emit_movsi.
9412         (frv_gen_GPsym2reg): New.
9413         (unspec_got_name): Added gprel.
9414         (frv_expand_fdpic_call): Add support for inlining PLTs.
9415         (fdpic_fptr_operand): Renamed from frv_fdpic_fptr_operand.
9416         (gpr_or_int12_operand): Added GPREL12.
9417         (pic_symbolic_operand): Match even if !flag_pic for FDPIC.
9418         (small_data_symbolic_operand): Fail if FDPIC.
9419         (fdpic_splittable_got_operand): Removed.
9420         (fdpic_got12_operand): Added GPREL12.
9421         (frv_emit_movsi): Reorganize to avoid duplication.  Emit GPREL
9422         when appropriate.  Fix sdata GOTOFF.
9423         (frv_legitimate_constant_p): Require legitimate PIC operand for
9424         FDPIC with pic, but only a legitimate fdpic operand for non-pic.
9425         (frv_assemble_integer): Move FDPIC funcdesc handling out of
9426         flag_pic case.
9427         (frv_asm_out_constructor, frv_asm_out_destructor): Abort if
9428         frv_assemble_integer fails.
9429         * config/frv/frv.h (DRIVER_SELF_SPECS): New.
9430         (SUBTARGET_DRIVER_SELF_SPECS): New.
9431         (ASM_SPEC): Don't pass -mno-fdpic.
9432         (LINK_SPEC): Pass -melf32frvfd for FDPIC.
9433         (MASK_INLINE_PLT, TARGET_INLINE_PLT): New.
9434         (TARGET_SWITCHES): Add -minline-plt, -mno-inline-plt and
9435         -multilib-library-pic.
9436         (PREDICATE_CODES): Added fdpic_operand, fdpic_fptr_operand,
9437         condexec_si_media_operator, condexec_sf_add_operator and
9438         condexec_sf_conv_operator.  Removed condexec_sf_binary_operator
9439         and condexec_sf_unary_operator.
9440         * config/frv/frv.md (R_FRV_GPREL12, R_FRV_GPRELHI, R_FRV_GPRELLO):
9441         New.
9442         (movsi_got, movsi_high_got, movsi_lo_sum_got): Move before
9443         movsi_internal.  Give them internal names.  movsi_got has type
9444         int.
9445         (fdpic got splitters): Remove.
9446         (symGPREL2reg, symGPREL2reg_hilo): New.
9447         * config/frv/t-frv (MULTILIB_MATCHES): Don't map -fpic and -fPIC
9448         to -mlibrary-pic.  Map -multilib-library-pic to it.
9449         * doc/invoke.texi: -mfdpic, -minline-plt, -multilib-library-pic:
9450         Document.
9451         2003-09-28  Alexandre Oliva  <aoliva@redhat.com>
9452         * config/frv/frv.c (frv_function_symbol_referenced_p): Declare.
9453         (TARGET_CANNOT_FORCE_CONST_MEM): Define to...
9454         (frv_cannot_force_const_mem): New function.
9455         (const_small_data_p, plus_small_data_p): Update comments on sdata
9456         on FDPIC.
9457         (frv_override_options): Set flag_pie for FDPIC too.
9458         (frv_conditional_register_usage): Mark gr16 and gr17 as non-fixed,
9459         call-saved registers on FDPIC.
9460         (frv_stack_info): Don't preserve the PIC register on FDPIC, and
9461         don't force LR to be preserved.
9462         (frv_expand_prologue): Likewise.
9463         (frv_asm_output_mi_thunk): Use 12-bit funcdesc gotoff for -fpic.
9464         (frv_frame_pointer_required): Don't force it just because the
9465         FDPIC register is used.
9466         (frv_legitimate_address_p) <CONST>: Accept a legitimate FDPIC
9467         operand only if !condexec_p.
9468         (frv_legitimize_address): Return the FDPIC-legitimized address.
9469         Don't match small data here on FDPIC.
9470         (frv_legitimate_fdpic_operand_p): Don't accept unadorned function
9471         symbols.  Use TRUE/FALSE instead of 1/0.
9472         (frv_local_funcdesc_p): New.
9473         (frv_legitimize_fdpic_address): Rewrite to use GOTOFF and 12-bit
9474         immediates when possible.
9475         (pic_symbolic_operand): Accept SYMBOL_REFs and CONSTs in FDPIC.
9476         (dbl_memory_one_insn_operand): Accept addresses that add a REG and
9477         an UNSPEC_GOT.
9478         (frv_emit_movsi): Handle FDPIC before small data.  Use GOTOFF and
9479         12-bit immediates when possible.
9480         (frv_legitimate_constant_p): In FDPIC, reject SImode operands that
9481         are not legitimate pic operands.
9482         (frv_in_small_data_p): Re-enable for FDPIC.
9483         * config/frv/frv.h (SDA_BASE_REG): Remove comment about FDPIC.
9484         (FRV_GLOBAL_P): Removed.
9485         * config/frv/frv.md: Add modes to CONSTs.
9486         (movsi_got): New.
9487         (movsi_lo_sum_got): Use separate matches instead of match_dup.
9488         (movsi_high_pic, movsi_lo_sum_pic): Match on non-FDPIC only.
9489         (fdpic splittable operations): Match on flag_pic != 1.
9490         2003-09-22  Alexandre Oliva  <aoliva@redhat.com>
9491         * config/frv/frv.c (frv_asm_out_constructor,
9492         frv_asm_out_destructor): Pass to frv_assemble_integer the size in
9493         bytes, not bits.
9494         2003-09-19  Alexandre Oliva  <aoliva@redhat.com>
9495         * config/frv/frv.c (frv_assemble_integer): Reject complex
9496         expressions referencing function SYMBOL_REFs.
9497         * config/frv/frv.c (frv_function_symbol_referenced_p): New.
9498         (move_source_operand): Reject CONSTs that reference function
9499         SYMBOL_REFs on FDPIC.
9500         (frv_emit_movsi): If we get such a CONST, break it up.
9501         * config/frv/frv.h (CPP_SPEC): Define __FRV_FDPIC__ for -mfdpic.
9502         (TRANSFER_FROM_TRAMPOLINE): Use different definitions for FDPIC.
9503         * config/frv/frv.c (frv_print_operand) <I>: Recognize PLUS without
9504         MEM.
9505         (frv_assemble_integer): Don't use funcdesc for LABEL_REFs.
9506         (frv_trampoline_size): Increase for FDPIC.
9507         * config/frv/frv.h (TRAMPOLINE_ALIGNMENT): Bump to 64 for FDPIC.
9508         (TRANSFER_FROM_TRAMPOLINE): Handle FDPIC trampolines.
9509         * config/frv/frv.c (frv_legitimize_fdpic_address, frv_emit_movsi):
9510         Disable use of GOTOFF for now.
9511         (const_small_data_p, plus_small_data_p, frv_in_small_data_p):
9512         Disable use of small data in FDPIC for now.
9513         (frv_asm_output_mi_thunk): Implement for FDPIC.
9514         * config/frv/frv.h (SDA_BASE_REG): Set to -1 with FDPIC.
9515         * config/frv/frv.c (frv_asm_out_constructor): Use
9516         frv_assemble_integer for FDPIC pointers.
9517         (frv_asm_out_destructor): Likewise.
9518         * config/frv/frv.md (ldd): Fix order of operands.  Use
9519         address_operand for input.
9520         2003-09-18  DJ Delorie  <dj@redhat.com>
9521         * config/frv/frv.c (frv_legitimate_fdpic_operand_p): Remove UNSPEC_PIC.
9522         (unspec_got_name): Correct typo.
9523         (frv_emit_movsi): Pre-expand splittable GOTs.
9524         (frv_expand_fdpic_call): Rename gen_lddi to gen_ldd.
9525         * config/frv/frv.md (lddi): Fix syntax error, rename to ldd.
9526         (symGOT2reg_hilo, symGOTOFF2reg_hilo): New.
9527         * config/frv/t-frv: Add -mfdpic multilibs.
9528         * config/frv/frv.h (ASM_SPEC): Pass -mfdpic/-mno-fdpic.
9529         (TARGET_SWITCHES): Add -mno-fdpic, fix documentation.
9530         * config/frv/frv.c (frv_override_options): -mfdpic assumes
9531         flag_pic, default to 32-bit pics, require DWORD ops.
9532         (frv_override_options): Add W and Z constraints.
9533         (frv_expand_prologue): No pic prologue for -mfdpic.
9534         (frv_asm_output_mi_thunk): Support -mfdpic (soon).
9535         (frv_print_operand_memory_reference): Handle GOT constants.
9536         (frv_legitimate_address_p): Allow GOT constants.
9537         (frv_legitimize_address): Handle GOT addresses too.
9538         (frv_legitimate_fdpic_operand_p): New.
9539         (frv_legitimize_fdpic_address): New.
9540         (unspec_got_name): New.
9541         (frv_output_addr_const_extra): New.
9542         (frv_expand_fdpic_call): New.
9543         (frv_fdpic_fptr_operand): New.
9544         (gpr_or_int12_operand): Handle GOT operands.
9545         (int_2word_operand): Handle GOT operands.
9546         (fdpic_operand): New.
9547         (fdpic_splittable_got_operand): New.
9548         (fdpic_got12_operand): New.
9549         (frv_emit_movsi): Handle GOT operands.
9550         (frv_assemble_integer): -mfdpic doesn't use rofixups.
9551         (frv_print_operand): Support 'g' code for GOT operands.
9552         * config/frv/frv-protos.h: Add prototypes as needed.
9553         * config/frv/frv.md (R_FRV_GOT12, R_FRV_GOTHI, R_FRV_GOTLO,
9554         R_FRV_FUNCDESC, R_FRV_FUNCDESC_GOT12, R_FRV_FUNCDESC_GOTHI,
9555         R_FRV_FUNCDESC_GOTLO, R_FRV_FUNCDESC_VALUE,
9556         R_FRV_FUNCDESC_GOTOFF12, R_FRV_FUNCDESC_GOTOFFHI,
9557         R_FRV_FUNCDESC_GOTOFFLO, R_FRV_GOTOFF12, R_FRV_GOTOFFHI,
9558         R_FRV_GOTOFFLO): New.
9559         (movsi_high_got, movsi_lo_sum_got): New.
9560         (*movsi_pic): Don't use this splitter for -mfdpic.
9561         (addsi3): Allow GOT references also.
9562         (call, call_value): Handle -mfdpic separately.
9563         (call_fdpicdi, call_fdpicsi, lddi, call_value_fdpicdi,
9564         call_value_fdpicsi): New.
9565         (symGOT2reg, symGOT2reg_i, got splitters, symGOTOFF2reg,
9566         symGOTOFF2reg_i): New.
9567         * config/frv/frv.h (MASK_FDPIC): New.
9568         (TARGET_FDPIC): New.
9569         (TARGET_SWITCHES): Add -mfdpic.
9570         (FDPIC_FPTR_REGNO): New.
9571         (FDPIC_REGNO): New.
9572         (OUR_FDPIC_REG): New.
9573         (enum reg_class): Add FDPIC_REGS, FDPIC_FPTR_REGS, and
9574         FDPIC_CALL_REGS.
9575         (REG_CLASS_NAMES): Likewise.
9576         (REG_CLASS_CONTENTS): Likewise.
9577         (EXTRA_CONSTRAINT_FOR_Y): New, for 12-bit GOTs.
9578         (EXTRA_CONSTRAINT): Add it here.
9579         (FRV_GLOBAL_P): New.
9580         (OUTPUT_ADDR_CONST_EXTRA): New.
9581
9582 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
9583
9584         * config/sparc/sparc.h: Remove commented-out definitions of
9585         TARGET_EDOM and GEN_ERRNO_RTX.
9586
9587 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
9588
9589         * df.c, df.h, ra-build.c, ra-rewrite.c, ra.c, web.c: Replace
9590         df_analyse with df_analyze.
9591
9592 2004-02-24  Alan Modra  <amodra@bigpond.net.au>
9593
9594         * gcse.c (delete_null_pointer_checks_1): Set stop_insn to end, not
9595         beginning of block.
9596
9597 2004-02-23  James E Wilson  <wilson@specifixinc.com>
9598
9599         * calls.c (precompute_arguments): Update comment.
9600
9601 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
9602
9603         * et-forest.c: Replace et_occurences with et_occurrences.
9604
9605 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
9606
9607         * cfgloop.h, loop-iv.c, loop-unswitch.c: Replace iv_analyse
9608         with iv_analyze.
9609
9610 2004-02-23  Kelley Cook  <kcook@gcc.gnu.org>
9611
9612         * config/i386/i386.c: Rename pni to sse3.
9613         * config/i386/i386.h: Likewise.
9614         * config/i386/i386.md: Likewise.
9615         * config/i386/pmmintrin.h: Likewise.
9616         * doc/extend.texi: Likewise.
9617         * doc/invoke.texi: Likewise.
9618
9619 2004-02-23  Zack Weinberg  <zack@codesourcery.com>
9620             Kazu Hirata  <kazu@cs.umass.edu>
9621
9622         Remove -fwritable-strings.
9623         * c-common.c (fix_string_type): Don't check
9624         flag_writable_strings.
9625         (fix_string_type): Likewise.
9626         * c-opts.c (set_std_c89): Don't initialize
9627         flag_writable_strings.
9628         (set_std_c99): Likewise.
9629         * common.opt (fwritable-strings): Remove.
9630         * flags.h: Remove the external declaration of
9631         flag_writable_strings.
9632         * opts.c (common_handle_option) <OPT_fwritable_strings>:
9633         Remove.
9634         * toplev.c (flag_writable_strings): Remove.
9635         (f_options): Remove an entry for writable-strings.
9636         * varasm.c (const_hash_1) <STRING_CST>: Don't check
9637         flag_writable_strings.
9638         (compare_constant) <STRING_CST>: Likewise.
9639         (build_constant_desc): Likewise.
9640         * config/darwin.c (machopic_select_section): Likewise.
9641         * config/arm/arm.c (AOF_ASSEMBLER): Likewise.
9642         * config/arm/pe.c (arm_pe_encode_section_info): Likewise.
9643         * config/iq2000/iq2000.c (iq2000_select_section): Likewise.
9644         * config/mips/mips.c (mips_select_section): Likewise.
9645         (mips_encode_section_info): Likewise.
9646         * config/pa/pa.c (pa_select_section): Likewise.
9647         * config/pa/pa.h (TEXT_SPACE_P): Likewise.
9648         * config/v850/v850.c (v850_select_section): Likewise.
9649         * doc/invoke.texi (-fwritable-strings): Remove.
9650         (-fno-const-strings): Don't mention -fwritable-strings.
9651         * doc/trouble.texi: Don't mention -fwritable-strings.
9652
9653 2003-02-23  Nathanael Nerode  <neroden@gcc.gnu.org>
9654
9655         * doc/install.texi: Update for switch of boehm-gc to autoconf 2.57.
9656
9657 2004-02-23  Dale Johannesen  <dalej@apple.com>
9658
9659         * config/rs6000.md (movsf_hardfloat): Add POWER form of nop.
9660         (movdf_hardfloat64):  Ditto.
9661         (movdf_softfloat64):  Ditto.
9662
9663 2004-02-23  Fariborz Jahanian <fjahanian@apple.com>
9664         * config/rs6000/rs6000.c (function_arg): call to
9665         rs6000_mixed_function_arg for DFmode moved to allow
9666         normal DFmode incoming register assignment.
9667
9668 2004-02-23  Dale Johannesen  <dalej@apple.com>
9669
9670         * config/rs6000.md (movsf_hardfloat): Accept CTR-to-CTR copy.
9671         (movdf_hardfloat64):  Ditto.
9672
9673 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
9674
9675         * convert.c, gcov-io.c, libgcov.c, sched-int.h, sibcall.c,
9676         config/rs6000/linux.h, config/rs6000/rs6000-c.c: Update
9677         copyright.
9678
9679 2004-02-23  Andrew Pinski  <pinskia@physics.uc.edu>
9680
9681         PR c/14156
9682         * c-typeck.c (c_expand_return): Change check for VAR_DECL
9683         to use DECL_P instead.
9684
9685         * config/rs6000/linux.h (OS_MISSING_POWERPC64): Define.
9686         * config/rs6000/linux64.h (OS_MISSING_POWERPC64): Define.
9687
9688 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
9689
9690         * Makefile.in (opts.o): Depend on target.h.
9691         * opts.c (decode_options): Use targetm.default_short_enums
9692         instead of DEFAULT_SHORT_ENUMS.
9693         * system.h (DEFAULT_SHORT_ENUMS): Poison.
9694         * target-def.h (TARGET_DEFAULT_SHORT_ENUMS): New.
9695         (TARGET_INITIALIZER): Add TARGET_DEFAULT_SHORT_ENUMS.
9696         * target.h (gcc_target): Add default_short_enums.
9697         * config/cris/cris.h: Remove a comment about
9698         DEFAULT_SHORT_ENUMS.
9699         * config/ip2k/ip2k.h: Likewise.
9700         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Change to
9701         TARGET_DEFAULT_SHORT_ENUMS.  Update the description.
9702
9703 2004-02-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
9704             Falk Hueffner  <falk@debian.org>
9705
9706         PR c/14188
9707         * builtins.c (expand_builtin_va_arg): Emit an informative message
9708         if a trap is generated.
9709         * c-typeck.c (build_function_call): Likewise.
9710
9711 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
9712
9713         * gcov-io.c (gcov_open) [GCOV_LOCKED]: Use open + fdopen instead of
9714         fopen.
9715         * libgcov.c: Include sys/stat.h.
9716         * config/rs6000/linux.h (TARGET_HAS_F_SETLKW): Define.
9717         * config/rs6000/linux64.h (TARGET_HAS_F_SETLKW): Define.
9718         * config/sparc/linux.h (TARGET_HAS_F_SETLKW): Define.
9719         * config/sparc/linux64.h (TARGET_HAS_F_SETLKW): Define.
9720
9721 2004-02-22  Kazu Hirata  <kazu@cs.umass.edu>
9722
9723         * reorg.c: Remove comments about dead ports.
9724
9725 2004-02-22  Christopher Faylor  <cgf@redhat.com>
9726
9727         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): *Really* specify
9728         extra host object file when targetting cygwin rather than generic
9729         object files.
9730
9731 2004-02-22  Josef Zlomek  <zlomekj@suse.cz>
9732
9733         Merge from tree-ssa:
9734         2003-11-20  Richard Henderson  <rth@redhat.com>
9735
9736                 * tree-inline.c (insert_decl_map): New.
9737                 (remap_decl, remap_type, remap_block, copy_body_r,
9738                 initialize_inlined_parameters, declare_return_variable,
9739                 remap_save_expr): Use it.
9740
9741         * function.c (copy_body_r): Add mapping from id->ret_label to
9742         id->ret_label.  Revert test for ret_label.
9743
9744 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
9745
9746         * genoutput.c (process_template): Strip trailing whitespace in @
9747         templates and issue a warning if there was any.
9748
9749 2004-02-21  Christopher Faylor  <cgf@redhat.com>
9750
9751         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): Specify extra host
9752         object file when targetting cygwin.
9753         * config/i386/t-cygwin (EXTRA_GCC_OBJS): Remove definition since it is
9754         overridden by top-level Makefile.
9755
9756 2004-02-21  Roger Sayle  <roger@eyesopen.com>
9757
9758         * config/i386/i386.c (standard_80387_constant_p): Also prefer
9759         the x87's load constant instructions when optimizing for size.
9760
9761 2004-02-21  Kazu Hirata  <kazu@cs.umass.edu>
9762
9763         * combine.c (SHIFT_COUNT_TRUNCATED): Remove.
9764         * defaults.h (SHIFT_COUNT_TRUNCATED): Provide the default.
9765         * expmed.c: Assume SHIFT_COUNT_TRUNCATED is always defined.
9766         * fold-const.c: Likewise.
9767         * simplify-rtx.c: Likewise.
9768
9769 2004-02-21  Alan Modra  <amodra@bigpond.net.au>
9770
9771         * combine.c (can_combine_p): Don't ignore SETs marked with
9772         REG_EH_REGION notes.
9773         (try_combine): When attemting to fix unrecognized insns, don't
9774         split a PARALLEL that contains the original i2.
9775
9776 2004-02-21  Ziemowit Laski  <zlaski@apple.com>
9777
9778         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Refer to
9779         SUBTARGET_OPTION_TRANSLATE_TABLE for architecture-specific options.
9780         * config/i386/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): Define it.
9781         * config/rs6000/altivec.h: #error out if '-maltivec' not specified.
9782         (vector, pixel, bool): #define to __vector, __pixel and __bool.
9783         (__un_args_eq, __bin_args_eq, __tern_args_eq): Move to C-specific
9784         portion of header.
9785         (__altivec_link_error_invalid_argument): Remove prototype; will use
9786         __builtin_altivec_compiletime_error("vec_*") instead.
9787         (vec_*): Fix/complete set of available operation overloads given the
9788         existence of distinct 'vector bool ...' and 'vector pixel' types; tighten
9789         cv-correctness of pointer arguments; in C, always check for correct
9790         argument types before macro expansion.
9791         * config/rs6000/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): New macro
9792         defining Darwin/PowerPC-specific '-f[no-]altivec' and
9793         '-W[no-]altivec-long-deprecated' switches.
9794         * config/rs6000/rs6000-c (rs6000_cpu_cpp_builtins): Pre-define
9795         '__vector', '__pixel' and '__bool' macros using
9796         '__attribute__((altivec(...)))' types.
9797         * config/rs6000/rs6000.c (bool_char_type_node, bool_short_type_node,
9798         bool_int_type_node, pixel_type_node, bool_V16QI_type_node,
9799         bool_V8HI_type_node, bool_V4SI_type_node, pixel_V8HI_type_node):
9800         New type nodes.
9801         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): New, for
9802         handling '-W[no-]altivec-long-deprecated'.
9803         (rs6000_override_options): Handle '-W[no-]altivec-long-deprecated'.
9804         (rs6000_expand_binop_builtin, rs6000_expand_ternop_builtin,
9805         altivec_expand_dst_builtin): Remove casts from integer literals.
9806         (altivec_expand_builtin): Likewise; handle expansion of new
9807         '__builtin_altivec_compiletime_error' function.
9808         (rs6000_init_builtins): Initialize 'vector bool ...' and 'vector pixel'
9809         types, and make them distinct from other vector types; register
9810         '__builtin_altivec_compiletime_error' function.
9811         (print_operand): For 'P', print a full target register name instead of
9812         merely its number.
9813         (rs6000_attribute_table): Add "altivec" attribute.
9814         (rs6000_handle_altivec_attribute): New function.
9815         * config/rs6000/rs6000.h (TARGET_OPTIONS): Describe
9816         '-m[no-]-warn-altivec-long' (which '-W[no-]altivec-long-deprecated'
9817         maps to).
9818         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): Forward
9819         declare.
9820         (ALTIVEC_BUILTIN_COMPILETIME_ERROR): New built-in enumeration.
9821
9822 2004-02-20  James E Wilson  <wilson@specifixinc.com>
9823
9824         * config/ia64/ia64.md (shift_mix4left+1): Delete reload_completed
9825         check.
9826         (shift_mix4left+2): Delete redundant pattern.
9827
9828 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
9829
9830         * alias.c (OUTGOING_REGNO): Don't define the default.
9831         * builtins.c (OUTGOING_REGNO): Likewise.
9832         (INCOMING_REGNO): Likewise.
9833         (apply_args_register_offset): Always use OUTGOING_REGNO.
9834         * combine.c (OUTGOING_REGNO): Likewise.
9835         * sibcall.c (OUTGOING_REGNO): Likewise.
9836         * defaults.h (INCOMING_REGNO): Provide the default.
9837         (OUTGOING_REGNO): Likewise.
9838
9839 2004-02-21  Jan Hubicka  <jh@suse.cz>
9840
9841         * params.def (max-peeled-insns, max-completely-peeled-insns,
9842         max-once-peeled-insns): Set to 400.
9843
9844 2004-02-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9845
9846         PR c++/12007
9847         * dbxout.c (dbxout_parms): Check that DECL_RTL and DECL_INCOMING_RTL
9848         are set for parameters before outputing debugging information.
9849
9850 2004-02-20  Falk Hueffner  <falk@debian.org>
9851
9852         PR target/14201
9853         * config/alpha/alpha.md (*fix_truncsfsi_ieee): Fix typoed operand
9854         numbers.
9855
9856 2004-02-20  Per Bothner  <per@bothner.com>
9857
9858         * input.h:  Don't #include line-map.h.  It may cause link problems
9859         with undefined linemap_line_start when line-map.h is included but
9860         line-map.o is not linked, as currently happens with gengtype on
9861         compilers that don't support inline.
9862         * toplev.c:  So we do have to explicitly #include line-map.h here.
9863
9864 2004-02-20  Richard Henderson  <rth@redhat.com>
9865
9866         * doc/invoke.texi: Add -Wvariadic-macros.
9867
9868 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
9869
9870         * haifa-sched.c (sched_emit_insn): Remove.
9871         * sched-int.h: Remove the corresponding prototype.
9872
9873 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
9874
9875         Revert:
9876         2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
9877         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
9878         * system.h (DEFAULT_SHORT_ENUMS): Poison.
9879         * config/cris/cris.h: Remove a comment about
9880         DEFAULT_SHORT_ENUMS.
9881         * config/ip2k/ip2k.h: Likewise.
9882         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
9883
9884 2004-02-20  Mohan Embar  <gnustuff@thisiscool.com>
9885             Tom Tromey  <tromey@redhat.com>
9886
9887         * doc/install.texi: Moved --disable-libgcj and
9888         --with-system-zlib documentation to new section for
9889         Java-specific options.
9890         Added explicit Cross-Compiler-Specific Options subheading.
9891         Added section for Java-specific options.
9892
9893 2004-02-20  Matt Kraai  <kraai@alumni.cmu.edu>
9894
9895         * doc/install.texi (Building the Ada compiler): Remove
9896         example.
9897
9898 2004-02-20  James E Wilson  <wilson@specifixinc.com>
9899
9900         * toplev.c (dump_file_index, dump_file): Put ce3 before rnreg.
9901
9902 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
9903
9904         * gcc.c (process_command): Allow translation of the copyright
9905         symbol but not the rest of the copyright message.
9906         * gcov.c (print_version): Likewise.  Allow translation of the
9907         message about warranty.
9908
9909 2004-02-20  Hans-Peter Nilsson  <hp@axis.com>
9910
9911         * config/cris/cris.md ("*andsi_movu"): Correct parentheses in
9912         predicate.
9913         ("*andsi_clear"): Tweak constraints to not match postincrement.
9914         Adjust the predicate to exclude a volatile memory reference.
9915         ("*andhi_clear"): Ditto.  Rename from "*andhi_clear_signed".
9916         ("*andhi_clear_unsigned"): Remove, non-matching pattern.
9917
9918 2004-02-19  Matt Kraai  <kraai@alumni.cmu.edu>
9919
9920         * move-if-change: Remove.
9921         * Makefile.in (s-mlib, c-parse.y, s-check, s-gencheck)
9922         (s-specs, s-options, s-config, s-conditions, s-flags, s-codes)
9923         (s-constants, s-emit, s-recog, s-opinit, s-extract, s-peep)
9924         (s-attr, s-attrtab, s-output, s-genrtl, s-modes, s-preds)
9925         (s-gtyp-gen, s-iov): Use the top level move-if-change.
9926         * objc/Make-lang.in (objc/objc-parse.y): Likewise.
9927
9928 2004-02-19  James E Wilson  <wilson@specifixinc.com>
9929
9930         * config/i386/i386.md (doloop_end_internal): Use nonimmediate_operand
9931         for operand2.  Add condition that requires register_operand operand2
9932         before reload.
9933
9934 2004-02-19  Richard Sandiford  <rsandifo@redhat.com>
9935             Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
9936
9937         * config/mips/mips.c (mips_address_insns): Treat BLKmode specially.
9938         * config/mips/mips.md: Expand comment above unaligned loads and stores.
9939
9940 2004-02-19  Richard Henderson  <rth@redhat.com>
9941
9942         * Makefile.in (STRICT2_WARN): Add -Wno-variadic-macros.
9943         * tree.c (build0, build1, build2, build3, build4): Split out from...
9944         (build): ... here.  Call them.
9945         * tree.h (build, _buildN1, _buildN2, _buildC1, _buildC2): New.
9946
9947         * convert.c (convert_to_integer): Remove extra build argument.
9948         * tree-inline.c (expand_call_inline): Likewise.
9949
9950 2004-02-19  Richard Henderson  <rth@redhat.com>
9951
9952         * c-opts.c (warn_variadic_macros): New.
9953         (c_common_handle_option): Set it.
9954         (sanitize_cpp_opts): Copy it to cpp_opts.
9955         * c.opt (Wvariadic-macros): New.
9956         * cpplib.h (struct cpp_options): Add warn_variadic_macros.
9957         * cppinit.c (cpp_create_reader): Initialize it.
9958         * cppmacro.c (parse_params): Check it.
9959
9960 2004-02-19  David Daney <ddaney@avtrex.com>
9961
9962         PR preprocessor/14198
9963         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Add
9964         builtin_assert ("machine=mips")
9965
9966 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
9967
9968         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
9969         * system.h (DEFAULT_SHORT_ENUMS): Poison.
9970         * config/cris/cris.h: Remove a comment about
9971         DEFAULT_SHORT_ENUMS.
9972         * config/ip2k/ip2k.h: Likewise.
9973         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
9974
9975 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
9976
9977         * config/ia64/ia64.c (ia64_function_arg): In big-endian mode,
9978         when passing single SFmode quantities in general registers,
9979         put them in the high half.
9980
9981 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
9982
9983         * doc/md.texi (Standard Names): Document additional dependency on
9984         fix pattern.
9985
9986         * optabs.c (ftruncify): Remove.
9987         (expand_fix): Manually inline ftruncify above.
9988         (can_fix_p): Add FIXME note.
9989
9990 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
9991
9992         * config/rs6000/spe.md (spe_fixunssfsi2): Rename to
9993         spe_fixuns_truncsfsi2.
9994
9995         * config/rs6000/rs6000.md (fixunssfsi2): Rename to
9996         fixuns_truncsfsi2.
9997
9998 2004-02-19  Steve Ellcey  <sje@cup.hp.com>
9999
10000         * config/ia64/ia64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
10001         * testsuite/gcc.dg/20040219-1.c: New test.
10002
10003 2004-02-19  Ulrich Weigand  <uweigand@de.ibm.com>
10004
10005         * config/s390/s390.md ("*subdf3_cc", "*subdf3_cconly", "*subsf3_cc",
10006         "*subsf3_cconly"): Subtraction is not commutative.
10007
10008 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
10009
10010         * sdbout.c (preinit_symbols, sdbout_initialized): New statics.
10011         (sdbout_symbol): If called before sdbout_init, queue DECL for
10012         later and return.
10013         (sdbout_init): Set sdbout_initialized true, process decls
10014         queued earlier by sdbout_symbol.
10015         (sdbout_finish): Use size_t for index variable.
10016
10017 2004-02-19  Jeff Law  <law@redhat.com>
10018
10019         * fold-const.c (invert_truthvalue): Do not call invert_tree_comparison
10020         for unordered comparison codes.
10021
10022 2004-02-19  Ian Lance Taylor  <ian@wasabisystems.com>
10023
10024         * reload1.c (reload): Correct comment.
10025         (scan_paradoxical_subregs): Remove #if 0 and old comment.
10026         * doc/extend.texi (Local Reg Vars): Remove obsolete comment that
10027         register variables are not used by reload.
10028
10029 2004-02-19  Hans-Peter Nilsson  <hp@axis.com>
10030
10031         PR target/14209
10032         * config/cris/cris.md ("*andsi_movu", "*andhi_movu"): Tweak
10033         constraints to not match postincrement.  Adjust the predicate to
10034         exclude a volatile memory reference.
10035
10036 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
10037
10038         * config/mcore/mcore.h (ASM_OUTPUT_EXTERNAL): Remove.
10039
10040 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
10041
10042         * hooks.c (hook_void_tree_int): Remove.
10043         (hook_void_constcharptr): Likewise.
10044         (hook_int_void_0): Likewise.
10045         * hooks.h: Remove the prototypes for the above three
10046         functions.
10047         * targhooks.c (hook_bool_machine_mode_true): Remove.
10048         * targhooks.h: Remove the prototype for
10049         hook_bool_machine_mode_true.
10050
10051 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
10052
10053         * emit-rtl.c (subreg_realpart_p): Remove.
10054         (reorder_insns_with_line_notes): Likewise.
10055         (end_full_sequence): Likewise.
10056         * rtl.h: Remove the prototype for the above functions.
10057
10058 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
10059
10060         * config/arc/arc.h, config/arm/arm.h, config/frv/frv.h,
10061         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
10062         config/iq2000/iq2000.h, config/m32r/m32r.h,
10063         config/pdp11/pdp11.h, config/sparc/sparc.h,
10064         config/xtensa/xtensa.h: Remove commented-out or useless
10065         definitions of CASE_VECTOR_PC_RELATIVE.
10066
10067 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
10068
10069         * loop.c (all_sets_invariant_p): Remove.
10070
10071 2004-02-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
10072
10073         PR target/12916
10074         * config/sparc/sparc.h (NPARM_REGS): Delete.
10075         (BASE_RETURN_VALUE_REG): Likewise.
10076         (BASE_OUTGOING_VALUE_REG): Likewise.
10077         (BASE_PASSING_ARG_REG): Likewise.
10078         (BASE_INCOMING_ARG_REG): Likewise.
10079         * config/sparc/sparc.c (sparc_strict_argument_naming): Test
10080         TARGET_ARCH64, not TARGET_V9.
10081         (function_arg_slotno): Dispatch based on the mode class.
10082         Handle vector modes like floating-point modes.
10083         (function_arg_record_value_1): Handle vector types like
10084         floating-point types.
10085         (function_arg_record_value_2): Likewise.
10086         Calculate regno after mode transformation.
10087         (function_arg): Handle vector modes like floating-point modes.
10088         (function_arg_partial_nregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX.
10089         If ARCH64, do not recheck alignment.
10090         (function_arg_pass_by_reference): Reorder the conditions.
10091         (sparc_return_in_memory): Move after function_arg_padding.
10092         Implement calling conventions for vector modes.
10093         (sparc_struct_value_rtx): Move after sparc_return_in_memory.
10094         (function_value): Move scope of 'regbase'.
10095         Implement calling conventions for vector modes.
10096         (sparc_builtin_saveregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX
10097         and BASE_INCOMING_ARG_REG by SPARC_INCOMING_INT_ARG_FIRST.
10098         (sparc_va_arg): Use function_arg_pass_by_reference to test whether
10099         the argument is passed by reference.
10100         (sparc_type_code): Handle vector types.
10101
10102 2004-02-19  Alan Modra  <amodra@bigpond.net.au>
10103
10104         * function.c (assign_parms): When building decl_rtl for
10105         SPLIT_COMPLEX_ARGS, ensure inner modes of concat match outer.
10106
10107 2004-02-19  Olivier Hainque  <hainque@act-europe.fr>
10108
10109         * expr.c (is_aligning_offset): Check if we are aligning the
10110         expressions's address over BIGGEST_ALIGNMENT in bytes, not
10111         in bits.
10112
10113 2003-02-18  Matt Austern  <austern@apple.com>
10114
10115         * gcc.c (LIBGCC_SPEC): If REAL_LIBGCC_SPEC is defined, and
10116         LIBGCC_SPEC isn't, set LIBGCC_SPEC to REAL_LIBGCC_SPEC.
10117         (init_gcc_spec): Don't define or call if REAL_LIBGCC_SPEC is
10118         defined.  Instead use REAL_LIBGCC_SPEC, unmodifed, as the libgcc
10119         spec string.
10120         * doc/tm.texi (REAL_LIBGCC_SPEC): Document.
10121
10122 2004-02-18  Zack Weinberg  <zack@codesourcery.com>
10123
10124         * dwarf2out.c (loclabel_num): Move outside #ifdef
10125         DWARF2_DEBUGGING_INFO and mark with GTY(()).
10126         * config/ia64/ia64.c (struct extern_func_list,extern_func_head):
10127         Mark with GTY(()).
10128         (ia64_hpux_add_extern_decl): Save the decl, not the name string.
10129         Allocate memory with ggc_alloc.  No need to copy anything.
10130         (ia64_hpux_file_end): Update to match.
10131
10132 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
10133
10134         * config/i386/i386.c (override_options): Don't imply 3DNow! for -m64
10135         by default.
10136
10137 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
10138
10139         * config/s390/s390.md ("divmodtidi3"): Use canonical RTL.
10140         ("divmodtisi3"): Likewise.
10141         ("udivmoddi4", "udivmodtidi3"): Likewise.
10142         ("divmodsi4", "divmoddisi3"): Likewise.
10143         ("udivmodsi4", "udivmoddisi3"): Likewise.
10144         ("udivsi3", "umodsi3"): Likewise.
10145
10146 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
10147
10148         * config/s390/s390.c (s390_mainpool_start): Delete the main pool
10149         placeholder insn when chunkifying the pool.
10150
10151 2004-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10152
10153         * pa.h (PIC_OFFSET_TABLE_REGNUM): Define to INVALID_REGNUM when not
10154         generating PIC code.
10155
10156 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
10157
10158         * config/h8300/h8300-protos.h: Add a prototype for
10159         h8300_expand_branch.
10160         * config/h8300/h8300.c (h8300_expand_branch): New.
10161         * config/h8300/h8300.md (ble, bleu, bge, bgeu, blt, bltu, bgt,
10162         bgtu, beq, bne): Call h8300_expand_branch().
10163
10164 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
10165
10166         * config/h8300/h8300-protos.h: Add prototypes for
10167         h8300_hard_regno_nregs and h8300_hard_regno_mode_ok.
10168         * config/h8300/h8300.c (h8300_hard_regno_nregs): New.
10169         (h8300_hard_regno_mode_ok): Likewise.
10170         * config/h8300/h8300.h (HARD_REGNO_NREGS): Call
10171         h8300_hard_regno_nregs().
10172         (HARD_REGNO_MODE_OK): Call h8300_hard_regno_mode_ok().
10173
10174 2004-02-18  Per Bothner  <per@bothner.com>
10175
10176         * cpphash.h (struct cpp_buffer):  Restore return_at_eof field.  This
10177         partly reverts my 2003-10-01 change, because we're back to logically
10178         including <command line> inside the main line.
10179         * cpplex.c (_cpp_get_fresh_line):  Check return_at_eof field.
10180         * cppmacro.c (cpp_scan_nooutput):  Set return_at_eof of current buffer.
10181         Fixes PR preprocessor/14103.
10182
10183         * cppfiles.c (_cpp_stack_include):  When appropriate decrement
10184         line_table's highest_location, fixing LAST_SOURCE_LINE_LOCATION.
10185         (cpp_push_include):  Don't need to increment pfile's line field.
10186         * line-map.h (LAST_SOURCE_LINE_LOCATION):  Only decrement by 1.
10187
10188         * c-ppoutput.c (print struct):  New first_time field.
10189         (init_pp_output):  Set print.first_time.
10190         (pp_file_change):  Use print.first_time, rather than MAIN_FILE_P,
10191         which is set also for (say) <command line>.  Clear print.first_time.
10192
10193         * cppfiles.c (struct _cpp_file):  Comment and type for pch field
10194         does not match the code, so fix both.
10195         (should_stack_file):  Inline include_pch_p function.
10196         (include_pch_p):  Remove pointless function.
10197
10198         * cpphash.h (struct cpp_buffer):  Remove unused search_cached field.
10199
10200 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
10201
10202         * config/h8300/h8300.md (four define_peephole2's): Use
10203         h8300_regs_ok_for_stm().
10204
10205 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
10206
10207         * config/h8300/h8300-protos.h: Update the prototype for
10208         expand_a_rotate().
10209         * config/h8300/h8300.c (expand_a_rotate): Remove the first
10210         argument.
10211         * config/h8300/h8300.md: Update all callers.
10212
10213 2004-02-18  Jan Hubicka  <jh@suse.cz>
10214
10215         * simplify-rtx.c (simplify_unary_operation): Deal with logicals on
10216         floats.
10217         (simplify_binary_operation): Deal with logicals on floats.
10218
10219         * i386.md (SSE fabs splitters): Emit new patterns.
10220         (SSE cmov splitters): Likewise.
10221         (sse_andv4sf3, sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3
10222         (sse_andv2df3, sse_nandv2df3, sse_iorv2df3, sse_xorv2df3): Do not use
10223         subregs.
10224         (sse_andsf3, sse_nandsf3, sse_xorsf3): Kill.
10225         (sse_anddf3, sse_nanddf3, sse_xordf3): Kill.
10226
10227 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
10228
10229         * config/h8300/h8300.c (expand_a_rotate): Don't generate insns
10230         by hand.
10231         (output_a_rotate): Tweak a comment.
10232         * config/h8300/h8300.md (*rotlqi3_1): Change to rotlqi3_1.
10233         (*rotlhi3_1): Change to rotlhi3_1.
10234         (*rotlsi3_1): Change to rotlsi3_1.
10235
10236 2004-02-18  Richard Earnshaw  <rearnsha@arm.com>
10237
10238         PR target/13866
10239         * arm.c (load_multiple_operation): Don't insist that the source reg
10240         of a post-increment component is the same as the destination.
10241         (store_multiple_operation): Likewise.
10242
10243 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
10244
10245         * config/h8300/h8300.md: Move movsf patterns into one section
10246         of the file.
10247
10248 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
10249
10250         * cfgloop.h, cfgloopanal.c, cpplex.c, except.h, loop-init.c,
10251         loop-unroll.c, scan-decls.c, scan.h, stor-layout.c,
10252         xcoffout.c, xcoffout.h, config/arm/mmintrin.h,
10253         config/mips/linux64.h, config/pa/pa-64.h,
10254         config/rs6000/aix51.h, config/rs6000/aix52.h,
10255         config/rs6000/spe.md, config/sparc/linux.h,
10256         config/sparc/linux64.h: Update copyright.
10257
10258 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
10259
10260         * config/h8300/h8300.md: Move push patterns into one
10261         section of the file.
10262
10263 2004-02-18  Mark Mitchell <mark@codesourcery.com>
10264
10265         PR c++/11326
10266         * config/ia64/ia64.c (ia64_struct_value_rtx): Cope with NULL
10267         fntype.
10268
10269 2004-02-18  Paul Brook  <paul@codesourcery.com>
10270
10271         * rtlanal.c (rtx_varies_p): Return 0 for NULL_RTX
10272
10273 2004-02-18  Paul Brook  <paul@codesourcery.com>
10274
10275         PR debug/12934
10276         * dwarf2out.c (loc_descriptor_from_tree): Handle
10277         EXPR_WITH_FILE_LOCATION.
10278
10279 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
10280
10281         * config/i386/i386.md (zero_extendqidi2, zero_extendqidi2,
10282         testdi_1_rex64, anddi_2, xordi_1_rex64, xordi_2_rex64): Remove
10283         trailing whitespace from instructions.
10284
10285 2004-02-17  Geoffrey Keating  <geoffk@apple.com>
10286
10287         * configure.ac: When generating auto-build.h, pass
10288         --enable-languages to the sub-configure.
10289         Put quotes around ${program_transform_name} when generating
10290         name of as, ld, nm, objdump.
10291         * configure: Regenerate.
10292
10293 2004-02-17  Matt Kraai  <kraai@alumni.cmu.edu>
10294
10295         * Makefile.in (s-check, s-config, s-conditions, s-flags)
10296         (s-codes, s-constants, s-emit, s-recog, s-opinit, s-extract)
10297         (s-peep, s-attr, s-attrtab, s-output, s-genrtl, s-modes)
10298         (s-preds, s-iov): Do not depend on move-if-change.
10299
10300 2004-02-17  James E Wilson  <wilson@specifixinc.com>
10301
10302         * caller-save.c (insert_restore): Pass mem through copy_rtx.
10303         (insert_save): Likewise.
10304
10305 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10306
10307         * config/h8300/h8300.c (h8300_emit_stack_adjustment): Fix a
10308         warning.
10309
10310 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10311
10312         * config/h8300/h8300.md (*one_complsi2_h8300): Change to
10313         *one_cmplsi2_h8300.
10314         (*one_complsi2_h8300hs): Change to *one_cmplsi2_h8300hs.
10315
10316 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10317
10318         * config/h8300/h8300-protos.h: Update the prototype of
10319         fix_bit_operand().
10320         * config/h8300/h8300.c (fix_bit_operand): Remove the second
10321         argument "what".
10322         * config/h8300/h8300.md: Update all callers.
10323
10324 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10325
10326         * config/h8300/h8300.c (fix_bit_operand): Change the name of
10327         the last argument to "code" from "type".
10328
10329 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10330
10331         * config/h8300/h8300.c: Remove an extern declaration of
10332         rtx_equal_function_value_matters.
10333
10334 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10335
10336         * config/h8300/h8300.c (fix_bit_operand): Don't generate insns
10337         by hand.
10338         * config/h8300/h8300.md (*andqi3_1): Change to andqi3_1.
10339         (*iorqi3_1): Change to iorqi3_1.
10340         (*xorqi3_1): Change to xorqi3_1.
10341
10342 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10343
10344         * c-common.c, cfghooks.c, rtlanal.c, varasm.c: Fix comment
10345         typos.
10346
10347 2004-02-17  Jan Hubicka  <jh@suse.cz>
10348
10349         * i386.c (x86_prologue_using_move, x86_epilogue_using_move): Disable for P4.
10350
10351 2004-02-18  Alan Modra  <amodra@bigpond.net.au>
10352
10353         PR optimization/14119
10354         * combine.c (try_combine): When attemting to fix unrecognized insns,
10355         don't delete SETs marked with REG_EH_REGION notes.
10356
10357 2004-02-17  Ulrich Weigand  <uweigand@de.ibm.com>
10358
10359         * combine.c (simplify_if_then_else): Do not replace
10360         (if_then_else (ne reg 0) (0) (const_int)) by (reg) if the
10361         modes differ.
10362
10363 2004-02017  Steven Bosscher  <stevenb@suse.de>
10364
10365         * (c-decl.c, c-semantics.c, calls.c, cgraph.c, cgraphunit.c,
10366         function.c, integrate.c, print-tree.c, toplev.c, tree-optimize.c,
10367         tree.h): Replace DECL_SAVED_INSNS with DECL_STRUCT_FUNCTION.
10368         * ada/utils.c: Likewise.
10369         * cp/decl.c: Likewise.
10370         * f/com.c: Likewise.
10371         * java/class.c: Likewise.
10372
10373 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10374
10375         * config/h8300/h8300.md: Fix comment typos.
10376
10377 2004-02-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10378
10379         * config/mips/t-iris6gld: Renamed to ...
10380         * config/mips/t-irix-gld: ... this.
10381         * config.gcc (mips-sgi-irix6*): Reflect this
10382         (mips-sgi-irix5*): Use it with GNU ld.
10383
10384         * config/mips/irix6-crti.asm, config/mips/irix6-crtn.asm: Renamed
10385         to ...
10386         * config/mips/irix-crti.asm, config/mips/irix-crtn.asm: ... this.
10387         * config/mips/t-irix-gld: Reflect this.
10388         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
10389
10390         * config/mips/iris5gld.h: New file.
10391         * config.gcc (mips-sgi-irix5*): Use it with GNU ld.
10392         Only use collect2 without gas.
10393
10394         * config/mips/iris6.h (IRIX6_STARTFILE_SPEC, IRIX6_ENDFILE_SPEC):
10395         Renamed to IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
10396         (STARTFILE_SPEC, ENDFILE_SPEC, SUBTARGET_EXTRA_SPECS): Reflect this.
10397         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
10398
10399         * config/mips/iris6.h (SUBTARGET_EXTRA_SPECS): Moved ...
10400         * config/mips/iris5.h: ... here.
10401
10402         * config/mips/iris5.h (STARTFILE_SPEC, ENDFILE_SPEC): Renamed to
10403         IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
10404         (STARTFILE_SPEC, ENDFILE_SPEC): Define.
10405
10406         * config/mips/iris5gas.h (STARTFILE_SPEC, ENDFILE_SPEC): Simplify
10407         using irix_startfile_spec, irix_endfile_spec.
10408
10409 2004-02-16  Gunther Nikl  <gni@gecko.de>
10410
10411         * config/m68k/m68k.c: Remove obsolete support for HPUX_ASM.
10412
10413 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10414
10415         * config/h8300/h8300.c (h8300_expand_prologue): Don't generate
10416         insns by hand.
10417
10418 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10419
10420         * cfghooks.c (split_edge): Speed up updating of dominators.
10421
10422 2004-02-17  Mark Mitchell  <mark@codesourcery.com>
10423
10424         PR c++/11326
10425         * c-common.c (flag_abi_version): Remove.
10426         * c-common.h (flag_abi_version): Likewise.
10427         * c-opts.c (c_common_handle_option): Remove OPT_fabi_version case.
10428         * c.opt (fabi-version): Remove.
10429         * calls.c (expand_call): Always pass a function type to
10430         struct_value_rtx.  Use convert_memory_address.
10431         * common.opt (fabi-version): Add it.
10432         * flags.h (flag_abi_version): Likewise.
10433         (abi_version_at_least): New macro.
10434         * opts.c (common_handle_option): Add OPT_fabi_version.
10435         * toplev.c (flag_abi_version): Define it.
10436         * config/ia64/ia64.c (ia64_struct_retval_addr_is_first_parm_p):
10437         New function.
10438         (ia64_output_mi_thunk): Use it.
10439         (ia64_struct_value_rtx): Likewise.
10440
10441 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10442
10443         * config/h8300/h8300.c (h8300_emit_stack_adjustment):
10444         Don't generate insns by hand.
10445
10446 2004-02-17  Andrew Pinski  <pinskia@physics.uc.edu>
10447
10448         PR c++/14178
10449         * doc/invoke.texi (fabi-version): The default is 2 now.
10450
10451 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10452
10453         * loop-iv.c: New file.
10454         * Makefile.in (loop-iv.o): New.
10455         * basic_block.h (FOR_BB_INSNS, FOR_BB_INSNS_REVERSE): New macros.
10456         * cfgloop.c (fill_sons_in_loop, get_loop_body_in_dom_order,
10457         num_loop_branches): New functions.
10458         * cfgloop.h (get_loop_body_in_dom_order, num_loop_branches,
10459         iv_analysis_loop_init, iv_get_reaching_def, iv_analyse, get_iv_value,
10460         find_simple_exit, iv_number_of_iterations, iv_analysis_done,
10461         get_simple_loop_desc, free_simple_loop_desc): Declare.
10462         (simple_loop_desc): New inline function.
10463         (struct rtx_iv, struct niter_desc): New.
10464         * cfgloopmanip.c (loopify): Specify semantics more precisely.
10465         * expr.c (force_operand): Handle subregs of expressions created by
10466         loop unroller.
10467         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Move
10468         parts of the initialization to toplev.c
10469         * loop-unroll.c (loop_exit_at_end_p): New.
10470         (unroll_and_peel_loops): Call iv_analysis_done.
10471         (decide_peel_once_rolling, decide_peel_completely,
10472         decide_unroll_stupid, decide_unroll_constant_iterations,
10473         decide_unroll_runtime_iterations, decide_peel_simple,
10474         peel_loop_simple, unroll_loop_stupid, unroll_loop_constant_iterations,
10475         unroll_loop_runtime_iterations): Use new simple loop analysis.
10476         * loop-unswitch.c (compare_and_jump_seq): New.
10477         (may_unswitch_on_p): Renamed to ...
10478         (may_unswitch_on): Use new iv analysis.
10479         (reversed_condition): Export.
10480         (unswitch_single_loop, unswitch_loop): Use new iv analysis.
10481         * predict.c (estimate_probability): Use new simple loop analysis.
10482         * rtl.h (get_mode_bounds, reversed_condition,compare_and_jump_seq,
10483         canon_condition, simplify_using_condition): Declare.
10484         * stor-layout.c (get_mode_bounds): New.
10485         * toplev.c (rest_of_handle_loop2): Some parts of
10486         initialization/finalization moved here from loop-init.c.
10487
10488 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10489
10490         * config/h8300/h8300.h (FIXED_REGISTERS): Add the soft frame
10491         pointer.
10492         (CALL_USED_REGISTERS): Likewise.
10493         (REG_ALLOC_ORDER): Likewise.
10494         (REG_CLASS) <GENERAL_REGS>: Likewise.
10495
10496 2004-02-16  Geoffrey Keating  <geoffk@apple.com>
10497
10498         * doc/md.texi (Insn Canonicalizations): Document left-chaining
10499         in associative operators.
10500         * rtlanal.c (commutative_operand_precedence): Create some new
10501         variables.  Prefer a commutative operand on the left, then
10502         binary expressions, then NEG and NOT.
10503
10504 2004-02-16  Matthias Klose  <doko@debian.org>
10505
10506         * config/t-slibgcc-elf-ver: Define SHLIB_NAME and SHLIB_SONAME
10507         in terms of SHLIB_SOVERSION.
10508         * config/m68k/t-slibgcc-elf-ver: New file.
10509         * config/pa/t-slibgcc-elf-ver: New file.
10510         * config.gcc (m68k-linux, parisc-linux): Use them when not
10511         sjlj exceptions are not configured.
10512
10513 2004-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
10514
10515         * config/sparc/sparc.c (get_pc_symbol_name): Mark with GTY(()).
10516
10517 2004-02-16  Zack Weinberg  <zack@codesourcery.com>
10518
10519         * sdbout.c (sdb_debug_hooks): Correct the type_decl entry.
10520
10521 2004-02-16  Joseph S. Myers  <jsm@polyomino.org.uk>
10522
10523         * doc/sourcebuild.texi: Mention backends.html.
10524
10525 2004-02-16  Kazu Hirata  <kazu@cs.umass.edu>
10526
10527         * c-decl.c, c-ppoutput.c, cpphash.h, cpplib.h, dbxout.c,
10528         line-map.c, line-map.h, var-tracking.c: Fix comment
10529         formatting.
10530
10531 2004-02-16  Richard Henderson  <rth@redhat.com>
10532
10533         * cse.c (cse_insn): Don't lose REG_NON_LOCAL_GOTO note.
10534
10535         * fold-const.c (operand_equal_p): Fix VECTOR_CST comparison.
10536
10537 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
10538
10539         * config/h8300/h8300.md: Remove unnecessary parallels from
10540         all define_insn and define_split patterns.
10541
10542 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
10543
10544         * config/h8300/h8300.md: Remove explicit (set_attr "cc"
10545         "clobber").
10546
10547 2004-02-15  Bernardo Innocenti  <bernie@develer.com>
10548
10549         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Restore support for
10550         '%#'.
10551
10552 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
10553
10554         * config/ia64/ia64.c, config/mips/mips.c,
10555         config/mmix/mmix-modes.def: Fix comment typos.
10556
10557 2004-02-15  Roger Sayle  <roger@eyesopen.com>
10558
10559         * c-common.h (GET_DIRECTIVE_LINE): Remove unused macro.
10560         (get_directive_line): Remove unused function prototype.
10561
10562 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
10563
10564         * tree-inline.c (copy_body_r): Do not replace ret_label.
10565
10566 2004-02-14  Jan Hubicka  <jh@suse.cz>
10567
10568         * i386.c (x86_four_jump_limit): New variable.
10569         (k8_avoid_jump_misspredicts): Rename to ...
10570         (ix86_avoid_jump_misspredicts): .. this one.
10571         (ix86_pad_returns): Break out from ...
10572         (ix86_reorg): ... this one; do ix86_avoid_jump_misspredicts when asked
10573         to.
10574         * i386.h (TARGET_FOUR_JUMP_LIMIT): New macro.
10575
10576 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
10577
10578         * emit-rtl.c (set_decl_incoming_rtl): Check whether the 0th element of
10579         PARALLEL is NULL.
10580
10581 2004-02-14  Per Bothner  <per@bothner.com>
10582
10583         * fix-header.c (line_table):  Move local variable in main to global.
10584         * scan.h (line_table):  Use it.
10585         * scan-decls.c (scan_decls):  Need to call linemap_lookup on token's
10586         line (recently renamed to src_loc) before calling recognized_function.
10587
10588 2004-02-14  Matt Kraai  <kraai@alumni.cmu.edu>
10589
10590         * Makefile.in: Fix comment typos.
10591
10592 2004-02-14  Olivier Hainque  <hainque@act-europe.fr>
10593
10594         * loop.c (check_dbra_loop): Use gen_int_mode instead of GEN_INT
10595         for start_value when it is directly moved into reg, and factorize
10596         the retrieval of GET_MODE (reg).
10597
10598 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
10599
10600         * config/mips/mips-protos.h (mips_load_got_page): Delete.
10601         (mips_load_got_global): Delete.
10602         (mips_gotoff_page): Declare.
10603         * config/mips/mips.md (UNSPEC_LOAD_GOT): New constant.
10604         (*xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i): Build an
10605         UNSPEC_LOAD_GOT pattern rather than a MEM.
10606         (*load_got[sd]i): New patterns.
10607         * config/mips/mips.c (mips_got_alias_set, mips_load_got): Delete.
10608         (mips_load_got_page, mips_load_got_global): Delete.
10609         (mips_gotoff_page): New function.
10610         (override_options): Don't initialize mips_got_alias_set.
10611
10612 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
10613
10614         * config/mips/mips.h (MASK_DEBUG_[ABEFI], TARGET_DEBUG_[ABEFI]_MODE)
10615         (TARGET_MIPS4100, TARGET_MIPS4300, TARGET_MIPS4KC, TARGET_MIPS5KC)
10616         (TARGET_SB1, TUNE_SB1, TUNE_SR71K, BIGGEST_MAX_ARGS_IN_REGISTERS)
10617         (GO_PRINTF, GO_PRINTF2, GO_DEBUG_RTX, DFMODE_NAN, SFMODE_NAN): Delete.
10618         (TARGET_SWITCHES): Remove MASK_DEBUG_[ABEFI].
10619         * config/mips/mips.c: Fix some overly-long lines.
10620         (SINGLE_WORD_MODE_P, PIC_OFFSET_TABLE_MASK): Delete.
10621         (init_cumulative_args): Remove TARGET_DEBUG_E_MODE handling.
10622
10623 2004-02-13  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10624
10625         * configure.ac: Search for as, ld below libexec/gcc.
10626         * configure: Regenerate.
10627
10628 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
10629
10630         * config/arm/mmintrin.h (_mm_setwcx): Reverse arguments in call to
10631         __builtin_arm_setwcx ().
10632         * config/arm/arm.c (arm_expand_builtin): Generate operands
10633         correctly and reverse their order in call to gen_iwmmxt_tmcr ().
10634
10635 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
10636
10637         * config/arm/arm.c (bdesc_2arg): Correct builtin names "wmulsh"
10638         and "wmuluh" to "wmulsm" and "wmulum", respectively.
10639         * config/arm/arm.h (enum arm_builtins): Rename enumerators to
10640         ARM_BUILTIN_WMULSM and ARM_BUILTIN_WMULUM.
10641         * config/arm/mmintrin.h (_mm_mulhi_pi16): Update intrinsic call.
10642         (_mm_mulhi_pu16): Likewise.
10643
10644 2004-02-13  Zack Weinberg  <zack@codesourcery.com>
10645
10646         * xcoffout.c (xcoff_assign_fundamental_type_number): Check
10647         DECL_NAME != 0 before dereferencing.
10648
10649 2004-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
10650
10651         * config/s390/s390-protos.h (s390_output_symbolic_const): Remove.
10652         (s390_output_addr_const_extra): Declare.
10653         (s390_output_pool_entry): Remove FILE * argument.
10654         * config/s390/s390.c (s390_output_symbolic_const): Remove.
10655         (s390_output_addr_const_extra): New function.
10656         (print_operand_address): Call output_addr_const instead of
10657         s390_output_symbolic_const.
10658         (print_operand): Likewise.
10659         (s390_output_pool_entry): Use assemble_integer for symbolic constants.
10660         Remove FILE * argument.
10661         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Define.
10662         * config/s390/s390.md ("*pool_entry"): Adapt s390_output_pool_entry
10663         call.
10664
10665 2004-02-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10666
10667         * cfgloopanal.c (mark_irreducible_loops): Rewriten.
10668         (struct edge, struct vertex, struct graph): New.
10669         (dump_graph, new_graph, add_edge, dfs, check_irred, for_each_edge,
10670         free_graph): New functions.
10671
10672 2004-02-12  Chris Demetriou  <cgd@broadcom.com>
10673
10674         * config/mips/mips.md (casesi_internal, casesi_internal_di):
10675         Use ".set macro" to avoid warnings about multi-instruction
10676         macros, since they're intentional.
10677
10678 2004-02-12  Geoffrey Keating  <geoffk@apple.com>
10679
10680         * config/darwin.h: Add include guards.  Remove old, now incorrect,
10681         comment about STANDARD_EXEC_PREFIX.
10682
10683         * Makefile.in (install-man): Use $(CPP_INSTALL_NAME) and
10684         $(GCOV_INSTALL_NAME) to install manpages.  Remove generic rule
10685         for installing .1 manpages.  Add rules for installing cpp
10686         and gcov manpages under their installed names.
10687
10688 2004-02-12  Alexandre Oliva  <aoliva@redhat.com>
10689
10690         * configure.ac (gcc_cv_ld): Don't set to LD if target is not
10691         host, but try LD_FOR_TARGET first.
10692         * configure: Rebuilt.
10693
10694 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
10695
10696         * dbxout.c: Move declaration of dbxout_type_decl outside
10697         #ifdef DBX_DEBUGGING_INFO.
10698         * c-parse.in: Don't give the asmdef production a type.
10699
10700 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
10701
10702         * debug.h (struct gcc_debug_hooks): Add type_decl field.
10703         (debug_nothing_tree_int): Prototype.
10704         (dwarf_debug_hooks): Delete, unused.
10705         * debug.c (do_nothing_debug_hooks): Update.
10706         (debug_nothing_tree_int): New function.
10707         * langhooks.h (struct lang_hooks_for_decls):
10708         Remove builtin_type_decls field.
10709         * langhooks-def.h (LANG_HOOKS_BUILTIN_TYPE_DECLS): Delete.
10710         (LANG_HOOKS_DECLS): Update.
10711         * toplev.c (rest_of_decl_compilation, rest_of_type_compilation):
10712         Use debug_hooks->type_decl.
10713         * dbxout.c (preinit_symbols): New static.
10714         (dbx_debug_hooks, xcoff_debug_hooks): Update.
10715         (dbxout_init): Don't call DBX_OUTPUT_STANDARD_TYPES or
10716         lang_hooks.decls.builtin_type_decls.  Do scan preinit_symbols
10717         for symbols to output.
10718         (dbxout_type_decl): New function.
10719         (dbxout_symbol): If called before dbxout_init has run, queue
10720         the symbol for later.  Apply DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER
10721         to TYPE_DECLs before emitting them.
10722         * xcoffout.c (assign_type_number): Delete.
10723         (xcoff_type_numbers): New static table.
10724         (xcoff_assign_fundamental_type_number): New function.
10725         * xcoffout.h: Define DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER, not
10726         DBX_OUTPUT_STANDARD_TYPES.  Remove unnecessary #ifdefs.
10727         * sdbout.c: Include varray.h.
10728         (deferred_global_decls): New static.
10729         (sdb_debug_hooks): Update.
10730         (sdbout_global_decl): If we can't emit something right now,
10731         remember it in deferred_global_decls.
10732         (sdbout_finish): Just scan deferred_global_decls; don't call getdecls.
10733         (sdbout_init): Initialize deferred_global_decls.
10734         * Makefile.in: Update dependencies of sdbout.o.
10735         * dwarf2out.c (dwarf2out_type_decl): New function.
10736         (dwarf2_debug_hooks): Update.
10737         * vmsdbgout.c (vmsdbg_debug_hooks): Update.
10738         * c-decl.c (getdecls): Just return 0.
10739         (check_for_loop_decls): Don't use getdecls.
10740         (record_builtin_type): Call debug_hooks->type_decl on the TYPE_DECL.
10741         * c-objc-common.c (c_objc_common_finish_file): Don't use getdecls.
10742
10743 2004-02-12  Ulrich Weigand  <uweigand@de.ibm.com>
10744
10745         * config/s390/s390.c (s390_sched_reorder2): Remove.
10746         (TARGET_SCHED_REORDER2): Do not redefine.
10747
10748 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
10749
10750         * c-parse.in (maybe_type_qual): Delete.
10751         (maybe_volatile, simple_asm_expr, asmdef, asm_stmt)
10752         (asm_argument): New grammar rules.
10753         (extdef_1): Use asmdef.
10754         (maybeasm): Move down with other asm rules; use simple_asm_expr.
10755         (xexpr): Move up with other expression rules.
10756         (stmt): Use asm_stmt.
10757
10758         * c-typeck.c (build_asm_expr): New function - body mostly
10759         pulled from build_asm_stmt.
10760         (build_asm_stmt): Just handle tacking on the volatile qualifier.
10761         * c-tree.h (build_asm_expr, build_asm_stmt): Update prototypes.
10762
10763 2004-02-12  Richard Sandiford  <rsandifo@redhat.com>
10764
10765         PR bootstrap/13617
10766         * config/mips/mips-protos.h (mips_output_aligned_decl_common): Declare.
10767         (mips_declare_object): Make variadic.
10768         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Use
10769         mips_output_aligned_decl_common.
10770         * config/mips/mips.c (mips_output_aligned_decl_common): New function.
10771         (mips_declare_object): Make variadic.
10772
10773 2004-02-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10774
10775         * function.c (update_epilogue_consts): Teach about binary operations.
10776
10777         * emit-rtl.c (set_mem_attributes_minus_bitpos): Don't kill
10778         previous MEM_VOLATILE in REF.
10779         * function.c (fixup_var_refs): Save volatile_ok and set to 1.
10780         * expr.c (emit_block_move_via_movstr): Save and restore volatile_ok.
10781
10782 2004-02-12  Gunther Nikl  <gni@gecko.de>
10783
10784         * config.gcc: Restore support for m68k-openbsd.
10785
10786 2004-02-12  Jan Hubicka  <jh@suse.cz>
10787
10788         * tree-optimize.c (tree_rest_of_compilation): Do not release
10789         DECL_ARGUMENTS.
10790
10791 2004-02-11  Matt Kraai  <kraai@alumni.cmu.edu>
10792
10793         * doc/install.texi: Fix the spelling of "explicitly".
10794
10795 2004-02-11  Eric Christopher  <echristo@redhat.com>
10796
10797         * cppcharset.c (_cpp_interpret_string_notranslate): Rename and
10798         duplicate argument structure of cpp_interpret_string.
10799         * cpphash.h: Move prototype...
10800         * cpplib.h: Here.
10801         * cpplib.c: Fix calls to match new function signature.
10802
10803 2004-02-11  Joseph S. Myers  <jsm@polyomino.org.uk>
10804
10805         PR c/456
10806         * cppexp.c (num_binary_op): Don't allow comma operators in #if
10807         constant expressions at all outside C99 mode if pedantic.
10808
10809 2004-02-11  Uros Bizjak  <uros@kss-loka.si>
10810
10811         * optabs.h (enum optab_index): Add new OTI_log10 and OTI_log2.
10812         (log10_optab, log2_optab): Define corresponding macros.
10813         * optabs.c (init_optabs): Initialize log10_optab and log2_optab.
10814         * genopinit.c (optabs): Implement log10_optab and log2_optab
10815         using log10?f2 and log2?f2 patterns.
10816         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG10{,F,L}
10817         using log10_optab, and BUILT_IN_LOG2{,F,L} using log2_optab.
10818         (expand_builtin): Expand BUILT_IN_LOG10{,F,L} and BUILT_IN_LOG2{,F,L}
10819         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
10820
10821         * config/i386/i386.md (log10sf2, log10df2, log10xf2, log2sf2,
10822         log2df2, log2xf2): New patterns to implement log10, log10f, log10l,
10823         log2, log2f and log2l built-ins as inline x87 intrinsics.
10824
10825 2004-02-11  Richard Henderson  <rth@redhat.com>
10826
10827         PR target/1532
10828         * flow.c (insn_dead_p): A clobber of a dead hard register is a
10829         dead insn after reload.
10830
10831 2004-02-11  Ulrich Weigand  <uweigand@de.ibm.com>
10832
10833         * tree.h (frame_base_decl): Add GTY marker.
10834         * var-tracking.c (frame_base_decl): Likewise.
10835
10836 2004-02-11  Daniel Berlin  <dberlin@dberlin.org>
10837
10838         * dwarf2out.c (output_loc_list): Remove no longer necessary, and now
10839         incorrect, hunk.
10840         (add_location_or_const_value_attribute): Use text_section_label,
10841         not TEXT_SECTION_NAME.
10842
10843 2004-02-11  Per Bothner  <per@bothner.com>
10844
10845         Represent column numbers using line-map's source_location.
10846         The "next available source_location" is now managed internally by
10847         line-maps.c rather than by clients.
10848         * line-map.h (struct line_map):  New field column_bits.
10849         <from_line>:  Rename field to start_location.
10850         (struct line_maps):  New fields highest_location and max_column_hint.
10851         (linemap_check_files_exited):  New declaration.
10852         (linemap_line_start):  New declaration.
10853         (linemap_add):  Remove from_line parameter; use highest_location field.
10854         (SOURCE_LINE, LAST_SOURCE_LINE):  Modify to use column_bits.
10855         (SOURCE_COLUMN, LAST_SOURCE_LINE_LOCATION):  New macros.
10856         (CURRENT_LINE_MAP):  Remove macro.
10857         (linemap_position_for_column):  New inline function.
10858         * line-map.c (linemap_init):  Clear new fields.
10859         (linemap_check_files_exited):  New function, extracted from ...
10860         (linemap_free):  Use linemap_check_files_exited.
10861         (linemap_add):  Remove from_line parameter.  Various updates.
10862         (linemap_line_start):  New function.
10863         (linemap_lookeup):  Update for new field names.
10864         * cpphash.h (struct cpp_reader) <map>:  Field removed.  Because
10865         linemap_position_for_column may unpredictably change the current map,
10866         it is cleaner and simpler for us to not cache it in cpp_reader.
10867         (struct cpp_buffer):  New sysp field.
10868         Changed warned_cplusplus_comments and from_stage3 to bitfields.
10869         * cppinit.c (cpp_read_min_file):  pfile->map no longer exists.
10870         * cpplib.c (do_line, do_linemarker, _cpp_do_file_change):  Get
10871         current map using linemap_lookup.
10872         (do_linemarker):  Also set buffer's sysp field.
10873         (destringize_and_run):  No longer need to decrement current line.
10874         * cppfiles.c (_cpp_stack_file):  Set sysp from and in buffer.
10875         (search_path_head, open_file_failed):  Use buffer's sysp.
10876         (cpp_make_system_header):  Get current map using linemap_lookup.
10877         Also set buffer's sysp flag.
10878         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use linemap_lookup.
10879         * cpphash.h (CPP_INCREMENT_LINE):  New macro.
10880         (struct cpp_buffer):  Moved fields saved_cur, saved_rlimit to ...
10881         (struct cpp_reader):  ... and adding saved_line_base field.
10882         * cpptrad.c (_cpp_overlay_buffer, _cpp_remove_overlay):
10883         Update accordingly.  Don't adjust line.
10884         (_cpp_scan_out_logical_line):  Use CPP_INCREMENT_LINE.
10885         * cpphash.c (CPP_IN_SYSTEM_HEADER):  Replaced macro by ...
10886         (cpp_in_system_header):  ... new inline function, using buffer's sysp.
10887         * cpperror.c (_cpp_begin_message):  Update to use cpp_in_system_header.
10888         * cpplex.c (_cpp_lex_direct):  Likewise.
10889         * cppmacro.c (_cpp_builtin_macro_text):  Likewise.
10890         * cppmacro.c (_cpp_create_definition):  Use buffer's sysp field.
10891         * cpplib.h (struct cpp_token):  Rename line field to src_loc.
10892         Remove col field as it is now subsumed by src_loc.
10893         * cpperror.c:  Update various field, parameter, and macro names.
10894         (print_location):  If col==0, try SOURCE_COLUMN of line.
10895         (cpp_error):  Use cur_token's src_loc field, rather than line+col.
10896         * cpplib.c (do_diagnostic):  Token's src_loc fields replaces line+col.
10897         * cpplex.c (_cpp_process_line_notes, _cpp_lex_direct,
10898         _cpp_skip_block_comment):  Use CPP_INCREMENT_LINE.
10899         (_cpp_temp_token):  Replace cpp_token's line+col fields by src_loc.
10900         (_cpp_get_fresh_line):  Don't need to adjust line for missing newline.
10901         (_cpp_lex_direct):  Use linemap_position_for_column.
10902         * c-ppoutput.c (maybe_print_line, print_line):  Don't take map
10903         parameter.  Instead get it from the line_table global.  Adjust callers.
10904         (print):  Remove map field.  Replace line field to src_line.
10905         (init_pp_output, account_for_newlines, maybe_print_line):  Adjust.
10906         (cb_line_change):  Use SOURCE_COLUMN.  Minor optimizations.
10907         (pp_file_change):  Use MAIN_FILE_P since we cannot checked print.map.
10908         Use LAST_SOURCE_LINE_LOCATION to "catch up" after #include.
10909         * cpptrad.c (copy_comment):  Rename variable.
10910         * c-lex.c (map):  Remove static variable, for same reason we removed
10911         cpp_reader's map field.
10912         (cb_line_change, cb_def_pragma, cb_define, cb_undef):  Hence we need
10913         to call linemap_lookup.
10914         (cb_line_change):  Token's line field replaced by src_loc.
10915         (fe_file_change):  Use MAINFILE_P and LAST_SOURCE_LINE macros.
10916         Don't save new_map.
10917
10918         * cpphash.h, cpperror.c, cpplib.h:  Some renames of fileline to
10919         source_location.
10920
10921 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
10922
10923         * config/rs6000/altivec.md (*movv4si_internal): At least one
10924         operand must be register_operand.
10925         (*movv8hi_internal1): Likewise.
10926         (*movv16qi_internal1): Likewise.
10927         (*movv4sf_internal1): Likewise.
10928
10929 2004-02-10  Aldy Hernandez  <aldyh@redhat.com>
10930
10931         * config/rs6000/spe.md ("*movv2si_internal"): Check for register
10932         operand.
10933         (movv4hi_internal): Same.
10934         (movv2sf_internal): Same.
10935         (movv1di_internal): Same.
10936
10937 2004-02-11  Thiemo Seufer  <seufer@csv.ica.uni-stuttgart.de>
10938
10939         * config/mips/mips.h (TARGET_OLDABI): Define. Use TARGET_NEWABI and
10940         TARGET_OLDABI consistently.
10941         * config/mips/mips.c (function_arg,mips_setup_incoming_varargs,
10942         mips_va_arg,override_options,compute_frame_size,
10943         mips_initial_elimination_offset,mips16_fp_args,build_mips16_call_stub
10944         ,mips_return_in_memory,mips_strict_argument_naming): Use TARGET_NEWABI
10945         and TARGET_OLDABI consistently.
10946         * config/mips/mips.md (exception_receiver): Likewise.
10947         * config/mips/linux64.h: Likewise.
10948
10949 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
10950
10951         * gcc/config/rs6000/rs6000.c (rs6000_override_options)
10952         Set AltiVec ABI and vrsave as default for ppc64 linux.
10953         (init_cumulative_args): Post error, if try to return
10954         value in AltiVec register without enable AltiVec.
10955         (function_arg_advance): Ditto for passing arguments.
10956
10957 2004-02-11  Richard Sandiford  <rsandifo@redhat.com>
10958
10959         * emit-rtl.c (mark_label_nuses): Check that a LABEL_REF refers to
10960         a label before updating its usage count.
10961
10962 2004-02-10  Matt Kraai  <kraai@alumni.cmu.edu>
10963
10964         * doc/install.texi: Remove extra cd.
10965
10966 2004-02-10  Ziemowit Laski  <zlaski@apple.com>
10967
10968         * c-common.c (vector_size_helper): Remove; call
10969         reconstruct_complex_type() instead.
10970         * tree.c (reconstruct_complex_type): New function
10971         (formerly vector_size_helper() in c-common.c).
10972         (make_vector): Make externally visible.
10973         * tree.h (reconstruct_complex_type, make_vector): Add prototypes.
10974
10975 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
10976
10977         * config/h8300/h8300-protos.h: Add a prototype for
10978         h8300_regs_ok_for_stm.
10979         * config/h8300/h8300.c (h8300_regs_ok_for_stm): New.
10980         * config/h8300/h8300.md (stm_h8300s_2_advanced,
10981         stm_h8300s_2_normal, stm_h8300s_2, stm_h8300s_3_advanced,
10982         stm_h8300s_3_normal, stm_h8300s_3, stm_h8300s_4_advanced,
10983         stm_h8300s_4_normal, stm_h8300s_4, ldm_h8300s_2_advanced,
10984         ldm_h8300s_2_normal, ldm_h8300s_2, ldm_h8300s_3_advanced,
10985         ldm_h8300s_3_normal, ldm_h8300s_3, ldm_h8300s_4_advanced,
10986         ldm_h8300s_4_normal, ldm_h8300s_4): Use
10987         h8300_regs_ok_for_stm().
10988
10989 2004-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
10990
10991         PR c/14088
10992         * real.c (real_from_string): Look for 'X' as well as 'x' in
10993         hexfloat strings.
10994
10995 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
10996
10997         * config/h8300/h8300.md: Remove an incorrect comment about
10998         peephole2.  Add comments.
10999
11000 2004-02-10  Josef Zlomek  <zlomekj@suse.cz>
11001
11002         PR/14058
11003         * emit-rtl.c (set_decl_incoming_rtl): New.
11004         * tree.h (set_decl_incoming_rtl): New.
11005         * function.c (assign_parms): Use set_decl_incoming_rtl for setting
11006         DECL_INCOMING_RTL.
11007         * ada/misc.c (adjust_decl_rtl): Likewise.
11008
11009 2004-02-10  Per Bothner  <per@bothner.com>
11010
11011         * c-opts.c (c_common_post_options):   Don't emit working directory
11012         in cpp output if -P was specified.
11013
11014 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
11015
11016         PR c/14092
11017         * fold-const.c (fold) <NEGATE_EXPR>: Convert result of
11018         negate_expr back to the original type.
11019
11020 2004-02-10  Alan Modra  <amodra@bigpond.net.au>
11021
11022         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Don't
11023         bump retaddr here.
11024
11025 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
11026
11027         * rtl.h (schedule_insns, schedule_ebbs, fix_sched_param,
11028         gen_lowpart_SUBREG): Move under the file in which they
11029         are actually declared.
11030
11031 2004-02-10  Arnaud Charlet  <charlet@act-europe.fr>
11032
11033         * doc/sourcebuild.texi: Add libada documentation.
11034
11035         * doc/install.texi: Update documentation on Ada build, now
11036         that the GNAT lib and tools are built automatically.
11037
11038 2004-02-10  Richard Sandiford  <rsandifo@redhat.com>
11039
11040         * config/mips/mips.h (TARGET_GPWORD): Return false for TARGET_NEWABI
11041         && TARGET_IRIX.
11042
11043 2004-02-09  Ziemowit Laski  <zlaski@apple.com>
11044
11045         * objc/objc-act.c (get_super_receiver): Move '#ifdef OBJCPLUS'
11046         boundaries outside build_component_ref() call (a macro in ObjC++).
11047
11048 2004-02-09  Bob Wilson  <bob.wilson@acm.org>
11049
11050         * config/xtensa/xtensa-protos.h (xtensa_copy_incoming_a7): Update.
11051         (init_cumulative_args): Likewise.
11052         (a7_overlap_mentioned_p): Delete prototype.
11053         * config/xtensa/xtensa.c (struct machine_function): Replace
11054         incoming_a7_copied field with need_a7_copy and vararg_a7 flags.
11055         Add set_frame_ptr_insn field.
11056         (xtensa_emit_move_sequence): Update call to xtensa_copy_incoming_a7.
11057         (xtensa_copy_incoming_a7): Rewrite to check need_a7_copy flag and check
11058         if the operand is an argument in a7.  If so, copy a7 to a new pseudo
11059         at the function entry and replace the operand with the pseudo.
11060         (init_cumulative_args): Remove unused arguments.  Add new "incoming"
11061         argument and record this flag in CUMULATIVE_ARGS.
11062         (function_arg): Remove result_mode and special-case code to handle
11063         arguments in a7.  Instead, set need_a7_copy flag when there is an
11064         incoming argument in a7.
11065         (xtensa_expand_prologue): Remove code to search for set_frame_ptr insn
11066         and use the value recorded in cfun->machine->set_frame_ptr_insn.
11067         (xtensa_builtin_saveregs): Check for negative gp_left value.  Set
11068         need_a7_copy and vararg_a7 flags.  Use move_block_from_reg instead of
11069         special-case code.
11070         (a7_overlap_mentioned_p): Delete.
11071         * config/xtensa/xtensa.h (CUMULATIVE_ARGS): Add "incoming" flag.
11072         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Remove useless
11073         arguments to init_cumulative_args and pass "incoming" flag instead.
11074         (BLOCK_REG_PADDING): Delete.
11075         * config/xtensa/xtensa.md (movdi, movsf, movdf): Remove unnecessary
11076         checks for reload_in_progress and reload_completed.  Update calls to
11077         xtensa_copy_incoming_a7.
11078         (ashlsi3): Rename existing insn to ashlsi3_internal.  Add expander
11079         to call xtensa_copy_incoming_a7.
11080
11081 2004-02-09  DJ Delorie  <dj@redhat.com>
11082
11083         * config/i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): No
11084         longer modify standard_exec_prefix, standard_bindir_prefix, or
11085         standard_startfile_prefix.
11086
11087 2004-02-09  James E Wilson  <wilson@specifixinc.com>
11088
11089         PR c++/11295
11090         * c-common.c (c_expand_expr, case STMT_EXPR): Change expand_expr call
11091         to expand_expr_real call, and pass in alt_rtl as last argument.
11092
11093         PR libstdc++/5625
11094         * builtin-types.def (BT_WORD, BT_FN_WORD_PTR): New.
11095         * builtins.c (expand_builtin): Handle BUILT_IN_EXTEND_POINTER.
11096         * builtins.def (BUILT_IN_EXTEND_POINTER): New.
11097         * except.c (expand_builtin_extend_pointer): New.
11098         * except.h (expand_builtin_extend_pointer): Declare.
11099
11100 2004-02-09  David Edelsohn  <edelsohn@gnu.org>
11101
11102         * config/rs6000/rs6000.c (rs6000_emit_move): Remove splitting slow
11103         unaligned loads and stores.
11104
11105 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
11106
11107         * config/mips/iris5.h (BSS_SECTION_ASM_OP): Define.
11108         * config/mips/iris6.h (BSS_SECTION_ASM_OP): Undef.
11109
11110         * config/mips/iris6.h (TARGET_ASM_NAMED_SECTION): Moved ...
11111         * config/mips/iris5.h: ... here.
11112         * config/mips/iris5gas.h (TARGET_ASM_NAMED_SECTION): Remove.
11113
11114         * config/mips/iris6.h (EXTRA_SECTION_FUNCTIONS): Move ...
11115         * config/mips/iris5.h: ... here.
11116
11117 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
11118
11119         * configure.ac: Remove default executable files before AC_PROG_CC.
11120         * configure: Regenerate.
11121
11122 2004-02-09  Kazu Hirata  <kazu@cs.umass.edu>
11123
11124         PR target/13721
11125         * config/h8300/h8300.c (byte_reg): Call abort() if asked to
11126         print a operand other than a register.
11127
11128 2004-02-09  Roger Sayle  <roger@eyesopen.com>
11129
11130         * fold-const.c (fold) <NOP_EXPR>: Use the original type conversion
11131         tree code rather than call fold_convert, which doesn't specify a
11132         default floating point to integer conversion.
11133
11134 2004-02-08  Bernardo Innocenti  <bernie@develer.com>
11135
11136         * config/m68k/m68k.c, config/m68k/m68k.md (SGS, SGS_CMP_ORDER): Remove
11137         code to support SGS assembler.  Reformat adjacent code where possible.
11138         * config/m68k/m68k.c (switch_table_difference_label_flag): Remove
11139         definition.
11140         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Remove support
11141         for '%#'.
11142         * config/m68k/linux.h, config/m68k/m68k.c,
11143         * config/m68k/math-68881.h: Replace `%#' with `#' in inline asm
11144         macros and asm_printf() format strings.
11145         * config/m68k/m68kelf.h (ASM_OUTPUT_CASE_END): Remove macro definition.
11146         * config/m68k/linux.h: Update copyright.
11147         * config/m68k/linux.h, config/m68k/m68k.c: Remove traling whitespace.
11148
11149 2004-02-08  Andreas Schwab  <schwab@suse.de>
11150             Bernardo Innocenti  <bernie@develer.com>
11151
11152         * config/m68k/m68k.h (REGISTER_NAMES): Prefix each name with
11153         REGISTER_PREFIX.
11154         * (M68K_FP_REG_NAME): New macro to specify an alternate name for the
11155         frame pointer register, overridable by OS targets.
11156         * (M68K_REGNAME): Macro to obtain register name for asm output,
11157         eventually replacing %a6 with M68K_FP_REG_NAME.
11158         * config/m68k/coff.h (REGISTER_NAMES): Don't redefine.
11159         * config/m68k/linux.h (REGISTER_NAMES): Likewise.
11160         * config/m68k/m68kelf.h (REGISTER_NAMES): Likewise.
11161         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Likewise.
11162         * config/m68k/m68k.c: Use M68K_REGNAME(x) in place of reg_names[x].
11163
11164 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
11165
11166         * target-def.h (TARGET_STRUCT_VALUE_RTX): Define as
11167         hook_rtx_tree_int_null.
11168         * targhooks.c (default_struct_value_rtx): Remove.
11169         * targhooks.h: Remove the prototype for
11170         default_struct_value_rtx.
11171         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
11172         config/fr30/fr30.c, config/h8300/h8300.c, config/i386/i386.c,
11173         config/ip2k/ip2k.c, config/iq2000/iq2000.c,
11174         config/m32r/m32r.c, config/mcore/mcore.c, config/mips/mips.c,
11175         config/mn10300/mn10300.c, config/pdp11/pdp11.c,
11176         config/rs6000/rs6000.c, config/s390/s390.c,
11177         config/stormy16/stormy16.c, config/v850/v850.c,
11178         config/xtensa/xtensa.c (TARGET_STRUCT_VALUE_RTX): Remove.
11179         * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document the default.
11180
11181 2004-02-08  Joseph S. Myers  <jsm@polyomino.org.uk>
11182
11183         * README.Portability: Change "ISO C89" to "ISO C90".
11184         * c-parse.in (primary, initelt): Likewise.
11185
11186 2004-02-08  Richard Sandiford  <rsandifo@redhat.com>
11187
11188         * real.c (encode_ibm_extended): Normalize the input value before
11189         converting it to a double.  Handle the case where a normal value
11190         rounds to infinity.
11191
11192 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
11193
11194         * c-objc-common.c (c_cannot_inline_tree_fn): Fix a typo in a
11195         warning.
11196         * cse.c (preferrable): Change to preferable. Update all of its
11197         callers.
11198         * genautomata.c (ainsn): Change
11199         first_ainsn_with_given_equialence_num to
11200         first_ainsn_with_given_equivalence_num.  Update all of its
11201         references.
11202
11203 2004-02-08  Jan Hubicka  <jh@suse.cz>
11204
11205         * schedule-ebb.c (schedule_ebbs): Do not allocate reg life data.
11206
11207 2004-02-07  David Edelsohn  <edelsohn@gnu.org>
11208
11209         * function.c (assign_parms): Fix formatting.
11210
11211 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
11212
11213         * default.h (PROMOTE_PROTOTYPES): Remove.
11214         * system.h (PROMOTE_FUNCTION_RETURN, PROMOTE_PROTOTYPES,
11215         STRUCT_VALUE_REGNUM, SETUP_INCOMING_VARARGS,
11216         EXPAND_BUILTIN_SAVEREGS): Poison.
11217         * target-def.h (TARGET_PROMOTE_FUNCTION_RETURN): Define as
11218         hook_bool_tree_false.
11219         (TARGET_PROMOTE_PROTOTYPES): Likewise.
11220         * target.h: Replace SETUP_INCOMING_VARARGS with
11221         targetm.calls.setup_incoming_varargs().
11222         * targhooks.c (default_promote_function_return): Remove.
11223         (default_promote_prototypes): Likewise.
11224         (default_struct_value_rtx): Always abort().
11225         (default_expand_builtin_saveregs): Always print an error
11226         message.
11227         (default_setup_incoming_varargs): Do nothing.
11228         (default_pretend_outgoing_varargs_named): Don't depend on
11229         SETUP_INCOMING_VARARGS.
11230         * targhooks.h: Remove the prototype for
11231         default_promote_function_return and
11232         default_promote_prototypes.
11233
11234 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
11235
11236         * system.h (SHARED_SECTION_ASM_OP): Poison.
11237         * varasm.c (data_section): Don't use SHARED_SECTION_ASM_OP.
11238         * doc/tm.texi (SHARED_SECTION_ASM_OP): Remove.
11239
11240 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
11241
11242         Bug 13856
11243         * c-decl.c (diagnose_mismatched_decls): Only give special
11244         treatment when olddecl is DECL_BUILT_IN, if C_DECL_INVISIBLE
11245         is also true.
11246         (merge_decls): Don't clear DECL_BUILT_IN_CLASS and
11247         DECL_FUNCTION_CODE when defining a built-in function.
11248         Don't update DECL_ESTIMATED_INSNS.
11249         * dwarf2out.c (dwarf2out_decl): Don't ignore built-in
11250         FUNCTION_DECLs.
11251         * tree.h: Delete DECL_ESTIMATED_INSNS.
11252         * tree-inline.c (struct inline_data): Delete inlined_insns field.
11253         (expand_call_inline, optimize_inline_calls): Don't update
11254         DECL_ESTIMATED_INSNS nor inlined_insns.
11255         * cgraphunit.c (cgraph_analyze_function): Don't update
11256         DECL_ESTIMATED_INSNS.
11257
11258 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
11259
11260         * c-common.c (shadow_warning): Delete.
11261         * c-common.h (free_parser_stacks, shadow_warning, sw_kind): Delete.
11262         * c-decl.c (warn_if_shadowing): Issue shadow warnings directly.
11263         * c-opts.c (c_common_parse_file): Don't call free_parser_stacks.
11264         * c-parse.in (free_parser_stacks): Delete.
11265
11266 2004-02-07  Nathanael Nerode  <neroden@gcc.gnu.org>
11267
11268         * Makefile.in, config/t-slibgcc-darwin, config/t-slibgcc-elf-ver,
11269         config/t-slibgcc-sld, config/mips/t-iris5-6, config/sh/t-linux:
11270         Use the top level mkinstalldirs, not the one in the gcc subdir.
11271         * mkinstalldirs: Remove (from the gcc subdir).
11272
11273 2004-02-07  Roger Sayle  <roger@eyesopen.com>
11274
11275         PR middle-end/13696
11276         * fold-const.c (fold_convert): New function to provide type
11277         conversion to the middle-end without using convert.
11278         (negate_expr, associate_trees, size_diffop, omit_one_operand,
11279         operand_equal_for_comparison_p, pedantic_omit_one_operand,
11280         invert_truthvalue, optimize_bit_field_compare, range_binop,
11281         decode_field_reference, make_range, build_range_check, unextend,
11282         fold_truthop, extract_muldiv_1, fold_mathfn_compare,
11283         fold_binary_op_with_conditional_arg, fold_inf_compare,
11284         fold_single_bit_test, fold, multiple_of_p): Replace all calls to
11285         convert with calls to fold_convert.
11286
11287 2004-02-07  Jan Hubicka  <jh@suse.cz>
11288
11289         * genrecog.c (find_operand): add extra argument stop.
11290         (validate_pattern): Verify that mach_dup is duplicating operand
11291         defined lexically earlier.
11292
11293 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
11294
11295         * config.gcc: Don't mention MAX_LONG_TYPE_SIZE.
11296         * system.h (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
11297         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Poison.
11298         * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
11299         config/ia64/ia64.h, config/ip2k/ip2k.h,
11300         config/iq2000/iq2000.h, config/mips/iris5.h,
11301         config/mips/mips.h, config/pa/pa-64.h, config/pa/pa.h,
11302         config/rs6000/aix51.h, config/rs6000/aix52.h,
11303         config/rs6000/darwin.h, config/rs6000/rs6000.h,
11304         config/s390/s390.h, config/sh/sh.h, config/sparc/freebsd.h,
11305         config/sparc/linux.h, config/sparc/linux64.h,
11306         config/sparc/netbsd-elf.h, config/sparc/sparc.h,
11307         config/xtensa/xtensa.h: Remove the definitions of
11308         MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE, and/or
11309         MAX_WCHAR_TYPE_SIZE.
11310         * doc/tm.texi (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
11311         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Remove.
11312
11313 2004-02-07  Stephane Carrez  <stcarrez@nerim.fr>
11314
11315         PR bootstrap/13990
11316         * config/m68hc11/m68hc11.md ("doloop_end"): Pass dummy arguments to
11317         gen_rtx_NE.
11318
11319 2004-02-07  Josef Zlomek  <zlomekj@suse.cz>
11320
11321         * var-tracking.c (vt_add_function_parameters): Surround checkings by
11322         #ifdef ENABLE_CHECKING and #endif.
11323
11324 2004-02-07  Roger Sayle  <roger@eyesopen.com>
11325
11326         * fold-const.c (negate_expr_p, negate_expr): Optimize -(A+B) into
11327         either (-A)-B or (-B)-A, if A or B is easily negated respectively.
11328         (fold) <MINUS_EXPR>: Optimize (A*C) - (B*C) -> (A-B)*C for both
11329         integer types and floating point with unsafe_math_optimizations.
11330         Add similar optimization for (A*C1) - (A*C2) -> A*(C1-C2).
11331         Optimize A - B as A + (-B), if B is easily negated.
11332
11333 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
11334
11335         * c-ppoutput.c, cfganal.c, diagnostic.h, print-rtl.c,
11336         config/darwin.c, config/darwin.h, config/ia64/ia64-c.c,
11337         config/m32r/linux.h, config/rs6000/ppc64-fp.c,
11338         config/sparc/openbsd.h, doc/makefile.texi, doc/passes.texi:
11339         Update copyright.
11340
11341 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
11342
11343         * c-ppoutput.c, var-tracking.c: Fix comment typos.
11344
11345 2004-02-06  James E Wilson  <wilson@specifixinc.com>
11346
11347         * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Only define for
11348         glibc 2.3 or better.
11349
11350 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
11351
11352         * doc/tm.texi (TARGET_FLOAT_LIB_COMPARE_RETURNS_BOOL): Change
11353         to FLOAT_LIB_COMPARE_RETURNS_BOOL.
11354
11355 2004-02-07  Alan Modra  <amodra@bigpond.net.au>
11356
11357         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Add darwin-ldouble.c.
11358         (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
11359         (SHLIB_MKMAP_OPTS): Delete.
11360         (TARGET_LIBGCC2_CFLAGS): Add -specs.
11361         (bispecs): Add rule.
11362         * config/rs6000/libgcc-ppc64.ver: New file.
11363         * config/rs6000/ppc64-fp.c (__fixtfdi, __floatditf): New functions.
11364         (__floatdidf, __floatdisf): Optimize multiply.
11365         (__fixunstfdi): New function.
11366         * config/rs6000/rs6000.c (rs6000_complex_function_value): Allow for
11367         real and imag parts larger than one register.
11368         (function_arg): Correct type of reg used when fp arg split partially
11369         to stack.
11370         * config/rs6000/darwin-ldouble.c: Protect with #if !_SOFT_FLOAT
11371         and __MACH__ or __powerpc64__.
11372
11373 2004-02-06  Roger Sayle  <roger@eyesopen.com>
11374             Ulrich Weigand  <uweigand@de.ibm.com>
11375
11376         * builtins.c (expand_builtin_signbit): Use extract_bit_field instead
11377         of gen_highpart or gen_lowpart when the floating point format is
11378         wider than the result mode.
11379
11380 2004-02-06  Andrew Pinski  <pinskia@physics.uc.edu>
11381
11382         * dwarf2out.c (loclabel_num): Move into #ifdef
11383         DWARF2_DEBUGGING_INFO.
11384
11385 2004-02-06  Ziemowit Laski  <zlaski@apple.com>
11386
11387         * objc/objc-act.c (build_super_template) the 'class' field of
11388         'struct _objc_super' shall be named 'super_class' #ifdef OBJCPLUS.
11389         (get_super_receiver): Likewise.
11390
11391 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
11392
11393         * reload1.c (check_eliminable_occurrences): Optimize the reset
11394         of can_eliminate.
11395         (eliminate_regs_in_insn): Likewise.
11396
11397 2004-02-06  Daniel Berlin <dberlin@dberlin.org>
11398             Josef Zlomek  <zlomekj@suse.cz>
11399
11400         * dwarf2out.c (struct gcc_debug_hooks): Call dwarf2out_begin_function
11401         at the beginning of function, call dwarf2out_var_location for
11402         NOTE_INSN_VAR_LOCATION note.
11403         (struct var_loc_node, struct var_loc_list_def, loclabel_num,
11404         decl_loc_table): New.
11405         (lookup_decl_loc): New function.
11406         (add_var_loc_to_decl): New function.
11407         (based_loc_descr): Added parameter can_use_fbreg, DW_OP_fbreg is used
11408         only if can_use_fbreg.
11409         (mem_loc_descriptor): Added parameter can_use_fbreg, pass it to other
11410         functions.
11411         (loc_descriptor): Likewise. Process VAR_LOCATION.
11412         (concat_loc_descriptor): Call loc_descriptor with can_use_fbreg == true.
11413         (loc_descriptor_from_tree): Call mem_loc_descriptor with
11414         can_use_fbreg == true.
11415         (add_location_or_const_value_attribute): Added parameter enum
11416         dwarf_attribute attr, generate attribute ATTR.  Create the location list.
11417         (add_bound_info): Call loc_descriptor with can_use_fbreg == true.
11418         (gen_formal_parameter_die): Call add_location_or_const_value_attribute
11419         with attr == DW_AT_location.
11420         (gen_subprogram_die): Generate the location list for DW_AT_frame_base
11421         if frame_base_decl is defined and has a location list.
11422         (gen_variable_die): Call add_location_or_const_value_attribute with
11423         attr == DW_AT_location.
11424         (dwarf2out_var_location): New function.
11425         (dwarf2out_begin_function): New function.
11426         (dwarf2out_init): Create decl_loc_table.
11427
11428 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
11429
11430         * loop.c (force_movables): Transitively increase the priorities of
11431         all insns forces by an insn, not just the first one.
11432
11433 2004-02-06  Josef Zlomek  <zlomekj@suse.cz>
11434             Daniel Berlin <dberlin@dberlin.org>
11435
11436         Josef Zlomek  <zlomekj@suse.cz>
11437         * Makefile.in (var-tracking.o): New.
11438         * common.opt (fvar-tracking): New.
11439         * flags.h (flag_var_tracking): New.
11440         * gengtype.c (adjust_field_rtx_def): NOTE_INSN_VAR_LOCATION was added.
11441         * opts.c (common_handle_option): Add OPT_fvar_tracking.
11442         * print-rtl.c (print_rtx): NOTE_INSN_VAR_LOCATION was added.
11443         * rtl.c (note_insn_name): Likewise.
11444         * rtl.def (VAR_LOCATION): New.
11445         * rtl.h (NOTE_VAR_LOCATION): New.
11446         (NOTE_VAR_LOCATION_DECL): New.
11447         (NOTE_VAR_LOCATION_LOC): New.
11448         (enum insn_note): NOTE_INSN_VAR_LOCATION was added.
11449         (variable_tracking_main): New exported function.
11450         * timevar.def (TV_VAR_TRACKING): New.
11451         * toplev.c (enum dump_file_index): Added DFI_vartrack.
11452         (dump_file): "vartrack" was added (-dV).
11453         (flag_var_tracking): New.
11454         (f_options): "var-tracking" was added.
11455         (rest_of_handle_variable_tracking): New function.
11456         (rest_of_compilation): Run variable tracking.
11457         (process_options): If user has not specified flag_var_tracking set it
11458         according to optimize, debug_info_level and debug_hooks.
11459         * tree.h (frame_base_decl): New.
11460         * var-tracking.c: New file.
11461         * config/ia64/ia64.c (ia64_flag_var_tracking): New variable.
11462         (ia64_override_options): Set flags to run variable tracking in machine
11463         dependent reorg instead of toplev.c.
11464         (ia64_reorg): Run variable tracking if wanted.
11465         * doc/invoke.texi: Mention variable tracking in -dV,
11466         add and -fvar-tracking.
11467         * doc/passes.texi: Added variable tracking pass.
11468
11469         Daniel Berlin <dberlin@dberlin.org>
11470         * debug.h (struct gcc_debug_hooks): Added var_location debug hook.
11471         * dbxout.c (dbx_debug_hooks): Likewise.
11472         (xcoff_debug): Likewise.
11473         * debug.c (do_nothing_debug_hooks): Likewise.
11474         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
11475         * dwarfout.c (dwarf_debug_hooks): Likewise.
11476         * sdbout.c (sdb_debug_hooks): Likewise.
11477         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
11478         * final.c (final_scan_insn): Call var_location debug hook for each
11479         NOTE_INSN_VAR_LOCATION.
11480
11481 2004-02-06  Jan Hubicka  <jh@suse.cz>
11482
11483         * flow.c (update_life_info): Allocate reg_deaths when called from
11484         scheudler.
11485         (attempt_auto_inc):  Update life ranges accordingly.
11486
11487 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
11488
11489         PR debug/11816
11490         * dwarf2out.c (gen_decl_die): Handle anonymous struct members.
11491
11492 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
11493
11494         * cfganal.c (flow_call_edges_add): Never split a libcall block.
11495
11496 2004-02-06  Daniel Berlin  <dberlin@dberlin.org>
11497
11498         * dwarf2out.c (output_loc_list): Don't use deltas if we have
11499         a separate line info table in use.
11500         Use the correct size for terminators.
11501         (output_die): Use offset, not delta.
11502
11503 2004-02-06  H.J. Lu  <hongjiu.lu@intel.com>
11504
11505         * doc/invoke.texi: Remove the pni option from -mfpmath=.
11506
11507 2004-02-06  Jan Hubicka  <jh@suse.cz>
11508
11509         * recog.c (split_all_insns): Do not update reg info.
11510         * regrename.c (regrename_optimize): Likewise.
11511         * toplev.c (rest_of_handle_reorder_blocks): Likewise.
11512         * flow.c (struct propagate_block_info): Add insn_num field.
11513         (reg_deaths): New array.
11514         (life_analysis): Free reg_deaths info.
11515         (allocate_reg_life_data): Allocate reg_deaths array.
11516         (propagate_one_insn): Use new array.
11517         (init_propagate_block): Initialize it.
11518         (free_propagate_block_info): Finish compuation of
11519         REG_LIVE_LENGTH
11520         (attempt_auto_inc): Sanity check that REG_INFO is not
11521         computed at same time.
11522         (mark_used_regs): Update new array.
11523
11524         * reg-stack.c (subst_stack_regs): Unshare clobbers before
11525         substitution.
11526
11527 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
11528
11529         * config/s390/s390.md (*extendsiqi2_short_displ): Change to
11530         *extendqisi2_short_displ.
11531
11532 2004-02-06  Alan Modra  <amodra@bigpond.net.au>
11533
11534         * doc/tm.texi (INIT_CUMULATIVE_ARGS): Update doco.
11535         * calls.c (expand_call): Pass n_named_args to INIT_CUMULATIVE_ARGS.
11536         (emit_library_call_value_1): Likewise pass nargs.
11537         * expr.c (block_move_libcall_safe_for_call_parm): Pass 3 here.
11538         * function.c (assign_parms): Pass -1 to INIT_CUMULATIVE_ARGS.
11539         * config/rs6000/rs6000.c (init_cumulative_args): Use n_named_args
11540         parameter instead of scanning TYPE_ARGS_TYPES to count args.
11541         * config/rs6000/rs6000-protos.h (init_cumulative_args): Update
11542         prototype.
11543         * config/rs6000/rs6000.h (INIT_CUMULATIVE_ARGS): Pass extra arg.
11544         (INIT_CUMULATIVE_INCOMING_ARGS): Set extra arg to 1000.
11545         (INIT_CUMULATIVE_LIBCALL_ARGS): Set extra arg to 0.
11546         * config/sh/sh.c (sh_output_mi_thunk): Pass 1 as n_named_args to
11547         INIT_CUMULATIVE_ARGS.
11548         * config/alpha/alpha.h (INIT_CUMULATIVE_ARGS): Update.
11549         * config/alpha/unicosmk.h, config/alpha/vms.h, config/arc/arc.h,
11550         config/arm/arm.h, config/avr/avr.h, config/c4x/c4x.h,
11551         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.h,
11552         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
11553         config/ia64/ia64.h, config/ip2k/ip2k.h, config/iq2000/iq2000.h,
11554         config/iq2000/iq2000.c, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
11555         config/m68k/m68k.h, config/mcore/mcore.h, config/mips/mips.h,
11556         config/mmix/mmix.h, config/mn10300/mn10300.h, config/ns32k/ns32k.h,
11557         config/pa/pa.h, config/pdp11/pdp11.h, config/s390/s390.h,
11558         config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
11559         config/v850/v850.h, config/vax/vax.h, config/xtensa/xtensa.h: Likewise.
11560
11561 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
11562
11563         * genemit.c (gen_exp) [CONST_INT]: Use const_int_rtx whenever
11564         possible.
11565
11566 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
11567
11568         * reload1.c (eliminate_regs_in_insn): If a set has a REG_EQUAL
11569         note containing (plus (reg) (const_int)), where reg is an
11570         eliminable reg, then perform the register elimination without
11571         depending on eliminate_regs().
11572
11573 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
11574
11575         * config/arc/arc.c (arc_return_in_memory): Check the return
11576         value of int_size_in_bytes against -1.  Don't check
11577         TREE_ADDRESSABLE.
11578         * config/avr/avr.c (avr_return_in_memory): Check the return
11579         value of int_size_in_bytes against -1.
11580         * config/ip2k/ip2k.c (ip2k_return_in_memory): Likewise.
11581         * config/m68hc11/m68hc11.c (m68hc11_return_in_memory):
11582         Likewise.
11583         * config/mcore/mcore.c (mcore_return_in_memory): Likewise.
11584         * config/stormy16/stormy16.c (xstormy16_return_in_memory):
11585         Likewise.
11586
11587 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
11588
11589         * config/frv/frv-protos.h: Remove the prototype for
11590         frv_setup_incoming_varargs.
11591         * config/frv/frv.c (TARGET_SETUP_INCOMING_VARARGS): New.
11592         (frv_setup_incoming_varargs): Make it static.
11593         * config/frv/frv.h (SETUP_INCOMING_VARARGS): Remove.
11594
11595 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
11596
11597         * config/fr30/fr30-protos.h: Remove the prototype for
11598         fr30_setup_incoming_varargs.
11599         Update the prototypes for fr30_num_arg_regs and
11600         fr30_function_arg_partial_nregs.
11601         * config/fr30/fr30.c (TARGET_STRUCT_VALUE_RTX): New.
11602         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
11603         (fr30_setup_incoming_varargs): Make it static.
11604         Add argument second_time.  Don't do anything when second_time
11605         is nonzero.
11606         (fr30_num_arg_regs): Change the type of the first argument to
11607         enum machine_mode.
11608         (fr30_function_arg_partial_nregs): Change the type of the
11609         second argument to enum machine_mode.
11610         * config/fr30/fr30.h (STRUCT_VALUE): Remove.
11611         (SETUP_INCOMING_VARARGS): Remove.
11612
11613 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
11614
11615         * config/arc/arc-protos.h: Remove the prototype for
11616         arc_setup_incoming_varargs.
11617         * config/arc/arc.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
11618         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
11619         (arc_setup_incoming_varargs): Make it static.
11620         (arc_external_libcall): Likewise.
11621         * config/arc/arc.h (SETUP_INCOMING_VARARGS): Remove.
11622         Remove the commented-out definition of
11623         ASM_OUTPUT_EXTERNAL_LIBCALL.
11624
11625 2004-02-05  SUGIOKA Toshinobu  <sugioka@itonet.co.jp>
11626
11627         * config/sh/t-linux (SHLIB_INSTALL): Prepend $$(DESTDIR)
11628         to $$(slibdir) in the installation commands.
11629
11630 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
11631
11632         * reload.c (refers_to_regno_for_reload_p): Index hard_regno_nregs
11633         with inner_regno, not regno.
11634         * rtlanal.c (refers_to_regno_p): Same.
11635
11636 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
11637
11638         * config.gcc: Remove i370 support.
11639
11640 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
11641
11642         * doc/install.texi:  Update automake and autoconf version
11643         requirements.  Note where to find gcj automake version.
11644
11645 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
11646
11647         * Makefile.in (generate-manpages): Move dependencies to ...
11648         (man): here.
11649         * doc/makefile.texi: Document new targets.
11650         * doc/sourcebuild.texi (Make-lang.in): Document new langhooks.
11651
11652 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
11653
11654         PR/13485
11655         Makefile.in (srcextra):  Add a level of indirection to ...
11656         (gcc.srcextra): ... here.
11657         (po-generated): Delete.
11658         (po/$(PACKAGE).pot: Use srcextra instead of po-generated.  Depend on
11659         options.c.
11660         (start.encap): Remove superfluous lang.srcextra dependency.
11661         objc/Make-lang.in (po-generated):  Delete.
11662
11663 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
11664
11665         * config/ia64/ia64.c (REG_GP): Remove.
11666
11667 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
11668
11669         * config/mips/iris5gas.h (PREFERRED_DEBUGGING_TYPE): Define.
11670
11671 2004-02-05  Devang Patel  <dpatel@apple.com>
11672
11673         * dwarf2out.c (force_type_die): Look up input type itself
11674         instead of root_type() of type.
11675
11676 2004-02-05  Andreas Krebbel  <krebbel1@de.ibm.com>
11677
11678         * config/s390/s390.md ("*tmqidi_ext"): New insn.
11679         ("*extendqidi2_short_displ", "*extendsiqi2_short_displ"): Old
11680         pre-reload splitters are transformed to post-reload
11681         define_insn_and_split patterns.
11682         ("*tmqisi_ext"): Renamed old "*tmqi_ext".
11683
11684 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
11685
11686         * config/cris/cris.h: Replace PROMOTE_PROTOTYPES with
11687         TARGET_PROMOTE_PROTOTYPES.
11688
11689 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
11690
11691         PR middle-end/13750
11692         Revert:
11693         2004-01-15  Geoffrey Keating  <geoffk@apple.com>
11694         PR pch/13361
11695         * c-typeck.c (constructor_asmspec): Delete.
11696         (struct initializer_stack): Delete field 'asmspec'.
11697         (start_init): Delete saving of asmspec.
11698         (finish_init): Don't update constructor_asmspec.
11699         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
11700         * stmt.c (expand_asm): Duplicate strings from tree.
11701         (expand_asm_operands): Likewise.
11702         * tree.c (tree_size): Update computation of size of STRING_CST.
11703         (make_node): Don't make STRING_CST nodes.
11704         (build_string): Allocate string with tree node.
11705         * tree.def (STRING_CST): Update comment.
11706         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
11707         (tree_string): Place contents of string in tree node.
11708         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
11709         from tree.
11710
11711 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
11712
11713         * diagnostic.h (DEFINE_DIAGNOSTIC_KIND): Change parameter M to
11714         msgid.
11715
11716 2004-02-05  Dorit Naishlos  <dorit@il.ibm.com>
11717
11718         * config/rs6000/altivec.md (*movv4si_internal): At least one
11719         operand must be altivec_register_operand.
11720         (*movv8hi_internal1): Likewise.
11721         (*movv16qi_internal1): Likewise.
11722         (*movv4sf_internal1): Likewise.
11723
11724 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
11725
11726         * configure.ac (gcc_cv_as_powerpc_mfcrf): Correct test for mfcr.
11727         * configure: Regenerate.
11728
11729 2004-02-05  Jonathan Wakely  <redi@gcc.gnu.org>
11730
11731         * doc/install.texi: Update description of --gxx-include-dir to
11732         give correct default value.
11733
11734 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
11735
11736         * config/h8300/h8300.h (REG_OK_FOR_BASE_NONSTRICT_P): Replace
11737         8 with MAC_REG.
11738
11739 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
11740
11741         * config/pa/pa.c (emit_hpdiv_const): Replace gen_rtx with
11742         gen_rtx_PARALLEL.
11743
11744 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
11745
11746         * emit-rtl.c: Update the comment about the file.
11747
11748 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
11749
11750         * sourcebuild.texi (Test Idioms): Update testcase naming
11751         conventions.
11752
11753 2004-02-04  Per Bothner  <per@bothner.com>
11754
11755         Partially revert/redo 2003-10-01 change; fix -fworking-directory.
11756         * c-ppoutput.c (pp_dir_change):  New function.
11757         * c-common.h (pp_dir_change):  New declaration.
11758         * cpplib.h (struct cpp_options):  Remove working_directory field.
11759         * cppinit.c (cpp_find_main_file, cpp_push_main_file):  Merge back to
11760         (cpp_read_main_file):  as before 10-01.  Call _cpp_stack_file.
11761         Don't handle -fworking_directory here, but in c_common_post_options.
11762         (read_original_directory): Don't back up when done.
11763         Don't clear no-longer used working_directory flag.
11764         * cpplib.h:  Update declarations to match.
11765         * c-lex.c (cb_dir_change):  Move to c-opts.c.
11766         (init_c_lex):  Don't set dir_change callback here, since we want
11767         to set it even if flag_preprocess_only.
11768         * c-opts.c (cb_dir_change):  Function moved from c-lex.c.
11769         (c_common_post_options):  Set dir_change callback.
11770         Call pp_dir_change if approporiate.
11771         (finish_options):  Don't call cpp_find_main_file here.  Hence remove
11772         unneeded parameter and result. Do LC_RENAME for <built-in>.
11773         (c_common_post_options):  Call cpp_read_main_file here instead.
11774         (c_common_init):  Update accordingly.
11775         (push_command_line_include):  Don't cpp_push_main_file.
11776         Do LC_RENAME rather than LC_LEASE to get back to main file.
11777         Compared to pre-10-01 version, inline cpp_rename_to_main_file.
11778         (c_common_parse_file):  Call cpp_read_main_file for subsequent main
11779         files, but call finish_options for all files.
11780         * c-opts.c (sanitize_cpp_opts):  Don't set cpp_opts->working_directory.
11781         * fix-header.c (read_scan_file):  Call cpp_read_main_file instead of
11782         cpp_find_main_file + cpp_push_main_file.
11783         * c-lex.c (fe_file_change):  Don't set main_input_filename here.
11784         * opts.c (handle_options):  Only set main_input_filename first time.
11785
11786 2004-02-05  Ian Lance Taylor  <ian@wasabisystems.com>
11787
11788         * config/arm/arm.h (REG_CLASS_NAMES): Add missing comma.
11789
11790 2004-02-04  Geoffrey Keating  <geoffk@apple.com>
11791
11792         * reload.c (find_equiv_reg): When checking for register overlap,
11793         don't index hard_regno_nregs with a pseudo-reg.
11794
11795 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
11796
11797         * config/s390/s390.c (s390_trampoline_template): Remove gen_rtx().
11798
11799 2004-02-04  David Edelsohn  <edelsohn@gnu.org>
11800
11801         * reload.c (refers_to_regno_for_reload_p): Test regno, not inner_regno,
11802         against FIRST_PSEUDO_REGISTER.
11803
11804 2004-02-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
11805
11806         * Makefile.in: Move target, host overrides after per-language
11807         fragments.
11808
11809         * config/mips/t-iris5-as (FORCE_DEBUG_ADAFLAGS): Clear.
11810         (GNATLIBCFLAGS): Remove -g.
11811
11812 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
11813
11814         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
11815         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
11816         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
11817         config/m32r/m32r.c, config/ns32k/ns32k.c, config/pa/pa.c,
11818         config/pdp11/pdp11.c, config/rs6000/rs6000.c,
11819         config/sparc/sparc.c, config/vax/vax.c: Revert the
11820         replacements of "FALLTHRU" with "Fall through" done in the
11821         previous patch.
11822
11823 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
11824
11825         * config/darwin.c, config/darwin.h, config/freebsd-spec.h,
11826         config/arm/arm.c, config/arm/arm.md,
11827         config/cris/cris-protos.h, config/fr30/fr30.c,
11828         config/fr30/fr30.h, config/h8300/h8300.c, config/i386/i386.h,
11829         config/i860/i860.c, config/i860/i860.h, config/ia64/ia64-c.c,
11830         config/ia64/ia64.c, config/ia64/ia64.h, config/ip2k/ip2k.h,
11831         config/ip2k/ip2k.md, config/ip2k/libgcc.S,
11832         config/m32r/linux.h, config/m32r/m32r.c, config/m32r/m32r.h,
11833         config/m68k/m68k.c, config/m68k/netbsd-elf.h,
11834         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.md,
11835         config/ns32k/netbsd.h, config/ns32k/ns32k.c,
11836         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
11837         config/rs6000/darwin-ldouble.c, config/s390/s390.h,
11838         config/s390/s390.md, config/sparc/netbsd-elf.h,
11839         config/sparc/openbsd.h, config/sparc/sparc.c,
11840         config/xtensa/lib2funcs.S: Fix comment formatting.
11841
11842 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
11843
11844         * config/alpha/alpha.c, config/arc/arc.c,
11845         config/arm/arm-cores.def, config/arm/arm.c, config/arm/arm.h,
11846         config/arm/arm1026ejs.md, config/arm/arm1136jfs.md,
11847         config/arm/arm926ejs.md, config/arm/vfp.md, config/avr/avr.c,
11848         config/c4x/c4x.c, config/cris/cris.c, config/frv/frv.md,
11849         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
11850         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
11851         config/iq2000/iq2000.c, config/m32r/m32r.c,
11852         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.h,
11853         config/ns32k/ns32k.c, config/pa/pa.c, config/pdp11/pdp11.c,
11854         config/rs6000/darwin-ldouble.c, config/rs6000/rs6000.c,
11855         config/rs6000/rs6000.h, config/sparc/sparc.c,
11856         config/vax/vax.c: Fix comment typos.  Follow spelling
11857         conventions.
11858
11859 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
11860
11861         * alloc-pool.h, c-convert.c, c-lang.c, c-tree.h,
11862         caller-save.c, df.h, genconfig.c, global.c, lcm.c,
11863         ra-rewrite.c, ra.c, regclass.c, regs.h, resource.c,
11864         sched-rgn.c, config/arm/aof.h, config/arm/cirrus.md,
11865         config/arm/fpa.md, config/arm/iwmmxt.md,
11866         config/arm/netbsd-elf.h, config/arm/netbsd.h,
11867         config/m68hc11/m68hc11.md, config/mips/iris5.h,
11868         config/mn10300/mn10300.md, config/rs6000/altivec.md,
11869         config/sparc/netbsd-elf.h: Update copyright.
11870
11871 2004-02-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
11872
11873         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
11874         for all modes whose size is greater than 8 bytes if ARCH32.
11875         (sparc_va_arg): Handle all modes whose size is greater than 8 bytes
11876         by reference if ARCH32.
11877
11878 2004-02-04  Aldy Hernandez  <aldyh@redhat.com>
11879
11880         * cgraphunit.c (cgraph_postorder): Fix typo in comment.
11881
11882 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
11883
11884         * config/s390/s390.md ("*la_64" + peepholes, "reload_indi"): Move
11885         to before adddi3 insn patterns.
11886         ("*la_31" + peepholes, "*la_31_and", "*la_31_and_cc", "force_la_31",
11887         "reload_insi"): Move to before addsi3 insn patterns.
11888
11889 2004-02-04  Mark Mitchell  <mark@codesourcery.com>
11890
11891         * calls.c (initialize_argument_information): Add CALL_FROM_THUNK_P
11892         parameter.  Use it instead of current_function_is_thunk.
11893         * function.h (struct function): Update documentation for is_thunk.
11894         * tree.h (CALL_FROM_THUNK_P): New macro.
11895         * config/alpha/alpha.c (alpha_sa_mask): Do not check
11896         no_new_pseudos when testing current_function_is_thunk.
11897         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likeiwse.
11898
11899 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
11900
11901         * doc/tm.texi: Replace SETUP_INCOMING_VARARGS with
11902         TARGET_SETUP_INCOMING_VARARGS.
11903
11904 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
11905
11906         * emit-rtl.c (gen_rtx): Remove.
11907         * genattrtab.c: Don't mention gen_rtx in a comment.
11908         * rtl.h: Remove the prototype for gen_rtx.
11909         * doc/md.texi: Replace gen_rtx with gen_rtx_REG.
11910
11911 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
11912
11913         * config/arc/arc.h, config/fr30/fr30.h
11914         (SETUP_INCOMING_VARARGS): Remove the target-independent
11915         comments.
11916         * doc/tm.texi: Don't mention deprecated target macros.
11917
11918 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
11919
11920         * config/fr30/fr30.h (FUNCTION_VALUE): Remove the
11921         target-independent comment.
11922
11923 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
11924
11925         * doc/interface.texi, doc/tm.texi, doc/trouble.texi: Don't
11926         mention deprecated target macros.
11927
11928 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
11929
11930         * config.gcc: Remove obsolete ports and configurations.
11931         * config/linux-aout.h, config/netware.h,
11932         config/t-linux-gnulibc1, config/d30v/abi,
11933         config/d30v/d30v-protos.h, config/d30v/d30v.c,
11934         config/d30v/d30v.h, config/d30v/d30v.md,
11935         config/d30v/libgcc1.asm, config/d30v/t-d30v,
11936         config/dsp16xx/dsp16xx-modes.def,
11937         config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c,
11938         config/dsp16xx/dsp16xx.h, config/dsp16xx/dsp16xx.md,
11939         config/i370/README, config/i370/i370-c.c,
11940         config/i370/i370-protos.h, config/i370/i370.c,
11941         config/i370/i370.h, config/i370/i370.md, config/i370/linux.h,
11942         config/i370/mvs.h, config/i370/oe.h, config/i370/t-i370,
11943         config/i386/freebsd-aout.h, config/i386/linux-aout.h,
11944         config/i386/moss.h, config/i386/netware.h,
11945         config/i386/svr3.ifile, config/i386/svr3dbx.h,
11946         config/i386/svr3gas.h, config/i386/svr3z.ifile,
11947         config/i386/t-udk, config/i386/udk.h, config/i386/vsta.h,
11948         config/i960/i960-c.c, config/i960/i960-coff.h,
11949         config/i960/i960-modes.def, config/i960/i960-protos.h,
11950         config/i960/i960.c, config/i960/i960.h, config/i960/i960.md,
11951         config/i960/rtems.h, config/i960/t-960bare,
11952         config/m68k/hp310.h, config/m68k/hp320.h,
11953         config/m68k/hp320base.h, config/m68k/m68kv4.h,
11954         config/m68k/netbsd.h, config/m68k/sgs.h, config/m68k/t-hp320:
11955         Remove.
11956         * doc/extend.texi, doc/install.texi, doc/invoke.texi,
11957         doc/md.texi: Remove mentions of obsolete ports.
11958
11959 2004-02-04  Jan Hubicka  <jh@suse.cz>
11960
11961         * alias.c (find_base_term, get_addr):  Do not dereference NULL
11962         pointer when all VALUE's locations has been invalidated.
11963         (rtx_equal_for_memref_p): Simplify checking of VALUEs.
11964
11965 2004-02-03  Wolfgang Bangerth  <bangerth@dealii.org>
11966
11967         * doc/invoke.texi (x86 options): Fix spelling/wording.
11968
11969 2004-02-03  Richard Sandiford  <rsandifo@redhat.com>
11970
11971         * config/mips/iris5.h (ASM_OUTPUT_ASCII): Use mips_output_ascii to
11972         put the original string in a comment.
11973         * config/mips/mips-protos.h (mips_output_ascii): Add prefix argument.
11974         * config/mips/mips.c (mips_output_ascii): Likewise.
11975         * config/mips/mips.h (ASM_OUTPUT_ASCII): Adjust accordingly.
11976
11977 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
11978
11979         * system.h (GIV_SORT_CRITERION): Poison.
11980         * config/avr/avr.h (GIV_SORT_CRITERION): Remove.
11981         * config/ip2k/ip2k.h (GIV_SORT_CRITERION): Likewise.
11982
11983 2004-02-03  Roger Sayle  <roger@eyesopen.com>
11984
11985         PR target/9348
11986         * expr.c (expand_expr_real) <MULT_EXPR>:  When performing widening
11987         multiplies with a multiplication of the wrong signedness, its the
11988         signedness of the multiplication that we've performed that needs to
11989         be passed to expand_mult_highpart_adjust.  Avoid emitting a nop-move
11990         if expand_mult_highpart_adjust places the result in target.
11991
11992 2004-02-03  Richard Henderson  <rth@redhat.com>
11993
11994         * varasm.c (const_desc_rtx_sym_eq): Compare symbol strings.
11995
11996 2004-02-03  J"orn Rennecke <joern.rennecke@superh.com>
11997
11998         * config.gcc (sh[234]l): Use little endian fragments.
11999
12000 2004-02-03  Paul Koning  <pkoning@equallogic.com>
12001
12002         * config/pdp11/pdp11-modes.def: Add RESET_FLOAT_FORMAT calls.
12003         * config/pdp11/pdp11-protos.h (legitimate_const_double_p): Add.
12004         * config/pdp11/pdp11.c (encode_pdp11_f, decode_pdp11_f,
12005         encode_pdp11_d, decode_pdp11_d): New functions to handle PDP11
12006         floating point format.
12007         (pdp11_f_format, pdp11_d_format): New real_format descriptors for
12008         the above functions.
12009         (output_move_quad): Output float values in correct target format.
12010         (legitimate_const_double_p): New function.
12011         * config/pdp11/pdp11.h: Fix typos.
12012         (FLOAT_WORDS_BIG_ENDIAN): Add definition.
12013         (TARGET_FLOAT_FORMAT): Ditto.
12014         (pdp11_f_format, pdp11_d_format): Add external declarations.
12015         (MAX_REGS_PER_ADDRESS): Corrected.
12016         (LEGITIMATE_CONSTANT_P): Use legitimate_const_double_p().
12017         (PRINT_OPERAND): Output float literals in target format.
12018
12019 2004-02-03  Mark Mitchell  <mark@codesourcery.com>
12020
12021         PR c++/13975
12022         * tree.h (enum tree_index): Add TI_PUBLIC, TI_PROTECTED, and
12023         TI_PRIVATE.
12024         (access_public_node): Redefine.
12025         (access_protected_node): Likewise.
12026         (access_private_node): Likewise.
12027         * tree.c (build_common_tree_nodes): Create access_public_node,
12028         access_protected_node, and access_private_node.
12029
12030 2004-02-03  Steve Ellcey  <sje@cup.hp.com>
12031
12032         * config/ia64/ia64.h (MASK_INLINE_INT_DIV_LAT): Change value.
12033         (MASK_INLINE_INT_DIV_THR): Ditto.
12034         (MASK_INLINE_SQRT_LAT): Ditto.
12035         (MASK_INLINE_SQRT_THR): Ditto.
12036         (MASK_DWARF2_ASM): Ditto.
12037         (MASK_EARLY_STOP_BITS): Ditto.
12038
12039 2004-02-02  Paul Brook  <paul@codesourcery.com>
12040
12041         Merge from csl-arm-branch.
12042
12043         2004-01-30  Paul Brook  <paul@codesourcery.com>
12044
12045         * aof.h (REGISTER_NAMES): Add vfp reg names
12046         (ADDITIONAL_REGISTER_NAMES): Ditto.
12047         * aout.h (REGISTER_NAMES): Ditto.
12048         (ADDITIONAL_REGISTER_NAMES): Ditto.
12049         * arm-protos.h: Update/Add Prototypes.
12050         * arm.c (init_fp_table): Rename from init_fpa_table. Update users.
12051         Only allow 0.0 for VFP.
12052         (fp_consts_inited): Rename from fpa_consts_inited.  Update users.
12053         (values_fp): Rename from values_fpa.  Update Users.
12054         (arm_const_double_rtx): Rename from const_double_rtx_ok_for_fpa.
12055         Update users.  Only check valid constants for this hardware.
12056         (arm_float_rhs_operand): Rename from fpa_rhs_operand.  Update Users.
12057         Only allow consts for FPA.
12058         (arm_float_add_operand): Rename from fpa_add_operand.  Update users.
12059         Only allow consts for FPA.
12060         (use_return_insn): Check for saved VFP regs.
12061         (arm_legitimate_address_p): Handle VFP DFmode addressing.
12062         (arm_legitimize_address): Ditto.
12063         (arm_general_register_operand): New function.
12064         (vfp_mem_operand): New function.
12065         (vfp_compare_operand): New function.
12066         (vfp_secondary_reload_class): New function.
12067         (arm_float_compare_operand): New function.
12068         (vfp_print_multi): New function.
12069         (vfp_output_fstmx): New function.
12070         (vfp_emit_fstm): New function.
12071         (arm_output_epilogue): Output VPF reg restore code.
12072         (arm_expand_prologue): Output VFP reg save code.
12073         (arm_print_operand): Add 'P'.
12074         (arm_hard_regno_mode_ok): Return modes for VFP regs.
12075         (arm_regno_class): Return classes for VFP regs.
12076         (arm_compute_initial_elimination_offset): Include space for VFP regs.
12077         (arm_get_frame_size): Ditto.
12078         * arm.h (FIXED_REGISTERS): Add VFP regs.
12079         (CALL_USED_REGISTERS): Ditto.
12080         (CONDITIONAL_REGISTER_USAGE): Enable VFP regs.
12081         (FIRST_VFP_REGNUM): Define.
12082         (LAST_VFP_REGNUM): Define.
12083         (IS_VFP_REGNUM): Define.
12084         (FIRST_PSEUDO_REGISTER): Include VFP regs.
12085         (HARD_REGNO_NREGS): Handle VFP regs.
12086         (REG_ALLOC_ORDER): Add VFP regs.
12087         (enum reg_class): Add VFP_REGS.
12088         (REG_CLASS_NAMES): Ditto.
12089         (REG_CLASS_CONTENTS): Ditto.
12090         (CANNOT_CHANGE_MODE_CLASS) Handle VFP Regs.
12091         (REG_CLASS_FROM_LETTER): Add 'w'.
12092         (EXTRA_CONSTRAINT_ARM): Add 'U'.
12093         (EXTRA_MEMORY_CONSTRAINT): Define.
12094         (SECONDARY_OUTPUT_RELOAD_CLASS): Handle VFP regs.
12095         (SECONDARY_INPUT_RELOAD_CLASS): Ditto.
12096         (REGISTER_MOVE_COST): Ditto.
12097         (PREDICATE_CODES): Add arm_general_register_operand,
12098         arm_float_compare_operand and vfp_compare_operand.
12099         * arm.md (various): Rename as above.
12100         (divsf3): Enable when TARGET_VFP.
12101         (divdf3): Ditto.
12102         (movdfcc): Ditto.
12103         (sqrtsf2): Ditto.
12104         (sqrtdf2): Ditto.
12105         (arm_movdi): Disable when TARGET_VFP.
12106         (arm_movsi_insn): Ditto.
12107         (movsi): Only split with general regs.
12108         (cmpsf): Use arm_float_compare_operand.
12109         (push_fp_multi): Restrict to TARGET_FPA.
12110         (vfp.md): Include.
12111         * vfp.md: New file.
12112         * fpa.md (various): Rename as above.
12113         * doc/md.texi: Document ARM w and U constraints.
12114
12115         2004-01-15  Paul Brook  <paul@codesourcery.com>
12116
12117         * config.gcc: Add with_fpu.  Allow with-float=softfp.
12118         * config/arm/arm.c (arm_override_options): Rename *-s to *s.
12119         Break out of loop when we find a float-abi.  Fix typo.
12120         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "fpu".
12121         Set -mfloat-abi=.
12122         * doc/install.texi: Document --with-fpu.
12123
12124         2003-01-14  Paul Brook  <paul@codesourcery.com>
12125
12126         * config.gcc (with_arch): Add armv6.
12127         * config/arm/arm.h: Rename TARGET_CPU_*_s to TARGET_CPU_*s.
12128         * config/arm/arm.c (arm_overrride_options): Ditto.
12129
12130         2004-01-08  Richard Earnshaw  <rearnsha@arm.com>
12131
12132         * arm.c (FL_ARCH3M): Renamed from FL_FAST_MULT.
12133         (FL_ARCH6): Renamed from FL_ARCH6J.
12134         (arm_arch3m): Renamed from arm_fast_multiply.
12135         (arm_arch6): Renamed from arm_arch6j.
12136         * arm.h: Update all uses of above.
12137         * arm-cores.def: Likewise.
12138         * arm.md: Likewise.
12139
12140         * arm.h (CPP_CPU_ARCH_SPEC): Emit __ARM_ARCH_6J__ define for armV6j,
12141         not arm6j.  Add entry for arch armv6.
12142
12143         2004-01-07  Richard Earnshaw  <rearnsha@arm.com>
12144
12145         * arm.c (arm_emit_extendsi): Delete.
12146         * arm-protos.h (arm_emit_extendsi): Delete.
12147         * arm.md (zero_extendhisi2): Also handle zero-extension of
12148         non-subregs.
12149         (zero_extendqisi2, extendhisi2, extendqisi2): Likewise.
12150         (thumb_zero_extendhisi2): Only match if not v6.
12151         (arm_zero_extendhisi2, thumb_zero_extendqisi2, arm_zero_extendqisi2)
12152         (thumb_extendhisi2, arm_extendhisi2, arm_extendqisi)
12153         (thumb_extendqisi2): Likewise.
12154         (thumb_zero_extendhisi2_v6, arm_zero_extendhisi2_v6): New patterns.
12155         (thumb_zero_extendqisi2_v6, arm_zero_extendqisi2_v6): New patterns.
12156         (thumb_extendhisi2_insn_v6, arm_extendhisi2_v6): New patterns.
12157         (thumb_extendqisi2_v6, arm_extendqisi_v6): New patterns.
12158         (arm_zero_extendhisi2_reg, arm_zero_extendqisi2_reg): Delete.
12159         (arm_extendhisi2_reg, arm_extendqisi2_reg): Delete.
12160         (arm_zero_extendhisi2addsi): Remove subreg.  Add attributes.
12161         (arm_zero_extendqisi2addsi, arm_extendhisi2addsi): Likewise.
12162         (arm_extendqisi2addsi): Likewise.
12163
12164         2003-12-31  Mark Mitchell  <mark@codesourcery.com>
12165
12166         Revert this change:
12167         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
12168         + REG addressing modes.
12169
12170         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
12171         + REG addressing modes.
12172
12173         2003-12-30  Mark Mitchell  <mark@codesourcery.com>
12174
12175         * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept
12176         CONSTANT_P_RTX.
12177
12178         2003-30-12  Paul Brook  <paul@codesourcery.com>
12179
12180         * longlong.h: protect arm inlines with !defined (__thumb__)
12181
12182         2003-30-12  Paul Brook  <paul@codesourcery.com>
12183
12184         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Always define __arm__.
12185
12186         2003-12-30  Nathan Sidwell  <nathan@codesourcery.com>
12187
12188         * builtins.c (expand_builtin_apply_args_1): Fix typo in previous
12189         change.
12190
12191         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
12192
12193         * builtins.c (expand_builtin_apply_args_1): Add pretend args size
12194         to the virtual incoming args pointer for downward stacks.
12195
12196         2003-12-29  Paul Brook  <paul@codesourcery.com>
12197
12198         * config/arm/arm-cores.def: Add cost function.
12199         * config/arm/arm.c (arm_*_rtx_costs): New functions.
12200         (arm_rtx_costs): Remove
12201         (struct processors): Add rtx_costs field.
12202         (all_cores, all_architectures): Ditto.
12203         (arm_override_options): Set targetm.rtx_costs.
12204         (thumb_rtx_costs): New function.
12205         (arm_rtx_costs_1): Remove cases handled elsewhere.
12206         * config/arm/arm.h (processor_type): Add COSTS parameter.
12207
12208         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
12209
12210         * config/arm/arm.md (generic_sched): arm926 has its own scheduler.
12211         (arm926ejs.md): Include it.
12212         * config/arm/arm926ejs.md: New pipeline description.
12213
12214         2003-12-24  Paul Brook  <paul@codesourcery.com>
12215
12216         * config/arm/arm.c (arm_arch6j): New variable.
12217         (arm_override_options): Set it.
12218         (arm_emit_extendsi): New function.
12219         * config/arm/arm-protos.h (arm_emit_extendsi): Add prototype.
12220         * config/arm/arm.h (arm_arch6j): Declare.
12221         * config/arm/arm.md: Add sign/zero extend insns.
12222
12223         2003-12-23  Paul Brook  <paul@codesourcery.com>
12224
12225         * config/arm/arm.c (all_architectures): Add armv6.
12226         * doc/invoke.texi: Document it.
12227
12228         2003-12-19  Paul Brook  <paul@codesourcery.com>
12229
12230         * config/arm/arm.md: Add load1 and load_byte "type" attrs.  Modify
12231         insn patterns to match.
12232         * config/arm/arm-generic.md: Ditto.
12233         * config/arm/cirrus.md: Ditto.
12234         * config/arm/fpa.md: Ditto.
12235         * config/amm/iwmmxt.md: Ditto.
12236         * config/arm/arm1026ejs.md: Ditto.
12237         * config/arm/arm1135jfs.md: Ditto.  Add insn_reservation and bypasses
12238         for 11_loadb.
12239
12240         2003-12-18  Nathan Sidwell  <nathan@codesourcery.com>
12241
12242         * config/arm/arm-protos.h (arm_no_early_alu_shift_value_dep): Declare.
12243         * config/arm/arm.c (arm_adjust_cost): Check shift cost for
12244         TYPE_ALU_SHIFT and TYPE_ALU_SHIFT_REG.
12245         (arm_no_early_store_addr_dep, arm_no_early_alu_shift_dep,
12246         arm_no_early_mul_dep): Correctly deal with conditional execution,
12247         parallels and single shift operations.
12248         (arm_no_early_alu_shift_value_dep): Define.
12249         * arm.md (attr type): Replace 'normal' with 'alu',
12250         'alu_shift' and 'alu_shift_reg'.
12251         (attr core_cycles): Adjust.
12252         (*addsi3_carryin_shift, andsi_not_shiftsi_si, *arm_shiftsi3,
12253         *shiftsi3_compare0, *notsi_shiftsi, *notsi_shiftsi_compare0,
12254         *not_shiftsi_compare0_scratch, *cmpsi_shiftsi, *cmpsi_shiftsi_swp,
12255         *cmpsi_neg_shiftsi, *arith_shiftsi, *arith_shiftsi_compare0,
12256         *arith_shiftsi_compare0_scratch, *sub_shiftsi,
12257         *sub_shiftsi_compare0, *sub_shiftsi_compare0_scratch,
12258         *if_shift_move, *if_move_shift, *if_shift_shift): Set type
12259         attribute appropriately.
12260         * config/arm/arm1026ejs.md (alu_op): Adjust.
12261         (alu_shift_op, alu_shift_reg_op): New.
12262         * config/arm/arm1136.md: Add better bypasses for early
12263         registers. Remove load[234] and store[234] bypasses.
12264         (11_alu_op): Adjust.
12265         (11_alu_shift_op, 11_alu_shift_reg_op): New.
12266
12267         2003-12-15  Nathan Sidwell  <nathan@codesourcery.com>
12268
12269         * config/arm/arm-protos.h (arm_no_early_store_addr_dep,
12270         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Declare.
12271         * config/arm/arm.c (arm_no_early_store_addr_dep,
12272         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Define.
12273         * config/arm/arm1026ejs.md: Add load-store bypass.
12274         * config/arm/arm1136jfs.md (11_alu_op): Take 2 cycles.
12275         Add bypasses between instructions.
12276
12277         2003-12-10  Paul Brook  <paul@codesourcery.com>
12278
12279         * config/arm/arm.c (arm_fpu_model): New variable.
12280         (arm_fload_abi): New variable.
12281         (target_fpe_name): Rename from target_fp_name.
12282         (target_fpu_name): New variable.
12283         (arm_is_cirrus): Remove.
12284         (fpu_desc): New struct.
12285         (all_fpus): Define.
12286         (pf_model_for_fpu): Define.
12287         (all_loat_abis): Define.
12288         (arm_override_options): Set fp arch flags based on -mfpu=
12289         and -float-abi=.
12290         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
12291         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
12292         (*): Use new TARGET_* flags.
12293         * config/arm/arm.h (TARGET_ANY_HARD_FLOAT): Remove.
12294         (TARGET_HARD_FLOAT): No longer implies TARGET_FPA.
12295         (TARGET_SOFT_FLOAT): Ditto.
12296         (TARGET_SOFT_FLOAT_ABI): New.
12297         (TARGET_MAVERICK): Rename from TARGET_CIRRUS.  No longer implies
12298         TARGET_HARD_FLOAT.
12299         (TARGET_VFP): No longer implies TARGET_HARD_FLOAT.
12300         (TARGET_OPTIONS): Add -mfpu=.
12301         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
12302         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
12303         (arm_pf_model): Define.
12304         (arm_float_abi_type): Define.
12305         (fputype): Add FPUTYPE_VFP.  Change SOFT_FPA->NONE
12306         * config/arm/arm.md: Use new TARGET_* flags.
12307         * config/arm/cirrus.md: Ditto.
12308         * config/arm/fpa.md: Ditto.
12309         * config/arm/elf.h (ASM_SPEC): Pass -mfloat-abi= and -mfpu=.
12310         * config/arm/semi.h (ASM_SPEC): Ditto.
12311         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Specify vfp.
12312         (FPUTYPE_DEFAULT): Set to VFP.
12313         * doc/invoke.texi: Document -mfpu= and -mfloat-abi=.
12314
12315         2003-11-22  Phil Edwards  <phil@codesourcery.com>
12316
12317         PR target/12476
12318         * config/arm/arm.c (arm_output_mi_thunk):  In Thumb mode, use
12319         'bx' instead of 'b' to avoid branch range restrictions.  Output
12320         the thunk immediately before the thunked-to function.
12321         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME):  Do not emit
12322         .thumb_func if a thunk is being generated.  Emit .code 16 along
12323         with .thumb_func if a thunk is not being generated.
12324
12325         2003-11-15  Nicolas Pitre <nico@cam.org>
12326
12327         * config/arm/arm.md (ashldi3, arm_ashldi3_1bit, ashrdi3,
12328         arm_ashrdi3_1bit, lshrdi3, arm_lshrdi3_1bit): New patterns.
12329         * config/arm/iwmmxt.md (ashrdi3_iwmmxt): Renamed from ashrdi3.
12330         (lshrdi3_iwmmxt): Renamed from lshrdi3.
12331         * config/arm/arm.c (IWMMXT_BUILTIN2): Renamed argument accordingly.
12332
12333         2003-11-12  Steve Woodford  <scw@wasabisystems.com>
12334             Ian Lance Taylor  <ian@wasabisystems.com>
12335
12336         * config/arm/lib1funcs.asm (ARM_DIV_BODY, ARM_MOD_BODY): Add new
12337         code for __ARM_ARCH__ >= 5 && ! defined (__OPTIMIZE_SIZE__).
12338
12339         2003-11-05  Phil Edwards  <phil@codesourcery.com>
12340
12341         * config/arm/arm.md (insn):  Add new V6 instruction names.
12342         (generic_sched):  New attr.
12343         * config/arm/arm-generic.md:  Use generic_sched here.
12344         * config/arm/arm1026ejs.md:  Do not model fetch/issue/decode
12345         stages of pipeline.  Adjust latency counts accordingly.
12346         * config/arm/arm1136jfs.md:  New file.
12347
12348         2003-10-28  Mark Mitchell  <mark@codesourcery.com>
12349
12350         * config/arm/arm.h (processor_type): New enumeration type.
12351         (CPP_ARCH_DEFAULT_SPEC): Set appropriately for ARM 926EJ-S,
12352         ARM1026EJ-S, ARM1136J-S, and ARM1136JF-S processor cores.
12353         (CPP_CPU_ARCH_SPEC): Likewise.
12354         * config/arm/arm.c (arm_tune): New variable.
12355         (all_cores): Use cores.def.
12356         (all_architectures): Add representative processor.
12357         (arm_override_options): Restructure way in which tuning
12358         information is deduced.
12359         * arm.md: Update "insn" and "type" attributes throughout.
12360         (insn): New attribute.
12361         (type): Compute "mult" from "insn" attribute.  Add load2,
12362         load3, load4 alternatives.
12363         (arm automaton): Move to arm-generic.md.
12364         * config/arm/arm-cores.def: New file.
12365         * config/arm/arm-generic.md: Likewise.
12366         * config/arm/arm1026ejs.md: Likewise.
12367
12368 2004-02-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
12369
12370         * doc/invoke.texi (SPARC options): Remove -mflat and
12371         all -mxxx (xxx:chip) options.
12372         * config/sparc/aout.h (DBX_REGISTER_NUMBER): Delete.
12373         * config/sparc/litecoff.h (DBX_REGISTER_NUMBER): Likewise.
12374         * config/sparc/netbsd-elf.h (DBX_REGISTER_NUMBER): Likewise.
12375         * config/sparc/sol2.h (DBX_REGISTER_NUMBER): Likewise.
12376         * config/sparc/sparc-protos.h: Delete sparc_flat_* prototypes.
12377         * config/sparc/sparc.c: Likewise.
12378         (sparc_output_function_prologue): Remove TARGET_FLAT handling.
12379         (sparc_nonflat_function_prologue): Rename into sparc_function_prologue.
12380         (sparc_output_function_epilogue): Remove TARGET_FLAT handling.
12381         (sparc_nonflat_function_epilogue): Rename into sparc_function_epilogue.
12382         (struct sparc_frame_info, current_frame_info, zero_frame_info): Delete.
12383         (sparc_flat_must_save_register_p): Likewise.
12384         (sparc_flat_compute_frame_size): Likewise.
12385         (sparc_flat_save_restore): Likewise.
12386         (sparc_flat_function_prologue): Likewise.
12387         (sparc_flat_function_epilogue): Likewise.
12388         (sparc_flat_epilogue_delay_slots): Likewise.
12389         (sparc_flat_eligible_for_epilogue_delay): Likewise.
12390         (sparc_function_ok_for_sibcall): Remove TARGET_FLAT handling.
12391         * config/sparc/sparc.h (MASK_FLAT, TARGET_FLAT): Delete.
12392         (TARGET_SWITCHES): Remove -mflat and all -mxxx (xxx:chip) options.
12393         (SPARC_INCOMING_INT_ARG_FIRST): Remove TARGET_FLAT handling.
12394         (CONDITIONAL_REGISTER_USAGE): Likewise.
12395         (FRAME_POINTER_REQUIRED): Likewise.
12396         (INITIAL_ELIMINATION_OFFSET): Likewise.
12397         (BASE_RETURN_VALUE_REG): Likewise.
12398         (BASE_OUTGOING_VALUE_REG): Likewise.
12399         (BASE_PASSING_ARG_REG): Likewise.
12400         (BASE_INCOMING_ARG_REG): Likewise.
12401         (INCOMING_REGNO): Likewise.
12402         (OUTGOING_REGNO): Likewise.
12403         (LOCAL_REGNO): Likewise.
12404         (DELAY_SLOTS_FOR_EPILOGUE): Likewise.
12405         (ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise.
12406         (EPILOGUE_USES): Likewise.
12407         * config/sparc/sparc.md ("isa" attribute): Change "v6" into "v7".
12408         ("flat" attribute): Delete.
12409         (do_builtin_setjmp_setup): Remove TARGET_FLAT and "flat" attribute
12410         handling.
12411         (call followed by jump define_peephole's): Delete.
12412         (exception_receiver): Likewise.
12413         (builtin_setjmp_receiver): Likewise.
12414         * config/sparc/t-sparclite (MULTILIB_OPTIONS): Remove -mflat.
12415
12416 2004-02-03  Paolo Bonzini  <bonzini@gnu.org>
12417
12418         PR c/11658
12419         PR c/13994
12420         * Makefile.in (c-parse.o, c-convert.o, c-typeck.o): Depend
12421         on langhooks.h.
12422         * objc/Make-lang.in (objc-parse.o): Depend on langhooks.h.
12423         * c-parse.in, c-convert.c, c-typeck.c, objc/objc-act.c:
12424         Include langhooks.h.  Replace c_common_truthvalue_conversion
12425         with the truthvalue_conversion language hook throughout.
12426         (expr_no_commas): Call default_conversion before save_expr
12427         for the first term of the production 'x ? : y'.
12428         * c-common.c (c_common_truthvalue_conversion): Remove
12429         obsolete block.  Invoke recursively the hook instead
12430         of this function.
12431         * c-convert.c (convert): handle ERROR_MARK_NODE.
12432         * c-typeck.c (build_binary_op): handle ERROR_MARK_NODE
12433         returned by the truthvalue_conversion language hook.
12434         * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
12435         c_objc_common_truthvalue_conversion.
12436         * c-objc-common.c (c_objc_common_truthvalue_conversion):
12437         New function.
12438         * c-tree.h (c_objc_common_truthvalue_conversion): Declare it.
12439         * objc/objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
12440         c_objc_common_truthvalue_conversion.
12441
12442 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
12443
12444         * config/c4x/c4x.h (FUNCTION_VALUE): Use gen_rtx_REG instead
12445         of gen_rtx.
12446         (LIBCALL_VALUE): Likewise.
12447         * config/ip2k/ip2k.c (mdr_try_propagate_clr_sequence): Use
12448         gen_rtx_CC0 instead of gen_rtx.
12449         * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use
12450         gen_rtx_fmt_e and gen_rtx_fmt_ee instead of gen_rtx.
12451         (m68hc11_expand_compare): Use gen_rtx_fmt_ee instead of
12452         gen_rtx.
12453         (m68hc11_emit_logical): Likewise.
12454
12455 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
12456
12457         * config/alpha/alpha.c, config/arm/arm.c, config/c4x/c4x.c,
12458         config/fr30/fr30.md, config/frv/frv.c, config/frv/frv.md,
12459         config/h8300/h8300.c, config/ia64/ia64.c, config/ip2k/ip2k.md,
12460         config/m32r/m32r.md, config/m68hc11/m68hc11.c,
12461         config/mips/mips.md, config/mmix/mmix.c,
12462         config/mn10300/mn10300.c, config/mn10300/mn10300.md,
12463         config/ns32k/ns32k.c, config/pa/pa.md, config/pdp11/pdp11.c,
12464         config/rs6000/altivec.md, config/s390/s390.c,
12465         config/s390/s390.h, config/s390/s390.md, config/sh/sh.c,
12466         config/sh/sh.h, config/sh/sh.md, config/stormy16/stormy16.c:
12467         Use const0_rtx instead of GEN_INT (0).  Do the same for other
12468         constants that are readily available.
12469
12470 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
12471
12472         * doloop.c, optabs.c, regmove.c, sched-deps.c,
12473         config/i386/i386.c, config/i386/i386.md: Use const0_rtx
12474         instead of GEN_INT (0).  Do the same for other constants that
12475         are readily available.
12476
12477 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
12478
12479         * combine.c (simplify_set): Use gen_rtx_fmt_e instead of
12480         gen_rtx.
12481         * emit-rtl.c (init_emit_once): Use gen_rtx_PC and gen_rtx_CC0
12482         instead of gen_rtx.
12483         * reload1.c (init_elim_table): Use gen_rtx_fmt_e instead of
12484         gen_rtx.
12485         * config/ns32k/ns32k.md (udivmodhi4): Use gen_rtx_IOR and
12486         gen_rtx_ASHIFT instead of gen_rtx.
12487         (udivmodqi4): Likewise.
12488
12489 2004-02-02  Richard Henderson  <rth@redhat.com>
12490
12491         PR target/13789
12492         * expr.c (store_expr): Use force_operand before emit_move_insn.
12493
12494 2004-02-02  Jeff Law  <law@redhat.com>
12495             Roger Sayle  <roger@eyesopen.com>
12496
12497         * tree.c (commutative_tree_code, associative_tree_code): New
12498         functions.
12499         (iterative_hash_expr): Use commutative_tree_code.
12500         * tree.h (commutative_tree_code, associative_tree_code): Declare.
12501         * fold-const.c (operand_equal_p): Use commutative_tree_code
12502         rather than inlining the commutativity check.
12503         (fold): Likewise.
12504
12505 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
12506
12507         * system.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Poison.
12508         * config/frv/frv-protos.h: Remove the prototype for
12509         frv_function_arg_keep_as_reference.
12510         * config/frv/frv.c (frv_function_arg_keep_as_reference):
12511         Remove.
12512         * config/frv/frv.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Likewise.
12513         * config/stormy16/stormy16.h: Remove the commented-out
12514         definition of FUNCTION_ARG_KEEP_AS_REFERENCE.
12515
12516 2004-02-03  Alan Modra  <amodra@bigpond.net.au>
12517
12518         PR target/13914
12519         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Use ap
12520         for retaddr_column.
12521
12522 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
12523
12524         * genemit.c (gen_exp): Generate gen_rtx_fmt_e* instead of
12525         gen_rtx.
12526
12527 2004-02-02  Eric Christopher  <echristo@redhat.com>
12528             Zack Weinberg  <zack@codesourcery.com>
12529
12530         * c-opts.c (c_common_handle_option): Add -finput-charset.
12531         * c.opt: Ditto.
12532         * cppcharset.c (one_iso88591_to_utf8): Remove.
12533         (convert_iso88591_utf8): Ditto.
12534         (conversion_tab): Remove 8859-1 converter.
12535         (_cpp_input_to_utf8): Remove.
12536         (_cpp_init_iconv_buffer): Ditto.
12537         (_cpp_close_iconv_buffer): Ditto.
12538         (_cpp_convert_input): New function.
12539         (_cpp_default_encoding): Ditto.
12540         * cpphash.h: Add/remove prototypes for above.
12541         * cppfiles.c (read_file_guts): Use _cpp_convert_input.
12542         * cppinit.c (cpp_create_reader): Use _cpp_default_encoding
12543         for narrow execution and input character sets.
12544         * cpplib.c (cpp_push_buffer): Delete uses of removed functions.
12545         * doc/cppopts.texi: Document -finput-charset.
12546
12547 2004-02-02  David Edelsohn  <edelsohn@gnu.org>
12548
12549         * rtlanal.c (refers_to_regno_p): Test regno, not inner_regno,
12550         against FIRST_PSEUDO_REGISTER.
12551
12552 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
12553
12554         * doc/invoke.texi (SPARC options): Further improve.
12555
12556 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
12557
12558         * config/arm/arm.md, config/c4x/c4x.md, config/cris/cris.md,
12559         config/h8300/h8300.c, config/ip2k/ip2k.md,
12560         config/iq2000/iq2000.c, config/mips/mips.c,
12561         config/rs6000/rs6000.c, config/rs6000/rs6000.md,
12562         config/sh/sh.c, config/sh/sh.md, config/stormy16/stormy16.c,
12563         config/v850/v850.md: Fix indentation.
12564
12565 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
12566
12567         * config/sparc/sparc.c (function_arg_slotno): Align TImode
12568         arguments on a 16-byte boundary in the parameter array if ARCH64.
12569         Split handling of TFmode.
12570
12571 2004-02-02  Paolo Bonzini  <bonzini@gnu.org>
12572
12573         * rtlanal.c (reg_overlap_mentioned_p) [!ENABLE_CHECKING]:
12574         Don't test CONSTANT_P (x).
12575         (reg_overlap_mentioned_p): Merge check for STRICT_LOWPART,
12576         ZERO_EXTRACT, SIGN_EXTRACT with the switch statement.
12577         Fix misindentation.
12578
12579 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
12580
12581         * doc/invoke.texi (SPARC options): Document that -mflat is deprecated.
12582
12583 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
12584
12585         * config/arc/arc.md, config/arm/arm.c, config/arm/arm.md,
12586         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.md,
12587         config/frv/frv.c, config/h8300/h8300.c, config/ip2k/ip2k.md,
12588         config/iq2000/iq2000.c, config/m32r/m32r.c,
12589         config/mcore/mcore.c, config/mips/mips.c, config/mmix/mmix.md,
12590         config/mn10300/mn10300.c, config/rs6000/rs6000.c,
12591         config/rs6000/rs6000.md, config/sh/sh.c, config/sh/sh.md,
12592         config/stormy16/stormy16.c, config/v850/v850.md,
12593         config/xtensa/xtensa.c: Replace gen_rtx with gen_rtx_fmt_e*.
12594
12595 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
12596
12597         * config/mcore/mcore.c (block_move_sequence): Replace
12598         gen_rtx_CONST_INT with GEN_INT.
12599
12600 2004-02-02  Jan Hubicka  <jh@suse.cz>
12601
12602         * alias.c (record_set): Use hard_regno_nregs.
12603         * bt-load.c (find_btr_reference, note_btr_set): Likewise.
12604         * builtins.c (apply_args_size): Likewise.
12605         * caller-save.c (setup_save_areas, save_call_clobbered_regs,
12606         mark_set_regs, add_stored_regs, mark_referenced_regs,
12607         insert_restore, insert_save, insert_one_insn): Likewise.
12608         * cfgcleanup.c: Include regs.h
12609         (mark_effect, mentions_nonequal_regs): Likewise.
12610         * cfgrtl.c (mark_killed_regs): Likewise
12611         * combine.c (update_table_tick, record_value_for_reg,
12612         record_dead_and_set_regs, get_last_value_validate, use_crosses_set_p,
12613         reg_dead_at_p_1, reg_dead_at_p, mark_used_regs_combine, move_deaths,
12614         reg_bitfield_target_p, distribute_notes): Likewise.
12615         * cse.c (mention_regs, insert, invalidate, invalidate_for_call,
12616         exp_equiv_p, cse_insn): Likewise.
12617         * cselib.c (cselib_lookup): Likewise.
12618         (cselib_invalidate_regno, cselib_record_set): Likewise.
12619         * df.c (df_ref_record): Likewise.
12620         * dwarf2out.c (reg_loc_descriptor, multiple_reg_loc_descriptor):
12621         Likewise.
12622         * flow.c (mark_reg, insn_dead_p, mark_set_1, mark_used_reg,
12623         count_or_remove_death_notes_bb): Likewise.
12624         * function.c (aggregate_value_p, keep_stack_depressed): Likewise.
12625         * gloval.c (global_alloc, find_reg, mark_reg_store, mark_reg_conflicts,
12626         mark_reg_death, set_preference, reg_becomes_live, reg_dies): Likewise.
12627         * integrate.c (mark_stores): Likewise.
12628         * jump.c (delete_prior_computation): Likewise.
12629         * lcm.c (reg_dies, reg_becomes_live): Likewise.
12630         * local-alloc.c (combine_regs, find_free_reg, post_mark_life): Likewise.
12631         * loop.c (LOOP_REGNO_NREGS): Likewise.
12632         * postreload.c (reload_combine, reload_combine_note_store,
12633         reload_combine_note_use, reload_cse_move2add, move2add_note_store): Likewise.
12634         * ra-colorize.c (combine, color_usable_p, get_free_reg,
12635         calculate_dont_begin, calculate_dont_begin, colorize_one_web,
12636         try_recolor_web, insert_coalesced_conflicts, check_colors,
12637         break_precolored_alias): Likewise.
12638         * ra-debug.c: Include regs.h
12639         (ra_print_rtx_object): Likewise.
12640         * ra-rewrite (choose_spill_colors): Likewise.
12641         (spill_same_color_p, update_spill_colors, spill_is_free): Likewise.
12642         * ra.c (init_ra): Likewise.
12643         * recog.c (reg_fits_class_p, peep2_reg_dead_p,
12644         peep2_find_free_register): Likewise.
12645         * reg-stack.c (subst_stack_regs_pat, convert_regs_exit): Likewise.
12646         * regclass.c (hard_regno_nregs): New array.
12647         (init_reg_modes_once): Initialize it.
12648         (choose_hard_reg_mode): Use it.
12649         (record_reg_classes): Likewise.
12650         * regmove.c (mark_flags_life_zones): Likewise.
12651         * regrename.c (note_sets, clear_dead_regs, regrename_optimize,
12652         scan_rtx_reg, dump_def_use_chain, kill_value, set_value_regno,
12653         copy_value, maybe_mode_change, find_oldest_value_reg,
12654         copyprop_hardreg_forward_1):
12655         * regs.h (hard_regno_nregs): Declare.
12656         * realod.c (reload_inner_reg_of_subreg): Use it.
12657         (push_reload, combine_reloads, find_dummy_reload,
12658         hard_reg_set_here_p, operands_match_p, decompose, find_reloads,
12659         refers_to_regno_for_reload_p, find_equiv_reg, regno_clobbered_p,
12660         reload_adjust_reg_for_mode): Likewise.
12661         * reload1.c (compute_use_by_pseudos, count_pseudo,
12662         count_spilled_pseudo, find_reg, find_reload_regs, mark_home_live,
12663         spill_hard_reg, forget_old_reloads_1, mark_reload_reg_in_use,
12664         clear_reload_reg_in_use, reload_reg_free_for_value_p, free_for_value_p
12665         allocate_reload_reg, choose_reload_regs, emit_reload_insns,
12666         delete_output_reload): Likewise.
12667         * resource.c (update_live_status, mark_referenced_resources,
12668         mark_set_resources, mark_target_live_regs): Likewise.
12669         * rtlanal.c:  Include regs.h
12670         (refers_to_regno_p, reg_overlap_mentioned_p, dead_or_set_p,
12671         dead_or_set_regno_p, find_regno_note, find_reg_fusage,
12672         subreg_regno_offset, subreg_offset_representable_p,
12673         hoist_test_store): Likewise.
12674         * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
12675         * sched-rgn.c (check_live_1, update_live_1): Likewise.
12676         * stmt.c: Include regs.h
12677         (decl_conflicts_with_clobbers_p): Likewise.
12678         * varasm.c (make_decl_rtl): Likewise.
12679         * Makefile.in (cfgcleanup.o, rtlanal.o, ra-debug.o): Add regs.h dependnecy.
12680
12681 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
12682
12683         * config/arm/arm.c, config/arm/arm.h, config/arm/arm.md,
12684         config/arm/linux-gas.h, config/arm/netbsd-elf.h,
12685         config/arm/netbsd.h, config/arm/pe.c, config/avr/avr.c,
12686         config/avr/avr.h, config/avr/avr.md, config/c4x/c4x.h,
12687         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
12688         config/frv/frv.h, config/ip2k/ip2k.c, config/iq2000/iq2000.c,
12689         config/iq2000/iq2000.h, config/m32r/m32r.c,
12690         config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
12691         config/m68hc11/m68hc11.md, config/m68k/m68k.md,
12692         config/mcore/mcore.c, config/mcore/mcore.h,
12693         config/mcore/mcore.md, config/mips/mips.c,
12694         config/ns32k/ns32k.h, config/ns32k/ns32k.md,
12695         config/rs6000/rs6000.c, config/s390/s390.c,
12696         config/s390/s390.md, config/sparc/sparc.c, config/v850/v850.c,
12697         config/xtensa/xtensa.h, config/xtensa/xtensa.md: Replace
12698         "gen_rtx (FOO, " with "gen_rtx_FOO (".
12699
12700 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
12701
12702         * config/h8300/h8300.md (two peephole2's): New.
12703
12704 2004-02-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
12705
12706         * config/sparc/sol2-bi.h: Handle TARGET_CPU_ultrasparc3.
12707         (CPP_CPU_SPEC): Handle -mcpu=ultrasparc3.
12708         (ASM_CPU_SPEC): Likewise
12709         * config/sparc/sol2.h: Handle TARGET_CPU_ultrasparc3.
12710         (ASM_CPU_SPEC): Remove -mcpu=v8plus.  Handle -mcpu=ultrasparc3.
12711
12712 2004-02-01  Roger Sayle  <roger@eyesopen.com>
12713
12714         * builtins.c (expand_builtin_pow): If flag_unsafe_math_optimizations
12715         isn't set, don't call expand_builtin_mathfn_2 to use the pow optab.
12716         (expand_builtin): Always call expand_builtin_pow.
12717
12718 2004-02-01  Roger Sayle  <roger@eyesopen.com>
12719
12720         * builtins.def (BUILT_IN_SIGNBIT, BUILT_IN_SIGNBITF,
12721         BUILT_IN_SIGNBITL): New GCC builtins.
12722         * builtins.c (expand_builtin_signbit): New function to RTL expand
12723         calls to signbit, signbitf and signbitl as inline intrinsics.
12724         (expand_builtin): Call expand_builtin_signbit for BUILT_IN_SIGNBIT*.
12725         (fold_builtin_signbit): New function to perform constant folding
12726         of signbit, signbitf and signbitl.
12727         (fold_builtin): Call fold_builtin_signbit for BUILT_IN_SIGNBIT*.
12728
12729         * doc/extend.texi: Document new signbit{,f,l} builtins.
12730
12731 2004-02-01  Richard Sandiford  <rsandifo@redhat.com>
12732
12733         * config/mips/mips.md (adddi3_internal_2): Remove superfluous %s.
12734
12735 2004-02-01  Chris Demetriou  <cgd@broadcom.com>
12736
12737         * config/mips/mips.h (PREDICATE_CODES): Remove entries for
12738         "mips_const_double_ok" and "simple_memory_operand", which were
12739         removed from the MIPS port with the mips-3_4-rewrite branch merge.
12740         * config/mips/mips.c (mips16_lay_out_constants): Update comment
12741         for removal of simple_memory_operand.
12742
12743 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
12744
12745         * config/c4x/c4x.md: Use GEN_INT instead of
12746         gen_rtx (CONST_INT, ...).
12747
12748 2004-01-31  Richard Henderson  <rth@redhat.com>
12749
12750         * varasm.c (output_constant_pool): Don't zap the pool.
12751
12752 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
12753
12754         * genrecog.c (decision_type): Add DT_const_int.
12755         (write_cond) [DT_const_int]: Print a comparison against small
12756         constant.
12757         (write_node): Simplify comparisons against small constants
12758         before printing tests.
12759
12760 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
12761
12762         * config/m32r/m32r.c (m32r_load_pic_register): Use GEN_INT
12763         instead of gen_rtx_CONST_INT.
12764
12765 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
12766
12767         * config/xtensa/xtensa.h (DYNAMIC_CHAIN_ADDRESS): Use GEN_INT
12768         instead of gen_rtx_CONST_INT.
12769
12770 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
12771
12772         * target-def.h (TARGET_STRICT_ARGUMENT_NAMING): Define as
12773         hook_bool_CUMULATIVE_ARGS_false.
12774         * targhooks.c (default_strict_argument_naming): Rename to
12775         hook_bool_CUMULATIVE_ARGS_false.
12776         * targhooks.h: Update the prototype for
12777         default_strict_argument_naming.
12778
12779 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
12780
12781         * config/sh/sh.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
12782         * config/sh/sh.h: Likewise.
12783         * config/sh/sh.md: Likewise.
12784
12785 2004-01-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
12786
12787         * doc/invoke.texi (SPARC options): Restructure and update.
12788
12789 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
12790
12791         * system.h (PROMOTE_FUNCTION_ARGS, STRUCT_VALUE_INCOMING, and
12792         STRICT_ARGUMENT_NAMING): Poison.
12793         * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS): Define as
12794         hook_bool_tree_false.
12795         * targhooks.c (default_promote_function_args): Remove.
12796         (default_struct_value_rtx): Don't use STRUCT_VALUE_INCOMING.
12797         Don't check incoming.
12798         (default_strict_argument_naming): Don't use
12799         STRICT_ARGUMENT_NAMING.
12800         * targhooks.h: Remove the prototype for
12801         default_promote_function_args.
12802
12803 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
12804
12805         * config/i386/i386-protos.h: Remove the prototype for
12806         ix86_setup_incoming_varargs.
12807         * config/i386/i386.c (TARGET_SETUP_INCOMING_VARARGS): New.
12808         (ix86_setup_incoming_varargs): Make it static.
12809         * config/i386/i386.h (SETUP_INCOMING_VARARGS): Remove.
12810
12811 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
12812
12813         * alloc-pool.c: Fix comment typos.
12814         * builtin-types.def: Likewise.
12815         * builtins.def: Likewise.
12816         * c-pretty-print.c: Likewise.
12817         * df.h: Likewise.
12818         * reload1.c: Likewise.
12819
12820 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
12821
12822         * doc/invoke.texi: Follow spelling conventions.
12823         * doc/tm.texi: Likewise.
12824
12825 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
12826
12827         * doc/install.texi: Fix typos.
12828         * doc/invoke.texi: Likewise.
12829
12830 2004-01-31  Ulrich Weigand  <uweigand@de.ibm.com>
12831
12832         * config/s390/s390.c (s390_decompose_address): Do not treat virtual
12833         registers as pointers.
12834         * config/s390/s390.md ("*la_31" second peephole2): Fix incorrect mode.
12835
12836 2004-01-31  Paolo Bonzini  <bonzini@gnu.org>
12837
12838         * combine.c (cse_main): Set gen_lowpart to gen_lowpart_for_combine
12839         and restore it to gen_lowpart_general on exit.
12840         (gen_lowpart_for_combine): Adjust all callers to go through
12841         gen_lowpart.
12842         * cse.c (cse_main): Set gen_lowpart to gen_lowpart_if_possible
12843         and restore it to gen_lowpart_general on exit.
12844         (gen_lowpart_if_possible): Adjust all callers to go through
12845         gen_lowpart.
12846         * emit-rtl.c (gen_lowpart_general): New name of gen_lowpart.
12847         (gen_lowpart): Declare as pointer to function, initialized to
12848         gen_lowpart_general.
12849         * rtl.h (gen_lowpart): Declare as pointer to function.
12850
12851 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
12852
12853         * bt-load.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
12854         * calls.c: Likewise.
12855         * emit-rtl.c: Likewise.
12856         * function.c: Likewise.
12857         * reload1.c: Likewise.
12858         * config/i386/cygming.h: Likewise.
12859         * config/i386/i386.c: Likewise.
12860         * config/i386/winnt.c: Likewise.
12861
12862 2004-01-30  Dara Hazeghi  <dhazeghi@yahoo.com>
12863
12864         PR bootstrap/9249
12865         * doc/install.texi: document --enable-__cxa_atexit option.
12866         * configure.ac: Disable __cxa_atexit if not supported.
12867         * configure: Regenerate.
12868
12869 2003-01-30  Daniel Berlin  <dberlin@dberlin.org>
12870
12871         * ggc-zone.c (ggc_free): New function.
12872
12873 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
12874
12875         alloc-pool.c, c-lex.c, c-pragma.h, c-semantics.c, cfghooks.c,
12876         cfghooks.h, cfglayout.c, cfgloopmanip.c, debug.c, debug.h,
12877         flow.c, genextract.c, ggc-common.c, ggc-page.c, ggc.h,
12878         ifcvt.c, jump.c, loop-unswitch.c, timevar.c, timevar.def,
12879         tree-optimize.c, vmsdbgout.c, config/fp-bit.c,
12880         config/alpha/alpha.c, config/alpha/alpha.h,
12881         config/alpha/alpha.md, config/alpha/unicosmk.h,
12882         config/alpha/vms.h, config/arm/linux-elf.h, config/avr/avr.c,
12883         config/c4x/c4x-protos.h, config/c4x/c4x.md,
12884         config/d30v/d30v.h, config/frv/frv.md, config/frv/frvbegin.c,
12885         config/frv/frvend.c, config/i386/cygming.h,
12886         config/i386/djgpp.h, config/i386/emmintrin.h,
12887         config/i386/gthr-win32.c, config/i386/i386-interix.h,
12888         config/i386/i386-protos.h, config/i386/openbsd.h,
12889         config/i386/winnt.c, config/i386/xm-mingw32.h,
12890         config/i386/xmmintrin.h, config/ia64/ia64.md,
12891         config/iq2000/iq2000.md, config/m32r/m32r.md,
12892         config/m68k/m68k.md, config/mcore/mcore-elf.h,
12893         config/mcore/mcore.md, config/mips/elf.h, config/mips/elf64.h,
12894         config/mips/iris5gas.h, config/mips/iris6.h,
12895         config/mips/iris6gas.h, config/mips/linux.h,
12896         config/mips/mips.md, config/mips/netbsd.h,
12897         config/mips/openbsd.h, config/mips/windiss.h,
12898         config/pa/fptr.c, config/rs6000/aix.h,
12899         config/rs6000/altivec.h, config/rs6000/darwin.h,
12900         config/rs6000/xcoff.h, config/s390/s390-protos.h,
12901         config/s390/s390.c, config/s390/s390.h, config/s390/s390.md,
12902         config/sh/netbsd-elf.h, config/sh/sh.h, config/sh/vxworks.h,
12903         config/sparc/sol2.h: Update copyright.
12904
12905 2004-01-30  Kelley Cook  <kcook@gcc.gnu.org>
12906
12907         * Makefile.in (abs_docdir, abs_srcdir): Define.
12908         (doc/%.dvi, doc/gccinstall.dvi): Use $(abs_docdir).
12909
12910 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
12911
12912         * genconfig.c (main): Have CC0_P check its operand even on a
12913         target without cc0.
12914
12915 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
12916
12917         * config/alpha/alpha.c: Remove mentions of deprecates macros
12918         in comments, remove some target-independent comments about target
12919         macros, and/or add minimal function comments for target hook
12920         implementations.
12921         * config/avr/avr.c: Likewise.
12922         * config/ia64/ia64.h: Likewise.
12923         * config/ip2k/ip2k.c: Likewise.
12924         * config/iq2000/iq2000.c: Likewise.
12925         * config/m32r/m32r.h: Likewise.
12926         * config/m68hc11/m68hc11.c: Likewise.
12927         * config/mcore/mcore.c: Likewise.
12928         * config/mmix/mmix.c: Likewise.
12929         * config/mn10300/mn10300.c: Likewise.
12930         * config/pa/pa.c: Likewise.
12931         * config/pdp11/pdp11.c: Likewise.
12932         * config/rs6000/rs6000.h: Likewise.
12933         * config/sh/sh.c: Likewise.
12934         * config/sh/sh.h: Likewise.
12935         * config/sparc/sparc.c: Likewise.
12936         * config/sparc/sparc.h: Likewise.
12937         * config/stormy16/stormy16.c: Likewise.
12938         * config/xtensa/xtensa.c: Likewise.
12939
12940 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
12941
12942         PR optimization/12147
12943         * reload1.c (reload_reg_free_p): RELOAD_OTHER conflicts with
12944         RELOAD_FOR_OPADDR_ADDR.
12945         (reload_reg_reaches_end_p): RELOAD_FOR_OTHER_ADDRESS register
12946         might be reused as RELOAD_FOR_OPADDR_ADDR register.
12947
12948 2004-01-30  Jan Hubicka  <jh@suse.cz>
12949
12950         * reload.c (get_secondary_mem): Fix updating of
12951         secondary_memlocs_elim_used.
12952
12953 2004-01-30  Richard Henderson  <rth@redhat.com>
12954
12955         * varasm.c (struct rtx_const, struct pool_constant): Remove.
12956         (MAX_RTX_HASH_TABLE): Remove.
12957         (const_rtx_hash_table, const_rtx_sym_hash_table): Remove.
12958         (first_pool, last_pool, pool_offset): Remove.
12959         (struct rtx_constant_pool): Split out from ...
12960         (struct varasm_status): ... here.  Reference one via pointer.
12961         (struct constant_descriptor_rtx): Merge struct pool_constant.
12962         (SYMHASH): Remove.
12963         (decode_rtx_const): Remove.
12964         (const_hash_rtx, compare_constant_rtx): Remove.
12965         (record_constant_rtx): Remove.
12966         (const_desc_rtx_hash, const_desc_rtx_eq): New.
12967         (const_desc_rtx_sym_hash, const_desc_rtx_sym_eq): New.
12968         (const_rtx_hash_1, const_rtx_hash): New.
12969         (init_varasm_status): Allocate a rtx_constant_pool, and its hashes.
12970         (simplify_subtraction): Use simplify_rtx.
12971         (force_const_mem): Rewrite to use new data structures.
12972         (find_pool_constant): Likewise.
12973         (get_pool_constant, get_pool_constant_mark,
12974         get_pool_constant_for_function, get_pool_mode,
12975         get_pool_mode_for_function, get_pool_offset, get_pool_size): Likewise.
12976         (output_constant_pool_2): Split out from output_constant_pool.
12977         (output_constant_pool_1): Likewise.  Use new pool datastructures.
12978         (output_constant_pool): Zap entire pool datastructure.
12979         (mark_constant): Use new pool datastructures.
12980         (mark_constants): Use for_each_rtx.
12981         (mark_constant_pool): Use new pool datastructures.
12982
12983 2004-01-30  Fariborz Jahanian <fjahanian@apple.com>
12984
12985         * config/rs6000/rs6000.c (rs6000_emit_move): Remove #if 0.
12986         Copy operands[1] to pseudo for simplify_gen_subreg.
12987
12988 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
12989
12990         * gcse.c (bypass_block): Fix a typo in the previous check-in
12991         to the file.
12992
12993 2004-01-30  Andrew Pinski <pinskia@physics.uc.edu>
12994
12995         * toplev.c: Include alloc-pool.h.
12996         * Makefile.in (toplev.c): Update dependencies.
12997
12998 2004-01-30  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12999
13000         * combine.c (simplify_shift_const, case XOR): Be careful when
13001         commuting XOR with ASHIFTRT.
13002
13003 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
13004             Eric Botcazou  <ebotcazou@libertysurf.fr>
13005
13006         * config/sparc/sparc-protos.h: Remove the prototype for
13007         sparc_builtin_saveregs.
13008         * config/sparc/sparc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
13009         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
13010         (TARGET_PROMOTE_PROTOTYPES): Likewise.
13011         (TARGET_STRUCT_VALUE_RTX): Likewise.
13012         (TARGET_RETURN_IN_MEMORY): Likewise.
13013         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
13014         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
13015         (sparc_builtin_saveregs): Make it static.
13016         (sparc_promote_prototypes): New.
13017         (sparc_struct_value_rtx): Likewise.
13018         (sparc_return_in_memory): Likewise.
13019         * config/sparc/sparc.h: (PROMOTE_FUNCTION_ARGS): Remove.
13020         (PROMOTE_FUNCTION_RETURN): Likewise.
13021         (RETURN_IN_MEMORY): Likewise.
13022         (STRUCT_VALUE): Likewise.
13023         (STRUCT_VALUE_INCOMING): Likewise.
13024         (EXPAND_BUILTIN_SAVEREGS): Likewise.
13025         (STRICT_ARGUMENT_NAMING): Likewise.
13026         (PROMOTE_PROTOTYPES): Likewise.
13027
13028         * config/sparc/sparc.h (PROMOTE_MODE): Use word_mode.
13029
13030 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
13031
13032         PR c/12818
13033         * varasm.c (const_hash_1) <STRING_CST>: Use the
13034         address to compute the hash value if flag_writable_strings.
13035         (compare_constant) <STRING_CST>: Compare the addresses
13036         if flag_writable_strings.
13037         (build_constant_desc): Do not copy the expression for a
13038         STRING_CST if flag_writable_strings.
13039
13040 2004-01-30  Jan Hubicka  <jh@suse.cz>
13041
13042         * alloc-pool.c: Include hashtab.h
13043         (alloc_pool_descriptor): New structure
13044         (alloc_pool_hash): New global variable.
13045         (hash_descriptor, eq_descriptor, alloc_pool_descriptor): New.
13046         (create_alloc_pool): Update statistics.
13047         (free_alloc_pool): Likewise.
13048         (pool_alloc): Likewise.
13049         (output_info): New structure
13050         (print_statistics, dump_alloc_pool_statistics): New function.
13051         * alloc-pool.h (alloc_pool_def): Turn name to be constant.
13052         (dump_alloc_pool_statistics): Declare.
13053         * toplev.c (finalize):  Dump statistics.
13054
13055         * reload.c (secondary_memlocs_elim_used): New static variable.
13056         (get_secondary_mem): Update it.
13057         (find_reloads): Use it.
13058
13059 2004-01-30  Steven Bosscher <s.bosscher@student.tudelft.nl>
13060
13061         * toplev.c: Fix broken checkin of 2003-12-30, again.
13062
13063 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
13064
13065         * configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for
13066         s390*-*-* targets by specifying a 'nop' insn.
13067         * configure: Regenerate.
13068
13069 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
13070
13071         PR target/11475
13072         * config/sparc/sparc.md (movhi_lo_sum): Tighten predicates.
13073
13074 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
13075
13076         * emit-rtl.c (change_address): Use XEXP (memref, 0) instead
13077         of addr when creating MEM copy.
13078
13079 2004-01-29  Devang Patel  <dpatel@apple.com>
13080
13081         * dwarf2out.c (gen_field_die): Do not equate decl number to die.
13082
13083 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
13084
13085         PR inline-asm/6162
13086         * reload.c (find_reloads): Only support one pair of commutative
13087         operands.
13088
13089 2004-01-29  Roger Sayle  <roger@eyesopen.com>
13090
13091         PR java/13824
13092         * tree.c (unsafe_for_reeval): Handle EXIT_BLOCK_EXPR nodes specially
13093         as their EXIT_BLOCK_LABELED_BLOCK operands can lead to unbounded
13094         recursion.
13095
13096 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
13097
13098         * config/frv/frv.c: Don't mention deprecated macros in
13099         comments.  Remove some target-independent comments about
13100         target macros.
13101         * config/frv/frv.h: Likewise.
13102
13103 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
13104
13105         * cfghooks.c (split_block): Set probability and count of the
13106         new edge.
13107
13108 2005-01-29  Josef Zlomek  <zlomekj@suse.cz>
13109
13110         * dwarf2out.c (struct die_struct): Added field decl_id.
13111         (decl_die_table): Changed to hash table.
13112         (decl_die_table_allocated): Deleted.
13113         (decl_die_table_in_use): Deleted.
13114         (DECL_DIE_TABLE_INCREMENT): Deleted.
13115         (decl_die_table_hash): New function.
13116         (decl_die_table_eq): New function.
13117         (lookup_decl_die): Lookup in a hash table.
13118         (equate_decl_number_to_die): Insert into a hash table.
13119         (dwarf2out_init): Init hash table decl_die_table.
13120
13121 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
13122
13123         PR optimization/13424
13124         * expr.c (store_constructor): Revert 2003-12-03 change.
13125
13126         * emit-rtl.c (change_address): Check also if MEM_ATTRS is set as
13127         expected before returning early.  Avoid sharing RTL if they
13128         need to be changed.
13129
13130         * config/i386/i386.c (ix86_expand_movstr): Rework rep_mov and strmov
13131         handling so that memory attributes are preserved.  Don't call
13132         ix86_set_move_mem_attrs.
13133         (ix86_set_move_mem_attrs_1, ix86_set_move_mem_attrs): Removed.
13134         (ix86_expand_clrstr): Rename src argument to
13135         dst.  Rework rep_stos and strset handling so that memory attributes
13136         are preserved.
13137         (ix86_expand_strlen): Pass src argument to
13138         ix86_expand_strlensi_unroll_1.  Rework strlenqi_1 handling so that
13139         memory attributes are preserved.
13140         (ix86_expand_strlensi_unroll_1): Add src argument.  Use
13141         change_address instead of gen_rtx_MEM.
13142         * config/i386/i386.md (strmov, strmov_singleop, rep_mov): New
13143         expanders.
13144         (strmovdi_rex64, strmovsi, strmovsi_rex64, strmovhi, strmovhi_rex64,
13145         strmovqi, strmovqi_rex64): Remove.
13146         (rep_mov*, strmov*): Prefix insn names with *.
13147         (strset, strset_singleop, rep_stos): New expanders.
13148         (strsetdi_rex64, strsetsi, strsetsi_rex64, strsethi, strsethi_rex64,
13149         strsetqi, strsetqi_rex64): Remove.
13150         (rep_stos*, strset*): Prefix insn names with *.
13151         (rep_stosqi_rex64): Likewise.  Fix mode of dirflag reg from DImode
13152         to SImode.
13153         (cmpstrsi): Rework cmpstrqi_1 handling so that memory attributes
13154         are preserved.
13155         (cmpstrqi_nz_1, cmpstrqi_nz_rex_1, cmpstrqi_1, cmpstrqi_rex_1):
13156         Prefix insn names with *.
13157         (cmpstrqi_nz_1, cmpstrqi_1): New expanders.
13158         (strlenqi_1, strlenqi_rex_1): Prefix insn names with *.
13159         (strlenqi_1): New expander.
13160         * config/i386/i386.h (ix86_set_move_mem_attrs): Remove prototype.
13161
13162 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
13163
13164         * Makefile.in (cfghooks.o): Add TIMEVAR_H and toplev.h dependency.
13165         * basic-block.h (tidy_fallthru_edge, tidy_fallthru_edges, dump_bb,
13166         verify_flow_info): Declaration removed.
13167         * cfg.c (verify_flow_info, dump_bb): Moved to cfghooks.c.
13168         (debug_bb, debug_bb_n): Add argument to dump_bb call.
13169         * cfgcleanup.c (try_simplify_condjump, try_crossjump_to_edge,
13170         try_optimize_cfg, delete_unreachable_blocks): Use delete_basic_block
13171         instead of delete_block.
13172         * cfghooks.c: Include timevar.h and toplev.h.
13173         (cfg_hooks): Define here.
13174         (verify_flow_info, dump_bb): Moved from cfg.c.
13175         (redirect_edge_and_branch, redirect_edge_and_branch_force,
13176         split_block, split_block_after_labels, move_block_after,
13177         delete_basic_block, split_edge, create_basic_block,
13178         create_empty_bb, can_merge_blocks_p, merge_blocks,
13179         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
13180         New functions.
13181         * cfghooks.h (struct cfg_hooks): Added fields name,
13182         make_forwarder_block, tidy_fallthru_edge and
13183         move_block_after. Changed type of verify_flow_info, dump_bb,
13184         split_block fields. Renamed cfgh_split_edge and delete_block
13185         fields.
13186         (redirect_edge_and_branch, redirect_edge_and_branch_force,
13187         split_block, delete_block, split_edge, create_basic_block,
13188         can_merge_blocks_p, merge_blocks): Macros removed.
13189         (cfg_hooks): Do not export.
13190         (verify_flow_info, dump_bb, redirect_edge_and_branch,
13191         redirect_edge_and_branch_force, split_block, split_block_after_labels,
13192         move_block_after, delete_basic_block, split_edge, create_basic_block,
13193         create_empty_bb, can_merge_blocks_p, merge_blocks,
13194         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
13195         Declare.
13196         (cfg_layout_rtl_cfg_hooks): Declare.
13197         * cfgloop.c (update_latch_info, mfb_keep_just, mfb_keep_nonlatch):
13198         New functions.
13199         (canonicalize_loop_headers): Use new semantics of make_forwarder_block.
13200         (redirect_edge_with_latch_update): Removed.
13201         (make_forwarder_block): Moved to cfghooks.c, semantics changed.
13202         * cfgloopmanip.c (remove_bbs): Do not update dominators here.
13203         * cfgrtl.c (cfg_layout_split_block, rtl_split_block, rtl_dump_bb,
13204         rtl_delete_block, rtl_split_block, rtl_merge_blocks,
13205         tidy_fallthru_edge, rtl_split_edge, cfg_layout_delete_block,
13206         cfg_layout_merge_blocks, cfg_layout_split_edge): Partly moved to
13207         cfghooks.c.
13208         (rtl_create_basic_block): Coding style fix.
13209         (rtl_tidy_fallthru_edge, rtl_move_block_after,
13210         rtl_make_forwarder_block): New functions.
13211         (update_cfg_after_block_merging): Removed.
13212         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hooks): Fill in new entries.
13213         * flow.c (verify_wide_reg, verify_local_live_at_start): Add argument
13214         to dump_bb.
13215         * ifcvt.c (merge_if_block, find_cond_trap, find_if_case_1,
13216         find_if_case_2): Don't update dominators.
13217         * timevar.def (TV_CFG_VERIFY): New.
13218         * loop-unswitch.c (unswitch_loop): Don't call add_to_dominance_info.
13219         * cfglayout.c (copy_bbs): Don't call add_to_dominance_info.
13220         * cfgloopmanip.c (split_loop_bb): Don't update dominators.
13221         (remove_bbs): Don't call remove_bbs.
13222         (create_preheader): Use make_forwarder_block.
13223         (mfb_keep_just, mfb_update_loops): New static functions.
13224
13225 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
13226
13227         * config/avr/avr.h: Remove target-independent comments about
13228         target macros.
13229
13230 2004-01-28  Daniel Berlin  <dberlin@dberlin.org>
13231
13232         * timevar.c (timevar_print): Mention when checking is enabled.
13233
13234 2004-01-28  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
13235
13236         * c-lex.c (c_lex): Rename to...
13237         (c_lex_with_flags): Add new parameter to get CPP flags.
13238         (c_lex): Thunk to c_lex_with_flags while keeping the old interface.
13239         * c-pragma.h (c_lex_with_flags): Declare.
13240
13241 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13242
13243         * config/mcore/mcore.c (mcore_external_libcall): Add a
13244         comment.
13245         (mcore_return_in_memory): Likewise.
13246
13247 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13248
13249         * config/mcore/mcore-protos.h: Remove the prototype for
13250         mcore_setup_incoming_varargs.
13251         * config/mcore/mcore.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
13252         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
13253         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
13254         (TARGET_PROMOTE_PROTOTYPES): Likewise.
13255         (TARGET_STRUCT_VALUE_RTX): Likewise.
13256         (TARGET_RETURN_IN_MEMORY): Likewise.
13257         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
13258         (mcore_setup_incoming_varargs): Make it static.  Receive the
13259         first argument by reference.  Add argument second_time.
13260         (mcore_external_libcall): New.
13261         (mcore_return_in_memory): Likewise.
13262         * config/mcore/mcore.h (PROMOTE_FUNCTION_ARGS): New.
13263         (PROMOTE_FUNCTION_RETURN): Likewise.
13264         (STRUCT_VALUE): Likewise.
13265         (RETURN_IN_MEMORY): Likewise.
13266         (SETUP_INCOMING_VARARGS): Likewise.
13267         (PROMOTE_PROTOTYPES): Likewise.
13268         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
13269
13270 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13271
13272         * config/m32r/m32r-protos.h: Remove the prototype for
13273         m32r_setup_incoming_varargs.
13274         * config/m32r/m32r.c (TARGET_PROMOTE_PROTOTYPES): New.
13275         (TARGET_STRUCT_VALUE_RTX): Likewise.
13276         (TARGET_RETURN_IN_MEMORY): Likewise.
13277         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
13278         (m32r_return_in_memory): New.
13279         (m32r_setup_incoming_varargs): Make it static.
13280         * config/m32r/m32r.h: Remove #undef of
13281         ASM_OUTPUT_EXTERNAL_LIBCALL.  Remove the commented-out
13282         definitions of PROMOTE_FUNCTION_ARGS and
13283         PROMOTE_FUNCTION_RETURN.
13284         (PROMOTE_PROTOTYPES): Remove.
13285         (RETURN_IN_MEMORY): Likewise.
13286         (STRUCT_VALUE): Likewise.
13287
13288 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13289
13290         * config/m68k/m68k.c (TARGET_PROMOTE_PROTOTYPES): New.
13291         (TARGET_STRUCT_VALUE_RTX): Likewise.
13292         (m68k_struct_value_rtx): Likewise.
13293         * config/m68k/m68k.h (STRUCT_VALUE_REGNUM): Rename to
13294         STRUCT_VALUE_REGNUM.
13295         (PROMOTE_PROTOTYPES): Remove.
13296         * config/m68k/m68kelf.h (STRUCT_VALUE_REGNUM): Rename to
13297         STRUCT_VALUE_REGNUM.
13298         * config/m68k/m68kv4.h (STRUCT_VALUE_REGNUM): Likewise.
13299         * config/m68k/netbsd-elf.h (STRUCT_VALUE_REGNUM): Likewise.
13300
13301 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13302
13303         * config/stormy16/stormy16.c
13304         (TARGET_BUILD_BUILTIN_VA_LIST_TYPE): Rename to
13305         TARGET_BUILD_BUILTIN_VA_LIST.
13306
13307 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13308
13309         * config/v850/v850.c (TARGET_PROMOTE_PROTOTYPES): New.
13310         (TARGET_STRUCT_VALUE_RTX): Likewise.
13311         (TARGET_RETURN_IN_MEMORY): Likewise.
13312         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
13313         (v850_return_in_memory): Likewise.
13314         (v850_setup_incoming_varargs): Likewise.
13315         * config/v850/v850.h (PROMOTE_PROTOTYPES): Remove.
13316         (SETUP_INCOMING_VARARGS): Likewise.
13317         (RETURN_IN_MEMORY): Likewise.
13318         (STRUCT_VALUE): Likewise.
13319
13320 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13321
13322         * config/fr30/fr30.c (TARGET_PROMOTE_PROTOTYPES): New.
13323         (fr30_setup_incoming_varargs): Don't use
13324         STRICT_ARGUMENT_NAMING.
13325         * config/fr30/fr30.h (PROMOTE_PROTOTYPES): Remove.
13326         (STRICT_ARGUMENT_NAMING): Likewise.
13327
13328 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13329
13330         * config/frv/frv-protos.h: Remove the prototype for
13331         frv_expand_builtin_saveregs.
13332         * config/frv/frv.c (TARGET_STRUCT_VALUE_RTX): Likewise.
13333         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
13334         (frv_stack_info): Use FRV_STRUCT_VALUE_REGNUM instead of
13335         STRUCT_VALUE_REGNUM.
13336         (frv_expand_builtin_saveregs): Make it static.
13337         (frv_struct_value_rtx): New.
13338         * config/frv/frv.h (EXPAND_BUILTIN_SAVEREGS): Remove.
13339
13340 2004-01-29  Jan Hubicka  <jh@suse.cz>
13341
13342         PR c++/12850
13343         * cgraph.c (cgraph_remove_node): Clear out saved/insns/arguments and
13344         initial pointers.
13345         * cgraphunit.c (cgraph_finalize_function): Clear out DECL_SAVED_INSNS
13346         for functions that will be only inlined.
13347         (cgraph_mark_function_to_output): Likewise.
13348         (cgraph_expand_function): Sanity check that DECL_DEFER_OUTPUT is clear;
13349         do not clear function body.
13350         * tree-optimize.c (clear_decl_rtl): Use decl_function_context.
13351         (tree_rest_of_compilation): Reorganize the logic releasing function
13352         body to use callgraph datastructure.
13353
13354 2004-01-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13355
13356         * pa.md: Change predicate of a peephole2 pattern from reg_or_0_operand
13357         to register_operand.
13358
13359 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
13360
13361         * config/ia64/ia64.md (fetchadd_acq_si, fetchadd_acq_di)
13362         (cmpxchg_acq_si, cmpxchg_acq_di): Exchange match_dup and
13363         match_operand expressions so that all match_dups appear
13364         lexically after their corresponding match_operands.
13365
13366 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13367
13368         * config/h8300/h8300.c (WORD_REG_USED): Use
13369         HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM.
13370         (compute_saved_regs): Likewise.
13371         (h8300_expand_prologue): Likewise.  Allocate locals after
13372         saving registers.
13373         (h8300_expand_epilogue): Use HARD_FRAME_POINTER_REGNUM instead
13374         of FRAME_POINTER_REGNUM.  Deallocate locals before saving
13375         registers.
13376         (h8300_initial_elimination_offset): Adjust for the new frame
13377         layout, which swaps flips the order of locals and saved
13378         registers.
13379         * config/h8300/h8300.h (FIRST_PSEUDO_REGISTER): Change to 12.
13380         (HARD_FRAME_POINTER_REGNUM): New.
13381         (ELIMINABLE_REGS): Add an elimination rule from
13382         FRAME_POINTER_REGNUM to HARD_FRAME_POINTER_REGNUM.
13383         (REGISTER_NAMES): Add fp.
13384         * config/h8300/h8300.md (FP_REG): Change to 11.
13385         (HFP_REG): New.
13386
13387 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13388
13389         * genrecog.c (write_node): Remove a useless local variable.
13390
13391 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
13392
13393         * Makefile.in (options.c options.h): Use stamp file s-options to
13394         avoid unnecessary rebuilds.
13395         (options.o): New target listing dependencies.
13396         (gtyp-gen.h): Use stamp file s-gtyp-gen.
13397         (STAGESTUFF): Add s-gtyp-gen.
13398
13399 2004-01-28  Richard Henderson  <rth@redhat.com>
13400
13401         * ggc.h (ggc_free): Declare.
13402         * ggc-common.c (ggc_realloc): Use it.
13403         * ggc-page.c: Remove lots of inline markers.
13404         (globals): Add free_object_list.
13405         (ggc_alloc): Tidy.
13406         (ggc_free, validate_free_objects): New.
13407         (poison_pages): Provide default.
13408         (ggc_collect): Call validate_free_objects; emit markers to
13409         the debug file.
13410
13411 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
13412             Jim Wilson  <wilson@specifixinc.com>
13413
13414         * config/ia64/ia64.c (ia64_split_tmode, ia64_split_tmode_move):
13415         Rewrite to use POST_INC/POST_DEC/POST_MODIFY instead of a
13416         scratch pointer.
13417         (ia64_secondary_reload_class): Delete case GR_REGS.
13418         * config/ia64/ia64.md (movti, *movti_internal, movtf, *movtf_internal):
13419         Do not allocate a scratch register.
13420         (reload_inti, reload_outti, reload_intf, reload_outtf): Delete.
13421
13422 2004-01-28  Jan Hubicka  <jh@suse.cz>
13423
13424         * gcse.c (bypass_block): Prevent edges to be unified when we are
13425         about to emit compenstation code.
13426
13427 2004-01-28  Nick Clifton  <nickc@redhat.com>
13428
13429         * config/arm/arm.c (arm_expand_builtin): Force second argument of
13430         the setcwx insn into a register.
13431
13432 2004-01-28  Richard Sandiford  <rsandifo@redhat.com>
13433
13434         * config/fp-bit.c (pack_d): When using paired doubles to implement
13435         a long double, round the high part separately.
13436         (unpack_d): Fix the case in which the high part is a power of two
13437         and the low part is a nonzero value of the opposite sign.
13438
13439 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13440
13441         * config/c4x/c4x.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
13442         (TARGET_STRUCT_VALUE_RTX): Likewise.
13443         (c4x_external_libcall): Likewise.
13444         (c4x_struct_value_rtx): Likewise.
13445         * config/c4x/c4x.h: Remove.
13446         (STRUCT_VALUE_REGNUM): Likewise.
13447         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
13448
13449 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13450
13451         * config/i386/i386.c (TARGET_PROMOTE_PROTOTYPES): New.
13452         (TARGET_STRUCT_VALUE_RTX): Likewise.
13453         * config/i386/i386.h (STRUCT_VALUE_INCOMING): Remove.
13454         (STRUCT_VALUE): Likewise.
13455         (PROMOTE_PROTOTYPES): Likewise.
13456
13457 2004-01-27  Roger Sayle  <roger@eyesopen.com>
13458
13459         * config/pa/pa.c (emit_move_sequence): Check that operand1 is a
13460         CONST_INT before using INTVAL.
13461
13462 2004-01-27  Ulrich Weigand  <uweigand@de.ibm.com>
13463
13464         * config/s390/s390.h (TARGET_DEFAULT): Default to !TARGET_BACKCHAIN.
13465         * config/s390/s390.c (s390_return_addr_rtx): Fail for all but current
13466         frame if !TARGET_BACKCHAIN.
13467         * config/s390/s390.md ("allocate_stack"): Use pattern only if
13468         TARGET_BACKCHAIN.
13469         * doc/invoke.texi (-mbackchain/-mno-backchain): Document new default.
13470
13471 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
13472
13473         * ia64.c (ia64_function_arg): When placing HFAs in integer
13474         registers, do not special case the mode used for complex
13475         types.  Do not advance int_regs until the current register
13476         is full.
13477
13478 2004-01-27  Richard Sandiford  <rsandifo@redhat.com>
13479
13480         PR target/7297
13481         * except.c (init_eh): Use a 5-word __jbuf for __builtin_setjmp().
13482
13483 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
13484
13485         * config/rs6000/rs6000.c (rs6000_emit_move): #if 0 splitting
13486         slow, unaligned loads and stores while debugging.  Fix formatting.
13487
13488 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
13489
13490         * config/rs6000/rs6000.md (save_stack_nonlocal): Use Pmode instead
13491         of computing wmode.
13492         (restore_stack_nonlocal): Same.
13493
13494 2004-01-27  Devang Patel <dpatel@apple.com>
13495
13496         * Makefile.in (dwarf2out.o): Depend on input.h
13497         * dbxout.c (dbx_debug_hooks): Add new empty hook for
13498         imported_module_or_decl.
13499         (xcoff_debug_hooks): Same.
13500         * sdbout.c (sdb_debug_hooks): Same.
13501         * vmsdbgout.c (vmsdbg_debug_hooks): Same.
13502         * debug.c (do_nothing_debug_hooks): Same.
13503         (debug_nothing_tree_tree): New function.
13504         * debug.h (gcc_debug_hooks): New hook, imported_module_or_decl.
13505         * dwarf2out.c: Include input.h.
13506         (dwarf2_debug_hooks): Add new hook for imported_module_or_decl.
13507         (remove_child_TAG): New function.
13508         (dwarf_tag_name): Handle DW_TAG_imported_module.
13509         (gen_subprogram_die): Equate decl number to declaration die. Do not
13510         remove all children dies while reusing declaration die for definition.
13511         Instead, selectively remove only formal parameters.
13512         (gen_variable_die): Equate variable decl to declaration die.
13513         (gen_field_die): Equate field decl to line number.
13514         (force_namespace_die): Replace it with ...
13515         (force_decl_die): ... this.
13516         (force_type_die): New function.
13517         (setup_namespace_context): Replace use of force_namespace_die() with
13518         force_decl_die().
13519         (gen_namespace_die): Same.
13520         (dwarf2out_imported_module_or_decl): New function.
13521
13522 2004-01-27  Bob Wilson  <bob.wilson@acm.org>
13523
13524         * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Remove SUBREG
13525         on CQImode and CHImode incoming arguments in register a7.
13526         (function_arg): Wrap BLKmode argument in register a7 in a PARALLEL.
13527         * config/xtensa/xtensa.h (BLOCK_REG_PADDING): Define.
13528         * config/xtensa/xtensa.md (movdi, movdf): Only call force_reg or
13529         xtensa_copy_incoming_a7 before reload.
13530
13531 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
13532
13533         * coverage.c (get_coverage_counts): Give a different message
13534         if flag_guess_branch_prob is set.
13535         * predict.c (counts_to_freqs): Return an int.
13536         (estimate_bb_frequencies): If counts_to_freqs returns zero,
13537         calculate estimates.
13538
13539 2004-01-27  Kazu Hirata  <kazu@cs.umass.edu>
13540
13541         * config/iq2000/iq2000-protos.h: Remove the prototype for
13542         iq2000_setup_incoming_varargs.
13543         * config/iq2000/iq2000.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
13544         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
13545         (TARGET_PROMOTE_PROTOTYPES): Likewise.
13546         (TARGET_STRUCT_VALUE_RTX): Likewise.
13547         (TARGET_RETURN_IN_MEMORY): Likewise.
13548         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
13549         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
13550         (iq2000_return_in_memory): Likewise.
13551         (iq2000_setup_incoming_varargs): Make it static.  Receive the
13552         first argument by reference.
13553         * config/iq2000/iq2000.h (PROMOTE_FUNCTION_ARGS): Remove.
13554         (PROMOTE_FUNCTION_RETURN): Likewise.
13555         (PROMOTE_PROTOTYPES): Likewise.
13556         (RETURN_IN_MEMORY): Likewise.
13557         (STRUCT_VALUE): Likewise.
13558         (SETUP_INCOMING_VARARGS): Likewise.
13559         (STRICT_ARGUMENT_NAMING): Likewise.
13560
13561 2004-01-24  James A. Morrison  <ja2morri@uwaterloo.ca>
13562
13563         * fixinc/fixinc.c (test_test): Initialize res.
13564         (start_flexer): Initialize pz_cmd_save.
13565
13566 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
13567
13568         * doc/rtl.texi (Arithmetic): Rewrite entries for PLUS,
13569         SS_PLUS, US_PLUS, LO_SUM, MINUS, SS_MINUS, US_MINUS.
13570
13571 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
13572
13573         PR 7198
13574         * config/ia64/ia64.md (*nmaddsf4, *nmadddf4, *nmadddf4_alts)
13575         (*nmadddf4_trunc, *nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf)
13576         (*nmaddxf4_alts, *nmaddxf4_truncdf_alts):
13577         Rewrite pattern as (minus (op 3) (mult (op 1) (op 2))).
13578         Possibly rename pattern for consistency.
13579         Remove ??? comments suggesting that this be done.
13580         (*nmaddsf4_alts, *nmadddf4_truncsf_alts, *nmaddxf4_truncsf_alts):
13581         New patterns.
13582         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr)
13583         (divsf3_internal_lat, divsf3_internal_thr, sqrtsf2_internal_thr)
13584         (divdf3_internal_lat, divdf3_internal_thr, sqrtdf2_internal_thr)
13585         (divxf3_internal_lat, divxf3_internal_thr, sqrtxf2_internal_thr):
13586         Update to match.
13587
13588 2004-01-27  Ian Lance Taylor  <ian@wasabisystems.com>
13589
13590         * config/arm/arm.c (output_return_instruction): Only restore IP
13591         into SP if frame_pointer_needed.
13592
13593 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
13594
13595         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
13596         for SCmode and DCmode if ARCH32.
13597         (sparc_va_arg): Handle SCmode and DCmode by reference if ARCH32.
13598         * config/sparc/sparc.h (RETURN_IN_MEMORY): Return 0 for TCmode
13599         if ARCH32.
13600         (BASE_RETURN_VALUE_REG): Return 32 for all FP modes except TFmode
13601         if ARCH32.
13602         (BASE_OUTGOING_VALUE_REG): Likewise.
13603
13604 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
13605
13606         PR target/10904
13607         PR target/13058
13608         * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): New.
13609         Forbid mode changes from SImode for lower FP regs if ARCH64.
13610
13611 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
13612
13613         * Makefile.in (bt-load.o): Depend on except.h.
13614         * bt-load.c (except.h): #include.
13615         (compute_defs_uses_and_gen): If insn at end of BB can throw
13616         within this function, consider registers used by it unavailable for
13617         btr migration.
13618         (move_btr_def): If insn at end of BB can throw, insert before rather
13619         than after.
13620
13621         * flags.h (flag_btr_bb_exclusive): Declare.
13622         * toplev.c (flag_btr_bb_exclusive): New variable.
13623         (f_options): Add btr-bb-exclusive.
13624         * bt-load.c (augment_live_range): Restore old behaviour if
13625         flag_btr_bb_exclusive is set.
13626         * common.opt: Add entry for -fbtr-bb-exclusive.
13627         * opts.c (common_handle_options): Same.
13628         * doc/invoke.texi: Document -fbtr-bb-exclusive.
13629
13630         * bt-load.c (btrs_live_at_end): New variable.
13631         (compute_defs_uses_and_gen): Compute its pointed-to array.
13632         (clear_btr_from_live_range, add_btr_to_live_range): Update it.
13633         (augment_live_range): When augmenting with a new dominator,
13634         use only its btrs_live_at_end set, but also add in the full set
13635         of the old dominator.
13636         (btr_def_live_range): Use btrs_live_at_end.
13637         (move_btr_def): Set other_btr_uses_before_def, and move new set
13638         to the end of the basic block, if appropriate.
13639         (migrate_btr_defs): Allocate and free btrs_live_at_end.
13640
13641         * bt-load.c (basic_block_freq): Remove outdated comment.
13642
13643 2004-01-27  Alan Modra  <amodra@bigpond.net.au>
13644
13645         * config/rs6000/rs6000.h: Correct target_flags free bits comment.
13646         (PREDICATE_CODES): Remove duplicate.
13647         * config/rs6000/linux64.h (CPP_SYSV_SPEC): Don't define.
13648         (SUBSUBTARGET_OVERRIDE_OPTIONS): Disallow 32 bit TARGET_PROFILE_KERNEL.
13649         (MASK_PROFILE_KERNEL): Adjust define.
13650
13651 2004-01-27  Jakub Jelinek  <jakub@redhat.com>
13652
13653         * config/i386/i386.c (ix86_constant_alignment): Decrease alignment
13654         of long string literals from 32 bytes to sizeof (void *) when !-Os
13655         and to 1 with -Os.
13656
13657 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
13658
13659         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Accept
13660         constant addresses in the normal mode.
13661
13662 2004-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13663
13664         * system.h (CHAR_BITFIELD): Delete.
13665         (BOOL_BITFIELD): New.
13666         * c-decl.c (c_scope): Use BOOL_BITFIELD.
13667         * gengtype-lex.l: Recognize BOOL_BITFIELD instead of CHAR_BITFIELD.
13668
13669 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
13670
13671         * config/arc/arc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
13672         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
13673         (TARGET_PROMOTE_PROTOTYPES): Likewise.
13674         (TARGET_STRUCT_VALUE_RTX): Likewise.
13675         (TARGET_RETURN_IN_MEMORY): Likewise.
13676         (arc_return_in_memory): Likewise.
13677         * config/arc/arc.h (PROMOTE_FUNCTION_ARGS): Remove.
13678         (PROMOTE_FUNCTION_RETURN): Likewise.
13679         (RETURN_IN_MEMORY): Likewise.
13680         (STRUCT_VALUE): Likewise.
13681
13682 2004-01-26  Richard Henderson  <rth@redhat.com>
13683
13684         * c-parse.in (extension): Use itype.
13685         (SAVE_EXT_FLAGS): Don't allocate a tree.
13686         (RESTORE_EXT_FLAGS): Don't read a tree.
13687
13688 2004-01-26  Jan Hubicka  <jh@suse.cz>
13689
13690         * cselib.c (discard_useless_values):  Clear out value pointer pointing
13691         to datastructure to be recycled.
13692
13693 2004-01-25  Jan Hubicka  <jh@suse.cz>
13694
13695         * genextract.c (main): Do not output the memset when not checking.
13696
13697 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
13698
13699         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Use a
13700         switch statement instead of a chain of if statements.
13701
13702 2004-01-26  Jeff Law  <law@redhat.com>
13703
13704         * doc/contrib.texi: Minor cleanup for Paolo Carlini's entry.  Add
13705         acute accents for Petur Runolfsson's entry.
13706
13707 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
13708
13709         * config/pdp11/pdp11.c (TARGET_STRUCT_VALUE_RTX): New.
13710         (TARGET_RETURN_IN_MEMORY): Likewise.
13711         * config/pdp11/pdp11.h (STRUCT_VALUE): Remove.
13712         (RETURN_IN_MEMORY): Likewise.
13713
13714 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
13715
13716          * config/rs6000/rs6000.c (rs6000_emit_move): split slow
13717          unaligned load/store into smaller loads and stores.
13718
13719 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
13720
13721         * function.c (assign_parms): Do not assign
13722         long long argument to memory in prologue if
13723         is it loaded into register.
13724
13725 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
13726
13727          PR middle-end/13779
13728          * expr.c (emit_group_load): split constant
13729          correctly into register components of PARALLEL insn.
13730
13731 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
13732
13733         * gcc/config/rs6000/rs6000.md (save_stack_nonlocal):
13734         Use adjust_address_nv directly with appropriate mode.
13735         (restore_stack_nonlocal): Ditto.
13736
13737 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
13738
13739         * config/xtensa/xtensa-protos.h: Remove the prototype for
13740         xtensa_builtin_saveregs.
13741         * config/xtensa/xtensa.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
13742         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
13743         (TARGET_PROMOTE_PROTOTYPES): Likewise.
13744         (TARGET_STRUCT_VALUE_RTX): Likewise.
13745         (TARGET_RETURN_IN_MEMORY): Likewise.
13746         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
13747         (xtensa_builtin_saveregs): Make it static.
13748         (xtensa_return_in_memory): New.
13749         * config/xtensa/xtensa.h (PROMOTE_FUNCTION_ARGS: Remove.
13750         (PROMOTE_FUNCTION_RETURN): Likewise.
13751         (PROMOTE_PROTOTYPES): Likewise.
13752         (STRUCT_VALUE): Likewise.
13753         (RETURN_IN_MEMORY): Likewise.
13754         (EXPAND_BUILTIN_SAVEREGS): Likewise.
13755
13756 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
13757
13758         * config/arm/arm.c (TARGET_SETUP_INCOMING_VARARGS): New.
13759         (arm_setup_incoming_varargs): Likewise.
13760         * config/arm/arm.h (SETUP_INCOMING_VARARGS): Remove.
13761
13762 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
13763
13764         * config/cris/cris.c (TARGET_SETUP_INCOMING_VARARGS): New.
13765         (cris_setup_incoming_varargs): Likewise.
13766         * config/cris/cris.h (SETUP_INCOMING_VARARGS): Remove.
13767
13768 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
13769
13770         * config/ns32k/ns32k.c (TARGET_STRUCT_VALUE_RTX): New.
13771         (ns32k_struct_value_rtx): Likewise.
13772         * config/ns32k/ns32k.h (STRUCT_VALUE_REGNUM): Rename to
13773         NS32K_STRUCT_VALUE_REGNUM.
13774
13775 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
13776
13777         * config/arm/arm.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
13778         (TARGET_PROMOTE_PROTOTYPES): Likewise.
13779         (TARGET_STRUCT_VALUE_RTX): Likewise.
13780         (arm_struct_value_rtx): Likewise.
13781         * config/arm/arm.h (PROMOTE_FUNCTION_ARGS): Remove.
13782         (STRUCT_VALUE): Likewise.
13783         (STRUCT_VALUE_REGNUM): Likewise.
13784         (PROMOTE_PROTOTYPES): Likewise.
13785
13786 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
13787
13788         * config/ia64/ia64-protos.h: Remove the prototype for
13789         ia64_setup_incoming_varargs and ia64_return_in_memory.
13790         * config/ia64/ia64.c (TARGET_STRUCT_VALUE_RTX): New.
13791         (TARGET_RETURN_IN_MEMORY): Likewise.
13792         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
13793         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
13794         (ia64_setup_incoming_varargs): Adjust the arguments to meet
13795         the requirement of TARGET_SETUP_INCOMING_VARARGS.
13796         (ia64_return_in_memory): Make it static.  Change the return
13797         type to bool from int.  Add an argument.
13798         (ia64_struct_value_rtx): New.
13799         * config/ia64/ia64.h: Remove commented-out definitions of
13800         PROMOTE_FUNCTION_ARGS, PROMOTE_FUNCTION_RETURN, and
13801         PROMOTE_PROTOTYPES.
13802         (RETURN_IN_MEMORY): Remove.
13803         (STRUCT_VALUE_REGNUM): Likewise.
13804         (STRICT_ARGUMENT_NAMING): Likewise.
13805
13806 2004-01-26  Eric Botcazou  <ebotcazou@libertysurf.fr>
13807
13808         PR target/13666
13809         * config/sparc/sparc.c (function_arg_union_value): New function.
13810         (function_arg): Use it to deal with unions.
13811         (function_value): Likewise.  Define 'regbase' only for ARCH64.
13812         Replace a conditional statement by a simpler one.
13813
13814 2004-01-26  Richard Sandiford  <rsandifo@redhat.com>
13815
13816         * config/mips/mips.c (mips16_optimize_gp): Delete.
13817         (mips_reorg): Don't call it.
13818
13819 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13820
13821         * config/c4x/c4x.md (addqi3_noclobber): Move up pecking order.
13822         (floatunsqihf2): Remove operand 6.
13823         (fixhfqi_set, fix_trunchfqi2, fixuns_trunchfqi2): Group with other
13824         fix patterns.
13825         (ldi_conditional, ldf_conditional): Validate operands.
13826
13827 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13828
13829         * config/c4x/c4x.h (BCT_CHECK_LOOP_ITERATIONS): Remove.
13830         (HAVE_GAS_HIDDEN): Undefine as interim measure.
13831
13832 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13833
13834         * config/c4x/c4x.c (c4x_legitimate_address_p):  Invalidate direct
13835         memory references if TARGET_EXPOSE_LDP nonzero.
13836
13837 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13838
13839         * config/c4x/c4x.c (legitimize_operands): Truncate invalid shift counts.
13840
13841 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13842
13843         * config/c4x/c4x.c (c4x_valid_operands): More aggressively reject
13844         invalid operand combinations.
13845
13846 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13847
13848         * config/c4x/c4x.c (c4x_check_legit_addr): Rename to
13849         c4x_legitimate_address_p.  Fix post_modify check.
13850
13851         * config/c4x/c4x-protos.h (c4x_check_legit_addr): Adjust.
13852         * config/c4x/c4x.h (c4x_check_legit_addr): Adjust.
13853
13854 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
13855
13856         * config/pa/pa-protos.h: Remove the prototype for
13857         hppa_builtin_saveregs.  Add a prototype for
13858         pa_return_in_memory.
13859         * config/pa/pa.c (TARGET_PROMOTE_FUNCTION_RETURN): New.
13860         (TARGET_PROMOTE_PROTOTYPES): Likewise.
13861         (TARGET_STRUCT_VALUE_RTX): Likewise.
13862         (TARGET_RETURN_IN_MEMORY): Likewise.
13863         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
13864         (pa_struct_value_rtx): Likewise.
13865         (pa_return_in_memory): Likewise.
13866         * config/pa/pa.h (STRUCT_VALUE_REGNUM): Rename to
13867         PA_STRUCT_VALUE_REGNUM.
13868         (INIT_CUMULATIVE_ARGS): Use pa_return_in_memory.
13869         (EXPAND_BUILTIN_SAVEREGS): Remove.
13870         (PROMOTE_PROTOTYPES): Likewise.
13871         (PROMOTE_FUNCTION_RETURN): Likewise.
13872
13873 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
13874
13875         * config/vax/vax.c (TARGET_PROMOTE_PROTOTYPES): New.
13876         (TARGET_STRUCT_VALUE_RTX): Likewise.
13877         (vax_struct_value_rtx): Likewise.
13878         * config/vax/vax.h (STRUCT_VALUE_REGNUM): Rename to
13879         VAX_STRUCT_VALUE_REGNUM.
13880         (PROMOTE_PROTOTYPES): Remove.
13881
13882 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13883
13884         * config/c4x/c4x.h (LEGITIMIZE_RELOAD_ADDRESS):  Handle symref.
13885
13886 2003-04-25  Chris Demetriou  <cgd@broadcom.com>
13887
13888         * config/mips/mips.h (ISA_HAS_HILO_INTERLOCKS): MIPS32, MIPS32r2,
13889         and MIPS64 have HI/LO interlocks.  Update comment.
13890
13891 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
13892
13893         * config/stormy16/stormy16-protos.h: Remove the prototype for
13894         xstormy16_setup_incoming_varargs.
13895         * config/stormy16/stormy16.c
13896         (xstormy16_setup_incoming_varargs): Remove.
13897         (xstormy16_return_in_memory): New.
13898         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
13899         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
13900         (TARGET_PROMOTE_PROTOTYPES): Likewise.
13901         (TARGET_STRUCT_VALUE_RTX): Likewise.
13902         (TARGET_RETURN_IN_MEMORY): Likewise.
13903         * config/stormy16/stormy16.h (PROMOTE_FUNCTION_ARGS): Remove.
13904         (PROMOTE_FUNCTION_RETURN): Likewise
13905         (PROMOTE_PROTOTYPES): Likewise
13906         (RETURN_IN_MEMORY): Likewise
13907         (STRUCT_VALUE): Likewise
13908         (SETUP_INCOMING_VARARGS): Likewise
13909
13910 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
13911
13912         * config/mips/mips.c (mips_offset_within_object_p): New function.
13913         (mips_symbolic_constant_p): Use it in the SYMBOL_SMALL_DATA and
13914         SYMBOL_CONSTANT_POOL cases.  Also use it for SYMBOL_GENERAL if the
13915         ABI has 64-bit pointers and the object file only allows 32-bit symbols.
13916
13917 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
13918
13919         * config/sh/sh.h (PROMOTE_FUNCTION_ARGS): Remove.
13920         (PROMOTE_FUNCTION_RETURN): Likewise.
13921
13922 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
13923
13924         * config/mn10300/mn10300-protos.h: Remove the prototype for
13925         mn10300_builtin_saveregs.
13926         * config/mn10300/mn10300.c (TARGET_PROMOTE_PROTOTYPES): New.
13927         (TARGET_STRUCT_VALUE_RTX): Likewise.
13928         (TARGET_RETURN_IN_MEMORY): Likewise.
13929         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
13930         (mn10300_return_in_memory): Likewise.
13931         (mn10300_builtin_saveregs): Make it static.
13932         * config/mn10300/mn10300.h (PROMOTE_PROTOTYPES): Remove.
13933         (RETURN_IN_MEMORY): Likewise.
13934         (STRUCT_VALUE): Likewise.
13935         (EXPAND_BUILTIN_SAVEREGS): Likewise.
13936
13937 2004-01-25  Eric Botcazou  <ebotcazou@act-europe.fr>
13938
13939         PR bootstrap/13853
13940         * cfgcleanup.c (try_optimize_cfg): Explicitly test against 0.
13941
13942 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
13943
13944         * config/h8300/lib1funcs.asm (divnorm, modnorm): Optimize by
13945         using ccr.
13946
13947 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
13948
13949         * config/i860/i860-protos.h: Remove the prototype for
13950         i860_saveregs.
13951         * config/i860/i860.c (i860_saveregs): Make it static.
13952         (i860_struct_value_rtx): New.
13953         (TARGET_STRUCT_VALUE_RTX): Likewise.
13954         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
13955         * config/i860/i860.h (STRUCT_VALUE_REGNUM): Rename to
13956         I860_STRUCT_VALUE_REGNUM.
13957         (EXPAND_BUILTIN_SAVEREGS): Remove.
13958
13959 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
13960
13961         * config/m68hc11/m68hc11.c (TARGET_STRUCT_VALUE_RTX): New.
13962         (TARGET_RETURN_IN_MEMORY): Likewise.
13963         (m68hc11_struct_value_rtx): Likewise.
13964         (m68hc11_return_in_memory): Likewise.
13965         * config/m68hc11/m68hc11.h: Remove a commented-out definition
13966         of PROMOTE_PROTOTYPES.
13967         (RETURN_IN_MEMORY): Remove.
13968         (STRUCT_VALUE_REGNUM): Likewise.
13969
13970 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
13971
13972         * config/mmix/mmix-protos.h: Remove the prototype for
13973         mmix_setup_incoming_varargs.
13974         * config/mmix/mmix.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
13975         (TARGET_STRUCT_VALUE_RTX): Likewise.
13976         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
13977         (mmix_setup_incoming_varargs): Make it static.
13978         (mmix_struct_value_rtx): New.
13979         * config/mmix/mmix.h (PROMOTE_FUNCTION_ARGS): Remove.
13980         Remove a commented-out definition of PROMOTE_FUNCTION_RETURN.
13981         (STRUCT_VALUE_REGNUM): Remove.
13982         (SETUP_INCOMING_VARARGS): Likewise.
13983
13984 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
13985
13986         * config/mips/mips-protos.h: Remove the prototypes for
13987         mips_setup_incoming_varargs and mips_return_in_memory.
13988         * config/mips/mips.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
13989         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
13990         (TARGET_PROMOTE_PROTOTYPES): Likewise.
13991         (TARGET_STRUCT_VALUE_RTX): Likewise.
13992         (TARGET_RETURN_IN_MEMORY): Likewise.
13993         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
13994         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
13995         (mips_setup_incoming_varargs): Match the prototype for
13996         TARGET_SETUP_INCOMING_VARARGS.
13997         (mips_return_in_memory): Make it static.  Add argument fntype.
13998         (mips_strict_argument_naming): New.
13999         * config/mips/mips.h (PROMOTE_PROTOTYPES): Remove.
14000         (PROMOTE_FUNCTION_ARGS): Likewise.
14001         (PROMOTE_FUNCTION_RETURN): Likewise.
14002         (STRUCT_VALUE): Likewise.
14003         (RETURN_IN_MEMORY): Likewise.
14004         (SETUP_INCOMING_VARARGS): Likewise.
14005         (STRICT_ARGUMENT_NAMING): Likewise.
14006
14007 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
14008
14009         * config/ip2k/ip2k.c (TARGET_STRUCT_VALUE_RTX): New.
14010         (TARGET_RETURN_IN_MEMORY): Likewise.
14011         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
14012         (ip2k_return_in_memory): Likewise.
14013         (ip2k_setup_incoming_varargs): Likewise.
14014         * config/ip2k/ip2k.h (RETURN_IN_MEMORY): Remove.
14015         (STRUCT_VALUE): Likewise.
14016         (STRUCT_VALUE_INCOMING): Likewise.
14017         (SETUP_INCOMING_VARARGS): Likewise.
14018
14019 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
14020
14021         * config/avr/avr.c (TARGET_STRUCT_VALUE_RTX): New.
14022         (TARGET_RETURN_IN_MEMORY): Likewise.
14023         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
14024         (avr_return_in_memory): Remove.
14025         * config/avr/avr.h (RETURN_IN_MEMORY): Remove.
14026         (STRUCT_VALUE): Likewise.
14027         (STRUCT_VALUE_INCOMING): Likewise.
14028         (STRICT_ARGUMENT_NAMING): Likewise.
14029
14030 2004-01-25  Jan Hubicka  <jh@suse.cz>
14031
14032         * combine.c (recog_for_combine): Avoid allocating unnecesary RTX.
14033
14034 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
14035
14036         * config/mips/mips-protos.h (mips_reg_mode_ok_for_base_p): Delete.
14037         (mips_regno_mode_ok_for_base_p): Declare.
14038         * config/mips/mips.h (ARG_POINTER_REGNUM): Renumber to 77.
14039         (FRAME_POINTER_REGNUM): Renumber to 78.
14040         (FIRST_PSEUDO_REGISTER): Update comment accordingly.
14041         (BASE_REG_P, GP_REG_OR_PSEUDO_STRICT_P): Delete.
14042         (GP_REG_OR_PSEUDO_NONSTRICT_P): Delete.
14043         (REGNO_MODE_OK_FOR_BASE_P): Use mips_regno_mode_ok_for_base_p.
14044         (REG_MODE_OK_FOR_BASE_P): Likewise.
14045         * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Change
14046         entry for 77 to "$arg" and entry for 78 to "$frame".
14047         (mips_regno_to_class): Map 77 and 78 to ALL_REGS.
14048         (mips_reg_mode_ok_for_base_p): Remove.
14049         (mips_regno_mode_ok_for_base_p): New function, derived from old
14050         BASE_REG_P macro.  Don't enforce the mips16 stack pointer
14051         restrictions unless we're being strict.
14052         (mips_valid_base_register_p): Use mips_regno_mode_ok_for_base_p.
14053
14054 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
14055
14056         * c-common.h: Fix comment typos.
14057         * c-decl.c: Likewise.
14058         * cgraphunit.c: Likewise.
14059         * combine.c: Likewise.
14060         * et-forest.c: Likewise.
14061         * flow.c: Likewise.
14062         * function.c: Likewise.
14063         * ifcvt.c: Likewise.
14064         * integrate.c: Likewise.
14065         * jump.c: Likewise.
14066         * postreload.c: Likewise.
14067         * varray.c: Likewise.
14068
14069 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
14070
14071         * doc/frontends.texi: Update copyright.
14072         * doc/gcov.texi: Likewise.
14073         * doc/gty.texi: Likewise.
14074         * doc/sourcebuild.texi: Likewise.
14075         * doc/standards.texi: Likewise.
14076
14077 2004-01-24  Herman A.J. ten Brugge  <hermantenbrugge@home.nl>
14078
14079         PR target/12978
14080         * c4x.md: (movstrqi*) Use match_scratch instead of match_dup.
14081         Remove movstrqi_small because it conflicts with movstrqi_large.
14082
14083 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
14084
14085         * config/cris/cris.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
14086         (TARGET_STRUCT_VALUE_RTX): Likewise.
14087         (cris_struct_value_rtx): Likewise.
14088         * config/cris/cris.h (PROMOTE_FUNCTION_ARGS): Remove.
14089         (CRIS_STACKADJ_REG): Use CRIS_STRUCT_VALUE_REGNUM instead of
14090         STRUCT_VALUE_REGNUM.
14091         (STRUCT_VALUE_REGNUM): Rename to CRIS_STRUCT_VALUE_REGNUM.
14092
14093 2004-01-24  Ian Lance Taylor  <ian@wasabisystems.com>
14094
14095         PR bootstrap/13848
14096         * cse.c (cse_cc_succs): Change the mode of the source expression
14097         as soon as decide we need a new mode.  Don't permit changing modes
14098         if we found a match in a successor block.
14099         (cse_condition_code_reg): Save original mode of source expression
14100         so that we know whether we have to change the mode in other
14101         insns.
14102
14103 2004-01-24  Jan Hubicka  <jh@suse.cz>
14104
14105         * emit-rtl.c (change_address, adjust_address_1, offset_address,
14106         widen_memory_access):  Return early when there is nothing to change.
14107
14108 2004-01-24  Jakub Jelinek  <jakub@redhat.com>
14109
14110         * simplify-rtx.c (simplify_relational_operation): Don't
14111         simplify address == constant into address + -constant == 0.
14112
14113 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
14114
14115         * gcc.c (process_command): Don't internationalize the
14116         Copyright message.
14117         * mips-tfile.c (main): Likewise.
14118
14119 2004-01-24  Andreas Tobler  <a.tobler@schweiz.ch>
14120
14121         * cse.c: (cse_cc_succs) Fix comparison warning.
14122
14123 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
14124
14125         * config/h8300/h8300.md: Remove extraneous USE in expanders.
14126
14127 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
14128
14129         * config/h8300/h8300-protos.h: Provide prototypes for
14130         h8300_legitimate_constant_p and h8300_legitimate_address_p.
14131         * config/h8300/h8300.c (h8300_legitimate_constant_p): New.
14132         (h8300_rtx_ok_for_base_p): Likewise.
14133         (h8300_legitimate_address_p): Likewise.
14134         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Use
14135         h8300_legitimate_constant_p.
14136         (RTX_OK_FOR_BASE_P): Remove.
14137         (GO_IF_LEGITIMATE_ADDRESS): Use h8300_legitimate_address_p.
14138
14139 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
14140
14141         * config/h8300/h8300.h (REG_OK_FOR_INDEX_NONSTRICT_P): New.
14142         (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
14143         (REG_OK_FOR_INDEX_STRICT_P): Likewise.
14144         (REG_OK_FOR_BASE_STRICT_P): Likewise.
14145         (REG_OK_FOR_INDEX_STRICT_P): Use REGNO_OK_FOR_INDEX_P.
14146         (REG_OK_FOR_BASE_STRICT_P): Use REGNO_OK_FOR_BASE_P.
14147         (REG_OK_FOR_INDEX_P): Use REG_OK_FOR_INDEX_STRICT_P.
14148         (REG_OK_FOR_BASE_P): Use REG_OK_FOR_BASE_STRICT_P.
14149
14150 2004-01-24  Jan Hubicka  <jh@suse.cz>
14151
14152         * cselib.c (remove_useless_values):  Do not access discarded values.
14153
14154 2004-01-24  Joseph S. Myers  <jsm@polyomino.org.uk>
14155
14156         * c-typeck.c (build_conditional_expr): Do not allow non-lvalue
14157         arrays.
14158
14159 2004-01-23  Kazu Hirata  <kazu@cs.umass.edu>
14160
14161         * recog.c: Fix a typo in copyright.
14162
14163 2004-01-23  Andrew Pinski  <apinski@apple.com>
14164
14165         * config/rs6000/rs6000.md (call): Fix misappiled patch.
14166         (call_value): Likewise.
14167
14168 2004-01-23  Richard Henderson  <rth@redhat.com>
14169
14170         PR opt/12941
14171         * combine.c (SHIFT_COUNT_TRUNCATED): Provide default value.
14172         (simplify_comparison): Don't simplify (eq (zero_extract c 1 r) 0)
14173         if SHIFT_COUNT_TRUNCATED is set.
14174
14175 2004-01-23  Bob Wilson  <bob.wilson@acm.org>
14176
14177         * config/xtensa/xtensa.c (xtensa_va_arg): Handle complex values as
14178         separate real and imaginary parts.
14179         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Define.
14180
14181 2004-01-23  Hartmut Penner <hpenner@de.ibm.com>
14182
14183         PR target/13674
14184         * config/rs6000/rs6000.md (movdf_hardfloat64): Do not disparage
14185         loading into GPR.
14186
14187 2004-01-23  Jan Hubicka  <jh@suse.cz>
14188
14189         * emit-rtl.c (change_address_1):  Do not re-generate the RTX if nothing
14190         change.
14191
14192         * alloc-pool.c (align_four): Kill.
14193         (create_alloc_pool): Align size to eight.
14194         (free_alloc_pool, free_pool): Invalidate deallocated data.
14195
14196 2004-01-23  Ian Lance Taylor  <ian@wasabisystems.com>
14197
14198         PR gcc/1532
14199         * cse.c (cse_change_cc_mode): New static function.
14200         (cse_change_cc_mode_insns, cse_cc_succs): Likewise.
14201         (cse_condition_code_reg): New function.
14202         * rtl.h (cse_condition_code_reg): Declare.
14203         * toplev.c (rest_of_handle_cse2): Call cse_condition_code_reg.
14204         * target.h (struct gcc_target): Add fixed_condition_code_regs and
14205         cc_modes_compatible.
14206         * target-def.h (TARGET_FIXED_CONDITION_CODE_REGS): Define.
14207         (TARGET_CC_MODES_COMPATIBLE): Define.
14208         (TARGET_INITIALIZER): Add new initializers.
14209         * targhooks.c (default_cc_modes_compatible): New function.
14210         * targhooks.c (default_cc_modes_compatible): Declare.
14211         * hooks.c (hook_bool_intp_intp_false): New function.
14212         * hooks.h (hook_bool_intp_intp_false): Declare.
14213         * config/i386/i386.c (TARGET_FIXED_CONDITION_CODE_REGS): Define.
14214         (TARGET_CC_MODES_COMPATIBLE): Define.
14215         (ix86_fixed_condition_code_regs): New static function.
14216         (ix86_cc_modes_compatible): Likewise.
14217         * doc/tm.texi (Condition Code): Document new hooks.
14218
14219 2004-01-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14220
14221         * fixinc/inclhack.def (bad_lval): Renamed to ...
14222         (alpha_bad_lval): ... this.
14223         Removed file list.
14224         Restrict to alpha*-dec-osf*.
14225         * fixinc/fixincl.x: Regenerate.
14226         * fixinc/tests/base/dirent.h: Remove, moving test ...
14227         * fixinc/tests/base/testing.h: ... here, reflecting new name.
14228
14229 2004-01-23  Zack Weinberg  <zack@codesourcery.com>
14230
14231         PR c/13814
14232         * c-decl.c (diagnose_mismatched_decls): Also discard a
14233         built-in if we encounter an old-style definition with the
14234         same name.
14235
14236 2004-01-23  Jakub Jelinek  <jakub@redhat.com>
14237
14238         * config.gcc (powerpc*-*): Clear $with_cpu or $with_tune if it was
14239         set to default{32,64}.
14240
14241 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
14242
14243         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR)
14244         [!__powerpc64__]: Corrected to handle kernels with changed ucontext.
14245
14246 2004-01-23  Eric Botcazou  <ebotcazou@act-europe.fr>
14247             Olivier Hainque  <hainque@act-europe.fr>
14248
14249         * fold-const.c (fold_binary_op_with_conditional_arg): Only
14250         build a COMPOUND_EXPR if 'arg' is really a SAVE_EXPR.
14251
14252 2004-01-23  Daniel Jacobowitz  <drow@mvista.com>
14253
14254         * config/arm/arm.c (arm_legitimate_address_p): Don't check the mode
14255         size for minipool references.
14256
14257 2004-01-23  Roger Sayle  <roger@eyesopen.com>
14258
14259         * real.c (real_floor, real_ceil): Tweak to allow input and output
14260         arguments to overlap.
14261         (real_round): New function to implement round(3m) semantics.
14262         * real.h (real_round): Prototype here.
14263         * builtins.c (fold_builtin_round): New function to constant fold
14264         round, roundf and roundl.
14265         (fold_builtin): Call fold_builtin_round for BUILT_IN_ROUND{,F,L}.
14266
14267 2004-01-23  Alexandre Oliva  <aoliva@redhat.com>
14268
14269         PR optimization/13819
14270         * config/sh/sh.c (sh_reorg): Compensate for sharing of CLOBBERs
14271         introduced by 2004-01-20's Jan Hubicka's copy_insn change.
14272         (sh_handle_sp_switch_attribute): Remove warning.
14273
14274 2003-11-30  Jan Hubicka  <jh@suse.cz>
14275
14276         * i386.c (ix86_emit_restore_regs_using_mov):  Deal with large offsets.
14277
14278 2004-01-23  J"orn Rennecke <joern.rennecke@superh.com>
14279
14280         * doc/tm.texi: Insert some weasel words when LOAD_EXTEND_OP
14281         may or may not return non-NIL.
14282         * postreload.c (reload_cse_simplify_operands): In LOAD_EXTEND_OP code,
14283         check CANNOT_CHANGE_MODE_CLASS
14284
14285 2004-01-23  Jan Hubicka  <jh@suse.cz>
14286
14287         * basic-block.h (PROP_POSTRELOAD): New macro.
14288         (CLEANUP_LOG_LINKS): New.
14289         * cfgcleanup.c (cleanup_cfg): Only PROP_LOG_LINKS when asked to.
14290         * toplev.c (rest_of_handle_life):  Preserve LOG_LINKS trought cleanup_cfg.
14291
14292         * cselib.c (value_pool): New.
14293         (new_cselib_val): Use pool.
14294         (cselib_init): Initialize value_pool
14295         (cselib_finish): Free pool.
14296
14297 2004-01-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
14298
14299         * config/sparc/sparc.c (scan_record_type): New function.
14300         (function_arg_slotno): Use it to determine which kinds of
14301         registers the record can be passed in.
14302
14303 2004-01-22  James A. Mmorrison  <ja2morri@uwaterloo.ca>
14304
14305         * config/pa/fptr.c: Fix old-style definition.
14306
14307 2004-01-22  Paolo Bonzini  <bonzini@gnu.org>
14308
14309         PR optimization/13724
14310         * cse.c (fold_rtx) <SUBREG>:  Fold a SUBREG to zero if it
14311         represents the zero bits produced by a ZERO_EXTEND operation.
14312
14313 2004-01-22  Roger Sayle  <roger@eyesopen.com>
14314
14315         PR optimization/13821
14316         * simplify-rtx.c (simplify_subreg): Use subreg_lowpart_offset to
14317         correctly calculate the lowpart offset of the contracted subreg.
14318
14319 2004-01-22  Ian Lance Taylor  <ian@wasabisystems.com>
14320
14321         * doc/invoke.texi (Optimize Options): Note that --param arguments
14322         are subject to change without notice.
14323
14324 2004-01-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14325
14326         * config.gcc (mips-sgi-irix6*o32): Removed.
14327         * config/mips/iris6-o32-as.h: Likewise.
14328         * config/mips/iris6-o32-gas.h: Likewise.
14329         * config/mips/iris6-o32.h: Likewise.
14330
14331 2004-01-22  Jan Hubicka  <jh@suse.cz>
14332
14333         * cfgcleanup.c (first_pass): New static variable.
14334         (try_forward_edges):  Add work limiting check for threading.
14335         (try_crossjump_bb):  Add work limiting check for crossjumping.
14336         (try_optimize_cfg):  Maintain first pass variable.
14337
14338 2004-01-22  Bob Wilson  <bob.wilson@acm.org>
14339
14340         * config/xtensa/xtensa.c (function_arg): Generalize logic so that it
14341         handles complex and vector modes.
14342
14343 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
14344
14345         * config/h8300/h8300.h (REG_OK_FOR_INDEX_P_STRICT): Remove.
14346         (REG_OK_FOR_BASE_P_STRICT): Likewise.
14347         (STRICT): Likewise.
14348
14349 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
14350
14351         * c-semantics.c (genrtl_while_stmt, genrtl_do_stmt_1)
14352         (genrtl_for_stmt): Remove emit_nop calls.
14353
14354 2004-01-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14355
14356         PR target/13713
14357         PR target/13324
14358         * pa.md (movstrsi_prereload, movstrsi_postreload, movstrdi_prereload,
14359         movstrdi_postreload, clrstrsi_prereload, clrstrsi_postreload,
14360         clrstrdi_prereload, clrstrdi_postreload): Fix constraints.
14361
14362 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
14363
14364         * config/arm/arm.c: Include "debug.h".
14365         (thumb_pushpop): Take two new arguments.  Add some commentary.
14366         Output frame information when pushing.
14367         (thumb_exit, thumb_unexpanded_epilogue): Update calls to
14368         thumb_pushpop.
14369         (thumb_output_function_prologue): Likewise.  Accumulate a CFA
14370         offset, and pass it to thumb_pushpop.  Output CFI information.
14371         (thumb_expand_prologue): Add some frame-related markers and notes.
14372
14373 2004-01-22  Ulrich Weigand  <uweigand@de.ibm.com>
14374
14375         * config/s390/s390.c (s390_frame_info): Allow large frame sizes
14376         for TARGET_64BIT.
14377         (s390_arg_frame_offset): Change return type to HOST_WIDE_INT.
14378         * config/s390/s390-protos.h (s390_arg_frame_offset): Likewise.
14379
14380 2004-01-22  Roger Sayle  <roger@eyesopen.com>
14381             Paolo Bonzini  <bonzini@gnu.org>
14382
14383         * rtlanal.c (subreg_lsb_1): New function split out from subreg_lsb.
14384         (subreg_lsb): Change to call new subreg_lsb_1 helper function.
14385         * rtl.h (subreg_lsb_1): Prototype here.
14386         * simplify-rtx.c (simplify_subreg): Optimize subregs of zero and
14387         sign extensions.
14388
14389 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
14390
14391         * doc/tm.texi (CASE_VECTOR_PC_RELATIVE): Mention that the
14392         macro need not be defined if jump-tables should contain
14393         relative addresses only when -fPIC or -fPIC is in effect.
14394
14395 2004-01-22  Jan Hubicka  <jh@suse.cz>
14396
14397         * alias.c (reg_base_value): Turn into varray.
14398         (reg_base_value_size): Kill.
14399         (old_reg_base_value): New deletable varray.
14400         (alias_invariant_size): New variable.
14401         (REG_BASE_VALUE): Update to use varray.
14402         (find_base_value): Likewise.
14403         (record_set): Likewise.
14404         (record_base_value): Likewise.
14405         (memrefs_conflict_p): Likewise.
14406         (record_set): Likewise
14407         (record_base_value): Likewise.
14408         (memrefs_conflict_p): Use alias_invariant_size.
14409         (init_alias_analysis): Use varray; set alias_invariant_size;
14410         rescale other arrays to be sized by maxreg.
14411         (end_alias_analysis): Save reg_base_value; clear alias_invariant_size.
14412
14413 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
14414
14415         * config/sparc/sparc.c (function_arg_slotno): Use
14416         FLOAT_TYPE_P to detect FP fields in structures.
14417         (function_arg_record_value_1): Likewise.
14418         (function_arg_record_value_2): Likewise.
14419
14420 2004-01-22  Jan Hubicka  <jh@suse.cz>
14421
14422         * function.c (allocate_struct_function): Do not initialize expr, emit
14423         and varasm.
14424         (prepare_function_start): Do it here.
14425         * c-parse.in (maybe_type_qual): Do not produce line number notes.
14426
14427 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
14428
14429         PR target/13559
14430         * config/sparc/sparc.c (function_arg_record_value_3): Revert
14431         to 'word_mode' once the first slot has been filled.
14432
14433 2004-01-22  Olivier Hainque  <hainque@act-europe.fr>
14434
14435         * config/sparc/sparc.c (function_arg_record_value_1): Fix
14436         computation of the number of integer registers required.
14437
14438 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
14439
14440         * config/i386/i386.md: Simplify certain comparisons of
14441         const_int.
14442
14443 2004-01-21  Andrew Pinski  <apinski@apple.com>
14444
14445         PR target/13785
14446         * config/rs6000/rs6000.md (call_value): Force operand
14447         1 not operand 0 into a register.
14448
14449 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
14450
14451         * cpperror.c, cpptrad.c, longlong.h, params.def, rtl.def,
14452         unwind-dw2-fde.h: Update copyright.
14453
14454 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14455
14456         * pa-protos.h: Update copyright.
14457         * pa.h: Likewise.
14458         * pa.md: Likewise.
14459
14460 2004-01-21  Caroline Tice  <ctice@apple.com>
14461
14462         PR target/12308
14463         * config/i386/i386.md (fix_truncxfdi2): Add clause to clobber
14464         flags register.
14465         (fix_truncdfdi2): Likewise.
14466         (fix_truncsfdi2): Likewise.
14467         (*fix_truncdi_1): Likewise.
14468         (fix_truncxfsi2): Likewise.
14469         (fix_truncdfsi2): Likewise.
14470         (fix_truncsfsi2): Likewise.
14471         (*fix_truncsi_1): Likewise.
14472         (fix_truncxfhi2): Likewise.
14473         (fix_truncdfhi2): Likewise.
14474         (fix_truncsfhi2): Likewise.
14475         (*fix_trunchi_1): Likewise.
14476
14477 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
14478
14479         * alias.c, basic-block.h, c-common.c, c-common.h,
14480         c-cppbuiltin.c, c-opts.c, c-pragma.c, c-pretty-print.c,
14481         calls.c, cfg.c, cfgcleanup.c, cfgrtl.c, cgraph.h, collect2.c,
14482         combine.c, cppcharset.c, cpphash.h, cppinit.c, cpplib.c,
14483         cpplib.h, cppmacro.c, crtstuff.c, cselib.c, cselib.h,
14484         defaults.h, df.c, dominance.c, et-forest.c, expmed.c, expr.c,
14485         expr.h, fix-header.c, function.h, gcc.c, gcse.c, genattrtab.c,
14486         genautomata.c, genconditions.c, genemit.c, genflags.c,
14487         gengtype.c, gengtype.h, genopinit.c, genrecog.c, gensupport.c,
14488         ggc-zone.c, graph.c, haifa-sched.c, input.h, integrate.c,
14489         langhooks-def.h, langhooks.c, langhooks.h, line-map.c,
14490         line-map.h, local-alloc.c, optabs.c, optabs.h, postreload.c,
14491         ra.h, recog.c, reg-stack.c, regmove.c, reload.c, reorg.c,
14492         rtl.c, sched-deps.c, sched-ebb.c, sdbout.c, system.h,
14493         target.h, targhooks.c, toplev.h, tree-inline.c, unwind-pe.h,
14494         unwind.h, varray.c, varray.h: Update copyright.
14495
14496 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
14497
14498         * config/h8300/coff.h: Update copyright.
14499         * config/h8300/elf.h: Likewise.
14500         * config/h8300/h8300-protos.h: Likewise.
14501         * config/h8300/h8300.c: Likewise.
14502         * config/h8300/h8300.h: Likewise.
14503         * config/h8300/h8300.md: Likewise.
14504
14505 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14506
14507         * fixinc/inclhack.def (hpux10_stdio_declarations, ultrix_const3,
14508         ultrix_locale, ultrix_stdlib, ultrix_strings, ultrix_sys_time,
14509         ultrix_unistd): New hacks.
14510         * fixinc/tests/base/stdio.h (HPUX10_STDIO_DECLARATIONS_CHECK,
14511         ULTRIX_CONST2_CHECK): Add checks.
14512         * fixinc/tests/base/stdlib.h (ULTRIX_STDLIB_CHECK): Likewise.
14513         * fixinc/tests/base/strings.h (ULTRIX_STRINGS2_CHECK): Likewise.
14514         * fixinc/tests/base/unistd.h (ULTRIX_UNISTD_CHECK): Likewise.
14515         * fixinc/tests/base/sys/time.h (ULTRIX_SYS_TIME_CHECK): Likewise.
14516         * fixinc/tests/base/locale.h: New file.
14517         * fixinc/fixincl.x: Rebuilt.
14518
14519 2004-01-21  Andreas Jaeger  <aj@suse.de>
14520             Michael Matz  <matz@suse.de>
14521
14522         * doc/extend.texi (Extended Asm): Clarify memory clobber.
14523
14524 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
14525
14526         * crtstuff.c (frame_dummy, __do_global_ctors_1): Call
14527         _Jv_RegisterClasses through a function pointer.
14528
14529 2004-01-21  Falk Hueffner  <falk@debian.org>
14530
14531         PR target/12898
14532         * config/alpha/alpha.c (alpha_emit_set_const_1): If
14533         no_new_pseudos, use gen_rtx_SET directly for SImode constants
14534         which need multiple instructions to emit.
14535
14536 2004-01-21  Inaoka Kazuhiro  <inaoka.kazuhiro@renesas.com>
14537
14538         * config/m32r/m32r.h (CPP_SPEC): Define.
14539
14540 2004-01-21  Zack Weinberg  <zack@codesourcery.com>
14541
14542         * c-decl.c (merge_decls): Kill different_binding_level and
14543         different_tu arguments; simplify throughout.
14544         (duplicate_decls): Likewise.
14545         (pushdecl, merge_translation_unit_decls): Update calls to
14546         duplicate_decls.
14547
14548 2004-01-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14549
14550         * Makefile.in (pretty-print.o): Depend on $(CONFIG_H) and
14551         $(SYSTEM_H).
14552         (print-rtl1.o): Depend on $(SYSTEM_H).
14553
14554 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
14555
14556         PR bootstrap/12730
14557         * configure.ac: Delete definition and subsitution of docdir.
14558         Add info, man, srcman and srcinfo to target hooks. Create doc/
14559         directory.
14560         * configure: Regenerate.
14561         * Makefile.in: Don't substitute docdir and delete all references
14562         throughout.
14563         (MAKEINFOFLAGS): Define.
14564         (stmp-docobjdir): Delete.
14565         (INFOFILES, MANFILES): Define.
14566         (info): Call lang.info, srcinfo and lang.srcinfo.
14567         (generated-manpages): Call lang.man, srcman and lang.srcman.
14568         (srcinfo, srcman): New rules to copy back files to source directory.
14569         (doc/%.info, doc/%.dvi, doc/%.1, doc/%.7): New implict rule.
14570         (install-man): Revamp rule.
14571         (clean): Update dvi directory.
14572         (distclean): Delete TAGS from front end directorys.
14573         (maintainer-clean): Delete all document files in source directory.
14574
14575         objc/Make-lang.in (objc.man, objc.info): Dummy entries.
14576         (objc.srcman, objc.srcinfo): Likewise.
14577
14578 2004-01-20  Bruce Korb  <bkorb@gnu.org>
14579
14580         * fixinc/inclhack.def(math_exception): bypass only for glibc.
14581         (matherr_decl): rename & relocate as exception_structure.
14582         This fix must precede the math_exception fix.
14583
14584 2004-01-20  Roger Sayle  <roger@eyesopen.com>
14585
14586         * fold-const.c (fold_convert): Rename to fold_convert_const.
14587         (fold_convert_const): Change arguments to take a tree_code,
14588         a type and the operand/expression to be converted.  Return
14589         NULL_TREE if no simplification is possible.  Add support for
14590         FIX_CEIL_EXPR and FIX_FLOOR_EXPR in addition to FIX_TRUNC_EXPR.
14591         (fold): Handle FIX_CEIL_EXPR and FIX_FLOOR_EXPR.
14592         Adjust call to fold_convert to match new fold_convert_const.
14593         Avoid modifying the tree passed to fold in-place.
14594
14595 2004-01-21  Alan Modra  <amodra@bigpond.net.au>
14596
14597         * config/rs6000/sysv4.h (DWARF2_FRAME_REG_OUT): Define.
14598         * dwarf2out.c (output_cfi): Map regs using DWARF2_FRAME_REG_OUT.
14599         * doc/tm.texi (DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Document.
14600
14601 2004-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14602
14603         * pa-protos.h (compute_frame_size): Use HOST_WIDE_INT for frame sizes.
14604         * pa.c (store_reg, store_reg_modify, load_reg, set_reg_plus_d):
14605         Likewise.  Handle frames larger than 0x7fffffff on 64-bit ports.
14606         (emit_move_sequence): Check scratch_reg first in various if statements.
14607         Extend source simplification to handle all 64-bit CONST_INTs.
14608         (pa_output_function_prologue): Use HOST_WIDE_INT_PRINT_DEC for printing
14609         frame size.
14610         (hppa_expand_prologue, hppa_expand_epilogue): Use HOST_WIDE_INT for
14611         frame offset calculations.
14612         * pa.h (NEW_HP_ASSEMBLER): Add comment.
14613         (MAX_LEGIT_64BIT_CONST_INT, MIN_LEGIT_64BIT_CONST_INT,
14614         LEGITIMATE_64BIT_CONST_INT_P): Define.
14615         (LEGITIMATE_CONSTANT_P): Use LEGITIMATE_64BIT_CONST_INT_P.  Treat
14616         any CONST_INT as legitimate during and after reload.
14617         (VAL_32_BITS_P, INT_32_BITS): Define.
14618         (LEGITIMIZE_RELOAD_ADDRESS): Handle large frame offsets.
14619
14620 2004-01-20  Jan Hubicka  <jh@suse.cz>
14621
14622         * emit-rtl.c (verify_rtx_sharing, copy_insn_1,
14623         emit_copy_of_insn_after, emit_copy_of_insn_after): Clobbers
14624         containing hard regs are shared.
14625         (gen_hard_reg_clobber): New function.
14626         (hard_reg_clobbers): New array.
14627         * genemit.c (gen_exp): Use gen_hard_reg_clobber.
14628         (copy_rtx): Do not copy clobbers containing hard regs.
14629         * rtl.h (gen_hard_reg_clobber): Declare.
14630
14631 2004-01-20  Jan Hubicka  <jh@suse.cz>
14632
14633         * varray.c:  Include hashtab.h
14634         (varray_descriptor): New structure.
14635         (hash_descriptor, eq_descriptor, varray_descriptor,
14636         print_statistics): New static functions
14637         (varray_init, varray_grow): Update statistics
14638         (dump_varray_statistics): New function.
14639         * varray.h (dump_varray_statistics): Declare.
14640         * toplev.c (finalize): Call it.
14641         * Makefile.in (varray.o): Add dependency.
14642
14643 2004-01-20  Jan Hubicka  <jh@suse.cz>
14644
14645         * cselib.c: Include alloc-pool.h
14646         (empty_vals, empty_elt_lists, empty_elt_loc_lists): Kill.
14647         (elt_loc_list_pool, elt_list_pool, cselib_val_pool): Declare.
14648         (new_elt_list, new_elt_loc_list, unchain_one_elt_list,
14649         unchain_one_elt_loc_list_pool, unchain_one_value,
14650         new_cselib_val): Simplify using allocpool.
14651         (cselib_init): Initialize allocpools.
14652         (cselib_finish): Finish allocpools.
14653         * Makefile.in (cselib.o): Depend on alloc-pool.h
14654
14655 2004-01-20  Richard Sandiford  <rsandifo@redhat.com>
14656
14657         * config/mips/mips.c (mips_load_call_address): Make the call insn
14658         use $gp if it could be calling a lazy binding stub.
14659
14660 2004-01-20  Kazu Hirata  <kazu@cs.umass.edu>
14661
14662         * config/s390/s390.c (TARGET_PROMOTE_FUNCTION_ARGS): Define.
14663         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
14664         (TARGET_STRUCT_VALUE_RTX): Likewise.
14665         * config/s390/s390.h (PROMOTE_FUNCTION_ARGS): Remove.
14666         (PROMOTE_FUNCTION_RETURN): Remove.
14667         (STRUCT_VALUE): Remove.
14668
14669 2004-01-20  Denis Chertykov  <denisc@overta.ru>
14670
14671         PR bootstrap/13735
14672         * config/avr/avr.h (BASE_REG_CLASS): Don't permit to use X
14673         register as pointer after reload.
14674
14675 2004-01-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
14676
14677         PR optimization/12440
14678         * loop.c: Include ggc.h.
14679         (loop_optimize): Run garbage collector between optimization of loops.
14680         * Makefile.in (loop.o): Add GGC_H dependency.
14681
14682 2004-01-20  Hartmut Penner  <hpenner@de.ibm.com>
14683
14684         * gcc/config/rs6000/rs6000.c (function_arg) Handle
14685         vector register special in function without prototype.
14686         (function_arg_advance): Vector parameters get always
14687         GPRs allocated for the linux64 target.
14688
14689 2004-01-20  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
14690
14691         * config/m32r/m32r.h (TARGET_M32R2). Test for TARGET_M32R2_MASK
14692         not TARGET_M32RX_MASK.
14693
14694 2004-01-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
14695
14696         PR target/13557
14697         * config/sparc/sparc.c (function_arg): Reorder the cases.
14698
14699 2004-01-19  Per Bothner  <per@bothner.com>
14700
14701         Move cpp_reader's line_maps field to a shared global.
14702         * cpphash.h (cpp_reader):  Rename line_maps field to line_table
14703         and change the type to a pointer rather than a struct.
14704         * cppinit.c (cpp_push_main_field):  Adjust accordingly.
14705         * cpplib.c (do_include_common, _cpp_do_file_change, cpp_get_callbacks):
14706         Likewise.
14707         * cppfiles.c (validate_pch):  Likewise.
14708         * cppmacro.c (_cpp_warn_if_unused_macro, _cpp_builtin_macro_text):
14709         Likewise.
14710         * cpperror.c (print_location):  Likewise.
14711         * cpplib.h (cpp_create_reader):  New line_maps pointer parameter.
14712         * cppinit.c (cpp_create_reader):  Handle new parameter.
14713         (cpp_destroy):  Don't free line_maps - that's no longer our job.
14714         * input.h (line_table):  New variable.
14715         * toplev.c (line_table):  Declare variable.
14716         (general_init):  Initialize line_table.
14717         * c-opts.c (c_common_init_options):  Pass line_table to
14718         cpp_create_reader.
14719         * fix-header.c (read_scan_file):  New local variable line_table.
14720         Initialize, and pass it to cpp_create_reader.
14721         * Makefile.in (LIBS, LIBDEPS):  Add libcpp.a.
14722         (C_AND_OBJC_OBJS, fix-header):  Remove redundant libcpp.a.
14723
14724 2004-01-19  Per Bothner  <per@bothner.com>
14725
14726         Implement a cache for linemap_lookup.
14727         * line-map.h (struct_line_maps):  Add cache field.
14728         * line-map.c (linemap_init):  Zero cache field.
14729         (linemap_add):  Set cache field to offset of newly allocated map.
14730         (linemap_lookup):  Use and set cache field.
14731
14732 2004-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
14733
14734         PR optimization/13567
14735         * cse.c (cse_basic_block): Call cse_insn with a non-null
14736         libcall_insn for the last SET insn of a no-confilict block.
14737
14738 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
14739
14740         * Makefile.in (target_noncanonical, program_transform_name): Use
14741         immediate define instead of deferred.
14742         (GCC_INSTALL_NAME, GCC_TARGET_INSTALL_NAME, CPP_INSTALL_NAME,
14743         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, GCOV_INSTALL_NAME,
14744         GCCBUG_INSTALL_NAME): Define via a immediate $(shell) instead of
14745         deferred backquote.
14746
14747 2004-01-20  Joseph S. Myers  <jsm@polyomino.org.uk>
14748
14749         * c-decl.c (c_init_decl_processing): Set pedantic_lvalues to
14750         true unconditionally.
14751         * c-typeck.c (unary_complex_lvalue, pedantic_lvalue_warning):
14752         Remove.
14753         (build_unary_op, build_modify_expr): Don't handle extended
14754         lvalues.
14755         (build_component_ref, build_conditional_expr): Call non_lvalue
14756         instead of pedantic_non_lvalue.
14757         (build_c_cast): Don't condition use of non_lvalue on pedantic.
14758         * fold-const.c (fold): Don't check pedantic directly for
14759         COMPOUND_EXPR.  Ensure that results for COMPOUND_EXPR are
14760         passed to pedantic_non_lvalue.
14761         * doc/extend.texi: Remove documentation of extended lvalues.
14762
14763 2004-01-19  Roger Sayle  <roger@eyesopen.com>
14764
14765         PR optimization/5263
14766         * simplify-rtx.c (associative_constant_p): Delete.
14767         (simplify_associative_operation): Rewrite to linearize terms, and
14768         attempt to simplify new term against both left and right subterms.
14769         (simplify_binary_operation): Call swap_commutative_operands_p on
14770         op0 and op1, not trueop0 and trueop1.  Move the initialization of
14771         trueop0 and trueop1 down to where first needed.
14772         (simplify_relational_operation): Likewise.
14773         * rtlanal.c (commutative_operand_precedence): Also order constant
14774         operands using avoid_constant_pool_reference.
14775
14776 2004-01-19  Richard Henderson  <rth@redhat.com>
14777
14778         * config/alpha/alpha.c (aligned_memory_operand): Check MEM_ALIGN,
14779         don't check memory mode.
14780         (unaligned_memory_operand): Likewise.
14781         (reload_inqi, reload_inhi, reload_outqi, reload_outhi): Don't
14782         abort for op0 not MEM.
14783
14784         * config/alpha/alpha.c (alpha_expand_mov_nobwx): If the destination
14785         is not a reg, copy to a scratch first.
14786         (aligned_loadqi, aligned_loadhi, unaligned_loadqi, unaligned_loadhi,
14787         unaligned_loadqi_le, unaligned_loadqi_be, unaligned_loadhi_le,
14788         unaligned_loadhi_be): Expect op0 in DImode; don't SUBREG.
14789         (reload_inqi, reload_inhi): Fix mode of op0.
14790         (reload_inqi_help, reload_inhi_help, reload_outqi_help,
14791         reload_outhi_help): Likewise.  Use define_insn_and_split.
14792
14793         * config/alpha/alpha.md (call peepholes): Check for REG_NORETURN
14794         as well as $29 dead.
14795
14796 2004-01-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
14797
14798         * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): New.  Emit
14799         "tls_object" for thread-local objects.
14800         * config/sparc/sparc.c (sparc_elf_asm_named_section): Emit
14801         "#tls" for thread-local sections.
14802         * configure.ac (thread-local checks): Specify --fatal-warnings in
14803         every binutils-specific checks.  For sparc*-*-*, test whether the
14804         OS is Solaris and the tools are native and act accordingly.
14805         * configure: Rebuild.
14806
14807 2004-01-19  Jeff Law  <law@redhat.com>
14808
14809         * contrib.texi: Update Paolo Carlini's entry.  New entries for
14810         Jerry Quinn and Petur Runolfsson.
14811
14812 2004-01-19  Roger Sayle  <roger@eyesopen.com>
14813
14814         * config/i386/i386.md (*movhi_1, *movqi_1): When optimizing for
14815         size, don't use the larger zero-extending loads.
14816
14817 2004-01-19  Richard Henderson  <rth@redhat.com>
14818
14819         * alpha.h (HARD_REGNO_MODE_OK): Disallow SImode in FP regs.
14820         * alpha.md (UNSPEC_NT_LDA): Remove.
14821         (UNSPEC_CVTLQ, cvtlq): New.
14822         (extendsidi2_1): Rename from extendsidi2_nofix; remove f/f.
14823         (extendsidi2_fix): Remove.
14824         (extendsidi2 splitter): Use cvtlq.
14825         (extendsidi2 fp peepholes): Remove.
14826         (cvtql): Use SFmode instead of SImode.
14827         (fix_trunc?fsi): Update to match.
14828         (floatsisf2_ieee, floatsisf2, floatsidf2_ieee, floatsidf2): New.
14829         (movsi): Rename from movsi_nofix, remove f alternatives.
14830         (movsi_nt_vms): Similarly.
14831         (movsi_fix, movsi_nt_vms_fix): Remove.
14832         (nt_lda): Remove.
14833         * alpha.c (alpha_expand_prologue): Use adddi3, not nt_lda.
14834
14835 2004-01-19  Jan Hubicka  <jh@suse.cz>
14836
14837         * cgraph.c (cgraph_remove_node): Fix removal from linked list.
14838         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear next_needed
14839         list.
14840         (cgraph_remove_unreachable_nodes): New function
14841         (cgraph_decide_inlining_of_small_function): Fix pasto.
14842         (cgraph_decide_inlining_incrementally): Fix pasto.
14843         (cgrpah_decide_inlining): Likewise; remove unreachable nodes.
14844
14845 2004-01-19  Steven Bosscher  <stevenb@suse.de>
14846
14847         * gengtype.c (header_file): Make it static.
14848         (write_types_process_field, write_enum_defn): Minor whitespace fixes.
14849         * gengtype.h (header_file): No longer extern.
14850
14851 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
14852
14853         * defaults.h (CASE_VECTOR_PC_RELATIVE): Provide the default.
14854         * expr.c (CASE_VECTOR_PC_RELATIVE): Remove.
14855         * stmt.c (CASE_VECTOR_PC_RELATIVE): Likewise.
14856
14857 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
14858
14859         * stmt.c (HAVE_casesi): Define it not already defined.
14860         (HAVE_tablejump): Likewise.
14861         (expand_end_case_type): Resort to the binary tree method if
14862         neither casesi or tablejump is available.
14863
14864 2004-01-18  Daniel Jacobowitz  <drow@mvista.com>
14865
14866         * final.c (final_scan_insn): Make non-static again.
14867         * output.h (final_scan_insn): Re-add prototype.
14868         * config/arc/arc.c (arc_output_function_epilogue): Add NULL
14869         to final_scan_insn call.
14870         * config/cris/cris.c (cris_target_asm_function_epilogue): Likewise.
14871         * config/mips/mips.c (mips_output_conditional_branch): Likewise.
14872         * config/pa/pa.c (output_lbranch, output_call): Likewise.
14873         * config/sh/sh.c (print_slot): Likewise.
14874         * config/sparc/sparc.c (sparc_nonflat_function_epilogue): Likewise.
14875         (output_sibcall, sparc_flat_function_epilogue): Likewise.
14876
14877 2004-01-18  Jan Hubicka  <jh@suse.cz>
14878
14879         * basic-block.h (try_redirect_by_replacing_jump): Declare.
14880         * cfgcleanup.c (try_optimize_cfg): Use it.
14881         * cfgrtl.c (try_redirect_by_replacing_jump): Export.
14882         (rtl_redirect_edge_and_branch, cfg_layout_redirect_edge_and_branch):
14883         Kill hack.
14884         (cfg_layout_merge_blocks): Use try_redirect_by_replacing_jump.
14885
14886         Revert:
14887         2004-01-16  Geoffrey Keating  <geoffk@apple.com>
14888
14889                 * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
14890                 even after reload, just don't remove the actual jump tables.
14891
14892 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
14893
14894         * config/rs6000/rs6000.h (STRICT_ARGUMENT_NAMING): Remove.
14895
14896 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
14897
14898         * defaults.h (ASM_OUTPUT_ADDR_VEC_ELT): Fix the computation of
14899         the size of a pointer in bytes.
14900
14901 2004-01-18  Roger Sayle  <roger@eyesopen.com>
14902
14903         * builtins.c (expand_builtin_expect_jump): Fix thinko of reusing
14904         live "next" variable, which could lead to an infinite loop.
14905
14906 2004-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
14907
14908         * config/rs6000/altivec.h: Wrap C++ functions in extern "C++"
14909         block.
14910
14911         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
14912         Check for NULL in the chain and remove repeated code.
14913
14914 2004-01-18  Jan Hubicka  <jh@suse.cz>
14915
14916         * coverage.c (checksum_string): Rename to ...
14917         (coverage_checksum_string): ... this one, Use crc32_string; recognize
14918         names containing random number and zero the number out in order to get
14919         match.
14920
14921 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
14922
14923         * config/mips/mips.c (mips_got_alias_set): Mark for PCH.
14924
14925 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
14926
14927         * doc/c-tree.texi, doc/cpp.texi, doc/extend.texi,
14928         doc/frontends.texi, doc/gcov.texi, doc/gty.texi, doc/install.texi,
14929         doc/invoke.texi, doc/libgcc.texi, doc/md.texi, doc/rtl.texi,
14930         doc/sourcebuild.texi, doc/standards.texi, doc/tm.texi,
14931         doc/trouble.texi: Remove trailing whitespace.
14932
14933 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
14934
14935         PR target/7618
14936         * config/mips/mips.c: Include cfglayout.h.
14937         (TARGET_ASM_OUTPUT_MI_THUNK, TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
14938         (mips_unspec_offset_high): Add temporary register argument.
14939         (mips_load_call_address): New function, split out from...
14940         (mips_expand_call): ...here.
14941         (mips_output_cplocal): New function.
14942         (mips_output_function_prologue, mips_output_function_epilogue): Use it.
14943         (mips_emit_loadgp): New function, split out from...
14944         (mips_expand_prologue): ...here.
14945         (mips_output_mi_thunk): New function.
14946
14947 2004-01-17  Bernardo Innocenti  <bernie@develer.com>
14948
14949         * longlong.h (mc68020, __mc68030__, mc68030, __mc68040__, mc68040,
14950         mcpu32): Remove redundant checks for implied target predefines.
14951
14952 2004-1-17  Andrew Pinski  <pinskia@physics.uc.edu>
14953
14954         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
14955         Return type is unsigned int not int.
14956         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
14957         Likewise.
14958
14959 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
14960
14961         * doc/contrib.texi, doc/cppenv.texi, doc/extend.texi,
14962         doc/install.texi, doc/invoke.texi, doc/tm.texi: Consistently use
14963         "GNU/Linux" and "Microsoft Windows" terminology.
14964
14965 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
14966
14967         * doc/c-tree.texi, doc/compat.texi, doc/cpp.texi,
14968         doc/cppopts.texi, doc/extend.texi, doc/install.texi,
14969         doc/interface.texi, doc/invoke.texi, doc/libgcc.texi, doc/md.texi,
14970         doc/objc.texi, doc/rtl.texi, doc/tm.texi, doc/trouble.texi: Use
14971         @smallexample instead of @example.
14972
14973 2004-01-17  Ziemowit Laski  <zlaski@apple.com>
14974
14975         * objc/objc-act.c (build_objc_method_call): Use target
14976         hooks instead of macros to determine if ..._stret
14977         dispatchers should be used (NeXT runtime only).
14978
14979 2004-01-17  Roger Sayle  <roger@eyesopen.com>
14980
14981         * builtins.c (expand_builtin_expect_jump): Fix mistake in my
14982         last patch.  Use XEXP (x, 0) to get a LABEL_REF's CODE_LABEL.
14983
14984 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
14985
14986         * rtl.h (emit_insn_before_sameloc, emit_jump_insn_before_sameloc)
14987         (emit_call_insn_before_sameloc, emit_insn_after_sameloc)
14988         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): New
14989         macros.
14990         * reload1.c (emit_reload_insns): Use them.
14991         * emit-rtl.c (emit_insn_before_sameloc, emit_insn_after_sameloc)
14992         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): Check
14993         for NULL PATTERN.
14994
14995 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
14996
14997         * final.c (SEEN_BB, SEEN_NOTE, SEEN_EMITTED): Define.
14998         (final_scan_insn): Update to take an additional SEEN argument.  Emit
14999         a line note after the prologue.  Make static.
15000         (line_note_exists): Remove.
15001         (final): Don't initialize line_note_exists.  Update call to
15002         final_scan_insn.
15003         * output.h (final_scan_insn): Remove prologue.
15004         * function.c (set_insn_locators): Update comment.
15005         (thread_prologue_and_epilogue_insns): Add a comment.
15006
15007 2004-01-17  Andrew Pinski  <pinskia@physics.uc.edu>
15008
15009         PR target/10781
15010         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
15011         Prototype.
15012         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
15013         New function.
15014         * config/rs6000/linux64.h (ROUND_TYPE_ALIGN): Use it.
15015         * config/rs6000/aix.h (ROUND_TYPE_ALIGN): Likewise.
15016         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Likewise.
15017
15018 2004-01-17  Jan Hubicka  <jh@suse.cz>
15019
15020         * toplev.c (rest_of_handle_reorder_blocks): Fix pasto in previous
15021         commit.
15022
15023         * toplev.c (HAVE_conditional_execution): Provide default.
15024         (rest_of_handle_reorder_blocks): For conditional_execution target
15025         update liveness once after all transformations
15026         (rest_of_compilation): Do crossjumping before ce3.
15027
15028 2004-01-17  Geoffrey Keating  <geoffk@apple.com>
15029
15030         * alias.c (new_alias_set): Mark last_alias_set for PCH.
15031         (get_varargs_alias_set): Rename 'set' to 'varargs_set' and mark it
15032         for PCH.
15033         (get_frame_alias_set): Likewise, except rename it to 'frame_set'.
15034         * config/rs6000/rs6000.c (rs6000_sr_alias_set): Mark for PCH.
15035         (get_TOC_alias_set): Mark 'set' for PCH.
15036
15037 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
15038
15039         * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
15040         even after reload, just don't remove the actual jump tables.
15041
15042 2004-01-17  J. Brobecker  <brobecker@gnat.com>
15043
15044         * dwarf2out.c (is_subrange_type): Renamed from is_ada_subrange_type().
15045         Remove checks for is_ada() and TREE_UNSIGNED.
15046         (subrange_type_die): Emit a byte_size attribute if the subrange
15047         type size is different from the base type size.
15048         (modified_type_die): Replace call to is_ada_subrange_type() by
15049         call to is_subrange_type().
15050
15051 2004-01-16  Andrew Pinski  <pinskia@physics.uc.edu>
15052
15053         * config/sh/sh.c: Include ggc.h.
15054
15055 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
15056
15057         * Makefile.in (MD5_H): New.
15058         (fold-const.o): Depend on md5.h.
15059         (dwarf2out.o): Likewise.
15060         (cppfiles.o): Likewise.
15061         * cppfiles.c: Include md5.h.
15062         (should_stack_file): Check against list read from PCH file.
15063         (struct pchf_data): New.
15064         (pchf): New variable.
15065         (struct pchf_adder_info): New.
15066         (pchf_adder): New.
15067         (pchf_save_compare): New.
15068         (_cpp_save_file_entries): New.
15069         (_cpp_read_file_entries): New.
15070         (struct pchf_compare_data): New.
15071         (pchf_compare): New.
15072         (check_file_against_entries): New.
15073         * cpphash.h (_cpp_save_file_entries): Prototype.
15074         (_cpp_read_file_entries): Prototype.
15075         * cpppch.c (cpp_write_pch_state): Write the list of headers.
15076         (cpp_read_state): Read the list of headers.
15077
15078 2004-01-17  Jan Hubicka  <jh@suse.cz>
15079
15080         * c-common.c (c_estimate_num_insns_1): Handle builtin_constant_p and
15081         builtin_expect specially.
15082         * params.def (PARAM_MAX_INLINE_INSNS_AUTO): Set to 100.
15083         (PARAM_LARGE_FUNCTION_INSNS): Set to 3000.
15084         * invoke.texi (max-inline-insns-single): Set to 100.
15085         (large-function-insns): Set to 3000.
15086
15087 2004-01-16  Eric Christopher  <echristo@redhat.com>
15088             Chandrakala Chavva <cchavva@redhat.com>
15089
15090         * cppcharset.c (one_iso88591_to_utf8): New function.
15091         (convert_iso88591_utf8): Ditto. Use.
15092         (conversion_tab): Use.
15093         (_cpp_input_to_utf8): New function.
15094         (_cpp_init_iconv_buffer): Ditto.
15095         (_cpp_close_iconv_buffer): Ditto.
15096         * cpphash.h: Prototype new functions.
15097         (cpp_buffer): Add input_cset_desc.
15098         * cppinit.c: Add input_charset default.
15099         * cpplib.c (cpp_push_buffer): Support init and
15100         close of iconv.
15101         * cpplib.h (cpp_options): Add input_charset.
15102
15103 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
15104
15105         * system.h (ASM_OUTPUT_SECTION_NAME): Poison.
15106         * config/alpha/unicosmk.h: Remove a commented-out definition
15107         of ASM_OUTPUT_SECTION_NAME.
15108         * config/stormy16/stormy16.h: Likewise.
15109
15110 2004-01-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
15111
15112         * fixinc/inclhack.def (alpha___extern_prefix): Renamed to ...
15113         (alpha___extern_prefix_sys_stat): ... this.
15114         Apply to <sys/mount.h>, too.
15115         Tweak to match more variations.
15116         * fixinc/tests/base/sys/stat.h: Adapt for new hackname.
15117
15118         * fixinc/inclhack.def (alpha___extern_prefix,
15119         alpha___extern_prefix_standards): New hacks to obey
15120         __PRAGMA_EXTERN_PREFIX.
15121         * fixinc/tests/base/testing.h [ALPHA___EXTERN_PREFIX_CHECK]: New
15122         test.
15123         * fixinc/tests/base/standards.h: Likewise.
15124
15125         * fixincl/inclhack.def (alpha_pthread): Tweak to match more
15126         variations.
15127         New testcase.
15128         * fixinc/tests/base/pthread.h: Handle it.
15129
15130         * fixincl/inclhack.def (bad_lval): Sort file list.
15131         Add many missing files up to Tru64 UNIX V5.1B.
15132         * gcc/fixinc/tests/base/libgen.h: Renamed to ...
15133         * gcc/fixinc/tests/base/dirent.h: ... this to match new file list
15134         order.
15135
15136         * fixinc/fixincl.x: Regenerate.
15137
15138 2004-01-16  Mark Mitchell  <mark@codesourcery.com>
15139
15140         * version.c (version_string): Change to 3.5.0.
15141         * doc/include/gcc-common.texi (version-GCC): Likewise.
15142
15143 2004-01-16  Jan Hubicka  <jh@suse.cz>
15144
15145         * i386.md (load_tp_di): Fix pasto.
15146
15147         PR opt/13608
15148         * i386.c (ix86_compute_frame_layout): Fix for alloca on leaf function.
15149
15150         * c-pretty-print.c (pp_c_type_cast, pp_c_abstract_declarator,
15151         pp_c_character_constant, pp_c_floating_constant,
15152         pp_c_additive_expression, pp_c_shift_expression,
15153         pp_c_equality_expression, pp_c_and_expression,
15154         pp_c_exclusive_or_expression, pp_c_inclusive_or_expression,
15155         pp_c_logical_and_expression): Remove inline modifier.
15156         * dwarf2out.c (get_AT): Likewise.
15157         * et-forest.c (et_splay): Likewise.
15158         * ra.h (ra_alloc, ra_calloc): Likewise
15159
15160 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
15161
15162         * config/frv/frv-protos.h: Fix comment formatting.
15163         * config/frv/frv.c: Likewise.
15164         * config/frv/frv.h: Likewise.
15165         * config/frv/frv.md: Likewise.
15166         * config/frv/frvbegin.c: Likewise.
15167         * config/frv/frvend.c: Likewise.
15168
15169 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
15170
15171         * system.h (LINKER_DOES_NOT_WORK_WITH_DWARF2): Poison.
15172         * doc/tm.texi (PREFERRED_DEBUGGING_TYPE): Don't mention
15173         LINKER_DOES_NOT_WORK_WITH_DWARF2.
15174         (LINKER_DOES_NOT_WORK_WITH_DWARF2): Remove.
15175
15176 2004-01-16  J"orn Rennecke <joern.rennecke@superh.com>
15177
15178         PR 11864
15179         * postreload.c (reload_cse_simplify_operands): Don't remove
15180         implicit extension from LOAD_EXTEND_OP.
15181
15182 2004-01-16  Jan Hubicka  <jh@suse.cz>
15183
15184         PR opt/11350
15185         * cfgcleanup.c (try_optimize_cfg): Suppress tablejump removal
15186         after reload.
15187         * cfgrtl.c (rtl_can_merge_blocks, cfglayout_can_merge_blocks,
15188         rtl_try_redirect_by_replacing_branch): Likewise.
15189
15190 2004-01-15  Geoffrey Keating  <geoffk@apple.com>
15191
15192         PR pch/13689
15193         * alias.c (struct alias_set_entry): Mark for GC.
15194         (alias_sets): Make static, mark for GC.
15195         (record_alias_subset): Use GC to allocate alias structures.
15196         * varray.c (element): Make generic varrays GCed.
15197
15198         PR pch/13361
15199         * c-typeck.c (constructor_asmspec): Delete.
15200         (struct initializer_stack): Delete field 'asmspec'.
15201         (start_init): Delete saving of asmspec.
15202         (finish_init): Don't update constructor_asmspec.
15203         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
15204         * stmt.c (expand_asm): Duplicate strings from tree.
15205         (expand_asm_operands): Likewise.
15206         * tree.c (tree_size): Update computation of size of STRING_CST.
15207         (make_node): Don't make STRING_CST nodes.
15208         (build_string): Allocate string with tree node.
15209         * tree.def (STRING_CST): Update comment.
15210         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
15211         (tree_string): Place contents of string in tree node.
15212         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
15213         from tree.
15214
15215         * config/rs6000/rs6000.c (rs6000_va_arg): No need to special-case
15216         altivec operands.
15217
15218 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
15219
15220         * c-common.h: Fix comment formatting.
15221         * c-cppbuiltin.c: Likewise.
15222         * c-pragma.c: Likewise.
15223         * calls.c: Likewise.
15224         * collect2.c: Likewise.
15225         * cppcharset.c: Likewise.
15226         * cpptrad.c: Likewise.
15227         * dbxout.c: Likewise.
15228         * defaults.h: Likewise.
15229         * dwarf2out.c: Likewise.
15230         * fold-const.c: Likewise.
15231         * genautomata.c: Likewise.
15232         * genconditions.c: Likewise.
15233         * genflags.c: Likewise.
15234         * gengtype.c: Likewise.
15235         * integrate.c: Likewise.
15236         * loop.c: Likewise.
15237         * predict.c: Likewise.
15238         * sdbout.c: Likewise.
15239
15240 2004-01-15  Zack Weinberg  <zack@codesourcery.com>
15241
15242         * config/ia64/ia64.md (*movti_internal): C output template
15243         extracted to ia64.c.
15244         (*movti_internal_reg): Delete.
15245         (reload_inti, reload_outti): Use the correct mode on operand 2
15246         in the first place, don't fix it up in the output template.
15247         (movtf, reload_ointf, reload_outtf): New expanders.
15248         (*movtf_internal): New define_insn_and_split.
15249         * config/ia64/ia64.c (ia64_split_timode): Rename to ia64_split_tmode;
15250         make static; do not hand TFmode CONST_DOUBLEs to split_double.
15251         (ia64_split_tmode_move): New function, body mostly pulled
15252         from ia64.md:*movti_internal.
15253         (ia64_function_arg_words): New function, extracted common
15254         logic from ia64_function_arg et seq.
15255         (ia64_function_arg_offset): Likewise.  Handle correctly the
15256         case of a scalar quantity 16 bytes wide with only 8-byte alignment.
15257         (ia64_function_arg, ia64_function_arg_partial_nregs)
15258         (ia64_function_arg_advance): Use ia64_function_arg_words and
15259         ia64_function_arg_offset.
15260         (ia64_function_value): TCmode does not go in float regs.
15261         (ia64_secondary_reload_class): Also handle TFmode.
15262         * config/ia64/ia64-protos.h: Remove prototype for
15263         ia64_split_timode; add prototype for ia64_split_tmode_move.
15264
15265 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
15266
15267         * Makefile.in (MAINT): Make it an immediate assignment.
15268
15269 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
15270
15271         * config/m32r/m32r.md: Remove useless calls to gen_lowpart.
15272
15273 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
15274
15275         * config/h8300/coff.h: Replace Hitachi with Renesas.
15276         * config/h8300/elf.h: Likewise.
15277         * config/h8300/h8300-protos.h: Likewise.
15278         * config/h8300/h8300.c: Likewise.
15279         * config/h8300/h8300.h: Likewise.
15280         * config/h8300/h8300.md: Likewise.
15281         * config/h8300/lib1funcs.asm: Likewise.
15282
15283 2004-01-15  Andrew Pinski  <apinski@apple.com>
15284
15285         * config/rs6000/rs6000.c (uses_TOC): Wrap #if TARGET_ELF
15286         around it.
15287
15288 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
15289
15290         * config/h8300/h8300.c (h8300_return_in_memory): New.
15291         (TARGET_STRUCT_VALUE_RTX): Likewise.
15292         (TARGET_RETURN_IN_MEMORY): Likewise.
15293         * config/h8300/h8300.h (STRUCT_VALUE): Remove.
15294         (RETURN_IN_MEMORY): Likewise.
15295
15296 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
15297
15298         PR optimization/13375
15299         * gcse.c (handle_avail_expr): Just return if the source is not a
15300         single set.
15301
15302 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
15303             Daniel Jacobowitz  <drow@mvista.com>
15304
15305         * arm/lib1funcs.asm (ARM_FUNC_START): Correct interworking case.
15306         (EQUIV): Define.
15307         (ARM_FUNC_ALIAS): New macro.
15308         * arm/ieee754-df.S (gedf2, ledf2, nedf2, eqdf2): Use it.
15309         * arm/ieee754-sf.S (gesf2, lesf2, nesf2, eqsf2): Use it.
15310
15311 2004-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15312
15313         PR optimization/12372
15314         * calls.c (expand_call): Add call_fusage data for stack arguments in
15315         constant calls.
15316
15317 2004-01-15  Alan Modra  <amodra@bigpond.net.au>
15318
15319         * config/rs6000/rs6000.c (uses_TOC): Correct comment.  Make static.
15320         (rs6000_elf_declare_function_name): Formatting.
15321         * config/rs6000/rs6000-protos.h (uses_TOC): Remove declaration.
15322
15323 2004-01-15  Jan Hubicka  <jh@suse.cz>
15324
15325         PR bootstrap/13692
15326         * sched-deps.c (sched_analyze_1, sched_analyze_2): Fix thinko in
15327         previous patch.
15328
15329 2004-01-15  Richard Henderson  <rth@redhat.com>
15330
15331         * config/alpha/alpha.h (REG_ALLOC_ORDER): Reorder fp regs after
15332         integer regs of the same call-savedness.
15333
15334 2004-01-15  Andreas Schwab  <schwab@suse.de>
15335
15336         PR bootstrap/13562
15337         * config/m68k/m68k.c (output_move_const_into_data_reg): Clear cc
15338         status for NOTB/NOTW/NEGW methods.
15339
15340 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
15341
15342         * doc/invoke.texi: Update dump file names.  Fix a typo.
15343
15344 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
15345
15346         * builtins.c (expand_builtin_va_end): Don't use
15347         EXPAND_BUILTIN_VA_END.
15348         * system.h (EXPAND_BUILTIN_VA_END): Poison.
15349         * config/d30v/d30v.h: Remove a commented-out definition of
15350         EXPAND_BUILTIN_VA_END.
15351         * config/stormy16/stormy16.h: Likewise.
15352
15353 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
15354
15355         * system.h (STRUCT_VALUE_INCOMING_REGNUM): Poison.
15356         * targhooks.c (default_struct_value_rtx): Don't use
15357         STRUCT_VALUE_INCOMING_REGNUM.
15358
15359 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
15360
15361         PR bootstrap/12744
15362         * configure.in: Revamp enable-generated-files-in-srcdir rule to define
15363         GENINSRC and not parsedir.  Define srcextra as a langhook.
15364         * configure: Regenerate.
15365         * Makefile.in: Suppress default .l.c rule.  Don't substitute
15366         parsedir and delete all references throughout.  Conditionally define
15367         rule for srcextra dependent on GENINSRC.
15368         (stmp-docobjdir): Delete.
15369         (c-parse.o, gengtype-lex.o, gengtype-yacc.o): Use implicit build rule.
15370         (srcextra): Copy c-parse.y, c-parse.c, gengtype-lex.c, gengtype-yacc.c,
15371         and gengtype-yacc.h back to source directory.
15372         (maintainer-clean): Delete all parse files in source directory.
15373         (distclean): Delete generated files.
15374
15375         * objc/Make-lang.in (objc-parse.o): Use implicit build rule.
15376         (objc-parse.c, objc-parse.y): Don't use parsedir.
15377         (objc.srcextra): Copy objc-parse.y and objc-parse.c back to source
15378         directory if requested.
15379         (po-generated): Don't use parsedir.
15380         (objc.maintainer-clean): Delete above files from source directory.
15381
15382 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
15383
15384         * doc/tm.texi (FUNCTION_VALUE): Fix a typo.
15385
15386 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
15387
15388         * doc/tm.texi: Replace RETURN_IN_MEMORY with
15389         TARGET_RETURN_IN_MEMORY.
15390
15391 2004-01-15  Jan Hubicka  <jh@suse.cz>
15392
15393         * builtins.c (std_expand_builtin_va_arg): Align operand when needed.
15394         * i386.c (init_cumulative_args): Set warn_sse; fix handling of variadic
15395         functions accepting SSE arguments
15396         (function_arg): Warn only when asked to warn.
15397         * i386.h (ix86_args): Add warn_sse/warn_mmx fiels.
15398
15399 2004-01-14  Joseph S. Myers  <jsm@polyomino.org.uk>
15400
15401         * c-parse.in (stmts_and_decls): Make label at end of compound
15402         statement a hard error.
15403
15404 2004-01-14  Jan Hubicka  <jh@suse.cz>
15405
15406         * cgraph.c (create_edge): Use local.redefined_extern_inline.
15407         * cgraph.h (cgraph_local_info): Sort fields by size; add
15408         redefined_extern_inline
15409         (cgraph_global_info): Sort fields by size.
15410         (cgraph_node): Likewise.
15411         * cgraphunit.c (cgraph_finalize_function): Se
15412         local.redefined_extern_inline on redefinition.
15413         (cgraph_analyze_function): Use it; fix formating.
15414
15415 2004-01-14  Jan Hubicka  <jh@suse.cz>
15416
15417         PR c++/10776
15418         * sched-deps.c (trye_dependency_cache, anti_dependency_cache,
15419         outptu_dependency_cache, forward_dependency_cahe): Trun to vectors of
15420         bitmaps
15421         (cache_size): New variable
15422         (add_dependence): Update use; canonize early memory locations
15423         (sched_analyze_1): Likewise.
15424         (sched_analyze_2): Likewise.
15425         (init_dependency_caches): Initialize bitmaps.
15426         (free_dependency_caches): Free bitmaps
15427
15428 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
15429
15430         * calls.c: Replace STRICT_ARGUMENT_NAMING in comments with
15431         targetm.calls.strict_argument_naming().
15432         * target.h: Likewise.
15433
15434 2004-01-14  Richard Henderson  <rth@redhat.com>
15435
15436         PR debug/13231
15437         * dwarf2out.c (dwarf2out_stack_adjust): Skip prologue and epilogue
15438         instructions.
15439
15440 2004-01-14  Richard Henderson  <rth@redhat.com>
15441
15442         PR c++/12491
15443         * except.c (struct eh_region): Add u.fixup.resolved.
15444         (resolve_one_fixup_region): Split out from ...
15445         (resolve_fixup_regions): ... here.
15446
15447 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
15448
15449         * config/mn10300/mn10300.h (STRUCT_VALUE): Change to 0.
15450
15451 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
15452
15453         * config/alpha/alpha.h (STRUCT_VALUE): Remove.
15454         * config/alpha/vms.h (STRUCT_VALUE_REGNUM): Remove #undef.
15455         (STRUCT_VALUE): Remove.
15456
15457 2004-01-14  Steven Bosscher  <stevenb@suse.de>
15458
15459         * system.h: Poison PROMOTED_MODE
15460         * integrate.c (expand_inline_function): Don't mention the
15461         PROMOTED_MODE.
15462         * loop.c (update_giv_derive): Same.
15463         * tree.h (DECL_RTL): Same.
15464
15465 2004-01-14  J"orn Rennecke <joern.rennecke@superh.com>
15466
15467         PR target/9365
15468         * sh.c (gen_block_redirect): Add special handling of RETURN.
15469         (gen_far_branch) Don't call gen_stuff_delay_slot if there is no
15470         far branch target (i.e. it's a return).
15471
15472 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
15473
15474         * regrename.c (find_oldest_value_reg): Fix a warning.
15475
15476 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
15477
15478         PR bootstrap/12527
15479         * config.gcc (arm*-*-linux*): Don't include unknown-elf.h in tm_file.
15480         Move linux-gas.h and linux-elf.h before aout.h.
15481         * arm/arm.h (INITIALIZE_TRAMPOLINE): Only define if not already.
15482         * arm/linux-elf.h (SUBTARGET_CPU_DEFAULT): Define.
15483
15484 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
15485
15486         * config/m32r/m32r.md: Use GEN_INT instead of gen_rtx
15487         (CONST_INT, VOIDmode, ...).
15488
15489 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
15490
15491         * regrename.c (find_oldest_value_reg): If the replacement uses
15492         multiple hard registers, check that all of them are in CLASS.
15493
15494 2004-01-14  Jan Hubicka  <jh@suse.cz>
15495
15496         * alias.c (get_alias_set):  Initialize alias set to 0 when subset is
15497         impossible.
15498
15499 2004-01-14  Kelley Cook  <kcook@gcc.gnu.org>
15500
15501         * Makefile.in: Define MAINT from --enable-maintainer-mode.
15502
15503 2004-01-14  Hartmut Penner  <hpenner@de.ibm.com>
15504
15505         * gcc/config/rs6000/rs6000.c (rs6000_stack_info)
15506         Calculate always vrsave_mask if TARGET_ALTIVEC.
15507         (rs6000_emit_prologue): Emit code for vrsave
15508         only if TARGET_ALTIVEC_VRSAVE.
15509         (rs6000_emit_epilogue): Likewise.
15510
15511 2004-01-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
15512
15513         * config/sparc/sparc.md (tie_add32): Fix pasto.
15514         (tie_add64): Likewise.
15515
15516 2004-01-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
15517
15518         * config/i386/i386.md (*addqi_1_slp): Do not access operands[2].
15519
15520 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
15521
15522         * config/iq2000/iq2000-protos.h: Fix comment formatting.
15523         * config/iq2000/iq2000.c: Likewise.
15524         * config/iq2000/iq2000.md: Likewise.
15525
15526 2004-01-14  J. Brobecker  <brobecker@gnat.com>
15527
15528         * dwarf2out.c (is_ada_subrange_type): No longer check the TYPE_NAME.
15529         (subrange_type_die): Add handle for nameless subrange types.
15530
15531 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
15532
15533         * config/h8300/h8300-protos.h: Replace do_movsi with
15534         h8300_expand_movsi.
15535         * config/h8300/h8300.c (do_movsi): Change to
15536         h8300_expand_movsi.
15537         * config/h8300/h8300.md (movsi): Replace do_movsi with
15538         h8300_expand_movsi.
15539         (movsf): Likewise.
15540
15541 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
15542
15543         * config/h8300/h8300.c (dosize): Change to
15544         h8300_emit_stack_adjustment.  Update callers.
15545
15546 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
15547
15548         * config/h8300/h8300.md (movstrictqi): Add an alternative with
15549         the source being post_inc.  Tighten the predicate for the
15550         destination to register_operand.
15551         (movstricthi): Likewise.
15552
15553 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
15554
15555         * system.h (SHARED_BSS_SECTION_ASM_OP): Poison.
15556         * varasm.c (bss_section): Don't use SHARED_BSS_SECTION_ASM_OP.
15557         * doc/tm.texi (SHARED_BSS_SECTION_ASM_OP): Remove.
15558
15559 2004-01-14  Jan Hubicka  <jh@suse.cz>
15560
15561         Partial fix PR c++/12850
15562         * cgraphunit.c (cgraph_finalize_function): Always ggc_collect when
15563         at zero nest level.
15564
15565 2004-01-13  Bernardo Innocenti  <bernie@develer.com>
15566
15567         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Add missing "argptr"
15568         pseudo-register.
15569
15570 2004-01-13  Devang Patel <dpatel@apple.com
15571
15572         PR debug/7078
15573         * dbxout.c (dbxout_symbol_name): Emit mangled names for
15574         NAMESPACE_DECL memebers.
15575
15576 2004-01-13  Andrew Pinski  <pinskia@physics.uc.edu>
15577
15578         PR c++/12709
15579         * c-common.c (finish_fname_decls): Use the chain only if the
15580         tree is an expr_stmt.
15581
15582 2004-01-13  Vladimir Makarov  <vmakarov@redhat.com>
15583
15584         * rtl.def: Add comment about new option in automata_option.
15585
15586         * genautomata.c (PROGRESS_OPTION): New macro.
15587         (progress_flag): New global variable.
15588         (gen_automata_option): Process `progress'.
15589         (transform_insn_regexps, check_unit_distributions_to_automata,
15590         make_automaton, NDFA_to_DFA, build_automaton, create_automata,
15591         expand_automata, write_automata): Print about the progress only if
15592         progress_flag.  Remove fflush.
15593         (initiate_automaton_gen): Process command line flag `-progress'.
15594
15595         * doc/md.texi: Describe the new option.
15596
15597 2004-01-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
15598
15599         * cfg.c (dump_bb): Dump entry edges.
15600
15601 2004-01-13  Richard Earnshaw  <rearnsha@arm.com>
15602
15603         * arm.c (thumb_legitimate_address_p): Only allow constant pool
15604         references from SImode.
15605         * arm.md (thumb_movhi_insn): Don't allow minipool references.
15606
15607 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
15608
15609         * system.h (TEXT_SECTION): Poison.
15610         * varasm.c (text_section): Don't use TEXT_SECTION.
15611         * config/sh/sh.c (sh_file_start): Fix a comment typo.
15612         * doc/tm.texi (TEXT_SECTION): Remove.
15613
15614 2004-01-13  Ben Elliston  <bje@wasabisystems.com>
15615
15616         * doc/rtl.texi (Vector Operations): Remove defunct vec_const item.
15617
15618 2004-01-12  James E Wilson  <wilson@specifixinc.com>
15619
15620         * unwind-libunwind.c: Delete.
15621
15622 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
15623
15624         PR 13656
15625         * c-decl.c (diagnose_mismatched_decls): Whenever newtype or
15626         oldtype is set, set *newtypep or *oldtypep too.  Do not set
15627         them at the very end.
15628         (validate_proto_after_old_defn): Restructure for comprehensibility;
15629         make error messages clearer.
15630
15631 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
15632
15633         * varray.h (VARRAY_POP): Add checking variant, aborts on underflow.
15634         (VARRAY_TOP): Use VARRAY_CHECK so the access is bounds-checked.
15635         * varray.c: No need to prototype error.
15636         (varray_check_failed): Wrap long string onto two lines.
15637         (varray_underflow): New function.
15638
15639 2004-01-13  Steven Bosscher  <stevenb@suse.de>
15640
15641         PR c++/13376
15642         * function.h (struct function): Kill `name' field.
15643         (current_function_name): Make it an extern function.
15644         * function.c (current_function_name): New function.
15645         * graph.c: Update all uses of current_function_name.
15646         * gcse.c: Likewise.
15647         * config/alpha/alpha.c, config/avr/avr.c, config/c4x/c4x.c,
15648         config/mips/mips.c, config/pdp11/pdp11.c: Likewise.
15649         * config/ip2k/ip2k.c (function_prologue): Use MAIN_NAME_P
15650         instead of a strcmp with "main".
15651
15652 2004-01-13  Jan Hubicka  <jh@suse.cz>
15653
15654         * c-decl.c (diagnose_mismatched_decls):  Fix warning calls.
15655
15656         * cgraphunit.c (cgraph_optimize_function):  Always do
15657         optimize_inline_calls when there is always_inline callee.
15658         (cgraph_decide_inlining): Fix formating.
15659         * tree-inline.c (inlinable_function_p): Do sorry for alwaysinline
15660         functions.
15661         (expand_call_inline): Likewise.
15662         * toplev.h (sorry): Fix prototype.
15663
15664 2004-01-12  Roger Sayle  <roger@eyesopen.com>
15665
15666         * builtins.c (expand_builtin_expect_jump): Simplify logic. Handle
15667         conditional jumps that drop through to unconditional jumps or the
15668         end of the sequence.
15669
15670 2004-01-13  Jan Hubicka  <jh@suse.cz>
15671
15672         * alias.c (new_alias_set): Construct the alias_set varray.
15673         (init_alias_once): Don't do it here.
15674
15675 2004-01-12  Marc Espie <espie@openbsd.org>
15676
15677         * system.h: handle YYBYACC like YYBISON.
15678
15679 2004-01-12  Jonathan Merriman <jonm@dualitymedia.com>
15680
15681         PR target/10847
15682         * config.gcc: No longer includes conflicting header sparc/sol2.h when
15683         building on sparc64-*-openbsd*.
15684
15685 2004-01-12  Andrew Pinski  <pinskia@physics.uc.edu>
15686
15687         PR debug/13539
15688         * dbxout.c (dbxout_type): Protected inheritance is not
15689         private but protected.
15690
15691 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
15692
15693         * config/mips/mips.c (mips_symbolic_constant_p): Revert last patch.
15694
15695 2004-01-12  Kazu Hirata  <kazu@cs.umass.edu>
15696
15697         PR optimization/12508.
15698         * combine.c (try_combine): Remove a dead set in a parallel
15699         even if its destination is a subreg.
15700
15701         Revert:
15702         2003-06-03  Kazu Hirata  <kazu@cs.umass.edu>
15703         * combine.c (simplify_set): Don't move a subreg in SET_SRC to
15704         SET_DEST if WORD_REGISTER_OPERATIONS is not defined.
15705
15706 2004-01-12  Geoffrey Keating  <geoffk@apple.com>
15707
15708         * real.c: Update copyright date.
15709         * emit-rtl.c: Likewise.
15710         * rtl.h: Likewise.
15711         * dwarf2out.c: Likewise.
15712         * config/rs6000/darwin-ldouble.c: Likewise.
15713         * config/rs6000/rs6000.md: Likewise.
15714
15715 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
15716
15717         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Add AIX
15718         TFmode to SImode libfuncs.
15719
15720 2004-01-12  Roger Sayle  <roger@eyesopen.com>
15721
15722         PR middle-end/11397
15723         * varasm.c (assemble_alias): Remove weak aliases from weak_decls.
15724
15725 2004-01-12  Jan Hubicka  <jh@suse.cz>
15726
15727         PR opt/12826
15728         * loop.c (insert_loop_mem): Preffer VOLATILE memory references to be
15729         stored.
15730
15731         PR opt/12863
15732         * cfgcleanup.c (label_is_jump_target_p): Move to...
15733         * rtlanal.c (label_is_jump_target_p): ... here.
15734         * cfgrtl.c (cfg_layout_redirect_edge_and_branch):  Fix redirecting of fallthru
15735         edges unified with branch edges.
15736
15737 2004-01-12  Richard Earnshaw  <rearnsha@arm.com>
15738
15739         * simplify-rtx.c (simplify_immed_subreg): Correctly extract the
15740         high word of an integral CONST_DOUBLE.
15741
15742 2004-01-12  Paul Brook  <paul@codesourcery.com>
15743
15744         * simplify-rtx.c (simplify_plus_minus): Always generate canonical form.
15745
15746 2004-01-12  J"orn Rennecke <joern.rennecke@superh.com>
15747
15748         PR target/13585
15749         * sh-protos.h (check_use_sfunc_addr): Declare.
15750         * sh.c (extract_sfunc_addr, check_use_sfunc_addr): New functions.
15751         * sh.md (use_sfunc_addr): Use check_use_sfunc_addr in insn predicate.
15752
15753 2004-01-12  Jan Hubicka  <jh@suse.cz>
15754
15755         * alias.c:  Invlude varray.h
15756         (alias_sets): Turn into varray.
15757         (get_alias_set_entry): Use VARRAY; mark inline.
15758         (mems_in_disjoint_alias_sets_p): Mark inline.
15759         (record_alias_subset): Use varray.
15760         (init_alias_once): Initialize varray.
15761         (new_alias_set): Grow array.
15762         * varray.c: Make VARRAY_GENERIC_PTR non GTYized.
15763
15764 2004-01-12  Jan Hubicka  <jh@suse.cz>
15765
15766         Partial fix for PR opt/10776 II
15767         * cselib.c: Include params.h
15768         (cselib_invalidate_mem):  Limit amount of nonconflicting memory
15769         locations.
15770         * params.def (PARAM_MAX_CSELIB_MEMORY_LOCATIONS): New.
15771         * Makefile.in (cselib.o): Depend on params.h
15772
15773 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
15774
15775         * combine.c (combine_simplify_rtx): Don't pass VOIDmode to
15776         simplify_unary_operation if the operand has a known mode.
15777
15778 2004-01-12  Hartmut Penner  <hpenner@de.ibm.com>
15779
15780         PR target/13534
15781         * gcc/config/rs6000/rs6000.c (word_offset_memref_operand): New
15782         predicate to handle 'ld' conform addresses.
15783         * gcc/config/rs6000/rs6000.h (EXTRA_CONSTRAINT): New 'Y'
15784         contraint.
15785         (EXTRA_MEMORY_CONSTRAINT): Tell reload which constraint
15786         are memory contraints.
15787         * gcc/config/rs6000/rs6000-protos.h (word_offset_memref_operand):
15788         New prototype.
15789         * gcc/config/rs6000/rs6000.md (*movdf_hardfloat64):
15790         Change 'o' to 'Y' constraint.
15791         (*movdf_softfloat64): Ditto.
15792
15793 2004-01-12  Bernardo Innocenti  <bernie@develer.com>
15794
15795         * gcc/config/m68k/m68k.md: Switch from the "*..." syntax to the
15796         brace-enclosed syntax in all C output statements.
15797
15798 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
15799
15800         PR target/13401
15801         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
15802         Objective-C language type value is 14.
15803
15804 2004-01-12  Markus F.X.J. Oberhumer  <markus@oberhumer.com>
15805
15806         PR c/12148
15807         * config/m68k/fpgnulib.c: Fix `-mshort' bugs: Use `long' instead of
15808         `int' in a number of places to make sure we always have a SImode
15809         and not a HImode.  Add a 'L' suffix to a number of constants.
15810
15811 2004-01-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15812
15813         * pa.c: Don't include obstack.h.
15814
15815         * pa.md: Correct constraint in pattern for loading PIC label address.
15816
15817 2004-01-11  Kaz Kojima  <kkojima@gcc.gnu.org>
15818
15819         * config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine
15820          before defining.
15821
15822 2004-01-11  Steven Bosscher  <stevenb@suse.de>
15823
15824         PR fortran/9972
15825         * toplev.c (rest_of_handle_inline): Also consider functions
15826         for deferral if the language is GNU F77.
15827
15828 2004-01-11  Zack Weinberg  <zack@codesourcery.com>
15829
15830         * c-decl.c (diagnose_arglist_conflict): Add missing space to
15831         diagnostic messages.
15832
15833 2004-01-11  Jakub Jelinek  <jakub@redhat.com>
15834
15835         PR middle-end/13392
15836         * builtins.c (expand_builtin_expect_jump): Handle conditional jumps
15837         to drop through label.  Don't fall back to SCC even when conditional
15838         jump has not been found.
15839
15840 2004-01-11  Jan Hubicka  <jh@suse.cz>
15841
15842         * invoke.texi: Fix syntax error in previous patch.
15843
15844         Partial fix for PR opt/10776
15845         * Makefile.in (reload.o): Include param.h
15846         * params.def (PARAM_MAX_RELOAD_SEARCH_INSNS): New parameter.
15847         * reload.c: Include params.h.
15848         (find_equiv_reg): Work limiting check.
15849         * invoke.texi: Document.
15850
15851 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
15852
15853         * config/mips/mips.c (mips_symbolic_constant_p): Don't allow
15854         out-of-bounds accesses to string constants.  Simplify mips16
15855         case accordingly.
15856
15857 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
15858
15859         PR optimization/13469
15860         * toplev.c (rest_of_compilation): Call purge_all_dead_edges after
15861         reload_cse_regs (-fnon-call-exceptions only).
15862
15863 2004-01-11  Kazu Hirata  <kazu@cs.umass.edu>
15864
15865         * config/mcore/lib1.asm: Fix comment formatting.
15866         * config/mcore/mcore-elf.h: Likewise.
15867         * config/mcore/mcore.c: Likewise.
15868         * config/mcore/mcore.h: Likewise.
15869         * config/mcore/mcore.md: Likewise.
15870
15871 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
15872
15873         * c-decl.c (duplicate_decls): Break apart into...
15874         (diagnose_arglist_conflict, validate_proto_after_old_defn)
15875         (locate_old_defn, diagnose_mismatched_decls, merge_decls):
15876         ... these new functions.  Restructure for comprehensibility.
15877         Remove various archaic special cases.  Always report the
15878         location of the previous declaration when a diagnostic is issued.
15879         (redeclaration_error_message): Fold into diagnose_mismatched_decls.
15880         (match_builtin_function_types): Delete unnecessary forward declaration.
15881
15882 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
15883
15884         * genautomata.c (make_automaton, NDFA_to_DFA):
15885         Print progress bars with '.' characters instead of '*'.
15886         (build_automaton): Change notes to match.
15887
15888 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
15889
15890         * config/m32r/m32r.md: Use define_constants for unspec and
15891         unspec_volatile.
15892
15893 2004-01-10  Jan Hubicka  <jh@suse.cz>
15894
15895         PR opt/11635
15896         * expr.c (expand_expr_real):  More curefully expand union casts.
15897
15898 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
15899
15900         * config/m32r/m32r.md (flush_icache): Use 1 for
15901         unspec_volatile.
15902
15903 2004-01-10  David Edelsohn  <edelsohn@gnu.org>
15904             James E Wilson  <wilson@specifixinc.com>
15905
15906         PR debug/12860
15907         * dbxout.c (dbxout_symbol): Remove initialization of
15908         current_sym_code, current_sym_value, and current_sym_addr.
15909         (dbxout_symbol_location): Same.
15910         (dbxout_prepare_symbol): Zero current_sym_code,
15911         current_sym_value, and current_sym_addr.
15912
15913 2004-01-10  Richard Sandiford  <rsandifo@redhat.com>
15914
15915         * tree.c (get_unwidened): Reorder conditions so that the null pointer
15916         check is done first.
15917
15918 2004-01-09  Eric Christopher  <echristo@redhat.com>
15919
15920         * toplev.c (rest_of_handle_cfg): Add reg_scan pass
15921         if we're running mark_constant_function.
15922
15923 2004-01-09  Jeff Bailey  <jbailey@nisa.net>
15924
15925         PR target/12561
15926         * config/t-gnu: Rename SYSTEM_HEADER_DIR to NATIVE_SYSTEM_HEADER_DIR.
15927
15928 2004-01-09  Andrew Pinski <pinskia@physics.uc.edu>
15929
15930         PR debug/11231
15931         * dbxout.c (dbxout_type_fields): Return if any item is
15932         error_mark_node or the type is error_mark_node.
15933
15934 2004-01-09  Geoffrey Keating  <geoffk@apple.com>
15935
15936         * config/rs6000/darwin-ldouble.c: Add big comment explaining
15937         exactly what is expected as a 'long double'.
15938         (_xlqadd): When a value to be returned is representable as a
15939         'double', just return it directly, do not construct it using a union.
15940         Also, correct final fixup.
15941         (_xlqmul): Likewise.
15942         (_xlqdiv): Likewise.
15943         * real.c (encode_ibm_extended): Make consistent with darwin-ldouble.c.
15944
15945         * config/rs6000/rs6000.md (fix_trunctfdi2): Delete.
15946
15947 2004-01-09  Richard Henderson  <rth@redhat.com>
15948
15949         * recog.c (constrain_operands): Validate mem operands.
15950
15951 2004-01-09   James E Wilson  <wilson@specifixinc.com>
15952
15953         * gcc.c (init_spec): Remove -lunwind from shared case.
15954         * conifg/ia64/t-hpux (SHLIB_LINK): Add -lunwind.
15955
15956 2004-01-09  Steve Ellcey  <sje@cup.hp.com>
15957
15958         * configure.ac: (gcc_cv_ld_hidden) Set to true for ia64*-*-hpux*.
15959         * configure: Regenerate
15960
15961 2004-01-09  Joseph S. Myers  <jsm@polyomino.org.uk>
15962
15963         PR c/11234
15964         * c-typeck.c (build_c_cast): If pedantic, warn for conversions
15965         between function and object pointers.
15966         (digest_init): When comparing a pointer to function type to the
15967         target type, only apply TREE_TYPE once to the pointer to function
15968         type.
15969         * except.c (for_each_eh_label_1): Treat data as a pointer to a
15970         function pointer rather than casting it to a function pointer.
15971         (for_each_eh_label): Update caller.
15972         * recog.h (struct insn_data): Use a struct or union for output.
15973         * genoutput.c (output_insn_data): Update.
15974         * final.c (get_insn_template): Update.
15975
15976 2004-01-09  Mark Mitchell  <mark@codesourcery.com>
15977
15978         * expr.h (expand_expr): Make it a macro, not a function.
15979         (expand_expr_real): New function.
15980         * expr.c (store_expr): Adjust logic for deciding whether or not to
15981         copy the value returned by expand_expr.
15982         (expand_expr): Rename to ...
15983         (expand_expr_real): ... this.  Add alt_rtl parameter.  Adjust
15984         calls to language hooks.
15985         * c-common.h (c_expand_expr): Adjust prototype.
15986         * c-common.c (c_expand_expr): Add alt_rtl parameter.
15987         * langhooks-def.h (lhd_expand_expr): Change prototype.
15988         * langhooks.c (lhd_expand_expr): Add all_rtl parameter.
15989         * langhooks.h (lang_hooks): Change type of expand_expr.
15990         * stmt.c (stmt_status): Add x_last_expr_alt_rtl.
15991         (last_expr_alt_rtl): Likewise.
15992         (expand_expr_stmt_value): Set last_expr_alt_rtl.
15993         (clear_last_expr): Clear it.
15994         (expand_end_stmt_expr): Set RTL_EXPR_ATL_RTL.
15995         (expand_end_bindings): Save and restor last_expr_alt_rtl.
15996         * tree.def (RTL_EXPR): Give it an additional operand.
15997         * tree.h (RTL_EXPR_ALT_RTL): New macro.
15998
15999 2004-01-09  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
16000
16001         * config/m32r/m32r.h (TARGET_CPU_CPP_BUILTINS): Add __m32r__.
16002         * config/m32r/m32r.c (call26_operand): Allow in PIC mode.
16003
16004 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
16005
16006         PR target/13380.
16007         * config/m32r/m32r.md: Replace (reg:SI 17) with (reg:CC 17)
16008         or (ne:SI (reg:CC 17) (const_int 0)).
16009         Be specific about modes wherever possible.
16010
16011 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
16012
16013         * config/m32r/m32r.c (m32r_expand_block_move): Call
16014         gen_movestrsi_internal with two more arguments.
16015         (m32r_output_block_move): Adjust operand numbers.
16016         Properly update the source and destination pointers.
16017         * config/m32r/m32r.md (movstrsi_internal): Use 'r' instead of
16018         'r+'.  Change the set detinations to match_operand.
16019
16020 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
16021
16022         * final.c (FIRST_INSN_ADDRESS): Remove.
16023         (shorten_branches): Don't use FIRST_INSN_ADDRESS.
16024         * system.h (FIRST_INSN_ADDRESS): Poison.
16025         * config/avr/avr.h: Remove a comment about FIRST_INSN_ADDRESS.
16026         * config/m32r/m32r-protos.h: Remove the prototype for
16027         m32r_first_insn_address.
16028         * config/m32r/m32r.c (m32r_first_insn_address): Remove.
16029         * config/m32r/m32r.h (FIRST_INSN_ADDRESS): Likewise.
16030         * doc/md.texi (FIRST_INSN_ADDRESS): Likewise.
16031
16032 2004-01-09  J. Brobecker  <brobecker@gnat.com>
16033
16034         * dwarf2out.c (gen_enumeration_type_die): Return the DIE that
16035         we just created.
16036         (is_ada_subrange_type): DIEs for enumeration subtypes should be
16037         emitted as subrange types too.
16038         (subrange_type_die): Add handling of enumeration subtypes.
16039
16040 2004-01-08  Richard Henderson  <rth@redhat.com>
16041
16042         PR opt/12441
16043         Revert: Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>
16044         * i386.c (aligned_operand): Be prepared for SUBREGed registers.
16045         (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
16046         (ix86_address_cost): Be prepared for SUBREGed registers.
16047         (legitimate_address_p): Accept SUBREGed registers.
16048
16049 2004-01-08  Kelley Cook  <kcook@gcc.gnu.org>
16050
16051         * Makefile.in: Rename configure.in to configure.ac
16052         * doc/sourcebuild.texi: Likewise.
16053         * configure: Regenerate.
16054         * config.in: Regenerate.
16055
16056 2004-01-08  Stuart Hastings  <stuart@apple.com>
16057
16058         * config/i386/i386.md: Typos in MMX/SSE immediate shifts.
16059
16060 2004-01-08  Jan Hubicka  <jh@suse.cz>
16061
16062         * cgraphunit.c (cgraph_decide_inlining):  Fix typo.
16063
16064 2004-01-08  Geoffrey Keating  <geoffk@apple.com>
16065
16066         * config/rs6000/rs6000.md (cmptf_internal1): Correct branch offset.
16067         (UNSPEC_FIX_TRUNC_TF): New constant.
16068         (movtf_internal): Make splitter active only when insn is active.
16069         (extenddftf2): Rewrite to properly load zero into low part.
16070         (extenddftf2_internal): New.
16071         (extendsftf2): Rewrite.
16072         (truncdftf2): Correct length.
16073         (floatditf2): Delete.
16074         (fix_trunc_helper): New.
16075         (fix_trunctfdi2): Use fix_trunc_helper.
16076         (fix_trunctfsi2): Likewise.fix_trunc
16077         (fix_trunctfsi2_internal): New.
16078
16079         * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): lo_sum
16080         addresses are legitimate on Darwin even when flag_pic.
16081         (rs6000_legitimize_reload_address) [TARGET_MACHO]: Don't create
16082         non-offsettable addresses for loads of TFmode constants.
16083
16084 2004-01-08  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
16085
16086         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Actually emit
16087         variables in the appropriate bss section.
16088
16089 2004-01-09  Alan Modra  <amodra@bigpond.net.au>
16090
16091         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Ensure
16092         target_flags has MASK_POWERPC64 when -m64.
16093         * config/rs6000/rs6000.c (processor_target_table): Add MASK_POWERPC64
16094         to 620, 630, power3, power4 and rs64a entries.
16095         * config/rs6000/rs6000.h (MASK_64BIT): Expand comment.
16096
16097 2004-01-08  Richard Sandiford  <rsandifo@redhat.com>
16098
16099         * simplify-rtx.c (simplify_immed_subreg): Fix construction of
16100         floating-point constants.
16101
16102 2004-01-08  J. Brobecker  <brobecker@gnat.com>
16103
16104         * dwarf2out.c (subrange_type_die): Add context_die parameter.
16105         Create the subrange_type DIE using the given context DIE.
16106         (modified_type_die): Update call to subrange_type_die.
16107
16108 2004-01-08  Zack Weinberg  <zack@codesourcery.com>
16109
16110         * dwarf2.h, unwind-dw2-fde.h, unwind-pe.h, unwind.h:
16111         Add multiple-include guard.
16112
16113 2004-01-08  Hartmut Penner  <hpenner@de.ibm.com>
16114
16115         * gcc/config/rs6000/rs6000.c (easy_vector_constant): Accept
16116         all vector constant loadable by vsplt*.
16117         (output_vec_const_move): Likewise.
16118
16119 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
16120
16121         PR c/6024
16122         * c-typeck.c (comptypes): Only treat enumerated types in the same
16123         translation unit as compatible with each other when they are the
16124         same type.
16125         * doc/extend.texi: Update.
16126
16127 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
16128
16129         PR c/12165
16130         * c-decl.c (grokdeclarator): Take type qualifiers of typedefed
16131         array type from the array element type.
16132
16133 2004-01-07  Alan Modra  <amodra@bigpond.net.au>
16134
16135         * config/rs6000/rs6000.c (rs6000_dbx_register_number): New function.
16136         * config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Declare.
16137         * config/rs6000/rs6000.h (DWARF_FRAME_REGNUM): Define.
16138         (DWARF_REG_TO_UNWIND_COLUMN): Correct column adjustment and comment.
16139         * config/rs6000/sysv4.h (DBX_REGISTER_NUMBER): Define.
16140
16141 2004-01-06  Eric Christopher  <echristo@redhat.com>
16142
16143         * config/mips/mips.h (MDEBUG_ASM_SPEC): Change for dwarf2 default.
16144         (DWARF2_DEBUGGING_INFO): Define.
16145         (PREFERRED_DEBUGGING_TYPE): Set to dwarf2.
16146         * config/mips/openbsd.h (PREFERRED_DEBUGGING_TYPE): Remove.
16147         * config/mips/iris6.h (SUBTARGET_ASM_DEBUGGING_SPEC): Only pass -g0
16148         for irix as.
16149         (SUBTARGET_ASM_OPTIMIZING_SPEC): Only pass O0 for irix as.
16150         * config/mips/iris6gas.h (MDEBUG_ASM_SPEC): Remove.
16151         * config/mips/iris5gas.h: Ditto.
16152         (DBX_DEBUGGING_INFO): Remove.
16153         (DWARF2_DEBUGGING_INFO): Ditto.
16154         (MIPS_DEBUGGING_INFO): Ditto.
16155         (PREFERRED_DEBUGGING_TYPE): Ditto.
16156         * config/mips/elf.h (DWARF2_DEBUGGING_INFO): Remove.
16157         (PREFERRED_DEBUGGING_TYPE): Ditto.
16158         (SUBTARGET_ASM_DEBUGGING_SPEC): Ditto.
16159         * config/mips/elf64.h: Ditto.
16160
16161 2004-01-06  Jan Hubicka  <jh@suse.cz>
16162
16163         * Makefile.in (STAGEPROFILE_FLAGS_TO_PASS): Use -fprofile-generate.
16164         (STAGEFEEDBACK_FLAGS_TO_PASS): Use -fprofile-use.
16165
16166 2004-01-06  Geoffrey Keating  <geoffk@apple.com>
16167
16168         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Compile darwin-ldouble.c.
16169         (TARGET_LIBGCC2_CFLAGS): Use -mlong-double-128.
16170         * config/rs6000/darwin-ldouble.c: New.
16171
16172         * emit-rtl.c (gen_lowpart_common): Use simplify_gen_subreg
16173         for constants.
16174         (constant_subword): Delete.
16175         * rtl.h (constant_subword): Delete prototype.
16176         (immed_double_const): Is not in varasm.c.
16177         * simplify-rtx.c (simplify_immed_subreg): New.
16178         (simplify_subreg): Use simplify_immed_subreg.
16179
16180         * config/rs6000/rs6000.md (floatsitf2): Use expand_float rather
16181         than trying to generate RTL directly.
16182         (fix_trunctfsi2): Use expand_fix rather than trying to generate
16183         RTL directly.
16184
16185         * dwarf2out.c (add_const_value_attribute): Remove incorrect comment.
16186
16187 2004-01-06  David Edelsohn  <edelsohn@gnu.org>
16188
16189         * config/rs6000/xcoff.h (EXTRA_SECTION_FUNCTIONS): Split each
16190         function into a separate macro.
16191         (read_only_data_section): Add void argument.
16192         (private_data_section): Same.
16193         (read_only_private_data_section): Same.
16194         (toc_section): Same.
16195
16196 2004-01-06  Jan Hubicka  <jh@suse.cz>
16197
16198         * invoke.texi:  Remove typo in last change.
16199
16200         PR target/10301
16201         * config.gcc: Accept opteron and athlon-64 as variants
16202         of k8.
16203         * i386.c (override_options): Likewise.
16204         * invoke.texi (i386 -mtune): Expand documentation.
16205
16206 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
16207
16208         * alias.c: Fix comment typos.
16209         * builtins.c: Likewise.
16210         * cfg.c: Likewise.
16211         * df.c: Likewise.
16212         * dominance.c: Likewise.
16213         * dwarf2out.c: Likewise.
16214         * emit-rtl.c: Likewise.
16215         * expr.c: Likewise.
16216         * final.c: Likewise.
16217         * fold-const.c: Likewise.
16218         * gcse.c: Likewise.
16219         * genattrtab.c: Likewise.
16220         * genrecog.c: Likewise.
16221         * gensupport.c: Likewise.
16222         * ggc-zone.c: Likewise.
16223         * integrate.c: Likewise.
16224         * local-alloc.c: Likewise.
16225         * loop.c: Likewise.
16226         * recog.c: Likewise.
16227         * regmove.c: Likewise.
16228         * reg-stack.c: Likewise.
16229         * reorg.c: Likewise.
16230         * rtlanal.c: Likewise.
16231         * rtl.h: Likewise.
16232         * sched-ebb.c: Likewise.
16233         * simplify-rtx.c: Likewise.
16234         * toplev.c: Likewise.
16235         * varasm.c: Likewise.
16236
16237 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
16238
16239         * doc/install.texi: Fix typos.
16240         * doc/invoke.texi: Likewise.
16241         * doc/md.texi: Likewise.
16242
16243 2004-01-06  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
16244
16245         * config/m32r/m32r.h (TRAMPOLINE_LINE_SIZE): Changed
16246
16247 2004-01-06  Jan Hubicka  <jh@suse.cz>
16248
16249         * i386.c (init_cumulative_args):  Add handling of MMX_REGPARM.
16250         (function_arg_advance):  Do not pass aggregates in SSE; deal handling
16251         of MMX_REGPARM.
16252         (function_arg): Add new warnings about ABI changes;  fix SSE_REGPARM;
16253         add MMX_REGPARM.
16254         * i386.h (ix86_args): Add mmx_words/mmx_regs/mmx_regno fields.
16255         (SSE_REGPARM_MAX): Default to 3 on i386 -msse ABI.
16256         (MMX_REGPARM_MAX): Similarly for -mmmx.
16257
16258 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
16259
16260         * config/sh/linux.h: Fix comment formatting.
16261         * config/sh/netbsd-elf.h: Likewise.
16262         * config/sh/sh.c: Likewise.
16263         * config/sh/sh.h: Likewise.
16264         * config/sh/vxworks.h: Likewise.
16265
16266 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
16267
16268         * system.h (ASM_OUTPUT_MAIN_SOURCE_FILENAME): Poison.
16269         * toplev.c (output_file_directive): Don't use
16270         ASM_OUTPUT_MAIN_SOURCE_FILENAME.
16271
16272 2004-01-05  Steven Bosscher <s.bosscher@student.tudelft.nl>
16273
16274         * toplev.c: Fix broken checkin of 2003-12-30.
16275
16276 2004-01-05  Daniel Berlin  <dberlin@dberlin.org>
16277
16278         * ggc-zone.c: Remove everything in #ifdef USING_MALLOC_PAGE_GROUPS
16279         (USING_MMAP): We don't support non-mmap.
16280         (struct alloc_chunk): Steal 1 bit from typecode, use it to mark
16281         large objects.
16282         (struct page_entry): Remove bytes_free.
16283         (struct page_table_chain): Remove.
16284         (struct globals): Remove page_table member.
16285         (loookup_page_table_entry): Function deleted.
16286         (set_page_table_entry): Ditto.
16287         (ggc_allocated_p): No longer need page table lookups.
16288         (ggc_marked_p): Ditto.
16289         (alloc_small_page): Don't care about bytes_free anymore.
16290         (alloc_large_page): Round up size.
16291         (ggc_alloc_zone_1): Mark large objects as such, and calculate
16292         their size the new way.
16293         Remove page table lookups and setting.
16294         (ggc_get_size): Calculate large object size the new way.
16295         (sweep_pages): Redo to account for fact that we no longer have
16296         bytes_free.
16297         (ggc_collect): No longer need to reincrement bytes_free.
16298         (ggc_pch_alloc_object): Handle new large objects properly.
16299         (ggc_pch_read): Put PCH stuff into it's own uncollected zone.
16300
16301 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
16302
16303         * doc/invoke.texi: Remove a page break.
16304
16305 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
16306
16307         * config/avr/avr.c (avr_output_function_prologue): Remove an
16308         extra pair of curly braces.
16309
16310 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
16311
16312         * config/mn10300/mn10300.c: Fix comment formatting.
16313         * config/mn10300/mn10300.h: Likewise.
16314
16315 2004-01-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16316
16317         * tree.h: Update documentation on nothrow_flag.
16318         * print-tree.c (print_node): Print TREE_NOTHROW as "align-ok" for
16319         types.
16320
16321 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
16322
16323         * doc/invoke.texi: Remove traces of dead ports.
16324
16325 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
16326
16327         * doc/invoke.texi: Add documentation for the MIPS -mexplicit-relocs
16328         option.
16329
16330 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
16331
16332         PR target/12945
16333         * coverage.c (coverage_counter_alloc): Set SYMBOL_FLAG_LOCAL for
16334         counter labels.
16335         * config/mips/mips.c (INTERNAL_SYMBOL_P): Delete.
16336         (mips_classify_symbol): Always treat SYMBOL_REF_FLAG as indicating
16337         string constants if TARGET_MIPS16.  Use SYMBOL_REF_DECL to check
16338         the binding of decl symbols, otherwise check SYMBOL_REF_LOCAL_P.
16339         (mips_symbol_insns): Don't trust the local/global classification.
16340         (m16_usym8_4, m16_usym5_4): Same mips16 change as mips_classify_symbol.
16341         (override_options): Make -mabicalls -fno-unit-at-a-time imply
16342         -mno-explicit-relocs.
16343         (mips_encode_section_info): Don't use SYMBOL_REF_FLAG to distinguish
16344         between local and global symbols.
16345
16346 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
16347
16348         * config/mips/mips-protos.h (mips_dangerous_for_la25_p): Declare.
16349         (mips_preferred_reload_class): Declare.
16350         * config/mips/mips.h (DANGEROUS_FOR_LA25_P): Replace with function.
16351         (EXTRA_CONSTRAINT): Update accordingly.
16352         (PREFERRED_RELOAD_CLASS): Use mips_preferred_reload_class.
16353         * config/mips/mips.c (mips_dangerous_for_la25_p): New function.
16354         (mips_preferred_reload_class): New function.  Prefer LEA_REGS if
16355         mips_dangerous_for_la25_p.
16356         (mips_secondary_reload_class): Use LEA_REGS rather than GR_REGS
16357         if mips_dangerous_for_la25_p.
16358
16359 2004-01-05  Bernardo Innocenti  <bernie@develer.com>
16360
16361         * config/m68k/m68k.c (output_andsi3): Fix signed/unsigned comparison
16362         warning.
16363
16364 2004-01-04  Nathanael Nerode  <neroden@gcc.gnu.org>
16365
16366         * configure.ac: Use AC_PROG_CPP_WERROR.
16367         * configure: Regenerate.
16368
16369 2004-01-04  Zack Weinberg  <zack@codesourcery.com>
16370
16371         * .cvsignore: Add autom4te.cache.
16372
16373 2004-01-04  Richard Sandiford  <rsandifo@redhat.com>
16374
16375         * doc/invoke.texi: Revamp documentation of MIPS options.  Remove
16376         -mabi=meabi, -mabi-fake-default, -mmips-as, -mgas, -mmips-tfile,
16377         -m4650, -mfix7000 and -(m)no-crt0.  Put endianness options first,
16378         then architecture options, then ABI options.  General rewording.
16379
16380 2004-01-04  Joseph S. Myers  <jsm@polyomino.org.uk>
16381
16382         PR c/3414
16383         * doc/extend.texi: Clarify definition of malloc attribute.
16384
16385 2004-01-04  Jan Hubicka  <jh@suse.cz>
16386
16387         * Makefile.in (cgraph.o, cgraphunit.o): Add intl.h dependency.
16388         * cgraph.c (create_edge, dump_cgraph): Update to use inline_failed
16389         * cgraph.h (cgraph_edge): Replace inline_call by inline_failed
16390         (cgraph_inline_p): Add extra argument reason.
16391         * cgraphunit.c: Minor formating fixes.
16392         cgraph_first_inlined_callee): New functions.
16393         (record_call_1): Record builtins too.
16394         (cgraph_analyze_function): Update inline_failed messages.
16395         (cgraph_mark_functions_to_output, cgraph_expand_function, cgraph_inlined_into,
16396         cgraph_inlined_callees, cgraph_estimate_growth): Update to use inline_failed.
16397         (cgraph_check_inline_limits): Likewise; Add argument reason.
16398         (cgraph_set_inline_failed): New static function.
16399         (cgraph_decide_inlining_of_small_function, cgraph_decide_inlining): Set
16400         reasons.
16401         (cgraph_inline_p): Add new argument reason.
16402         * tree-inline.c (expand_call_inline):  Update warning.
16403
16404 2004-01-03  Nathanael Nerode  <neroden@gcc.gnu.org>
16405
16406         * configure.ac: Replace AC_INIT, AC_OUTPUT, AC_CANONICAL_SYSTEM
16407         with modern equivalents.
16408         * configure: Regenerate.
16409
16410         * configure.ac: Replace gcc_AC_CHECK_TYPE with AC_CHECK_TYPE.
16411         * aclocal.m4 (gcc_AC_CHECK_TYPE): Remove.
16412         * configure: Regenerate.
16413
16414         * doc/install.texi: Note that 'gcc' is now a 2.57 directory.
16415
16416         * configure.in: Rename to configure.ac.
16417         * configure.ac: Renamed from configure.in; make minimum necessary
16418         changes for autoconf 2.5x.
16419         * aclocal.m4: Make minimum necessary changes for autoconf 2.5x.
16420         * configure: Regenerate with autoconf 2.57.
16421
16422 2004-01-03  Kazu Hirata  <kazu@cs.umass.edu>
16423
16424         * config/mips/linux.h: Fix comment formatting.
16425         * config/mips/mips.c: Likewise.
16426         * config/mips/mips.h: Likewise.
16427         * config/mips/mips.md: Likewise.
16428         * config/mips/netbsd.h: Likewise.
16429         * config/mips/windiss.h: Likewise.
16430
16431 2004-01-02  Richard Henderson  <rth@redhat.com>
16432
16433         * config/i386/i386.md (fp constant pool splitter): Reorg suppression
16434         for sse and 387; add suppression for mmx.
16435
16436 2004-01-02  Andrew Pinski  <pinskia@physics.uc.edu>
16437
16438         * loop.c (loop_optimize): Free all loops_info's mems.
16439
16440         * c-typeck.c (finish_init): Free spelling_base before
16441         setting it again.
16442
16443         * cfgloop.c (flow_loops_find): Always free the sbitmap
16444         headers.
16445
16446         * predict.c (estimate_probability): Free bbs after being
16447         done with it.
16448
16449 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
16450
16451         * config/mn10300/mn10300.h (PREDICATE_CODES): Add
16452         const_8bit_operand and call_address_operand.
16453
16454 2004-01-02  Jan Hubicka  <jh@suse.cz>
16455
16456         * cgraphunit.c (cgraph_optimize_function):  Call optimize_inline_calls
16457         when there is nothing to inline but warnings are requested.
16458         (cgraph_decide_inlining):  Fix memory leak.
16459
16460 2004-01-02  Jan Hubicka  <jh@suse.cz>
16461
16462         * expr.c (store_constructor):  Fix pasto in previous patch.
16463
16464 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
16465
16466         * config/i386/cygming.h: Fix comment formatting.
16467         * config/i386/djgpp.h: Likewise.
16468         * config/i386/gthr-win32.c: Likewise.
16469         * config/i386/i386-interix.h: Likewise.
16470         * config/i386/i386.c: Likewise.
16471         * config/i386/i386.h: Likewise.
16472         * config/i386/openbsd.h: Likewise.
16473         * config/i386/winnt.c: Likewise.
16474         * config/i386/xm-mingw32.h: Likewise.
16475
16476 2004-01-02  Joseph S. Myers  <jsm@polyomino.org.uk>
16477
16478         * doc/gcc.texi, doc/invoke.texi, doc/install.texi: Update
16479         copyright and last modification dates.
16480
16481 2004-01-02  Andreas Jaeger  <aj@suse.de>, Gerald Pfeifer  <gp@suse.de>
16482
16483         * doc/install.texi (Specific): Mention x86_64.
16484
16485 2004-01-01  Hans-Peter Nilsson  <hp@bitrange.com>
16486
16487         * builtins.c (expand_builtin_apply_args_1) [STACK_GROWS_DOWNWARD]:
16488         Call force_operand on plus_constant result.
16489
16490 2004-01-01  Jan Hubicka  <jh@suse.cz>
16491
16492         * expmed.c (store_bit_field, extract_bit_field): Use new named patterns
16493         * expr.c (store_constructor): Use vec_init pattern.
16494         * genopinit.c (optabs): Initailize vec_set/vec_extract/vec_init.
16495         * optabs.h (optab_index): ADD OTI_vec_set/OTI_vec_extract/OTI_vec_init
16496         (vec_set_optab, vec_extract_optab, vec_init_optab): New.
16497         * i386.md (vec_setv2df, vec_extractv2df, vec_setv4sf, vec_extractv4sf):
16498         New patterns.
16499         (sse2_unpc?pd): Fix pattern.
16500         (sse2_movlpd): Kill.
16501         (sse2_movsd): Deal with movlpd too.
16502         * i386.c (ix86_expand_builtin): Use sse2_movsd instead of sse2_movlpd.
16503         (ix86_expand_vector_init): New.
16504         * emmintrin.h (__mm_set_pd, __mm_set_ps): Use vector extensions.
16505         * md.texi (vec_set, vec_extract): Document
16506
16507 2003-12-31  Jan Hubicka  <jh@suse.cz>
16508
16509         PR opt/13473
16510         * recog.c (validate_replace_rtx_1):  Take care for RTL sharing inside
16511         ASM input operands
16512
16513         PR opt/12617
16514         * toplev.c (dump_file_index): Reorder ce3 and bbro.
16515         (dump_file): Likewise.
16516         (rest_of_compilation): Likewise.
16517
16518         PR debug/13367
16519         * cgraph.c (cgraph_function_possibly_inlined):  Even with
16520         flag_really_no_inline we inline always_inline functions.
16521         * cgraphunit.c (cgraph_analyze_function): Clear inlinable flag
16522         for non-always_inline functions when there is flag_really_no_inline.
16523         (cgraph_decide_inlining): Limit work done when not inlining.
16524         (cgraph_decide_inlining_incrementally): Likewise.
16525         (cgraph_optimize_function): Check whether something got inlined.
16526         * c-objc-common.c (c_disregard_inline_limits): Do not always inline
16527         extern inline functions when not inlining.
16528
16529         * opts.c (decode_options):  Disable crossjumping at -O1
16530         * invoke.texi (-O1): Document change.
16531
16532 See ChangeLog.10 for earlier changes.