2004-05-05 Paolo Bonzini <bonzini@gnu.org>
[gcc/gcc.git] / gcc / ChangeLog
1 2004-05-05  Paolo Bonzini  <bonzini@gnu.org>
2
3         * config/rs6000/rs6000.c (build_opaque_vector_type):
4         New function.
5         (rs6000_init_builtins): Use it.
6
7 2004-05-04  Bernard Giroud  <bgiroud2@free.fr>
8
9         * gcc/gcc/vmsdbgout.c (vms_func_node, vms_func_ref): New.
10         (func_table): Change type from char ** to vms_func_ref.
11         (write_rtnbeg):  Update to reflect func_table change.  Use
12         fde->funcdef_number instead of rtnnum in output.
13         (write_rtnend, vmxdbgout_begin_function, vmsdbgout_init): Likewise.
14
15 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
16             Richard Henderson  <rth@redhat.com>
17
18         PR target/14899
19
20         * c-common.c (vector_types_convertible_p): New function.
21         * c-typeck.c (comptypes): Recurse on vector types.
22         (convert_for_assignment): Use vector_types_convertible_p.
23         (digest_init): Use vector_types_convertible_p to check
24         validness of constant vector initializers; otherwise treat
25         them as scalars.
26         * tree.c (make_or_reuse_type): New.
27         (build_common_tree_nodes): Use it.
28         * cp/call.c (standard_conversion): Likewise.
29         * cp/typeck.c (comptypes): Recurse on vector types.
30         (convert_for_assignment): Use vector_types_convertible_p.
31
32 2004-05-04  Chris Demetriou  <cgd@broadcom.com>
33
34         * config/mips/mips.c (override_options): Default to no
35         generation of branch-likely operations when tuning for
36         CPUs where they tend to have a negative performance impact
37         (e.g., SB-1).
38
39 2004-05-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
40
41         * expr.c (store_constructor_field): Don't call store_constructor
42         if bitsize is not a multiple of a byte.
43
44 2004-05-04  Richard Sandiford  <rsandifo@redhat.com>
45
46         * reload1.c (inherit_piecemeal_p): New function.
47         (emit_reload_insns): When reloading a group of hard registers, use
48         inherit_piecemeal_p to decide whether the values of individual hard
49         registers can be inherited.
50
51 2004-05-04  H.J. Lu  <hongjiu.lu@intel.com>
52
53         * config/ia64/t-ia64 (LIB2ADDEH): Remove gthr-gnat.c.
54         * config/s390/t-tpf (LIB2ADDEHDEP): Likewise.
55         * config/t-linux (LIB2ADDEHDEP): Likewise.
56
57 2004-05-04  Paul Brook  <paul@codesourcery.com>
58
59         * config/arm/crti.asm: Push an even number of registers.
60         * config/arm/crtn.asm: And restore them.  Load via sp.
61
62 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
63
64         * ggc-zone.c (ggc_alloc_zone_1): Add MEM_STAT_DECL parameter.
65         Collect overhead information.
66         (ggc_alloc_stat): New name of ggc_alloc.  Add MEM_STAT_DECL
67         parameter and pass it through.
68         (ggc_alloc_typed_stat): New name of ggc_alloc_typed.  Add
69         MEM_STAT_DECL parameter and pass it through.
70         (ggc_alloc_zone_stat): New name of ggc_alloc_zone.  Add
71         MEM_STAT_DECL parameter and pass it through.
72
73 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
74
75         * config/rs6000/rs6000-protos.h: Protoize rs6000_hard_regno_nregs.
76
77         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs): New.
78
79         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Call
80         rs6000_hard_regno_nregs.
81
82 2004-05-03  Eric Christopher  <echristo@redhat.com>
83
84         * config/s390/s390.c (s390_emit_prologue): Call unspec tpf
85         prologue insn instead of setting up call.
86         (s390_emit_epilogue): Ditto.
87         * config/s390/s390.md (prologue_tpf, epilogue_tpf): New patterns.
88         (define_constants): Add numbers for above patterns.
89
90 2004-05-03  Eric Christopher  <echristo@redhat.com>
91
92         * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Move body...
93         * config/s390/s390.c (s390_conditional_register_usage): ...here.
94         * config/s390/s390-protos.h: Prototype.
95
96 2004-05-03  Joe Buck <jbuck@welsh-buck.org>
97
98         * cppfiles.c (pchf_adder): Eliminate use of |= in d->have_once_only
99         assignment.
100
101 2004-05-03  Eric Christopher  <echristo@redhat.com>
102
103         * config/mips/mips.md: Fix branch length attribute definition.
104
105 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
106
107         * config.gcc: Remove --enable-altivec support.
108
109         * config/rs6000/altivec-defs.h: Remove.
110
111 2004-05-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
112
113         * fixinc/inclhack.def (svr4_profil): Don't apply on IRIX 5/6.
114         * fixinc/fixincl.x: Regenerate.
115
116 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
117
118         * config/i386/i386.md (*fyl2x_sfxf3, *fyl2x_dfxf3): Remove insn
119         definition.
120         (log?f2, log10?f2, log2?f2): Reimplement expanders with
121         float_truncate insn.
122         (*fxtractsf3, *fxtractdf3): Remove insn definition.
123         (logb?f2): Reimplement expanders with float_truncate insn.
124
125 2004-05-03  Graham Stott  <graham.stott@btinternet.com>
126
127         PR 14718
128         * dwarf2out.c (dwarf2out_imported_module_or_decl): Use
129         force_type_die for CONST_DECL.
130
131 2004-05-03 ¬†Eric Botcazou  <ebotcazou@libertysurf.fr>
132             Rainer Orth ¬†<ro@TechFak.Uni-Bielefeld.DE>
133
134         * config.gcc (sparc64-*-solaris2*, sparcv9-*-solaris2*): Add
135         tm-dwarf2.h to tm_file.
136         (sparc-*-solaris2*): Add tm-dwarf2.h to tm_file for Solaris 7+.
137         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Delete.
138         (ASM_DEBUG_SPEC): Delete.
139
140 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
141
142         * optabs.h (enum optab_index): Add new OTI_expm1.
143         (expm1_optab): Define corresponding macro.
144         * optabs.c (init_optabs): Initialize expm1_optab.
145         * genopinit.c (optabs): Implement expm1_optab using expm1?f2
146         patterns.
147         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXPM1{,F,L}
148         using expm1_optab.
149         (expand_builtin): Expand BUILT_IN_EXPM1{,F,L} using
150         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
151
152         * config/i386/i386.md (expm1df2, expm1sf2, expm1xf2): New expanders
153         to implement expm1, expm1f and expm1l built-ins as inline x87
154         intrinsics.
155
156 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
157
158         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
159         * config/frv/frv.md (*return_true, *return_false): New patterns.
160
161 2004-05-02  Kazu Hirata  <kazu@cs.umass.edu>
162
163         * rtl.h (PHI_NODE_P): Remove.
164
165 2004-05-02  Eric Botcazou  <ebotcazou@act-europe.fr>
166
167         PR middle-end/14988
168         * function.c (assign_stack_local_1): Use BITS_PER_UNIT alignment
169         when passed -2 as 'align'.
170         (put_var_into_stack): Use 'bool' as the type for the three local
171         predicates.  Adjust calls to put_reg_into_stack.
172         When passed a CONCAT, instruct put_reg_into_stack to use
173         a consecutive stack slot for the second part.
174         (put_reg_into_stack): Remove 'promoted_mode' parameter, add
175         'consecutive_p' parameter.  Turn the three predicates into 'bool'
176         parameters.  Retrieve the register mode from 'reg'.
177         When consecutive_p is true, instruct assign_stack_local_1 to use
178         BITS_PER_UNIT alignment.
179         (put_addressof_into_stack): Use 'bool' as the type for the two
180         local predicates. Adjust call to put_reg_into_stack.
181
182 2004-05-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
183
184         * fold-const.c (fold_convert_const, fold): Add missing
185         FIX_ROUND_EXPR case.
186
187 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
188
189         * configure.ac (FLEX, BISON): Only use tools from the build tree
190         if build equals host.
191         * configure: Rebuilt.
192
193         * config/frv/frv-protos.h (frv_expand_epilogue,
194         frv_expand_fdpic_call): Add bool argument.
195         * config/frv/frv.c (frv_function_ok_for_sibcall): New.
196         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to it.
197         (frv_expand_epilogue): Use new argument to decide whether to emit
198         return instruction or copy the return address to LR.
199         (frv_expand_fdpic_call): Inline PLT entry when emitting direct
200         sibcalls.
201         (sibcall_operand): New.
202         * config/frv/frv.h (PREDICATE_CODES): call_operand doesn't match
203         PLUS nor LABEL_REF.  Add sibcall_operand.
204         * config/frv/frv.md (call, call_value): Pass false to
205         frv_expand_fdpic_call.
206         (call_fdpicdi, call_value_fdpicdi): Insert %i0 in calll.
207         (sibcall, sibcall_internal, sibcall_fdpicdi, sibcall_value,
208         sibcall_value_internal, sibcall_value_fdpicdi): New.
209         (return_unsigned_true, return_unsigned_false): New.
210         (epilogue): Adjust call to frv_expand_epilogue.
211         (sibcall_epilogue): New.
212
213         * config/frv/frv.h (ASM_SPEC): Pass -mno-fdpic as -mnopic.
214         (CPP_SPEC, CPP_SIMPLE_SPEC): Undefine __FRV_ACC__ and __FRV_FPR__
215         before redefining them.
216
217 2004-05-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
218
219         * builtins.c (fold_fixed_mathfn): New function.
220         (fold_builtin_lround, fold_builtin): Use it.
221
222 2004-05-01  Jakub Jelinek  <jakub@redhat.com>
223
224         * config/sparc/linux64.h (TARGET_DEFAULT): Make 64-bit by default
225         also for TARGET_CPU_DEFAULT == TARGET_CPU_ultrasparc3.
226
227 2004-05-01  Kazu Hirata  <kazu@cs.umass.edu>
228
229         * config/cris/cris.h: Revert my "fix comment typos" patch.
230
231 2004-05-01  Richard Sandiford  <rsandifo@redhat.com>
232
233         * config/mips/mips.h (TUNE_MACC_CHAINS): Fix comment.
234
235 2004-05-01  Falk Hueffner  <falk@debian.org>
236
237         * config/alpha/alpha.md (builtin_insbl, builtin_inswl,
238         builtin_insll): Disallow 0 as first input operand.
239
240 2004-05-01  Falk Hueffner  <falk@debian.org>
241
242         * config/alpha/alpha.c (alpha_rtx_costs): Fix shiftadd costs.
243
244 2004-05-01  Ulrich Weigand  <uweigand@de.ibm.com>
245
246         PR middle-end/15054
247         * expr.c (expand_expr_real): Do not call preserve_temp_slots
248         on a TARGET_EXPR temp.
249         * function.c (assign_stack_temp_for_type): Set 'keep' flag for
250         TARGET_EXPR temp slots.
251
252 2004-05-01  Paolo Bonzini  <bonzini@gnu.org>
253
254         * simplify-rtx.c (simplify_ternary_operation): When
255         converting an IF_THEN_ELSE to a relational op, return
256         correct mode.
257
258 2004-04-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
259
260         * builtins.c (fold_builtin_round): Fix comment typo.
261         (fold_builtin_lround): New function.
262         (fold_builtin): Use it.
263
264 2004-04-20  Andrew Pinski  <pinskia@physics.uc.edu>
265
266         PR target/11608
267         * config/sh/elf.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Update and make it
268         more like the one in config/dbxelf.h.
269
270 2004-04-30  Zack Weinberg  <zack@codesourcery.com>
271
272         * tree.h (SET_ARRAY_OR_VECTOR_CHECK): Rename to SET_OR_ARRAY_CHECK
273         and adjust definition accordingly.
274         (TYPE_DOMAIN): Allow only SET_TYPE and ARRAY_TYPE.
275         (TYPE_DEBUG_REPRESENTATION_TYPE): Allow only VECTOR_TYPE.
276         * expr.c (store_constructor): Do not access TYPE_DOMAIN of a
277         VECTOR_TYPE.
278
279 2004-04-30  Jason Merrill  <jason@redhat.com>
280
281         PR c++/14587
282         * config/i386/winnt.c (associated_type): Look for attributes on
283         the TYPE_MAIN_VARIANT of *this.
284         * attribs.c (decl_attributes): If ATTR_FLAG_TYPE_IN_PLACE, also
285         apply the attributes to the variants.
286
287 2004-04-30  Paul Brook  <paul@codesourcery.com>
288
289         * config.gcc: Simplify arm --with-{cpu,tune} test.
290         * config/arm/arm-cores.def: Document whitespace restrictions.
291
292 2004-04-30  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
293
294         PR other/1963
295         * config/alpha/osf.h (SWITCHES_NEED_SPACES): Define.
296
297 2004-04-30  Brian Ford  <ford@vss.fsi.com>
298             DJ Delorie  <dj@redhat.com>
299
300         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
301         (DWARF2_DEBUGGING_INFO): Define to enable.
302         (DBX_REGISTER_NUMBER): Define to use the svr4 register map for
303         DWARF2.
304         * configure.ac (Target-specific assembler checks)
305         <i[34567]86-*-[cygwin*|pe|mingw32*]>: New test for .secrel32
306         relocs.
307         * configure: Regenerate.
308         * config.in: Likewise.
309
310         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
311         (ASM_OUPUT_DWARF_OFFSET): Define.
312
313 2004-04-29  Andreas Krebbel  <krebbel1@de.ibm.com>
314
315         * config/s390/s390-protos.h (s390_emit_epilogue): Parameter added.
316         (s390_emit_call): New function prototype added.
317         (s390_tls_get_offset): Function removed.
318         * config/s390/s390.c (s390_function_ok_for_sibcall,
319         s390_call_saved_register_used_p): New functions.
320         (TARGET_FUNCTION_OK_FOR_SIBCALL): Definition of target macro added.
321         (s390_tls_get_offset): Function merged into s390_emit_tls_call_insn.
322         (s390_emit_tls_call_insn): New function.
323         (legitimize_tls_address): Call s390_emit_tls_call_insn instead of
324         emit_call_insn.
325         (s390_emit_prologue): Use s390_emit_call instead of emit_call_insn.
326         (s390_emit_epilogue): Like s390_emit_prologue. Parameter for sibcalls
327         added.
328         * config/s390/s390.h (SIBCALL_REGNUM): New macro representing the
329         register number used to hold the target address for sibcalls.
330         * config/s390/s390.md ("sibcall", "sibcall_value", "sibcall_epilogue"):
331         New expanders.
332         ("*sibcall_br", "*sibcall_brc", "*sibcall_brcl", "*sibcall_value_br",
333         "*sibcall_value_brc", "*sibcall_value_brcl"): New insns.
334         ("call_exp", "call_value_exp", "call_value_tls", "call_value_tls_exp"):
335         Expanders removed.
336         ("call", "call_value"): Call s390_emit_call to emit the call patterns.
337         ("*bras", "*brasl", "*bras_r", "*brasl_r", "*bras_tls", "*brasl_tls",
338         "*basr", "*basr_r", "*basr_tls"): Added constraint: !SIBLING_CALL_P.
339         ("epilogue"): Changed the call to s390_emit_epilogue to use the
340         new parameter.
341
342 2004-04-30  Kazu Hirata  <kazu@cs.umass.edu>
343
344         * bb-reorder.c, c-opts.c, cfglayout.c, cgraph.c, cgraphunit.c,
345         cppfiles.c, fold-const.c, ggc-zone.c, loop-doloop.c, optabs.c,
346         reg-stack.c, varasm.c, config/alpha/ev4.md,
347         config/alpha/ev5.md, config/alpha/ev6.md, config/arm/arm.c,
348         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.c,
349         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
350         config/frv/frv.h, config/frv/frv.md, config/h8300/h8300.c,
351         config/i386/i386.c, config/i386/i386.md, config/i386/winnt.c,
352         config/ia64/itanium2.md, config/ip2k/ip2k.c,
353         config/mips/mips.c, config/mips/mips.h, config/mips/sr71k.md,
354         config/pa/pa.c, config/s390/s390.c, config/sh/sh.c: Fix
355         comment typos.
356
357 2004-04-30  Paul Brook  <paul@codesourcery.com>
358
359         * config.gcc: Default ep9312 to hard-float.
360         * config/arm/arm-cores.def: Add ARCH field.
361         * config/arm/arm.c (FL_FOR_ARCH*): Define.
362         (arm_arch_cirrus): New variable.
363         (all_cores): Set and use arch.
364         (all_architectures): Ditto.
365         (arm_arch_name): New variable.
366         (arm_override_options): Set it. Use [SUB]TARGET_CPU_DEFAULT.
367         Set and use arm_arch_cirrus.
368         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set arch defines.
369         (enum processor_type): Update ARM_CORE define.
370         (enum target_cpus): Add.  Replaces TARGET_CPU_* defines.
371         (CPP_SPEC): Remove %(cpp_cpu_arch).
372         (CPP_ARCH_DEFAULT_SPEC): Remove.
373         (CPP_CPU_ARCH_SPEC): Remove.
374         (EXTRA_SPECS): Don't use CPP_*ARCH*_SPEC.
375         (FPUTYPE_DEFAULT): Don't define here.
376
377 2004-04-30  J"orn Rennecke <joern.rennecke@superh.com>
378
379         * flow.c (propagate_one_insn): Call mark_set_regs for stack pointer
380         updates too.
381
382 2004-04-30  Paul Brook  <paul@codesourcery.com>
383
384         * arm.c (arm_needs_doubleword_align): Use mode alignment.
385
386 2004-04-30  Paolo Bonzini  <bonzini@gnu.org>
387
388         * config/altivec/altivec.h [__cplusplus] (vec_subsubs): Rename to
389         vec_sububs.
390         [__cplusplus] (vec_subsuhs): Rename to vec_subuhs, without
391         duplicates.
392
393 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
394
395         * config/i386/i386.md (atansf2, atandf2, atanxf2): Move near
396         atan2?f3 expanders.
397
398 2004-04-29  Nick Clifton  <nickc@redhat.com>
399
400         Bug 14093
401         * config/sh/sh-protos.h (sh_promote_prototypes): Declare.
402         * config/sh/sh.c (sh_promote_prototypes): Remove declaration.
403         Delete static from definition.
404         * config/sh/sh.h (FUNCTION_VALUE): Add sh_promote_prototypes call.
405
406 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
407
408         * reg-stack.c (subst_stack_regs_pat): <UNSPEC_SIN, UNSPEC_COS,
409         UNSPEC_FRNDINT, UNSPEC_F2XM1>: abort() if src1 dies.
410         <UNSPEC_SINCOS_COS, UNSPEC_TAN_ONE, UNSPEC_XTRACT_FRACT>: Same.
411         <UNSPEC_SINCOS_SIN, UNSPEC_TAN_TAN, UNSPEC_XTRACT_EXP>: Same.
412
413 2004-04-29  Richard Guenther  <richard.guenther@uni-tuebingen.de>
414
415         * commom.opt (Wfatal-errors): Add it.
416         * diagnostic.c (flag_fatal_errors): Define it.
417         (diagnostic_action_after_output): Check for flag_fatal_errors.
418         * flags.h (flag_fatal_errors): Declare it.
419         * opts.c (common_handle_option): Add OPT_Wfatal_errors.
420         * doc/invoke.texi (Warning Options): Document -Wfatal-errors.
421
422 2004-04-30  Josef Zlomek  <zlomekj@suse.cz>
423
424         * gcse.c (remove_reachable_equiv_notes): Delete notes also in
425         blocks which have kill flag set.
426
427 2004-04-29  Ben Elliston  <bje@au.ibm.com>
428
429         * configure.ac (--with-as): Abort if user-supplied assembler
430         cannot be executed.
431         (--with-ld): Likewise for the linker.
432         * configure: Regenerate.
433
434 2004-04-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
435
436         * convert.c (convert_to_integer): Ensure `long_integer_type_node'
437         isn't NULL before using it.
438
439 2004-04-29  Richard Sandiford  <rsandifo@redhat.com>
440
441         PR target/15189
442         * config/mips/mips.md (load_df_low): Use default length.
443         (load_df_high, store_df_high): Likewise.
444
445 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
446
447         * config/mips/mips.md, config/mips/sb1.md,
448         config/rs6000/rs6000.c: Fix comment typos.
449
450 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
451
452         * builtins.c, cgraph.c, cgraphunit.c, final.c, fold-const.c:
453         Fix comment typos.
454
455 2004-04-29  Douglas B Rupp  <rupp@gnat.com>
456
457         * gcc.c (DELETE_IF_ORDINARY): New macro default definition.
458         (delete_if_ordinary): Use above macro.
459         * config/alpha/xm-vms.h (DELETE_IF_ORDINARY): New macro VMS definition.
460         Update copyright.
461         * doc/hostconfig.texi (DELETE_IF_ORDINARY): Document new macro.
462
463 2004-04-29  Richard Earnshaw  <rearnsha@arm.com>
464
465         * c-decl.c (get_parm_info): Use the correct tag keywords when
466         warning about type declarations in prototypes.
467
468 2004-04-29  Paul Brook  <paul@codesourcery.com>
469
470         * config.gcc: Pull list of cores from arm-cores.def.
471
472 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
473
474         * combine.c (combine_simplify_rtx): Adjust call to use
475         simplify_relational_operation.  Do not use SELECT_CC_MODE
476         when a comparison already has a MODE_CC mode.
477
478 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
479
480         (simplify_set): simplify_relational_operation may now
481         return another relational expression.
482         * cse.c (fold_rtx): simplify_relational_operation now
483         takes of computing the comparison mode.
484         * dojump.c (compare_from_rtx): Use simplify_relational_operation,
485         remove dead code.
486         (do_compare_rtx_and_jump): Likewise.
487         * integrate.c (subst_constants): simplify_relational_operation
488         may now return another relational expression.
489         * simplify-rtx.c (simplify_gen_relational): Move most code to
490         the new simplify_relational_operation and
491         simplify_relational_operation_1 functions.
492         (simplify_relational_operation): Rewritten.
493         (simplify_relational_operation_1): New function.
494         (simplify_ternary_operation): simplify_relational_operation
495         may now return another relational expression.
496         (simplify_rtx): Remove unnecessary temp variable.
497
498 2004-04-29  Uros Bizjak  <uros@kss-loka.si>
499
500         * reg-stack.c (swap_to_top): New function.
501         (subst_stack_regs_pat): UNSPEC_FPATAN, UNSPEC_FYL2X: Use
502         swap_to_top().
503         (subst_stack_regs_pat): UNSPEC_FSCALE: Remove.
504         (subst_stack_regs_pat): Handle UNSPEC_FSCALE_FRACT and
505         UNSPEC_FSCALE_EXP.
506
507         * config/i386/i386.md (UNSPEC_FSCALE): Remove.
508         (*fscale_sfxf3, *fscale_dfxf3, *fscale_xf3): Remove insn pattern.
509         (UNSPEC_FSCALE_FRACT, UNSPEC_FSCALE_EXP): New unspecs to represent
510         x87's fscale insn.
511         (*fscalexf4: Define new insn pattern to implement x87 fscale insn.
512         (exp?f2, exp10?f2, exp2?f2): Use *fscalexf4 and float_truncate
513         patterns.
514
515 2004-04-28  Serge Belyshev  <1319@bot.ru>
516
517         PR 14944
518         * coverage.c (read_counts_file): Fix usage of warning () call.
519         * pretty-print.c (pp_base_format_text): Fix typo in the comment.
520
521 2004-04-28  Ben Elliston  <bje@au.ibm.com>
522
523         * doc/invoke.texi (Objective-C Dialect Options): Don't prefix
524         options with "-" in the option index.
525         (SPARC Options): Likewise.
526         (M32R/D Options): Likewise.
527
528 2004-04-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
529
530         * convert.c (convert_to_integer): Convert (long)round -> lround,
531         etc.
532
533 2004-04-28  Andrew Pinski  <pinskia@physics.uc.edu>
534
535         * config/rs6000/rs6000.c (registers_ok_for_quad_peep):
536         Return false if we do not have fp register.
537         (addrs_ok_for_quad_peep): Rename to ...
538         (mems_ok_for_quad_peep): this.
539         Add check for volatile memory.
540         * config/rs6000/rs6000-protos.h (addrs_ok_for_quad_peep):
541         Rename to ...
542         (mems_ok_for_quad_peep): this.
543         * config/rs6000/rs6000.md: Change peephole's for lfq/stq
544         to peephole2's.
545         (lfq_power2): New instruction.
546         (stfq_power2): Likewise.
547
548 2004-04-28  Jan Hubicka  <jh@suse.cz>
549
550         PR c/15004
551         * function.c (do_warn_unused_parameter): Break out form ...
552         (expand_function_end): ... here; warn only when not using cgraphunit.
553         * function.h (do_warn_unused_parameter): Declare.
554         * cgraphunit.c: Include function.h.
555         (cgraph_finalize_function): Do unused parameter warning.
556         * Makefile.in (cgraphunit.o): Depend on function.h
557
558 2004-04-28  Joseph S. Myers  <jsm@polyomino.org.uk>
559
560         * Makefile.in ($(DESTDIR)$(infodir)/%.info): Don't condition
561         calling install-info on $(DESTDIR)$(infodir)/dir already being
562         present.
563
564 2004-04-28  Paul Brook  <paul@codesourcery.com>
565
566         * dwarf2out.c (mem_loc_descriptor): Handle shifts.
567
568 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
569
570         * gcse.c (find_moveable_store): Do not accept store insns with
571         REG_EH_REGION note.
572
573 2004-04-28  Paul Brook  <paul@codesourcery.com>
574
575         * calls.c (precompute_arguments): Remove PROMOTE_FOR_CALL_ONLY.
576         * function.c (assign_temp): Ditto.
577         * system.h (PROMOTE_FOR_CALL_ONLY): Poison.
578
579 2004-04-28  Paul Brook  <paul@codesourcery.com>
580
581         * config/arm/lib1funcs.asm: Recognize armv5tej and armv6.
582
583 2004-04-28  Josef Zlomek  <zlomekj@suse.cz>
584
585         * var-tracking.c (variable_different_p): Add a parameter
586         compare_current_location, compare current location of variable parts
587         if it is true.
588         (dataflow_set_different_1): Pass compare_current_location == false.
589         (dataflow_set_different_2): Pass compare_current_location == false.
590         (emit_notes_for_differences_1): Pass compare_current_location == true.
591
592 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
593
594         * config/s390/s390.md ("casesi"): Mark jump table access as
595         non-trapping and unchanging.
596
597 2004-04-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
598
599         PR debug/14829
600         * dwarf2out.c (reg_number): Rename to dbx_reg_number.  Adjust all
601         callers.
602         (multiple_reg_loc_descriptor, reg_loc_descriptor): Use gcc register
603         number for indexing hard_regno_nregs array.
604
605 2004-04-27  Geoffrey Keating  <geoffk@apple.com>
606
607         * config/darwin.h (STARTFILE_SPEC): Use %s to find crt2.o.
608         * config/darwin-crt2.c: Only have contents on __ppc__.
609
610 2004-04-27  Bob Wilson  <bob.wilson@acm.org>
611
612         * config/xtensa/xtensa.c (call_insn_operand): Check
613         SYMBOL_REF_EXTERNAL_P in addition to SYMBOL_REF_LOCAL_P.
614         * config/xtensa/xtensa.h (LEGITIMATE_PIC_OPERAND): Likewise.
615         * config/xtensa/xtensa.md (call, call_value): Likewise.
616
617 2004-04-27  Wu Yongwei  <adah@sh163.net>
618
619         * gthr-win32.h (__gthread_mutex_t): Change typedef to new structure.
620         (__GTHREAD_MUTEX_INIT_DEFAULT): Adjust.
621         (__gthread_mutex_init_function): Replace CreateMutex with
622         initialization of custom mutex using CreateSemaphore.
623         (__gthread_mutex_lock): Use InterlockedIncrement.
624         (__gthread_mutex_trylock): Use InterlockedCompareExchange.
625         (__gthread_mutex_unlock): Use InterlockedDecrement and
626         ReleaseSemaphore to unlock
627         * config/i386/gthr-win32.c (__gthread_mutex_init_function,
628         __gthread_mutex_lock, __gthread_mutex_trylock,
629         __gthread_mutex_unlock): Adjust to match inline versions in
630         gthr-win32.h.
631
632 2004-04-27  Paul Brook  <paul@codesourcery.com>
633
634         * config/arm/arm.c (arm_promote_prototypes): New function.
635         (TARGET_PROMOTE_PROTOTYPES): Use it.
636
637 2004-04-27  Paul Brook  <paul@codesourcery.com>
638
639         * config/arm/arm.c (arm_expand_epilogue): Count blocks of 4 regs.
640
641 2004-04-26  Bernard Giroud  <bgiroud@free.fr>
642
643         * config/alpha.c (alpha_end_function): For OpenVMS gas,
644         correctly output .pdesc directive before .end.
645
646 2004-04-26  James E Wilson  <wilson@specifixinc.com>
647
648         Bug 14927
649         * config/ia64/ia64.md (movxf): New local op0.  Handle case where
650         operands[0] is a SUBREG.  Handle case where operands[1] is a GR reg.
651
652 2004-04-26  Zack Weinberg  <zack@codesourcery.com>
653
654         * config/ia64/hpux.h: Predefine __STDCPP__ when compiling C++.
655         * config/pa/pa-hpux10.h: Likewise.
656         * config/pa/pa-hpux11.h: Likewise.
657
658 2004-04-26  Geoffrey Keating  <geoffk@apple.com>
659
660         * doc/invoke.texi (Overall Options): Document default for -o
661         for PCH files.
662
663 2004-04-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
664
665         * builtins.c (expand_builtin_update_setjmp_buf): New function.
666         (expand_builtin, case BUILT_IN_UPDATE_SETJMP_BUF): New case.
667         * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): New code.
668
669 2004-04-26  Paul Brook  <paul@codesourcery.com>
670
671         * config/arm/arm.c (arm_legitimate_index_p): Correct iwmmxt offsets.
672
673 2004-04-26  Paul Brook  <paul@codesourcery.com>
674
675         * config/arm/arm.c (arm_legitimate_index_p): Correct maverick offsets.
676
677 2004-04-25  Roger Sayle  <roger@eyesopen.com>
678
679         * fold-const.c (fold): Prefer fold_convert (negate_expr (...)) to
680         fold (build1 (NEGATE_EXPR, ...)).  Optimize X / -1 as -X and
681         X % -1 as 0.
682
683 2004-04-26  Hans-Peter Nilsson  <hp@bitrange.com>
684
685         PR bootstrap/15141
686         * except.c (connect_post_landing_pads): Delete insns after the
687         barrier when generating a unwind_resume_libfunc call.
688
689 2004-04-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
690
691         PR/c++ 15119
692         * tree.c (substitute_placeholder_in_expr, case 4): New case,
693         for TARGET_EXPR.
694
695 2004-04-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
696
697         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
698         __gcov_execv, __gcov_execvp, __gcov_execve): Do not declare when
699         inhibit_libc is defined.
700
701 2004-04-25  Richard Sandiford  <rsandifo@redhat.com>
702
703         * config/mips/mips-protos.h (mips_linked_macc_p): Declare.
704         * config/mips/mips.h (TUNE_MACC_CHAINS): New macro.
705         * config/mips/mips.c (TARGET_SCHED_REORDER): Define.
706         (TARGET_SCHED_VARIABLE_ISSUE): Define.
707         (mips_adjust_cost): Move later in file, next to other sched hooks.
708         (mips_macc_chains_last_hilo): New variable.
709         (mips_linked_madd_p, mips_macc_chains_record, mips_macc_chains_reorder)
710         (mips_promote_ready, mips_sched_reorder, mips_variable_issue): New.
711         * config/mips/mips.md (may_clobber_hilo): New attribute.
712
713 2004-04-24  Roger Sayle  <roger@eyesopen.com>
714             Bruce Korb  <bkorb@gnu.org>
715
716         * fixinc/inclhack.def (aix_syswait_2): New fix.
717         * fixinc/fixincl.x: Regenerate.
718         * fixinc/tests/base/sys/wait.h: Update for new test.
719
720 2004-04-24  Alan Modra  <amodra@bigpond.net.au>
721
722         PR target/14960
723         * config/rs6000/rs6000.c (rs6000_stack_info): Rename total_raw_size
724         to non_fixed_size, and leave out fixed_size from the sum.
725         (generate_set_vrsave): Correct clobbers.
726         (rs6000_emit_epilogue): Test TARGET_ALTIVEC with TARGET_ALTIVEC_SAVE.
727         (rs6000_function_value): Test TARGET_ALTIVEC and TARGET_ALTIVEC_ABI.
728         (rs6000_libcall_value): Likewise.
729         * config/rs6000/rs6000.h (FUNCTION_VALUE_REGNO_P): Likewise.
730         (FUNCTION_ARG_REGNO_P): Likewise.
731
732 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
733
734         * expmed.c (expand_mult_highpart_adjust): Do not assume OP1
735         is a CONST_INT.
736         (expand_mult_highpart_optab): Call expand_mult_highpart_adjust
737         with NARROW_OP1 instead of OP1.
738
739 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
740
741         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __s390__
742         and __s390x__ hosts.
743
744 2004-03-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
745
746         * Makefile.in (LIBGCOV): Add _gcov_fork, _gcov_execl, _gcov_execlp,
747         _gcov_execle, _gcov_execv, _gcov_execvp, _gcov_execve.
748         * builtin-types.def (BT_PID, BT_PTR_CONST_STRING, BT_FN_PID,
749         BT_FN_INT_CONST_STRING_PTR_CONST_STRING,
750         BT_FN_INT_CONST_STRING_PTR_CONST_STRING_PTR_CONST_STRING): New.
751         * builtins.c (expand_builtin_fork_or_exec): New.
752         (expand_builtin): Call it.
753         * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP,BUILT_IN_EXECLE,
754         BUILT_IN_EXECV, BUILT_IN_EXECVP, BUILT_IN_EXECVE, BUILT_IN_FORK): New.
755         * c-common.c (PID_TYPE): New macro.
756         (c_common_nodes_and_builtins): Initialize pid_type_node.
757         * calls.c (special_function_p): Do not handle fork and exec.
758         (expand_call): Do not handle ECF_FORK_OR_EXEC.
759         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
760         __gcov_execv, __gcov_execvp, __gcov_execve): Declare.
761         * libgcov.c (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
762         __gcov_execv, __gcov_execvp, __gcov_execve): New.
763         * tree.h (enum tree_index): Add TI_PID_TYPE.
764         (pid_type_node): New macro.
765         (ECF_FORK_OR_EXEC): Removed.
766
767 2004-04-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
768
769         PR optimization/13985
770         * cfgloopmanip.c (fix_loop_placements): New prototype.
771         Call fix_bb_placements on the preheader of loops that have
772         been reparented.
773         (remove_path): Adjust call to fix_loop_placements.
774
775 2004-04-23  Andrew Pinski  <pinskia@physics.uc.edu>
776
777         * config/darwin7.h: New file.
778         * config.gcc (*-*-darwin*): Add darwin7.h if the
779         version is greater than 6.
780         * config/darwin.h (TARGET_C99_FUNCTIONS): Define.
781         (MATH_LIBRARY): Wrap in ifdefs.
782
783 2004-04-23  Daniel Jacobowitz  <drow@mvista.com>
784
785         * config/arm/arm.c (arm_output_epilogue): Reverse the order of
786         loading iWMMXt registers with a frame pointer.  Use post-increment
787         without a frame pointer.
788         (arm_expand_prologue): Reverse the order of saving iWMMXt registers.
789
790 2004-04-23  Paolo Bonzini  <bonzini@gnu.org>
791
792         * doc/invoke.texi (Optimize Options): Refer to "unit-at-a-time
793         mode" rather than "-funit-at-a-time" since -O2 enables it
794         without requiring -f* options.  Refer to -fprofile-generate and
795         -fprofile-use correctly.  Move -funit-at-a-time among options
796         enabled by -O.  Add information about unit-at-a-time caveats.
797
798 2004-04-22  Per Bothner  <per@bothner.com>
799
800         * line-map.h (struct line_maps):  New field highest_line.
801         (linemap_position_for_column):  Make non-inline function.
802         (LINEMAP_POSITION_FOR_COLUMN):  New macro.
803         * line-map.c (linemap_init):  Clear highest_line field.
804         (linemap_add):  Set highest_line field.
805         (linemap_line_start):  Minor optimization - use highest_line field.
806         Reduce maximum column hint to 10000.  Update highest_line field.
807         (linemap_position_for_column):  Moved from line-map.h.  Optimize a bit.
808         * cpphash.h (struct cpp_reader):  Remove line field - instead use
809         line_table->highest_line.
810         (saved_line):  Remove unused field.
811         (CPP_INCREMENT_FILE):  Don't do linemap_lookup - just use newest map.
812         Use  line_table's highest_line field instead of cpp_reader's line.
813         * cpplib.c (start_directive):  Likewise use highest_line field.
814         (do_line, do_linemarker):  Likewise just use newest map.
815         (_cpp_do_file_change):  Don't need to set cpp_reader's line field.
816         * cpperror.c (cpp_error):  Likewise use highest_line field.
817         * cppfiles.c (open_file_failed:  Likewise.
818         (cpp_make_system_header):  Likewise use newest map and highest_line.
819         * cppinit.c (cpp_create_reader):  Don't initialize removed field.
820         * cpplex.c (_cpp_process_line_notes, _cpp_skip_block_comment,
821         skip_line_comment, skip_whitespace, _cpp_get_fresh_line,
822         _cpp_lex_direct):  Likewise use highest_line.
823         (_cpp_lex_direct):  Use new LINEMAP_POSITION_FOR_COLUMN macro.
824         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use highest_line,
825         and use newest map.
826         * cpppch.c (cpp_read_state):  Don't save+restore cpp_reader's line.
827         * cpptrad.c (_cpp_overlay_buffer):  Don't save cpp_reader's line.
828         (copy_comment, _cpp_scan_out_logical_line):  Likewise use highest_line.
829
830 2004-04-23  Alan Modra  <amodra@bigpond.net.au>
831
832         PR bootstrap/14992
833         * gcc.c (init_gcc_specs): Test USE_LD_AS_NEEDED, not HAVE_LD_AS_NEEDED.
834         * config/linux.h (USE_LD_AS_NEEDED): Define.
835         * gcc/config/alpha/linux.h (USE_LD_AS_NEEDED): Define.
836         * gcc/config/arm/linux-elf.h (USE_LD_AS_NEEDED): Define.
837         * gcc/config/rs6000/linux.h (USE_LD_AS_NEEDED): Define.
838         * gcc/config/rs6000/linux64.h (USE_LD_AS_NEEDED): Define.
839         * gcc/config/sh/linux.h (USE_LD_AS_NEEDED): Define.
840         * gcc/config/sparc/linux.h (USE_LD_AS_NEEDED): Define.
841         * gcc/config/sparc/linux64.h (USE_LD_AS_NEEDED): Define.
842
843 2004-04-22  Per Bothner  <per@bothner.com>
844
845         * cppinit.c (cpp_read_main_file):  Return NULL rather than false.
846         Fixes PR preprocessor/15067.
847
848 2004-04-23  Andreas Schwab  <schwab@suse.de>
849
850         * config/ia64/ia64intrin.h: Add intermediate cast to void * to
851         avoid aliasing warning.
852
853 2004-04-22  Jan Hubicka  <jh@suse.cz>
854             Mostafa Hagog <mustafa@il.ibm.com>
855
856       * cfgloopmanip.c (scale_bbs_frequencies): Use RDIV macro
857       * cfgloopanal.c (expected_loop_iterations): Change the return value
858
859 2004-04-22  Jakub Jelinek  <jakub@redhat.com>
860
861         * cselib.h (struct elt_loc_list): Remove canon_loc field.
862         * cselib.c (new_elt_loc_list): Remove canon_loc initialization.
863         (cselib_invalidate_mem): Remove all canon_loc and canon_x
864         traces.
865
866 2004-04-22  Josef Zlomek  <zlomekj@suse.cz>
867
868         Revert
869         2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
870
871                 * var-tracking.c (variable_part_different_p): Variable parts
872                 differ when the most recent locations differ.
873
874 2004-04-22  Richard Sandiford  <rsandifo@redhat.com>
875
876         * doc/invoke.texi: Remove the MIPS -membedded-pic option.
877         * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): Delete.
878         (embedded_pic_offset): Delete.
879         * config/mips/mips.h (MASK_EMBEDDED_PIC): Delete.  Shuffle other
880         MASK_* constants.
881         (TARGET_EMBEDDED_PIC): Delete.
882         (TARGET_SWITCHES): Remove -m{no-,}embedded-pic.
883         (ASM_SPEC): Remove -membedded-pic.
884         (ASM_OUTPUT_ADDR_DIFF_ELT): Remove embedded-pic handling.
885         (ASM_OUTPUT_CASE_LABEL): Likewise.
886         * config/mips/vxworks.h (ASM_SPEC): Remove -membedded-pic.
887         * config/mips/windiss.h (ASM_SPEC): Likewise.
888         * config/mips/mips.c (struct machine_function): Remove
889         embedded_pic_fnaddr_rtx.
890         (TARGET_ENCODE_SECTION_INFO): Remove override.
891         (embedded_pic_fnaddr_reg, embedded_pic_offset): Delete.
892         (override_options): Remove -membedded-pic handling.
893         (print_operand): Remove handling of '%S'.
894         (mips_select_section: Remove -membedded-pic handling.
895         (mips_encode_section_info): Delete.
896         (mips_output_conditional_branch): Remove mention of -membedded-pic.
897         * config/mips/mips.md (define_attr length, movsi, movdi, jump): Remove
898         -membedded-pic handling.
899         (casesi, casesi_internal, casesi_internal_di, get_fnaddr): Delete.
900
901 2004-04-22  Alan Modra  <amodra@bigpond.net.au>
902
903         * var-tracking.c (frame_base_decl): Remove useless GTY.
904
905 2004-04-21  Aldy Hernandez  <aldyh@redhat.com>
906
907         * config/rs6000/rs6000.c (rs6000_override_options): Error when
908         user wants altivec and e500 instructions.
909
910 2004-04-21  H.J. Lu  <hongjiu.lu@intel.com>
911
912         PR target/14813
913         * config/ia64/crtend.asm: Move pointer to __do_global_ctors_aux
914         in .init_array section to ...
915         * config/ia64/crtbegin.asm: Here.
916
917         * config/ia64/crtend.asm: Mark __do_global_ctors_aux global
918         and hidden if HAVE_INITFINI_ARRAY is defined.
919
920 2004-04-21  James E Wilson  <wilson@specifixinc.com>
921
922         * config/mips/mips-protos.h (fp_register_operand, lo_operand): Declare.
923         * config/mips/mips.c (mips_multipass_dfa_lookahead): Declare.
924         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): New.
925         (fp_register_operand, lo_operand): New.
926         (mips_rtx_costs): Add TUNE_SB1 support.
927         (mips_issue_rate): Add comment.  Add PROCESSOR_SB1 support.
928         (mips_use_dfa_pipeline_interface): Add PROCESSOR_SB1 support.
929         (mips_multipass_dfa_lookahead): New.
930         * config/mips/mips.h (MASK_FP_EXCEPTIONS, TARGET_FP_EXCEPTIONS,
931         TUNE_SB1): New.
932         (TARGET_SWITCHES): Add -mfp-exceptions support.
933         (TARGET_FP_EXCEPTIONS_DEFAULT): New.
934         (BRANCH_COST): Fix whitespace.
935         * config/mips/mips.md: Include sb1.md.
936         * config/mips/sb1.md: New file.
937         * doc/invoke.texi: Document -mfp-exceptions.
938
939         * Makefile.in (fixinc.sh): Don't set or export WARN_CFLAGS.  Fix
940         comment.
941         * fixinc/Makefile.in (FL_LIST): Don't mention WARN_CFLAGS.
942         (fixincl.o-warn): Delete.
943
944 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
945
946         * config/rs6000/rs6000 (print_operand) ['z']:
947         Change ifdef of TARGET_MACHO to if TARGET_MACHO.
948
949 2004-04-21 Daniel Jacobowitz  <drow@mvista.com>
950
951         * config.gcc: Support --with-arch=iwmmxt for ARM.
952
953 2004-04-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
954
955         * expmed.c (expand_mult_highpart_optab): Use narrower version of OP1
956         in two more places; remove unneeded force_reg
957
958 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
959
960         * config/rs6000/rs6000.c (symbol_ref_operand): Remove hack
961         for TARGET_MACHO.
962         (print_operand): For TARGET_MACHO check to see if we need a stub
963         and output one if we need it.
964
965         PR debug/15033
966         * dwarf2out.c (rtl_for_decl_location): Check for NULL
967         rtl.
968
969 2004-04-20  James E Wilson  <wilson@specifixinc.com>
970
971         * config/ia64/ia64.md (call_value_nogp): Add constraints for op0.
972         (vall_value_gp): Likewise.
973
974 2004-04-20  DJ Delorie  <dj@redhat.com>
975
976         * dwarf2out.c (rtl_for_decl_location): Adjust rtl for byte
977         variables stored in word registers, then in memory.
978
979 2004-04-20  Eric Christopher  <echristo@redhat.com>
980
981         * cp/parser.c (cp_parser_declaration): Move translate
982         up before tokens are lexed.
983
984 2004-04-20  Uros Bizjak  <uros@kss-loka.si>
985
986         * optabs.h (enum optab_index): Add new OTI_asin and OTI_acos.
987         (asin_optab, acos_optab): Define corresponding macros.
988         * optabs.c (init_optabs): Initialize asin_optab and acos_optab.
989         * genopinit.c (optabs): Implement asin_optab and acos_optab
990         using asin?f2 and acos?f2 patterns.
991         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_ASIN{,F,L}
992         using asin_optab, and BUILT_IN_ACOS{,F,L} using acos_optab.
993         (expand_builtin): Expand BUILT_IN_ASIN{,F,L} and BUILT_IN_ACOS{,F,L}
994         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
995
996         * config/i386/i386.md (asindf2, asinsf2, asinxf2, acosdf2,
997         acossf2, acosxf2): New expanders to implement asin, asinf, asinl,
998         acos, acosf and acosl built-ins as inline x87 intrinsics.
999
1000 2004-04-20  Paul Brook  <paul@codesourcery.com>
1001
1002         * config/arm/arm.c (arm_legitimate_address_p): Use rtx_equal_p.
1003
1004 2004-04-20  Paul Brook  <paul@codesourcery.com>
1005
1006         * config/arm/arm.c (arm_expand_prologue): Fix size calculation.
1007
1008 2004-04-20  Paolo Bonzini  <bonzini@gnu.org>
1009
1010         Revert part of 2004-04-17 change that moved -frename-registers
1011         to -O1.  -frename-registers is buggy.
1012
1013         * toplev.c (flag_rename_registers): Initialize to 0.
1014         * doc/invoke.texi (Optimize options): Move -frename-registers
1015         to "Not triggered by any -O level" section.  Adjust commentary
1016         accordingly.
1017
1018 2004-04-20  Anil Paranjpe <anilp1@kpitcummins.com>
1019
1020         * toplev.c (compile_file): Move targetm.asm_out.file_end call to end.
1021
1022 2004-04-20  Richard Sandiford  <rsandifo@redhat.com>
1023
1024         * config/mips/mips.c (mips_legitimize_move): Generate special patterns
1025         for mflo and mfhi instructions.
1026         (mips_output_move): Remove mflo and mfhi handling.
1027         * config/mips/mips.md (UNSPEC_MFHILO): New unspec.
1028         (*mulsidi3_64bit): Update for new mfhi/mflo representation.
1029         Likewise various define_peephole2s.
1030         (*movdi_32bit, *movdi_64bit, *movsi_internal): Merge x<-J and x<-d
1031         alternatives.
1032         (*movdi_64bit, *movdi_64bit_mips16, *mov[shq]i_internal)
1033         (*mov[shq]i_mips16): Remove mflo and mfhi alternatives.
1034         (mfhilo_di, mfhilo_si): New patterns.
1035
1036 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
1037
1038         * function.c (assign_parms): Force
1039         MEM_EXPR (DECL_INCOMING_RTL (parm)) == parm.
1040
1041 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
1042
1043         * var-tracking.c (variable_part_different_p): Variable parts differ
1044         when the most recent locations differ.
1045
1046 2004-04-19  James E Wilson  <wilson@specifixinc.com>
1047
1048         * rtl.h (reg_set_last): Delete declaration.
1049         * rtlanal.c (reg_set_last): Delete.
1050
1051 2004-04-19  Roger Sayle  <roger@eyesopen.com>
1052
1053         * fold-const.c (fold_convert): Make function extern/public.
1054         * tree.h (fold_convert): Prototype here.
1055         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
1056         expand_builtin_strrchr, expand_builtin_strpbrk,
1057         expand_builtin_mempcpy, expand_builtin_bcopy,
1058         expand_builtin_bzero, expand_builtin_memcmp,
1059         expand_builtin_strcmp, expand_builtin_strncmp,
1060         stabilize_va_list, expand_builtin_sprintf,
1061         fold_trunc_transparent_mathfn, fold_builtin_logarithm,
1062         fold_builtin_exponent, fold_builtin_mempcpy,
1063         fold_builtin_strcpy, fold_builtin_strcmp, fold_builtin_strncmp,
1064         fold_builtin_signbit, fold_builtin_isdigit, fold_builtin): Prefer
1065         fold_convert to "convert" or "fold (build1 (NOP_EXPR, ...))".
1066
1067 2004-04-19  Aldy Hernandez  <aldyh@redhat.com>
1068
1069         * config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): New constant.
1070         (move_from_CR_gt_bit): New.
1071         (cceq_ior_compare): Name previously unnamed pattern.  Disable for
1072         E500.
1073         (cceq_rev_compare): Name previously unnamed pattern.  Allow for
1074         E500.
1075
1076         * config/rs6000/spe.md (cmpsfeq_gpr): Rewrite as unspec.
1077         (tstsfeq_gpr): Same.
1078         (cmpsfgt_gpr): Same.
1079         (tstsfgt_gpr): Same.
1080         (cmpsflt_gpr): Same.
1081         (tstsflt_gpr): Same.
1082         (e500_cceq_ior_compare): New.
1083         (e500_flip_gt_bit): New.
1084
1085         * config/rs6000/rs6000.c (ccr_bit): Remove E500 specific code.
1086         (print_operand): Add 'c' and 'D'.
1087         (rs6000_generate_compare): Rewrite to generate correct rtl.
1088         (rs6000_emit_sCOND): Handle E500.
1089         (output_cbranch): Adjust for changes in rs6000_generate_compare.
1090         (output_e500_flip_gt_bit): New.
1091
1092         * config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit):
1093         Protoize.
1094
1095 2004-04-19  Eric Christopher  <echristo@redhat.com>
1096
1097         * config/mips/mips.h (DWARF2_ADDR_SIZE): New.
1098
1099 2004-04-19  David Edelsohn  <edelsohn@gnu.org>
1100
1101         * doc/install.texi (*-ibm-aix*): Add AIX 5.1 assembler and archiver
1102         fix information.
1103
1104 2004-04-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1105
1106         * doc/install.texi (Specific, mips-sgi-irix5): Fix IRIX 5.3 IDO
1107         download URL.
1108
1109 2004-04-19  Daniel Jacobowitz  <drow@mvista.com>
1110
1111         * stor-layout.c (layout_decl): Check DECL_PACKED before calling
1112         ADJUST_FIELD_ALIGN.  Check maximum_field_alignment after.
1113
1114 2004-04-19  Andrew PInski  <pinskia@physics.uc.edu>
1115
1116         * builtins.c (fold_builtin_cabs): Remove fndecl parameter.
1117         (fold_builtin): Update caller to match.
1118
1119         PR bootstrap/15009
1120         * bb-reorder.c (fix_up_fall_thru_edges): Init cond_jump.
1121
1122         PR bootstrap/14999
1123         * builtins.c (fold_builtin_cabs): Mark fndecl as unused.
1124
1125 2004-04-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1126
1127         * varasm.c (compare_constant, case VIEW_CONVERT_EXPR): Add case.
1128
1129         * expmed.c (expand_mult_highpart_adjust): Make OP1 valid for MODE.
1130         (expand_mult_highpart_optab): Likewise.
1131         (expand_mult_highpart): Make OP1 valid for WIDER_MODE, not MODE.
1132
1133 2004-04-19  Paul Brook  <paul@codesourcery.com>
1134
1135         * config/arm/arm.md (fixuns_truncsfsi2, fixuns_truncdfsi2,
1136         floatunssisf2, floatunssidf2): New patterns.
1137
1138 2004-04-18  Mark Mitchell  <mark@codesourcery.com>
1139
1140         PR other/14918
1141         * doc/invoke.texi (-fprofile-generate): Document requirement to
1142         use -fprofile-generate when linking.
1143
1144         * doc/extend.texi (Strong Using): Warn users against using this
1145         feature.
1146
1147 2004-04-18  Richard Sandiford  <rsandifo@redhat.com>
1148
1149         * config/mips/mips-protos.h (m16_usym8_4, m16_usym5_4): Delete.
1150         * config/mips/mips.h (mips_entry, mips_string_length): Delete.
1151         (CONSTANT_POOL_BEFORE_FUNCTION, ASM_OUTPUT_POOL_EPILOGUE): Undefine.
1152         * config/mips/mips.c (struct mips16_constant): Renamed from struct
1153         constant.  Propogate change throughout file.
1154         (struct machine_function): Remove insns_len.
1155         (mips_string_length, mips16_strings, string_constants): Delete.
1156         (mips_classify_symbol): Return SYMBOL_CONSTANT_POOL for LABEL_REFs
1157         when generating mips16 code.  Remove special mips16 treatment of
1158         string constants.
1159         (mips_symbolic_constant_p): Allow mips16 constant pool accesses
1160         to have the form LABEL+CONSTANT.
1161         (mips_symbolic_address_p): Fix comment.
1162         (m16_usym8_4, m16_usym5_4): Delete.
1163         (mips_output_function_epilogue): Remove mips16 string handling.
1164         (mips_output_mi_thunk): Call mips16_lay_out_constants.
1165         (mips_select_section, mips_encode_section_info): Remove mips16
1166         string handling.
1167         (struct mips16_constant_pool): New.
1168         (add_constant): Take a mips16_constant_pool structure.  Keep pool
1169         sorted into order of ascending mode size.  Keep track of the highest
1170         possible start address, taking padding and the masking of the base PC
1171         value into account.
1172         (dump_constants_1): New function, split out from dump_constants.
1173         Handle vector constants.  Use gen_consttable_{int,float} rather than
1174         separate functions for each mode.
1175         (dump_constants): Simplify.  Use GET_MODE_ALIGNMENT.  Use gen_align
1176         rather than separate functions for each alignment.
1177         (mips_find_symbol): Delete.
1178         (mips16_insn_length): New function, split out from
1179         mips16_lay_out_constants.
1180         (mips16_rewrite_pool_refs): New function.
1181         (mips16_lay_out_constants): Rework. Remove string handling.
1182         Always create an inline constant pool.
1183         * config/mips/mips.md (UNSPEC_CONSTTABLE_INT, UNSPEC_CONSTTABLE_FLOAT)
1184         (UNSPEC_ALIGN): New constants.
1185         (UNSPEC_CONSTTABLE_[QHSD]I, UNSPEC_CONSTTABLE_[SD]F): Delete.
1186         (UNSPEC_ALIGN_[248]): Delete.
1187         (consttable_int, consttable_float, align): New patterns.
1188         (consttable_[qhsd]i, consttable_[sd]f, align_[248]): Delete.
1189
1190 2004-04-17  Aldy Hernandez  <aldyh@redhat.com>
1191
1192         * config/rs6000/altivec.h (vec_any_numeric): Correct typo in
1193         __unn_args_eq.
1194
1195 2004-04-17  Alan Modra  <amodra@bigpond.net.au>
1196
1197         PR target/14715
1198         * config/rs6000/rs6000.c (rs6000_stack_info): Make parm_size agree
1199         with STARTING_FRAME_OFFSET.
1200
1201 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
1202
1203         * config/mips/mips.h (PREDICATE_CODES): Add macc_msac_operand.
1204         * config/mips/mips.c (macc_msac_operand): New function.
1205         * config/mips/mips.md (*msac): Move after *macc.
1206         (*msac2): New.  Generalize macc-related peepholes so that they apply
1207         to msac too.
1208
1209 2004-04-17  Paolo Bonzini  <bonzini@gnu.org>
1210
1211         * opts.c (decode_options): Do not enable flag_rename_registers
1212         and flag_web at -O3.
1213         * toplev.c (flag_rename_registers): Initialize
1214         flag_rename_registers and flag_web to
1215         AUTODETECT_FLAG_VAR_TRACKING.
1216         (default_debug_hooks): New global.
1217         (process_options): Initialize default_debug_hooks.  Warn if
1218         -fvar-tracking specified but not supported by the current
1219         debug format.  Do not run var tracking at -O0 or if not
1220         supported by the current debug format, even if
1221         -fvar-tracking was given.  If -fno-rename-registers
1222         is not specified, always run register renaming if var
1223         tracking is supported by the default debugging information
1224         format for the target, and we are at -O1 or higher; similarly
1225         for -fweb, but only at -O2 or higher.
1226         * doc/invoke.texi (Optimize Options): Document this.
1227
1228 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
1229
1230         * configure.ac (gcc_cv_ld_as_needed): Use AC_CACHE_CHECK.
1231         * configure: Regenerate.
1232
1233 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
1234
1235         * gcc.c (used_arg): Check whether an option has been removed.
1236
1237 2004-04-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1238
1239         * config.gcc (i[34567]86-*-solaris2*): Default to DWARF-2
1240         debugging on Solaris 7 and up.
1241
1242 2004-04-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1243
1244         * doc/install.texi (Specific, mips-sgi-irix5): Reflect working
1245         IRIX 5 port.
1246         Remove -save-temps workaround, handled automatically.
1247         Require GNU binutils 2.15 for debugging.
1248         Remove SGI make warnings since GNU make is now required.
1249         (Specific, mips-sgi-irix6): Some markup fixes.
1250         Describe MIPSpro C problems and workarounds.
1251         Mention working O32 ABI support.
1252         Recommend GNU as 2.15 for O32 with debugging.
1253         Remove description of fixed structure pass/return bug.
1254
1255 2004-04-16  DJ Delorie  <dj@redhat.com>
1256
1257         * sdbout.c (sdbout_one_type): Use TYPE_VALUES for enums, not
1258         TYPE_FIELDS.
1259         (sdbout_finish): Don't free deferred_global_decls; it's GC'd.
1260
1261 2004-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1262
1263         * pa.md: Remove unnecessary declarations for asm_out_file.
1264
1265         * pa64-regs.h (DBX_REGISTER_NUMBER): Simplify and correct mapping of
1266         SAR register.  Fix comment.
1267         (ADDITIONAL_REGISTER_NAMES): Correct register number of SAR register
1268         (%cr11).
1269
1270         * pa64-hpux.h (LIB_SPEC): Fix library specification used with GNU ld.
1271
1272 2004-04-16  Nick Clifton  <nickc@redhat.com>
1273
1274         * config/arm/arm.c (arm_override_options): Revert previous patch.
1275         * config/arm/t-xscale-elf: Disable iwmmxt multilibs until they can
1276         be safely built.
1277
1278 2004-04-16  Kazuhiro Inaoka <inaoka dot kazuhiro at renesas dot com>
1279
1280         * config/m32r/m32r.h (BIG_ENDIAN_BIT): Deleted to fix endian
1281         bug.
1282         (TARGET_LITTLE_ENDIAN, TARGET_BIG_ENDIAN,
1283         TARGET_DEFAULT): Changed. Ditto.
1284         (LITTLE_ENDIAN_BIT, TARGET_CPU_DEFAULT,
1285         TARGET_ENDIAN_DEFAULT): Added. Ditto.
1286         * config/m32r/little.h (TARGET_LITTLE_ENDIAN): Deleted.
1287         (TARGET_ENDIAN_DEFAULT): Added.
1288
1289 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1290
1291         * builtins.def (BUILT_IN_ISDIGIT, BUILT_IN_ISXDIGIT): Mark with
1292         ATTR_CONST_NOTHROW_LIST.
1293
1294 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1295
1296         PR/middle-end 14915
1297         * builtins.c (expand_builtin_signbit): Test BYTES_BIG_ENDIAN, not
1298         BITS_BIG_ENDIAN.
1299
1300 2004-04-15  Pat Haugen  <pthaugen@us.ibm.com>
1301
1302         * ra-debug.c (ra_print_rtx): Add break's to case legs.
1303
1304 2004-04-14  James E Wilson  <wilson@specifixinc.com>
1305
1306         * Makefile.in (fixinc.sh): Set WARN_CFLAGS to empty string.
1307
1308 2004-04-14  Nathanael Nerode  <neroden@gcc.gnu.org>
1309
1310         * libada-mk.in: New file.
1311         * configure.ac: Create libada-mk from libada-mk.in.
1312         * configure: Regenerate.
1313
1314 2004-04-14  Uros Bizjak  <uros@kss-loka.si>
1315
1316         * optabs.h (enum optab_index): Add new OTI_logb and OTI_ilogb.
1317         (logb_optab, ilogb_optab): Define corresponding macros.
1318         * optabs.c (init_optabs): Initialize logb_optab and ilogb_optab.
1319         * genopinit.c (optabs): Implement logb_optab and ilogb_optab
1320         using logb?f2 and ilogb?i2 patterns.
1321         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOGB{,F,L}
1322         using logb_optab, and BUILT_IN_ILOGB{,F,L} using ilogb_optab.
1323         (expand_builtin): Expand BUILT_IN_LOGB{,F,L} and BUILT_IN_ILOGB{,F,L}
1324         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
1325
1326         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_XTRACT_FRACT
1327         and UNSPEC_XTRACT_EXP.
1328
1329         * config/i386/i386.md (*fxtractdf3, *fxtractsf3, *fxtractxf3): New
1330         patterns to implement fxtract x87 instruction.
1331         (logbdf2, logbsf2, logbxf2, ilogbsi2): New expanders to implement
1332         logb, logbf, logbl, ilogb, ilogbf and ilogbl built-ins as inline x87
1333         intrinsics.
1334         (UNSPEC_XTRACT_FRACT, UNSPEC_XTRACT_EXP): New unspecs to represent
1335         x87's fxtract insn.
1336
1337 2004-04-14  Eric Christopher  <echristo@redhat.com>
1338
1339         * config/mips/t-elf: Enable multilibs by default.
1340
1341 2004-04-14  Andreas Tobler  <a.tobler@schweiz.ch>
1342
1343         * bb-reorder.c (fix_crossing_conditional_branches): Adjust the
1344         previous fix to check HAVE_return at runtime too.
1345
1346 2004-04-14  Nick Clifton  <nickc@redhat.com>
1347
1348         * config/arm/arm.c (arm_override_options): If the user has not
1349         specified an ABI, then default to AAPCS for the iWMMXt processor.
1350         * config/arm/t-xscale-elf: Remove redundant multilib specifications.
1351         * config/arm/t-xscale-coff: Likewise.
1352
1353 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1354
1355         * builtins.c (fold_builtin_isdigit): New.
1356         (fold_builtin): Handle BUILT_IN_ISDIGIT.
1357         * defaults.h: Add TARGET_DIGIT0 and sort.
1358         * doc/tm.texi: Add TARGET_BS and TARGET_DIGIT0.
1359
1360 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1361
1362         * builtins.c (fold_builtin_cabs, fold_builtin): Use
1363         `mathfn_built_in' to determine the new builtin.
1364         * fold-const.c (fold): Likewise.
1365
1366 2004-04-14  Richard Sandiford  <rsandifo@redhat.com>
1367
1368         * doc/invoke.texi: Rename MIPS's -mfix-vr4122-bugs to -mfix-vr4120.
1369         * config/mips/mips.h (MASK_FIX_VR4120): Renamed from MASK_FIX_VR4122.
1370         (TARGET_FIX_VR4120): Likewise TARGET_FIX_VR4122.
1371         (TARGET_SWITCHES): Replace -mfix-vr4122-bugs with -mfix-vr4120.
1372         (ASM_SPEC): Update accordingly.
1373         * config/mips/mips.c: Update after above renaming.
1374         * config/mips/mips.md, config/mips/t-vr, config/mips/vr.h: Likewise.
1375         * config/mips/vr4120-div.S: Renamed from vr4122-div.S.
1376
1377 2004-04-13  James E Wilson  <wilson@specifixinc.com>
1378
1379         * c-opt.c (c_common_post_options): If this_input_filename is NULL,
1380         increment errorcount and return false instead of true.
1381
1382 2004-04-13  Uros Bizjak  <uros@kss-loka.si>:
1383
1384         * optabs.c (expand_twoval_unop): Reorder function arguments.
1385         * builtins.c (expand_builtin_mathfn_3): Update calls to
1386         expand_twoval_unop.
1387
1388         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_TAN_ONE
1389         and UNSPEC_TAN_TAN. Add missing comment.
1390
1391         * config/i386/i386.md (*tandf3_1, *tansf3_1, *tanxf3_1): New
1392         patterns to implement fptan x87 instruction.
1393         (tandf2, tansf2, tanxf2): New expanders to implement tan, tanf
1394         and tanl built-ins as inline x87 intrinsics. Define corresponding
1395         peephole2 optimizers for 'fptan; fstp %st(0); fld1' sequence.
1396         (UNSPEC_TAN_ONE, UNSPEC_TAN_TAN): New unspecs to represent
1397         x87's fptan insn.
1398
1399 2004-03-13  Richard Henderson  <rth@redhat.com>
1400
1401         * bb-reorder.c (fix_crossing_unconditional_branches): Use Pmode
1402         for LABEL_REFs.
1403
1404         * defaults.h (HOT_TEXT_SECTION_NAME): Add leading dot.
1405         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Likewise.
1406         * doc/invoke.texi: Update to match.
1407
1408         * varasm.c (unlikely_text_section): Use assemble_align instead of
1409         ASM_OUTPUT_ALIGN.  Use it in the correct place with an approximately
1410         correct alignment argument.
1411
1412 2004-04-13  Ulrich Weigand  <uweigand@de.ibm.com>
1413
1414         * reload1.c (emit_reload_insns): Set reg_has_output_reload to one
1415         after setting reg_last_reload_reg for optional output reloads.
1416
1417 2004-04-12  Fariborz Jahanian <fjahanian@apple.com>
1418
1419         * config/rs6000/altivec.h (vec_mergeh, vec_mergel):
1420         Definition of these two macros are corrected by adding
1421         matchine right paren.
1422
1423 2004-04-12  Jonathan Larmour  <jifl@eCosCentric.com>
1424
1425         * fix-header.c: kill(), putenv() and tzset() are POSIX not ANSI.
1426
1427 2004-04-12  Roger Sayle  <roger@eyesopen.com>
1428
1429         * config/i386/i386.c (output_387_reg_move): New function.
1430         * config/i386/i386-protos.h (output_387_reg_move): Prototype here.
1431         * config/i386/i386.md (*movsf_1, *movsf1_nointerunit,
1432         *movdf_nointeger, *movdf_integer, *movxf_nointeger, *movxf_integer,
1433         *extendsfdf2_1,  *extendsfxf2_1, *extenddfxf2_1, truncdfsf2_noop,
1434         truncxfsf2_noop, truncxfdf2_noop): Call output_387_reg_move.
1435
1436 2004-04-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1437
1438         * c-decl.c (finish_decl): Make a decl_stmt for a variable-sized
1439         TYPE_DECL.
1440         * c-semantics.c (genrtl_decl_stmt): Handle TYPE_DECL.
1441         * stmt.c (expand_decl): Remove redundant expansion of TYPE_DOMAIN.
1442         * stor-layout.c (variable_size): Don't check for MINUS_EXPR.
1443         Use skip_simple_arithmetic to find SAVE_EXPR.
1444         (force_type_save_exprs, force_type_save_exprs_1): New functions.
1445         * tree-inline.c (remap_type, case POINTER_TYPE, case REFERENCE_TYPE):
1446         Properly chain multiple pointers.
1447         (copy_tree_r): Copy a TYPE_DECL.
1448         * tree.c (variably_modified_type_p): Add some missing tests and
1449         make some other minor changes.
1450         * tree.h (force_type_save_exprs): New declaration.
1451
1452 2004-04-12  Roger Sayle  <roger@eyesopen.com>
1453
1454         * simplify-rtx.c (simplify_binary_operation) <UDIV, DIV, UMOD, MOD>:
1455         Remove fall throughs.  Convert 0/x and 0%x into x&0 when x has
1456         side-effects.  Don't convert x/1.0 into x if we honor signaling NaNs.
1457         Convert x/-1.0 into -x if we don't honor signaling NaNs.  Convert
1458         x/-1 into -x.  Optimize x%1 into x&0 if x has side-effects.  Optimize
1459         x%-1 into 0 (or x&0 if x has side-effects).
1460
1461 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
1462
1463         * config/rs6000/rs6000.md: Document why a pattern is not
1464         available.
1465
1466         * config/rs6000/rs6000.c (rs6000_emit_cmove): Disable comparisons
1467         of floats on the E500.
1468         (branch_positive_comparison_operator): Do not allow NE even on the
1469         E500.
1470
1471 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
1472
1473         * config/rs6000/rs6000.c (rs6000_assemble_integer): Change
1474         in_text_unlikely_section to in_unlikely_text_section.
1475
1476 2004-04-11  Roger Sayle  <roger@eyesopen.com>
1477
1478         * fold-const.c (fold_binary_op_with_conditional_arg):  Tweak
1479         calling convention to allow a NULL_TREE to be returned.  Factor
1480         sanity checks from callers, return NULL_TREE when appropriate.
1481         (fold): Handle COMPOUND_EXPR operands of binary expressions
1482         before COND_EXPR operands.  Use reorder_operands_p(a,b) to check
1483         whether a op (b,c) can be rewritten as (b, a op c).  Simplify
1484         calls to fold_binary_op_with_conditional_arg.
1485
1486 2004-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1487
1488         * config/mips/iris5.h (current_section_flags):  Add
1489         in_unlikely_executed_text and default case.
1490
1491 2004-04-11  Andreas Tobler  <a.tobler@schweiz.ch>
1492
1493         * bb-reorder.c (fix_crossing_conditional_branches): Fix bootstrap
1494         failure on solaris. Place ifdef HAVE_return around gen_ret call.
1495         * cfgrtl.c (force_nonfallthru_and_redirect): Remove ifdef
1496         HAVE_return and place it around the place where it is needed.
1497
1498 2004-04-11  Andrew Pinski  <pinskia@physics.uc.edu>
1499
1500         * varasm.c (text_section): Use TEXT_SECTION_ASM_OP and
1501         ASM_OUTPUT_ALIGN instead of SECTION_FORMAT_STRING
1502         and NORMAL_TEXT_SECTION_NAME.
1503         (unlikely_text_section): Check targetm.have_named_sections
1504         instead of TARGET_ASM_NAMED_SECTION and use TEXT_SECTION_ASM_OP
1505         instead of SECTION_FORMAT_STRING.
1506         * config/mips/iris5.h (current_section_name): Add
1507         in_unlikely_executed_text case and move the abort into the switch.
1508         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME): Remove.
1509         (NORMAL_TEXT_SECTION_NAME): Remove.
1510         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
1511         (SECTION_FORMAT_STRING): Remove.
1512         * defaults.h (SECTION_FORMAT_STRING): Remove.
1513         * tm.texi (NORMAL_TEXT_SECTION_NAME): Remove.
1514         (SECTION_FORMAT_STRING): Remove.
1515
1516 2004-04-10  Joseph S. Myers  <jsm@polyomino.org.uk>
1517
1518         * c-typeck.c (common_type): Prefer long long to long when same
1519         precision.
1520
1521 2004-04-09  Zack Weinberg  <zack@codesourcery.com>
1522
1523         PR 14887
1524         * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Look only at
1525         mode argument.
1526         * config/ia64/ia64.c (ia64_hpux_file_end): Check
1527         TREE_SYMBOL_REFERENCED on DECL_ASSEMBLER_NAME, not DECL_NAME.
1528
1529 2004-04-09  Roger Sayle  <roger@eyesopen.com>
1530
1531         * simplify-rtx.c (mode_signbit_p): New function to check whether
1532         an RTX is an immediate constant that represents the most significant
1533         bit of a given machine mode.
1534         (simplify_unary_operation) <NOT>: Optimize ~(X+C) as X ^ ~C, where
1535         C is the sign bit.
1536         (simplify_binary_operation) <PLUS>: Optimize (X^C1) + C2 as X^(C1^C2)
1537         when C2 is the sign bit.
1538         (simplify_binary_operation) <XOR>: Canonicalize X^C as X+C when C
1539         is the sign bit.  Optimize (X+C1) ^ C2 as X^(C1^C2) when C1 is the
1540         sign bit.
1541
1542 2004-04-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1543
1544         * builtins.c (mathfn_built_in): Check TYPE_MAIN_VARIANT, not
1545         TYPE_MODE.
1546
1547 2004-04-09  Andrew Pinski  <pinskia@physics.uc.edu>
1548
1549         * c-common.c (handle_noreturn_attribute): Use TYPE_READONLY instead
1550         of TREE_READONLY for types.
1551
1552 2004-04-09  Caroline Tice  <ctice@apple.com>
1553
1554         * basic-block.h (struct edge_def):  Add new field, crossing_edge.
1555         (struct basic_block_def):  Add new field, partition.
1556         (UNPARTITIONED, HOT_PARTITION, COLD_PARTITION):  New constant macro
1557         definitions.
1558         (partition_hot_cold_basic_blocks): Add extern function
1559         declaration.
1560         * bb-reorder.c (function.h, obstack.h, expr.h, regs.h):  Add four new
1561         include statements.
1562         (N_ROUNDS): Increase the maximum number of rounds by 1.
1563         (branch_threshold): Add array value for new round.
1564         (exec_threshold): Add array value for new round.
1565         (push_to_next_round_p): New function.
1566         (add_unlikely_executed_notes): New function.
1567         (find_rarely_executed_basic_blocks_and_crossing_edges): New function.
1568         (mark_bb_for_unlikely_executed_section): New function.
1569         (add_labels_and_missing_jumps): New function.
1570         (add_reg_crossing_jump_notes): New function.
1571         (fix_up_fall_thru_edges): New function.
1572         (find_jump_block): New function.
1573         (fix_crossing_conditional_branches): New function.
1574         (fix_crossing_unconditional_branches): New function.
1575         (fix_edges_for_rarely_executed_code): New function.
1576         (partition_hot_cold_basic_blocks): New function.
1577         (find_traces):  Add an extra round for partitioning hot/cold
1578         basic blocks.
1579         (find_traces_1_round): Add a parameter.  Modify to push all cold blocks,
1580         and only cold blocks, into the last (extra) round of collecting traces.
1581         (better_edge_p): Add a parameter.  Modify to favor non-crossing edges
1582         over crossing edges.
1583         (bb_to_key):  Add code to correctly identify cold blocks when
1584         doing partitioning.
1585         (connect_traces): Modify to connect all the non-cold traces first, then
1586         go back and connect up all the cold traces.
1587         (reorder_basic_blocks):  Add call to add_unlikely_executed_notes.
1588         * cfg.c (entry_exit_blocks): Add initialization for partition field in
1589         entry and exit blocks.
1590         * cfgbuild.c (make_edges): Update current_function_has_computed_jump
1591         if we are doing hot/cold partitioning.
1592         * cfgcleanup.c (cfglayout.h): Add new include statement.
1593         (try_simplify_condjump): Modify to not attempt on blocks with jumps
1594         that cross section boundaries.
1595         (try_forward_edges): Likewise.
1596         (merge_blocks_move_predecessor_nojumps): Likewise.
1597         (merge_blocks_move_successor_nojumps): Likewise.
1598         (merge_blocks_move): Likewise.
1599         (try_crossjump_to_edge): Modify to not attempt after we have done
1600         the block partitioning.
1601         (try_crossjump_bb): Modify to not attempt on blocks with jumps that
1602         cross section boundaries.
1603         (try_optimize_cfg): Likewise.
1604         * cfghooks.c (tidy_fallthru_edges): Modify to not remove indirect
1605         jumps that cross section boundaries.
1606         * cfglayout.c (flags.h): Add new include statement.
1607         (update_unlikely_executed_notes):  New function.
1608         (fixup_reorder_chain):  Add code so when a new jumping basic block is
1609         added, it's UNLIKELY_EXECUTED_CODE and REG_CROSSING_JUMP notes are
1610         updated appropriately.
1611         (duplicate_insn_chain):  Add code to duplicate the new NOTE insn
1612         introduced by this optimization.
1613         * cfglayout.h (scan_ahead_for_unlikely_executed_note):  Add new
1614         extern function declaration.
1615         * cfgrtl.c (can_delete_note_p):  Add NOTE_INSN_UNLIKELY_EXECUTED_CODE to
1616         list of notes that can be deleted.
1617         (create_basic_block_structure):  Add initialization for partition field.
1618         (rtl_can_merge_blocks):  Modify to test blocks for jumps that cross
1619         section boundaries.
1620         (try_redirect_by_replacing_jump):  Modify to not attempt on jumps that
1621         cross section boundaries.
1622         (commit_one_edge_insertion): Add code so newly created basic block
1623         ends up in correct (hot or cold) section.  Modify to disallow
1624         insertions before NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
1625         (rtl_verify_flow_info_1):  Add code to verify that no fall_thru edge
1626         crosses section boundaries.
1627         (cfg_layout_can_merge_blocks_p): Modify to test blocks for jumps that
1628         cross section boundaries.
1629         (force_nonfallthru_and_redirect): Modify to make sure new basic block
1630         ends up in correct section, with correct notes attached.
1631         * common.opt (freorder-blocks-and-partition):  Add new flag for this
1632         optimization.
1633         * dbxout.c (dbx_function_end):  Add code to make sure scope labels at
1634         the end of functions are written into the correct (hot or cold)
1635         section.
1636         (dbx_source_file): Add code so writing debug file information
1637         doesn't incorrectly change sections.
1638         * defaults.h (NORMAL_TEXT_SECTION_NAME): New constant macro, for use
1639         in partitioning hot/cold basic blocks into separate sections.
1640         (SECTION_FORMAT_STRING): New constant macro, for linux/i386 hot/cold
1641         section partitioning.
1642         (HAS_LONG_COND_BRANCH): New constant macro, indicating whether or not
1643         conditional branches can span all of memory.
1644         (HAS_LONG_UNCOND_BRANCH): New constant macro, indicationg whether or not
1645         unconditional branches can span all of memory.
1646         * final.c (scan_ahead_for_unlikely_executed_note):  New function.
1647         (final_scan_insn):  Add code to check for NOTE instruction indicating
1648         whether basic block belongs in hot or cold section, and to make sure
1649         the current basic block is being written to the appropriate section.
1650         Also added code to ensure that jump table basic blocks end up in the
1651         correct section.
1652         * flags.h (flag_reorder_blocks_and_partition):  New flag.
1653         * ifcvt.c (find_if_case_1):  Modify to not attempt if conversion if
1654         one of the branches has a jump that crosses between sections.
1655         (find_if_case_2): Likewise.
1656         (ifcvt): Modify to not attempt to mark loop exit edges after
1657         hot/cold partitioning has occurred.
1658         * opts.c (decode_options): Code to handle new flag,
1659         flag_reorder_blocks_and_partition; also to turn it off if
1660         flag_exceptions is on.
1661         (common_handle_option): Code to handle new flag,
1662         flag_reorder_blocks_and_partition.
1663         * output.h (unlikely_text_section): New extern function declaration.
1664         (in_unlikely_text_section): New extern function declaration.
1665         * passes.c (rest_of_handle_stack_regs):  Add
1666         flag_reorder_blocks_and_partition as an 'or' condition for calling
1667         reorder_basic_blocks.
1668         (rest_of_handle_reorder_blocks):  Add flag_reorder_blocks_and_partition
1669         as an 'or' condition for calling reorder_basic_blocks.
1670         (rest_of_compilation):  Add call to partition_hot_cold_basic_blocks.
1671         * print-rtl.c (print_rtx): Add code for handling new note,
1672         NOTE_INSN_UNLIKELY_EXECUTED_CODE
1673         * rtl.c  (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note insn (see below).
1674         (REG_CROSSING_JUMP): New kind of reg_note, to mark jumps that
1675         cross between section boundaries.
1676         * rtl.h (NOTE_INSN_UNLIKELY_EXECUTED_CODE):  New note instruction,
1677         indicating the basic block containing it belongs in the cold section.
1678         (REG_CROSSING_JUMP): New type of reg_note, to mark jumps that cross
1679         between hot and cold sections.
1680         * toplev.c (flag_reorder_blocks_and_partition):  Add code to
1681         initialize this flag, and to tie it to the command-line option
1682         freorder-blocks-and-partition.
1683         * varasm.c (cfglayout.h):  Add new include statement.
1684         (unlikely_section_label_printed):  New global variable, used for
1685         determining when to output section name labels for cold sections.
1686         (in_section):  Add in_unlikely_executed_text to enum data structure.
1687         (text_section):  Modify code to use SECTION_FORMAT_STRING and
1688         NORMAL_TEXT_SECTION_NAME macros.
1689         (unlikely_text_section):  New function.
1690         (in_unlikely_text_section):  New function.
1691         (function_section):  Add code to make sure beginning of function is
1692         written into correct section (hot or cold).
1693         (assemble_start_function):  Add code to make sure stuff is written to
1694         the correct section.
1695         (assemble_zeros):  Add in_unlikely_text_section as an 'or' condition
1696         to an if statement that was checking 'in_text_section'.
1697         (assemble_variable):  Add 'in_unlikely_text_section' as an 'or'
1698         condition to an if statement that was checking 'in_text_section'.
1699         (default_section_type_flags_1):  Add check: if in cold section
1700         flags = SECTION_CODE.
1701         * config/darwin.c (darwin_asm_named_section):  Modify to use
1702         SECTION_FORMAT_STRING if we are partitioning hot/cold blocks.
1703         * config/i386/i386.h (HAS_LONG_COND_BRANCH): Defined this macro
1704         specifically for the i386.
1705         (HAS_LONG_UNCOND_BRANCH):  Defined this macro specifically for the i386.
1706         * config/rs6000/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Change
1707         text string to something more informative.
1708         (NORMAL_TEXT_SECTION_NAME): Add new definition.
1709         (SECTION_FORMAT_STRING):  Add new definition.
1710         * config/rs6000/rs6000.c (rs6000_assemble_integer):  Add
1711         '!in_unlikely_text_section' as an 'and' condition to an if statement
1712         that was already checking '!in_text_section'.
1713         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME,NORMAL_TEXT_SECTION_NAME,
1714         UNLIKELY_EXECUTED_TEXT_SECTION_NAME,SECTION_FORMAT_STRING): Make
1715         sure these are properly defined for linux on ppc.
1716         * doc/invoke.texi  (freorder-blocks-and-partition): Add documentation
1717         for this new flag.
1718         * doc/rtl.texi (REG_CROSSING_JUMP):  Add documentation for new
1719         reg_note.
1720         * doc/tm.texi (NORMAL_TEXT_SECTION_NAME, SECTION_FORMAT_STRING,
1721         HAS_LONG_COND_BRANCH, HAS_LONG_UNCOND_BRANCH): Add documentation for
1722         these new macros.
1723
1724 2004-04-08  Roger Sayle  <roger@eyesopen.com>
1725
1726         * function.c (gen_mem_addressof): When changing the RTX from a REG
1727         to a MEM, clear MEM_VOLATILE_P which was formerly REG_USERVAR_P.
1728
1729 2004-04-08  Roger Sayle  <roger@eyesopen.com>
1730
1731         PR target/14888
1732         * config/i386/i386.md (truncdfsf2_noop, truncxfsf2_noop,
1733         truncxfdf2_noop): Provide dummy "fmov" implementations.
1734
1735 2004-04-08  Ian Lance Taylor  <ian@wasabisystems.com>
1736
1737         * gcc.c (default_compilers): Add missing initializers.
1738
1739         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
1740         Return 1 if file was successfully mapped.
1741
1742 2004-04-08  Geoffrey Keating  <geoffk@apple.com>
1743
1744         PR pch/13419
1745         PR pch/14137
1746         Radar #: 3315288
1747         * doc/invoke.texi (Precompiled Headers): Suggest -o
1748         to put an output file in a particular place.  Be more detailed
1749         about which options affect PCH validity and which options
1750         might not work.
1751         * c-pch.c (pch_matching): New.
1752         (MATCH_SIZE): New.
1753         (struct c_pch_validity): New field 'match'.
1754         (pch_init): Handle pch_matching.
1755         (c_common_valid_pch): Check pch_matching.
1756
1757         * explow.c: Fix typo defining default of PROMOTE_FUNCTION_MODE.
1758
1759 2004-04-08  Mark Mitchell  <mark@codesourcery.com>
1760
1761         * doc/invoke.texi (Precompiled Headers): Warn about known
1762         problems.
1763
1764 2004-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
1765
1766         PR c++/14808
1767         * defaults.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): New macro. Default
1768         to 1 if ASM_OUTPUT_DEF is defined.
1769         * doc/tm.texi (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document.
1770         * config/i386/cygming.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): Define.
1771         Set to non-zero iff not a one_only decl.
1772
1773 2004-04-08  Paul Brook  <paul@codesourcery.com>
1774
1775         * arm.h (CLASS_LIKELY_SPILLED_P): Define.
1776
1777 2004-04-08  Paul Brook  <paul@codesourcery.com>
1778
1779         * explow.c (promote_mode): Use PROMOTE_FUNCTION_MODE instead of
1780         PROMOTE_FOR_CALL_ONLY.
1781         * config/arm/arm-protos.h (arm_function_value): Declare.
1782         * config/arm/arm.h (TARGET_PROMOTE_FUNCTION_ARGS): Define.
1783         (TARGET_PROMOTE_PROTOTYPES): Return false.
1784         (arm_function_value): New function.
1785         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Define.
1786         (FUNCTION_VALUE): Call arm_function_value.
1787         * config/cris/cris.h (PROMOTE_MODE): Rename ...
1788         (PROMOTE_FUNCTION_MODE): ... to this.
1789         (PROMOTE_FOR_CALL_ONLY): Remove.
1790         * config/mmix/mmix.h: Likewise.
1791         * config/s390/s390.h: Likewise.
1792         * config/sparc/sparc.h: Likewise.
1793         * config/sparc/sparc.c: Update comments about PROMOTE_MODE.
1794         * doc/tm.texi (PROMOTE_FUNCTION_MODE): Document.
1795         (TARGET_PROMOTE_FUNCTION_MODE, TARGET_PROMOTE_FUNCTION_RETURN): Update.
1796         (PROMOTE_FOR_CALL_ONLY): Remove.
1797
1798 2004-04-08  Joel Sherrill <joel@oarcorp.com>
1799
1800         PR ada/14538
1801         * ada/5rosinte.adb: Remove fake mprotect() body.
1802         * ada/5rosinte.ads: Add SA_SIGINFO.
1803         * ada/5rtpopsp.adb: Rewrite to use new interface.
1804         * ada/init.c: Reorder so the simple single OS conditional __rtems__
1805         is tested before more complex ones which mix UNIX and embedded
1806         systems in the conditional.
1807
1808 2004-04-08  Joel Sherrill  <joel@oarcorp.com>
1809
1810         PR ada/14665
1811         * ada/osint.adb (Find_Program_Name): Rework to properly handle
1812         filenames which end in .exe or have versioning suffixes like VMS.
1813
1814 2004-04-08  Andrew Pinski  <pinskia@physics.uc.edu>
1815
1816         PR target/10129
1817         * config/darwin.c (darwin_encode_section_info): When the decl has
1818         a DECL_INITIAL, it is only defined also when it is not a common.
1819
1820 2004-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1821
1822         * builtins.c (fold_builtin_isascii, fold_builtin_toascii): New.
1823         (fold_builtin): Handle BUILT_IN_ISASCII and BUILT_IN_TOASCII.
1824
1825 2004-04-07  H.J. Lu  <hongjiu.lu@intel.com>
1826
1827         * config/ia64/ia64.c (ia64_encode_section_info): Don't prod
1828         global register variables.
1829
1830 2004-04-07  Joseph S. Myers  <jsm@polyomino.org.uk>
1831
1832         * fixinc/inclhack.def (rpc_xdr_lvalue_cast_a,
1833         rpc_xdr_lvalue_cast_b): New fixes.
1834         * fixinc/fixincl.x: Regenerate.
1835         * fixinc/tests/base/rpc/xdr.h: Add new tests.
1836
1837 2004-04-07  David Edelsohn  <edelsohn@gnu.org>
1838
1839         * config/rs6000/rs6000.c (processor_target_table): Add MASK_MFCRF
1840         to power4 and power5 entries.
1841
1842 2004-04-06  Geoffrey Keating  <geoffk@apple.com>
1843
1844         * c-common.h (pending_lang_change): Mark for PCH.
1845
1846 2004-04-07  Caroline Tice  <ctice@apple.com>
1847
1848         * gcc.c (main): Move 'break' in main loops (on an error)
1849         to wait until error processing has occurred.
1850
1851 2004-04-06  Nathanael Nerode  <neroden@gcc.gnu.org>
1852
1853         * config.gcc: Stop changing enable_threads midstream.
1854         Replace uses of enable_threads_flag with enable_threads.
1855         * configure.ac: Replace uses of enable_threads_flag with
1856         enable_threads.  Improve autoconf quotation in one place.
1857         * configure: Regenerate.
1858
1859 2004-04-06  Uros Bizjak  <uros@kss-loka.si>
1860
1861         * builtins.c: Implement support for sincos function.
1862         (expand_builtin_mathfn): Remove BUILT_IN_SIN{,F,L} and
1863         BUILT_IN_COS{,F,L}.
1864         (expand_builtin_mathfn_3): New function.
1865         (expand_builtin): Expand BUILT_IN_SIN{,F,L} and
1866         BUILT_IN_COS{,F,L} using expand_builtin_mathfn_3 if
1867         flag_unsafe_math_optimization is set.
1868
1869         * optabs.h (enum optab_index): Add new OTI_sincos.
1870         (sincos_optab): Define corresponding macro.
1871
1872         * optabs.c (init_optabs): Initialize sincos_optab.
1873         (expand_twoval_unop): New function.
1874
1875         * genopinit.c (optabs): Implement sincos_optab using sincos?f3
1876         patterns.
1877
1878         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_SINCOS_COS
1879         and UNSPEC_SINCOS_SIN.
1880
1881         * config/i386/i386.md (sincosdf3, sincossf3, *sincosextendsfdf3,
1882         sincosxf3): New patterns to implement sincos, sincosf and sincosl
1883         built-ins as inline x87 intrinsics. Define splits for
1884         sindf2, sinsf2, *sinextendsfdf2, sinxf2, cosdf2,
1885         cossf2, *cosextendsfdf2 and cosxf2 patterns from corresponding
1886         sincos patterns.
1887         (sindf2, sinsf2, sinxf2): Rename to *sindf2, *sinsf2, *sinxf2.
1888         (cosdf2, cossf2, cosxf2): Rename to *cosdf2, *cossf2, *cosxf2.
1889
1890         (UNSPEC_SINCOS_SIN, UNSPEC_SINCOS_COS): New unspecs to represent
1891         x87's fsincos insn.
1892
1893 2004-04-06  Devang Patel  <dpatel@apple.com>
1894
1895         PR 14467
1896         * config/darwin.h (LINK_COMMAND_SPEC): Use c++filt instead of c++filt3.
1897
1898 2004-04-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1899
1900         * doc/install.texi: Update HP-UX 11 installation procedure.
1901
1902 2004-04-06  Paul Brook  <paul@codesourcery.com>
1903
1904         * doc/sourcebuild.texi: Remove obsolete contraint on testcases.
1905
1906 2004-04-05  Kaz Kojima  <kkojima@gcc.gnu.org>
1907
1908         * config/sh/sh.c (prepare_move_operands): Use emit_call_insn
1909         when the TLS address is generated by a function call.
1910         * config/sh/sh.md (tls_global_dynamic): Use a call expression.
1911         (tls_local_dynamic): Likewise.
1912
1913 2004-04-05  Andrew Pinski  <pinskia@physics.uc.edu>
1914
1915         * tree.c (reconstruct_complex_type): Use TYPE_READONLY
1916         and TYPE_VOLATILE.
1917
1918 2004-04-05  Caroline Tice  <ctice@apple.com>
1919
1920         * gcc.c (combine_flag): New global variable, for new driver option.
1921         (struct compiler): Add two new fields, to be used when
1922         combining multiple input files in a single pass (IMA).
1923         (default_compilers):  Add values for the new fields to all
1924         compiler entries. Modify the "@c" compiler entry for doing IMA
1925         properly with "-save-temps" and the "combine" flag.
1926         (option_map):  Add new driver option, "--combine", to tell driver
1927         to pass multiple input files to compiler at one time.
1928         (have_o_argbuf_index): New global variable.
1929         (store_arg): Modify to assign value to have_o_argbuf_index.
1930         (struct infile):  Add three new fields, to help with IMA.
1931         (display_help): Add help for new "combine" option.
1932         (process_command): Remove local variable have_o; add code to check
1933         for new "combine" option; remove assignment to combine_inputs.
1934         (do_spec_1):  Modify to deal with IMA better.
1935         (main): Make variable 'lang_n_infiles' local to entire function
1936         rather than to a single block.  Use flag combine_flag to
1937         determine whether to do IMA or not; Modify loop initializing
1938         infiles to deal properly with linker files.
1939         Add code for doing preprocessing in presence of
1940         IMA with "-save-temps" flag.  Modify "main" loop to handle
1941         multiple input files, in multiple languages, with or without
1942         preprocessing,  gracefully.
1943         * toplev.c (set_src_pwd): Modify to not complain if attempting to
1944         re-set it to same directory it's previously been set to (avoid
1945         irritating, meaningless warning messages when doing IMA with
1946         save-temps).
1947         * doc/invoke.texi: Add "-combine" to list of Overall Options;
1948         remove documentation about IMA that is no longer accurate; Add
1949         documentation explaining what "-combine" does.
1950         * ada/lang-specs.h: Add initialization values for new fields in
1951         "struct compiler".
1952         * cp/lang-specs.h: Likewise.
1953         * f/lang-specs.h: Likewise.
1954         * java/lang-specs.h: Likewise.
1955         * objc/lang-specs.h: Likewise.
1956         * treelang/lang-specs.h: Likewise.
1957
1958 2004-04-05  David Edelsohn
1959
1960         * config/rs6000/rs6000.c (VTABLE_NAME_P): Add _ZTI to special
1961         symbol handling.
1962
1963 2004-04-05  Jakub Jelinek  <jakub@redhat.com>
1964             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1965
1966         PR optimization/13424 (hppa), bootstrap/14462, c/14828
1967         * pa.md: Use replace_equiv_address to retain the attributes of the
1968         memory operands used in the split and peephole2 patterns for optimizing
1969         the pre-reload movstrsi, movstrdi, clrstrsi and clrstrdi patterns.
1970
1971 2004-04-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1972
1973         * c-decl.c (build_compound_literal): Use TYPE_READONLY.
1974         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
1975         * objc/objc-act.c (adorn_decl, gen_declspecs): Likewise.
1976         * c-typeck.c (decl_constant_value): Don't access DECL_INITIAL of a
1977         PARM_DECL.
1978         * calls.c (flags_from_decl_or_type): Use TYPE_READONLY and do so only
1979         for a type.
1980         * print-tree.c (print_node): Properly handle side-effects, readonly,
1981         and constant flags.
1982         * tree.c (build1_stat, build_expr_wfl): Only look at TREE_SIDE_EFFECTS
1983         and TREE_CONSTANT if not a type.
1984         * tree.h (IS_NON_TYPE_CODE_CLASS): New macro.
1985         (IS_EXPR_CODE_CLASS): Write 'E', not 'e'.
1986         (NON_TYPE_CHECK): New macro.
1987         (TREE_SIDE_EFFECT, TREE_READONLY, TREE_CONSTANT: Add check.
1988
1989 2004-04-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
1990
1991         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Set
1992         to DWARF2_DEBUG unconditionally.
1993         (ASM_DEBUG_SPEC): Set the default to --gdwarf2 unconditionally.
1994
1995 2004-04-04  Ian Lance Taylor  <ian@wasabisystems.com>
1996             Nathanael Nerode  <neroden@gcc.gnu.org>
1997
1998         PR target/14548
1999         * config.host: Set the shell variable host_can_use_collect2.
2000         Set it to yes by default, and to no for alpha*-dec-*vms*,
2001         i[34567]86-*-mingw32*, and powerpc-*-beos*.
2002         * configure.ac: Set and substitute the shell variable collect2.
2003         Give an error if use_collect2 is yes and host_can_use_collect2 is
2004         no.
2005         * Makefile.in (COLLECT2): Rename from USE_COLLECT2.  Change all
2006         uses.  Initialize to @collect2@.
2007         (STAGESTUFF): Remove $(USE_COLLECT2).
2008         * config/alpha/x-vms (USE_COLLECT2): Don't set.
2009         * config/i386/t-mingw32 (USE_COLLECT2): Likewise.
2010         * config/rs6000/t-beos (USE_COLLECT2): Likewise.
2011         * config/pa/t-pa64: Remove commented out USE_COLLECT2.
2012         * configure: Regenerate.
2013
2014 2004-04-04  Roger Sayle  <roger@eyesopen.com>
2015
2016         * simplify-rtx.c (simplify_binary_operation): Constant fold
2017         DIV, MOD, UDIV and UMOD using div_and_round_double.
2018
2019 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
2020
2021         PR c++/14804
2022         * varasm.c (initializer_constant_valid_p): Allow NOP_EXPRs to
2023         RECORD_TYPEs.
2024
2025 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
2026
2027         * doc/invoke.texi (-mabi=o64): Create link to O64 ABI
2028         documentation.
2029
2030 2004-04-04  Roger Sayle  <roger@eyesopen.com>
2031
2032         * cse.c (cse_insn): Correct usage of simplify_replace_rtx when
2033         updating the REG_EQUAL note on an insn's libcall_insn.
2034
2035 2004-04-04  Roger Sayle  <roger@eyesopen.com>
2036
2037         * df.h: Tidy up whitespace in the definitions of the DF_ flags.
2038
2039 2004-04-03  Roger Sayle  <roger@eyesopen.com>
2040
2041         * fold-const.c (fold) <PLUS_EXPR>: Guard (-A)+B -> B-A transformation
2042         with reorder_operands_p.
2043
2044 2004-04-03  Jan Hubicka  <jh@suse.cz>
2045
2046         * md.texi (vec_set, vec_extract, vec_init): Document.
2047
2048 2004-04-02  Gabor Loki <loki@inf.u-szeged.hu>
2049
2050        * opts.c (decode_options): Do function inlining with very small
2051        max-inline-insns-* parameters when optimizing for size.
2052
2053 2004-04-02  Vladimir Makarov  <vmakarov@redhat.com>
2054
2055         * config/i386/i386.h (TARGET_NOCONA): New macro.
2056         (TARGET_CPU_CPP_BUILTINS): Add code for Nocona.
2057         (processor_type): Add PROCESSOR_NOCONA.
2058
2059         * config/i386/i386.md (cpu): Add nocona to the attribute values.
2060
2061         * config/i386/i386.c (nocona_cost): New variable.
2062         (m_NOCONA): New macro.
2063         (x86_push_memory, x86_movx, x86_cmove, x86_deep_branch,
2064         x86_branch_hints, x86_use_sahf, x86_single_stringop,
2065         x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8,
2066         x86_integer_DFmode_moves, x86_partial_reg_dependency,
2067         x86_memory_mismatch_stall, x86_accumulate_outgoing_args,
2068         x86_decompose_lea, x86_arch_always_fancy_math_387,
2069         x86_sse_partial_reg_dependency, x86_sse_load0_by_pxor,
2070         x86_ext_80387_constants, x86_four_jump_limit):
2071         (override_options): Add nocona_cost to processor_target_table.
2072         Set up PROCESSOR_NOCONA for Nocona entry in processor_alias_table.
2073         (incdec_operand): Prevent inc/dec generation for Nocona too.
2074         (ix86_issue_rate): Add PROCESSOR_NOCONA.
2075
2076 2004-04-01  Andrew Pinski  <pinskia@physics.uc.edu>
2077
2078         * rtlanal.c (find_reg_note): Manually
2079         unswitch the loop.
2080
2081 2004-04-01  Mark Mitchell  <mark@codesourcery.com>
2082
2083         * genemit.c (gen_split): Change prototype of generated code.
2084         * genrecog.c (write_action): Adjust prototype for and calls to
2085         gen_split_*.
2086         * gensupport.c (struct queue_elem): Add split field.
2087         (queue_pattern): Return a value.  Clear the split field.
2088         (process_rtx): Maintain an association between an insn and the
2089         split generated from it for a define_insn_and_split.
2090         (process_one_cond_exec): Generate a new split for a
2091         define_insn_and_split.
2092         * config/arm/arm-protos.h (arm_split_constant): Add insn
2093         parameter.
2094         (emit_constant_insn): New function.
2095         (arm_gen_constant): Use it.
2096         * config/arm/arm.md: Adjust calls to arm_split_constant.
2097
2098 2004-04-02  Jan Hubicka  <jh@suse.cz>
2099
2100         * cgraph.c: Add overall comment.
2101         (cgraph_inline_hash): New global variable.
2102         (cgraph_create_node): Break out from ...
2103         (cgraph_node): ... here.
2104         (cgraph_edge): New function.
2105         (cgraph_create_edge): New CALL_EXPR argument; some sanity checking.
2106         (cgraph_remove_edge): Accept edge, intead of source and destination.
2107         (cgraph_redirect_edge_callee): New.
2108         (cgraph_remove_node): Update all new datastructures.
2109         (cgraph_record_call, cgraph_remove_call): Kill.
2110         (dump_cgraph_node): Break out from ... ; dump new datastructures.
2111         (dump_cgraph): ... here.
2112         (cgraph_function_possibly_inlined_p): Use new hashtable.
2113         (cgraph_clone_edge, cgraph_clone_node): New.
2114         * cgraph.h: Include hashtab.h
2115         (struct cgraph_global_info): Kill cloned_times, inline_once, will_be_output
2116         fields, add inlined_to pointer.
2117         (cgraph_node): Add pointer to next_clone.
2118         (cgraph_remove_edge, cgraph_create_edge): Update prototype.
2119         (cgraph_remove_call, cgraph_record_call): Kill.
2120         (cgraph_inline_hash): Declare.
2121         (dump_cgraph_node, cgraph_edge, cg4raph_clone_edge, cgraph_clone_node,
2122         cgraph_redirect_edge_callee): Declare.
2123         (cgraph_create_edges, cgraph_inline_p): Update prorotype.
2124         (cgraph_preserve_function_body_p, verify_cgraph, verify_cgraph_node,
2125         cgraph_mark_inline_edge, cgraph_clone_inlined_nodes): Declare.
2126         * cgraphunit.c: Add overall comment.
2127         (cgraph_optimize_function): Kill.
2128         (cgraph_assemble_pending_functions): Do not assemble inline clones.
2129         (cgraph_finalize_function): Update call of cgraph_remove_node
2130         (record_call_1): Record call sites.
2131         (cgraph_create_edges): Accept node instead of decl argument.
2132         (error_found): New static variable.
2133         (verify_cgraph_node_1, verify_cgraph_node, verify_cgraph): New functions.
2134         (cgraph_analyze_function): Update for new datastructures.
2135         (cgraph_finalize_compilation_unit): Plug memory leak.
2136         (cgraph_optimize_function): Kill.
2137         (cgraph_expand_function): Do not use cgraph_optimize_function.
2138         (INLINED_TIMES, SET_INLINED_TIMES, cgraph_inlined_into,
2139         cgraph_inlined_callees): Kill.
2140         (cgraph_remove_unreachable_nodes): Verify cgraph; update handling of
2141         clones.
2142         (estimate_growth): Simplify.
2143         (cgraph_clone_inlined_nodes): New function.
2144         (cgraph_mark_inline_edge): Re-implement.
2145         (cgraph_mark_inline): Likewise.
2146         (cgraph_check_inline_limits): Simplify.
2147         (cgraph_recursive_inlining_p): New.
2148         (update_callee_keys): Break out from ...
2149         (cgraph_decide_inlining_of_small_functions): ... here; simplify.
2150         (cgraph_decide_inlining, cgraph_decide_inlining_incrementally):
2151         Likewise.
2152         (cgraph_expand_all_functions):  Remove inline clones from the ordered
2153         list.
2154         (cgraph_preserve_function_body_p): New predicate.
2155         (cgraph_optimize): Verify cgraph.
2156         * function.h (struct function): Add fields saved_tree/saved_args.
2157         * timevar.def (TV_CGRAPH_VERIFY): Use verifier.
2158         * toplev.c (rest_of_compilation): Do not free cfun.
2159         * tree-inline.c: Include function.h
2160         (struct inline_data): Add saving_p field; replace decl/current_decl by
2161         node/current_node.
2162         (insert_decl_map): New function.
2163         (copy_body_r): Handle saving; update cgraph datastructure.
2164         (copy_body): Handle recursive inlining.
2165         (initialize_inlined_parameters): Likewise.
2166         (expand_call_inline): Propagate node attributes; update cgraph.
2167         (optimize_inline_calls): Verify that datastructure still match.
2168         (save_body): New function.
2169         * tree-inline.h (save_body): New.
2170         * tree-optimize.c (tree_rest_of_compilation): preserve function body; do inlining.
2171         * langhooks-def.c (LANG_HOOKS_UPDATE_DECL_AFTER_SAVING): New.
2172         * langhooks.c (lang_hooks): Add update_decl_after_saving.
2173
2174 2004-04-01  Serge Belyshev  <1319@bot.ru>
2175
2176         PR target/14702
2177         * config/i386/i386.md: fix source operand constraints in
2178         mmx_pshufw, sse2_pshufd, sse2_pshuflw, sse2_pshufhw
2179
2180 2004-04-01  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
2181
2182         * fold-const.c (folda): Preserve types of comparisons.
2183
2184 2004-04-01  Richard Henderson  <rth@redhat.com>
2185
2186         * toplev.c (backend_init): Move init_optimization_passes call ...
2187         (lang_dependent_init): ... here.
2188
2189 2004-04-01  Alan Modra  <amodra@bigpond.net.au>
2190             Jakub Jelinek  <jakub@redhat.com>
2191
2192         * gcc.c (init_gcc_specs): If HAVE_LD_AS_NEEDED, link with
2193         -lgcc --as-needed -lgcc_s --no-as-needed by default.
2194         * configure.ac (HAVE_LD_AS_NEEDED): Check for ld --as-needed.
2195         * configure: Rebuilt.
2196         * config.in: Rebuilt.
2197         * Makefile.in (stage1-start): Copy also libgcc_s*$(SHLIB_EXT).
2198         (stage2-start, stage3-start, stage4-start): Likewise.
2199         (stageprofile-start, stagefeedback-start): Likewise.
2200
2201 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
2202
2203         * config/sparc/sparc.h (DITF_CONVERSION_LIBFUNCS): Define to 0.
2204         * config/sparc/linux.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
2205         * config/sparc/linux64.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
2206         * config/sparc/sol2.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
2207         (SOLARIS_CONVERSION_LIBFUNCS): Rename to SUN_CONVERSION_LIBFUNCS.
2208         * config/sparc/sparc.c (sparc_init_libfuncs): Initialize optabs
2209         with _Q_qtoll, _Q_qtoull and _Q_lltoq if DITF_CONVERSION_LIBFUNCS.
2210         * config.gcc (sparc-*-linux*): Revert 2004-03-23 change.
2211         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Likewise.
2212         * config/sparc/t-linux: Removed.
2213
2214 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
2215
2216         PR c++/14755
2217         * fold-const.c (fold) <EQ_EXPR>: Properly compute newconst in
2218         "bitfld++ == const" to "++bitfld == const + incr" transformations.
2219
2220 2004-04-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2221
2222         * expr.c (get_inner_reference): Use DECL_UNSIGNED, not TREE_UNSIGNED.
2223         * stor-layout.c (layout_decl): Likewise.
2224         * tree.c (get_narrower): Likewise and also use BIT_FIELD_REF_UNSIGNED.
2225         * fold-const.c (make_bit_field_ref): Use BIT_FIELD_REF_UNSIGNED.
2226         * print-tree.c (print_node): Handle various used of unsigned_flag.
2227         * tree.def (BIT_FIELD_REF): Update comment.
2228         * tree.h (TREE_UNSIGNED): Deleted.
2229         (DECL_UNSIGNED, BIT_FIELD_REF_UNSIGNED): New macros.
2230
2231 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2232
2233         * builtins.c, c-aux-info.c, c-common.c, c-cppbuiltin.c, c-decl.c:
2234         Change most occurrences of TREE_UNSIGNED to TYPE_UNSIGNED.
2235         * c-format.c, c-opts.c, c-pretty-print.c, c-typeck.c: Likewise.
2236         * calls.c, convert.c, dbxout.c, dojump.c, dwarf2out.c: Likewise.
2237         * expmed.c, expr.c, fold-const.c, function.c, integrate.c: Likewise.
2238         * optabs.c, sdbout.c, stmt.c, stor-layout.c, tree-dump.c: Likewise.
2239         * tree.c, config/iq2000/iq2000.c, config/m32r/m32r.c: Likewise.
2240         * config/mips/mips.c, config/rs6000/rs6000.c: Likewise.
2241         * config/s390/s390.c, config/sparc/sparc.c, objc/objc-act.c: Likewise.
2242         * stor-layout.c (layout_type, case COMPLEX_TYPE): Test for
2243         REAL_TYPE, not INTEGER_TYPE.
2244         (layout_type, case VECTOR_TYPE): Simplify code.
2245         * tree.c (build_vector_type_for_mode): Remove dup unsigned setting.
2246         * tree.h: Update comments.
2247         (STRIP_NOPS): Use TYPE_UNSIGNED.
2248         (TYPE_UNSIGNED): New macro.
2249         (TYPE_TRAP_SIGNED): Remove now redundant check.
2250         (SAVE_EXPR_NOPLACEHOLDER): Don't use TREE_UNSIGNED.
2251
2252 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2253
2254         * function.c (put_var_into_stack): Properly set orig_reg for indirect.
2255
2256 2004-03-31  Andrew Pinski  <pinskia@physics.uc.edu>
2257
2258         * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA):
2259         Add darwin-fpsave.asm, darwin-vecsave.asm,
2260         and darwin-world.asm.
2261         (TARGET_LIBGCC2_CFLAGS): Add -Wa,-force_cpusubtype_ALL
2262         as the asm files contain altivec instructions.
2263         * config/rs6000/darwin-fpsave.asm: New file.
2264         * config/rs6000/darwin-vecsave.asm: New file.
2265         * config/rs6000/darwin-world.asm: New file.
2266
2267 2004-03-31  Zack Weinberg  <zack@codesourcery.com>
2268
2269         * gengtype-yacc.y (option, stringseq): Add missing
2270         terminating semicolon.
2271
2272 2004-03-30  David Edelsohn  <edelsohn@gnu.org>
2273
2274         * config/rs6000/rs6000.md (tls_gd_32, tls_gd_64,
2275         tls_ld_32, tls_ld_64, tls_dtprel_32, tls_dtprel_64,
2276         tls_dtprel_ha_32, tls_dtprel_ha_64,
2277         tls_dtprel_lo_32, tls_dtprel_lo_64,
2278         tls_got_dtprel_64, tls_tprel_32, tls_tprel_64,
2279         tls_tprel_ha_32, tls_tprel_ha_64,
2280         tls_tprel_lo_32, tls_tprel_lo_64,
2281         tls_got_tprel_32, tls_got_tprel_64,
2282         tls_tls_32, tls_tls_64): Replace register_operand with
2283         gpc_reg_operand.
2284
2285 2004-03-30  Mostafa Hagog  <mustafa@il.ibm.com>
2286
2287         * config/rs6000/rs6000.md (*ctrsi_internal1, *ctrsi_internal2,
2288         *ctrdi_internal1, *ctrdi_internal2, *ctrsi_internal3,
2289         *ctrsi_internal4, *ctrdi_internal3, *ctrdi_internal4,
2290         *ctrsi_internal5, *ctrsi_internal6, *ctrdi_internal5,
2291         *ctrdi_internal6): Replace register_operand with
2292         nonimmediate_operand.
2293
2294 2004-03-29  Fariborz Jahanian <fjahanian@apple.com>
2295
2296         * fold-const.c (fold): Reassociate multiply expression
2297         with an adjacent non-multiply expression to use
2298         architecture's multiply-add instruction.
2299
2300 2004-03-30  Zack Weinberg  <zack@codesourcery.com>
2301
2302         * gengtype.c (create_option): New function.
2303         * gengtype.h: Prototype it.
2304         * gengtype-yacc.y (stringseq): New rule.
2305         (option): Use create_option.  Add new bare ID production.  Use
2306         stringseq, not STRING directly.
2307
2308         * alias.c, bitmap.c, c-decl.c, cgraph.h, cpplib.h, cselib.h
2309         * dwarf2out.c, emit-rtl.c, function.h, lists.c, tree.h
2310         * varray.h, config/alpha/alpha.c:
2311         Use new shorter form of GTY markers.
2312
2313         * doc/gty.texi: Rewrite.
2314
2315 2004-03-30  Andrew Pinski  <pinskia@physics.uc.edu>
2316
2317         * config/darwin.c (machopic_function_base_name):
2318         Remove current_name and getting the name of the
2319         current function.
2320
2321 2004-03-30  Nick Clifton  <nickc@redhat.com>
2322
2323         * config/arm/arm.md (thumb_jump): Reduce the backward branch
2324         range, and increase the forward branch range, to allow for
2325         the fact that the PC will be off by 4.
2326
2327 2004-03-30  Alan Modra  <amodra@bigpond.net.au>
2328
2329         * .cvsignore: Add GPATH, GRTAGS, GSYMS and GTAGS (GNU GLOBAL)
2330
2331 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
2332
2333         * config/rs6000/rs6000.c (output_vec_const_move):
2334         Find all cases of EASY_VECTOR_15_ADD_SELF.
2335         (easy_vector_constant_add_self): Accept
2336         all vector constant loadable by vsplt* and vadd*.
2337         (easy_vector_same): Use easy_vector_splat_const.
2338         (easy_vector_const): Use easy_vector_splat_const.
2339         (easy_vector_splat_const): New function.
2340         (gen_easy_vector_constant_add_self): New function.
2341
2342         * config/rs6000/rs6000-protos.c (gen_easy_vector_constant_add_self):
2343         New prototype.
2344
2345         * config/rs6000/altivec.md (movv4si splitter): Change to
2346         emit move insn with halfed vector constant.
2347         (*movv8hi splitter): Likewise.
2348         (*movv16qi splitter): Likewise.
2349
2350 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
2351
2352         PR 11591
2353         * config/rs6000/rs6000.c (rs6000_legitimate_address):
2354         Allow any offset to argument pointer in no-strict case.
2355
2356 2004-03-30  Jan Hubicka  <jh@suse.cz>
2357
2358         * toplev.c (backend_init): Add missing call to inint_optimization_passes.
2359         * passes.c (init_optimization_passes, finish_optimization_passes): Output cgraph
2360         dump file in non-unit-at-a-time mode.
2361
2362 2004-03-29  Hans-Peter Nilsson  <hp@axis.com>
2363
2364         * config/cris/cris.h: Correct #ifdef to test for
2365         HAVE_AS_NO_MUL_BUG_ABORT_OPTION, not
2366         HAVE_AS_MUL_BUG_ABORT_OPTION.
2367
2368 2004-03-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2369
2370         * function.c (put_var_into_stack): If old RTL was ADDRESSOF, update
2371         the address inside the old RTL.
2372
2373 2004-03-28  Zack Weinberg  <zack@codesourcery.com>
2374
2375         * c-decl.c: Verify that C_SIZEOF_STRUCT_LANG_IDENTIFIER is correct.
2376         (struct c_binding, struct c_scope): Add chain_next
2377         attributes to GTY markers.
2378         (struct lang_identifier, struct lang_tree_node): Define
2379         here...
2380         * c-tree.h: ... not here.  No longer need to declare struct
2381         c_binding either.  Do define C_SIZEOF_STRUCT_LANG_IDENTIFIER.
2382         * c-lang.c, objc/objc-lang.c: Set LANG_HOOKS_IDENTIFIER_SIZE
2383         to C_SIZEOF_STRUCT_LANG_IDENTIFIER.
2384
2385         PR 14734, 11944
2386         * c-decl.c (get_parm_info): If error_mark_node is encountered
2387         in the bindings chain, unbind and discard it; don't abort.
2388
2389 2004-03-28  Olga Golovonevsky <olga@il.ibm.com>
2390             Dorit Naishlos <dorit@il.ibm.com>
2391
2392         * config/rs6000/altivec.md: (andvv16qi3, andv8hi3, one_cmplv16qi2,
2393         one_cmplv8hi2, one_cmplv4si2, iorv16qi3, iorv8hi3,): New modelling.
2394
2395 2004-03-28  Stephane Carrez  <stcarrez@nerim.fr>
2396
2397         * config/m68hc11/m68hc11-protos.h (m68hc11_page0_symbol_p): Declare.
2398
2399         * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute): New.
2400         (m68hc11_attribute_table): New attribute "page0" to mark a global
2401         variable as being allocated from within page0 section.
2402         (m68hc11_encode_label): New function.
2403         (m68hc11_strip_name_encoding): New function.
2404         (m68hc11_page0_symbol_p): New function.
2405         (m68hc11_indirect_p): Accept global variables marked in page0.
2406         (m68hc11_encode_section_info): Lookup "page0" attribute.
2407
2408         * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): 'R' constraint also
2409         represents access to page0 variables.
2410
2411         * config/m68hc11/m68hc11.md ("*logicalsi3_zexthi"): Use gen_rtx_REG.
2412         ("*logicalsi3_silshl16_zext"): Likewise.
2413         ("*ashldi3_const32"): Likewise.
2414         (peephole2 ashift): Likewise.
2415
2416 2004-03-28  Joseph S. Myers  <jsm@polyomino.org.uk>
2417
2418         * c-tree.h (C_DECL_REGISTER): New.
2419         * c-aux-info.c (gen_decl), c-decl.c (objc_mark_locals_volatile,
2420         finish_decl, grokdeclarator, get_parm_info), c-typeck.c
2421         (build_array_ref, c_mark_addressable): Set and use it.
2422         * c-decl.c (grokdeclarator), c-typeck.c (c_mark_addressable):
2423         Allow structures with volatile fields to be declared register.
2424         Don't check TREE_ADDRESSABLE before warning about taking address
2425         of register.
2426         * c-decl.c (finish_decl): Don't allow structures with volatile
2427         fields to be placed in named register.
2428         * doc/trouble.texi: Remove reference to structures with volatile
2429         fields in registers.
2430
2431 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
2432
2433         * function.c (thread_prologue_and_epilogue): Move
2434         NOTE_INSN_FUNCTION_END and NOTE_INSN_FUNCTION_BEG notes
2435         before the epilogue.
2436
2437 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
2438
2439         * expr.c (store_constructor): Use gen_int_mode to correctly
2440         sign-extend CONST_INT value.
2441
2442 2004-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2443
2444         * builtin-types.def (BT_WINT, BT_FN_INT_WINT, BT_FN_WINT_WINT): New.
2445         * builtins.def (DEF_C94_BUILTIN): New.  Add wctype builtins.
2446         * doc/extend.texi: Likewise.
2447
2448 2004-03-26  Diego Novillo  <dnovillo@redhat.com>
2449
2450         * c-typeck.c (comptypes): Replace calls to TYPE_DOMAIN
2451           with TYPE_ORIG_SIZE_TYPE.
2452
2453 2004-03-25  Aldy Hernandez  <aldyh@redhat.com>
2454
2455         PR 14219
2456         * c-typeck.c (build_binary_op): Do not allow comparisons of
2457         vectors.
2458
2459 2004-03-26  James A. Morrison  <ja2morri@uwaterloo.ca>
2460
2461         * config.gcc: Remove sparc-tti-*.
2462         * config/sparc/pbd.h: Delete.
2463
2464         * config/sparc/sol2.h: Remove note about Sun OS 4.x.
2465         * config/sparc/aout.h: Likewise.
2466
2467         * config/sparc/sparc.h: Remove if 0'd code.
2468         * config/sparc/sparc.md (call): Remove if 0'd code.
2469         (call_value): Likewise.
2470         (nonlocal_goto): Likewise.
2471         (unimp_insn): Delete.
2472
2473 2004-03-25  Roger Sayle  <roger@eyesopen.com>
2474
2475         * fold-const.c (tree_expr_nonnegative_p): Handle BIT_XOR_EXPR like
2476         BIT_IOR_EXPR; A^B is nonnegative when A and B are nonnegative.
2477
2478 2004-03-25  Richard Henderson  <rth@redhat.com>
2479
2480         PR 11527
2481         * c-typeck.c (pop_init_level): Emit pending init elements earlier
2482         rather than later.
2483
2484 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2485
2486         * builtins.c (fold_builtin): Fix error in last change.
2487
2488 2004-03-25  Richard Sandiford  <rsandifo@redhat.com>
2489
2490         * config/mips/mips.h: Formatting fix.
2491
2492 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2493
2494         * builtins.def: Add ctype builtins.
2495         * doc/extend.texi: Likewise.
2496
2497 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2498
2499         * builtins.c (fold_builtin): Add new builtin optimizations for
2500         sqrt and/or cbrt.
2501         * fold-const.c (fold): Likewise.
2502
2503 2004-03-25  David Edelsohn  <edelsohn@gnu.org>
2504
2505         * config/rs6000/rs6000.c (rs6000_always_hint): New variable.
2506         (rs6000_sched_groups): New variable.
2507         (processor_target_table): Add power5.
2508         (rs6000_override_options): Set rs6000_sched_insert_nops,
2509         rs6000_sched_costly_dep and rs6000_sched_restricted_insns_priority
2510         from rs6000_sched_groups.
2511         (output_cbranch): Use rs6000_always_hint.
2512         (rs6000_variable_issue): Use rs6000_sched_groups.
2513         (rs6000_adjust_cost): Add CPU_POWER5.
2514         (is_microcoded_insn): Use rs6000_sched_groups.
2515         (is_dispatch_slot_restricted): Use rs6000_sched_groups.
2516         Return 2 for POWER5 cracked instructions.
2517         (is_cracked_insn): Use rs6000_sched_groups.
2518         (is_branch_slot_insn): Use rs6000_sched_groups.
2519         (rs6000_issue_rate): Add CPU_POWER5.
2520         (rs6000_sched_finish): Use rs6000_sched_groups.
2521         (rs6000_rtx_costs): Add PROCESSOR_POWER5.
2522         * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER5.
2523         (DEFAULT_SCHED_COSTLY_DEP): Delete.
2524         (DEFAULT_RESTRICTED_INSNS_PRIORITY): Delete.
2525         (DEFAULT_SCHED_FINISH_NOP_INSERTION_SCHEME): Delete.
2526         * config/rs6000/rs6000.md (define_attr "cpu"): Add power5.
2527         * config/rs6000/power5.md: New file.
2528         * doc/invoke.texi: Add power5 option.
2529
2530 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
2531
2532         * cfgrtl.c, dbxout.c, tree.def, config/darwin.h,
2533         config/arm/arm.c, objc/objc-act.c: Fix comment typos.
2534         * doc/invoke.texi: Fix a typo.
2535
2536 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
2537
2538         PR optimization/9707.
2539         * stmt.c (emit_case_nodes): Emit equality comparisons instead
2540         of recursing if both children are single-valued cases with no
2541         children.
2542
2543 2004-03-25  Paul Brook  <paul@codesourcery.com>
2544
2545         * config/arm/arm.c (vfp_print_multi): Remove.
2546         (arm_output_fldmx): New function.
2547         (vfp_emit_fstmx): Return block size, not insn. Add ARM10 VFPr1 bugfix.
2548         (arm_expand_prologue): Update to match.
2549         (arm_get_vfp_saved_size): New Function.
2550         (arm_get_frame_offsets): Use it.
2551         (arm_output_epilogue): Use new functions.
2552
2553 2004-03-24  Richard Henderson  <rth@redhat.com>
2554
2555         * alias.c (alias_invariant, alias_invariant_size): Mark GTY.
2556         (reg_known_value, reg_known_value_size): Likewise; make static.
2557         (reg_known_equiv_p): Make static.
2558         (clear_reg_alias_info): Update for new indexing.
2559         (get_reg_known_value, set_reg_known_value): New.
2560         (get_reg_known_equiv_p, set_reg_known_equiv_p): New.
2561         (canon_rtx): Use them.
2562         (init_alias_analysis): Likewise.  Allocate reg_known_value with gc.
2563         Don't play queer offsetting games with reg_known_value and
2564         reg_known_equiv_p.
2565         (end_alias_analysis): Free reg_known_value with gc.
2566         * rtl.h (get_reg_known_value, get_reg_known_equiv_p): Declare.
2567         * sched-deps.c (reg_known_equiv_p, reg_known_value): Remove.
2568         (deps_may_trap_p, sched_analyze_1, sched_analyze_2): Use the new
2569         functions instead.
2570
2571 2004-03-24  Kazu Hirata  <kazu@cs.umass.edu>
2572
2573         * dwarf2asm.c, loop.h, pretty-print.c, pretty-print.h,
2574         config/i386/mmintrin.h: Update copyright.
2575
2576 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
2577
2578         * configure.ac: Add --enable-werror-always (for top level bootstrap
2579         support).
2580         * configure: Regenerate.
2581
2582 2004-03-24  Ziemowit Laski  <zlaski@apple.com>
2583
2584         * objc/objc-act.c (objc_comptypes): Treat comparisons
2585         between 'Class' and '<class> *' as explicitly invalid.
2586
2587 2004-03-24  David Edelsohn  <edelsohn@gnu.org>
2588
2589         * doc/invoke.texi (-frename-registers: Add enabled at -O3.
2590         (-fprofile-values): Add enabled with profile-{generate,use}.
2591         (-fvpt): Same.
2592         (-ftracer): Add enabled with profile-use.
2593         (-funit-at-a-time): Add enabled at -O2,-O3.
2594         (-funroll-loops): Add enabled with profile-use.
2595         (-funswitch-loops): Add enabled with profile-use.  Remove duplicates.
2596         (max-gcse-passes): Mention default.
2597         (max-cse-path-length): Mention default.
2598
2599 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
2600
2601         * Makefile.in (STRICT2_WARN): Reorder.
2602         * configure.ac: Check for -Wold-style-definition, and use it
2603         in strict1_warn if it's available.
2604         * configure: Regnerate.
2605
2606 2004-03-24  Paul Brook  <paul@nowt.org>
2607
2608         * config.gcc <arm>: Add --with-abi=
2609         * config/arm/arm-protos.h (arm_get_frame_size, thumb_get_frame_size,
2610         thumb_far_jump_used): Remove prototypes.
2611         (arm_needs_doubleword_align): Add prototype.
2612         (thumb_compute_initial_elimination_offset): Ditto.
2613         * config/arm/arm.c (arm_get_frame_offsets): New function.
2614         (use_return_insn, output_return_instruction, arm_output_epilogue,
2615         arm_output_function_epilogue, arm_compute_initial_elimination_offset,
2616         arm_expand_prologue, thumb_expand_epilogue): Use it.
2617         (arm_abi, target_abi_name, all_arm_abis): New variables.
2618         (arm_override_options): Set them.  Set structure padding for AAPCS.
2619         (arm_return_in_memory): Update ABI check.
2620         (arm_init_cumulative_args): Initialize can_split.
2621         (arm_needs_doubleword_align): New function.
2622         (arm_function_arg): Don't split args after pushing to stack. Handle
2623         doubleword/even reg alignment.
2624         (arm_va_arg): Handle all doubleword aligned args.
2625         (add_minpoolforward ref, dump_minpool, push_minpool_fix): Align based
2626         on ABI, not CPU.
2627         (arm_compute_save_reg0_reg12_mask): Fix comment.
2628         (thumb_get_frame_size, thumb_get_frame_size): Remove.
2629         (thumb_jump_far_used_p): Remove superfluous argument.  Return save
2630         value for alignment.
2631         (thumb_unexpanded_epilogue, thumb_output_function_prologue): Change
2632         to match.
2633         (thumb_compute_initial_elimination_offset): New function.
2634         (thumb_expand_prologue): Use arm_get_frame_offsets.  Remove
2635         unneccessary rounding.
2636         * config/arm/arm.h (target_abi_name): Declare.
2637         (ARM_DOUBLEWORD_ALIGN, DOUBLEWORD_ALIGNMENT, TARGET_IWMMXT_ABI,
2638         arm_abi_type, ARM_DEFAULT_ABI): Define.
2639         (ARM_FLAG_ATPCS): Remove.
2640         (TARGET_OPTIONS, OPTION_DEFAULT_SPECS): Add -mabi=.
2641         (BIGGEST_ALIGNMENT, PREFERRED_STACK_BOUNDARY, STACK_BOUNDARY): Use it.
2642         (ADJUST_FIELD_ALIGN, DATA_ALIGNMENT, LOCAL_ALIGNMENT,
2643         TYPE_NEEDS_IWMMXT_ALIGNMENT): Remove.
2644         (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P, FUNCTION_ARG_REGNO_P):
2645         Contitionalize on ABI, not CPU.
2646         (struct arm_stack_offsets): Define.
2647         (struct machine_function): Add stack_offsets.  Remove frame_size.
2648         (FUNCTION_ARG_PARTIAL_NREGS): Don't split if previous args have been
2649         pushed.
2650         (FUNCTION_ARG_ADVANCE, FUNCTION_ARG_BOUNDARY): Handle general
2651         doubleword alignment.
2652         (THUMB_INITIAL_ELIMINATION_OFFSET,
2653         ARM_INITIAL_ELIMINATION_OFFSET): Remove.
2654         (INITIAL_ELIMINATION_OFFSET): Call functions directly.
2655         * config/arm/arm.md (align_8): Enable for all targets.
2656         * config/arm/netbsd-elf.h (TARGET_DEFAULT): Remove TARGET_ATPCS.
2657         (ARM_DEFAULT_ABI): Define.
2658         * doc/invoke.texi <ARM>: Document -mabi=. Update documentation for
2659         -mstructure-size-boundary.
2660
2661 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
2662
2663         * configure.ac: Check for -Wno-variadic-macros; don't use
2664         -pedantic (in stage 1 or a simple 'make all') unless it's available,
2665         and if it's available, use it.  Also, clean up check for
2666         -Wno-long-long.
2667         * configure: Regenerate.
2668
2669 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
2670
2671         * config.gcc (mips64vr-*-elf*, mips64vrel-*-elf*): Remove tm_defines.
2672         * config/mips/vr.h (DEFAULT_VR_ARCH): New macro, defined to vr4130.
2673         (MULTILIB_DEFAULTS): Use it.
2674         (MIPS_CPU_STRING_DEFAULT): Remove.
2675         (MIPS_ABI_DEFAULT, MIPS_MARCH_CONTROLS_SOFT_FLOAT): Define.
2676         (DRIVER_SELF_SPECS): Make -mfix-vr4122-bugs imply -march=vr4120.  Make
2677         EABI64 -mlong32 the default ABI.  Enforce the default architecture.
2678         * config/mips/t-vr (MULTILIB_OPTIONS): Add mfix-vr4122-bugs,
2679         march=vr4130, march=vr4300, march=vr5000 and march=vr5500.
2680         (MULTILIB_MATCHES): Use -mfix-vr4122-bugs multilibs for -march=vr4120.
2681         (MULTILIB_EXCEPTIONS): Change choice of multilibs.  Update comments
2682         accordingly.
2683
2684 2004-03-24  DJ Delorie  <dj@redhat.com>
2685             Richard Sandiford  <rsandifo@redhat.com>
2686
2687         * config/mips/mips.h (MASK_FIX_VR4122, TARGET_FIX_VR4122): New macros.
2688         (TARGET_SWITCHES): Add -mfix-vr4122-bugs and -mno-fix-vr4122-bugs.
2689         (ASM_SPEC): Pass down -mfix-vr4122-bugs.
2690         * config/mips/mips.c (mips_avoid_hazards): Don't emit whole functions
2691         in .set noreorder and .set nomacro if TARGET_FIX_VR4122.
2692         (mips_init_libfuncs): Use special functions for divsi3 and modsi3
2693         if TARGET_FIX_VR4122.
2694         * config/mips/mips.md (define_attr length): Account for nops inserted
2695         after macc and dmult when using -mfix-vr4122-bugs.
2696         (umuldi3_highpart, divmodsi4, divmoddi4): Disable if TARGET_FIX_VR4122.
2697         * config/mips/t-vr (LIB2FUNCS_STATIC_EXTRA): Define instead of
2698         LIB2FUNCS_EXTRA.  Add config/mips/vr4122-div.S.
2699         * config/mips/vr4122-div.S: New file.
2700         * doc/invoke.texi: Document -mfix-vr4122-bugs.
2701
2702 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
2703
2704         * config/mips/mips.h (PROCESSOR_R4130): New processor_type.
2705         (TARGET_MIPS4130): New macro.
2706         (ISA_HAS_MACC): Return true if TARGET_MIPS4130 && !TARGET_MIPS16.
2707         * config/mips/mips.c (mips_cpu_info_table): Add a vr4130 entry.
2708         (override_options): Extend MIPS_MARCH_CONTROLS_SOFT_FLOAT to deal
2709         with PROCESSOR_R4130.
2710         * config/mips/mips.md (define_attr cpu): Add r4130.
2711         * doc/invoke.texi: Document vr4130 as a supported MIPS architecture.
2712
2713 2004-03-24  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
2714             Richard Sandiford  <rsandifo@redhat.com>
2715
2716         * doc/invoke.texi: Apply missed hunk from 2004-03-03 change.
2717
2718 2004-03-24  Alexandre Oliva  <aoliva@redhat.com>
2719
2720         PR preprocessor/14438
2721         * cpplib.c (do_pragma): Remove line_change call after pragma
2722         handler.
2723
2724 2004-03-23  Ian Lance Taylor  <ian@wasabisystems.com>
2725
2726         * doc/extend.texi (ARM Built-in Functions): Replace with correct
2727         declarations.
2728
2729 2004-03-23  Roger Sayle  <roger@eyesopen.com>
2730
2731         * reg-stack.c (get_true_reg): Handle FLOAT_TRUNCATE like FLOAT_EXTEND
2732         if flag_unsafe_math_optimizations.
2733         * config/i386/i386.md (truncdfsf2): If flag_unsafe_math_optimizations
2734         and TARGET_80387 expand using truncdfsf2_noop pattern.
2735         (truncxfsf2): Likewise using truncxfsf2_noop.
2736         (truncxfdf2): Likewise using truncxfdf2_noop.
2737         (truncdfsf2_noop, truncxfsf2_noop, truncxfdf2_noop): New patterns.
2738
2739 2004-03-23  Ziemowit Laski  <zlaski@apple.com>
2740
2741         * hooks.c (hook_constcharptr_tree_null): New hook.
2742         * hooks.h (hook_constcharptr_tree_null): New prototype.
2743         * target-def.h (TARGET_MANGLE_FUNDAMENTAL_TYPE): New target hook.
2744         * target.h (mangle_fundamental_type): New target hook.
2745         * config/rs6000/rs6000.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Point
2746         target hook at rs6000_mangle_fundamental_type.
2747         (rs6000_mangle_fundamental_type): New function.
2748         * doc/tm.texi (TARGET_MANGLE_FUNDAMENTAL_TYPE): Document.
2749
2750 2004-03-23  Zack Weinberg  <zack@codesourcery.com>
2751
2752         PR 12267, 12391, 12560, 13129, 14114, 14133
2753         * c-tree.h: Forward declare struct c_binding.  Declare
2754         c_override_bindings_to_false.  Update prototypes.
2755         (struct lang_identifier): Update comments.  Change fields to be
2756         struct c_binding *.
2757         (IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE)
2758         (IDENTIFIER_LABEL_VALUE, C_DECL_INVISIBLE)
2759         (KEEP_NO, KEEP_YES, KEEP_MAYBE): Delete.
2760         (C_DECL_IN_EXTERNAL_SCOPE, C_DECL_DECLARED_BUILTIN): New.
2761         * c-common.h: Update prototypes.
2762         * c-decl.c (struct c_scope): Update commentary.  Remove names,
2763         names_last, parms, parms_last, tags, and shadowed fields.  Add
2764         bindings and depth fields.
2765         (scope_freelist): Move to more appropriate location.
2766         (c_print_identifier): Update for changes to struct lang_identifier.
2767         (objc_mark_locals_volatile): Update for new bindings structures.
2768         (global_bindings_p): Honor c_override_global_bindings_to_false.
2769         (pushlevel): Rename to push_scope; take no arguments; use the
2770         scope_freelist; initialize scope->depth and check for overflow.
2771         (poplevel): Rename to pop_scope; totally rewritten for new bindings
2772         structures.
2773         (diagnose_mismatched_decls): Use C_DECL_DECLARED_BUILTIN, not
2774         C_DECL_INVISIBLE, for certain decisions.  Adjust some diagnostics.
2775         Improve some commentary.  Adjust handling of forward parm decls.
2776         (merge_decls): Set C_DECL_DECLARED_BUILTIN when appropriate.
2777         Preserve C_DECL_IN_EXTERNAL_SCOPE.
2778         (warn_if_shadowing): Correct indentation.  Improve diagnostics.
2779         (pushdecl): Remove unnecessary assertion.  Short-circuit anonymous
2780         decls.  Rewrite for new bindings structures.  Improve commentary.
2781         Eliminate the copy_node call.
2782         (implicit_decl_warning): Use the "diag" idiom (as seen in
2783         locate_old_decl) to reduce code duplication; call locate_old_decl
2784         if appropriate.  Relocate to remove need for forward declaration.
2785         (implicitly_declare): Adjust for new bindings structures.  Kludge
2786         around Objective-C not-really-builtin functions.
2787         (undeclared_variable): Improve diagnostics.  If current_function_decl
2788         is nonnull but current_function_scope is null, use current_scope.
2789         Use bind.
2790         (lookup_tag): Adjust for new bindings structures.  Kludge around
2791         Objective-C's tag declarations that wind up in the external scope.
2792         (lookup_name): Adjust for new bindings structures.  Kludge around
2793         c-common.c's pseudo-typedefs that wind up in the external scope.
2794         (lookup_name_current_level): Rename lookup_name_in_scope; take a
2795         second argument indicating the scope to examine; rewrite for
2796         new bindings structures.
2797         (c_init_decl_processing): Adjust for renamed functions.  Do not
2798         initialize current_file_decl, first_builtin_decl, last_builtin_decl.
2799         First scope pushed is the external scope, not the global scope.
2800         (builtin_function): Use bind, not pushdecl.  Adjust other bits
2801         for new data structures.  Keep track of builtins that should be
2802         made visible automatically.
2803         (start_decl): Adjust diagnostics.  Remove unnecessary call to
2804         expand_decl.
2805         (grokparms): Return 0 if arg_types is error_mark_node.
2806         (get_parm_info): Rename "void_at_end" argument to "ellipsis", with
2807         reversed sense.  Rewrite for new bindings structures.  Do not
2808         leave any decls in the scope, to prevent pop_scope from doing
2809         contradictory things with them.
2810         (finish_struct, finish_enum): Remove redundant diagnostics.
2811         (build_enumerator): Don't cascade diagnostics for error_mark_node.
2812         Mark location where -pedantic changes the meaning of the program.
2813         (store_parm_decls_newstyle, store_parm_decls_oldstyle): Load the
2814         parameter decls into the function's scope structure using bind.
2815         Warn here about function definitions in the wrong style.
2816         Adjust diagnostics.
2817         (store_parm_decls): Correct the determination of whether a
2818         function was defined with a prototype.
2819         (c_write_global_declarations): Operate on all file decls and on
2820         the external scope.  Split body of the loop to...
2821         (c_write_global_declarations_1): ... this new function, to avoid
2822         code duplication.
2823         (truly_local_externals, first_builtin_decl, last_builtin_decl)
2824         (make_scope, pop_scope, in_parm_level_p, set_block)
2825         (any_external_decl, record_external_decl, bind_label, getdecls)
2826         (link_hash_hash, link_hash_eq, merge_translation_unit_decls)
2827         (c_reset_state): Delete.
2828         (visible_builtins, c_override_global_bindings_to_false)
2829         (c_binding, I_SYMBOL_BINDING, I_SYMBOL_DECL, I_TAG_BINDING)
2830         (I_TAG_DECL, I_LABEL_BINDING, I_LABEL_DECL, file_scope)
2831         (external_scope, binding_freelist, bind, free_binding_and_advance)
2832         (push_file_scope, pop_file_scope): New.
2833         (pushtag, pushdecl_top_level, lookup_label, declare_label)
2834         (define_label, c_make_fname_decl, finish_decl)
2835         (mark_forward_parm_decls, build_compound_literal)
2836         (grokdeclarator, start_function, check_for_loop_decls)
2837         (identifier_global_value, record_builtin_type): Minor adjustments
2838         for new bindings structures.  Improve diagnostics and commentary.
2839         * c-objc-common.c (start_cdtor, finish_cdtor): Adjust calls to
2840         pushlevel/poplevel respectively.
2841         (c_objc_common_finish_file): Don't call merge_translation_unit_decls.
2842         * c-opts.c (c_common_parse_file): Remove spurious ATTRIBUTE_UNUSED.
2843         Warn about YYDEBUG not being defined only if -dy.  Remove no-longer-
2844         correct loop over multiple translation units; call fatal_error if
2845         requested to compile more than one file at once.  (This disables
2846         IMA temporarily - an up-front error being preferable to a crash.)
2847         * c-parse.in (pushlevel, poplevel rules): Rename push_scope, pop_scope.
2848         (all actions): Adjust calls to pushlevel/poplevel.
2849         (parsing_iso_function_signature): Delete.
2850         (extdef_1): Fold into extdef.
2851         (old_style_parm_decls_1): Fold into old_style_parm_decls.  Don't
2852         warn here about function definitions in the wrong style.
2853         (after_tyle_declarator, parm_declarator_starttypename)
2854         (parm_declarator_nostarttypename, notype_declarator): Remove
2855         commented-out productions.
2856         (parmlist_1, parmlist_2): Use make_node, not tree_cons, to create
2857         an empty TREE_LIST node.  Adjust calls to get_parm_info.
2858         (parmlist_2 : ELLIPSIS): Tag the arg-info block with error_mark_node
2859         to suppress -Wold-style-definition after this error.
2860         (c_parse_file): Don't clear the binding stack or call
2861         finish_fname_decls here.  Correct comment.
2862         * c-typeck.c (same_translation_unit_p): Export.
2863         (common_type): Use c_override_global_bindings_to_false, not
2864         pushlevel/poplevel/declare_parm_level.
2865         * c-lang.c: Override LANG_HOOKS_CLEAR_BINDING_STACK,
2866         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK,
2867         and LANG_HOOKS_GETDECLS with do-nothing stubs.
2868         * objc/objc-lang.c: Likewise.
2869         * objc/objc-act.c: Adjust all calls to pushlevel, poplevel,
2870         get_parm_info.
2871         (OBJC_VOID_AT_END): Delete; replace all uses
2872         with void_list_node.
2873         (generate_forward_declaration_to_string_table): Delete.
2874         * objc/objc-act.h (OCTI_STRG_DECL, UOBJC_STRINGS_decl): Delete.
2875
2876         * coverage.c (create_coverage): Don't pushdecl anything.
2877         * langhooks.c (lhd_clear_binding_stack): Call
2878         lang_hooks.decls.poplevel, not poplevel.
2879         * tree.c (list_length): If ENABLE_TREE_CHECKING, abort on a
2880         circular list rather than going into an infinite loop.
2881
2882 2004-03-23  Olivier Hainque  <hainque@act-europe.fr>
2883
2884         * optabs.c (expand_binop): When synthesizing double word rotates
2885         from single word shifts, use a new register target if the provided
2886         target is not a REG already.
2887
2888 2004-03-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2889
2890         * alias.c (get_alias_set): Add support for TYPE_REF_CAN_ALIAS_ALL.
2891         * c-common.c (handle_mode_attribute): Add extra arg to
2892         build_pointer_type_for_mode and build_reference_type_for_mode.
2893         * c-typeck.c (build_c_cast): Only look at TREE_CONSTANT_OVERFLOW
2894         for INTEGER_CST.
2895         * tree.c (build_pointer_type_for_mode): Add arg CAN_ALIAS_ALL.
2896         Chain pointers via TYPE_NEXT_PTR_TO.
2897         (build_reference_type_for_mode): Similarly.
2898         (build_type_no_quals): Add extra arg to build_pointer_type_for_mode
2899         and build_reference_type_for_mode.
2900         (tree_check4_failed): New function.
2901         * tree.h (TREE_CHECK4, PTR_OR_REF_CHECK): New macros.
2902         (TYPE_REF_CAN_ALIAS_ALL, TYPE_NEXT_PTR_TO, TYPE_NEXT_REF_TO): Likewise.
2903         (TREE_NO_UNSUED_WARNING, TREE_VIA_VIRTUAL, TREE_CONSTANT_OVERFLOW):
2904         Add check.
2905
2906 2004-03-23  Roger Sayle  <roger@eyesopen.com>
2907
2908         * fold-const.c (tree_expr_nonnegative_p): A&B is nonnegative when
2909         A is nonnegative or B is nonnegative.  Similarly A|B is nonnegative
2910         when both A and B are nonnegative.
2911         (tree_expr_nonzero_p): A|B is nonzero when A is nonzero or B is
2912         nonzero.
2913
2914 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
2915
2916         * fold-const.c (fold): Remove cases for INTEGER_CST, REAL_CST,
2917         VECTOR_CST, STRING_CST, COMPLEX_CST, and CONSTRUCTOR.
2918
2919 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
2920
2921         PR optimization/14669
2922         * fold-const.c (fold): Only unwiden integer comparisons for equality
2923         and inequality operators, or when the signedness doesn't change.
2924
2925 2004-03-23  Jakub Jelinek  <jakub@redhat.com>
2926
2927         * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
2928         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Set.
2929         * config/sparc/t-linux: New file.
2930
2931 2004-03-23  Richard Sandiford  <rsandifo@redhat.com>
2932
2933         * gcse.c (can_assign_to_reg_p): New function, split out from...
2934         (want_to_gcse_p): ...here.
2935         (compute_ld_motion_mems): Use can_assign_to_reg_p to validate
2936         the rhs of a store.
2937
2938 2004-03-22  Diego Novillo  <dnovillo@redhat.com>
2939
2940         * c-typeck.c (same_translation_unit_p): Fix pasto.
2941
2942 2004-03-22  David Edelsohn  <edelsohn@gnu.org>
2943
2944         * params.def (PARAM_MAX_SCHED_REGION_BLOCKS): New.
2945         (PARAM_MAX_SCHED_REGION_INSNS): New.
2946         * sched-rgn.c: Include params.h
2947         (MAX_RGN_BLOCKS): Delete.
2948         (MAX_RGN_INSNS): Delete.
2949         (too_large): Return bool.  Convert to PARAM_VALUE.
2950         * Makefile.in (sched-rgn.o): Depend on $(PARAMS_H).
2951         * doc/invoke.texi (param): Document max-sched-region-blocks and
2952         max-sched-region-insns.
2953
2954 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
2955
2956         * dwarf2out.c (is_subrange_type): Do not emit a subrange_type DIE
2957         for base types.
2958
2959 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
2960
2961         * dwarf2out.c (is_subrange_type): Minor code rework. No behavior
2962         change.
2963
2964 2004-03-22  Jakub Jelinek  <jakub@redhat.com>
2965
2966         PR c/14069
2967         * c-decl.c (finish_struct): Change type of incorrect flexible array
2968         field into error_mark_node.
2969
2970 2004-03-22  Andrew Pinski  <pinskia@physics.uc.edu>
2971
2972         PR target/14580
2973         * config/rs6000/rs6000.c (symbol_ref_operand): Reject symbols
2974         who are not local for Darwin PIC.
2975
2976 2004-03-22  Ulrich Weigand  <uweigand@de.ibm.com>
2977
2978         * regrename.c (regrename_optimize): Set regs_ever_live for all
2979         registers introduced as replacement.
2980
2981 2004-03-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
2982
2983         PR middle-end/14470
2984         * expr.c (mark_queue): New function.
2985         (emit_insns_enqueued_after_mark): New function replacing
2986         emit_queue.  Clear the body of emitted queued insns.
2987         (emit_queue): Call emit_insns_enqueued_after_mark.
2988         (store_expr): Mark the increment queue on entry.  Emit
2989         only the incrementations queued when expanding the source.
2990
2991 2004-03-22  Nathanael Nerode  <neroden@gcc.gnu.org>
2992
2993         * configure.ac: Allow --disable-coverage-flags (for the future benefit
2994         of top level bootstrap, and consistency).  Reindent.
2995         * configure: Regenerate.
2996
2997 2004-03-21  Kazu Hirata  <kazu@cs.umass.edu>
2998
2999         * bt-load.c, builtins.c, cfghooks.c, cfgrtl.c, gcse.c,
3000         ggc-page.c, integrate.c, var-tracking.c, web.c: Remove
3001         unnecessary casts.
3002
3003 2004-03-22  Danny Smith  <dannysmith@users.sourceforge.net>
3004
3005         PR target/14291
3006         * gcov-io.h (gcov_truncate): Define ftruncate as _chsize for
3007         __MINGW32__.
3008
3009 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
3010
3011         * config/s390/s390.md ("*doloop_si"): Change predicate for operand 2
3012         to nonimmediate_operand.
3013         ("*doloop_di"): Likewise.
3014
3015 2004-03-21  Alexandre Oliva  <aoliva@redhat.com>
3016
3017         * real.h (struct real_value): Use the same type for all
3018         bitfields.  Rename exp to uexp.
3019         (REAL_EXP, SET_REAL_EXP): New accessor macros for uexp.
3020         Adjust all uses of exp...
3021         * builtins.c: ... here, ...
3022         * emit-rtl.c: ... here, and ...
3023         * real.c: ... and here.
3024
3025 2004-03-21  Gabriel Dos Reis  <gdr@integrable-solutions.net>
3026
3027         * pretty-print.c (pp_base_maybe_space): New function.
3028         * pretty-print.h (pp_base_maybe_space): Declare.
3029         (pp_maybe_space): New macro.
3030
3031 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
3032
3033         * config/s390/s390.md ("addti3", "subti3"): New insns and splitters.
3034
3035 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
3036
3037         * expmed.c (choose_mult_variant): Pass MULT_COST as argument instead
3038         of using register multiplication cost.
3039         (expand_mult): Adapt choose_mult_variant call.
3040         (expand_mult_highpart): Call choose_mult_variant with WIDER_MODE
3041         of MODE; pass appropriate cost bound.  Adjust result when
3042         performing signed multiplication by a negative constant.
3043         Don't use intermediate modes larger than word_mode.
3044
3045 2004-03-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3046
3047         * alias.c (get_alias_set): Remove handling of PLACEHOLDER_EXPR.
3048         * emit-rtl.c (component_ref_for_mem_expr): Likewise.
3049         (set_mem_attributes_minus_bitpos): Call SUBSTITUTE_PLACEHOLDER_IN_EXPR.
3050         * explow.c (expr_size): Likewise.
3051         * expr.h (placeholder_list, find_placeholder): Deleted.
3052         * expr.c (store_constructor): Likewise.
3053         (get_inner_reference): Likewise.  Also don't call find_placeholder.
3054         (placeholder_list, find_placeholder): Deleted.
3055         (is_aligning_offset): Don't handle WITH_RECORD_EXPR, PLACEHOLDER_EXPR.
3056         (expand_expr_real, cases PLACEHOLDER_EXPR, WITH_RECORD_EXPR): Likewise.
3057         (highest_pow2_factor, case WITH_RECORD_EXPR): Remove.
3058         * dojump.c (do_jump, case WITH_RECORD_EXPR): Likewise.
3059         * dwarf2out.c (loc_descriptor_from_tree, case WITH_RECORD_EXPR):
3060         Likewise.
3061         * fold-const.c (invert_truthvalue, case WITH_RECORD_EXPR): Likewise.
3062         (extract_muldiv, case WITH_RECORD_EXPR): Likewise.
3063         * tree.c (expr_align, case WITH_RECORD_EXPR): Likewise.
3064         (contains_placeholder_p): Don't handle WITH_RECORD_EXPR.
3065         Clean up by using first_rtl_op.
3066         (substitute_in_expr): Use SUBSTITUTE_IN_EXPR for recursive call.
3067         (substitute_placeholder_in_expr): New function.
3068         * tree.def (WITH_RECORD_EXPR): Deleted.
3069         * tree.h (SUBSTITUTE_IN_EXPR, SUBSTITUTE_PLACEHOLDER_IN_EXPR): New.
3070         (substitute_placeholder_in_expr): New.
3071
3072 2004-03-21  Andrew Pinski  <pinskia@gcc.gnu.org>
3073
3074         * dojump.c (prefer_and_bit_test): Fix which part of
3075         the and_test is replaced.
3076
3077 2004-03-21  Joseph S. Myers  <jsm@polyomino.org.uk>
3078
3079         * frontends.texi: Add missing line.
3080
3081 2004-03-21  Zack Weinberg  <zack@codesourcery.com>
3082             Chris Devers  <cdevers@pobox.com>
3083             Joseph S. Myers  <jsm@polyomino.org.uk>
3084
3085         * doc/frontends.texi: Rewrite.
3086         * doc/gcc.texi: Update last modification date.
3087
3088 2004-03-21  Josef Zlomek  <zlomekj@suse.cz>
3089
3090         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Print the debug
3091         message before redirecting the edge.
3092
3093 2004-03-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3094
3095         * emit-rtl.c (set_mem_attributes_minus_bitpos): Set MEM_POINTER
3096         flag.
3097         * explow.c (force_not_mem): Set REG_POINTER flag according to
3098         MEM_POINTER one.
3099         * rtl.h (MEM_POINTER): New macro.
3100         (struct rtx_def): Use integrated for MEM_SCALAR_P and frame_related
3101         for MEM_POINTER.
3102
3103 2004-03-20  Roger Sayle  <roger@eyesopen.com>
3104
3105         PR target/13889
3106         * cse.c (fold_rtx): Avoid substituting constants into unary
3107         conversion operations.
3108
3109 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
3110
3111         * fold-const.c (fold): Replace "expr" with "t".
3112
3113 2004-03-20  Ian Lance Taylor  <ian@wasabisystems.com>
3114
3115         PR c/12373
3116         * c-typeck.c (tagged_types_tu_compatible_p): Don't use
3117         DECL_ORIGINAL_TYPE if there isn't one.
3118
3119 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
3120
3121         * fold-const.c (fold): Replace "final_type" with "type".
3122         Remove variable "final_type".
3123
3124 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
3125
3126         * fold-const.c (fold): Constify "type".
3127         Replace "TREE_TYPE (t)" with "type".
3128
3129 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
3130
3131         * bb-reorder.c, bt-load.c, c-decl.c, cfgcleanup.c, coverage.c,
3132         dwarf2asm.c, ifcvt.c, stor-layout.c, varasm.c: Replace calls
3133         via (*targetm.foo) () with targetm.foo ().
3134
3135 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
3136
3137         PR other/14630
3138         * doc/install.texi: Add info directory category and entry.
3139
3140 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
3141
3142         * fold-const.c (fold): Replace "t" with "tem" where it is used
3143         as a temporary variable.  Remove "orig_t" and all of its uses.
3144
3145 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
3146
3147         * fold-const.c (fold): Remove variable "invert".
3148         Move the handling of relational expressions that can be folded
3149         to a constant ...
3150         (fold_relational_const): ... here.
3151         (tree_expr_nonzero_p): New.
3152
3153 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
3154
3155         PR c/14635
3156         * builtins.def (nan, nanf, nanl, nans, nansf, nansl): Change to
3157         DEF_GCC_BUILTIN.
3158
3159 2004-03-20  Richard Sandiford  <rsandifo@redhat.com>
3160
3161         * Makefile.in (dojump.o): Depend on $(GGC_H) and dojump.h.
3162         (GTFILES): Add $(srcdir)/dojump.h.
3163         (gt-dojump.h): New dependency.
3164         * dojump.c (and_reg, and_test, shift_test): New static variables.
3165         (prefer_and_bit_test): New function.
3166         (do_jump): Use it to choose between (X & (1 << C)) and (X >> C) & 1.
3167
3168 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
3169
3170         * c-common.c, cfgcleanup.c, cgraphunit.c, c-pretty-print.c,
3171         expmed.c, ggc-common.c, jump.c, passes.c, recog.c, regmove.c,
3172         reorg.c, tree.h: Fix comment typos.
3173
3174 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
3175
3176         * alias.c, attribs.c, bt-load.c, builtins.c, c-common.c,
3177         c-decl.c, c-objc-common.c, c-typeck.c, calls.c, cfglayout.c,
3178         cse.c, dbxout.c, dwarf2out.c, except.c, final.c,
3179         haifa-sched.c, integrate.c, passes.c, rtlanal.c, sched-rgn.c,
3180         sched-vis.c, simplify-rtx.c, stor-layout.c, tree.c, varasm.c,
3181         vmsdbgout.c: Replace calls via (*targetm.foo) () with
3182         targetm.foo ().
3183
3184 2004-03-19  Ziemowit Laski  <zlaski@apple.com>
3185
3186         * config/rs6000/altivec.h (vec_dst, vec_dstst, vec_dststt,
3187         vec_dstt, vec_sld, vec_splat): Add prototypes, marked with
3188         always_inline attribute.
3189         * config/rs6000/rs6000.c (altivec_expand_dst_builtin):
3190         Treat expansion as completed even if literal argument is
3191         invalid (so that other expansions are not tried in vain).
3192
3193 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
3194
3195         * loop-doloop.c (add_test): Replace GEN_INT (0) with
3196         const0_rtx.
3197
3198 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
3199
3200         * fold-const.c (fold) <ABS_EXPR>: Move the handling of constants
3201         ...
3202         (fold_abs_const): ... here.
3203
3204 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3205
3206         * tree.h (TYPE_ARRAY_MAX_SIZE): Use type.maxval directly.
3207
3208 2004-03-19  Denis Chertykov  <denisc@overta.ru>
3209
3210         PR target/11520
3211         * config/avr/avr.md ("call_insn"): Handle explicit integer
3212         specially.
3213         (call_value_insn): Likewise.
3214
3215 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3216
3217         * tree.c (substitute_in_expr): Rewrite to simplify and be more generic.
3218
3219 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
3220
3221         * fold-const.c (negate_expr): Move the handling of constants
3222         ...
3223         (fold_negate_const): ... here.
3224
3225 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3226
3227         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): New macro and hook.
3228         * langhooks.h (struct lang_hooks_for_types): New field hash_types.
3229         * tree.c (debug_no_type_hash): Deleted.
3230         (type_hash_canon): Abort if passed a variant.
3231         Check lang_hooks.types.hash_types.
3232         (build_type_no_quals): Copy mode of POINTER_TYPE and REFERENCE_TYPE.
3233         (build_array_type): Remove unnecessary allocation of pointer type.
3234         (build_complex_type): Properly qualify resulting type.
3235
3236 2004-03-19  Paolo Bonzini  <bonzini@gnu.org>
3237
3238         * config/rs6000/rs6000.c (rs6000_init_builtins): Fix typo.
3239
3240 2004-03-19  Richard Sandiford  <rsandifo@redhat.com>
3241
3242         * expmed.c (choose_mult_variant, expand_mult_const): New, split from...
3243         (expand_mult): ...here.
3244         (extract_high_half): New, split out from expand_mult_highpart.
3245         (expand_highpart_optab): Likewise.  Don't clobber target prematurely.
3246         (expand_highpart): Evaluate the cost of a shift/add sequence,
3247         then see if any of the specialized optabs are cheaper.
3248
3249 2004-03-18  Ian Lance Taylor  <ian@wasabisystems.com>
3250
3251         * mklibgcc.in: Remove obsolete MAYBE_USE_COLLECT2.
3252
3253 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3254
3255         * convert.c (convert_to_real): Add more math builtins.
3256
3257 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3258
3259         * convert.c (convert_to_real): Reformat using switch stmt.
3260
3261 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
3262
3263         * c-common.c (pointer_int_sum): Do not complain about using
3264         pointers to pointers-to-members.
3265
3266 2004-03-18  Kazu Hirata  <kazu@cs.umass.edu>
3267
3268         * system.h (MD_ASM_CLOBBERS): Move to "Old target macros that
3269         have moved to the target hooks structure".
3270
3271 2004-03-18  James E Wilson  <wilson@specifixinc.com>
3272
3273         * config/mips/mips.md (type): Split move into arith and fmove.  Split
3274         hilo into mthilo and mfhilo.  Add trap.  Delete icmp.  Fix all uses.
3275         * config/mips/5400.md (ir_vr54_hilo, ir_vr54_arith, ir_vr54_fabs):
3276         Likewise.
3277         * config/mips/5500.md (ir_vr55_hilo, ir_vr55_arith, ir_vr55_fabs):
3278         Likewise.
3279         * config/mips/7000.md (rm7_int_other, rm7_mthilo, rm7_mfhilo,
3280         rm7_fp_quick): Likewise.
3281         * config/mips/9000.md (rm9k_int, rm9k_mfhilo, rm9k_mthilo,
3282         rm9k_fquick): Likewise.
3283         * config/mips/sr71k.md (ir_sr70_hilo, ir_sr70_arith, ir_sr70_fabs):
3284         Likewise.
3285         (ir_sr70_icmp): Delete.
3286
3287 2004-03-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3288
3289         * tree.h (TREE_CHECK2, TREE_CHECK3, TREE_CHECK5): New macros.
3290         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New decl.
3291         (FUNC_OR_METHOD_CHECK, SET_ARRAY_OR_VECTOR_CHECK): New macros.
3292         (REC_OR_UNION_CHECK, NUMERICAL_TYPE_CHECK): Likewise.
3293         (TYPE_VALUES, TYPE_DOMAIN, TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD):
3294         Protect with proper check.
3295         (TYPE_ARG_TYPES, TYPE_METHOD_BASETYPE, TYPE_OFFSET_BASETYPE): Likewise.
3296         (TYPE_MIN_VALUE, TYPE_MAX_VALUE): Likewise.
3297         * tree.c (type_hash_eq): Rewrite to access proper fields for each type.
3298         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New.
3299         * c-typeck.c (build_array_ref): Use TYPE_DOMAIN, not TYPE_VALUES.
3300         * dwarf2out.c (gen_enumeration_type_die): Use TYPE_VALUES,
3301         not TYPE_FIELDS.
3302         * stor-layout.c (set_sizetype): Use TYPE_ORIG_SIZE_TYPE.
3303
3304 2004-03-18  Mostafa Hagog  <mustafa@il.ibm.com>
3305
3306         * gcse.c (eliminate_partially_redundant_loads): Reject change if
3307         dest is set between beginning and current insn.
3308
3309 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
3310
3311         * c-decl.c (grokdeclarator): Do not complain about redeclaring
3312         visible "static" identifiers "extern" in a local scope.
3313         * dwarf2out.c (loc_descriptor_from_tree): Handle pre- and
3314         post-increments/decrements.
3315
3316 2004-03-18  Bob Wilson  <bob.wilson@acm.org>
3317
3318         * config/xtensa/xtensa.c (current_function_arg_words): Delete.
3319         (xtensa_builtin_saveregs): Use current_function_args_info.arg_words.
3320         (xtensa_va_start): Remove assignment to current_function_arg_words.
3321
3322 2004-03-18  Richard Sandiford  <rsandifo@redhat.com>
3323
3324         * alias.c (record_set): Detect the case where a register is assigned
3325         a new value that has the same base term as the old one.
3326
3327 2004-03-18  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3328
3329         * doloop.c: Removed.
3330         * loop-doloop.c: New file.
3331         * Makefile.in (doloop.o): Remove.
3332         (loop-doloop.o): New.
3333         * cfgloop.h (get_loop_level, doloop_optimize_loops): Declare.
3334         * cfgloopanal.c (get_loop_level): New function.
3335         * loop-iv.c (iv_number_of_iterations): Handle case when loop
3336         is leaved immediatelly.
3337         * loop.c (strength_reduce): Do not call doloop optimization.
3338         * loop.h (LOOP_BCT): Removed.
3339         * passes.c (rest_of_handle_loop_optimize): Do not use LOOP_BCT.
3340         (rest_of_handle_loop2): Call doloop_optimize_loops.
3341         (rest_of_compilation): Test for optimizations moved to
3342         rest_of_handle_loop2.
3343
3344 2004-03-17  Fariborz Jahanian <fjahanian@apple.com>
3345
3346         * config/rs6000/rs6000.c (rs6000_stack_info): correct reg_size
3347         for mixed mode.
3348         (rs6000_emit_prologue): Ditto.
3349         (rs6000_emit_epilogue): Ditto.
3350         * config/rs6000/rs6000.h: Definition of DWARF_CIE_DATA_ALIGNMENT
3351         macro for mixed mode.
3352
3353 2004-03-18  Jan Hubicka  <jh@suse.cz>
3354
3355         * predict.c (propagate_freq): Compute correctly frequency of
3356         EXIT_BLOCK.
3357
3358 2004-03-17  Eric Christopher  <echristo@redhat.com>
3359
3360         * builtins.c (apply_args_size): Use reg_raw_mode.
3361         (apply_result_size): Ditto.
3362
3363 2004-03-17  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
3364
3365         PR target/14620
3366         * config/rtems.h: Add STD_LIB_SPEC and LIB_SPEC.
3367
3368 2004-03-17  Jakub Jelinek  <jakub@redhat.com>
3369
3370         * config/rs6000/t-linux64 (bispecs): Don't add -mlong-double-128 for
3371         32-bit builds when defaulting to 32-bit.
3372
3373 2004-03-17  Jan Hubicka  <jh@suse.cz>
3374
3375         * cfgrtl.c (rtl_create_basic_block): Pre-allocate basic_block_info
3376         array.
3377
3378 2004-03-17  James E Wilson  <wilson@specifixinc.com>
3379
3380         * config/mips/mips.md (zero_extendsidi2): Add length attribute.
3381         (hazard_nop): Change type to nop.
3382         (type): Split arith into arith, shift, slt, clz.  Delete darith.
3383         Fix all uses.  Change arith to multi if more than one insn emitted.
3384         * config/mips/5400.md (ir_vr54_arith): Likewise.
3385         * config/mips/5500.md (ir_vr55_arith): Likewise.
3386         * config/mips/7000.md (rm7_int_other): Likewise.
3387         * config/mips/9000.md (rm9k_int): Likewise.
3388         * config/mips/sr71k.md (ir_sr70_arith): Likewise.
3389
3390 2004-03-17  Joel Brobecker  <brobecker@gnat.com>
3391
3392         * dwarf2out.c (subrange_type_die): Define new variable "subtype"
3393         to hold the subtype tree instead of recomputing it several times.
3394
3395 2004-03-17  Kazu Hirata  <kazu@cs.umass.edu>
3396
3397         * config/mn10300/mn10300.c (notice_update_cc): Don't handle
3398         CC_INVERT.
3399         * config/mn10300/mn10300.md (cc): Remove "invert".
3400
3401 2004-03-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3402
3403         * builtins.c (integer_valued_real_p): Add builtin rint.
3404         (fold_builtin): Likewise.
3405         * convert.c (convert_to_real): Likewise.
3406
3407         * convert.c (convert_to_real): Fix typos in `long double'
3408         builtins.
3409
3410 2004-03-16  Mark Mitchell  <mark@codesourcery.com>
3411
3412         PR c++/14481
3413         * fold-const.c (fold): Set TREE_NO_UNUSED_WARNING on implicitly
3414         generated COMPOUND_EXPRs.
3415
3416 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
3417
3418         * config/h8300/t-rtems (h8300-*-rtems*): New.
3419
3420 2004-03-16  Eric Christopher  <echristo@redhat.com>
3421
3422         * doc/cppopts.texi(fwide-exec-charset): Fix typo.
3423
3424 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
3425
3426         * config/i386/i386-protos.h: Add a prototype for
3427         ix86_reverse_condition.
3428         * config/i386/i386.c (ix86_reverse_condition): New.
3429         * config/i386/i386.h (REVERSE_CONDITION): Use
3430         ix86_reverse_condition.
3431         * config/i386/i386.md: Use ix86_reverse_condition instead of
3432         REVERSE_CONDITION.
3433
3434 2004-03-16  J. Brobecker  <brobecker@gnat.com>
3435
3436         * dwarf2out.c (loc_descriptor_from_tree): Add handling for MIN_EXPR.
3437
3438 2004-03-16  Nathanael Nerode  <neroden@gcc.gnu.org>
3439
3440         PR bootstrap/12974
3441         * Makefile.in: Pass $(INCLUDES) down to libgcc.mk explicitly.
3442
3443 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
3444
3445         * c-common.c (c_common_type_for_mode): Build vector types on
3446         demand.
3447         (handle_mode_attribute): Deprecate using the mode attribute
3448         to create vector types.  Fix indentation.
3449         (vector_type_node_list): Remove.
3450         (handle_vector_size_attribute): Create vector types on demand.
3451         Strip a NON_LVALUE_EXPR from the attribute if there is one.
3452         * c-typeck.c (comptypes): Make vector types compatible if they
3453         have the same underlying mode.
3454         (convert_for_assignment): Use comptypes to convert between
3455         vector types.
3456         * tree.c (build_common_tree_nodes_2): Do not create vector types.
3457         * config/arm/arm.c (arm_init_iwmmxt_builtins): Create necessary
3458         vector types.
3459         * tree.h: Remove vector types.
3460         * config/i386/i386.c (i386_init_mmx_sse_builtins): Likewise.
3461         * config/rs6000/rs6000.c (rs6000_init_builtins): Likewise.
3462         (V16QI_type_node, V2SI_type_node, V2SF_type_node, V4HI_type_node,
3463         V4SI_type_node, V4SF_type_node, V8HI_type_node): New globals.
3464         * doc/extend.texi (Vector Types): Document how to use the
3465         vector_size attribute to create vectors, rather than mode.
3466
3467         * config/arm/mmintrin.h: Use vector_size attribute, not mode.
3468         * config/i386/emmintrin.h: Likewise.
3469         * config/i386/mmintrin.h: Likewise.
3470         * config/i386/xmmintrin.h: Likewise.
3471         * config/sh/ushmedia.h: Likewise.
3472
3473 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
3474
3475         * config/freebsd-spec.h, config/arc/arc-protos.h,
3476         config/arm/aout.h, config/arm/elf.h, config/arm/freebsd.h,
3477         config/arm/linux-gas.h, config/arm/semi.h,
3478         config/cris/cris-protos.h, config/i386/xm-djgpp.h,
3479         config/ia64/freebsd.h, config/mips/7000.md,
3480         config/mips/9000.md, config/ns32k/ns32k-protos.h,
3481         config/sparc/pbd.h: Update copyright.
3482
3483 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
3484
3485         PR target/14577
3486         * config.gcc: Switch sh-*-rtems* to ELF.  Add sh-*-rtemscoff.
3487
3488 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
3489
3490         * combine.c (combine_simplify_rtx): Remove the "last"
3491         parameter and its documentation.  Adjust recursive calls.
3492         (simplify_logical): Always perform the only simplification
3493         controlled by "last", if the simplified expression is
3494         actually different.
3495         (try_combine): Do not pass the "last" parameter to
3496         combine_simplify_rtx.
3497
3498 2004-03-16  Richard Sandiford  <rsandifo@redhat.com>
3499
3500         PR target/14599
3501         * config/mips/mips.md (UNSPEC_GP): New constant.
3502         * config/mips/mips.c (CONST_GP_P): Expect the CONST to contain
3503         an UNSPEC instead of (reg $gp).
3504         (mips16_gp_pseudo_reg): Change accordingly.
3505         (print_operand): Print $gp directly when handling CONST_GP_P.
3506
3507 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
3508
3509         * config.gcc, config/m68k/linux.h: Implement with-cpu for m68k-linux.
3510         * longlong.h: Make code 68060 clean when compiling for m68060.
3511
3512 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
3513
3514         * config/m68k/m68k.md: Fix constraints for bitfield instructions.
3515         * doc/md.texi: Clarify description of "i" constraint.
3516
3517 2004-03-15  James E Wilson  <wilson@specifixinc.com>
3518
3519         * config/mips/mips.md (type): Split load into load, fpload, fpidxload.
3520         Split store into store, fpstore, fpidxstore.  Fix all uses.
3521         * config/mips/5400.md (ir_vr54_load, ir_vr54_store, ir_vr54_fstore):
3522         Likewise.
3523         * config/mips/5500.md (ir_vr55_load, i5_vr55_store): Likewise.
3524         * config/mips/7000.md (rm7_ld, rm7_st): Likewise.
3525         * config/mips/9000.md (rm9k_load, rm9k_store): Likewise.
3526         * config/mips/sr71k.md (ir_sr70_load, ir_sr70_store, ir_sr70_fload,
3527         ir_sr70_fstore): Likewise.
3528
3529 2004-03-15  Richard Henderson  <rth@redhat.com>
3530
3531         PR middle-end/14535
3532         * except.c (collect_one_action_chain): Record action for cleanup
3533         outer of exception spec.
3534
3535 2004-03-15  Ian Lance Taylor  <ian@wasabisystems.com>
3536
3537         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
3538         Fix the check for abort and only do the mmap if we can.
3539
3540 2004-03-15  Eric Botcazou  <ebotcazou@act-europe.fr>
3541
3542         * config/sparc/sparc.h: Rework comments about the code model
3543         in 64-bit environment and the mode 'Pmode'.
3544         * doc/invoke.texi (SPARC options): Rework description of the
3545         different code models supported in 64-bit environment.
3546
3547 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
3548
3549         * defaults.h (REVERSIBLE_CC_MODE): Define.
3550         * jump.c (reversed_comparison_code_parts): Don't check if
3551         REVERSIBLE_CC_MODE is defined.
3552
3553 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
3554
3555         * c-incpath.c, c-incpath.h, c-pch.c, c.opt, cppexp.c,
3556         et-forest.h, genattr.c, ggc-none.c, hosthooks-def.h,
3557         hosthooks.h, params.h, ra-colorize.c, web.c,
3558         config/darwin-c.c, config/alpha/freebsd.h, config/arm/pe.c,
3559         config/avr/avr-protos.h, config/avr/avr.md,
3560         config/fr30/fr30-protos.h, config/fr30/fr30.md,
3561         config/h8300/fixunssfsi.c, config/i386/darwin.h,
3562         config/i386/freebsd.h, config/i386/freebsd64.h,
3563         config/ia64/hpux.h, config/ia64/unwind-ia64.c,
3564         config/ip2k/libgcc.S, config/m32r/xm-m32r.h,
3565         config/mmix/mmix-modes.def, config/ns32k/netbsd.h,
3566         config/ns32k/ns32k.md, config/pa/pa64-hpux.h,
3567         config/pa/pa64-regs.h, config/rs6000/aix41.h,
3568         config/rs6000/aix43.h, config/rs6000/host-darwin.c,
3569         config/sparc/aout.h, config/sparc/freebsd.h,
3570         config/sparc/litecoff.h, config/vax/vax-protos.h,
3571         doc/hostconfig.texi, doc/include/gcc-common.texi: Update
3572         copyright.
3573
3574 2004-03-15  Paul Brook  <paul@codesourcery.com>
3575
3576         * config/arm/arm.c (thumb_expand_prologue): Tie prologue insns to fp.
3577
3578 2004-03-15  Gabriel Dos Reis  <gdr@integrable-solutions.net>
3579
3580         * c-pretty-print.c (pp_c_semicolon): Fix formatting.
3581         (pp_c_cv_qualifier): Document.
3582         (pp_c_space_for_pointer_operator): Likewise.
3583         (pp_c_integer_constant): Likewise.
3584         (pp_c_identifier): Likewise.
3585         (pp_c_init_declarator): Don't print function body.
3586
3587 2004-03-14  Joseph S. Myers  <jsm@polyomino.org.uk>
3588
3589         * doc/contrib.texi, doc/extend.texi, doc/gcov.texi,
3590         doc/install.texi, doc/invoke.texi, doc/makefile.texi,
3591         doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi: Capitalize
3592         "gcc", "g++" and "g77" or mark up with appropriate markup.  Adjust
3593         wording and grammar.
3594
3595 2004-03-14  Roger Sayle  <roger@eyesopen.com>
3596
3597         * alias.c (get_alias_set): Replace calls via (*lang_hooks.foo) ()
3598         with lang_hooks.foo ().
3599         * builtins.c (expand_builtin_va_arg): Likewise.
3600         * c-common.c (fname_as_string, c_common_truthvalue_conversion,
3601         c_common_type_for_mode, c_common_nodes_and_builtins,
3602         handle_mode_attribute, handle_vector_size_attribute): Likewise.
3603         * c-convert.c (convert): Likewise.
3604         * c-format.c (check_format_types): Likewise.
3605         * c-objc-common.c (c_tree_printer): Likewise.
3606         * c-typeck.c (build_unary_op, build_conditional_expr,
3607         build_binary_op): Likewise.
3608         * calls.c (try_to_integrate, expand_call,
3609         emit_library_call_value_1): Likewise.
3610         * cgraph.c (cgraph_node_name, cgraph_function_possibly_inlined_p):
3611         Likewise.
3612         * cgraphunit.c (record_call_1, cgraph_analyze_function,
3613         cgraph_expand_function): Likewise.
3614         * convert.c (convert_to_pointer, convert_to_integer): Likewise.
3615         * coverage.c (build_fn_info_type, build_ctr_info_type,
3616         build_gcov_info, create_coverage): Likewise.
3617         * dbxout.c (dbxout_init): Likewise.
3618         * diagnostic.c (diagnostic_report_current_function): Likewise.
3619         * dojump.c (do_jump): Likewise.
3620         * dwarf2out.c (dwarf2_name): Likewise.
3621         * except.c (init_eh): Likewise.
3622         * explow.c (expr_size, int_expr_size): Likewise.
3623         * expmed.c (make_tree, const_mult_add_overflow_p, expand_mult_add):
3624         Likewise.
3625         * expr.c (store_expr, store_constructor, safe_from_p,
3626         expand_expr_real, do_store_flag, try_casesi): Likewise.
3627         * function.c (push_function_context_to, pop_function_context_from,
3628         free_after_parsing, assign_stack_local_1, assign_stack_temp_for_type,
3629         put_var_into_stack, allocate_struct_function, current_function_name):
3630         Likewise.
3631         * integrate.c (copy_decl_for_inlining, expand_inline_function):
3632         Likewise.
3633         * langhooks.c (lhd_clear_binding_stack, write_global_declarations,
3634         lhd_print_error_function): Likewise.
3635         * opts.c (handle_option, decode_options): Likewise.
3636         * passes.c (open_dump_file): Likewise.
3637         * print-tree.c (print_node): Likewise.
3638         * stmt.c (expand_fixup, fixup_gotos, expand_asm_operands,
3639         expand_decl_cleanup, emit_case_nodes): Likewise.
3640         * stor-layout.c (variable_size): Likewise.
3641         * toplev.c (announce_function, wrapup_global_declarations,
3642         check_global_declarations, compile_file, default_tree_printer,
3643         process_options, lang_dependent_init, finalize): Likewise.
3644         * tree-dump.c (dequeue_and_dump): Likewise.
3645         * tree-inline.c (remap_decl, remap_block, copy_body_r,
3646         initialize_inlined_parameters, declare_return_variable,
3647         inlinable_function_p, expand_call_inline, optimize_inline_calls,
3648         walk_tree, copy_tree_r): Likewise.
3649         * tree-optimize.c (tree_rest_of_compilation): Likewise.
3650         * tree.c (decl_assembler_name, tree_size, size_in_bytes, staticp,
3651         unsafe_for_reeval, get_unwidened, get_narrower, get_callee_fndecl,
3652         variably_modified_type_p, dump_tree_statistics): Likewise.
3653         * varasm.c (assemble_variable, compare_constant, copy_constant,
3654         force_const_mem, compute_reloc_for_constant, output_constant,
3655         output_addressed_constants, initializer_constant_valid_p): Likewise.
3656
3657 2004-03-14  Kelley Cook  <kcook@gcc.gnu.org>
3658
3659         * doc/install.texi: Make autoconf 2.13 the exception, not the rule.
3660
3661 2004-03-14  Andreas Tobler  <a.tobler@schweiz.ch>
3662
3663         * doc/install.texi: Reflect autoconf and automake version for
3664         libffi. Update autoconf version to 2.59.
3665
3666 2004-03-13  Roger Sayle  <roger@eyesopen.com>
3667
3668         * fold-const.c (negate_expr, operand_equal_for_comparison_p,
3669         optimize_bit_field_compare, decode_field_reference, all_ones_mask_p,
3670         make_range, build_range_check, fold_range_test, unextend,
3671         constant_boolean_node, fold_binary_op_with_conditional_arg,
3672         fold_truthop, fold_mathfn_compare, fold_inf_compare,
3673         fold_single_bit_test, fold): Replace calls via (*lang_hooks.foo) ()
3674         with lang_hooks.foo ().
3675
3676 2004-03-14  Richard Earnshaw  <rearnsha@arm.com>
3677
3678         * arm.h (EXTRA_CONSTRAINT_STR_ARM): Update comment.
3679
3680 2004-03-13  Dara Hazeghi  <dhazeghi@yahoo.com>
3681
3682         * doc/install.texi: Note status of -fnew-ra.
3683
3684 2004-03-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
3685
3686         PR middle-end/14470
3687         * expr.c (store_expr): Call emit_queue before generating the move
3688         from the temporary to the original target.  Protect the temporary
3689         from emit_queue.
3690
3691 2004-03-13  Jakub Jelinek  <jakub@redhat.com>
3692
3693         PR target/14533
3694         * config/s390/s390.c (legitimize_pic_address): Don't abort on UNSPEC
3695         other than UNSPEC_GOTOFF.
3696
3697 2004-03-13  Richard Earnshaw  <rearnsha@arm.com>
3698
3699         * arm.c (arm_legitimate_address_p): New argument, OUTER.  Pass through
3700         to arm_legitimate_index_p.  Update all callers with SET as default
3701         value.
3702         (arm_legitimate_index_p): New argument, OUTER.  Restrict the index
3703         range if OUTER is a sign-extend operation on QImode.  Correctly
3704         reject shift operations on sign-extended QImode addresses.
3705         (bad_signed_byte_operand): Delete.
3706         (arm_extendqisi_mem_op): New function.
3707         * arm.h (EXTRA_CONSTRAINT_ARM): Delete.  Replace with...
3708         (EXTRA_CONSTRAINT_STR_ARM): ... this.  Handle extended address
3709         constraints.
3710         (CONSTRAINT_LEN): New.
3711         (EXTRA_CONSTRAINT): Delete.  Replace with...
3712         (EXTRA_CONSTRAINT_STR): ... this.
3713         (PREDICATE_CODES): Remove bad_signed_byte_operand.
3714         * arm.md (extendqihi_insn): Use new constraint Uq.  Rework.  Length
3715         is now always default.
3716         (define_splits for bad sign-extend loads): Delete.
3717         (arm_extendqisi, arm_extendqisi_v5): Likewise.
3718         * arm/vfp.md (arm_movsi_vfp, arm_movdi_vfp, movsf_vfp, movdf_vfp):
3719         Rework 'U' constraint to 'Uv'.
3720         * arm-protos.h: Remove bad_signed_byte_operand.  Add
3721         arm_extendqisi_mem_op.
3722         * doc/md.texi (ARM constraints): Rename VFP constraint (now Uv).
3723         Add Uq constraint.
3724
3725 2004-03-13  Alan Modra  <amodra@bigpond.net.au>
3726
3727         * config/rs6000/rs6000.c (rs6000_va_arg): Replace SPLIT_COMPLEX_ARGS
3728         with targetm version.
3729
3730         PR target/14567
3731         * config/rs6000/rs6000.h (UNITS_PER_ARG, RS6000_ARG_SIZE): Delete.
3732         (HARD_REGNO_MODE_OK): Disallow TFmode for fp31.
3733         * config/rs6000/rs6000.c (rs6000_arg_size): New function.
3734         Update all users of RS6000_ARG_SIZE.
3735         (function_arg_advance): Count fregno using mode size.
3736         (function_arg): Handle long double split over regs and memory.
3737         (function_arg_partial_nregs): Likewise.
3738         (rs6000_va_arg): Repackage complex args.
3739
3740 2004-03-13  Dean Ferreyra <dferreyra@igc.org>
3741
3742         PR target/14047
3743         * config/avr/avr.c (avr_progmem_p): Add "attributes" parameter.
3744         (avr_insert_attributes): Pass "attributes" to avr_progmem_p.
3745         * config/avr/avr-protos.h (avr_progmem_p): Change prototype.
3746
3747 2004-03-12  Jakub Jelinek  <jakub@redhat.com>
3748
3749         * config/rs6000/rs6000-protos.h (rs6000_output_dwarf_dtprel): Add
3750         prototype.
3751         * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): New.
3752         * config/rs6000/rs6000.h (ASM_OUTPUT_DWARF_DTPREL): Define.
3753
3754 2003-03-12  Andrew Pinski  <apinski@apple.com>
3755
3756         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
3757         Use ret instead of result. Use addr instead of base.
3758
3759 2004-03-12  David Edelsohn  <edelsohn@gnu.org>
3760
3761         * doc/install.texi (*-ibm-aix*): Document assembler and achiver
3762         fixes required by libstdc++ and update installation instructions
3763         for libstdc++.a.
3764
3765 2004-03-12  Danny Smith  <dannysmith@users.sourceforge.net>
3766
3767         * config/i386/winnt.c (i386_pe_strip_name_encoding_full): Strip
3768         leading '@' on fastcall symbols before stripping suffix.
3769
3770 2004-03-12  Roger Sayle  <roger@eyesopen.com>
3771
3772         * combine.c (unmentioned_reg_p): New function to check whether an
3773         expression is a "specialization" of another, i.e. that there are
3774         no registers or memory references mentioned in the first that don't
3775         appear in the second.
3776         (unmentioned_reg_p_1): New helper subroutine of unmentioned_reg_p.
3777         (combine_instructions): Also try combining instructions using the
3778         REG_EQUAL note from a preceding log-linked instruction.
3779
3780 2004-03-12  Roger Sayle  <roger@eyesopen.com>
3781
3782         * config/i386/i386.c (ix86_split_ashrdi): Optimize shift by 63.
3783
3784 2004-03-12  Matt Austern  <austern@apple.com>
3785
3786         * target.h (struct gcc_target): New target hook, unwind_label.
3787         * target-def.h (TARGET_ASM_EMIT_UNWIND_LABEL): New hook.
3788         * output.h (default_emit_unwind_label): New function.
3789         * default.h (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): New macro.
3790         (TARGET_USES_WEAK_UNWIND_INFO): New target macro.
3791         (TARGET_SUPPORTS_HIDDEN): New target macro.
3792         * dwarf2out.c (struct dw_fde_struct): Add field for function decl
3793         that corresponds to this FDE.
3794         (FRAME_BEGIN_LABEL): Allow target to override default label.
3795         (output_call_frame_info): If FDEs are linknonce, then use extra
3796         indirection for FDE encoding, output a label for each FDE, and
3797         output an empty label for each function without an FDE.
3798         (dwarf2out_begin_prologue): Set up decl field when creating an FDE.
3799         * varasm.c (globalize_decl): Call ASM_MAKE_LABEL_LINKONCE for
3800         decls with DECL_ONE_ONLY set, if that macro is defined.
3801         (make_decl_one_only): Don't use DECL_COMMON if we're compiling
3802         for a SUPPORTS_ONE_ONLY target.
3803         * config/darwin-protos.h (darwin_unique_section): Declare.
3804         (darwin_asm_named_section): Likewise.
3805         (darwin_section_type_flags): Likewise.
3806         (darwin_non_lazy_pcrel): Likewise.
3807         (darwin_emit_unwind_label): Likewise.
3808         (darwin_make_decl_one_only): Likewise.
3809         * config/darwin.c (machopic_finish): Get rid of tweak that
3810         eliminate stubs for symbols that are defined.
3811         (darwin_encode_section_info): Don't treat weak functions as defined.
3812         (darwin_make_decl_one_only): Define.
3813         (darwin_asm_named_section): Likewise.
3814         (darwin_section_type_flags): Likewise.
3815         (darwin_unique_section): Likewise.
3816         (darwin_emit_unwind_label): Likewise.
3817         (darwin_non_lazy_pcrel): Likewise.
3818         (darwin_asm_output_dwarf_delta): Difference between two labels is
3819         local only if both labels are local.
3820         * config/darwin.h (MAKE_DECL_ONE_ONLY): Define.
3821         (ASM_MAKE_LABEL_LINKONCE): Likewise.
3822         (TARGET_SUPPORTS_HIDDEN): Likewise.
3823         (TARGET_USES_WEAK_UNWIND_INFO): Likewise.
3824         (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): Likewise.
3825         (FRAME_BEGIN_LABEL): Likewise.
3826         (ASM_DECLARE_OBJECT_NAME): Make references to weak symbols indirect.
3827         (ASM_DECLARE_FUNCTION_NAME): Likewise.
3828         (darwin_eh_frame_section): Give __eh_frame section the coalesced flag.
3829         (TARGET_ASM_UNIQUE_SECTION): Define.
3830         (EH_FRAME_SECTION_NAME): Define.
3831         (EH_FRAME_SECTION_ATTR): Likewise.
3832         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
3833         (TARGET_ASM_NAMED_SECTION): Likewise.
3834         (TARGET_SECTION_TYPE_FLAGS): Likewise.
3835         * doc/tm.texi: Document TARGET_USES_WEAK_UNWIND_INFO,
3836         TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, TARGET_SUPPORTS_HIDDEN,
3837         TARGET_ASM_EMIT_UNWIND_LABEL.
3838
3839 2004-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3840
3841         * builtins.c (expand_builtin_mathfn): Add pow10* to the
3842         existing exp10* case.
3843         (expand_builtin): Likewise.
3844
3845 2004-03-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
3846
3847         * doc/tm.texi (registers) <Values in Registers>: Add
3848         entry for REGMODE_NATURAL_SIZE.
3849
3850 2004-03-12  Richard Henderson  <rth@redhat.com>
3851
3852         PR target/14547
3853         * target.h (struct gcc_target): Move calls substructure before
3854         booleans.  Add split_complex_arg.
3855         * function.c (assign_parms, split_complex_args): Use it.
3856         * calls.c (expand_call): Likewise.
3857         (split_complex_values): Likewise.  Check for splittable types
3858         before allocating memory.
3859         (split_complex_types): Likewise.
3860         * system.h (SPLIT_COMPLEX_ARGS): Poison.
3861         * expr.h (SPLIT_COMPLEX_ARGS): Remove.
3862         * target-def.h (TARGET_SPLIT_COMPLEX_ARG): New.
3863         * config/alpha/alpha.c (alpha_split_complex_arg): New.
3864         (TARGET_SPLIT_COMPLEX_ARG): New.
3865         * config/alpha/alpha.h (SPLIT_COMPLEX_ARGS): Remove.
3866         * config/rs6000/rs6000.c (TARGET_SPLIT_COMPLEX_ARG): New.
3867         (rs6000_override_options): Zap it for non-AIX.
3868         (rs6000_function_value): Use targetm.calls.split_complex_arg.
3869         * config/rs6000/rs6000.h (SPLIT_COMPLEX_ARGS): Remove.
3870         * config/xtensa/xtensa.c (TARGET_SPLIT_COMPLEX_ARG): New.
3871         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Remove.
3872         * doc/tm.texi (TARGET_SPLIT_COMPLEX_ARG): Modify from old
3873         SPLIT_COMPLEX_ARGS entry.
3874
3875 2004-03-11  Richard Henderson  <rth@redhat.com>
3876
3877         * config/alpha/alpha.c (xfloating_ops, vax_cvt_ops): New.
3878         (alpha_lookup_xfloating_lib_func): Use them, return rtx.
3879         (alpha_emit_xfloating_arith): Update to match.
3880         (alpha_emit_xfloating_compare): Likewise.
3881         (alpha_emit_xfloating_cvt): Likewise.
3882         (alpha_emit_xfloating_libcall): Take already built symbol,
3883         mark call const.
3884         * config/alpha/alpha.md (extendsftf2, extenddftf2): Take
3885         op1 in a register.
3886
3887 2004-03-11  Richard Henderson  <rth@redhat.com>
3888
3889         PR target/14539
3890         * config/alpha/alpha.h (STACK_BOUNDARY): Set to 128.
3891
3892         * simplify-rtx.c (simplify_relational_operation): Fix typo.
3893
3894 2004-03-11  Richard Henderson  <rth@redhat.com>
3895
3896         PR middle-end/14477
3897         * except.c (remove_unreachable_regions): Look thru CALL_PLACEHOLDER.
3898
3899 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
3900
3901         PR target/14262
3902         * calls.c (load_register_parameters): If BLOCK_REG_PADDING is not
3903         defined, pass small BLKmode values in registers in the low-order part.
3904
3905 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
3906
3907         * combine.c (if_then_else_cond): Check for NULL return value of
3908         simplify_gen_subreg.
3909
3910 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
3911
3912         PR target/14496
3913         * config/mips/mips.h (UNITS_PER_FPVALUE): Fix value for
3914         TARGET_SINGLE_FLOAT.
3915
3916 2004-03-11  Steve Ellcey  <sje@cup.hp.com>
3917
3918         * config/ia64/hpux.h (TARGET_INIT_LIBFUNCS): Add undef.
3919         * config/ia64/ia64.h (TARGET_INIT_LIBFUNCS): Add define.
3920         * config/ia64/ia64.c (ia64_init_libfuncs): New.
3921         (ia64_hpux_init_libfuncs): Add call to ia64_init_libfuncs.
3922
3923 2004-03-11  Roger Sayle  <roger@eyesopen.com>
3924
3925         * fold-const.c (negate_expr_p) <RSHIFT_EXPR>: We can optimize
3926         -((int)X>>C) where C is an integer constant one bit less than the
3927         size of X into (unsigned)X>>C.  Similarly for unsigned->signed.
3928         (negate_expr) <RSHIFT_EXPR>: Implement the above transformations.
3929
3930         * simplify-rtx.c (simplify_unary_operation): Also implement the
3931         above transformations at the RTL level.
3932
3933 2004-03-11  Alan Modra  <amodra@bigpond.net.au>
3934
3935         * real.c (encode_ibm_extended): Do round low word.
3936
3937 2004-03-11  Ben Elliston  <bje@wasabisystems.com>
3938
3939         * config/arm/arm.md (is_xscale): Comment this attribute and move
3940         it a bit further up in the file, closer to related attributes.
3941
3942 2004-03-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
3943
3944         * config/host-solaris.c (sol_gt_pch_use_address): Add
3945         missing terminating marker to comment.
3946
3947 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
3948
3949         * config/mips/mips.md: Use move_operand in splitters for 64-bit moves.
3950         (movdi, movsi, movhi, movqi, movsf, movdf): Remove predicates.
3951         (*movdi_32bit_mips16, *movsi_mips16, *movhi_mips16, *movqi_mips16)
3952         (*movsf_mips16, *movdf_mips16):  Name unnamed patterns.  Use
3953         move_operand as source predicate in all cases.
3954         (*movdi_32bit): Renamed from movdi_internal.  Remove 'F' constraint.
3955         Test reg_or_0_operand.  Use move_operand as source predicate.
3956         (*movdi_64bit): Renamed from movdi_internal2.  Test reg_or_0_operand.
3957         (*movdi_64bit_mips16): Renamed from movdi_internal2_mips16.
3958         (*movsi_internal): Renamed from movsi_internal.  Test reg_or_0_operand.
3959         (movhi, movqi, movsf, movdf): Use mips_legitimize_move.
3960         (*movhi_internal): Renamed from movhi_internal.  Test reg_or_0_operand.
3961         Use move_operand as source predicate.  Remove 'K' constraint.
3962         (*movqi_internal): Likewise movqi_internal.
3963         (*movsf_hardfloat): Renamed from movsf_internal1.  Test
3964         reg_or_0_operand.  Use move_operand as source predicate.
3965         (*movsf_softfloat): Likewise movsf_internal2.
3966         (*movdf_hardfloat_64bit): Likewise movsf_internal1a.
3967         (*movdf_hardfloat_32bit): Likewise movsf_internal1b.
3968         (*movdf_softfloat): Likewise movdf_internal2.
3969         * config/mips/mips.c (move_operand): Match arbitrary CONST_INTs
3970         for DImode if !TARGET_64BIT.
3971         (mips_legitimize_move): Simplify accordingly.
3972
3973 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
3974
3975         PR/14362
3976         * var-tracking.c (struct variable_def): Added field refcount.
3977         (variable_htab_free): Decrease the refcount and delete variable
3978         only if there are no more references.
3979         (unshare_variable): New function.
3980         (vars_copy_1): Increase refcount instead of copying the variable.
3981         (variable_union): Share the variables where possible, unshare
3982         the variables if needed.
3983         (variable_different_p): Return false if var1 and var2 are
3984         the same structure.
3985         (variable_was_changed): Init the refcount of new variable.
3986         (set_frame_base_location): Unshare variable if needed.
3987         (set_variable_part): Init the refcount of new variable.
3988         Unshare the variables if needed.
3989         (delete_variable_part): Unshare the variables if needed.
3990         (emit_notes_for_differences_1): Init the refcount of new variable.
3991         (vt_add_function_parameters): Do not add function parameters to
3992         IN set of ENTRY_BLOCK_PTR because it is unused anyway.
3993         (vt_initialize): Do not add frame_base_decl to IN set of
3994         ENTRY_BLOCK_PTR because it is unused anyway.
3995
3996 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
3997
3998         * var-tracking.c (vars_copy_1): Cleanup and speedup chain operations.
3999         (vars_copy): Likewise.
4000         (variable_union): Likewise.
4001         (set_variable_part): Likewise.
4002         (delete_variable_part): Likewise.
4003
4004 2004-03-11  Kazu Hirata  <kazu@cs.umass.edu>
4005
4006         * c-typeck.c, combine.c, cse.c, dominance.c, et-forest.h,
4007         ggc-page.c, var-tracking.c, config/fp-bit.c, config/c4x/c4x.c,
4008         config/cris/cris.c, config/i386/ppro.md, config/i860/i860.c,
4009         config/i860/i860.h, config/m32r/m32r.h, config/m32r/xm-m32r.h,
4010         config/m68hc11/m68hc11.h, config/m68hc11/m68hc11.md,
4011         config/mips/mips.c, config/mmix/mmix.c, config/ns32k/ns32k.h,
4012         config/pa/pa.c, config/pa/pa32-regs.h, config/pa/pa64-regs.h,
4013         config/pdp11/pdp11.h, config/rs6000/rs6000.c,
4014         config/stormy16/stormy16.c: Fix comment typos and formatting.
4015
4016 2004-03-11  Nathanael Nerode  <neroden@gcc.gnu.org>
4017
4018         * configure: Regenerate, since I forgot to while committing Paolo's
4019         changes.
4020
4021 2004-03-08  Paolo Bonzini  <bonzini@gnu.org>
4022
4023         PR ada/14131
4024         Move language detection to the top level.
4025         * configure.ac: Remove code to detect languages,
4026         it now lives exclusively in the top level.
4027         * aclocal.m4 (gcc_AC_PROG_GNAT): Moved to the
4028         top level, renamed to ACX_PROG_GNAT.
4029<