OSDN Git Service

* doc/invoke.texi (Directory Options): Document -iquote.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2004-05-3  Mike Stump  <mrs@apple.com>
2
3         * doc/invoke.texi (Directory Options): Document -iquote.
4         * doc/cpp.texi: Likewise.
5         * doc/cppopts.texi: Likewise.
6         * c-opts.c (c_common_missing_argument): Add -iquote processing.
7         (c_common_handle_option): Likewise.
8         * c.opt (iquote): Add.
9         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add -iquote.
10         * c-incpath.c (merge_include_chains): Update comment to use -iquote.
11
12         * c-opts.c (case OPT_I): Deprecate -I- support.
13         * doc/invoke.texi: Likewise.
14         * doc/cpp.texi: Likewise.
15         * doc/cppopts.texi: Likewise.
16
17 2004-05-05  Steven Bosscher  <stevenb@suse.de>
18
19         * basic-block.h (free_basic_block_vars): Update prototype.
20         * flow.c (free_basic_block_vars): Remove the keep_head_end_p
21         argument.
22         (life_analysis): Update call.
23         * ifcvt.c (if_convert): Likewise.
24         * sibcall.c (optimize_sibling_and_tail_recursive_call): Likewise.
25         * passes.c (rest_of_handle_final): Likewise.
26         (rest_of_compilation): Likewise.
27         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
28
29         * emit-rtl.c (next_real_insn): Use INSN_P.
30         (prev_real_insn): Likewise.
31
32 2004-05-05  Eric Christopher  <echristo@redhat.com>
33
34         * config/mips/mips.md: Update the madd define_split for new mflo/mfhi
35         representation.
36
37 2004-05-05  Paolo Bonzini  <bonzini@gnu.org>
38
39         * config/rs6000/rs6000.c (build_opaque_vector_type):
40         New function.
41         (rs6000_init_builtins): Use it.
42
43 2004-05-04  Bernard Giroud  <bgiroud2@free.fr>
44
45         * gcc/gcc/vmsdbgout.c (vms_func_node, vms_func_ref): New.
46         (func_table): Change type from char ** to vms_func_ref.
47         (write_rtnbeg):  Update to reflect func_table change.  Use
48         fde->funcdef_number instead of rtnnum in output.
49         (write_rtnend, vmxdbgout_begin_function, vmsdbgout_init): Likewise.
50
51 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
52             Richard Henderson  <rth@redhat.com>
53
54         PR target/14899
55
56         * c-common.c (vector_types_convertible_p): New function.
57         * c-typeck.c (comptypes): Recurse on vector types.
58         (convert_for_assignment): Use vector_types_convertible_p.
59         (digest_init): Use vector_types_convertible_p to check
60         validness of constant vector initializers; otherwise treat
61         them as scalars.
62         * tree.c (make_or_reuse_type): New.
63         (build_common_tree_nodes): Use it.
64         * cp/call.c (standard_conversion): Likewise.
65         * cp/typeck.c (comptypes): Recurse on vector types.
66         (convert_for_assignment): Use vector_types_convertible_p.
67
68 2004-05-04  Chris Demetriou  <cgd@broadcom.com>
69
70         * config/mips/mips.c (override_options): Default to no
71         generation of branch-likely operations when tuning for
72         CPUs where they tend to have a negative performance impact
73         (e.g., SB-1).
74
75 2004-05-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
76
77         * expr.c (store_constructor_field): Don't call store_constructor
78         if bitsize is not a multiple of a byte.
79
80 2004-05-04  Richard Sandiford  <rsandifo@redhat.com>
81
82         * reload1.c (inherit_piecemeal_p): New function.
83         (emit_reload_insns): When reloading a group of hard registers, use
84         inherit_piecemeal_p to decide whether the values of individual hard
85         registers can be inherited.
86
87 2004-05-04  H.J. Lu  <hongjiu.lu@intel.com>
88
89         * config/ia64/t-ia64 (LIB2ADDEH): Remove gthr-gnat.c.
90         * config/s390/t-tpf (LIB2ADDEHDEP): Likewise.
91         * config/t-linux (LIB2ADDEHDEP): Likewise.
92
93 2004-05-04  Paul Brook  <paul@codesourcery.com>
94
95         * config/arm/crti.asm: Push an even number of registers.
96         * config/arm/crtn.asm: And restore them.  Load via sp.
97
98 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
99
100         * ggc-zone.c (ggc_alloc_zone_1): Add MEM_STAT_DECL parameter.
101         Collect overhead information.
102         (ggc_alloc_stat): New name of ggc_alloc.  Add MEM_STAT_DECL
103         parameter and pass it through.
104         (ggc_alloc_typed_stat): New name of ggc_alloc_typed.  Add
105         MEM_STAT_DECL parameter and pass it through.
106         (ggc_alloc_zone_stat): New name of ggc_alloc_zone.  Add
107         MEM_STAT_DECL parameter and pass it through.
108
109 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
110
111         * config/rs6000/rs6000-protos.h: Protoize rs6000_hard_regno_nregs.
112
113         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs): New.
114
115         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Call
116         rs6000_hard_regno_nregs.
117
118 2004-05-03  Eric Christopher  <echristo@redhat.com>
119
120         * config/s390/s390.c (s390_emit_prologue): Call unspec tpf
121         prologue insn instead of setting up call.
122         (s390_emit_epilogue): Ditto.
123         * config/s390/s390.md (prologue_tpf, epilogue_tpf): New patterns.
124         (define_constants): Add numbers for above patterns.
125
126 2004-05-03  Eric Christopher  <echristo@redhat.com>
127
128         * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Move body...
129         * config/s390/s390.c (s390_conditional_register_usage): ...here.
130         * config/s390/s390-protos.h: Prototype.
131
132 2004-05-03  Joe Buck <jbuck@welsh-buck.org>
133
134         * cppfiles.c (pchf_adder): Eliminate use of |= in d->have_once_only
135         assignment.
136
137 2004-05-03  Eric Christopher  <echristo@redhat.com>
138
139         * config/mips/mips.md: Fix branch length attribute definition.
140
141 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
142
143         * config.gcc: Remove --enable-altivec support.
144
145         * config/rs6000/altivec-defs.h: Remove.
146
147 2004-05-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
148
149         * fixinc/inclhack.def (svr4_profil): Don't apply on IRIX 5/6.
150         * fixinc/fixincl.x: Regenerate.
151
152 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
153
154         * config/i386/i386.md (*fyl2x_sfxf3, *fyl2x_dfxf3): Remove insn
155         definition.
156         (log?f2, log10?f2, log2?f2): Reimplement expanders with
157         float_truncate insn.
158         (*fxtractsf3, *fxtractdf3): Remove insn definition.
159         (logb?f2): Reimplement expanders with float_truncate insn.
160
161 2004-05-03  Graham Stott  <graham.stott@btinternet.com>
162
163         PR 14718
164         * dwarf2out.c (dwarf2out_imported_module_or_decl): Use
165         force_type_die for CONST_DECL.
166
167 2004-05-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
168             Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
169
170         * config.gcc (sparc64-*-solaris2*, sparcv9-*-solaris2*): Add
171         tm-dwarf2.h to tm_file.
172         (sparc-*-solaris2*): Add tm-dwarf2.h to tm_file for Solaris 7+.
173         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Delete.
174         (ASM_DEBUG_SPEC): Delete.
175
176 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
177
178         * optabs.h (enum optab_index): Add new OTI_expm1.
179         (expm1_optab): Define corresponding macro.
180         * optabs.c (init_optabs): Initialize expm1_optab.
181         * genopinit.c (optabs): Implement expm1_optab using expm1?f2
182         patterns.
183         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXPM1{,F,L}
184         using expm1_optab.
185         (expand_builtin): Expand BUILT_IN_EXPM1{,F,L} using
186         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
187
188         * config/i386/i386.md (expm1df2, expm1sf2, expm1xf2): New expanders
189         to implement expm1, expm1f and expm1l built-ins as inline x87
190         intrinsics.
191
192 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
193
194         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
195         * config/frv/frv.md (*return_true, *return_false): New patterns.
196
197 2004-05-02  Kazu Hirata  <kazu@cs.umass.edu>
198
199         * rtl.h (PHI_NODE_P): Remove.
200
201 2004-05-02  Eric Botcazou  <ebotcazou@act-europe.fr>
202
203         PR middle-end/14988
204         * function.c (assign_stack_local_1): Use BITS_PER_UNIT alignment
205         when passed -2 as 'align'.
206         (put_var_into_stack): Use 'bool' as the type for the three local
207         predicates.  Adjust calls to put_reg_into_stack.
208         When passed a CONCAT, instruct put_reg_into_stack to use
209         a consecutive stack slot for the second part.
210         (put_reg_into_stack): Remove 'promoted_mode' parameter, add
211         'consecutive_p' parameter.  Turn the three predicates into 'bool'
212         parameters.  Retrieve the register mode from 'reg'.
213         When consecutive_p is true, instruct assign_stack_local_1 to use
214         BITS_PER_UNIT alignment.
215         (put_addressof_into_stack): Use 'bool' as the type for the two
216         local predicates. Adjust call to put_reg_into_stack.
217
218 2004-05-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
219
220         * fold-const.c (fold_convert_const, fold): Add missing
221         FIX_ROUND_EXPR case.
222
223 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
224
225         * configure.ac (FLEX, BISON): Only use tools from the build tree
226         if build equals host.
227         * configure: Rebuilt.
228
229         * config/frv/frv-protos.h (frv_expand_epilogue,
230         frv_expand_fdpic_call): Add bool argument.
231         * config/frv/frv.c (frv_function_ok_for_sibcall): New.
232         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to it.
233         (frv_expand_epilogue): Use new argument to decide whether to emit
234         return instruction or copy the return address to LR.
235         (frv_expand_fdpic_call): Inline PLT entry when emitting direct
236         sibcalls.
237         (sibcall_operand): New.
238         * config/frv/frv.h (PREDICATE_CODES): call_operand doesn't match
239         PLUS nor LABEL_REF.  Add sibcall_operand.
240         * config/frv/frv.md (call, call_value): Pass false to
241         frv_expand_fdpic_call.
242         (call_fdpicdi, call_value_fdpicdi): Insert %i0 in calll.
243         (sibcall, sibcall_internal, sibcall_fdpicdi, sibcall_value,
244         sibcall_value_internal, sibcall_value_fdpicdi): New.
245         (return_unsigned_true, return_unsigned_false): New.
246         (epilogue): Adjust call to frv_expand_epilogue.
247         (sibcall_epilogue): New.
248
249         * config/frv/frv.h (ASM_SPEC): Pass -mno-fdpic as -mnopic.
250         (CPP_SPEC, CPP_SIMPLE_SPEC): Undefine __FRV_ACC__ and __FRV_FPR__
251         before redefining them.
252
253 2004-05-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
254
255         * builtins.c (fold_fixed_mathfn): New function.
256         (fold_builtin_lround, fold_builtin): Use it.
257
258 2004-05-01  Jakub Jelinek  <jakub@redhat.com>
259
260         * config/sparc/linux64.h (TARGET_DEFAULT): Make 64-bit by default
261         also for TARGET_CPU_DEFAULT == TARGET_CPU_ultrasparc3.
262
263 2004-05-01  Kazu Hirata  <kazu@cs.umass.edu>
264
265         * config/cris/cris.h: Revert my "fix comment typos" patch.
266
267 2004-05-01  Richard Sandiford  <rsandifo@redhat.com>
268
269         * config/mips/mips.h (TUNE_MACC_CHAINS): Fix comment.
270
271 2004-05-01  Falk Hueffner  <falk@debian.org>
272
273         * config/alpha/alpha.md (builtin_insbl, builtin_inswl,
274         builtin_insll): Disallow 0 as first input operand.
275
276 2004-05-01  Falk Hueffner  <falk@debian.org>
277
278         * config/alpha/alpha.c (alpha_rtx_costs): Fix shiftadd costs.
279
280 2004-05-01  Ulrich Weigand  <uweigand@de.ibm.com>
281
282         PR middle-end/15054
283         * expr.c (expand_expr_real): Do not call preserve_temp_slots
284         on a TARGET_EXPR temp.
285         * function.c (assign_stack_temp_for_type): Set 'keep' flag for
286         TARGET_EXPR temp slots.
287
288 2004-05-01  Paolo Bonzini  <bonzini@gnu.org>
289
290         * simplify-rtx.c (simplify_ternary_operation): When
291         converting an IF_THEN_ELSE to a relational op, return
292         correct mode.
293
294 2004-04-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
295
296         * builtins.c (fold_builtin_round): Fix comment typo.
297         (fold_builtin_lround): New function.
298         (fold_builtin): Use it.
299
300 2004-04-20  Andrew Pinski  <pinskia@physics.uc.edu>
301
302         PR target/11608
303         * config/sh/elf.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Update and make it
304         more like the one in config/dbxelf.h.
305
306 2004-04-30  Zack Weinberg  <zack@codesourcery.com>
307
308         * tree.h (SET_ARRAY_OR_VECTOR_CHECK): Rename to SET_OR_ARRAY_CHECK
309         and adjust definition accordingly.
310         (TYPE_DOMAIN): Allow only SET_TYPE and ARRAY_TYPE.
311         (TYPE_DEBUG_REPRESENTATION_TYPE): Allow only VECTOR_TYPE.
312         * expr.c (store_constructor): Do not access TYPE_DOMAIN of a
313         VECTOR_TYPE.
314
315 2004-04-30  Jason Merrill  <jason@redhat.com>
316
317         PR c++/14587
318         * config/i386/winnt.c (associated_type): Look for attributes on
319         the TYPE_MAIN_VARIANT of *this.
320         * attribs.c (decl_attributes): If ATTR_FLAG_TYPE_IN_PLACE, also
321         apply the attributes to the variants.
322
323 2004-04-30  Paul Brook  <paul@codesourcery.com>
324
325         * config.gcc: Simplify arm --with-{cpu,tune} test.
326         * config/arm/arm-cores.def: Document whitespace restrictions.
327
328 2004-04-30  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
329
330         PR other/1963
331         * config/alpha/osf.h (SWITCHES_NEED_SPACES): Define.
332
333 2004-04-30  Brian Ford  <ford@vss.fsi.com>
334             DJ Delorie  <dj@redhat.com>
335
336         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
337         (DWARF2_DEBUGGING_INFO): Define to enable.
338         (DBX_REGISTER_NUMBER): Define to use the svr4 register map for
339         DWARF2.
340         * configure.ac (Target-specific assembler checks)
341         <i[34567]86-*-[cygwin*|pe|mingw32*]>: New test for .secrel32
342         relocs.
343         * configure: Regenerate.
344         * config.in: Likewise.
345
346         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
347         (ASM_OUPUT_DWARF_OFFSET): Define.
348
349 2004-04-29  Andreas Krebbel  <krebbel1@de.ibm.com>
350
351         * config/s390/s390-protos.h (s390_emit_epilogue): Parameter added.
352         (s390_emit_call): New function prototype added.
353         (s390_tls_get_offset): Function removed.
354         * config/s390/s390.c (s390_function_ok_for_sibcall,
355         s390_call_saved_register_used_p): New functions.
356         (TARGET_FUNCTION_OK_FOR_SIBCALL): Definition of target macro added.
357         (s390_tls_get_offset): Function merged into s390_emit_tls_call_insn.
358         (s390_emit_tls_call_insn): New function.
359         (legitimize_tls_address): Call s390_emit_tls_call_insn instead of
360         emit_call_insn.
361         (s390_emit_prologue): Use s390_emit_call instead of emit_call_insn.
362         (s390_emit_epilogue): Like s390_emit_prologue. Parameter for sibcalls
363         added.
364         * config/s390/s390.h (SIBCALL_REGNUM): New macro representing the
365         register number used to hold the target address for sibcalls.
366         * config/s390/s390.md ("sibcall", "sibcall_value", "sibcall_epilogue"):
367         New expanders.
368         ("*sibcall_br", "*sibcall_brc", "*sibcall_brcl", "*sibcall_value_br",
369         "*sibcall_value_brc", "*sibcall_value_brcl"): New insns.
370         ("call_exp", "call_value_exp", "call_value_tls", "call_value_tls_exp"):
371         Expanders removed.
372         ("call", "call_value"): Call s390_emit_call to emit the call patterns.
373         ("*bras", "*brasl", "*bras_r", "*brasl_r", "*bras_tls", "*brasl_tls",
374         "*basr", "*basr_r", "*basr_tls"): Added constraint: !SIBLING_CALL_P.
375         ("epilogue"): Changed the call to s390_emit_epilogue to use the
376         new parameter.
377
378 2004-04-30  Kazu Hirata  <kazu@cs.umass.edu>
379
380         * bb-reorder.c, c-opts.c, cfglayout.c, cgraph.c, cgraphunit.c,
381         cppfiles.c, fold-const.c, ggc-zone.c, loop-doloop.c, optabs.c,
382         reg-stack.c, varasm.c, config/alpha/ev4.md,
383         config/alpha/ev5.md, config/alpha/ev6.md, config/arm/arm.c,
384         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.c,
385         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
386         config/frv/frv.h, config/frv/frv.md, config/h8300/h8300.c,
387         config/i386/i386.c, config/i386/i386.md, config/i386/winnt.c,
388         config/ia64/itanium2.md, config/ip2k/ip2k.c,
389         config/mips/mips.c, config/mips/mips.h, config/mips/sr71k.md,
390         config/pa/pa.c, config/s390/s390.c, config/sh/sh.c: Fix
391         comment typos.
392
393 2004-04-30  Paul Brook  <paul@codesourcery.com>
394
395         * config.gcc: Default ep9312 to hard-float.
396         * config/arm/arm-cores.def: Add ARCH field.
397         * config/arm/arm.c (FL_FOR_ARCH*): Define.
398         (arm_arch_cirrus): New variable.
399         (all_cores): Set and use arch.
400         (all_architectures): Ditto.
401         (arm_arch_name): New variable.
402         (arm_override_options): Set it. Use [SUB]TARGET_CPU_DEFAULT.
403         Set and use arm_arch_cirrus.
404         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set arch defines.
405         (enum processor_type): Update ARM_CORE define.
406         (enum target_cpus): Add.  Replaces TARGET_CPU_* defines.
407         (CPP_SPEC): Remove %(cpp_cpu_arch).
408         (CPP_ARCH_DEFAULT_SPEC): Remove.
409         (CPP_CPU_ARCH_SPEC): Remove.
410         (EXTRA_SPECS): Don't use CPP_*ARCH*_SPEC.
411         (FPUTYPE_DEFAULT): Don't define here.
412
413 2004-04-30  J"orn Rennecke <joern.rennecke@superh.com>
414
415         * flow.c (propagate_one_insn): Call mark_set_regs for stack pointer
416         updates too.
417
418 2004-04-30  Paul Brook  <paul@codesourcery.com>
419
420         * arm.c (arm_needs_doubleword_align): Use mode alignment.
421
422 2004-04-30  Paolo Bonzini  <bonzini@gnu.org>
423
424         * config/altivec/altivec.h [__cplusplus] (vec_subsubs): Rename to
425         vec_sububs.
426         [__cplusplus] (vec_subsuhs): Rename to vec_subuhs, without
427         duplicates.
428
429 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
430
431         * config/i386/i386.md (atansf2, atandf2, atanxf2): Move near
432         atan2?f3 expanders.
433
434 2004-04-29  Nick Clifton  <nickc@redhat.com>
435
436         Bug 14093
437         * config/sh/sh-protos.h (sh_promote_prototypes): Declare.
438         * config/sh/sh.c (sh_promote_prototypes): Remove declaration.
439         Delete static from definition.
440         * config/sh/sh.h (FUNCTION_VALUE): Add sh_promote_prototypes call.
441
442 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
443
444         * reg-stack.c (subst_stack_regs_pat): <UNSPEC_SIN, UNSPEC_COS,
445         UNSPEC_FRNDINT, UNSPEC_F2XM1>: abort() if src1 dies.
446         <UNSPEC_SINCOS_COS, UNSPEC_TAN_ONE, UNSPEC_XTRACT_FRACT>: Same.
447         <UNSPEC_SINCOS_SIN, UNSPEC_TAN_TAN, UNSPEC_XTRACT_EXP>: Same.
448
449 2004-04-29  Richard Guenther  <richard.guenther@uni-tuebingen.de>
450
451         * commom.opt (Wfatal-errors): Add it.
452         * diagnostic.c (flag_fatal_errors): Define it.
453         (diagnostic_action_after_output): Check for flag_fatal_errors.
454         * flags.h (flag_fatal_errors): Declare it.
455         * opts.c (common_handle_option): Add OPT_Wfatal_errors.
456         * doc/invoke.texi (Warning Options): Document -Wfatal-errors.
457
458 2004-04-30  Josef Zlomek  <zlomekj@suse.cz>
459
460         * gcse.c (remove_reachable_equiv_notes): Delete notes also in
461         blocks which have kill flag set.
462
463 2004-04-29  Ben Elliston  <bje@au.ibm.com>
464
465         * configure.ac (--with-as): Abort if user-supplied assembler
466         cannot be executed.
467         (--with-ld): Likewise for the linker.
468         * configure: Regenerate.
469
470 2004-04-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
471
472         * convert.c (convert_to_integer): Ensure `long_integer_type_node'
473         isn't NULL before using it.
474
475 2004-04-29  Richard Sandiford  <rsandifo@redhat.com>
476
477         PR target/15189
478         * config/mips/mips.md (load_df_low): Use default length.
479         (load_df_high, store_df_high): Likewise.
480
481 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
482
483         * config/mips/mips.md, config/mips/sb1.md,
484         config/rs6000/rs6000.c: Fix comment typos.
485
486 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
487
488         * builtins.c, cgraph.c, cgraphunit.c, final.c, fold-const.c:
489         Fix comment typos.
490
491 2004-04-29  Douglas B Rupp  <rupp@gnat.com>
492
493         * gcc.c (DELETE_IF_ORDINARY): New macro default definition.
494         (delete_if_ordinary): Use above macro.
495         * config/alpha/xm-vms.h (DELETE_IF_ORDINARY): New macro VMS definition.
496         Update copyright.
497         * doc/hostconfig.texi (DELETE_IF_ORDINARY): Document new macro.
498
499 2004-04-29  Richard Earnshaw  <rearnsha@arm.com>
500
501         * c-decl.c (get_parm_info): Use the correct tag keywords when
502         warning about type declarations in prototypes.
503
504 2004-04-29  Paul Brook  <paul@codesourcery.com>
505
506         * config.gcc: Pull list of cores from arm-cores.def.
507
508 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
509
510         * combine.c (combine_simplify_rtx): Adjust call to use
511         simplify_relational_operation.  Do not use SELECT_CC_MODE
512         when a comparison already has a MODE_CC mode.
513
514 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
515
516         (simplify_set): simplify_relational_operation may now
517         return another relational expression.
518         * cse.c (fold_rtx): simplify_relational_operation now
519         takes of computing the comparison mode.
520         * dojump.c (compare_from_rtx): Use simplify_relational_operation,
521         remove dead code.
522         (do_compare_rtx_and_jump): Likewise.
523         * integrate.c (subst_constants): simplify_relational_operation
524         may now return another relational expression.
525         * simplify-rtx.c (simplify_gen_relational): Move most code to
526         the new simplify_relational_operation and
527         simplify_relational_operation_1 functions.
528         (simplify_relational_operation): Rewritten.
529         (simplify_relational_operation_1): New function.
530         (simplify_ternary_operation): simplify_relational_operation
531         may now return another relational expression.
532         (simplify_rtx): Remove unnecessary temp variable.
533
534 2004-04-29  Uros Bizjak  <uros@kss-loka.si>
535
536         * reg-stack.c (swap_to_top): New function.
537         (subst_stack_regs_pat): UNSPEC_FPATAN, UNSPEC_FYL2X: Use
538         swap_to_top().
539         (subst_stack_regs_pat): UNSPEC_FSCALE: Remove.
540         (subst_stack_regs_pat): Handle UNSPEC_FSCALE_FRACT and
541         UNSPEC_FSCALE_EXP.
542
543         * config/i386/i386.md (UNSPEC_FSCALE): Remove.
544         (*fscale_sfxf3, *fscale_dfxf3, *fscale_xf3): Remove insn pattern.
545         (UNSPEC_FSCALE_FRACT, UNSPEC_FSCALE_EXP): New unspecs to represent
546         x87's fscale insn.
547         (*fscalexf4: Define new insn pattern to implement x87 fscale insn.
548         (exp?f2, exp10?f2, exp2?f2): Use *fscalexf4 and float_truncate
549         patterns.
550
551 2004-04-28  Serge Belyshev  <1319@bot.ru>
552
553         PR 14944
554         * coverage.c (read_counts_file): Fix usage of warning () call.
555         * pretty-print.c (pp_base_format_text): Fix typo in the comment.
556
557 2004-04-28  Ben Elliston  <bje@au.ibm.com>
558
559         * doc/invoke.texi (Objective-C Dialect Options): Don't prefix
560         options with "-" in the option index.
561         (SPARC Options): Likewise.
562         (M32R/D Options): Likewise.
563
564 2004-04-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
565
566         * convert.c (convert_to_integer): Convert (long)round -> lround,
567         etc.
568
569 2004-04-28  Andrew Pinski  <pinskia@physics.uc.edu>
570
571         * config/rs6000/rs6000.c (registers_ok_for_quad_peep):
572         Return false if we do not have fp register.
573         (addrs_ok_for_quad_peep): Rename to ...
574         (mems_ok_for_quad_peep): this.
575         Add check for volatile memory.
576         * config/rs6000/rs6000-protos.h (addrs_ok_for_quad_peep):
577         Rename to ...
578         (mems_ok_for_quad_peep): this.
579         * config/rs6000/rs6000.md: Change peephole's for lfq/stq
580         to peephole2's.
581         (lfq_power2): New instruction.
582         (stfq_power2): Likewise.
583
584 2004-04-28  Jan Hubicka  <jh@suse.cz>
585
586         PR c/15004
587         * function.c (do_warn_unused_parameter): Break out form ...
588         (expand_function_end): ... here; warn only when not using cgraphunit.
589         * function.h (do_warn_unused_parameter): Declare.
590         * cgraphunit.c: Include function.h.
591         (cgraph_finalize_function): Do unused parameter warning.
592         * Makefile.in (cgraphunit.o): Depend on function.h
593
594 2004-04-28  Joseph S. Myers  <jsm@polyomino.org.uk>
595
596         * Makefile.in ($(DESTDIR)$(infodir)/%.info): Don't condition
597         calling install-info on $(DESTDIR)$(infodir)/dir already being
598         present.
599
600 2004-04-28  Paul Brook  <paul@codesourcery.com>
601
602         * dwarf2out.c (mem_loc_descriptor): Handle shifts.
603
604 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
605
606         * gcse.c (find_moveable_store): Do not accept store insns with
607         REG_EH_REGION note.
608
609 2004-04-28  Paul Brook  <paul@codesourcery.com>
610
611         * calls.c (precompute_arguments): Remove PROMOTE_FOR_CALL_ONLY.
612         * function.c (assign_temp): Ditto.
613         * system.h (PROMOTE_FOR_CALL_ONLY): Poison.
614
615 2004-04-28  Paul Brook  <paul@codesourcery.com>
616
617         * config/arm/lib1funcs.asm: Recognize armv5tej and armv6.
618
619 2004-04-28  Josef Zlomek  <zlomekj@suse.cz>
620
621         * var-tracking.c (variable_different_p): Add a parameter
622         compare_current_location, compare current location of variable parts
623         if it is true.
624         (dataflow_set_different_1): Pass compare_current_location == false.
625         (dataflow_set_different_2): Pass compare_current_location == false.
626         (emit_notes_for_differences_1): Pass compare_current_location == true.
627
628 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
629
630         * config/s390/s390.md ("casesi"): Mark jump table access as
631         non-trapping and unchanging.
632
633 2004-04-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
634
635         PR debug/14829
636         * dwarf2out.c (reg_number): Rename to dbx_reg_number.  Adjust all
637         callers.
638         (multiple_reg_loc_descriptor, reg_loc_descriptor): Use gcc register
639         number for indexing hard_regno_nregs array.
640
641 2004-04-27  Geoffrey Keating  <geoffk@apple.com>
642
643         * config/darwin.h (STARTFILE_SPEC): Use %s to find crt2.o.
644         * config/darwin-crt2.c: Only have contents on __ppc__.
645
646 2004-04-27  Bob Wilson  <bob.wilson@acm.org>
647
648         * config/xtensa/xtensa.c (call_insn_operand): Check
649         SYMBOL_REF_EXTERNAL_P in addition to SYMBOL_REF_LOCAL_P.
650         * config/xtensa/xtensa.h (LEGITIMATE_PIC_OPERAND): Likewise.
651         * config/xtensa/xtensa.md (call, call_value): Likewise.
652
653 2004-04-27  Wu Yongwei  <adah@sh163.net>
654
655         * gthr-win32.h (__gthread_mutex_t): Change typedef to new structure.
656         (__GTHREAD_MUTEX_INIT_DEFAULT): Adjust.
657         (__gthread_mutex_init_function): Replace CreateMutex with
658         initialization of custom mutex using CreateSemaphore.
659         (__gthread_mutex_lock): Use InterlockedIncrement.
660         (__gthread_mutex_trylock): Use InterlockedCompareExchange.
661         (__gthread_mutex_unlock): Use InterlockedDecrement and
662         ReleaseSemaphore to unlock
663         * config/i386/gthr-win32.c (__gthread_mutex_init_function,
664         __gthread_mutex_lock, __gthread_mutex_trylock,
665         __gthread_mutex_unlock): Adjust to match inline versions in
666         gthr-win32.h.
667
668 2004-04-27  Paul Brook  <paul@codesourcery.com>
669
670         * config/arm/arm.c (arm_promote_prototypes): New function.
671         (TARGET_PROMOTE_PROTOTYPES): Use it.
672
673 2004-04-27  Paul Brook  <paul@codesourcery.com>
674
675         * config/arm/arm.c (arm_expand_epilogue): Count blocks of 4 regs.
676
677 2004-04-26  Bernard Giroud  <bgiroud@free.fr>
678
679         * config/alpha.c (alpha_end_function): For OpenVMS gas,
680         correctly output .pdesc directive before .end.
681
682 2004-04-26  James E Wilson  <wilson@specifixinc.com>
683
684         Bug 14927
685         * config/ia64/ia64.md (movxf): New local op0.  Handle case where
686         operands[0] is a SUBREG.  Handle case where operands[1] is a GR reg.
687
688 2004-04-26  Zack Weinberg  <zack@codesourcery.com>
689
690         * config/ia64/hpux.h: Predefine __STDCPP__ when compiling C++.
691         * config/pa/pa-hpux10.h: Likewise.
692         * config/pa/pa-hpux11.h: Likewise.
693
694 2004-04-26  Geoffrey Keating  <geoffk@apple.com>
695
696         * doc/invoke.texi (Overall Options): Document default for -o
697         for PCH files.
698
699 2004-04-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
700
701         * builtins.c (expand_builtin_update_setjmp_buf): New function.
702         (expand_builtin, case BUILT_IN_UPDATE_SETJMP_BUF): New case.
703         * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): New code.
704
705 2004-04-26  Paul Brook  <paul@codesourcery.com>
706
707         * config/arm/arm.c (arm_legitimate_index_p): Correct iwmmxt offsets.
708
709 2004-04-26  Paul Brook  <paul@codesourcery.com>
710
711         * config/arm/arm.c (arm_legitimate_index_p): Correct maverick offsets.
712
713 2004-04-25  Roger Sayle  <roger@eyesopen.com>
714
715         * fold-const.c (fold): Prefer fold_convert (negate_expr (...)) to
716         fold (build1 (NEGATE_EXPR, ...)).  Optimize X / -1 as -X and
717         X % -1 as 0.
718
719 2004-04-26  Hans-Peter Nilsson  <hp@bitrange.com>
720
721         PR bootstrap/15141
722         * except.c (connect_post_landing_pads): Delete insns after the
723         barrier when generating a unwind_resume_libfunc call.
724
725 2004-04-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
726
727         PR/c++ 15119
728         * tree.c (substitute_placeholder_in_expr, case 4): New case,
729         for TARGET_EXPR.
730
731 2004-04-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
732
733         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
734         __gcov_execv, __gcov_execvp, __gcov_execve): Do not declare when
735         inhibit_libc is defined.
736
737 2004-04-25  Richard Sandiford  <rsandifo@redhat.com>
738
739         * config/mips/mips-protos.h (mips_linked_macc_p): Declare.
740         * config/mips/mips.h (TUNE_MACC_CHAINS): New macro.
741         * config/mips/mips.c (TARGET_SCHED_REORDER): Define.
742         (TARGET_SCHED_VARIABLE_ISSUE): Define.
743         (mips_adjust_cost): Move later in file, next to other sched hooks.
744         (mips_macc_chains_last_hilo): New variable.
745         (mips_linked_madd_p, mips_macc_chains_record, mips_macc_chains_reorder)
746         (mips_promote_ready, mips_sched_reorder, mips_variable_issue): New.
747         * config/mips/mips.md (may_clobber_hilo): New attribute.
748
749 2004-04-24  Roger Sayle  <roger@eyesopen.com>
750             Bruce Korb  <bkorb@gnu.org>
751
752         * fixinc/inclhack.def (aix_syswait_2): New fix.
753         * fixinc/fixincl.x: Regenerate.
754         * fixinc/tests/base/sys/wait.h: Update for new test.
755
756 2004-04-24  Alan Modra  <amodra@bigpond.net.au>
757
758         PR target/14960
759         * config/rs6000/rs6000.c (rs6000_stack_info): Rename total_raw_size
760         to non_fixed_size, and leave out fixed_size from the sum.
761         (generate_set_vrsave): Correct clobbers.
762         (rs6000_emit_epilogue): Test TARGET_ALTIVEC with TARGET_ALTIVEC_SAVE.
763         (rs6000_function_value): Test TARGET_ALTIVEC and TARGET_ALTIVEC_ABI.
764         (rs6000_libcall_value): Likewise.
765         * config/rs6000/rs6000.h (FUNCTION_VALUE_REGNO_P): Likewise.
766         (FUNCTION_ARG_REGNO_P): Likewise.
767
768 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
769
770         * expmed.c (expand_mult_highpart_adjust): Do not assume OP1
771         is a CONST_INT.
772         (expand_mult_highpart_optab): Call expand_mult_highpart_adjust
773         with NARROW_OP1 instead of OP1.
774
775 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
776
777         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __s390__
778         and __s390x__ hosts.
779
780 2004-03-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
781
782         * Makefile.in (LIBGCOV): Add _gcov_fork, _gcov_execl, _gcov_execlp,
783         _gcov_execle, _gcov_execv, _gcov_execvp, _gcov_execve.
784         * builtin-types.def (BT_PID, BT_PTR_CONST_STRING, BT_FN_PID,
785         BT_FN_INT_CONST_STRING_PTR_CONST_STRING,
786         BT_FN_INT_CONST_STRING_PTR_CONST_STRING_PTR_CONST_STRING): New.
787         * builtins.c (expand_builtin_fork_or_exec): New.
788         (expand_builtin): Call it.
789         * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP,BUILT_IN_EXECLE,
790         BUILT_IN_EXECV, BUILT_IN_EXECVP, BUILT_IN_EXECVE, BUILT_IN_FORK): New.
791         * c-common.c (PID_TYPE): New macro.
792         (c_common_nodes_and_builtins): Initialize pid_type_node.
793         * calls.c (special_function_p): Do not handle fork and exec.
794         (expand_call): Do not handle ECF_FORK_OR_EXEC.
795         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
796         __gcov_execv, __gcov_execvp, __gcov_execve): Declare.
797         * libgcov.c (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
798         __gcov_execv, __gcov_execvp, __gcov_execve): New.
799         * tree.h (enum tree_index): Add TI_PID_TYPE.
800         (pid_type_node): New macro.
801         (ECF_FORK_OR_EXEC): Removed.
802
803 2004-04-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
804
805         PR optimization/13985
806         * cfgloopmanip.c (fix_loop_placements): New prototype.
807         Call fix_bb_placements on the preheader of loops that have
808         been reparented.
809         (remove_path): Adjust call to fix_loop_placements.
810
811 2004-04-23  Andrew Pinski  <pinskia@physics.uc.edu>
812
813         * config/darwin7.h: New file.
814         * config.gcc (*-*-darwin*): Add darwin7.h if the
815         version is greater than 6.
816         * config/darwin.h (TARGET_C99_FUNCTIONS): Define.
817         (MATH_LIBRARY): Wrap in ifdefs.
818
819 2004-04-23  Daniel Jacobowitz  <drow@mvista.com>
820
821         * config/arm/arm.c (arm_output_epilogue): Reverse the order of
822         loading iWMMXt registers with a frame pointer.  Use post-increment
823         without a frame pointer.
824         (arm_expand_prologue): Reverse the order of saving iWMMXt registers.
825
826 2004-04-23  Paolo Bonzini  <bonzini@gnu.org>
827
828         * doc/invoke.texi (Optimize Options): Refer to "unit-at-a-time
829         mode" rather than "-funit-at-a-time" since -O2 enables it
830         without requiring -f* options.  Refer to -fprofile-generate and
831         -fprofile-use correctly.  Move -funit-at-a-time among options
832         enabled by -O.  Add information about unit-at-a-time caveats.
833
834 2004-04-22  Per Bothner  <per@bothner.com>
835
836         * line-map.h (struct line_maps):  New field highest_line.
837         (linemap_position_for_column):  Make non-inline function.
838         (LINEMAP_POSITION_FOR_COLUMN):  New macro.
839         * line-map.c (linemap_init):  Clear highest_line field.
840         (linemap_add):  Set highest_line field.
841         (linemap_line_start):  Minor optimization - use highest_line field.
842         Reduce maximum column hint to 10000.  Update highest_line field.
843         (linemap_position_for_column):  Moved from line-map.h.  Optimize a bit.
844         * cpphash.h (struct cpp_reader):  Remove line field - instead use
845         line_table->highest_line.
846         (saved_line):  Remove unused field.
847         (CPP_INCREMENT_FILE):  Don't do linemap_lookup - just use newest map.
848         Use  line_table's highest_line field instead of cpp_reader's line.
849         * cpplib.c (start_directive):  Likewise use highest_line field.
850         (do_line, do_linemarker):  Likewise just use newest map.
851         (_cpp_do_file_change):  Don't need to set cpp_reader's line field.
852         * cpperror.c (cpp_error):  Likewise use highest_line field.
853         * cppfiles.c (open_file_failed:  Likewise.
854         (cpp_make_system_header):  Likewise use newest map and highest_line.
855         * cppinit.c (cpp_create_reader):  Don't initialize removed field.
856         * cpplex.c (_cpp_process_line_notes, _cpp_skip_block_comment,
857         skip_line_comment, skip_whitespace, _cpp_get_fresh_line,
858         _cpp_lex_direct):  Likewise use highest_line.
859         (_cpp_lex_direct):  Use new LINEMAP_POSITION_FOR_COLUMN macro.
860         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use highest_line,
861         and use newest map.
862         * cpppch.c (cpp_read_state):  Don't save+restore cpp_reader's line.
863         * cpptrad.c (_cpp_overlay_buffer):  Don't save cpp_reader's line.
864         (copy_comment, _cpp_scan_out_logical_line):  Likewise use highest_line.
865
866 2004-04-23  Alan Modra  <amodra@bigpond.net.au>
867
868         PR bootstrap/14992
869         * gcc.c (init_gcc_specs): Test USE_LD_AS_NEEDED, not HAVE_LD_AS_NEEDED.
870         * config/linux.h (USE_LD_AS_NEEDED): Define.
871         * gcc/config/alpha/linux.h (USE_LD_AS_NEEDED): Define.
872         * gcc/config/arm/linux-elf.h (USE_LD_AS_NEEDED): Define.
873         * gcc/config/rs6000/linux.h (USE_LD_AS_NEEDED): Define.
874         * gcc/config/rs6000/linux64.h (USE_LD_AS_NEEDED): Define.
875         * gcc/config/sh/linux.h (USE_LD_AS_NEEDED): Define.
876         * gcc/config/sparc/linux.h (USE_LD_AS_NEEDED): Define.
877         * gcc/config/sparc/linux64.h (USE_LD_AS_NEEDED): Define.
878
879 2004-04-22  Per Bothner  <per@bothner.com>
880
881         * cppinit.c (cpp_read_main_file):  Return NULL rather than false.
882         Fixes PR preprocessor/15067.
883
884 2004-04-23  Andreas Schwab  <schwab@suse.de>
885
886         * config/ia64/ia64intrin.h: Add intermediate cast to void * to
887         avoid aliasing warning.
888
889 2004-04-22  Jan Hubicka  <jh@suse.cz>
890             Mostafa Hagog <mustafa@il.ibm.com>
891
892       * cfgloopmanip.c (scale_bbs_frequencies): Use RDIV macro
893       * cfgloopanal.c (expected_loop_iterations): Change the return value
894
895 2004-04-22  Jakub Jelinek  <jakub@redhat.com>
896
897         * cselib.h (struct elt_loc_list): Remove canon_loc field.
898         * cselib.c (new_elt_loc_list): Remove canon_loc initialization.
899         (cselib_invalidate_mem): Remove all canon_loc and canon_x
900         traces.
901
902 2004-04-22  Josef Zlomek  <zlomekj@suse.cz>
903
904         Revert
905         2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
906
907                 * var-tracking.c (variable_part_different_p): Variable parts
908                 differ when the most recent locations differ.
909
910 2004-04-22  Richard Sandiford  <rsandifo@redhat.com>
911
912         * doc/invoke.texi: Remove the MIPS -membedded-pic option.
913         * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): Delete.
914         (embedded_pic_offset): Delete.
915         * config/mips/mips.h (MASK_EMBEDDED_PIC): Delete.  Shuffle other
916         MASK_* constants.
917         (TARGET_EMBEDDED_PIC): Delete.
918         (TARGET_SWITCHES): Remove -m{no-,}embedded-pic.
919         (ASM_SPEC): Remove -membedded-pic.
920         (ASM_OUTPUT_ADDR_DIFF_ELT): Remove embedded-pic handling.
921         (ASM_OUTPUT_CASE_LABEL): Likewise.
922         * config/mips/vxworks.h (ASM_SPEC): Remove -membedded-pic.
923         * config/mips/windiss.h (ASM_SPEC): Likewise.
924         * config/mips/mips.c (struct machine_function): Remove
925         embedded_pic_fnaddr_rtx.
926         (TARGET_ENCODE_SECTION_INFO): Remove override.
927         (embedded_pic_fnaddr_reg, embedded_pic_offset): Delete.
928         (override_options): Remove -membedded-pic handling.
929         (print_operand): Remove handling of '%S'.
930         (mips_select_section: Remove -membedded-pic handling.
931         (mips_encode_section_info): Delete.
932         (mips_output_conditional_branch): Remove mention of -membedded-pic.
933         * config/mips/mips.md (define_attr length, movsi, movdi, jump): Remove
934         -membedded-pic handling.
935         (casesi, casesi_internal, casesi_internal_di, get_fnaddr): Delete.
936
937 2004-04-22  Alan Modra  <amodra@bigpond.net.au>
938
939         * var-tracking.c (frame_base_decl): Remove useless GTY.
940
941 2004-04-21  Aldy Hernandez  <aldyh@redhat.com>
942
943         * config/rs6000/rs6000.c (rs6000_override_options): Error when
944         user wants altivec and e500 instructions.
945
946 2004-04-21  H.J. Lu  <hongjiu.lu@intel.com>
947
948         PR target/14813
949         * config/ia64/crtend.asm: Move pointer to __do_global_ctors_aux
950         in .init_array section to ...
951         * config/ia64/crtbegin.asm: Here.
952
953         * config/ia64/crtend.asm: Mark __do_global_ctors_aux global
954         and hidden if HAVE_INITFINI_ARRAY is defined.
955
956 2004-04-21  James E Wilson  <wilson@specifixinc.com>
957
958         * config/mips/mips-protos.h (fp_register_operand, lo_operand): Declare.
959         * config/mips/mips.c (mips_multipass_dfa_lookahead): Declare.
960         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): New.
961         (fp_register_operand, lo_operand): New.
962         (mips_rtx_costs): Add TUNE_SB1 support.
963         (mips_issue_rate): Add comment.  Add PROCESSOR_SB1 support.
964         (mips_use_dfa_pipeline_interface): Add PROCESSOR_SB1 support.
965         (mips_multipass_dfa_lookahead): New.
966         * config/mips/mips.h (MASK_FP_EXCEPTIONS, TARGET_FP_EXCEPTIONS,
967         TUNE_SB1): New.
968         (TARGET_SWITCHES): Add -mfp-exceptions support.
969         (TARGET_FP_EXCEPTIONS_DEFAULT): New.
970         (BRANCH_COST): Fix whitespace.
971         * config/mips/mips.md: Include sb1.md.
972         * config/mips/sb1.md: New file.
973         * doc/invoke.texi: Document -mfp-exceptions.
974
975         * Makefile.in (fixinc.sh): Don't set or export WARN_CFLAGS.  Fix
976         comment.
977         * fixinc/Makefile.in (FL_LIST): Don't mention WARN_CFLAGS.
978         (fixincl.o-warn): Delete.
979
980 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
981
982         * config/rs6000/rs6000 (print_operand) ['z']:
983         Change ifdef of TARGET_MACHO to if TARGET_MACHO.
984
985 2004-04-21 Daniel Jacobowitz  <drow@mvista.com>
986
987         * config.gcc: Support --with-arch=iwmmxt for ARM.
988
989 2004-04-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
990
991         * expmed.c (expand_mult_highpart_optab): Use narrower version of OP1
992         in two more places; remove unneeded force_reg
993
994 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
995
996         * config/rs6000/rs6000.c (symbol_ref_operand): Remove hack
997         for TARGET_MACHO.
998         (print_operand): For TARGET_MACHO check to see if we need a stub
999         and output one if we need it.
1000
1001         PR debug/15033
1002         * dwarf2out.c (rtl_for_decl_location): Check for NULL
1003         rtl.
1004
1005 2004-04-20  James E Wilson  <wilson@specifixinc.com>
1006
1007         * config/ia64/ia64.md (call_value_nogp): Add constraints for op0.
1008         (vall_value_gp): Likewise.
1009
1010 2004-04-20  DJ Delorie  <dj@redhat.com>
1011
1012         * dwarf2out.c (rtl_for_decl_location): Adjust rtl for byte
1013         variables stored in word registers, then in memory.
1014
1015 2004-04-20  Eric Christopher  <echristo@redhat.com>
1016
1017         * cp/parser.c (cp_parser_declaration): Move translate
1018         up before tokens are lexed.
1019
1020 2004-04-20  Uros Bizjak  <uros@kss-loka.si>
1021
1022         * optabs.h (enum optab_index): Add new OTI_asin and OTI_acos.
1023         (asin_optab, acos_optab): Define corresponding macros.
1024         * optabs.c (init_optabs): Initialize asin_optab and acos_optab.
1025         * genopinit.c (optabs): Implement asin_optab and acos_optab
1026         using asin?f2 and acos?f2 patterns.
1027         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_ASIN{,F,L}
1028         using asin_optab, and BUILT_IN_ACOS{,F,L} using acos_optab.
1029         (expand_builtin): Expand BUILT_IN_ASIN{,F,L} and BUILT_IN_ACOS{,F,L}
1030         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
1031
1032         * config/i386/i386.md (asindf2, asinsf2, asinxf2, acosdf2,
1033         acossf2, acosxf2): New expanders to implement asin, asinf, asinl,
1034         acos, acosf and acosl built-ins as inline x87 intrinsics.
1035
1036 2004-04-20  Paul Brook  <paul@codesourcery.com>
1037
1038         * config/arm/arm.c (arm_legitimate_address_p): Use rtx_equal_p.
1039
1040 2004-04-20  Paul Brook  <paul@codesourcery.com>
1041
1042         * config/arm/arm.c (arm_expand_prologue): Fix size calculation.
1043
1044 2004-04-20  Paolo Bonzini  <bonzini@gnu.org>
1045
1046         Revert part of 2004-04-17 change that moved -frename-registers
1047         to -O1.  -frename-registers is buggy.
1048
1049         * toplev.c (flag_rename_registers): Initialize to 0.
1050         * doc/invoke.texi (Optimize options): Move -frename-registers
1051         to "Not triggered by any -O level" section.  Adjust commentary
1052         accordingly.
1053
1054 2004-04-20  Anil Paranjpe <anilp1@kpitcummins.com>
1055
1056         * toplev.c (compile_file): Move targetm.asm_out.file_end call to end.
1057
1058 2004-04-20  Richard Sandiford  <rsandifo@redhat.com>
1059
1060         * config/mips/mips.c (mips_legitimize_move): Generate special patterns
1061         for mflo and mfhi instructions.
1062         (mips_output_move): Remove mflo and mfhi handling.
1063         * config/mips/mips.md (UNSPEC_MFHILO): New unspec.
1064         (*mulsidi3_64bit): Update for new mfhi/mflo representation.
1065         Likewise various define_peephole2s.
1066         (*movdi_32bit, *movdi_64bit, *movsi_internal): Merge x<-J and x<-d
1067         alternatives.
1068         (*movdi_64bit, *movdi_64bit_mips16, *mov[shq]i_internal)
1069         (*mov[shq]i_mips16): Remove mflo and mfhi alternatives.
1070         (mfhilo_di, mfhilo_si): New patterns.
1071
1072 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
1073
1074         * function.c (assign_parms): Force
1075         MEM_EXPR (DECL_INCOMING_RTL (parm)) == parm.
1076
1077 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
1078
1079         * var-tracking.c (variable_part_different_p): Variable parts differ
1080         when the most recent locations differ.
1081
1082 2004-04-19  James E Wilson  <wilson@specifixinc.com>
1083
1084         * rtl.h (reg_set_last): Delete declaration.
1085         * rtlanal.c (reg_set_last): Delete.
1086
1087 2004-04-19  Roger Sayle  <roger@eyesopen.com>
1088
1089         * fold-const.c (fold_convert): Make function extern/public.
1090         * tree.h (fold_convert): Prototype here.
1091         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
1092         expand_builtin_strrchr, expand_builtin_strpbrk,
1093         expand_builtin_mempcpy, expand_builtin_bcopy,
1094         expand_builtin_bzero, expand_builtin_memcmp,
1095         expand_builtin_strcmp, expand_builtin_strncmp,
1096         stabilize_va_list, expand_builtin_sprintf,
1097         fold_trunc_transparent_mathfn, fold_builtin_logarithm,
1098         fold_builtin_exponent, fold_builtin_mempcpy,
1099         fold_builtin_strcpy, fold_builtin_strcmp, fold_builtin_strncmp,
1100         fold_builtin_signbit, fold_builtin_isdigit, fold_builtin): Prefer
1101         fold_convert to "convert" or "fold (build1 (NOP_EXPR, ...))".
1102
1103 2004-04-19  Aldy Hernandez  <aldyh@redhat.com>
1104
1105         * config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): New constant.
1106         (move_from_CR_gt_bit): New.
1107         (cceq_ior_compare): Name previously unnamed pattern.  Disable for
1108         E500.
1109         (cceq_rev_compare): Name previously unnamed pattern.  Allow for
1110         E500.
1111
1112         * config/rs6000/spe.md (cmpsfeq_gpr): Rewrite as unspec.
1113         (tstsfeq_gpr): Same.
1114         (cmpsfgt_gpr): Same.
1115         (tstsfgt_gpr): Same.
1116         (cmpsflt_gpr): Same.
1117         (tstsflt_gpr): Same.
1118         (e500_cceq_ior_compare): New.
1119         (e500_flip_gt_bit): New.
1120
1121         * config/rs6000/rs6000.c (ccr_bit): Remove E500 specific code.
1122         (print_operand): Add 'c' and 'D'.
1123         (rs6000_generate_compare): Rewrite to generate correct rtl.
1124         (rs6000_emit_sCOND): Handle E500.
1125         (output_cbranch): Adjust for changes in rs6000_generate_compare.
1126         (output_e500_flip_gt_bit): New.
1127
1128         * config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit):
1129         Protoize.
1130
1131 2004-04-19  Eric Christopher  <echristo@redhat.com>
1132
1133         * config/mips/mips.h (DWARF2_ADDR_SIZE): New.
1134
1135 2004-04-19  David Edelsohn  <edelsohn@gnu.org>
1136
1137         * doc/install.texi (*-ibm-aix*): Add AIX 5.1 assembler and archiver
1138         fix information.
1139
1140 2004-04-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1141
1142         * doc/install.texi (Specific, mips-sgi-irix5): Fix IRIX 5.3 IDO
1143         download URL.
1144
1145 2004-04-19  Daniel Jacobowitz  <drow@mvista.com>
1146
1147         * stor-layout.c (layout_decl): Check DECL_PACKED before calling
1148         ADJUST_FIELD_ALIGN.  Check maximum_field_alignment after.
1149
1150 2004-04-19  Andrew PInski  <pinskia@physics.uc.edu>
1151
1152         * builtins.c (fold_builtin_cabs): Remove fndecl parameter.
1153         (fold_builtin): Update caller to match.
1154
1155         PR bootstrap/15009
1156         * bb-reorder.c (fix_up_fall_thru_edges): Init cond_jump.
1157
1158         PR bootstrap/14999
1159         * builtins.c (fold_builtin_cabs): Mark fndecl as unused.
1160
1161 2004-04-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1162
1163         * varasm.c (compare_constant, case VIEW_CONVERT_EXPR): Add case.
1164
1165         * expmed.c (expand_mult_highpart_adjust): Make OP1 valid for MODE.
1166         (expand_mult_highpart_optab): Likewise.
1167         (expand_mult_highpart): Make OP1 valid for WIDER_MODE, not MODE.
1168
1169 2004-04-19  Paul Brook  <paul@codesourcery.com>
1170
1171         * config/arm/arm.md (fixuns_truncsfsi2, fixuns_truncdfsi2,
1172         floatunssisf2, floatunssidf2): New patterns.
1173
1174 2004-04-18  Mark Mitchell  <mark@codesourcery.com>
1175
1176         PR other/14918
1177         * doc/invoke.texi (-fprofile-generate): Document requirement to
1178         use -fprofile-generate when linking.
1179
1180         * doc/extend.texi (Strong Using): Warn users against using this
1181         feature.
1182
1183 2004-04-18  Richard Sandiford  <rsandifo@redhat.com>
1184
1185         * config/mips/mips-protos.h (m16_usym8_4, m16_usym5_4): Delete.
1186         * config/mips/mips.h (mips_entry, mips_string_length): Delete.
1187         (CONSTANT_POOL_BEFORE_FUNCTION, ASM_OUTPUT_POOL_EPILOGUE): Undefine.
1188         * config/mips/mips.c (struct mips16_constant): Renamed from struct
1189         constant.  Propogate change throughout file.
1190         (struct machine_function): Remove insns_len.
1191         (mips_string_length, mips16_strings, string_constants): Delete.
1192         (mips_classify_symbol): Return SYMBOL_CONSTANT_POOL for LABEL_REFs
1193         when generating mips16 code.  Remove special mips16 treatment of
1194         string constants.
1195         (mips_symbolic_constant_p): Allow mips16 constant pool accesses
1196         to have the form LABEL+CONSTANT.
1197         (mips_symbolic_address_p): Fix comment.
1198         (m16_usym8_4, m16_usym5_4): Delete.
1199         (mips_output_function_epilogue): Remove mips16 string handling.
1200         (mips_output_mi_thunk): Call mips16_lay_out_constants.
1201         (mips_select_section, mips_encode_section_info): Remove mips16
1202         string handling.
1203         (struct mips16_constant_pool): New.
1204         (add_constant): Take a mips16_constant_pool structure.  Keep pool
1205         sorted into order of ascending mode size.  Keep track of the highest
1206         possible start address, taking padding and the masking of the base PC
1207         value into account.
1208         (dump_constants_1): New function, split out from dump_constants.
1209         Handle vector constants.  Use gen_consttable_{int,float} rather than
1210         separate functions for each mode.
1211         (dump_constants): Simplify.  Use GET_MODE_ALIGNMENT.  Use gen_align
1212         rather than separate functions for each alignment.
1213         (mips_find_symbol): Delete.
1214         (mips16_insn_length): New function, split out from
1215         mips16_lay_out_constants.
1216         (mips16_rewrite_pool_refs): New function.
1217         (mips16_lay_out_constants): Rework. Remove string handling.
1218         Always create an inline constant pool.
1219         * config/mips/mips.md (UNSPEC_CONSTTABLE_INT, UNSPEC_CONSTTABLE_FLOAT)
1220         (UNSPEC_ALIGN): New constants.
1221         (UNSPEC_CONSTTABLE_[QHSD]I, UNSPEC_CONSTTABLE_[SD]F): Delete.
1222         (UNSPEC_ALIGN_[248]): Delete.
1223         (consttable_int, consttable_float, align): New patterns.
1224         (consttable_[qhsd]i, consttable_[sd]f, align_[248]): Delete.
1225
1226 2004-04-17  Aldy Hernandez  <aldyh@redhat.com>
1227
1228         * config/rs6000/altivec.h (vec_any_numeric): Correct typo in
1229         __unn_args_eq.
1230
1231 2004-04-17  Alan Modra  <amodra@bigpond.net.au>
1232
1233         PR target/14715
1234         * config/rs6000/rs6000.c (rs6000_stack_info): Make parm_size agree
1235         with STARTING_FRAME_OFFSET.
1236
1237 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
1238
1239         * config/mips/mips.h (PREDICATE_CODES): Add macc_msac_operand.
1240         * config/mips/mips.c (macc_msac_operand): New function.
1241         * config/mips/mips.md (*msac): Move after *macc.
1242         (*msac2): New.  Generalize macc-related peepholes so that they apply
1243         to msac too.
1244
1245 2004-04-17  Paolo Bonzini  <bonzini@gnu.org>
1246
1247         * opts.c (decode_options): Do not enable flag_rename_registers
1248         and flag_web at -O3.
1249         * toplev.c (flag_rename_registers): Initialize
1250         flag_rename_registers and flag_web to
1251         AUTODETECT_FLAG_VAR_TRACKING.
1252         (default_debug_hooks): New global.
1253         (process_options): Initialize default_debug_hooks.  Warn if
1254         -fvar-tracking specified but not supported by the current
1255         debug format.  Do not run var tracking at -O0 or if not
1256         supported by the current debug format, even if
1257         -fvar-tracking was given.  If -fno-rename-registers
1258         is not specified, always run register renaming if var
1259         tracking is supported by the default debugging information
1260         format for the target, and we are at -O1 or higher; similarly
1261         for -fweb, but only at -O2 or higher.
1262         * doc/invoke.texi (Optimize Options): Document this.
1263
1264 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
1265
1266         * configure.ac (gcc_cv_ld_as_needed): Use AC_CACHE_CHECK.
1267         * configure: Regenerate.
1268
1269 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
1270
1271         * gcc.c (used_arg): Check whether an option has been removed.
1272
1273 2004-04-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1274
1275         * config.gcc (i[34567]86-*-solaris2*): Default to DWARF-2
1276         debugging on Solaris 7 and up.
1277
1278 2004-04-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1279
1280         * doc/install.texi (Specific, mips-sgi-irix5): Reflect working
1281         IRIX 5 port.
1282         Remove -save-temps workaround, handled automatically.
1283         Require GNU binutils 2.15 for debugging.
1284         Remove SGI make warnings since GNU make is now required.
1285         (Specific, mips-sgi-irix6): Some markup fixes.
1286         Describe MIPSpro C problems and workarounds.
1287         Mention working O32 ABI support.
1288         Recommend GNU as 2.15 for O32 with debugging.
1289         Remove description of fixed structure pass/return bug.
1290
1291 2004-04-16  DJ Delorie  <dj@redhat.com>
1292
1293         * sdbout.c (sdbout_one_type): Use TYPE_VALUES for enums, not
1294         TYPE_FIELDS.
1295         (sdbout_finish): Don't free deferred_global_decls; it's GC'd.
1296
1297 2004-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1298
1299         * pa.md: Remove unnecessary declarations for asm_out_file.
1300
1301         * pa64-regs.h (DBX_REGISTER_NUMBER): Simplify and correct mapping of
1302         SAR register.  Fix comment.
1303         (ADDITIONAL_REGISTER_NAMES): Correct register number of SAR register
1304         (%cr11).
1305
1306         * pa64-hpux.h (LIB_SPEC): Fix library specification used with GNU ld.
1307
1308 2004-04-16  Nick Clifton  <nickc@redhat.com>
1309
1310         * config/arm/arm.c (arm_override_options): Revert previous patch.
1311         * config/arm/t-xscale-elf: Disable iwmmxt multilibs until they can
1312         be safely built.
1313
1314 2004-04-16  Kazuhiro Inaoka <inaoka dot kazuhiro at renesas dot com>
1315
1316         * config/m32r/m32r.h (BIG_ENDIAN_BIT): Deleted to fix endian
1317         bug.
1318         (TARGET_LITTLE_ENDIAN, TARGET_BIG_ENDIAN,
1319         TARGET_DEFAULT): Changed. Ditto.
1320         (LITTLE_ENDIAN_BIT, TARGET_CPU_DEFAULT,
1321         TARGET_ENDIAN_DEFAULT): Added. Ditto.
1322         * config/m32r/little.h (TARGET_LITTLE_ENDIAN): Deleted.
1323         (TARGET_ENDIAN_DEFAULT): Added.
1324
1325 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1326
1327         * builtins.def (BUILT_IN_ISDIGIT, BUILT_IN_ISXDIGIT): Mark with
1328         ATTR_CONST_NOTHROW_LIST.
1329
1330 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1331
1332         PR/middle-end 14915
1333         * builtins.c (expand_builtin_signbit): Test BYTES_BIG_ENDIAN, not
1334         BITS_BIG_ENDIAN.
1335
1336 2004-04-15  Pat Haugen  <pthaugen@us.ibm.com>
1337
1338         * ra-debug.c (ra_print_rtx): Add break's to case legs.
1339
1340 2004-04-14  James E Wilson  <wilson@specifixinc.com>
1341
1342         * Makefile.in (fixinc.sh): Set WARN_CFLAGS to empty string.
1343
1344 2004-04-14  Nathanael Nerode  <neroden@gcc.gnu.org>
1345
1346         * libada-mk.in: New file.
1347         * configure.ac: Create libada-mk from libada-mk.in.
1348         * configure: Regenerate.
1349
1350 2004-04-14  Uros Bizjak  <uros@kss-loka.si>
1351
1352         * optabs.h (enum optab_index): Add new OTI_logb and OTI_ilogb.
1353         (logb_optab, ilogb_optab): Define corresponding macros.
1354         * optabs.c (init_optabs): Initialize logb_optab and ilogb_optab.
1355         * genopinit.c (optabs): Implement logb_optab and ilogb_optab
1356         using logb?f2 and ilogb?i2 patterns.
1357         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOGB{,F,L}
1358         using logb_optab, and BUILT_IN_ILOGB{,F,L} using ilogb_optab.
1359         (expand_builtin): Expand BUILT_IN_LOGB{,F,L} and BUILT_IN_ILOGB{,F,L}
1360         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
1361
1362         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_XTRACT_FRACT
1363         and UNSPEC_XTRACT_EXP.
1364
1365         * config/i386/i386.md (*fxtractdf3, *fxtractsf3, *fxtractxf3): New
1366         patterns to implement fxtract x87 instruction.
1367         (logbdf2, logbsf2, logbxf2, ilogbsi2): New expanders to implement
1368         logb, logbf, logbl, ilogb, ilogbf and ilogbl built-ins as inline x87
1369         intrinsics.
1370         (UNSPEC_XTRACT_FRACT, UNSPEC_XTRACT_EXP): New unspecs to represent
1371         x87's fxtract insn.
1372
1373 2004-04-14  Eric Christopher  <echristo@redhat.com>
1374
1375         * config/mips/t-elf: Enable multilibs by default.
1376
1377 2004-04-14  Andreas Tobler  <a.tobler@schweiz.ch>
1378
1379         * bb-reorder.c (fix_crossing_conditional_branches): Adjust the
1380         previous fix to check HAVE_return at runtime too.
1381
1382 2004-04-14  Nick Clifton  <nickc@redhat.com>
1383
1384         * config/arm/arm.c (arm_override_options): If the user has not
1385         specified an ABI, then default to AAPCS for the iWMMXt processor.
1386         * config/arm/t-xscale-elf: Remove redundant multilib specifications.
1387         * config/arm/t-xscale-coff: Likewise.
1388
1389 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1390
1391         * builtins.c (fold_builtin_isdigit): New.
1392         (fold_builtin): Handle BUILT_IN_ISDIGIT.
1393         * defaults.h: Add TARGET_DIGIT0 and sort.
1394         * doc/tm.texi: Add TARGET_BS and TARGET_DIGIT0.
1395
1396 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1397
1398         * builtins.c (fold_builtin_cabs, fold_builtin): Use
1399         `mathfn_built_in' to determine the new builtin.
1400         * fold-const.c (fold): Likewise.
1401
1402 2004-04-14  Richard Sandiford  <rsandifo@redhat.com>
1403
1404         * doc/invoke.texi: Rename MIPS's -mfix-vr4122-bugs to -mfix-vr4120.
1405         * config/mips/mips.h (MASK_FIX_VR4120): Renamed from MASK_FIX_VR4122.
1406         (TARGET_FIX_VR4120): Likewise TARGET_FIX_VR4122.
1407         (TARGET_SWITCHES): Replace -mfix-vr4122-bugs with -mfix-vr4120.
1408         (ASM_SPEC): Update accordingly.
1409         * config/mips/mips.c: Update after above renaming.
1410         * config/mips/mips.md, config/mips/t-vr, config/mips/vr.h: Likewise.
1411         * config/mips/vr4120-div.S: Renamed from vr4122-div.S.
1412
1413 2004-04-13  James E Wilson  <wilson@specifixinc.com>
1414
1415         * c-opt.c (c_common_post_options): If this_input_filename is NULL,
1416         increment errorcount and return false instead of true.
1417
1418 2004-04-13  Uros Bizjak  <uros@kss-loka.si>:
1419
1420         * optabs.c (expand_twoval_unop): Reorder function arguments.
1421         * builtins.c (expand_builtin_mathfn_3): Update calls to
1422         expand_twoval_unop.
1423
1424         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_TAN_ONE
1425         and UNSPEC_TAN_TAN. Add missing comment.
1426
1427         * config/i386/i386.md (*tandf3_1, *tansf3_1, *tanxf3_1): New
1428         patterns to implement fptan x87 instruction.
1429         (tandf2, tansf2, tanxf2): New expanders to implement tan, tanf
1430         and tanl built-ins as inline x87 intrinsics. Define corresponding
1431         peephole2 optimizers for 'fptan; fstp %st(0); fld1' sequence.
1432         (UNSPEC_TAN_ONE, UNSPEC_TAN_TAN): New unspecs to represent
1433         x87's fptan insn.
1434
1435 2004-03-13  Richard Henderson  <rth@redhat.com>
1436
1437         * bb-reorder.c (fix_crossing_unconditional_branches): Use Pmode
1438         for LABEL_REFs.
1439
1440         * defaults.h (HOT_TEXT_SECTION_NAME): Add leading dot.
1441         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Likewise.
1442         * doc/invoke.texi: Update to match.
1443
1444         * varasm.c (unlikely_text_section): Use assemble_align instead of
1445         ASM_OUTPUT_ALIGN.  Use it in the correct place with an approximately
1446         correct alignment argument.
1447
1448 2004-04-13  Ulrich Weigand  <uweigand@de.ibm.com>
1449
1450         * reload1.c (emit_reload_insns): Set reg_has_output_reload to one
1451         after setting reg_last_reload_reg for optional output reloads.
1452
1453 2004-04-12  Fariborz Jahanian <fjahanian@apple.com>
1454
1455         * config/rs6000/altivec.h (vec_mergeh, vec_mergel):
1456         Definition of these two macros are corrected by adding
1457         matchine right paren.
1458
1459 2004-04-12  Jonathan Larmour  <jifl@eCosCentric.com>
1460
1461         * fix-header.c: kill(), putenv() and tzset() are POSIX not ANSI.
1462
1463 2004-04-12  Roger Sayle  <roger@eyesopen.com>
1464
1465         * config/i386/i386.c (output_387_reg_move): New function.
1466         * config/i386/i386-protos.h (output_387_reg_move): Prototype here.
1467         * config/i386/i386.md (*movsf_1, *movsf1_nointerunit,
1468         *movdf_nointeger, *movdf_integer, *movxf_nointeger, *movxf_integer,
1469         *extendsfdf2_1,  *extendsfxf2_1, *extenddfxf2_1, truncdfsf2_noop,
1470         truncxfsf2_noop, truncxfdf2_noop): Call output_387_reg_move.
1471
1472 2004-04-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1473
1474         * c-decl.c (finish_decl): Make a decl_stmt for a variable-sized
1475         TYPE_DECL.
1476         * c-semantics.c (genrtl_decl_stmt): Handle TYPE_DECL.
1477         * stmt.c (expand_decl): Remove redundant expansion of TYPE_DOMAIN.
1478         * stor-layout.c (variable_size): Don't check for MINUS_EXPR.
1479         Use skip_simple_arithmetic to find SAVE_EXPR.
1480         (force_type_save_exprs, force_type_save_exprs_1): New functions.
1481         * tree-inline.c (remap_type, case POINTER_TYPE, case REFERENCE_TYPE):
1482         Properly chain multiple pointers.
1483         (copy_tree_r): Copy a TYPE_DECL.
1484         * tree.c (variably_modified_type_p): Add some missing tests and
1485         make some other minor changes.
1486         * tree.h (force_type_save_exprs): New declaration.
1487
1488 2004-04-12  Roger Sayle  <roger@eyesopen.com>
1489
1490         * simplify-rtx.c (simplify_binary_operation) <UDIV, DIV, UMOD, MOD>:
1491         Remove fall throughs.  Convert 0/x and 0%x into x&0 when x has
1492         side-effects.  Don't convert x/1.0 into x if we honor signaling NaNs.
1493         Convert x/-1.0 into -x if we don't honor signaling NaNs.  Convert
1494         x/-1 into -x.  Optimize x%1 into x&0 if x has side-effects.  Optimize
1495         x%-1 into 0 (or x&0 if x has side-effects).
1496
1497 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
1498
1499         * config/rs6000/rs6000.md: Document why a pattern is not
1500         available.
1501
1502         * config/rs6000/rs6000.c (rs6000_emit_cmove): Disable comparisons
1503         of floats on the E500.
1504         (branch_positive_comparison_operator): Do not allow NE even on the
1505         E500.
1506
1507 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
1508
1509         * config/rs6000/rs6000.c (rs6000_assemble_integer): Change
1510         in_text_unlikely_section to in_unlikely_text_section.
1511
1512 2004-04-11  Roger Sayle  <roger@eyesopen.com>
1513
1514         * fold-const.c (fold_binary_op_with_conditional_arg):  Tweak
1515         calling convention to allow a NULL_TREE to be returned.  Factor
1516         sanity checks from callers, return NULL_TREE when appropriate.
1517         (fold): Handle COMPOUND_EXPR operands of binary expressions
1518         before COND_EXPR operands.  Use reorder_operands_p(a,b) to check
1519         whether a op (b,c) can be rewritten as (b, a op c).  Simplify
1520         calls to fold_binary_op_with_conditional_arg.
1521
1522 2004-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1523
1524         * config/mips/iris5.h (current_section_flags):  Add
1525         in_unlikely_executed_text and default case.
1526
1527 2004-04-11  Andreas Tobler  <a.tobler@schweiz.ch>
1528
1529         * bb-reorder.c (fix_crossing_conditional_branches): Fix bootstrap
1530         failure on solaris. Place ifdef HAVE_return around gen_ret call.
1531         * cfgrtl.c (force_nonfallthru_and_redirect): Remove ifdef
1532         HAVE_return and place it around the place where it is needed.
1533
1534 2004-04-11  Andrew Pinski  <pinskia@physics.uc.edu>
1535
1536         * varasm.c (text_section): Use TEXT_SECTION_ASM_OP and
1537         ASM_OUTPUT_ALIGN instead of SECTION_FORMAT_STRING
1538         and NORMAL_TEXT_SECTION_NAME.
1539         (unlikely_text_section): Check targetm.have_named_sections
1540         instead of TARGET_ASM_NAMED_SECTION and use TEXT_SECTION_ASM_OP
1541         instead of SECTION_FORMAT_STRING.
1542         * config/mips/iris5.h (current_section_name): Add
1543         in_unlikely_executed_text case and move the abort into the switch.
1544         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME): Remove.
1545         (NORMAL_TEXT_SECTION_NAME): Remove.
1546         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
1547         (SECTION_FORMAT_STRING): Remove.
1548         * defaults.h (SECTION_FORMAT_STRING): Remove.
1549         * tm.texi (NORMAL_TEXT_SECTION_NAME): Remove.
1550         (SECTION_FORMAT_STRING): Remove.
1551
1552 2004-04-10  Joseph S. Myers  <jsm@polyomino.org.uk>
1553
1554         * c-typeck.c (common_type): Prefer long long to long when same
1555         precision.
1556
1557 2004-04-09  Zack Weinberg  <zack@codesourcery.com>
1558
1559         PR 14887
1560         * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Look only at
1561         mode argument.
1562         * config/ia64/ia64.c (ia64_hpux_file_end): Check
1563         TREE_SYMBOL_REFERENCED on DECL_ASSEMBLER_NAME, not DECL_NAME.
1564
1565 2004-04-09  Roger Sayle  <roger@eyesopen.com>
1566
1567         * simplify-rtx.c (mode_signbit_p): New function to check whether
1568         an RTX is an immediate constant that represents the most significant
1569         bit of a given machine mode.
1570         (simplify_unary_operation) <NOT>: Optimize ~(X+C) as X ^ ~C, where
1571         C is the sign bit.
1572         (simplify_binary_operation) <PLUS>: Optimize (X^C1) + C2 as X^(C1^C2)
1573         when C2 is the sign bit.
1574         (simplify_binary_operation) <XOR>: Canonicalize X^C as X+C when C
1575         is the sign bit.  Optimize (X+C1) ^ C2 as X^(C1^C2) when C1 is the
1576         sign bit.
1577
1578 2004-04-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1579
1580         * builtins.c (mathfn_built_in): Check TYPE_MAIN_VARIANT, not
1581         TYPE_MODE.
1582
1583 2004-04-09  Andrew Pinski  <pinskia@physics.uc.edu>
1584
1585         * c-common.c (handle_noreturn_attribute): Use TYPE_READONLY instead
1586         of TREE_READONLY for types.
1587
1588 2004-04-09  Caroline Tice  <ctice@apple.com>
1589
1590         * basic-block.h (struct edge_def):  Add new field, crossing_edge.
1591         (struct basic_block_def):  Add new field, partition.
1592         (UNPARTITIONED, HOT_PARTITION, COLD_PARTITION):  New constant macro
1593         definitions.
1594         (partition_hot_cold_basic_blocks): Add extern function
1595         declaration.
1596         * bb-reorder.c (function.h, obstack.h, expr.h, regs.h):  Add four new
1597         include statements.
1598         (N_ROUNDS): Increase the maximum number of rounds by 1.
1599         (branch_threshold): Add array value for new round.
1600         (exec_threshold): Add array value for new round.
1601         (push_to_next_round_p): New function.
1602         (add_unlikely_executed_notes): New function.
1603         (find_rarely_executed_basic_blocks_and_crossing_edges): New function.
1604         (mark_bb_for_unlikely_executed_section): New function.
1605         (add_labels_and_missing_jumps): New function.
1606         (add_reg_crossing_jump_notes): New function.
1607         (fix_up_fall_thru_edges): New function.
1608         (find_jump_block): New function.
1609         (fix_crossing_conditional_branches): New function.
1610         (fix_crossing_unconditional_branches): New function.
1611         (fix_edges_for_rarely_executed_code): New function.
1612         (partition_hot_cold_basic_blocks): New function.
1613         (find_traces):  Add an extra round for partitioning hot/cold
1614         basic blocks.
1615         (find_traces_1_round): Add a parameter.  Modify to push all cold blocks,
1616         and only cold blocks, into the last (extra) round of collecting traces.
1617         (better_edge_p): Add a parameter.  Modify to favor non-crossing edges
1618         over crossing edges.
1619         (bb_to_key):  Add code to correctly identify cold blocks when
1620         doing partitioning.
1621         (connect_traces): Modify to connect all the non-cold traces first, then
1622         go back and connect up all the cold traces.
1623         (reorder_basic_blocks):  Add call to add_unlikely_executed_notes.
1624         * cfg.c (entry_exit_blocks): Add initialization for partition field in
1625         entry and exit blocks.
1626         * cfgbuild.c (make_edges): Update current_function_has_computed_jump
1627         if we are doing hot/cold partitioning.
1628         * cfgcleanup.c (cfglayout.h): Add new include statement.
1629         (try_simplify_condjump): Modify to not attempt on blocks with jumps
1630         that cross section boundaries.
1631         (try_forward_edges): Likewise.
1632         (merge_blocks_move_predecessor_nojumps): Likewise.
1633         (merge_blocks_move_successor_nojumps): Likewise.
1634         (merge_blocks_move): Likewise.
1635         (try_crossjump_to_edge): Modify to not attempt after we have done
1636         the block partitioning.
1637         (try_crossjump_bb): Modify to not attempt on blocks with jumps that
1638         cross section boundaries.
1639         (try_optimize_cfg): Likewise.
1640         * cfghooks.c (tidy_fallthru_edges): Modify to not remove indirect
1641         jumps that cross section boundaries.
1642         * cfglayout.c (flags.h): Add new include statement.
1643         (update_unlikely_executed_notes):  New function.
1644         (fixup_reorder_chain):  Add code so when a new jumping basic block is
1645         added, it's UNLIKELY_EXECUTED_CODE and REG_CROSSING_JUMP notes are
1646         updated appropriately.
1647         (duplicate_insn_chain):  Add code to duplicate the new NOTE insn
1648         introduced by this optimization.
1649         * cfglayout.h (scan_ahead_for_unlikely_executed_note):  Add new
1650         extern function declaration.
1651         * cfgrtl.c (can_delete_note_p):  Add NOTE_INSN_UNLIKELY_EXECUTED_CODE to
1652         list of notes that can be deleted.
1653         (create_basic_block_structure):  Add initialization for partition field.
1654         (rtl_can_merge_blocks):  Modify to test blocks for jumps that cross
1655         section boundaries.
1656         (try_redirect_by_replacing_jump):  Modify to not attempt on jumps that
1657         cross section boundaries.
1658         (commit_one_edge_insertion): Add code so newly created basic block
1659         ends up in correct (hot or cold) section.  Modify to disallow
1660         insertions before NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
1661         (rtl_verify_flow_info_1):  Add code to verify that no fall_thru edge
1662         crosses section boundaries.
1663         (cfg_layout_can_merge_blocks_p): Modify to test blocks for jumps that
1664         cross section boundaries.
1665         (force_nonfallthru_and_redirect): Modify to make sure new basic block
1666         ends up in correct section, with correct notes attached.
1667         * common.opt (freorder-blocks-and-partition):  Add new flag for this
1668         optimization.
1669         * dbxout.c (dbx_function_end):  Add code to make sure scope labels at
1670         the end of functions are written into the correct (hot or cold)
1671         section.
1672         (dbx_source_file): Add code so writing debug file information
1673         doesn't incorrectly change sections.
1674         * defaults.h (NORMAL_TEXT_SECTION_NAME): New constant macro, for use
1675         in partitioning hot/cold basic blocks into separate sections.
1676         (SECTION_FORMAT_STRING): New constant macro, for linux/i386 hot/cold
1677         section partitioning.
1678         (HAS_LONG_COND_BRANCH): New constant macro, indicating whether or not
1679         conditional branches can span all of memory.
1680         (HAS_LONG_UNCOND_BRANCH): New constant macro, indicationg whether or not
1681         unconditional branches can span all of memory.
1682         * final.c (scan_ahead_for_unlikely_executed_note):  New function.
1683         (final_scan_insn):  Add code to check for NOTE instruction indicating
1684         whether basic block belongs in hot or cold section, and to make sure
1685         the current basic block is being written to the appropriate section.
1686         Also added code to ensure that jump table basic blocks end up in the
1687         correct section.
1688         * flags.h (flag_reorder_blocks_and_partition):  New flag.
1689         * ifcvt.c (find_if_case_1):  Modify to not attempt if conversion if
1690         one of the branches has a jump that crosses between sections.
1691         (find_if_case_2): Likewise.
1692         (ifcvt): Modify to not attempt to mark loop exit edges after
1693         hot/cold partitioning has occurred.
1694         * opts.c (decode_options): Code to handle new flag,
1695         flag_reorder_blocks_and_partition; also to turn it off if
1696         flag_exceptions is on.
1697         (common_handle_option): Code to handle new flag,
1698         flag_reorder_blocks_and_partition.
1699         * output.h (unlikely_text_section): New extern function declaration.
1700         (in_unlikely_text_section): New extern function declaration.
1701         * passes.c (rest_of_handle_stack_regs):  Add
1702         flag_reorder_blocks_and_partition as an 'or' condition for calling
1703         reorder_basic_blocks.
1704         (rest_of_handle_reorder_blocks):  Add flag_reorder_blocks_and_partition
1705         as an 'or' condition for calling reorder_basic_blocks.
1706         (rest_of_compilation):  Add call to partition_hot_cold_basic_blocks.
1707         * print-rtl.c (print_rtx): Add code for handling new note,
1708         NOTE_INSN_UNLIKELY_EXECUTED_CODE
1709         * rtl.c  (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note insn (see below).
1710         (REG_CROSSING_JUMP): New kind of reg_note, to mark jumps that
1711         cross between section boundaries.
1712         * rtl.h (NOTE_INSN_UNLIKELY_EXECUTED_CODE):  New note instruction,
1713         indicating the basic block containing it belongs in the cold section.
1714         (REG_CROSSING_JUMP): New type of reg_note, to mark jumps that cross
1715         between hot and cold sections.
1716         * toplev.c (flag_reorder_blocks_and_partition):  Add code to
1717         initialize this flag, and to tie it to the command-line option
1718         freorder-blocks-and-partition.
1719         * varasm.c (cfglayout.h):  Add new include statement.
1720         (unlikely_section_label_printed):  New global variable, used for
1721         determining when to output section name labels for cold sections.
1722         (in_section):  Add in_unlikely_executed_text to enum data structure.
1723         (text_section):  Modify code to use SECTION_FORMAT_STRING and
1724         NORMAL_TEXT_SECTION_NAME macros.
1725         (unlikely_text_section):  New function.
1726         (in_unlikely_text_section):  New function.
1727         (function_section):  Add code to make sure beginning of function is
1728         written into correct section (hot or cold).
1729         (assemble_start_function):  Add code to make sure stuff is written to
1730         the correct section.
1731         (assemble_zeros):  Add in_unlikely_text_section as an 'or' condition
1732         to an if statement that was checking 'in_text_section'.
1733         (assemble_variable):  Add 'in_unlikely_text_section' as an 'or'
1734         condition to an if statement that was checking 'in_text_section'.
1735         (default_section_type_flags_1):  Add check: if in cold section
1736         flags = SECTION_CODE.
1737         * config/darwin.c (darwin_asm_named_section):  Modify to use
1738         SECTION_FORMAT_STRING if we are partitioning hot/cold blocks.
1739         * config/i386/i386.h (HAS_LONG_COND_BRANCH): Defined this macro
1740         specifically for the i386.
1741         (HAS_LONG_UNCOND_BRANCH):  Defined this macro specifically for the i386.
1742         * config/rs6000/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Change
1743         text string to something more informative.
1744         (NORMAL_TEXT_SECTION_NAME): Add new definition.
1745         (SECTION_FORMAT_STRING):  Add new definition.
1746         * config/rs6000/rs6000.c (rs6000_assemble_integer):  Add
1747         '!in_unlikely_text_section' as an 'and' condition to an if statement
1748         that was already checking '!in_text_section'.
1749         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME,NORMAL_TEXT_SECTION_NAME,
1750         UNLIKELY_EXECUTED_TEXT_SECTION_NAME,SECTION_FORMAT_STRING): Make
1751         sure these are properly defined for linux on ppc.
1752         * doc/invoke.texi  (freorder-blocks-and-partition): Add documentation
1753         for this new flag.
1754         * doc/rtl.texi (REG_CROSSING_JUMP):  Add documentation for new
1755         reg_note.
1756         * doc/tm.texi (NORMAL_TEXT_SECTION_NAME, SECTION_FORMAT_STRING,
1757         HAS_LONG_COND_BRANCH, HAS_LONG_UNCOND_BRANCH): Add documentation for
1758         these new macros.
1759
1760 2004-04-08  Roger Sayle  <roger@eyesopen.com>
1761
1762         * function.c (gen_mem_addressof): When changing the RTX from a REG
1763         to a MEM, clear MEM_VOLATILE_P which was formerly REG_USERVAR_P.
1764
1765 2004-04-08  Roger Sayle  <roger@eyesopen.com>
1766
1767         PR target/14888
1768         * config/i386/i386.md (truncdfsf2_noop, truncxfsf2_noop,
1769         truncxfdf2_noop): Provide dummy "fmov" implementations.
1770
1771 2004-04-08  Ian Lance Taylor  <ian@wasabisystems.com>
1772
1773         * gcc.c (default_compilers): Add missing initializers.
1774
1775         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
1776         Return 1 if file was successfully mapped.
1777
1778 2004-04-08  Geoffrey Keating  <geoffk@apple.com>
1779
1780         PR pch/13419
1781         PR pch/14137
1782         Radar #: 3315288
1783         * doc/invoke.texi (Precompiled Headers): Suggest -o
1784         to put an output file in a particular place.  Be more detailed
1785         about which options affect PCH validity and which options
1786         might not work.
1787         * c-pch.c (pch_matching): New.
1788         (MATCH_SIZE): New.
1789         (struct c_pch_validity): New field 'match'.
1790         (pch_init): Handle pch_matching.
1791         (c_common_valid_pch): Check pch_matching.
1792
1793         * explow.c: Fix typo defining default of PROMOTE_FUNCTION_MODE.
1794
1795 2004-04-08  Mark Mitchell  <mark@codesourcery.com>
1796
1797         * doc/invoke.texi (Precompiled Headers): Warn about known
1798         problems.
1799
1800 2004-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
1801
1802         PR c++/14808
1803         * defaults.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): New macro. Default
1804         to 1 if ASM_OUTPUT_DEF is defined.
1805         * doc/tm.texi (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document.
1806         * config/i386/cygming.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): Define.
1807         Set to non-zero iff not a one_only decl.
1808
1809 2004-04-08  Paul Brook  <paul@codesourcery.com>
1810
1811         * arm.h (CLASS_LIKELY_SPILLED_P): Define.
1812
1813 2004-04-08  Paul Brook  <paul@codesourcery.com>
1814
1815         * explow.c (promote_mode): Use PROMOTE_FUNCTION_MODE instead of
1816         PROMOTE_FOR_CALL_ONLY.
1817         * config/arm/arm-protos.h (arm_function_value): Declare.
1818         * config/arm/arm.h (TARGET_PROMOTE_FUNCTION_ARGS): Define.
1819         (TARGET_PROMOTE_PROTOTYPES): Return false.
1820         (arm_function_value): New function.
1821         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Define.
1822         (FUNCTION_VALUE): Call arm_function_value.
1823         * config/cris/cris.h (PROMOTE_MODE): Rename ...
1824         (PROMOTE_FUNCTION_MODE): ... to this.
1825         (PROMOTE_FOR_CALL_ONLY): Remove.
1826         * config/mmix/mmix.h: Likewise.
1827         * config/s390/s390.h: Likewise.
1828         * config/sparc/sparc.h: Likewise.
1829         * config/sparc/sparc.c: Update comments about PROMOTE_MODE.
1830         * doc/tm.texi (PROMOTE_FUNCTION_MODE): Document.
1831         (TARGET_PROMOTE_FUNCTION_MODE, TARGET_PROMOTE_FUNCTION_RETURN): Update.
1832         (PROMOTE_FOR_CALL_ONLY): Remove.
1833
1834 2004-04-08  Joel Sherrill <joel@oarcorp.com>
1835
1836         PR ada/14538
1837         * ada/5rosinte.adb: Remove fake mprotect() body.
1838         * ada/5rosinte.ads: Add SA_SIGINFO.
1839         * ada/5rtpopsp.adb: Rewrite to use new interface.
1840         * ada/init.c: Reorder so the simple single OS conditional __rtems__
1841         is tested before more complex ones which mix UNIX and embedded
1842         systems in the conditional.
1843
1844 2004-04-08  Joel Sherrill  <joel@oarcorp.com>
1845
1846         PR ada/14665
1847         * ada/osint.adb (Find_Program_Name): Rework to properly handle
1848         filenames which end in .exe or have versioning suffixes like VMS.
1849
1850 2004-04-08  Andrew Pinski  <pinskia@physics.uc.edu>
1851
1852         PR target/10129
1853         * config/darwin.c (darwin_encode_section_info): When the decl has
1854         a DECL_INITIAL, it is only defined also when it is not a common.
1855
1856 2004-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1857
1858         * builtins.c (fold_builtin_isascii, fold_builtin_toascii): New.
1859         (fold_builtin): Handle BUILT_IN_ISASCII and BUILT_IN_TOASCII.
1860
1861 2004-04-07  H.J. Lu  <hongjiu.lu@intel.com>
1862
1863         * config/ia64/ia64.c (ia64_encode_section_info): Don't prod
1864         global register variables.
1865
1866 2004-04-07  Joseph S. Myers  <jsm@polyomino.org.uk>
1867
1868         * fixinc/inclhack.def (rpc_xdr_lvalue_cast_a,
1869         rpc_xdr_lvalue_cast_b): New fixes.
1870         * fixinc/fixincl.x: Regenerate.
1871         * fixinc/tests/base/rpc/xdr.h: Add new tests.
1872
1873 2004-04-07  David Edelsohn  <edelsohn@gnu.org>
1874
1875         * config/rs6000/rs6000.c (processor_target_table): Add MASK_MFCRF
1876         to power4 and power5 entries.
1877
1878 2004-04-06  Geoffrey Keating  <geoffk@apple.com>
1879
1880         * c-common.h (pending_lang_change): Mark for PCH.
1881
1882 2004-04-07  Caroline Tice  <ctice@apple.com>
1883
1884         * gcc.c (main): Move 'break' in main loops (on an error)
1885         to wait until error processing has occurred.
1886
1887 2004-04-06  Nathanael Nerode  <neroden@gcc.gnu.org>
1888
1889         * config.gcc: Stop changing enable_threads midstream.
1890         Replace uses of enable_threads_flag with enable_threads.
1891         * configure.ac: Replace uses of enable_threads_flag with
1892         enable_threads.  Improve autoconf quotation in one place.
1893         * configure: Regenerate.
1894
1895 2004-04-06  Uros Bizjak  <uros@kss-loka.si>
1896
1897         * builtins.c: Implement support for sincos function.
1898         (expand_builtin_mathfn): Remove BUILT_IN_SIN{,F,L} and
1899         BUILT_IN_COS{,F,L}.
1900         (expand_builtin_mathfn_3): New function.
1901         (expand_builtin): Expand BUILT_IN_SIN{,F,L} and
1902         BUILT_IN_COS{,F,L} using expand_builtin_mathfn_3 if
1903         flag_unsafe_math_optimization is set.
1904
1905         * optabs.h (enum optab_index): Add new OTI_sincos.
1906         (sincos_optab): Define corresponding macro.
1907
1908         * optabs.c (init_optabs): Initialize sincos_optab.
1909         (expand_twoval_unop): New function.
1910
1911         * genopinit.c (optabs): Implement sincos_optab using sincos?f3
1912         patterns.
1913
1914         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_SINCOS_COS
1915         and UNSPEC_SINCOS_SIN.
1916
1917         * config/i386/i386.md (sincosdf3, sincossf3, *sincosextendsfdf3,
1918         sincosxf3): New patterns to implement sincos, sincosf and sincosl
1919         built-ins as inline x87 intrinsics. Define splits for
1920         sindf2, sinsf2, *sinextendsfdf2, sinxf2, cosdf2,
1921         cossf2, *cosextendsfdf2 and cosxf2 patterns from corresponding
1922         sincos patterns.
1923         (sindf2, sinsf2, sinxf2): Rename to *sindf2, *sinsf2, *sinxf2.
1924         (cosdf2, cossf2, cosxf2): Rename to *cosdf2, *cossf2, *cosxf2.
1925
1926         (UNSPEC_SINCOS_SIN, UNSPEC_SINCOS_COS): New unspecs to represent
1927         x87's fsincos insn.
1928
1929 2004-04-06  Devang Patel  <dpatel@apple.com>
1930
1931         PR 14467
1932         * config/darwin.h (LINK_COMMAND_SPEC): Use c++filt instead of c++filt3.
1933
1934 2004-04-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1935
1936         * doc/install.texi: Update HP-UX 11 installation procedure.
1937
1938 2004-04-06  Paul Brook  <paul@codesourcery.com>
1939
1940         * doc/sourcebuild.texi: Remove obsolete contraint on testcases.
1941
1942 2004-04-05  Kaz Kojima  <kkojima@gcc.gnu.org>
1943
1944         * config/sh/sh.c (prepare_move_operands): Use emit_call_insn
1945         when the TLS address is generated by a function call.
1946         * config/sh/sh.md (tls_global_dynamic): Use a call expression.
1947         (tls_local_dynamic): Likewise.
1948
1949 2004-04-05  Andrew Pinski  <pinskia@physics.uc.edu>
1950
1951         * tree.c (reconstruct_complex_type): Use TYPE_READONLY
1952         and TYPE_VOLATILE.
1953
1954 2004-04-05  Caroline Tice  <ctice@apple.com>
1955
1956         * gcc.c (combine_flag): New global variable, for new driver option.
1957         (struct compiler): Add two new fields, to be used when
1958         combining multiple input files in a single pass (IMA).
1959         (default_compilers):  Add values for the new fields to all
1960         compiler entries. Modify the "@c" compiler entry for doing IMA
1961         properly with "-save-temps" and the "combine" flag.
1962         (option_map):  Add new driver option, "--combine", to tell driver
1963         to pass multiple input files to compiler at one time.
1964         (have_o_argbuf_index): New global variable.
1965         (store_arg): Modify to assign value to have_o_argbuf_index.
1966         (struct infile):  Add three new fields, to help with IMA.
1967         (display_help): Add help for new "combine" option.
1968         (process_command): Remove local variable have_o; add code to check
1969         for new "combine" option; remove assignment to combine_inputs.
1970         (do_spec_1):  Modify to deal with IMA better.
1971         (main): Make variable 'lang_n_infiles' local to entire function
1972         rather than to a single block.  Use flag combine_flag to
1973         determine whether to do IMA or not; Modify loop initializing
1974         infiles to deal properly with linker files.
1975         Add code for doing preprocessing in presence of
1976         IMA with "-save-temps" flag.  Modify "main" loop to handle
1977         multiple input files, in multiple languages, with or without
1978         preprocessing,  gracefully.
1979         * toplev.c (set_src_pwd): Modify to not complain if attempting to
1980         re-set it to same directory it's previously been set to (avoid
1981         irritating, meaningless warning messages when doing IMA with
1982         save-temps).
1983         * doc/invoke.texi: Add "-combine" to list of Overall Options;
1984         remove documentation about IMA that is no longer accurate; Add
1985         documentation explaining what "-combine" does.
1986         * ada/lang-specs.h: Add initialization values for new fields in
1987         "struct compiler".
1988         * cp/lang-specs.h: Likewise.
1989         * f/lang-specs.h: Likewise.
1990         * java/lang-specs.h: Likewise.
1991         * objc/lang-specs.h: Likewise.
1992         * treelang/lang-specs.h: Likewise.
1993
1994 2004-04-05  David Edelsohn
1995
1996         * config/rs6000/rs6000.c (VTABLE_NAME_P): Add _ZTI to special
1997         symbol handling.
1998
1999 2004-04-05  Jakub Jelinek  <jakub@redhat.com>
2000             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2001
2002         PR optimization/13424 (hppa), bootstrap/14462, c/14828
2003         * pa.md: Use replace_equiv_address to retain the attributes of the
2004         memory operands used in the split and peephole2 patterns for optimizing
2005         the pre-reload movstrsi, movstrdi, clrstrsi and clrstrdi patterns.
2006
2007 2004-04-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2008
2009         * c-decl.c (build_compound_literal): Use TYPE_READONLY.
2010         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
2011         * objc/objc-act.c (adorn_decl, gen_declspecs): Likewise.
2012         * c-typeck.c (decl_constant_value): Don't access DECL_INITIAL of a
2013         PARM_DECL.
2014         * calls.c (flags_from_decl_or_type): Use TYPE_READONLY and do so only
2015         for a type.
2016         * print-tree.c (print_node): Properly handle side-effects, readonly,
2017         and constant flags.
2018         * tree.c (build1_stat, build_expr_wfl): Only look at TREE_SIDE_EFFECTS
2019         and TREE_CONSTANT if not a type.
2020         * tree.h (IS_NON_TYPE_CODE_CLASS): New macro.
2021         (IS_EXPR_CODE_CLASS): Write 'E', not 'e'.
2022         (NON_TYPE_CHECK): New macro.
2023         (TREE_SIDE_EFFECT, TREE_READONLY, TREE_CONSTANT: Add check.
2024
2025 2004-04-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
2026
2027         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Set
2028         to DWARF2_DEBUG unconditionally.
2029         (ASM_DEBUG_SPEC): Set the default to --gdwarf2 unconditionally.
2030
2031 2004-04-04  Ian Lance Taylor  <ian@wasabisystems.com>
2032             Nathanael Nerode  <neroden@gcc.gnu.org>
2033
2034         PR target/14548
2035         * config.host: Set the shell variable host_can_use_collect2.
2036         Set it to yes by default, and to no for alpha*-dec-*vms*,
2037         i[34567]86-*-mingw32*, and powerpc-*-beos*.
2038         * configure.ac: Set and substitute the shell variable collect2.
2039         Give an error if use_collect2 is yes and host_can_use_collect2 is
2040         no.
2041         * Makefile.in (COLLECT2): Rename from USE_COLLECT2.  Change all
2042         uses.  Initialize to @collect2@.
2043         (STAGESTUFF): Remove $(USE_COLLECT2).
2044         * config/alpha/x-vms (USE_COLLECT2): Don't set.
2045         * config/i386/t-mingw32 (USE_COLLECT2): Likewise.
2046         * config/rs6000/t-beos (USE_COLLECT2): Likewise.
2047         * config/pa/t-pa64: Remove commented out USE_COLLECT2.
2048         * configure: Regenerate.
2049
2050 2004-04-04  Roger Sayle  <roger@eyesopen.com>
2051
2052         * simplify-rtx.c (simplify_binary_operation): Constant fold
2053         DIV, MOD, UDIV and UMOD using div_and_round_double.
2054
2055 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
2056
2057         PR c++/14804
2058         * varasm.c (initializer_constant_valid_p): Allow NOP_EXPRs to
2059         RECORD_TYPEs.
2060
2061 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
2062
2063         * doc/invoke.texi (-mabi=o64): Create link to O64 ABI
2064         documentation.
2065
2066 2004-04-04  Roger Sayle  <roger@eyesopen.com>
2067
2068         * cse.c (cse_insn): Correct usage of simplify_replace_rtx when
2069         updating the REG_EQUAL note on an insn's libcall_insn.
2070
2071 2004-04-04  Roger Sayle  <roger@eyesopen.com>
2072
2073         * df.h: Tidy up whitespace in the definitions of the DF_ flags.
2074
2075 2004-04-03  Roger Sayle  <roger@eyesopen.com>
2076
2077         * fold-const.c (fold) <PLUS_EXPR>: Guard (-A)+B -> B-A transformation
2078         with reorder_operands_p.
2079
2080 2004-04-03  Jan Hubicka  <jh@suse.cz>
2081
2082         * md.texi (vec_set, vec_extract, vec_init): Document.
2083
2084 2004-04-02  Gabor Loki <loki@inf.u-szeged.hu>
2085
2086        * opts.c (decode_options): Do function inlining with very small
2087        max-inline-insns-* parameters when optimizing for size.
2088
2089 2004-04-02  Vladimir Makarov  <vmakarov@redhat.com>
2090
2091         * config/i386/i386.h (TARGET_NOCONA): New macro.
2092         (TARGET_CPU_CPP_BUILTINS): Add code for Nocona.
2093         (processor_type): Add PROCESSOR_NOCONA.
2094
2095         * config/i386/i386.md (cpu): Add nocona to the attribute values.
2096
2097         * config/i386/i386.c (nocona_cost): New variable.
2098         (m_NOCONA): New macro.
2099         (x86_push_memory, x86_movx, x86_cmove, x86_deep_branch,
2100         x86_branch_hints, x86_use_sahf, x86_single_stringop,
2101         x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8,
2102         x86_integer_DFmode_moves, x86_partial_reg_dependency,
2103         x86_memory_mismatch_stall, x86_accumulate_outgoing_args,
2104         x86_decompose_lea, x86_arch_always_fancy_math_387,
2105         x86_sse_partial_reg_dependency, x86_sse_load0_by_pxor,
2106         x86_ext_80387_constants, x86_four_jump_limit):
2107         (override_options): Add nocona_cost to processor_target_table.
2108         Set up PROCESSOR_NOCONA for Nocona entry in processor_alias_table.
2109         (incdec_operand): Prevent inc/dec generation for Nocona too.
2110         (ix86_issue_rate): Add PROCESSOR_NOCONA.
2111
2112 2004-04-01  Andrew Pinski  <pinskia@physics.uc.edu>
2113
2114         * rtlanal.c (find_reg_note): Manually
2115         unswitch the loop.
2116
2117 2004-04-01  Mark Mitchell  <mark@codesourcery.com>
2118
2119         * genemit.c (gen_split): Change prototype of generated code.
2120         * genrecog.c (write_action): Adjust prototype for and calls to
2121         gen_split_*.
2122         * gensupport.c (struct queue_elem): Add split field.
2123         (queue_pattern): Return a value.  Clear the split field.
2124         (process_rtx): Maintain an association between an insn and the
2125         split generated from it for a define_insn_and_split.
2126         (process_one_cond_exec): Generate a new split for a
2127         define_insn_and_split.
2128         * config/arm/arm-protos.h (arm_split_constant): Add insn
2129         parameter.
2130         (emit_constant_insn): New function.
2131         (arm_gen_constant): Use it.
2132         * config/arm/arm.md: Adjust calls to arm_split_constant.
2133
2134 2004-04-02  Jan Hubicka  <jh@suse.cz>
2135
2136         * cgraph.c: Add overall comment.
2137         (cgraph_inline_hash): New global variable.
2138         (cgraph_create_node): Break out from ...
2139         (cgraph_node): ... here.
2140         (cgraph_edge): New function.
2141         (cgraph_create_edge): New CALL_EXPR argument; some sanity checking.
2142         (cgraph_remove_edge): Accept edge, intead of source and destination.
2143         (cgraph_redirect_edge_callee): New.
2144         (cgraph_remove_node): Update all new datastructures.
2145         (cgraph_record_call, cgraph_remove_call): Kill.
2146         (dump_cgraph_node): Break out from ... ; dump new datastructures.
2147         (dump_cgraph): ... here.
2148         (cgraph_function_possibly_inlined_p): Use new hashtable.
2149         (cgraph_clone_edge, cgraph_clone_node): New.
2150         * cgraph.h: Include hashtab.h
2151         (struct cgraph_global_info): Kill cloned_times, inline_once, will_be_output
2152         fields, add inlined_to pointer.
2153         (cgraph_node): Add pointer to next_clone.
2154         (cgraph_remove_edge, cgraph_create_edge): Update prototype.
2155         (cgraph_remove_call, cgraph_record_call): Kill.
2156         (cgraph_inline_hash): Declare.
2157         (dump_cgraph_node, cgraph_edge, cg4raph_clone_edge, cgraph_clone_node,
2158         cgraph_redirect_edge_callee): Declare.
2159         (cgraph_create_edges, cgraph_inline_p): Update prorotype.
2160         (cgraph_preserve_function_body_p, verify_cgraph, verify_cgraph_node,
2161         cgraph_mark_inline_edge, cgraph_clone_inlined_nodes): Declare.
2162         * cgraphunit.c: Add overall comment.
2163         (cgraph_optimize_function): Kill.
2164         (cgraph_assemble_pending_functions): Do not assemble inline clones.
2165         (cgraph_finalize_function): Update call of cgraph_remove_node
2166         (record_call_1): Record call sites.
2167         (cgraph_create_edges): Accept node instead of decl argument.
2168         (error_found): New static variable.
2169         (verify_cgraph_node_1, verify_cgraph_node, verify_cgraph): New functions.
2170         (cgraph_analyze_function): Update for new datastructures.
2171         (cgraph_finalize_compilation_unit): Plug memory leak.
2172         (cgraph_optimize_function): Kill.
2173         (cgraph_expand_function): Do not use cgraph_optimize_function.
2174         (INLINED_TIMES, SET_INLINED_TIMES, cgraph_inlined_into,
2175         cgraph_inlined_callees): Kill.
2176         (cgraph_remove_unreachable_nodes): Verify cgraph; update handling of
2177         clones.
2178         (estimate_growth): Simplify.
2179         (cgraph_clone_inlined_nodes): New function.
2180         (cgraph_mark_inline_edge): Re-implement.
2181         (cgraph_mark_inline): Likewise.
2182         (cgraph_check_inline_limits): Simplify.
2183         (cgraph_recursive_inlining_p): New.
2184         (update_callee_keys): Break out from ...
2185         (cgraph_decide_inlining_of_small_functions): ... here; simplify.
2186         (cgraph_decide_inlining, cgraph_decide_inlining_incrementally):
2187         Likewise.
2188         (cgraph_expand_all_functions):  Remove inline clones from the ordered
2189         list.
2190         (cgraph_preserve_function_body_p): New predicate.
2191         (cgraph_optimize): Verify cgraph.
2192         * function.h (struct function): Add fields saved_tree/saved_args.
2193         * timevar.def (TV_CGRAPH_VERIFY): Use verifier.
2194         * toplev.c (rest_of_compilation): Do not free cfun.
2195         * tree-inline.c: Include function.h
2196         (struct inline_data): Add saving_p field; replace decl/current_decl by
2197         node/current_node.
2198         (insert_decl_map): New function.
2199         (copy_body_r): Handle saving; update cgraph datastructure.
2200         (copy_body): Handle recursive inlining.
2201         (initialize_inlined_parameters): Likewise.
2202         (expand_call_inline): Propagate node attributes; update cgraph.
2203         (optimize_inline_calls): Verify that datastructure still match.
2204         (save_body): New function.
2205         * tree-inline.h (save_body): New.
2206         * tree-optimize.c (tree_rest_of_compilation): preserve function body; do inlining.
2207         * langhooks-def.c (LANG_HOOKS_UPDATE_DECL_AFTER_SAVING): New.
2208         * langhooks.c (lang_hooks): Add update_decl_after_saving.
2209
2210 2004-04-01  Serge Belyshev  <1319@bot.ru>
2211
2212         PR target/14702
2213         * config/i386/i386.md: fix source operand constraints in
2214         mmx_pshufw, sse2_pshufd, sse2_pshuflw, sse2_pshufhw
2215
2216 2004-04-01  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
2217
2218         * fold-const.c (folda): Preserve types of comparisons.
2219
2220 2004-04-01  Richard Henderson  <rth@redhat.com>
2221
2222         * toplev.c (backend_init): Move init_optimization_passes call ...
2223         (lang_dependent_init): ... here.
2224
2225 2004-04-01  Alan Modra  <amodra@bigpond.net.au>
2226             Jakub Jelinek  <jakub@redhat.com>
2227
2228         * gcc.c (init_gcc_specs): If HAVE_LD_AS_NEEDED, link with
2229         -lgcc --as-needed -lgcc_s --no-as-needed by default.
2230         * configure.ac (HAVE_LD_AS_NEEDED): Check for ld --as-needed.
2231         * configure: Rebuilt.
2232         * config.in: Rebuilt.
2233         * Makefile.in (stage1-start): Copy also libgcc_s*$(SHLIB_EXT).
2234         (stage2-start, stage3-start, stage4-start): Likewise.
2235         (stageprofile-start, stagefeedback-start): Likewise.
2236
2237 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
2238
2239         * config/sparc/sparc.h (DITF_CONVERSION_LIBFUNCS): Define to 0.
2240         * config/sparc/linux.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
2241         * config/sparc/linux64.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
2242         * config/sparc/sol2.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
2243         (SOLARIS_CONVERSION_LIBFUNCS): Rename to SUN_CONVERSION_LIBFUNCS.
2244         * config/sparc/sparc.c (sparc_init_libfuncs): Initialize optabs
2245         with _Q_qtoll, _Q_qtoull and _Q_lltoq if DITF_CONVERSION_LIBFUNCS.
2246         * config.gcc (sparc-*-linux*): Revert 2004-03-23 change.
2247         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Likewise.
2248         * config/sparc/t-linux: Removed.
2249
2250 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
2251
2252         PR c++/14755
2253         * fold-const.c (fold) <EQ_EXPR>: Properly compute newconst in
2254         "bitfld++ == const" to "++bitfld == const + incr" transformations.
2255
2256 2004-04-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2257
2258         * expr.c (get_inner_reference): Use DECL_UNSIGNED, not TREE_UNSIGNED.
2259         * stor-layout.c (layout_decl): Likewise.
2260         * tree.c (get_narrower): Likewise and also use BIT_FIELD_REF_UNSIGNED.
2261         * fold-const.c (make_bit_field_ref): Use BIT_FIELD_REF_UNSIGNED.
2262         * print-tree.c (print_node): Handle various used of unsigned_flag.
2263         * tree.def (BIT_FIELD_REF): Update comment.
2264         * tree.h (TREE_UNSIGNED): Deleted.
2265         (DECL_UNSIGNED, BIT_FIELD_REF_UNSIGNED): New macros.
2266
2267 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2268
2269         * builtins.c, c-aux-info.c, c-common.c, c-cppbuiltin.c, c-decl.c:
2270         Change most occurrences of TREE_UNSIGNED to TYPE_UNSIGNED.
2271         * c-format.c, c-opts.c, c-pretty-print.c, c-typeck.c: Likewise.
2272         * calls.c, convert.c, dbxout.c, dojump.c, dwarf2out.c: Likewise.
2273         * expmed.c, expr.c, fold-const.c, function.c, integrate.c: Likewise.
2274         * optabs.c, sdbout.c, stmt.c, stor-layout.c, tree-dump.c: Likewise.
2275         * tree.c, config/iq2000/iq2000.c, config/m32r/m32r.c: Likewise.
2276         * config/mips/mips.c, config/rs6000/rs6000.c: Likewise.
2277         * config/s390/s390.c, config/sparc/sparc.c, objc/objc-act.c: Likewise.
2278         * stor-layout.c (layout_type, case COMPLEX_TYPE): Test for
2279         REAL_TYPE, not INTEGER_TYPE.
2280         (layout_type, case VECTOR_TYPE): Simplify code.
2281         * tree.c (build_vector_type_for_mode): Remove dup unsigned setting.
2282         * tree.h: Update comments.
2283         (STRIP_NOPS): Use TYPE_UNSIGNED.
2284         (TYPE_UNSIGNED): New macro.
2285         (TYPE_TRAP_SIGNED): Remove now redundant check.
2286         (SAVE_EXPR_NOPLACEHOLDER): Don't use TREE_UNSIGNED.
2287
2288 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2289
2290         * function.c (put_var_into_stack): Properly set orig_reg for indirect.
2291
2292 2004-03-31  Andrew Pinski  <pinskia@physics.uc.edu>
2293
2294         * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA):
2295         Add darwin-fpsave.asm, darwin-vecsave.asm,
2296         and darwin-world.asm.
2297         (TARGET_LIBGCC2_CFLAGS): Add -Wa,-force_cpusubtype_ALL
2298         as the asm files contain altivec instructions.
2299         * config/rs6000/darwin-fpsave.asm: New file.
2300         * config/rs6000/darwin-vecsave.asm: New file.
2301         * config/rs6000/darwin-world.asm: New file.
2302
2303 2004-03-31  Zack Weinberg  <zack@codesourcery.com>
2304
2305         * gengtype-yacc.y (option, stringseq): Add missing
2306         terminating semicolon.
2307
2308 2004-03-30  David Edelsohn  <edelsohn@gnu.org>
2309
2310         * config/rs6000/rs6000.md (tls_gd_32, tls_gd_64,
2311         tls_ld_32, tls_ld_64, tls_dtprel_32, tls_dtprel_64,
2312         tls_dtprel_ha_32, tls_dtprel_ha_64,
2313         tls_dtprel_lo_32, tls_dtprel_lo_64,
2314         tls_got_dtprel_64, tls_tprel_32, tls_tprel_64,
2315         tls_tprel_ha_32, tls_tprel_ha_64,
2316         tls_tprel_lo_32, tls_tprel_lo_64,
2317         tls_got_tprel_32, tls_got_tprel_64,
2318         tls_tls_32, tls_tls_64): Replace register_operand with
2319         gpc_reg_operand.
2320
2321 2004-03-30  Mostafa Hagog  <mustafa@il.ibm.com>
2322
2323         * config/rs6000/rs6000.md (*ctrsi_internal1, *ctrsi_internal2,
2324         *ctrdi_internal1, *ctrdi_internal2, *ctrsi_internal3,
2325         *ctrsi_internal4, *ctrdi_internal3, *ctrdi_internal4,
2326         *ctrsi_internal5, *ctrsi_internal6, *ctrdi_internal5,
2327         *ctrdi_internal6): Replace register_operand with
2328         nonimmediate_operand.
2329
2330 2004-03-29  Fariborz Jahanian <fjahanian@apple.com>
2331
2332         * fold-const.c (fold): Reassociate multiply expression
2333         with an adjacent non-multiply expression to use
2334         architecture's multiply-add instruction.
2335
2336 2004-03-30  Zack Weinberg  <zack@codesourcery.com>
2337
2338         * gengtype.c (create_option): New function.
2339         * gengtype.h: Prototype it.
2340         * gengtype-yacc.y (stringseq): New rule.
2341         (option): Use create_option.  Add new bare ID production.  Use
2342         stringseq, not STRING directly.
2343
2344         * alias.c, bitmap.c, c-decl.c, cgraph.h, cpplib.h, cselib.h
2345         * dwarf2out.c, emit-rtl.c, function.h, lists.c, tree.h
2346         * varray.h, config/alpha/alpha.c:
2347         Use new shorter form of GTY markers.
2348
2349         * doc/gty.texi: Rewrite.
2350
2351 2004-03-30  Andrew Pinski  <pinskia@physics.uc.edu>
2352
2353         * config/darwin.c (machopic_function_base_name):
2354         Remove current_name and getting the name of the
2355         current function.
2356
2357 2004-03-30  Nick Clifton  <nickc@redhat.com>
2358
2359         * config/arm/arm.md (thumb_jump): Reduce the backward branch
2360         range, and increase the forward branch range, to allow for
2361         the fact that the PC will be off by 4.
2362
2363 2004-03-30  Alan Modra  <amodra@bigpond.net.au>
2364
2365         * .cvsignore: Add GPATH, GRTAGS, GSYMS and GTAGS (GNU GLOBAL)
2366
2367 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
2368
2369         * config/rs6000/rs6000.c (output_vec_const_move):
2370         Find all cases of EASY_VECTOR_15_ADD_SELF.
2371         (easy_vector_constant_add_self): Accept
2372         all vector constant loadable by vsplt* and vadd*.
2373         (easy_vector_same): Use easy_vector_splat_const.
2374         (easy_vector_const): Use easy_vector_splat_const.
2375         (easy_vector_splat_const): New function.
2376         (gen_easy_vector_constant_add_self): New function.
2377
2378         * config/rs6000/rs6000-protos.c (gen_easy_vector_constant_add_self):
2379         New prototype.
2380
2381         * config/rs6000/altivec.md (movv4si splitter): Change to
2382         emit move insn with halfed vector constant.
2383         (*movv8hi splitter): Likewise.
2384         (*movv16qi splitter): Likewise.
2385
2386 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
2387
2388         PR 11591
2389         * config/rs6000/rs6000.c (rs6000_legitimate_address):
2390         Allow any offset to argument pointer in no-strict case.
2391
2392 2004-03-30  Jan Hubicka  <jh@suse.cz>
2393
2394         * toplev.c (backend_init): Add missing call to inint_optimization_passes.
2395         * passes.c (init_optimization_passes, finish_optimization_passes): Output cgraph
2396         dump file in non-unit-at-a-time mode.
2397
2398 2004-03-29  Hans-Peter Nilsson  <hp@axis.com>
2399
2400         * config/cris/cris.h: Correct #ifdef to test for
2401         HAVE_AS_NO_MUL_BUG_ABORT_OPTION, not
2402         HAVE_AS_MUL_BUG_ABORT_OPTION.
2403
2404 2004-03-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2405
2406         * function.c (put_var_into_stack): If old RTL was ADDRESSOF, update
2407         the address inside the old RTL.
2408
2409 2004-03-28  Zack Weinberg  <zack@codesourcery.com>
2410
2411         * c-decl.c: Verify that C_SIZEOF_STRUCT_LANG_IDENTIFIER is correct.
2412         (struct c_binding, struct c_scope): Add chain_next
2413         attributes to GTY markers.
2414         (struct lang_identifier, struct lang_tree_node): Define
2415         here...
2416         * c-tree.h: ... not here.  No longer need to declare struct
2417         c_binding either.  Do define C_SIZEOF_STRUCT_LANG_IDENTIFIER.
2418         * c-lang.c, objc/objc-lang.c: Set LANG_HOOKS_IDENTIFIER_SIZE
2419         to C_SIZEOF_STRUCT_LANG_IDENTIFIER.
2420
2421         PR 14734, 11944
2422         * c-decl.c (get_parm_info): If error_mark_node is encountered
2423         in the bindings chain, unbind and discard it; don't abort.
2424
2425 2004-03-28  Olga Golovonevsky <olga@il.ibm.com>
2426             Dorit Naishlos <dorit@il.ibm.com>
2427
2428         * config/rs6000/altivec.md: (andvv16qi3, andv8hi3, one_cmplv16qi2,
2429         one_cmplv8hi2, one_cmplv4si2, iorv16qi3, iorv8hi3,): New modelling.
2430
2431 2004-03-28  Stephane Carrez  <stcarrez@nerim.fr>
2432
2433         * config/m68hc11/m68hc11-protos.h (m68hc11_page0_symbol_p): Declare.
2434
2435         * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute): New.
2436         (m68hc11_attribute_table): New attribute "page0" to mark a global
2437         variable as being allocated from within page0 section.
2438         (m68hc11_encode_label): New function.
2439         (m68hc11_strip_name_encoding): New function.
2440         (m68hc11_page0_symbol_p): New function.
2441         (m68hc11_indirect_p): Accept global variables marked in page0.
2442         (m68hc11_encode_section_info): Lookup "page0" attribute.
2443
2444         * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): 'R' constraint also
2445         represents access to page0 variables.
2446
2447         * config/m68hc11/m68hc11.md ("*logicalsi3_zexthi"): Use gen_rtx_REG.
2448         ("*logicalsi3_silshl16_zext"): Likewise.
2449         ("*ashldi3_const32"): Likewise.
2450         (peephole2 ashift): Likewise.
2451
2452 2004-03-28  Joseph S. Myers  <jsm@polyomino.org.uk>
2453
2454         * c-tree.h (C_DECL_REGISTER): New.
2455         * c-aux-info.c (gen_decl), c-decl.c (objc_mark_locals_volatile,
2456         finish_decl, grokdeclarator, get_parm_info), c-typeck.c
2457         (build_array_ref, c_mark_addressable): Set and use it.
2458         * c-decl.c (grokdeclarator), c-typeck.c (c_mark_addressable):
2459         Allow structures with volatile fields to be declared register.
2460         Don't check TREE_ADDRESSABLE before warning about taking address
2461         of register.
2462         * c-decl.c (finish_decl): Don't allow structures with volatile
2463         fields to be placed in named register.
2464         * doc/trouble.texi: Remove reference to structures with volatile
2465         fields in registers.
2466
2467 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
2468
2469         * function.c (thread_prologue_and_epilogue): Move
2470         NOTE_INSN_FUNCTION_END and NOTE_INSN_FUNCTION_BEG notes
2471         before the epilogue.
2472
2473 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
2474
2475         * expr.c (store_constructor): Use gen_int_mode to correctly
2476         sign-extend CONST_INT value.
2477
2478 2004-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2479
2480         * builtin-types.def (BT_WINT, BT_FN_INT_WINT, BT_FN_WINT_WINT): New.
2481         * builtins.def (DEF_C94_BUILTIN): New.  Add wctype builtins.
2482         * doc/extend.texi: Likewise.
2483
2484 2004-03-26  Diego Novillo  <dnovillo@redhat.com>
2485
2486         * c-typeck.c (comptypes): Replace calls to TYPE_DOMAIN
2487           with TYPE_ORIG_SIZE_TYPE.
2488
2489 2004-03-25  Aldy Hernandez  <aldyh@redhat.com>
2490
2491         PR 14219
2492         * c-typeck.c (build_binary_op): Do not allow comparisons of
2493         vectors.
2494
2495 2004-03-26  James A. Morrison  <ja2morri@uwaterloo.ca>
2496
2497         * config.gcc: Remove sparc-tti-*.
2498         * config/sparc/pbd.h: Delete.
2499
2500         * config/sparc/sol2.h: Remove note about Sun OS 4.x.
2501         * config/sparc/aout.h: Likewise.
2502
2503         * config/sparc/sparc.h: Remove if 0'd code.
2504         * config/sparc/sparc.md (call): Remove if 0'd code.
2505         (call_value): Likewise.
2506         (nonlocal_goto): Likewise.
2507         (unimp_insn): Delete.
2508
2509 2004-03-25  Roger Sayle  <roger@eyesopen.com>
2510
2511         * fold-const.c (tree_expr_nonnegative_p): Handle BIT_XOR_EXPR like
2512         BIT_IOR_EXPR; A^B is nonnegative when A and B are nonnegative.
2513
2514 2004-03-25  Richard Henderson  <rth@redhat.com>
2515
2516         PR 11527
2517         * c-typeck.c (pop_init_level): Emit pending init elements earlier
2518         rather than later.
2519
2520 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2521
2522         * builtins.c (fold_builtin): Fix error in last change.
2523
2524 2004-03-25  Richard Sandiford  <rsandifo@redhat.com>
2525
2526         * config/mips/mips.h: Formatting fix.
2527
2528 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2529
2530         * builtins.def: Add ctype builtins.
2531         * doc/extend.texi: Likewise.
2532
2533 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2534
2535         * builtins.c (fold_builtin): Add new builtin optimizations for
2536         sqrt and/or cbrt.
2537         * fold-const.c (fold): Likewise.
2538
2539 2004-03-25  David Edelsohn  <edelsohn@gnu.org>
2540
2541         * config/rs6000/rs6000.c (rs6000_always_hint): New variable.
2542         (rs6000_sched_groups): New variable.
2543         (processor_target_table): Add power5.
2544         (rs6000_override_options): Set rs6000_sched_insert_nops,
2545         rs6000_sched_costly_dep and rs6000_sched_restricted_insns_priority
2546         from rs6000_sched_groups.
2547         (output_cbranch): Use rs6000_always_hint.
2548         (rs6000_variable_issue): Use rs6000_sched_groups.
2549         (rs6000_adjust_cost): Add CPU_POWER5.
2550         (is_microcoded_insn): Use rs6000_sched_groups.
2551         (is_dispatch_slot_restricted): Use rs6000_sched_groups.
2552         Return 2 for POWER5 cracked instructions.
2553         (is_cracked_insn): Use rs6000_sched_groups.
2554         (is_branch_slot_insn): Use rs6000_sched_groups.
2555         (rs6000_issue_rate): Add CPU_POWER5.
2556         (rs6000_sched_finish): Use rs6000_sched_groups.
2557         (rs6000_rtx_costs): Add PROCESSOR_POWER5.
2558         * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER5.
2559         (DEFAULT_SCHED_COSTLY_DEP): Delete.
2560         (DEFAULT_RESTRICTED_INSNS_PRIORITY): Delete.
2561         (DEFAULT_SCHED_FINISH_NOP_INSERTION_SCHEME): Delete.
2562         * config/rs6000/rs6000.md (define_attr "cpu"): Add power5.
2563         * config/rs6000/power5.md: New file.
2564         * doc/invoke.texi: Add power5 option.
2565
2566 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
2567
2568         * cfgrtl.c, dbxout.c, tree.def, config/darwin.h,
2569         config/arm/arm.c, objc/objc-act.c: Fix comment typos.
2570         * doc/invoke.texi: Fix a typo.
2571
2572 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
2573
2574         PR optimization/9707.
2575         * stmt.c (emit_case_nodes): Emit equality comparisons instead
2576         of recursing if both children are single-valued cases with no
2577         children.
2578
2579 2004-03-25  Paul Brook  <paul@codesourcery.com>
2580
2581         * config/arm/arm.c (vfp_print_multi): Remove.
2582         (arm_output_fldmx): New function.
2583         (vfp_emit_fstmx): Return block size, not insn. Add ARM10 VFPr1 bugfix.
2584         (arm_expand_prologue): Update to match.
2585         (arm_get_vfp_saved_size): New Function.
2586         (arm_get_frame_offsets): Use it.
2587         (arm_output_epilogue): Use new functions.
2588
2589 2004-03-24  Richard Henderson  <rth@redhat.com>
2590
2591         * alias.c (alias_invariant, alias_invariant_size): Mark GTY.
2592         (reg_known_value, reg_known_value_size): Likewise; make static.
2593         (reg_known_equiv_p): Make static.
2594         (clear_reg_alias_info): Update for new indexing.
2595         (get_reg_known_value, set_reg_known_value): New.
2596         (get_reg_known_equiv_p, set_reg_known_equiv_p): New.
2597         (canon_rtx): Use them.
2598         (init_alias_analysis): Likewise.  Allocate reg_known_value with gc.
2599         Don't play queer offsetting games with reg_known_value and
2600         reg_known_equiv_p.
2601         (end_alias_analysis): Free reg_known_value with gc.
2602         * rtl.h (get_reg_known_value, get_reg_known_equiv_p): Declare.
2603         * sched-deps.c (reg_known_equiv_p, reg_known_value): Remove.
2604         (deps_may_trap_p, sched_analyze_1, sched_analyze_2): Use the new
2605         functions instead.
2606
2607 2004-03-24  Kazu Hirata  <kazu@cs.umass.edu>
2608
2609         * dwarf2asm.c, loop.h, pretty-print.c, pretty-print.h,
2610         config/i386/mmintrin.h: Update copyright.
2611
2612 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
2613
2614         * configure.ac: Add --enable-werror-always (for top level bootstrap
2615         support).
2616         * configure: Regenerate.
2617
2618 2004-03-24  Ziemowit Laski  <zlaski@apple.com>
2619
2620         * objc/objc-act.c (objc_comptypes): Treat comparisons
2621         between 'Class' and '<class> *' as explicitly invalid.
2622
2623 2004-03-24  David Edelsohn  <edelsohn@gnu.org>
2624
2625         * doc/invoke.texi (-frename-registers: Add enabled at -O3.
2626         (-fprofile-values): Add enabled with profile-{generate,use}.
2627         (-fvpt): Same.
2628         (-ftracer): Add enabled with profile-use.
2629         (-funit-at-a-time): Add enabled at -O2,-O3.
2630         (-funroll-loops): Add enabled with profile-use.
2631         (-funswitch-loops): Add enabled with profile-use.  Remove duplicates.
2632         (max-gcse-passes): Mention default.
2633         (max-cse-path-length): Mention default.
2634
2635 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
2636
2637         * Makefile.in (STRICT2_WARN): Reorder.
2638         * configure.ac: Check for -Wold-style-definition, and use it
2639         in strict1_warn if it's available.
2640         * configure: Regnerate.
2641
2642 2004-03-24  Paul Brook  <paul@nowt.org>
2643
2644         * config.gcc <arm>: Add --with-abi=
2645         * config/arm/arm-protos.h (arm_get_frame_size, thumb_get_frame_size,
2646         thumb_far_jump_used): Remove prototypes.
2647         (arm_needs_doubleword_align): Add prototype.
2648         (thumb_compute_initial_elimination_offset): Ditto.
2649         * config/arm/arm.c (arm_get_frame_offsets): New function.
2650         (use_return_insn, output_return_instruction, arm_output_epilogue,
2651         arm_output_function_epilogue, arm_compute_initial_elimination_offset,
2652         arm_expand_prologue, thumb_expand_epilogue): Use it.
2653         (arm_abi, target_abi_name, all_arm_abis): New variables.
2654         (arm_override_options): Set them.  Set structure padding for AAPCS.
2655         (arm_return_in_memory): Update ABI check.
2656         (arm_init_cumulative_args): Initialize can_split.
2657         (arm_needs_doubleword_align): New function.
2658         (arm_function_arg): Don't split args after pushing to stack. Handle
2659         doubleword/even reg alignment.
2660         (arm_va_arg): Handle all doubleword aligned args.
2661         (add_minpoolforward ref, dump_minpool, push_minpool_fix): Align based
2662         on ABI, not CPU.
2663         (arm_compute_save_reg0_reg12_mask): Fix comment.
2664         (thumb_get_frame_size, thumb_get_frame_size): Remove.
2665         (thumb_jump_far_used_p): Remove superfluous argument.  Return save
2666         value for alignment.
2667         (thumb_unexpanded_epilogue, thumb_output_function_prologue): Change
2668         to match.
2669         (thumb_compute_initial_elimination_offset): New function.
2670         (thumb_expand_prologue): Use arm_get_frame_offsets.  Remove
2671         unneccessary rounding.
2672         * config/arm/arm.h (target_abi_name): Declare.
2673         (ARM_DOUBLEWORD_ALIGN, DOUBLEWORD_ALIGNMENT, TARGET_IWMMXT_ABI,
2674         arm_abi_type, ARM_DEFAULT_ABI): Define.
2675         (ARM_FLAG_ATPCS): Remove.
2676         (TARGET_OPTIONS, OPTION_DEFAULT_SPECS): Add -mabi=.
2677         (BIGGEST_ALIGNMENT, PREFERRED_STACK_BOUNDARY, STACK_BOUNDARY): Use it.
2678         (ADJUST_FIELD_ALIGN, DATA_ALIGNMENT, LOCAL_ALIGNMENT,
2679         TYPE_NEEDS_IWMMXT_ALIGNMENT): Remove.
2680         (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P, FUNCTION_ARG_REGNO_P):
2681         Contitionalize on ABI, not CPU.
2682         (struct arm_stack_offsets): Define.
2683         (struct machine_function): Add stack_offsets.  Remove frame_size.
2684         (FUNCTION_ARG_PARTIAL_NREGS): Don't split if previous args have been
2685         pushed.
2686         (FUNCTION_ARG_ADVANCE, FUNCTION_ARG_BOUNDARY): Handle general
2687         doubleword alignment.
2688         (THUMB_INITIAL_ELIMINATION_OFFSET,
2689         ARM_INITIAL_ELIMINATION_OFFSET): Remove.
2690         (INITIAL_ELIMINATION_OFFSET): Call functions directly.
2691         * config/arm/arm.md (align_8): Enable for all targets.
2692         * config/arm/netbsd-elf.h (TARGET_DEFAULT): Remove TARGET_ATPCS.
2693         (ARM_DEFAULT_ABI): Define.
2694         * doc/invoke.texi <ARM>: Document -mabi=. Update documentation for
2695         -mstructure-size-boundary.
2696
2697 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
2698
2699         * configure.ac: Check for -Wno-variadic-macros; don't use
2700         -pedantic (in stage 1 or a simple 'make all') unless it's available,
2701         and if it's available, use it.  Also, clean up check for
2702         -Wno-long-long.
2703         * configure: Regenerate.
2704
2705 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
2706
2707         * config.gcc (mips64vr-*-elf*, mips64vrel-*-elf*): Remove tm_defines.
2708         * config/mips/vr.h (DEFAULT_VR_ARCH): New macro, defined to vr4130.
2709         (MULTILIB_DEFAULTS): Use it.
2710         (MIPS_CPU_STRING_DEFAULT): Remove.
2711         (MIPS_ABI_DEFAULT, MIPS_MARCH_CONTROLS_SOFT_FLOAT): Define.
2712         (DRIVER_SELF_SPECS): Make -mfix-vr4122-bugs imply -march=vr4120.  Make
2713         EABI64 -mlong32 the default ABI.  Enforce the default architecture.
2714         * config/mips/t-vr (MULTILIB_OPTIONS): Add mfix-vr4122-bugs,
2715         march=vr4130, march=vr4300, march=vr5000 and march=vr5500.
2716         (MULTILIB_MATCHES): Use -mfix-vr4122-bugs multilibs for -march=vr4120.
2717         (MULTILIB_EXCEPTIONS): Change choice of multilibs.  Update comments
2718         accordingly.
2719
2720 2004-03-24  DJ Delorie  <dj@redhat.com>
2721             Richard Sandiford  <rsandifo@redhat.com>
2722
2723         * config/mips/mips.h (MASK_FIX_VR4122, TARGET_FIX_VR4122): New macros.
2724         (TARGET_SWITCHES): Add -mfix-vr4122-bugs and -mno-fix-vr4122-bugs.
2725         (ASM_SPEC): Pass down -mfix-vr4122-bugs.
2726         * config/mips/mips.c (mips_avoid_hazards): Don't emit whole functions
2727         in .set noreorder and .set nomacro if TARGET_FIX_VR4122.
2728         (mips_init_libfuncs): Use special functions for divsi3 and modsi3
2729         if TARGET_FIX_VR4122.
2730         * config/mips/mips.md (define_attr length): Account for nops inserted
2731         after macc and dmult when using -mfix-vr4122-bugs.
2732         (umuldi3_highpart, divmodsi4, divmoddi4): Disable if TARGET_FIX_VR4122.
2733         * config/mips/t-vr (LIB2FUNCS_STATIC_EXTRA): Define instead of
2734         LIB2FUNCS_EXTRA.  Add config/mips/vr4122-div.S.
2735         * config/mips/vr4122-div.S: New file.
2736         * doc/invoke.texi: Document -mfix-vr4122-bugs.
2737
2738 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
2739
2740         * config/mips/mips.h (PROCESSOR_R4130): New processor_type.
2741         (TARGET_MIPS4130): New macro.
2742         (ISA_HAS_MACC): Return true if TARGET_MIPS4130 && !TARGET_MIPS16.
2743         * config/mips/mips.c (mips_cpu_info_table): Add a vr4130 entry.
2744         (override_options): Extend MIPS_MARCH_CONTROLS_SOFT_FLOAT to deal
2745         with PROCESSOR_R4130.
2746         * config/mips/mips.md (define_attr cpu): Add r4130.
2747         * doc/invoke.texi: Document vr4130 as a supported MIPS architecture.
2748
2749 2004-03-24  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
2750             Richard Sandiford  <rsandifo@redhat.com>
2751
2752         * doc/invoke.texi: Apply missed hunk from 2004-03-03 change.
2753
2754 2004-03-24  Alexandre Oliva  <aoliva@redhat.com>
2755
2756         PR preprocessor/14438
2757         * cpplib.c (do_pragma): Remove line_change call after pragma
2758         handler.
2759
2760 2004-03-23  Ian Lance Taylor  <ian@wasabisystems.com>
2761
2762         * doc/extend.texi (ARM Built-in Functions): Replace with correct
2763         declarations.
2764
2765 2004-03-23  Roger Sayle  <roger@eyesopen.com>
2766
2767         * reg-stack.c (get_true_reg): Handle FLOAT_TRUNCATE like FLOAT_EXTEND
2768         if flag_unsafe_math_optimizations.
2769         * config/i386/i386.md (truncdfsf2): If flag_unsafe_math_optimizations
2770         and TARGET_80387 expand using truncdfsf2_noop pattern.
2771         (truncxfsf2): Likewise using truncxfsf2_noop.
2772         (truncxfdf2): Likewise using truncxfdf2_noop.
2773         (truncdfsf2_noop, truncxfsf2_noop, truncxfdf2_noop): New patterns.
2774
2775 2004-03-23  Ziemowit Laski  <zlaski@apple.com>
2776
2777         * hooks.c (hook_constcharptr_tree_null): New hook.
2778         * hooks.h (hook_constcharptr_tree_null): New prototype.
2779         * target-def.h (TARGET_MANGLE_FUNDAMENTAL_TYPE): New target hook.
2780         * target.h (mangle_fundamental_type): New target hook.
2781         * config/rs6000/rs6000.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Point
2782         target hook at rs6000_mangle_fundamental_type.
2783         (rs6000_mangle_fundamental_type): New function.
2784         * doc/tm.texi (TARGET_MANGLE_FUNDAMENTAL_TYPE): Document.
2785
2786 2004-03-23  Zack Weinberg  <zack@codesourcery.com>
2787
2788         PR 12267, 12391, 12560, 13129, 14114, 14133
2789         * c-tree.h: Forward declare struct c_binding.  Declare
2790         c_override_bindings_to_false.  Update prototypes.
2791         (struct lang_identifier): Update comments.  Change fields to be
2792         struct c_binding *.
2793         (IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE)
2794         (IDENTIFIER_LABEL_VALUE, C_DECL_INVISIBLE)
2795         (KEEP_NO, KEEP_YES, KEEP_MAYBE): Delete.
2796         (C_DECL_IN_EXTERNAL_SCOPE, C_DECL_DECLARED_BUILTIN): New.
2797         * c-common.h: Update prototypes.
2798         * c-decl.c (struct c_scope): Update commentary.  Remove names,
2799         names_last, parms, parms_last, tags, and shadowed fields.  Add
2800         bindings and depth fields.
2801         (scope_freelist): Move to more appropriate location.
2802         (c_print_identifier): Update for changes to struct lang_identifier.
2803         (objc_mark_locals_volatile): Update for new bindings structures.
2804         (global_bindings_p): Honor c_override_global_bindings_to_false.
2805         (pushlevel): Rename to push_scope; take no arguments; use the
2806         scope_freelist; initialize scope->depth and check for overflow.
2807         (poplevel): Rename to pop_scope; totally rewritten for new bindings
2808         structures.
2809         (diagnose_mismatched_decls): Use C_DECL_DECLARED_BUILTIN, not
2810         C_DECL_INVISIBLE, for certain decisions.  Adjust some diagnostics.
2811         Improve some commentary.  Adjust handling of forward parm decls.
2812         (merge_decls): Set C_DECL_DECLARED_BUILTIN when appropriate.
2813         Preserve C_DECL_IN_EXTERNAL_SCOPE.
2814         (warn_if_shadowing): Correct indentation.  Improve diagnostics.
2815         (pushdecl): Remove unnecessary assertion.  Short-circuit anonymous
2816         decls.  Rewrite for new bindings structures.  Improve commentary.
2817         Eliminate the copy_node call.
2818         (implicit_decl_warning): Use the "diag" idiom (as seen in
2819         locate_old_decl) to reduce code duplication; call locate_old_decl
2820         if appropriate.  Relocate to remove need for forward declaration.
2821         (implicitly_declare): Adjust for new bindings structures.  Kludge
2822         around Objective-C not-really-builtin functions.
2823         (undeclared_variable): Improve diagnostics.  If current_function_decl
2824         is nonnull but current_function_scope is null, use current_scope.
2825         Use bind.
2826         (lookup_tag): Adjust for new bindings structures.  Kludge around
2827         Objective-C's tag declarations that wind up in the external scope.
2828         (lookup_name): Adjust for new bindings structures.  Kludge around
2829         c-common.c's pseudo-typedefs that wind up in the external scope.
2830         (lookup_name_current_level): Rename lookup_name_in_scope; take a
2831         second argument indicating the scope to examine; rewrite for
2832         new bindings structures.
2833         (c_init_decl_processing): Adjust for renamed functions.  Do not
2834         initialize current_file_decl, first_builtin_decl, last_builtin_decl.
2835         First scope pushed is the external scope, not the global scope.
2836         (builtin_function): Use bind, not pushdecl.  Adjust other bits
2837         for new data structures.  Keep track of builtins that should be
2838         made visible automatically.
2839         (start_decl): Adjust diagnostics.  Remove unnecessary call to
2840         expand_decl.
2841         (grokparms): Return 0 if arg_types is error_mark_node.
2842         (get_parm_info): Rename "void_at_end" argument to "ellipsis", with
2843         reversed sense.  Rewrite for new bindings structures.  Do not
2844         leave any decls in the scope, to prevent pop_scope from doing
2845         contradictory things with them.
2846         (finish_struct, finish_enum): Remove redundant diagnostics.
2847         (build_enumerator): Don't cascade diagnostics for error_mark_node.
2848         Mark location where -pedantic changes the meaning of the program.
2849         (store_parm_decls_newstyle, store_parm_decls_oldstyle): Load the
2850         parameter decls into the function's scope structure using bind.
2851         Warn here about function definitions in the wrong style.
2852         Adjust diagnostics.
2853         (store_parm_decls): Correct the determination of whether a
2854         function was defined with a prototype.
2855         (c_write_global_declarations): Operate on all file decls and on
2856         the external scope.  Split body of the loop to...
2857         (c_write_global_declarations_1): ... this new function, to avoid
2858         code duplication.
2859         (truly_local_externals, first_builtin_decl, last_builtin_decl)
2860         (make_scope, pop_scope, in_parm_level_p, set_block)
2861         (any_external_decl, record_external_decl, bind_label, getdecls)
2862         (link_hash_hash, link_hash_eq, merge_translation_unit_decls)
2863         (c_reset_state): Delete.
2864         (visible_builtins, c_override_global_bindings_to_false)
2865         (c_binding, I_SYMBOL_BINDING, I_SYMBOL_DECL, I_TAG_BINDING)
2866         (I_TAG_DECL, I_LABEL_BINDING, I_LABEL_DECL, file_scope)
2867         (external_scope, binding_freelist, bind, free_binding_and_advance)
2868         (push_file_scope, pop_file_scope): New.
2869         (pushtag, pushdecl_top_level, lookup_label, declare_label)
2870         (define_label, c_make_fname_decl, finish_decl)
2871         (mark_forward_parm_decls, build_compound_literal)
2872         (grokdeclarator, start_function, check_for_loop_decls)
2873         (identifier_global_value, record_builtin_type): Minor adjustments
2874         for new bindings structures.  Improve diagnostics and commentary.
2875         * c-objc-common.c (start_cdtor, finish_cdtor): Adjust calls to
2876         pushlevel/poplevel respectively.
2877         (c_objc_common_finish_file): Don't call merge_translation_unit_decls.
2878         * c-opts.c (c_common_parse_file): Remove spurious ATTRIBUTE_UNUSED.
2879         Warn about YYDEBUG not being defined only if -dy.  Remove no-longer-
2880         correct loop over multiple translation units; call fatal_error if
2881         requested to compile more than one file at once.  (This disables
2882         IMA temporarily - an up-front error being preferable to a crash.)
2883         * c-parse.in (pushlevel, poplevel rules): Rename push_scope, pop_scope.
2884         (all actions): Adjust calls to pushlevel/poplevel.
2885         (parsing_iso_function_signature): Delete.
2886         (extdef_1): Fold into extdef.
2887         (old_style_parm_decls_1): Fold into old_style_parm_decls.  Don't
2888         warn here about function definitions in the wrong style.
2889         (after_tyle_declarator, parm_declarator_starttypename)
2890         (parm_declarator_nostarttypename, notype_declarator): Remove
2891         commented-out productions.
2892         (parmlist_1, parmlist_2): Use make_node, not tree_cons, to create
2893         an empty TREE_LIST node.  Adjust calls to get_parm_info.
2894         (parmlist_2 : ELLIPSIS): Tag the arg-info block with error_mark_node
2895         to suppress -Wold-style-definition after this error.
2896         (c_parse_file): Don't clear the binding stack or call
2897         finish_fname_decls here.  Correct comment.
2898         * c-typeck.c (same_translation_unit_p): Export.
2899         (common_type): Use c_override_global_bindings_to_false, not
2900         pushlevel/poplevel/declare_parm_level.
2901         * c-lang.c: Override LANG_HOOKS_CLEAR_BINDING_STACK,
2902         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK,
2903         and LANG_HOOKS_GETDECLS with do-nothing stubs.
2904         * objc/objc-lang.c: Likewise.
2905         * objc/objc-act.c: Adjust all calls to pushlevel, poplevel,
2906         get_parm_info.
2907         (OBJC_VOID_AT_END): Delete; replace all uses
2908         with void_list_node.
2909         (generate_forward_declaration_to_string_table): Delete.
2910         * objc/objc-act.h (OCTI_STRG_DECL, UOBJC_STRINGS_decl): Delete.
2911
2912         * coverage.c (create_coverage): Don't pushdecl anything.
2913         * langhooks.c (lhd_clear_binding_stack): Call
2914         lang_hooks.decls.poplevel, not poplevel.
2915         * tree.c (list_length): If ENABLE_TREE_CHECKING, abort on a
2916         circular list rather than going into an infinite loop.
2917
2918 2004-03-23  Olivier Hainque  <hainque@act-europe.fr>
2919
2920         * optabs.c (expand_binop): When synthesizing double word rotates
2921         from single word shifts, use a new register target if the provided
2922         target is not a REG already.
2923
2924 2004-03-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2925
2926         * alias.c (get_alias_set): Add support for TYPE_REF_CAN_ALIAS_ALL.
2927         * c-common.c (handle_mode_attribute): Add extra arg to
2928         build_pointer_type_for_mode and build_reference_type_for_mode.
2929         * c-typeck.c (build_c_cast): Only look at TREE_CONSTANT_OVERFLOW
2930         for INTEGER_CST.
2931         * tree.c (build_pointer_type_for_mode): Add arg CAN_ALIAS_ALL.
2932         Chain pointers via TYPE_NEXT_PTR_TO.
2933         (build_reference_type_for_mode): Similarly.
2934         (build_type_no_quals): Add extra arg to build_pointer_type_for_mode
2935         and build_reference_type_for_mode.
2936         (tree_check4_failed): New function.
2937         * tree.h (TREE_CHECK4, PTR_OR_REF_CHECK): New macros.
2938         (TYPE_REF_CAN_ALIAS_ALL, TYPE_NEXT_PTR_TO, TYPE_NEXT_REF_TO): Likewise.
2939         (TREE_NO_UNSUED_WARNING, TREE_VIA_VIRTUAL, TREE_CONSTANT_OVERFLOW):
2940         Add check.
2941
2942 2004-03-23  Roger Sayle  <roger@eyesopen.com>
2943
2944         * fold-const.c (tree_expr_nonnegative_p): A&B is nonnegative when
2945         A is nonnegative or B is nonnegative.  Similarly A|B is nonnegative
2946         when both A and B are nonnegative.
2947         (tree_expr_nonzero_p): A|B is nonzero when A is nonzero or B is
2948         nonzero.
2949
2950 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
2951
2952         * fold-const.c (fold): Remove cases for INTEGER_CST, REAL_CST,
2953         VECTOR_CST, STRING_CST, COMPLEX_CST, and CONSTRUCTOR.
2954
2955 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
2956
2957         PR optimization/14669
2958         * fold-const.c (fold): Only unwiden integer comparisons for equality
2959         and inequality operators, or when the signedness doesn't change.
2960
2961 2004-03-23  Jakub Jelinek  <jakub@redhat.com>
2962
2963         * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
2964         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Set.
2965         * config/sparc/t-linux: New file.
2966
2967 2004-03-23  Richard Sandiford  <rsandifo@redhat.com>
2968
2969         * gcse.c (can_assign_to_reg_p): New function, split out from...
2970         (want_to_gcse_p): ...here.
2971         (compute_ld_motion_mems): Use can_assign_to_reg_p to validate
2972         the rhs of a store.
2973
2974 2004-03-22  Diego Novillo  <dnovillo@redhat.com>
2975
2976         * c-typeck.c (same_translation_unit_p): Fix pasto.
2977
2978 2004-03-22  David Edelsohn  <edelsohn@gnu.org>
2979
2980         * params.def (PARAM_MAX_SCHED_REGION_BLOCKS): New.
2981         (PARAM_MAX_SCHED_REGION_INSNS): New.
2982         * sched-rgn.c: Include params.h
2983         (MAX_RGN_BLOCKS): Delete.
2984         (MAX_RGN_INSNS): Delete.
2985         (too_large): Return bool.  Convert to PARAM_VALUE.
2986         * Makefile.in (sched-rgn.o): Depend on $(PARAMS_H).
2987         * doc/invoke.texi (param): Document max-sched-region-blocks and
2988         max-sched-region-insns.
2989
2990 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
2991
2992         * dwarf2out.c (is_subrange_type): Do not emit a subrange_type DIE
2993         for base types.
2994
2995 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
2996
2997         * dwarf2out.c (is_subrange_type): Minor code rework. No behavior
2998         change.
2999
3000 2004-03-22  Jakub Jelinek  <jakub@redhat.com>
3001
3002         PR c/14069
3003         * c-decl.c (finish_struct): Change type of incorrect flexible array
3004         field into error_mark_node.
3005
3006 2004-03-22  Andrew Pinski  <pinskia@physics.uc.edu>
3007
3008         PR target/14580
3009         * config/rs6000/rs6000.c (symbol_ref_operand): Reject symbols
3010         who are not local for Darwin PIC.
3011
3012 2004-03-22  Ulrich Weigand  <uweigand@de.ibm.com>
3013
3014         * regrename.c (regrename_optimize): Set regs_ever_live for all
3015         registers introduced as replacement.
3016
3017 2004-03-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
3018
3019         PR middle-end/14470
3020         * expr.c (mark_queue): New function.
3021         (emit_insns_enqueued_after_mark): New function replacing
3022         emit_queue.  Clear the body of emitted queued insns.
3023         (emit_queue): Call emit_insns_enqueued_after_mark.
3024         (store_expr): Mark the increment queue on entry.  Emit
3025         only the incrementations queued when expanding the source.
3026
3027 2004-03-22  Nathanael Nerode  <neroden@gcc.gnu.org>
3028
3029         * configure.ac: Allow --disable-coverage-flags (for the future benefit
3030         of top level bootstrap, and consistency).  Reindent.
3031         * configure: Regenerate.
3032
3033 2004-03-21  Kazu Hirata  <kazu@cs.umass.edu>
3034
3035         * bt-load.c, builtins.c, cfghooks.c, cfgrtl.c, gcse.c,
3036         ggc-page.c, integrate.c, var-tracking.c, web.c: Remove
3037         unnecessary casts.
3038
3039 2004-03-22  Danny Smith  <dannysmith@users.sourceforge.net>
3040
3041         PR target/14291
3042         * gcov-io.h (gcov_truncate): Define ftruncate as _chsize for
3043         __MINGW32__.
3044
3045 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
3046
3047         * config/s390/s390.md ("*doloop_si"): Change predicate for operand 2
3048         to nonimmediate_operand.
3049         ("*doloop_di"): Likewise.
3050
3051 2004-03-21  Alexandre Oliva  <aoliva@redhat.com>
3052
3053         * real.h (struct real_value): Use the same type for all
3054         bitfields.  Rename exp to uexp.
3055         (REAL_EXP, SET_REAL_EXP): New accessor macros for uexp.
3056         Adjust all uses of exp...
3057         * builtins.c: ... here, ...
3058         * emit-rtl.c: ... here, and ...
3059         * real.c: ... and here.
3060
3061 2004-03-21  Gabriel Dos Reis  <gdr@integrable-solutions.net>
3062
3063         * pretty-print.c (pp_base_maybe_space): New function.
3064         * pretty-print.h (pp_base_maybe_space): Declare.
3065         (pp_maybe_space): New macro.
3066
3067 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
3068
3069         * config/s390/s390.md ("addti3", "subti3"): New insns and splitters.
3070
3071 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
3072
3073         * expmed.c (choose_mult_variant): Pass MULT_COST as argument instead
3074         of using register multiplication cost.
3075         (expand_mult): Adapt choose_mult_variant call.
3076         (expand_mult_highpart): Call choose_mult_variant with WIDER_MODE
3077         of MODE; pass appropriate cost bound.  Adjust result when
3078         performing signed multiplication by a negative constant.
3079         Don't use intermediate modes larger than word_mode.
3080
3081 2004-03-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3082
3083         * alias.c (get_alias_set): Remove handling of PLACEHOLDER_EXPR.
3084         * emit-rtl.c (component_ref_for_mem_expr): Likewise.
3085         (set_mem_attributes_minus_bitpos): Call SUBSTITUTE_PLACEHOLDER_IN_EXPR.
3086         * explow.c (expr_size): Likewise.
3087         * expr.h (placeholder_list, find_placeholder): Deleted.
3088         * expr.c (store_constructor): Likewise.
3089         (get_inner_reference): Likewise.  Also don't call find_placeholder.
3090         (placeholder_list, find_placeholder): Deleted.
3091         (is_aligning_offset): Don't handle WITH_RECORD_EXPR, PLACEHOLDER_EXPR.
3092         (expand_expr_real, cases PLACEHOLDER_EXPR, WITH_RECORD_EXPR): Likewise.
3093         (highest_pow2_factor, case WITH_RECORD_EXPR): Remove.
3094         * dojump.c (do_jump, case WITH_RECORD_EXPR): Likewise.
3095         * dwarf2out.c (loc_descriptor_from_tree, case WITH_RECORD_EXPR):
3096         Likewise.
3097         * fold-const.c (invert_truthvalue, case WITH_RECORD_EXPR): Likewise.
3098         (extract_muldiv, case WITH_RECORD_EXPR): Likewise.
3099         * tree.c (expr_align, case WITH_RECORD_EXPR): Likewise.
3100         (contains_placeholder_p): Don't handle WITH_RECORD_EXPR.
3101         Clean up by using first_rtl_op.
3102         (substitute_in_expr): Use SUBSTITUTE_IN_EXPR for recursive call.
3103         (substitute_placeholder_in_expr): New function.
3104         * tree.def (WITH_RECORD_EXPR): Deleted.
3105         * tree.h (SUBSTITUTE_IN_EXPR, SUBSTITUTE_PLACEHOLDER_IN_EXPR): New.
3106         (substitute_placeholder_in_expr): New.
3107
3108 2004-03-21  Andrew Pinski  <pinskia@gcc.gnu.org>
3109
3110         * dojump.c (prefer_and_bit_test): Fix which part of
3111         the and_test is replaced.
3112
3113 2004-03-21  Joseph S. Myers  <jsm@polyomino.org.uk>
3114
3115         * frontends.texi: Add missing line.
3116
3117 2004-03-21  Zack Weinberg  <zack@codesourcery.com>
3118             Chris Devers  <cdevers@pobox.com>
3119             Joseph S. Myers  <jsm@polyomino.org.uk>
3120
3121         * doc/frontends.texi: Rewrite.
3122         * doc/gcc.texi: Update last modification date.
3123
3124 2004-03-21  Josef Zlomek  <zlomekj@suse.cz>
3125
3126         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Print the debug
3127         message before redirecting the edge.
3128
3129 2004-03-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3130
3131         * emit-rtl.c (set_mem_attributes_minus_bitpos): Set MEM_POINTER
3132         flag.
3133         * explow.c (force_not_mem): Set REG_POINTER flag according to
3134         MEM_POINTER one.
3135         * rtl.h (MEM_POINTER): New macro.
3136         (struct rtx_def): Use integrated for MEM_SCALAR_P and frame_related
3137         for MEM_POINTER.
3138
3139 2004-03-20  Roger Sayle  <roger@eyesopen.com>
3140
3141         PR target/13889
3142         * cse.c (fold_rtx): Avoid substituting constants into unary
3143         conversion operations.
3144
3145 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
3146
3147         * fold-const.c (fold): Replace "expr" with "t".
3148
3149 2004-03-20  Ian Lance Taylor  <ian@wasabisystems.com>
3150
3151         PR c/12373
3152         * c-typeck.c (tagged_types_tu_compatible_p): Don't use
3153         DECL_ORIGINAL_TYPE if there isn't one.
3154
3155 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
3156
3157         * fold-const.c (fold): Replace "final_type" with "type".
3158         Remove variable "final_type".
3159
3160 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
3161
3162         * fold-const.c (fold): Constify "type".
3163         Replace "TREE_TYPE (t)" with "type".
3164
3165 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
3166
3167         * bb-reorder.c, bt-load.c, c-decl.c, cfgcleanup.c, coverage.c,
3168         dwarf2asm.c, ifcvt.c, stor-layout.c, varasm.c: Replace calls
3169         via (*targetm.foo) () with targetm.foo ().
3170
3171 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
3172
3173         PR other/14630
3174         * doc/install.texi: Add info directory category and entry.
3175
3176 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
3177
3178         * fold-const.c (fold): Replace "t" with "tem" where it is used
3179         as a temporary variable.  Remove "orig_t" and all of its uses.
3180
3181 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
3182
3183         * fold-const.c (fold): Remove variable "invert".
3184         Move the handling of relational expressions that can be folded
3185         to a constant ...
3186         (fold_relational_const): ... here.
3187         (tree_expr_nonzero_p): New.
3188
3189 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
3190
3191         PR c/14635
3192         * builtins.def (nan, nanf, nanl, nans, nansf, nansl): Change to
3193         DEF_GCC_BUILTIN.
3194
3195 2004-03-20  Richard Sandiford  <rsandifo@redhat.com>
3196
3197         * Makefile.in (dojump.o): Depend on $(GGC_H) and dojump.h.
3198         (GTFILES): Add $(srcdir)/dojump.h.
3199         (gt-dojump.h): New dependency.
3200         * dojump.c (and_reg, and_test, shift_test): New static variables.
3201         (prefer_and_bit_test): New function.
3202         (do_jump): Use it to choose between (X & (1 << C)) and (X >> C) & 1.
3203
3204 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
3205
3206         * c-common.c, cfgcleanup.c, cgraphunit.c, c-pretty-print.c,
3207         expmed.c, ggc-common.c, jump.c, passes.c, recog.c, regmove.c,
3208         reorg.c, tree.h: Fix comment typos.
3209
3210 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
3211
3212         * alias.c, attribs.c, bt-load.c, builtins.c, c-common.c,
3213         c-decl.c, c-objc-common.c, c-typeck.c, calls.c, cfglayout.c,
3214         cse.c, dbxout.c, dwarf2out.c, except.c, final.c,
3215         haifa-sched.c, integrate.c, passes.c, rtlanal.c, sched-rgn.c,
3216         sched-vis.c, simplify-rtx.c, stor-layout.c, tree.c, varasm.c,
3217         vmsdbgout.c: Replace calls via (*targetm.foo) () with
3218         targetm.foo ().
3219
3220 2004-03-19  Ziemowit Laski  <zlaski@apple.com>
3221
3222         * config/rs6000/altivec.h (vec_dst, vec_dstst, vec_dststt,
3223         vec_dstt, vec_sld, vec_splat): Add prototypes, marked with
3224         always_inline attribute.
3225         * config/rs6000/rs6000.c (altivec_expand_dst_builtin):
3226         Treat expansion as completed even if literal argument is
3227         invalid (so that other expansions are not tried in vain).
3228
3229 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
3230
3231         * loop-doloop.c (add_test): Replace GEN_INT (0) with
3232         const0_rtx.
3233
3234 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
3235
3236         * fold-const.c (fold) <ABS_EXPR>: Move the handling of constants
3237         ...
3238         (fold_abs_const): ... here.
3239
3240 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3241
3242         * tree.h (TYPE_ARRAY_MAX_SIZE): Use type.maxval directly.
3243
3244 2004-03-19  Denis Chertykov  <denisc@overta.ru>
3245
3246         PR target/11520
3247         * config/avr/avr.md ("call_insn"): Handle explicit integer
3248         specially.
3249         (call_value_insn): Likewise.
3250
3251 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3252
3253         * tree.c (substitute_in_expr): Rewrite to simplify and be more generic.
3254
3255 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
3256
3257         * fold-const.c (negate_expr): Move the handling of constants
3258         ...
3259         (fold_negate_const): ... here.
3260
3261 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3262
3263         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): New macro and hook.
3264         * langhooks.h (struct lang_hooks_for_types): New field hash_types.
3265         * tree.c (debug_no_type_hash): Deleted.
3266         (type_hash_canon): Abort if passed a variant.
3267         Check lang_hooks.types.hash_types.
3268         (build_type_no_quals): Copy mode of POINTER_TYPE and REFERENCE_TYPE.
3269         (build_array_type): Remove unnecessary allocation of pointer type.
3270         (build_complex_type): Properly qualify resulting type.
3271
3272 2004-03-19  Paolo Bonzini  <bonzini@gnu.org>
3273
3274         * config/rs6000/rs6000.c (rs6000_init_builtins): Fix typo.
3275
3276 2004-03-19  Richard Sandiford  <rsandifo@redhat.com>
3277
3278         * expmed.c (choose_mult_variant, expand_mult_const): New, split from...
3279         (expand_mult): ...here.
3280         (extract_high_half): New, split out from expand_mult_highpart.
3281         (expand_highpart_optab): Likewise.  Don't clobber target prematurely.
3282         (expand_highpart): Evaluate the cost of a shift/add sequence,
3283         then see if any of the specialized optabs are cheaper.
3284
3285 2004-03-18  Ian Lance Taylor  <ian@wasabisystems.com>
3286
3287         * mklibgcc.in: Remove obsolete MAYBE_USE_COLLECT2.
3288
3289 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3290
3291         * convert.c (convert_to_real): Add more math builtins.
3292
3293 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3294
3295         * convert.c (convert_to_real): Reformat using switch stmt.
3296
3297 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
3298
3299         * c-common.c (pointer_int_sum): Do not complain about using
3300         pointers to pointers-to-members.
3301
3302 2004-03-18  Kazu Hirata  <kazu@cs.umass.edu>
3303
3304         * system.h (MD_ASM_CLOBBERS): Move to "Old target macros that
3305         have moved to the target hooks structure".
3306
3307 2004-03-18  James E Wilson  <wilson@specifixinc.com>
3308
3309         * config/mips/mips.md (type): Split move into arith and fmove.  Split
3310         hilo into mthilo and mfhilo.  Add trap.  Delete icmp.  Fix all uses.
3311         * config/mips/5400.md (ir_vr54_hilo, ir_vr54_arith, ir_vr54_fabs):
3312         Likewise.
3313         * config/mips/5500.md (ir_vr55_hilo, ir_vr55_arith, ir_vr55_fabs):
3314         Likewise.
3315         * config/mips/7000.md (rm7_int_other, rm7_mthilo, rm7_mfhilo,
3316         rm7_fp_quick): Likewise.
3317         * config/mips/9000.md (rm9k_int, rm9k_mfhilo, rm9k_mthilo,
3318         rm9k_fquick): Likewise.
3319         * config/mips/sr71k.md (ir_sr70_hilo, ir_sr70_arith, ir_sr70_fabs):
3320         Likewise.
3321         (ir_sr70_icmp): Delete.
3322
3323 2004-03-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3324
3325         * tree.h (TREE_CHECK2, TREE_CHECK3, TREE_CHECK5): New macros.
3326         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New decl.
3327         (FUNC_OR_METHOD_CHECK, SET_ARRAY_OR_VECTOR_CHECK): New macros.
3328         (REC_OR_UNION_CHECK, NUMERICAL_TYPE_CHECK): Likewise.
3329         (TYPE_VALUES, TYPE_DOMAIN, TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD):
3330         Protect with proper check.
3331         (TYPE_ARG_TYPES, TYPE_METHOD_BASETYPE, TYPE_OFFSET_BASETYPE): Likewise.
3332         (TYPE_MIN_VALUE, TYPE_MAX_VALUE): Likewise.
3333         * tree.c (type_hash_eq): Rewrite to access proper fields for each type.
3334         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New.
3335         * c-typeck.c (build_array_ref): Use TYPE_DOMAIN, not TYPE_VALUES.
3336         * dwarf2out.c (gen_enumeration_type_die): Use TYPE_VALUES,
3337         not TYPE_FIELDS.
3338         * stor-layout.c (set_sizetype): Use TYPE_ORIG_SIZE_TYPE.
3339
3340 2004-03-18  Mostafa Hagog  <mustafa@il.ibm.com>
3341
3342         * gcse.c (eliminate_partially_redundant_loads): Reject change if
3343         dest is set between beginning and current insn.
3344
3345 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
3346
3347         * c-decl.c (grokdeclarator): Do not complain about redeclaring
3348         visible "static" identifiers "extern" in a local scope.
3349         * dwarf2out.c (loc_descriptor_from_tree): Handle pre- and
3350         post-increments/decrements.
3351
3352 2004-03-18  Bob Wilson  <bob.wilson@acm.org>
3353
3354         * config/xtensa/xtensa.c (current_function_arg_words): Delete.
3355         (xtensa_builtin_saveregs): Use current_function_args_info.arg_words.
3356         (xtensa_va_start): Remove assignment to current_function_arg_words.
3357
3358 2004-03-18  Richard Sandiford  <rsandifo@redhat.com>
3359
3360         * alias.c (record_set): Detect the case where a register is assigned
3361         a new value that has the same base term as the old one.
3362
3363 2004-03-18  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3364
3365         * doloop.c: Removed.
3366         * loop-doloop.c: New file.
3367         * Makefile.in (doloop.o): Remove.
3368         (loop-doloop.o): New.
3369         * cfgloop.h (get_loop_level, doloop_optimize_loops): Declare.
3370         * cfgloopanal.c (get_loop_level): New function.
3371         * loop-iv.c (iv_number_of_iterations): Handle case when loop
3372         is leaved immediatelly.
3373         * loop.c (strength_reduce): Do not call doloop optimization.
3374         * loop.h (LOOP_BCT): Removed.
3375         * passes.c (rest_of_handle_loop_optimize): Do not use LOOP_BCT.
3376         (rest_of_handle_loop2): Call doloop_optimize_loops.
3377         (rest_of_compilation): Test for optimizations moved to
3378         rest_of_handle_loop2.
3379
3380 2004-03-17  Fariborz Jahanian <fjahanian@apple.com>
3381
3382         * config/rs6000/rs6000.c (rs6000_stack_info): correct reg_size
3383         for mixed mode.
3384         (rs6000_emit_prologue): Ditto.
3385         (rs6000_emit_epilogue): Ditto.
3386         * config/rs6000/rs6000.h: Definition of DWARF_CIE_DATA_ALIGNMENT
3387         macro for mixed mode.
3388
3389 2004-03-18  Jan Hubicka  <jh@suse.cz>
3390
3391         * predict.c (propagate_freq): Compute correctly frequency of
3392         EXIT_BLOCK.
3393
3394 2004-03-17  Eric Christopher  <echristo@redhat.com>
3395
3396         * builtins.c (apply_args_size): Use reg_raw_mode.
3397         (apply_result_size): Ditto.
3398
3399 2004-03-17  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
3400
3401         PR target/14620
3402         * config/rtems.h: Add STD_LIB_SPEC and LIB_SPEC.
3403
3404 2004-03-17  Jakub Jelinek  <jakub@redhat.com>
3405
3406         * config/rs6000/t-linux64 (bispecs): Don't add -mlong-double-128 for
3407         32-bit builds when defaulting to 32-bit.
3408
3409 2004-03-17  Jan Hubicka  <jh@suse.cz>
3410
3411         * cfgrtl.c (rtl_create_basic_block): Pre-allocate basic_block_info
3412         array.
3413
3414 2004-03-17  James E Wilson  <wilson@specifixinc.com>
3415
3416         * config/mips/mips.md (zero_extendsidi2): Add length attribute.
3417         (hazard_nop): Change type to nop.
3418         (type): Split arith into arith, shift, slt, clz.  Delete darith.
3419         Fix all uses.  Change arith to multi if more than one insn emitted.
3420         * config/mips/5400.md (ir_vr54_arith): Likewise.
3421         * config/mips/5500.md (ir_vr55_arith): Likewise.
3422         * config/mips/7000.md (rm7_int_other): Likewise.
3423         * config/mips/9000.md (rm9k_int): Likewise.
3424         * config/mips/sr71k.md (ir_sr70_arith): Likewise.
3425
3426 2004-03-17  Joel Brobecker  <brobecker@gnat.com>
3427
3428         * dwarf2out.c (subrange_type_die): Define new variable "subtype"
3429         to hold the subtype tree instead of recomputing it several times.
3430
3431 2004-03-17  Kazu Hirata  <kazu@cs.umass.edu>
3432
3433         * config/mn10300/mn10300.c (notice_update_cc): Don't handle
3434         CC_INVERT.
3435         * config/mn10300/mn10300.md (cc): Remove "invert".
3436
3437 2004-03-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3438
3439         * builtins.c (integer_valued_real_p): Add builtin rint.
3440         (fold_builtin): Likewise.
3441         * convert.c (convert_to_real): Likewise.
3442
3443         * convert.c (convert_to_real): Fix typos in `long double'
3444         builtins.
3445
3446 2004-03-16  Mark Mitchell  <mark@codesourcery.com>
3447
3448         PR c++/14481
3449         * fold-const.c (fold): Set TREE_NO_UNUSED_WARNING on implicitly
3450         generated COMPOUND_EXPRs.
3451
3452 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
3453
3454         * config/h8300/t-rtems (h8300-*-rtems*): New.
3455
3456 2004-03-16  Eric Christopher  <echristo@redhat.com>
3457
3458         * doc/cppopts.texi(fwide-exec-charset): Fix typo.
3459
3460 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
3461
3462         * config/i386/i386-protos.h: Add a prototype for
3463         ix86_reverse_condition.
3464         * config/i386/i386.c (ix86_reverse_condition): New.
3465         * config/i386/i386.h (REVERSE_CONDITION): Use
3466         ix86_reverse_condition.
3467         * config/i386/i386.md: Use ix86_reverse_condition instead of
3468         REVERSE_CONDITION.
3469
3470 2004-03-16  J. Brobecker  <brobecker@gnat.com>
3471
3472         * dwarf2out.c (loc_descriptor_from_tree): Add handling for MIN_EXPR.
3473
3474 2004-03-16  Nathanael Nerode  <neroden@gcc.gnu.org>
3475
3476         PR bootstrap/12974
3477         * Makefile.in: Pass $(INCLUDES) down to libgcc.mk explicitly.
3478
3479 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
3480
3481         * c-common.c (c_common_type_for_mode): Build vector types on
3482         demand.
3483         (handle_mode_attribute): Deprecate using the mode attribute
3484         to create vector types.  Fix indentation.
3485         (vector_type_node_list): Remove.
3486         (handle_vector_size_attribute): Create vector types on demand.
3487         Strip a NON_LVALUE_EXPR from the attribute if there is one.
3488         * c-typeck.c (comptypes): Make vector types compatible if they
3489         have the same underlying mode.
3490         (convert_for_assignment): Use comptypes to convert between
3491         vector types.
3492         * tree.c (build_common_tree_nodes_2): Do not create vector types.
3493         * config/arm/arm.c (arm_init_iwmmxt_builtins): Create necessary
3494         vector types.
3495         * tree.h: Remove vector types.
3496         * config/i386/i386.c (i386_init_mmx_sse_builtins): Likewise.
3497         * config/rs6000/rs6000.c (rs6000_init_builtins): Likewise.
3498         (V16QI_type_node, V2SI_type_node, V2SF_type_node, V4HI_type_node,
3499         V4SI_type_node, V4SF_type_node, V8HI_type_node): New globals.
3500         * doc/extend.texi (Vector Types): Document how to use the
3501         vector_size attribute to create vectors, rather than mode.
3502
3503         * config/arm/mmintrin.h: Use vector_size attribute, not mode.
3504         * config/i386/emmintrin.h: Likewise.
3505         * config/i386/mmintrin.h: Likewise.
3506         * config/i386/xmmintrin.h: Likewise.
3507         * config/sh/ushmedia.h: Likewise.
3508
3509 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
3510
3511         * config/freebsd-spec.h, config/arc/arc-protos.h,
3512         config/arm/aout.h, config/arm/elf.h, config/arm/freebsd.h,
3513         config/arm/linux-gas.h, config/arm/semi.h,
3514         config/cris/cris-protos.h, config/i386/xm-djgpp.h,
3515         config/ia64/freebsd.h, config/mips/7000.md,
3516         config/mips/9000.md, config/ns32k/ns32k-protos.h,
3517         config/sparc/pbd.h: Update copyright.
3518
3519 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
3520
3521         PR target/14577
3522         * config.gcc: Switch sh-*-rtems* to ELF.  Add sh-*-rtemscoff.
3523
3524 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
3525
3526         * combine.c (combine_simplify_rtx): Remove the "last"
3527         parameter and its documentation.  Adjust recursive calls.
3528         (simplify_logical): Always perform the only simplification
3529         controlled by "last", if the simplified expression is
3530         actually different.
3531         (try_combine): Do not pass the "last" parameter to
3532         combine_simplify_rtx.
3533
3534 2004-03-16  Richard Sandiford  <rsandifo@redhat.com>
3535
3536         PR target/14599
3537         * config/mips/mips.md (UNSPEC_GP): New constant.
3538         * config/mips/mips.c (CONST_GP_P): Expect the CONST to contain
3539         an UNSPEC instead of (reg $gp).
3540         (mips16_gp_pseudo_reg): Change accordingly.
3541         (print_operand): Print $gp directly when handling CONST_GP_P.
3542
3543 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
3544
3545         * config.gcc, config/m68k/linux.h: Implement with-cpu for m68k-linux.
3546         * longlong.h: Make code 68060 clean when compiling for m68060.
3547
3548 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
3549
3550         * config/m68k/m68k.md: Fix constraints for bitfield instructions.
3551         * doc/md.texi: Clarify description of "i" constraint.
3552
3553 2004-03-15  James E Wilson  <wilson@specifixinc.com>
3554
3555         * config/mips/mips.md (type): Split load into load, fpload, fpidxload.
3556         Split store into store, fpstore, fpidxstore.  Fix all uses.
3557         * config/mips/5400.md (ir_vr54_load, ir_vr54_store, ir_vr54_fstore):
3558         Likewise.
3559         * config/mips/5500.md (ir_vr55_load, i5_vr55_store): Likewise.
3560         * config/mips/7000.md (rm7_ld, rm7_st): Likewise.
3561         * config/mips/9000.md (rm9k_load, rm9k_store): Likewise.
3562         * config/mips/sr71k.md (ir_sr70_load, ir_sr70_store, ir_sr70_fload,
3563         ir_sr70_fstore): Likewise.
3564
3565 2004-03-15  Richard Henderson  <rth@redhat.com>
3566
3567         PR middle-end/14535
3568         * except.c (collect_one_action_chain): Record action for cleanup
3569         outer of exception spec.
3570
3571 2004-03-15  Ian Lance Taylor  <ian@wasabisystems.com>
3572
3573         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
3574         Fix the check for abort and only do the mmap if we can.
3575
3576 2004-03-15  Eric Botcazou  <ebotcazou@act-europe.fr>
3577
3578         * config/sparc/sparc.h: Rework comments about the code model
3579         in 64-bit environment and the mode 'Pmode'.
3580         * doc/invoke.texi (SPARC options): Rework description of the
3581         different code models supported in 64-bit environment.
3582
3583 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
3584
3585         * defaults.h (REVERSIBLE_CC_MODE): Define.
3586         * jump.c (reversed_comparison_code_parts): Don't check if
3587         REVERSIBLE_CC_MODE is defined.
3588
3589 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
3590
3591         * c-incpath.c, c-incpath.h, c-pch.c, c.opt, cppexp.c,
3592         et-forest.h, genattr.c, ggc-none.c, hosthooks-def.h,
3593         hosthooks.h, params.h, ra-colorize.c, web.c,
3594         config/darwin-c.c, config/alpha/freebsd.h, config/arm/pe.c,
3595         config/avr/avr-protos.h, config/avr/avr.md,
3596         config/fr30/fr30-protos.h, config/fr30/fr30.md,
3597         config/h8300/fixunssfsi.c, config/i386/darwin.h,
3598         config/i386/freebsd.h, config/i386/freebsd64.h,
3599         config/ia64/hpux.h, config/ia64/unwind-ia64.c,
3600         config/ip2k/libgcc.S, config/m32r/xm-m32r.h,
3601         config/mmix/mmix-modes.def, config/ns32k/netbsd.h,
3602         config/ns32k/ns32k.md, config/pa/pa64-hpux.h,
3603         config/pa/pa64-regs.h, config/rs6000/aix41.h,
3604         config/rs6000/aix43.h, config/rs6000/host-darwin.c,
3605         config/sparc/aout.h, config/sparc/freebsd.h,
3606         config/sparc/litecoff.h, config/vax/vax-protos.h,
3607         doc/hostconfig.texi, doc/include/gcc-common.texi: Update
3608         copyright.
3609
3610 2004-03-15  Paul Brook  <paul@codesourcery.com>
3611
3612         * config/arm/arm.c (thumb_expand_prologue): Tie prologue insns to fp.
3613
3614 2004-03-15  Gabriel Dos Reis  <gdr@integrable-solutions.net>
3615
3616         * c-pretty-print.c (pp_c_semicolon): Fix formatting.
3617         (pp_c_cv_qualifier): Document.
3618         (pp_c_space_for_pointer_operator): Likewise.
3619         (pp_c_integer_constant): Likewise.
3620         (pp_c_identifier): Likewise.
3621         (pp_c_init_declarator): Don't print function body.
3622
3623 2004-03-14  Joseph S. Myers  <jsm@polyomino.org.uk>
3624
3625         * doc/contrib.texi, doc/extend.texi, doc/gcov.texi,
3626         doc/install.texi, doc/invoke.texi, doc/makefile.texi,
3627         doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi: Capitalize
3628         "gcc", "g++" and "g77" or mark up with appropriate markup.  Adjust
3629         wording and grammar.
3630
3631 2004-03-14  Roger Sayle  <roger@eyesopen.com>
3632
3633         * alias.c (get_alias_set): Replace calls via (*lang_hooks.foo) ()
3634         with lang_hooks.foo ().
3635         * builtins.c (expand_builtin_va_arg): Likewise.
3636         * c-common.c (fname_as_string, c_common_truthvalue_conversion,
3637         c_common_type_for_mode, c_common_nodes_and_builtins,
3638         handle_mode_attribute, handle_vector_size_attribute): Likewise.
3639         * c-convert.c (convert): Likewise.
3640         * c-format.c (check_format_types): Likewise.
3641         * c-objc-common.c (c_tree_printer): Likewise.
3642         * c-typeck.c (build_unary_op, build_conditional_expr,
3643         build_binary_op): Likewise.
3644         * calls.c (try_to_integrate, expand_call,
3645         emit_library_call_value_1): Likewise.
3646         * cgraph.c (cgraph_node_name, cgraph_function_possibly_inlined_p):
3647         Likewise.
3648         * cgraphunit.c (record_call_1, cgraph_analyze_function,
3649         cgraph_expand_function): Likewise.
3650         * convert.c (convert_to_pointer, convert_to_integer): Likewise.
3651         * coverage.c (build_fn_info_type, build_ctr_info_type,
3652         build_gcov_info, create_coverage): Likewise.
3653         * dbxout.c (dbxout_init): Likewise.
3654         * diagnostic.c (diagnostic_report_current_function): Likewise.
3655         * dojump.c (do_jump): Likewise.
3656         * dwarf2out.c (dwarf2_name): Likewise.
3657         * except.c (init_eh): Likewise.
3658         * explow.c (expr_size, int_expr_size): Likewise.
3659         * expmed.c (make_tree, const_mult_add_overflow_p, expand_mult_add):
3660         Likewise.
3661         * expr.c (store_expr, store_constructor, safe_from_p,
3662         expand_expr_real, do_store_flag, try_casesi): Likewise.
3663         * function.c (push_function_context_to, pop_function_context_from,
3664         free_after_parsing, assign_stack_local_1, assign_stack_temp_for_type,
3665         put_var_into_stack, allocate_struct_function, current_function_name):
3666         Likewise.
3667         * integrate.c (copy_decl_for_inlining, expand_inline_function):
3668         Likewise.
3669         * langhooks.c (lhd_clear_binding_stack, write_global_declarations,
3670         lhd_print_error_function): Likewise.
3671         * opts.c (handle_option, decode_options): Likewise.
3672         * passes.c (open_dump_file): Likewise.
3673         * print-tree.c (print_node): Likewise.
3674         * stmt.c (expand_fixup, fixup_gotos, expand_asm_operands,
3675         expand_decl_cleanup, emit_case_nodes): Likewise.
3676         * stor-layout.c (variable_size): Likewise.
3677         * toplev.c (announce_function, wrapup_global_declarations,
3678         check_global_declarations, compile_file, default_tree_printer,
3679         process_options, lang_dependent_init, finalize): Likewise.
3680         * tree-dump.c (dequeue_and_dump): Likewise.
3681         * tree-inline.c (remap_decl, remap_block, copy_body_r,
3682         initialize_inlined_parameters, declare_return_variable,
3683         inlinable_function_p, expand_call_inline, optimize_inline_calls,
3684         walk_tree, copy_tree_r): Likewise.
3685         * tree-optimize.c (tree_rest_of_compilation): Likewise.
3686         * tree.c (decl_assembler_name, tree_size, size_in_bytes, staticp,
3687         unsafe_for_reeval, get_unwidened, get_narrower, get_callee_fndecl,
3688         variably_modified_type_p, dump_tree_statistics): Likewise.
3689         * varasm.c (assemble_variable, compare_constant, copy_constant,
3690         force_const_mem, compute_reloc_for_constant, output_constant,
3691         output_addressed_constants, initializer_constant_valid_p): Likewise.
3692
3693 2004-03-14  Kelley Cook  <kcook@gcc.gnu.org>
3694
3695         * doc/install.texi: Make autoconf 2.13 the exception, not the rule.
3696
3697 2004-03-14  Andreas Tobler  <a.tobler@schweiz.ch>
3698
3699         * doc/install.texi: Reflect autoconf and automake version for
3700         libffi. Update autoconf version to 2.59.
3701
3702 2004-03-13  Roger Sayle  <roger@eyesopen.com>
3703
3704         * fold-const.c (negate_expr, operand_equal_for_comparison_p,
3705         optimize_bit_field_compare, decode_field_reference, all_ones_mask_p,
3706         make_range, build_range_check, fold_range_test, unextend,
3707         constant_boolean_node, fold_binary_op_with_conditional_arg,
3708         fold_truthop, fold_mathfn_compare, fold_inf_compare,
3709         fold_single_bit_test, fold): Replace calls via (*lang_hooks.foo) ()
3710         with lang_hooks.foo ().
3711
3712 2004-03-14  Richard Earnshaw  <rearnsha@arm.com>
3713
3714         * arm.h (EXTRA_CONSTRAINT_STR_ARM): Update comment.
3715
3716 2004-03-13  Dara Hazeghi  <dhazeghi@yahoo.com>
3717
3718         * doc/install.texi: Note status of -fnew-ra.
3719
3720 2004-03-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
3721
3722         PR middle-end/14470
3723         * expr.c (store_expr): Call emit_queue before generating the move
3724         from the temporary to the original target.  Protect the temporary
3725         from emit_queue.
3726
3727 2004-03-13  Jakub Jelinek  <jakub@redhat.com>
3728
3729         PR target/14533
3730         * config/s390/s390.c (legitimize_pic_address): Don't abort on UNSPEC
3731         other than UNSPEC_GOTOFF.
3732
3733 2004-03-13  Richard Earnshaw  <rearnsha@arm.com>
3734
3735         * arm.c (arm_legitimate_address_p): New argument, OUTER.  Pass through
3736         to arm_legitimate_index_p.  Update all callers with SET as default
3737         value.
3738         (arm_legitimate_index_p): New argument, OUTER.  Restrict the index
3739         range if OUTER is a sign-extend operation on QImode.  Correctly
3740         reject shift operations on sign-extended QImode addresses.
3741         (bad_signed_byte_operand): Delete.
3742         (arm_extendqisi_mem_op): New function.
3743         * arm.h (EXTRA_CONSTRAINT_ARM): Delete.  Replace with...
3744         (EXTRA_CONSTRAINT_STR_ARM): ... this.  Handle extended address
3745         constraints.
3746         (CONSTRAINT_LEN): New.
3747         (EXTRA_CONSTRAINT): Delete.  Replace with...
3748         (EXTRA_CONSTRAINT_STR): ... this.
3749         (PREDICATE_CODES): Remove bad_signed_byte_operand.
3750         * arm.md (extendqihi_insn): Use new constraint Uq.  Rework.  Length
3751         is now always default.
3752         (define_splits for bad sign-extend loads): Delete.
3753         (arm_extendqisi, arm_extendqisi_v5): Likewise.
3754         * arm/vfp.md (arm_movsi_vfp, arm_movdi_vfp, movsf_vfp, movdf_vfp):
3755         Rework 'U' constraint to 'Uv'.
3756         * arm-protos.h: Remove bad_signed_byte_operand.  Add
3757         arm_extendqisi_mem_op.
3758         * doc/md.texi (ARM constraints): Rename VFP constraint (now Uv).
3759         Add Uq constraint.
3760
3761 2004-03-13  Alan Modra  <amodra@bigpond.net.au>
3762
3763         * config/rs6000/rs6000.c (rs6000_va_arg): Replace SPLIT_COMPLEX_ARGS
3764         with targetm version.
3765
3766         PR target/14567
3767         * config/rs6000/rs6000.h (UNITS_PER_ARG, RS6000_ARG_SIZE): Delete.
3768         (HARD_REGNO_MODE_OK): Disallow TFmode for fp31.
3769         * config/rs6000/rs6000.c (rs6000_arg_size): New function.
3770         Update all users of RS6000_ARG_SIZE.
3771         (function_arg_advance): Count fregno using mode size.
3772         (function_arg): Handle long double split over regs and memory.
3773         (function_arg_partial_nregs): Likewise.
3774         (rs6000_va_arg): Repackage complex args.
3775
3776 2004-03-13  Dean Ferreyra <dferreyra@igc.org>
3777
3778         PR target/14047
3779         * config/avr/avr.c (avr_progmem_p): Add "attributes" parameter.
3780         (avr_insert_attributes): Pass "attributes" to avr_progmem_p.
3781         * config/avr/avr-protos.h (avr_progmem_p): Change prototype.
3782
3783 2004-03-12  Jakub Jelinek  <jakub@redhat.com>
3784
3785         * config/rs6000/rs6000-protos.h (rs6000_output_dwarf_dtprel): Add
3786         prototype.
3787         * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): New.
3788         * config/rs6000/rs6000.h (ASM_OUTPUT_DWARF_DTPREL): Define.
3789
3790 2003-03-12  Andrew Pinski  <apinski@apple.com>
3791
3792         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
3793         Use ret instead of result. Use addr instead of base.
3794
3795 2004-03-12  David Edelsohn  <edelsohn@gnu.org>
3796
3797         * doc/install.texi (*-ibm-aix*): Document assembler and achiver
3798         fixes required by libstdc++ and update installation instructions
3799         for libstdc++.a.
3800
3801 2004-03-12  Danny Smith  <dannysmith@users.sourceforge.net>
3802
3803         * config/i386/winnt.c (i386_pe_strip_name_encoding_full): Strip
3804         leading '@' on fastcall symbols before stripping suffix.
3805
3806 2004-03-12  Roger Sayle  <roger@eyesopen.com>
3807
3808         * combine.c (unmentioned_reg_p): New function to check whether an
3809         expression is a "specialization" of another, i.e. that there are
3810         no registers or memory references mentioned in the first that don't
3811         appear in the second.
3812         (unmentioned_reg_p_1): New helper subroutine of unmentioned_reg_p.
3813         (combine_instructions): Also try combining instructions using the
3814         REG_EQUAL note from a preceding log-linked instruction.
3815
3816 2004-03-12  Roger Sayle  <roger@eyesopen.com>
3817
3818         * config/i386/i386.c (ix86_split_ashrdi): Optimize shift by 63.
3819
3820 2004-03-12  Matt Austern  <austern@apple.com>
3821
3822         * target.h (struct gcc_target): New target hook, unwind_label.
3823         * target-def.h (TARGET_ASM_EMIT_UNWIND_LABEL): New hook.
3824         * output.h (default_emit_unwind_label): New function.
3825         * default.h (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): New macro.
3826         (TARGET_USES_WEAK_UNWIND_INFO): New target macro.
3827         (TARGET_SUPPORTS_HIDDEN): New target macro.
3828         * dwarf2out.c (struct dw_fde_struct): Add field for function decl
3829         that corresponds to this FDE.
3830         (FRAME_BEGIN_LABEL): Allow target to override default label.
3831         (output_call_frame_info): If FDEs are linknonce, then use extra
3832         indirection for FDE encoding, output a label for each FDE, and
3833         output an empty label for each function without an FDE.
3834         (dwarf2out_begin_prologue): Set up decl field when creating an FDE.
3835         * varasm.c (globalize_decl): Call ASM_MAKE_LABEL_LINKONCE for
3836         decls with DECL_ONE_ONLY set, if that macro is defined.
3837         (make_decl_one_only): Don't use DECL_COMMON if we're compiling
3838         for a SUPPORTS_ONE_ONLY target.
3839         * config/darwin-protos.h (darwin_unique_section): Declare.
3840         (darwin_asm_named_section): Likewise.
3841         (darwin_section_type_flags): Likewise.
3842         (darwin_non_lazy_pcrel): Likewise.
3843         (darwin_emit_unwind_label): Likewise.
3844         (darwin_make_decl_one_only): Likewise.
3845         * config/darwin.c (machopic_finish): Get rid of tweak that
3846         eliminate stubs for symbols that are defined.
3847         (darwin_encode_section_info): Don't treat weak functions as defined.
3848         (darwin_make_decl_one_only): Define.
3849         (darwin_asm_named_section): Likewise.
3850         (darwin_section_type_flags): Likewise.
3851         (darwin_unique_section): Likewise.
3852         (darwin_emit_unwind_label): Likewise.
3853         (darwin_non_lazy_pcrel): Likewise.
3854         (darwin_asm_output_dwarf_delta): Difference between two labels is
3855         local only if both labels are local.
3856         * config/darwin.h (MAKE_DECL_ONE_ONLY): Define.
3857         (ASM_MAKE_LABEL_LINKONCE): Likewise.
3858         (TARGET_SUPPORTS_HIDDEN): Likewise.
3859         (TARGET_USES_WEAK_UNWIND_INFO): Likewise.
3860         (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): Likewise.
3861         (FRAME_BEGIN_LABEL): Likewise.
3862         (ASM_DECLARE_OBJECT_NAME): Make references to weak symbols indirect.
3863         (ASM_DECLARE_FUNCTION_NAME): Likewise.
3864         (darwin_eh_frame_section): Give __eh_frame section the coalesced flag.
3865         (TARGET_ASM_UNIQUE_SECTION): Define.
3866         (EH_FRAME_SECTION_NAME): Define.
3867         (EH_FRAME_SECTION_ATTR): Likewise.
3868         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
3869         (TARGET_ASM_NAMED_SECTION): Likewise.
3870         (TARGET_SECTION_TYPE_FLAGS): Likewise.
3871         * doc/tm.texi: Document TARGET_USES_WEAK_UNWIND_INFO,
3872         TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, TARGET_SUPPORTS_HIDDEN,
3873         TARGET_ASM_EMIT_UNWIND_LABEL.
3874
3875 2004-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3876
3877         * builtins.c (expand_builtin_mathfn): Add pow10* to the
3878         existing exp10* case.
3879         (expand_builtin): Likewise.
3880
3881 2004-03-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
3882
3883         * doc/tm.texi (registers) <Values in Registers>: Add
3884         entry for REGMODE_NATURAL_SIZE.
3885
3886 2004-03-12  Richard Henderson  <rth@redhat.com>
3887
3888         PR target/14547
3889         * target.h (struct gcc_target): Move calls substructure before
3890         booleans.  Add split_complex_arg.
3891         * function.c (assign_parms, split_complex_args): Use it.
3892         * calls.c (expand_call): Likewise.
3893         (split_complex_values): Likewise.  Check for splittable types
3894         before allocating memory.
3895         (split_complex_types): Likewise.
3896         * system.h (SPLIT_COMPLEX_ARGS): Poison.
3897         * expr.h (SPLIT_COMPLEX_ARGS): Remove.
3898         * target-def.h (TARGET_SPLIT_COMPLEX_ARG): New.
3899         * config/alpha/alpha.c (alpha_split_complex_arg): New.
3900         (TARGET_SPLIT_COMPLEX_ARG): New.
3901         * config/alpha/alpha.h (SPLIT_COMPLEX_ARGS): Remove.
3902         * config/rs6000/rs6000.c (TARGET_SPLIT_COMPLEX_ARG): New.
3903         (rs6000_override_options): Zap it for non-AIX.
3904         (rs6000_function_value): Use targetm.calls.split_complex_arg.
3905         * config/rs6000/rs6000.h (SPLIT_COMPLEX_ARGS): Remove.
3906         * config/xtensa/xtensa.c (TARGET_SPLIT_COMPLEX_ARG): New.
3907         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Remove.
3908         * doc/tm.texi (TARGET_SPLIT_COMPLEX_ARG): Modify from old
3909         SPLIT_COMPLEX_ARGS entry.
3910
3911 2004-03-11  Richard Henderson  <rth@redhat.com>
3912
3913         * config/alpha/alpha.c (xfloating_ops, vax_cvt_ops): New.
3914         (alpha_lookup_xfloating_lib_func): Use them, return rtx.
3915         (alpha_emit_xfloating_arith): Update to match.
3916         (alpha_emit_xfloating_compare): Likewise.
3917         (alpha_emit_xfloating_cvt): Likewise.
3918         (alpha_emit_xfloating_libcall): Take already built symbol,
3919         mark call const.
3920         * config/alpha/alpha.md (extendsftf2, extenddftf2): Take
3921         op1 in a register.
3922
3923 2004-03-11  Richard Henderson  <rth@redhat.com>
3924
3925         PR target/14539
3926         * config/alpha/alpha.h (STACK_BOUNDARY): Set to 128.
3927
3928         * simplify-rtx.c (simplify_relational_operation): Fix typo.
3929
3930 2004-03-11  Richard Henderson  <rth@redhat.com>
3931
3932         PR middle-end/14477
3933         * except.c (remove_unreachable_regions): Look thru CALL_PLACEHOLDER.
3934
3935 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
3936
3937         PR target/14262
3938         * calls.c (load_register_parameters): If BLOCK_REG_PADDING is not
3939         defined, pass small BLKmode values in registers in the low-order part.
3940
3941 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
3942
3943         * combine.c (if_then_else_cond): Check for NULL return value of
3944         simplify_gen_subreg.
3945
3946 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
3947
3948         PR target/14496
3949         * config/mips/mips.h (UNITS_PER_FPVALUE): Fix value for
3950         TARGET_SINGLE_FLOAT.
3951
3952 2004-03-11  Steve Ellcey  <sje@cup.hp.com>
3953
3954         * config/ia64/hpux.h (TARGET_INIT_LIBFUNCS): Add undef.
3955         * config/ia64/ia64.h (TARGET_INIT_LIBFUNCS): Add define.
3956         * config/ia64/ia64.c (ia64_init_libfuncs): New.
3957         (ia64_hpux_init_libfuncs): Add call to ia64_init_libfuncs.
3958
3959 2004-03-11  Roger Sayle  <roger@eyesopen.com>
3960
3961         * fold-const.c (negate_expr_p) <RSHIFT_EXPR>: We can optimize
3962         -((int)X>>C) where C is an integer constant one bit less than the
3963         size of X into (unsigned)X>>C.  Similarly for unsigned->signed.
3964         (negate_expr) <RSHIFT_EXPR>: Implement the above transformations.
3965
3966         * simplify-rtx.c (simplify_unary_operation): Also implement the
3967         above transformations at the RTL level.
3968
3969 2004-03-11  Alan Modra  <amodra@bigpond.net.au>
3970
3971         * real.c (encode_ibm_extended): Do round low word.
3972
3973 2004-03-11  Ben Elliston  <bje@wasabisystems.com>
3974
3975         * config/arm/arm.md (is_xscale): Comment this attribute and move
3976         it a bit further up in the file, closer to related attributes.
3977
3978 2004-03-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
3979
3980         * config/host-solaris.c (sol_gt_pch_use_address): Add
3981         missing terminating marker to comment.
3982
3983 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
3984
3985         * config/mips/mips.md: Use move_operand in splitters for 64-bit moves.
3986         (movdi, movsi, movhi, movqi, movsf, movdf): Remove predicates.
3987         (*movdi_32bit_mips16, *movsi_mips16, *movhi_mips16, *movqi_mips16)
3988         (*movsf_mips16, *movdf_mips16):  Name unnamed patterns.  Use
3989         move_operand as source predicate in all cases.
3990         (*movdi_32bit): Renamed from movdi_internal.  Remove 'F' constraint.
3991         Test reg_or_0_operand.  Use move_operand as source predicate.
3992         (*movdi_64bit): Renamed from movdi_internal2.  Test reg_or_0_operand.
3993         (*movdi_64bit_mips16): Renamed from movdi_internal2_mips16.
3994         (*movsi_internal): Renamed from movsi_internal.  Test reg_or_0_operand.
3995         (movhi, movqi, movsf, movdf): Use mips_legitimize_move.
3996         (*movhi_internal): Renamed from movhi_internal.  Test reg_or_0_operand.
3997         Use move_operand as source predicate.  Remove 'K' constraint.
3998         (*movqi_internal): Likewise movqi_internal.
3999         (*movsf_hardfloat): Renamed from movsf_internal1.  Test
4000         reg_or_0_operand.  Use move_operand as source predicate.
4001         (*movsf_softfloat): Likewise movsf_internal2.
4002         (*movdf_hardfloat_64bit): Likewise movsf_internal1a.
4003         (*movdf_hardfloat_32bit): Likewise movsf_internal1b.
4004         (*movdf_softfloat): Likewise movdf_internal2.
4005         * config/mips/mips.c (move_operand): Match arbitrary CONST_INTs
4006         for DImode if !TARGET_64BIT.
4007         (mips_legitimize_move): Simplify accordingly.
4008
4009 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
4010
4011         PR/14362
4012         * var-tracking.c (struct variable_def): Added field refcount.
4013         (variable_htab_free): Decrease the refcount and delete variable
4014         only if there are no more references.
4015         (unshare_variable): New function.
4016         (vars_copy_1): Increase refcount instead of copying the variable.
4017         (variable_union): Share the variables where possible, unshare
4018         the variables if needed.
4019         (variable_different_p): Return false if var1 and var2 are
4020         the same structure.
4021         (variable_was_changed): Init the refcount of new variable.
4022         (set_frame_base_location): Unshare variable if needed.
4023         (set_variable_part): Init the refcount of new variable.
4024         Unshare the variables if needed.
4025         (delete_variable_part): Unshare the variables if needed.
4026         (emit_notes_for_differences_1): Init the refcount of new variable.
4027         (vt_add_function_parameters): Do not add function parameters to
4028         IN set of ENTRY_BLOCK_PTR because it is unused anyway.
4029         (vt_initialize): Do not add frame_base_decl to IN set of
4030         ENTRY_BLOCK_PTR because it is unused anyway.
4031
4032 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
4033
4034         * var-tracking.c (vars_copy_1): Cleanup and speedup chain operations.
4035         (vars_copy): Likewise.
4036         (variable_union): Likewise.
4037         (set_variable_part): Likewise.
4038         (delete_variable_part): Likewise.
4039
4040 2004-03-11  Kazu Hirata  <kazu@cs.umass.edu>
4041
4042         * c-typeck.c, combine.c, cse.c, dominance.c, et-forest.h,
4043         ggc-page.c, var-tracking.c, config/fp-bit.c, config/c4x/c4x.c,
4044         config/cris/cris.c, config/i386/ppro.md, config/i860/i860.c,
4045         config/i860/i860.h, config/m32r/m32r.h, config/m32r/xm-m32r.h,
4046         config/m68hc11/m68hc11.h, config/m68hc11/m68hc11.md,
4047         config/mips/mips.c, config/mmix/mmix.c, config/ns32k/ns32k.h,
4048         config/pa/pa.c, config/pa/pa32-regs.h, config/pa/pa64-regs.h,
4049         config/pdp11/pdp11.h, config/rs6000/rs6000.c,
4050         config/stormy16/stormy16.c: Fix comment typos and formatting.
4051
4052 2004-03-11  Nathanael Nerode  <neroden@gcc.gnu.org>
4053
4054         * configure: Regenerate, since I forgot to while committing Paolo's
4055         changes.
4056
4057 2004-03-08  Paolo Bonzini  <bonzini@gnu.org>
4058
4059         PR ada/14131
4060         Move language detection to the top level.
4061         * configure.ac: Remove code to detect languages,
4062         it now lives exclusively in the top level.
4063         * aclocal.m4 (gcc_AC_PROG_GNAT): Moved to the
4064         top level, renamed to ACX_PROG_GNAT.
4065
4066 2004-03-10  Richard Henderson  <rth@redhat.com>
4067
4068         * c-pch.c (c_common_no_more_pch): Update for gt_pch_use_address
4069         extra arguments.
4070         * config.host (*-*-solaris2*, *-*-linux*): Add out_host_hook_obj
4071         and host_xmake_file fragments.
4072         * ggc-common.c (gt_pch_save): Update for gt_pch_get_address change.
4073         (gt_pch_restore): Similarly for gt_pch_use_address.
4074         (default_gt_pch_get_address): New.
4075         (mmap_gt_pch_get_address): Split out of gt_pch_save.
4076         (default_gt_pch_use_address): Split out of gt_pch_restore.
4077         (mmap_gt_pch_use_address): Likewise.
4078         * hooks.c (hook_voidp_size_t_null): Remove.
4079         (hook_bool_voidp_size_t_false): Remove.
4080         * hooks.h: Likewise.
4081         * hosthooks-def.h (HOST_HOOKS_GT_PCH_GET_ADDRESS): Use one of the
4082         default_ or mmap_ definitions.
4083         (HOST_HOOKS_GT_PCH_USE_ADDRESS): Likewise.
4084         * hosthooks.h (struct host_hooks): Update gt_pch_get_address
4085         and gt_pch_use_address.
4086         * config/host-linux.c, config/host-solaris.c: New files.
4087         * config/x-linux, config/x-solaris: New files.
4088         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_get_address):
4089         Update for changed definition.
4090         (darwin_rs6000_gt_pch_use_address): Likewise.
4091         * doc/hostconfig.texi: Update docs.
4092
4093 2004-03-10  Richard Henderson  <rth@redhat.com>
4094
4095         PR c/14517
4096         * c-decl.c (grokdeclarator): Don't warn for duplicate qualifiers
4097         except for pedantic c90 mode.
4098
4099 2004-03-10  Kelley Cook  <kcook@gcc.gnu.org>
4100
4101         * configure.ac: Bump AC_PREREQ to 2.59.
4102         * configure: Regenerate.
4103
4104 2004-03-10  Uros Bizjak  <uros@kss-loka.si>
4105
4106         * optabs.h (enum optab_index): Add new OTI_exp10 and OTI_exp2.
4107         (exp10_optab, exp2_optab): Define corresponding macros.
4108         * optabs.c (init_optabs): Initialize exp10_optab and exp2_optab.
4109         * genopinit.c (optabs): Implement exp10_optab and exp2_optab
4110         using exp10?f2 and exp2?f2 patterns.
4111         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXP10{,F,L}
4112         using exp10_optab, and BUILT_IN_EXP2{,F,L} using exp2_optab.
4113         (expand_builtin): Expand BUILT_IN_EXP10{,F,L} and BUILT_IN_EXP2{,F,L}
4114         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
4115
4116         * config/i386/i386.md (exp10sf2, exp10df2, exp10xf2, exp2sf2,
4117         exp2df2, exp2xf2): New patterns to implement exp10, exp10f, exp10l,
4118         exp2, exp2f and exp2l built-ins as inline x87 intrinsics.
4119
4120 2004-03-10  Anthony Green  <green@redhat.com>
4121
4122         * doc/invoke.texi (ARM Options): Fix -mpfu typo.
4123
4124 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
4125
4126         * config/rs6000/aix.h (TARGET_OS_CPP_BUILTINS): Rename to ...
4127         (TARGET_OS_AIX_CPP_BUILTINS): this.  Conditionally define
4128         __LONGDOUBLE128.
4129         * config/rs6000/aix41.h (TARGET_OS_CPP_BUILTINS): Use
4130         TARGET_OS_AIX_CPP_BUILTINS.
4131         * config/rs6000/aix43.h (TARGET_OS_CPP_BUILTINS): Same.
4132         * config/rs6000/aix51.h (TARGET_OS_CPP_BUILTINS): Same.
4133         * config/rs6000/aix52.h (TARGET_OS_CPP_BUILTINS): Same.
4134         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Revert
4135         previous change.
4136
4137 2004-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4138
4139         * fold-const.c (tree_expr_nonnegative_p): Add more builtin cases.
4140
4141 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
4142
4143         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
4144         __LONGDOUBLE128 on AIX.
4145
4146 2004-03-10  Andrew Haley  <aph@redhat.com>
4147
4148         PR optimization/14381
4149         * function.c (expand_function_end): Emit a blockage insn before
4150         the epilogue when -fnon-call-exceptions is used.
4151
4152         * except.c (expand_start_all_catch): Make comment more accurate.
4153
4154 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
4155
4156         PR target/14480
4157         * config/rs6000/t-rtems: Add missing file on branch.
4158
4159 2004-03-10  Ulrich Weigand  <uweigand@de.ibm.com>
4160
4161         * dbxout.c (dbxout_symbol_location): Do not output references
4162         to optimized-out constant pool symbols.
4163
4164 2004-03-10  Andreas Schwab  <schwab@suse.de>
4165
4166         * config/ia64/ia64.md (divsi3, udivsi3): Remove unused variable
4167         twon34_r.
4168
4169 2004-03-09  James E Wilson  <wilson@specifixinc.com>
4170
4171         * alias.c (alias_sets_might_conflict_p): New.
4172         * c-typeck.c (build_c_cast): Call it if warn_strict_aliasing > 1.
4173         * common.opt (Wstrict-aliasing=): New.
4174         * flags.h (warn_strict_aliasing): Change type to int.
4175         * opts.c (warn_strict_aliasing): Change type to int.
4176         (common_handle_option): Handle OPT_Wstrict_aliasing_.
4177         * tree.h (alias_sets_might_conflict_p): Declare it.
4178         * doc/invoke.tex (-Wstrict-aliasing=2): Document it.
4179
4180 2004-03-10  Roman Zippel  <zippel@linux-m68k.org>
4181
4182         PR bootstrap/12371
4183         * config/m68k/m68k.h (FIXED_REGISTERS): Add arg pointer.
4184         (CALL_USED_REGISTERS): Likewise.
4185         (REG_CLASS_CONTENTS): Likewise.
4186         (REG_ALLOC_ORDER): New.
4187         (REGNO_REG_CLASS): Use regno_reg_class.
4188         * config/m68k/m68k.c: Add regno_reg_class array.
4189
4190 2004-03-09  Steve Ellcey  <sje@cup.hp.com>
4191
4192         * config/ia64/ia64.md (divsi3): Fix algorithm.
4193           (udivsi3): Ditto.
4194           (setf_exp_xf): Remove '*' from name.
4195         * testsuite/gcc.dg/20040309-1.c: New test.
4196
4197 2004-03-09  Ian Lance Taylor  <ian@wasabisystems.com>
4198
4199         * system.h (SUNOS4_SHARED_LIBRARIES): Poison.
4200         * collect2.c: Remove SUNOS4_SHARED_LIBRARIES code.
4201         * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): Don't define.
4202         * config/sparc/sparc.c (sparc_aout_select_section): Remove.
4203         (sparc_aout_select_rtx_section): Don't check
4204         SUNOS4_SHARED_LIBRARIES.
4205         * config/sparc/sparc.h (SUNOS4_SHARED_LIBRARIES): Don't define.
4206
4207 2004-03-10  Hans-Peter Nilsson  <hp@axis.com>
4208
4209         PR other/14474
4210         * doc/md.texi (Pattern Ordering, Dependent Patterns)
4211         (Jump Patterns, Looping Patterns): Wrap in separate "@ifset
4212         INTERNALS".
4213
4214 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
4215
4216         * config/ia64/hpux.h (MULTILIB_DEFAULTS): Define.
4217         (LIBGCC_SPEC): Update to match.
4218
4219 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
4220
4221         * c-decl.c (last_function_parms, last_function_parm_tags)
4222         (last_function_parm_others, current_function_parms)
4223         (current_function_parm_tags, current_function_parm_others):
4224         Delete.
4225         (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES, ARG_INFO_OTHERS):
4226         New macros.
4227         (grokdeclarator): For function definitions, save the arg-info
4228         block from the declarator in DECL_ARGUMENTS.
4229         (grokparms): Do not write to last_function_parm*.  Use ARG_INFO_*
4230         macros to operate on arg-info block.  Can assume ARG_INFO_PARMS
4231         contains only PARM_DECLs.  Improve diagnostics.
4232         (get_parm_info): Use ARG_INFO_* macros.  Improve comments and
4233         diagnostics.  Disable some expensive checks if not ENABLE_CHECKING.
4234         (store_parm_decls_newstyle): Take the function to operate on,
4235         and an arg-info block, as arguments; don't get anything from
4236         current_function_* globals.
4237         (store_parm_decls_oldstyle): Likewise.
4238         (store_parm_decls): Pass fndecl and its arg-info block down to
4239         store_parm_decls_newstyle/oldstyle.  Send functions with empty
4240         argument lists through store_parm_decls_newstyle to reduce
4241         overhead.
4242         (pushdecl): Comment on the problems with the call to copy_node.
4243         Clear DECL_ARGUMENTS of the old node after copying it, if it
4244         is an arg-info block instead of a chain of decls.
4245         (start_function): Do not manipulate current_function_parm* or
4246         last_function_parm*.
4247
4248 2004-03-09  Roger Sayle  <roger@eyesopen.com>
4249             Andrew Pinski  <pinskia@physics.uc.edu>
4250
4251         * ifcvt.c (noce_try_sign_mask): New function to transform
4252         "x = (y < 0) ? z : 0" into the equivalent "x = (y >> C) & z".
4253         (noce_process_if_block): Call noce_try_sign_mask.
4254
4255 2004-03-09  Andrew Pinski  <apinski@apple.com>
4256
4257         * c-typeck.c (tagged_types_tu_compatible_p):
4258         Fix typo.
4259
4260 2004-03-09  Roger Sayle  <roger@eyesopen.com>
4261
4262         * simplify-rtx.c (simplify_const_relational_operation): New function
4263         renamed from simplify_relational_operation.
4264         (simplify_relational_operation): Change prototype to accept an
4265         additional mode argument.  Call simplify_const_relational_operation.
4266         (simplify_gen_relational): Update simplify_relational_operation call.
4267         (simplify_ternary_operation): Update simplify_relational_operation
4268         subroutine call to use simplify_const_relational_operation instead.
4269
4270         * rtl.h (simplify_const_relational_operation): Prototype here.
4271         (simplify_relational_operation): Add addtional mode argument.
4272
4273         * combine.c (combine_simplify_rtx): Update calls to
4274         simplify_relational_operation.
4275         (simplify_set): Likewise.
4276         (gen_binary): Likewise.
4277         * cse.c (fold_rtx): Likewise.
4278         * dojump.c (compare_from_rtx): Likewise.
4279         (do_compare_rtx_and_jump): Likewise.
4280         * integrate.c (subst_constants): Likewise.
4281         * unroll.c (simplify_cmp_and_jump_insns): Likewise.
4282
4283 2004-03-09  Kazu Hirata  <kazu@cs.umass.edu>
4284
4285         * config/m32r/m32r.md: Remove all define_peephole's.
4286
4287 2004-03-09  Alan Modra  <amodra@bigpond.net.au>
4288
4289         * config/rs6000/rs6000.md: Remove trailing whitespace.
4290
4291 2004-03-08  Eric Christopher  <echristo@redhat.com>
4292
4293         * Makefile.in (site.exp): Add libiconv variable definition.
4294
4295 2004-03-09  Hans-Peter Nilsson  <hp@axis.com>
4296
4297         * configure: Regenerate for config/accross.m4 correction.
4298
4299 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
4300
4301         PR target/14480
4302         * config/rs6000/t-rtems: Add missing file on branch.
4303
4304 2004-03-08  Roger Sayle  <roger@eyesopen.com>
4305
4306         PR middle-end/14289
4307         * c-typeck.c (c_mark_addressable): A register variable should
4308         be considered global if its not automatic, i.e. TREE_PUBLIC,
4309         TREE_STATIC or DECL_EXTERNAL.
4310         * function.c (put_var_into_stack): Call abort when placing a
4311         hard register into the stack, if x_parm_reg_stack_loc is NULL.
4312
4313 2004-03-08  Ulrich Weigand  <uweigand@de.ibm.com>
4314
4315         * config/s390/s390.md ("*extendqidi2_short_displ"): Add CC clobber.
4316         ("*extendqisi2_short_displ"): Likewise.
4317
4318 2004-03-08  Kazu Hirata  <kazu@cs.umass.edu>
4319
4320         * config/pdp11/pdp11.c (comparison_operator_index): Remove.
4321         (comp_operator): Likewise.
4322         * config/pdp11/pdp11-protos.h: Remove corresponding
4323         prototypes.
4324
4325 2004-03-08  Eric Botcazou  <ebotcazou@act-europe.fr>
4326
4327         * expr.c (highest_pow2_factor_for_type): Rename into
4328         highest_pow2_factor_for_target.  Use DECL_ALIGN instead of
4329         TYPE_ALIGN when the target is a COMPONENT_REF.
4330         (expand_assignment): Ajust call to highest_pow2_factor_for_type.
4331
4332 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
4333
4334         * config/rs6000/rs6000.c: Formatting fix.
4335         (legitimate_offset_address_p): Correct offset range check.
4336
4337         * config/rs6000/rs6000.c (rs6000_override_options): Don't override
4338         -msoft-float by -mcpu.  Consolidate similar code for MASK_MULTIPLE
4339         and MASK_STRING.
4340
4341 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
4342
4343         * config/rs6000/rs6000.md (ashrdi3): Do not call ashrdi3_no_power
4344         for little endian.
4345         ("ashrdi3_no_power"): Disable for little endian.
4346         (ashrdi3): Same.
4347
4348 2004-03-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4349
4350         * fold-const.c (tree_expr_nonnegative_p): Reformat checks for
4351         builtins.
4352
4353 2004-03-08  Hans-Peter Nilsson  <hp@axis.com>
4354
4355         PR target/14471
4356         * configure.ac (Target-specific assembler checks) <cris-*-*>: New
4357         case, checking for -no-mul-bug-abort option.
4358         * configure, config.in: Regenerate.
4359         * doc/invoke.texi (CRIS Options): Document -mmul-bug-workaround
4360         and -mno-mul-bug-workaround.
4361         * config/cris/cris.md ("smulsi3_highpart", "umulsi3_highpart")
4362         ("mulsidi3", "umulsidi3"): Prefix output template with "%!".
4363         ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3"):
4364         Ditto.  Make attribute "slottable" dependent on TARGET_MUL_BUG.
4365         * config/cris/mulsi3.asm (__Mul) [__CRIS_arch_version >= 10]: Make
4366         sure mulu.d is not last on cache-line.
4367         * config/cris/cris.h (ASM_SPEC): Translate -mno-mul-bug-workaround
4368         into -no-mul-bug-abort depending on HAVE_AS_MUL_BUG_ABORT_OPTION.
4369         (TARGET_MASK_MUL_BUG, TARGET_MUL_BUG): New macros.
4370         (TARGET_SWITCHES): New options -mmul-bug-workaround and
4371         -mno-mul-bug-workaround.
4372         (TARGET_DEFAULT): Include TARGET_MASK_MUL_BUG.
4373         (PRINT_OPERAND_PUNCT_VALID_P): Include '!'.
4374         * config/cris/cris.c (cris_operand_extend_operator): Clarify
4375         relation to MULT in head comment.
4376         (cris_op_str): Abort for MULT.
4377         (cris_print_operand) <case '!'>: New case.
4378
4379 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
4380
4381         PR debug/11983
4382         * dwarf2out.c (enum dw_val_class): Rename dw_val_class_float to
4383         dw_val_class_vec.  Replace use throughout file.
4384         (dw_float_const): Delete.
4385         (dw_vec_const): New.
4386         (dw_val_struct_union): Rename val_float to val_vec.  Replace use
4387         throughout file.
4388         (add_AT_vec): Rename from add_AT_float.  Add elt_size param.
4389         (same_dw_val_p): Adjust vec comparison.  Use memcmp.
4390         (size_of_die): Adjust dw_val_class_vec sizing.
4391         (output_die): Output dw_val_class_vec.
4392         (insert_int, extract_int, insert_float): New functions.
4393         (add_const_value_attribute): Use insert_float for CONST_DOUBLE.
4394         Handle CONST_VECTOR.
4395         (add_location_or_const_value_attribute): Handle CONST_VECTOR.
4396
4397 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
4398
4399         * config/rs6000/rs6000.c (rs6000_parse_abi_options): SPE and
4400         AltiVec abi cannot co-exist.
4401
4402         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Same.
4403
4404 2004-03-07  Jan Hubicka  <jh@suse.cz>
4405
4406         * except.c (emit_to_new_bb_before):  Break fallthru edges.
4407
4408 2004-03-07  Stephane Carrez  <stcarrez@nerim.fr>
4409
4410         * config/m68hc11/m68hc11.md ("*lshrsi3_const"): Disable for 68HC12.
4411         ("*lshrsi3"): Also accept an immediate for 68HC12.
4412         ("*ashrsi3_const"): Likewise.
4413         ("*ashrsi3"): Likewise.
4414         ("*ashlsi3_const"): Likewise.
4415         ("*ashlsi3"): Likewise.
4416         ("cmphi_1_hc12"): Compare two hard register by pushing them and
4417         comparing with a pop; don't use a split for that.
4418         ("cmphi split"): Disable compare split for 68HC12.
4419
4420         * config/m68hc11/m68hc11.c (m68hc11_notice_update_cc): Invalidate
4421         the status operands if they have side effects.
4422
4423 2004-03-07  Kazu Hirata  <kazu@cs.umass.edu>
4424
4425         * defaults.h (LEGITIMIZE_ADDRESS): Provide a default
4426         definition.
4427         * config/arc/arc.h, config/fr30/fr30.h, config/frv/frv.h,
4428         config/h8300/h8300.h, config/ia64/ia64.h,
4429         config/mcore/mcore.h, config/mmix/mmix.h,
4430         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
4431         config/stormy16/stormy16.h, config/v850/v850.h,
4432         config/vax/vax.h (LEGITIMIZE_ADDRESS): Remove.
4433         * doc/tm.texi (LEGITIMIZE_ADDRESS): Mention the default
4434         definition.
4435
4436 2004-03-07  Roger Sayle  <roger@eyesopen.com>
4437
4438         * fold-const.c (fold) <IOR_EXPR>: Fold x | x as x.
4439         <XOR_EXPR>: Fold x ^ x as zero.
4440         <AND_EXPR>: Fold x & x as x.
4441
4442 2004-03-07  Roger Sayle  <roger@eyesopen.com>
4443
4444         * fold-const.c (fold) <EQ_EXPR>: Rewrite optimization to transform
4445         "foo++ == const" into "++foo == const+incr".
4446
4447 2004-03-07  Richard Sandiford  <rsandifo@redhat.com>
4448
4449         * config/mips/mips.c (mips_in_small_data_p): Return false if
4450         TARGET_ABICALLS.
4451
4452 2004-03-06  Stephane Carrez  <stcarrez@nerim.fr>
4453
4454         * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Use 2,-sp to push
4455         the stack register.
4456         (expand_prologue): Don't make an interrupt or a trap handler a far
4457         symbol.
4458         (m68hc11_initial_elimination_offset): Likewise.
4459
4460 2004-03-06  Richard Henderson  <rth@redhat.com>
4461
4462         * config/alpha/alpha.c (alpha_in_small_data_p): False for functions.
4463
4464 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
4465
4466         * config/ns32k/ns32k-protos.h: Add a prototype for
4467         ns32k_notice_update_cc.
4468         * config/ns32k/ns32k.c (ns32k_notice_update_cc): New.
4469         * config/ns32k/ns32k.h (NOTICE_UPDATE_CC): Call
4470         ns32k_notice_update_cc.
4471
4472 2004-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
4473
4474         * config/s390/s390.md ("load_multiple", "*load_multiple_di",
4475         "*load_multiple_si"): Allow only if reload_completed.
4476         ("store_multiple", "*store_multiple_di", "*store_multiple_si"):
4477         Likewise.
4478
4479 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
4480
4481         * config/vax/vax-protos.h: Add a prototype for
4482         vax_notice_update_cc.
4483         * config/vax/vax.c (vax_notice_update_cc): New.
4484         * config/vax/vax.h (NOTICE_UPDATE_CC): Call
4485         vax_notice_update_cc.
4486
4487 2004-03-06  David Edelsohn  <edelsohn@gnu.org>
4488
4489         * collect2.c (main): Only export initfunc and finifunc if
4490         LD_INIT_SWITCH not defined.
4491         (scan_prog_file): Only export constructors and destructors if
4492         LD_INIT_SWITCH not defined.  Only export symbols not found in
4493         shared objects.
4494
4495 2004-03-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4496
4497         * pa.md (icacheflush): Reorder operands to make match_scratch operand
4498         last.
4499         * pa.h (INITIALIZE_TRAMPOLINE): Remove unnecessary scratch argument
4500         from calls to gen_icacheflush.
4501
4502 2004-03-06  Richard Henderson  <rth@redhat.com>
4503
4504         * config/alpha/alpha.h (MASK_LONG_DOUBLE_128): New.
4505         (TARGET_LONG_DOUBLE_128): New.
4506         (TARGET_SWITCHES): Add long-double-{128,64}.
4507         (TARGET_HAS_XFLOATING_LIBS): Default to TARGET_LONG_DOUBLE_128.
4508         (LONG_DOUBLE_TYPE_SIZE): Honor TARGET_LONG_DOUBLE_128.
4509         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): New.
4510         (WIDEST_HARDWARE_FP_SIZE): New.
4511         (TARGET_CPU_CPP_BUILTINS): Define __LONG_DOUBLE_128__.
4512         * config/alpha/alpha.c (override_options): Clear MASK_LONG_DOUBLE_128
4513         if TARGET_VAX_FLOAT.
4514         * config/alpha/osf5.h (LONG_DOUBLE_TYPE_SIZE): Remove.
4515         (TARGET_DEFAULT): Set MASK_LONG_DOUBLE_128.
4516
4517 2004-03-06  Richard Henderson  <rth@redhat.com>
4518
4519         * config/alpha/alpha.c (alpha_swapped_comparison_operator): Fix
4520         botched rtx class conversion.
4521
4522 2004-03-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4523
4524         * tree.h (BUILTIN_EXP10_P, BUILTIN_EXPONENT_P, BUILTIN_SQRT_P,
4525         BUILTIN_CBRT_P, BUILTIN_ROOT_P): New macros.
4526
4527         * builtins.c (fold_builtin_logarithm, fold_builtin): Use new
4528         macros.
4529         * fold-const.c (fold_mathfn_compare, fold): Likewise.
4530
4531 2004-03-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
4532
4533         PR target/14343
4534         * config/i386/i386.md (movv2di_internal): Conditionalize on
4535         TARGET_SSE, not TARGET_SSE2.
4536
4537 2004-03-05  Chris Demetriou  <cgd@broadcom.com>
4538
4539         * config.gcc (mips64orion-*-elf*, mips64orionel-*-elf*): Delete
4540         duplicated line.
4541
4542 2004-03-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4543
4544         * builtins.c: Consistently use logN not log* in comments.
4545
4546 2004-03-05  Andreas Krebbel  <krebbel1@de.ibm.com>
4547
4548         * rtl.h (mem_expr_equal_p): Function prototype added.
4549         * cfgcleanup.c (merge_memattrs): New function.
4550         (flow_find_cross_jump): Call merge_memattrs for matching insns.
4551         * emit-rtl.c (mem_expr_equal_p): New function.
4552
4553 2004-03-05  Ziemowit Laski  <zlaski@apple.com>
4554
4555         * objc/objc-act.c (synth_module_prologue): Const-qualify
4556         objc_selector type if using the GNU runtime; fix generated
4557         signatures for objc_msg_lookup and objc_msg_lookup_super
4558         to match what GNU ObjC headers provide; reformat and clean up.
4559         (synth_self_and_ucmd_args): Use previously constructed (and
4560         hence possibly const-qualified) objc_selector type.
4561
4562 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
4563
4564         * doc/tm.texi (HARD_REGNO_RENAME_OK): Document.
4565
4566 2004-03-05  Jason Merrill  <jason@redhat.com>
4567
4568         * tree.h (TYPE_HASH): Use TYPE_UID.
4569         (TREE_HASH): New macro with old definition of TYPE_HASH.
4570         * tree.c (build_type_attribute_variant): Use iterative_hash_object.
4571         (build_array_type, build_function_type): Likewise.
4572         (build_method_type_directly): Likewise.
4573         (build_offset_type, build_complex_type): Likewise.
4574         (type_hash_list, attribute_hash_list): Likewise. Now static.
4575         * except.c: s/TYPE_HASH/TREE_HASH/.
4576
4577 2004-03-05  Bob Wilson  <bob.wilson@acm.org>
4578
4579         * config/xtensa/xtensa.c (function_arg): Handle 16-byte aligned args.
4580         (xtensa_va_start): Initialize __va_stk to ($arg_ptr - 32).  Adjust
4581         __va_ndx by 2 words when referencing an argument on the stack.
4582         (xtensa_va_arg): Handle 16-byte aligned args.  Adjust __va_ndx by 2
4583         words when an arg on the stack is first seen.
4584
4585 2004-03-05  Paul Brook  <paul@codesourcery.com>
4586
4587         * arm.h (ARM_FLAG_VFP): Remove.
4588         (ARM_FLAG_ATPCS, CIRRUS_FIX_INVALID_INSNS): Renumber.
4589         * netbsd-elf.h (ARM_FLAG_VFP): Remove.
4590
4591 2004-03-05  Paul Brook  <paul@codesourcery.com>
4592
4593         * function.c (assign_parms): Include pretend alignment offset.
4594
4595 2004-03-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4596
4597         * stor-layout.c (layout_type, case FUNCTION_TYPE): Make size
4598         FUNCTION_BOUNDARY, not POINTER_SIZE * 2.
4599
4600 2004-03-05  Ian Lance Taylor  <ian@wasabisystems.com>
4601
4602         * configure.ac: When passing --enable-languages to subdir
4603         configure when host != build, make sure we don't pass an empty
4604         value.
4605         * configure: Regenerate.
4606
4607 2004-03-05  Nathan Sidwell  <nathan@codesourcery.com>
4608
4609         PR 13577
4610         * gcc.c (cc1_options): Robustify -auxbase-strip from multiple -o
4611         options.
4612
4613 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
4614
4615         * simplify-rtx.c (simplify_relational_operation): If
4616         flag_wrapv is set, do not move terms between the two
4617         side of a relational operator.
4618
4619 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
4620
4621         * rtlanal.c: Include target.h and output.h
4622         (rtx_cost, address_cost, default_address_cost): Move from...
4623         * cse.c (rtx_cost, address_cost, default_address_cost):
4624         ... this file.
4625         * rtl.h (rtx_cost, address_cost): Move under rtlanal.c.
4626         * Makefile.in: Adjust dependencies.
4627
4628 2004-03-05  Paolo Bonzini <bonzini@gnu.org>
4629
4630         * cse.c (cse_end_of_basic_block): Make static.
4631         * local-alloc.c (function_invariant_p): Move to
4632         reload1.c.
4633         * loop.c (libcall_other_reg, record_excess_regs):
4634         Make static.
4635         * reload1.c (function_invariant_p): Moved here
4636         from local-alloc.c, made static.
4637         * rtl.h (cse_end_of_basic_block, function_invariant_p,
4638         libcall_other_reg, record_excess_regs): Remove
4639         declarations.
4640
4641 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
4642
4643         * config/m32r/m32r.c (signed_comparison_operator): Add a
4644         missing parenthesis.
4645
4646 2004-03-04  Ian Lance Taylor  <ian@wasabisystems.com>
4647
4648         * ggc-common.c (gt_pch_restore): Don't unmap addr unless we are
4649         going to call mmap again.  Read the file into the right place.
4650         Give a fatal error if we have to relocate.
4651
4652 2004-03-04  Bob Wilson  <bob.wilson@acm.org>
4653
4654         * config/xtensa/xtensa.c (xtensa_return_in_msb): New function.
4655         (TARGET_RETURN_IN_MSB): Define to xtensa_return_in_msb.
4656
4657 2004-03-05  Hans-Peter Nilsson  <hp@axis.com>
4658
4659         PR other/14354
4660         * config/fp-bit.c (_fpdiv_parts): Do not round when pack_d would
4661         round the same.  When rounding, clear bits that would cause a
4662         second rounding in pack_d.
4663         (_fpmul_parts): Ditto.  Remove #if 0:d code.
4664
4665 2004-03-04  Ziemowit Laski  <zlaski@apple.com>
4666
4667         PR c++/14425, c++/14426
4668         * config/rs6000/altivec.h (vec_splat_s8, vec_splat_s16,
4669         vec_splat_s32, vec_splat_u8, vec_splat_u16, vec_splat_u32):
4670         Change C++ definitions to accept a 'const int' argument;
4671         the prototypes already do.
4672         * config/rs6000/rs6000.c (rs6000_common_init_builtins):
4673         Rename v4si_ftype_char, v8hi_ftype_char, v16qi_ftype_char,
4674         v4sf_ftype_v4si_char, v4si_ftype_v4sf_char, v4si_ftype_v4si_char,
4675         v8hi_ftype_v8hi_char, v16qi_ftype_v16qi_char,
4676         v16qi_ftype_v16qi_v16qi_char, v8hi_ftype_v8hi_v8hi_char,
4677         v4si_ftype_v4si_v4si_char and v4sf_ftype_v4sf_v4sf_char to
4678         end in ..._int; change them to accept an int instead of a char
4679         as the last parameter.
4680
4681 2004-03-04  Phil Edwards  <phil@codesourcery.com>
4682
4683         * genmultilib:  Change '=' to '-' when translating option names
4684         to directory names.
4685
4686 2004-03-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4687
4688         * expr.c (expand_expr_real, case COMPONENT_REF): Get proper type of
4689         stack slot for temp used for result of BLKmode but in integral mode.
4690
4691 2004-03-04  Jan Hubicka  <jh@suse.cz>
4692
4693         * reload.c (find_reloads): Reorganize if seqeunce to switch.
4694
4695         * cfgrtl.c (rtl_redirect_edge_and_branch):  Set the source BB as dirty.
4696         (cfglayout_redirect_edge_and_branch):  Set the source BB as dirty.
4697
4698 2004-03-04  Steve Ellcey  <sje@cup.hp.com>
4699
4700         * config/ia64/ia64.md (divdf3_internal_thr): Fix algorithm.
4701         * testsuite/gcc.dg/20040303-1.c: New test.
4702
4703 2004-03-04  Steven Bosscher  <stevenb@suse.de>
4704
4705         * ppro.md: Rewrite as a DFA pipeline description.
4706         * i386.md: Remove all uses of the ppro_uops attribute.
4707         * i386.c: (ix86_safe_ppro_uops, ix86_dump_ppro_packet,
4708         ix86_reorder_insn, ix86_sched_reorder_ppro, ix86_sched_init,
4709         ix86_sched_reorder, ix86_variable_issue,
4710         struct ix86_sched_data, TARGET_SCHED_VARIABLE_ISSUE,
4711         TARGET_SCHED_INIT, TARGET_SCHED_REORDER): Remove.
4712         (ia32_use_dfa_pipeline_interface): Add TARGET_PENTIUMPRO.
4713         (ia32_multipass_dfa_lookahead): Add TARGET_PENTIUMPRO.
4714         * athlon.md (athlon_ssecmp_load): Fix comment
4715
4716 2004-03-04  Stuart Hastings  <stuart@apple.com>
4717
4718         * gcc/doc/invoke.texi: Document -mlongcall for Darwin/PPC.
4719
4720 2004-03-04  Stuart Hastings  <stuart@apple.com>
4721
4722         * gcc/config/i386/darwin.h: Darwin/x86 doesn't support CPUs before
4723         686, tell Darwin assembler to allow prefetch insns, non-empty def
4724         of SUBTARGET_OPTION_TRANSLATE_TABLE.
4725
4726 2004-03-04  DJ Delorie  <dj@redhat.com>
4727
4728         PR optimization/14282
4729         * sched-deps.c (sched_analyze_insn): Allow a stack adjustment
4730         between a call and the assignment of its return value.
4731
4732 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
4733
4734         * config/h8300/h8300.c: Put a comment for every function.
4735
4736 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
4737
4738         * config/h8300/h8300.md: Add comments about peephole2's.
4739
4740 2004-03-04  Steven Bosscher  <stevenb@suse.de>
4741
4742         * i386.h (TARGET_CPU_DEFAULT_nocona): Fix value.
4743
4744 2004-03-04  Jan Hubicka  <jh@suse.cz>
4745
4746         * cfgcleanup.c (thread_jump): Update call of cselib_init.
4747         * cselib.c (cselib_record_memory): New static variable.
4748         (cselib_lookup_mem, cselib_record_set, cselib_record_sets):
4749         Give up on memories when asked for.
4750         (cselib_init): Accept new argument.
4751         * cselib.h (cselib_init): Update prototype.
4752         * gcse.c (local_cprop_pass): Update call of cselib_init.
4753         * loop.c (load_mems): Update call of cselib_init.
4754         * postreload.c (reload_cse_regs_1): Update call of cselib_init.
4755         * sched-deps.c (sched_analyze): Update call of cselib_init.
4756
4757 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
4758             GP <gp@qnx.com>
4759
4760         * config/rs6000/rs6000.c (output_function_profiler): Append @plt
4761         when compiling PIC.
4762
4763 2004-03-04  Josef Zlomek  <zlomekj@suse.cz>
4764
4765         PR/14362
4766         * var-tracking.c (track_expr_p): Do not track variables which
4767         should be ignored for debugging purposes.
4768
4769 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
4770
4771         * real.c (encode_ibm_extended): Don't bother rounding low double.
4772         * c-cppbuiltin.c (builtin_define_float_constants): Tweak MAX
4773         when fmt->pnan < fmt->p.
4774
4775 2004-03-04  Eric Christopher  <echristo@redhat.com>
4776
4777         * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Fix to check
4778         only range of valid arg registers and fixed_regs.
4779
4780 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
4781
4782         PR target/14406
4783         * config/rs6000/rs6000.md (abstf2, abstf2+1): Delete define_insn.
4784         (abstf2, abstf2_internal): New define_expand.
4785
4786 2004-03-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
4787
4788         PR optimization/14235
4789         * expr.c (convert_move): Copy the source to a new pseudo
4790         when converting from a sub-word source to a larger-than-word
4791         register which conflicts with the source.
4792
4793 2004-03-03  Zack Weinberg  <zack@codesourcery.com>
4794
4795         PR 13728
4796         * c-decl.c (diagnose_mismatched_decls): Issue an error for two
4797         parameters with the same name, unless one is a forward decl.
4798         Do not issue a redundant-redeclaration warning for forward
4799         decls of parameters.
4800
4801 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
4802
4803         * doc/install.texi (*-ibm-aix*): Document use of Bash to speed up
4804         configuration.
4805
4806 2004-03-03  Ian Lance Taylor  <ian@wasabisystems.com>
4807
4808         * ggc-zone.c (ggc_pch_write_object): Don't align file pointer.
4809
4810 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
4811
4812         * target-def.h (TARGET_OPTF): Delete.
4813         * c-opts.c (TARGET_OPTF): Define.
4814
4815 2004-03-04  Jan Hubicka  <jh@suse.cz>
4816
4817         * cselib.c (cselib_finish): Fix another miss-application of my previous
4818         patch.
4819
4820 2004-03-03  Mike Stump  <mrs@apple.com>
4821
4822         Add framework support for darwin.
4823
4824         * c-incpath.c: Include target.h and machmode.h.
4825         (add_path): Use a consistent style for cpp_dir.  Initialize
4826         p->construct to 0.
4827         (add_cpp_dir_path): New.
4828         (register_include_chains): Add use of extra_includes callback.
4829         (hook_void_int): Add.
4830         (target_c_incpath): Add.
4831         * c-incpath.h (add_cpp_dir_path): New.
4832         (target_c_incpath_s): Add.
4833         (target_c_incpath): Add.
4834         (C_INCPATH_INIT): Add.
4835         * c-opts.c (c_common_missing_argument,
4836         c_common_handle_option): Add -F argument processing.
4837         * c.opt: Add -F argument processing.
4838         * gcc.c (trad_capable_cpp): Add -F argument processing.
4839         * cppfiles.c (find_file_in_dir): Update to use construct
4840         callback.
4841         (search_path_exhausted, cpp_get_path, cpp_get_buffer,
4842         cpp_get_prev): New.
4843         (_cpp_find_file): Use search_path_exhausted.
4844         (make_cpp_dir): Initialize construct to 0.
4845         * cpplib.h (missing_header_cb
4846         cpp_get_path, cpp_get_buffer, cpp_get_file, cpp_get_prev): New.
4847         (cpp_callbacks): Add missing_header
4848         (cpp_dir): Add construct.
4849         * target-def.h: (TARGET_OPTF): New.
4850         * hooks.c (hook_void_int, hook_void_charptr): Add.
4851         * hooks.h (hook_void_int, hook_void_charptr): Add.
4852         * Makefile.in (c-incpath.o) : Add $(TARGET_H) and
4853         $(MACHMODE_H) dependencies.
4854         * doc/invoke.texi (Darwin Options): Document -F.
4855         * doc/tm.texi (TARGET_EXTRA_INCLUDES): Add.
4856         (TARGET_OPTF): Add.
4857         * fix-header.c (target_c_incpath): Add.
4858
4859         * config/darwin-c.c: Add c-incpath.h include.
4860         (using_frameworks, find_subframework_file,
4861         find_subframework_header, add_system_framework_path,
4862         frameworks_in_use, num_frameworks, max_frameworks,
4863         add_framework, find_framework, struct framework_header,
4864         framework_header_dirs, framework_construct_pathname,
4865         find_subframework_file, add_system_framework_path,
4866         add_framework_path, framework_defaults,
4867         darwin_register_frameworks, find_subframework_header): Add.
4868         * config/darwin.h (TARGET_EXTRA_INCLUDES, TARGET_OPTF): New.
4869         (TARGET_OPTION_TRANSLATE_TABLE): Add -framework support.
4870         (CPP_SPEC): Add __APPLE_CC__ support.
4871         * t-darwin (darwin-c.o): Add c-incpath.h dependency.
4872
4873 2004-03-04  Jan Hubicka  <jh@suse.cz>
4874
4875         * cselib.c (cselib_finish): Fix miss-application of my previous
4876         patch.
4877
4878 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
4879
4880         * hooks.c (hook_tree_tree_identity): New.
4881         * hooks.h: Add a prototype for hook_tree_tree_identity.
4882         * stmt.c (expand_asm_operands): Use targetm.md_asm_clobbers
4883         instead of MD_ASM_CLOBBERS.
4884         * system.h (MD_ASM_CLOBBERS): Poison.
4885         * target-def.h (TARGET_MD_ASM_CLOBBERS): New.
4886         (TARGET_INITIALIZER): Add TARGET_MD_ASM_CLOBBERS.
4887         * target.h (gcc_target): Add md_asm_clobbers.
4888         * config/i386/i386.c (TARGET_MD_ASM_CLOBBERS): New.
4889         (ix86_md_asm_clobbers): New.
4890         * config/i386/i386.h (MD_ASM_CLOBBERS): Remove.
4891         * doc/tm.texi (MD_ASM_CLOBBERS): Change to
4892         TARGET_MD_ASM_CLOBBERS.
4893
4894 2004-03-03  Stuart Hastings  <stuart@apple.com>
4895
4896         * gcc/config.gcc: Arrange for Darwin/x86 to build libgcc_eh.a.
4897
4898 2004-03-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
4899
4900         * config/sparc/sparc.c (noov_compare64_op): Fix typo.
4901
4902         * config/sparc/sparc.h (ASM_FLOAT): Delete.
4903         (ASM_DOUBLE): Likewise.
4904         (ASM_LONGDOUBLE): Likewise.
4905         * config/sparc/pbd.h (ASM_INT_OP): Delete.
4906
4907 2003-03-03  Richard Henderson  <rth@redhat.com>
4908
4909         PR opt/13862
4910         * cselib.c (cselib_record_sets): Don't record multiple sets in
4911         asm insns.
4912
4913 2004-03-03  Mostafa Hagog  <mustafa@il.ibm.com>
4914
4915         * common.opt: Add description of the new -fgcse-after-reload flag.
4916
4917         * flags.h (flag_gcse_after_reload): Declaration of global variable.
4918
4919         * gcse.c (reg_used_on_edge ,reg_set_between_after_reload_p,
4920         reg_used_between_after_reload_p, rtx get_avail_load_store_reg,
4921         is_jump_table_basic_block, bb_has_well_behaved_predecessors,
4922         get_bb_avail_insn, hash_scan_set_after_reload,
4923         compute_hash_table_after_reload, eliminate_partially_redundant_loads,
4924         gcse_after_reload, get_bb_avail_insn): New functions to implement
4925         gcse-after-reload.
4926         (gcse_after_reload_main): New function, the main entry point to
4927         gcse-after-reload.
4928
4929         * rtl.h (gcse_after_reload_main): Declaration of the new function.
4930
4931         * opts.c (common_handle_option): Handle the -fgcse-after-reload flag.
4932
4933         * toplev.c (flag_gcse_after_reload): Initialization.
4934
4935         * passes.c (rest_of_handl_gcse2): Call gcse_after_reload_main.
4936
4937         * params.def (PARAM_GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
4938         PARAM_GCSE_AFTER_RELOAD_CRITICAL_FRACTION): New parameters for tuning
4939         the gcse after reload optimization.
4940
4941         * params.h (GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
4942         GCSE_AFTER_RELOAD_CRITICAL_FRACTION): Two macros to access the tuning
4943         parameters.
4944
4945         * doc/invoke.texi: Documentation for the new flag gcse-after-reload.
4946
4947 2004-03-03  Nicolas Pitre <nico@cam.org>
4948
4949         * config/arm/ieee754-df.S (muldf3, divdf3): Fix denormalization of
4950         small negative values.
4951
4952 2004-03-03  Jan Hubicka  <jh@suse.cz>
4953
4954         * cselib.c (hash_table):  Remove GTY marker.
4955         (reg_values): Turn into array.
4956         (used_regs): Likewise.
4957         (n_used_regs): New static variable.
4958         (reg_values_old): Kill.
4959         (clear_table): Update uses of arrays.
4960         (cselib_lookup): Likewise.
4961         (cselib_record_set): Likewise.
4962         (cselib_init): Likewise.
4963         (cselib_finish): Likewise.
4964         (cselib_udpate_varray_sizes): Kill.
4965         * cselib.h (cselib_update_varray_sizes): Kill.
4966
4967 2004-03-03  Paul Brook  <paul@codesourcery.com>
4968
4969         * flow.c (ior_reg_cond, and_reg_cond): Remove stray ")".
4970
4971 2004-03-03  Jan Hubicka  <jh@suse.cz>
4972
4973         * ggc-common.c (ggc_alloc_cleared_stat, ggc_realloc_stat):
4974         Rename from ...; make statistics transparent.
4975         (ggc_alloc_cleared, ggc_realloc_stat): ... these.
4976         (loc_descriptor): New structure.
4977         (hash_descriptor, eq_descriptor, loc_descriptor, cmp_statistics,
4978         add_statistics):
4979         New static function.
4980         (ggc_record_overhead, dump_statistics): New global function.
4981         * ggc-none.c (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
4982         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Rename
4983         from ...; accept locations
4984         (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
4985         ggc_realloc, ggc_alloc_typed):  ... this one.
4986         from ...; accept locations
4987         * ggc-page.c (ggc_alloc_typed_stat, ggc_alloc_zone_stat,
4988         ggc_alloc_stat): Rename from ... ; pass locations
4989         * ggc-page.c (ggc_alloc_typed, ggc_alloc_zone, ggc_alloc):
4990         ... this one.
4991         (ggc_alloc_stat): Record overehead.
4992         * ggc.h (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
4993         ggc_realloc, ggc_alloc_typed):  Turn to macros
4994         (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
4995         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Declare.
4996         (dump_ggc_loc_satistics, ggc_record_overehead): Declare.
4997         * langhooks.h (lhd_make_node): Declare.
4998         (LANG_HOOKS_MAKE_TYPE): Default to new function,
4999         * langhooks.c (lhd_make_node): New.
5000         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Rename from ... ; pass
5001         locations.
5002         (rtx_alloc, swallow_copy_rtx): ... this one.
5003         * rtl.h (rtx_alloc, swallow_copy_rtx): Turn to macros.
5004         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Declare.
5005         * toplpev.c (finalize): Dump stats.
5006         * tree.c (make_node_stat, copy_node_stat, make_tree_vec_stat,
5007         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
5008         Rename from ... ; pass locators.
5009         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
5010         build?,  build_decl): Declare.
5011         * tree.h (make_node_stat, copy_node_stat, make_tree_vec_stat,
5012         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
5013         Declare.
5014         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
5015         build?,  build_decl): New macros.
5016         * Makefile.in (RTL_H, TREE_H): Add statistics.h dependency.
5017         * statistics.h: New file.
5018
5019 2004-03-03  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
5020             Richard Sandiford  <rsandifo@redhat.com>
5021
5022         * config/mips/mips.h (MASK_FIX_SB1): Bump.
5023         (MASK_FIX_R4400, TARGET_FIX_R4400): New macros.
5024         (TARGET_SWITCHES): Add -mfix-r4400 and -mno-fix-r4400.
5025         * config/mips/mips.c (mips_output_division): Fill the branch delay
5026         slot with a nop if TARGET_FIX_R4000.  Extend R4000 workarounds to
5027         TARGET_FIX_R4400.
5028         (mips_output_division): Adjust accordingly.
5029         (override_options): Make -march=r4400 imply -mfix-r4400 by default.
5030         * doc/invoke.texi: Document -mfix-r4400 and new errata workarounds.
5031
5032 2004-03-03  Paolo Bonzini  <bonzini@gnu.org>
5033
5034         * alias.c (rtx_equal_for_memref_p): Use predicates
5035         to test rtx classes and new rtx class codes, possibly
5036         splitting conditionals that tested against '<' and 'o'.
5037         * caller-save.c (save_call_clobbered_regs): Likewise.
5038         * combine.c (contains_muldiv, find_split_point, subst,
5039         combine_simplify_rtx, simplify_if_then_else,
5040         simplify_set, simplify_logical, expand_compound_operation,
5041         make_compound_operation, if_then_else_cond, known_cond,
5042         apply_distributive_law, cached_nonzero_bits,
5043         cached_num_sign_bit_copies, simplify_shift_const,
5044         gen_binary, simplify_comparison, update_table_tick,
5045         record_value_for_reg, get_lsat_value_validate): Likewise.
5046         * cse.c (mention_regs, find_best_addr, find_comparison_args,
5047         fold_rtx, cse_insn, invalidate_memory, cse_basic_block):
5048         Likewise.
5049         * emit-rtl.c (copy_insn_1): Likewise.
5050         * expr.c (force_operand): Likewise.
5051         * final.c (final_scan_insn, get_mem_expr_from_op): Likewise.
5052         * flow.c (notice_stack_pointer_modification_1,
5053         invalidate_mems_from_autoinc, ior_reg_cond, not_reg_cond,
5054         and_reg_cond, elim_reg_cond): Likewise.
5055         * function.c (update_epilogue_consts): Likewise.
5056         * genattrtab.c (attr_rtx_1): Likewise.
5057         * genopinit.c (gen_insn): Likewise.
5058         * integrate.c (subst_constants): Likewise.
5059         * jump.c (reversed_comparison_code_parts,
5060         reversed_comparison_code, delete_related_insns,
5061         rtx_renumbered_equal_p): Likewise.
5062         * local-alloc.c (block_alloc): Likewise.
5063         * loop.c (rtx_equal_for_prefetch_p, maybe_eliminate_biv,
5064         canonicalize_condition): Likewise.
5065         * loop-iv.c (simplify_using_conditions, iv_number_of_iterations):
5066         Likewise.
5067         * optabs.c (add_equal_node, expand_binop): Likewise.
5068         * predict.c (estimate_probability): Likewise.
5069         * ra-debug.c (ra_print_rtx_2op, ra_print_rtx): Likewise.
5070         * recog.c (validate_replace_rtx_1, comparison_operator,
5071         offsettable_address_p, constrain_operands): Likewise.
5072         * reg-stack.c (swap_rtx_condition_1, subst_stack_regs_pat):
5073         Likewise.
5074         * regclass.c (scan_one_insn): Likewise.
5075         * regmove.c (stable_and_no_regs_but_for_p): Likewise.
5076         * regrename.c (kill_autoinc_value): Likewise.
5077         * reload.c (find_reusable_reload, find_reloads,
5078         reg_overlap_mentioned_for_reload_p): Likewise.
5079         * reload1.c (gen_reload, delete_address_reloads_1): Likewise.
5080         * rtl.c (copy_rtx): Likewise.
5081         * rtl.h (CONSTANT_P, INSN_P): Likewise.
5082         * rtlanal.c (commutative_operand_precedence): Likewise.
5083         * sched-deps.c (conditions_mutex_p): Likewise.
5084         * sched-rgn.c (is_cfg_nonregular): Likewise.
5085         * simplify-rtx.c (simplify_gen_binary,
5086         simplify_gen_relational, simplify_replace_rtx,
5087         simplify_unary_operation, simplify_binary_operation,
5088         simplify_ternary_operation, simplify_rtx): Likewise.
5089         * unroll.c (reg_dead_after_loop): Likewise.
5090         * config/alpha/alpha.c (alpha_swapped_comparison_operator,
5091         print_operand): Likewise.
5092         * config/arc/arc.c (proper_comparison_operator): Likewise.
5093         * config/arm/arm.c (arm_arm_address_cost, arm_select_cc_mode):
5094         Likewise.
5095         * config/avr/avr.c (_reg_unused_after): Likewise.
5096         * config/frv/frv.c (frv_ifcvt_modify_tests,
5097         frv_ifcvt_modify_insn, frv_pack_insn): Likewise.
5098         * config/i386/i386.c (ix86_comparison_operator,
5099         ix86_carry_flag_operator, fcmov_comparison_operator,
5100         arith_or_logical_operator, print_operand,
5101         ix86_expand_binary_operator, ix86_binary_operator_ok):
5102         Likewise.
5103         * config/i386/i386.md: Likewise.
5104         * config/ia64/ia64.c (not_postinc_memory_operand,
5105         ia64_print_operand, update_set_flags, errata_emit_nops):
5106         Likewise.
5107         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS,
5108         CONSTRAINT_OK_FOR_S): Likewise.
5109         * config/ip2k/ip2k.c (mdr_resequence_xy_yx,
5110         mdr_try_move_dp_reload, ip2k_check_can_adjust_stack_ref,
5111         ip2k_xexp_not_uses_reg_for_mem, ip2k_xexp_not_uses_reg_p,
5112         ip2k_composite_xexp_not_uses_reg_p, ip2k_unary_operator):
5113         Likewise.
5114         * config/iq2000/iq2000.c (cmp_op, symbolic_expression_p,
5115         eqne_comparison_operator, signed_comparison_operator):
5116         Likewise.
5117         * config/mips/mips.c (cmp_op, symbolic_expression_p):
5118         Likewise.
5119         * config/mmix/mmix (mmix_foldable_comparison_operator,
5120         mmix_comparison_operator): Likewise.
5121         * config/pa/pa.c (hppa_legitimize_address): Likewise.
5122         * config/rs6000/rs6000.c (stmw_operation,
5123         branch_comparison_operator, trap_comparison_operator,
5124         ccr_bit): Likewise.
5125         * config/rs6000/rs6000.h (SELECT_CC_MODE): Likewise.
5126         * config/s390/s390.c (s390_alc_comparison,
5127         s390_slb_comparison):L Likewise.
5128         * config/sh/sh.c (gen_block_redirect, reg_unused_after):
5129         Likewise.
5130         * config/sparc/sparc.c (eq_or_neq, normal_comp_operator,
5131         noov_compare_op, noov_compare64_op, v9_regcmp_op,
5132         emit_hard_tfmode_operation, reg_unused_after)
5133         * doc/md.texi, doc/rtl.texi: Likewise.
5134
5135         * ra-debug.c: Add 2004 to list of copyright years.
5136         * unroll.c: Likewise.
5137
5138         * combine.c (simplify_logical): Remove dummy test,
5139         (apply_distributive_law): Fix typo in comment.
5140         GET_CODE (x) == AND so x is a commutative binary op.
5141         * jump.c (delete_related_insns): simplify loop
5142         condition, move testing of RTX codes inside the loop.
5143         (rtx_renumbered_equal_p): do not use RTX_CODE.
5144         * rtl.c (rtx_class): Declare as enum rtx_class.
5145         * rtl.def (EQ, NE, UNEQ, LTGT, UNORDERED, ORDERED):
5146         Move to RTX_COMM_COMPARE class.
5147         (HIGH, SYMBOL_REF, LABEL_REF, CONST, CONST_INT, CONST_DOUBLE):
5148         Move to RTX_CONST_OBJ class.
5149         * rtl.h (enum rtx_class): New declaration,
5150         (RTX_OBJ_MASK, RTX_OBJ_RESULT, RTX_COMPARE_MASK,
5151         RTX_COMPARE_RESULT, RTX_ARITHMETIC_MASK, RTX_ARITHMETIC_RESULT,
5152         RTX_BINARY_MASK, RTX_BINARY_RESULT, RTX_COMMUTATIVE_MASK,
5153         RTX_COMMUTATIVE_RESULT, RTX_NON_COMMUTATIVE_RESULT,
5154         RTX_EXPR_FIRST, RTX_EXPR_LAST, UNARY_P, BINARY_P,
5155         ARITHMETIC_P, COMMUTATIVE_ARITHMETIC_P, COMPARISON_P,
5156         SWAPPABLE_OPERANDS_P, NON_COMMUTATIVE_P, COMMUTATIVE_P,
5157         OBJECT_P): New macros.
5158         * config/sparc/sparc.c (noov_compare_op): Remove register
5159         from parameter.
5160
5161 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
5162
5163         * target.h: Remove texi jargons in comments.
5164
5165 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
5166
5167         * config/h8300/lib1funcs.asm (___fixunssfsi): Change the
5168         threshold to 0x4f.
5169
5170         Revert:
5171         2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
5172         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
5173         as well.
5174         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
5175         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
5176
5177 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
5178
5179         * doc/md.texi (cbranchmode4): New.
5180
5181 2004-03-02  Eric Christopher  <echristo@redhat.com>
5182
5183         * config/mips/mips16.S: Change fixsfsi and fixdfsi to
5184         fix_trunc.
5185         * config/mips/mips.c (mips_init_libfuncs): Change accordingly.
5186         * config/mips/t-elf (LIB1ASMFUNCS): Ditto.
5187         * config/mips/t-isa3264 (LIB1ASMFUNCS): Ditto.
5188         * config/mips/t-r3900 (LIB1ASMFUNCS): Ditto.
5189
5190 2004-03-02  Richard Henderson  <rth@redhat.com>
5191
5192         PR middle-end/11767
5193         * coverage.c (coverage_counter_ref): Set MEM_NOTRAP_P.
5194         * optabs.c (prepare_cmp_insn): Force trapping memories to registers
5195         before the compare, if flag_non_call_exceptions.
5196
5197 2004-03-02  Richard Henderson  <rth@redhat.com>
5198
5199         PR middle-end/14327
5200         * stmt.c (expand_computed_goto): Do do_pending_stack_adjust before
5201         emitting the label, not after.
5202
5203 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
5204
5205         * config/m68hc11/m68hc11.c (m68hc11_addr_mode): New variable.
5206         (m68hc11_mov_addr_mode): Likewise.
5207         (m68hc11_override_options): Initialize them based on target.
5208         (register_indirect_p): Allow a MEM for indirect addressing modes and
5209         use flags to control what is allowed.
5210         (m68hc11_small_indexed_indirect_p): Use m68hc11_mov_addr_mode for
5211         supported addressing modes.
5212         (m68hc11_register_indirect_p): Use m68hc11_addr_mode.
5213         (go_if_legitimate_address_internal): Likewise.
5214         (m68hc11_indirect_p): Likewise and check the mode.
5215         (print_operand): Allow a (MEM (MEM)) and generate indirect addressing.
5216
5217 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
5218
5219         * builtins.c (BUILTIN_SETJMP_FRAME_VALUE): Remove.
5220         (expand_builtin_setjmp_setup): Use
5221         targetm.builtin_setjmp_frame_value instead of
5222         BUILTIN_SETJMP_FRAME_VALUE.
5223         * system.h (BUILTIN_SETJMP_FRAME_VALUE): Poison.
5224         * target-def.h (TARGET_BUILTIN_SETJMP_FRAME_VALUE): New.
5225         (TARGET_INITIALIZER): Add TARGET_BUILTIN_SETJMP_FRAME_VALUE.
5226         * target.h (gcc_target): Add builtin_setjmp_frame_value.
5227         * targhooks.c (default_builtin_setjmp_frame_value): New.
5228         * targhooks.h: Add a prototype for
5229         default_builtin_setjmp_frame_value.
5230         * doc/tm.texi (BUILTIN_SETJMP_FRAME_VALUE): Change to
5231         TARGET_BUILTIN_SETJMP_FRAME_VALUE.
5232
5233 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
5234
5235         * config/m68hc11/m68hc11.md (move peephole2): New peepholes to optimize
5236         sequences of moves.
5237         (add peepholes): New peepholes to optimize sequences adding small
5238         constants.
5239         (bset peepholes): New peepholes to transform an OR in a bset form
5240         (bclr peepholes): Likewise for bclr form.
5241         (cmp peepholes): New peepholes to avoid register copies when comparing.
5242
5243 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
5244
5245         * config/m68hc11/m68hc11.md ("*pushdi_internal"): New insn and split
5246         to separate push from moves.
5247         ("*pushdf_internal"): Likewise.
5248         ("*pushsf_internal"): Likewise.
5249         ("*pushsi_internal"): Likewise.
5250         ("movdi_internal"): Use define_insn_and_split; non push operand.
5251         ("movdf_internal"): Likewise.
5252         ("movsf_internal"): Likewise.
5253         ("movsi_internal"): Likewise.
5254         ("*movhi_68hc12", "*addhi3_68hc12"): Fix and tune constraints
5255         ("*addhi3", "*subhi3", "*andhi3_mem", "*iorhi3_mem"): Likewise.
5256         ("*ashlsi3_const1", "*lshrsi3_const1"): Likewise.
5257
5258 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
5259
5260         * config/m68hc11/m68hc11.md ("tstqi_z_used"): Use define_insn_and_split.
5261         ("cmphi_z_used", "cmpqi_z_used"): Likewise.
5262         ("movstrictsi", "movstricthi", "movstrictqi"): Likewise.
5263         ("anddi3", "andsi3", "iordi3", "iorsi3"): Likewise.
5264         ("xordi3", "xorsi3", "*logicalsi3_zexthi"): Likewise.
5265         ("*logicalsi3_zextqi", "*logicalhi3_zexthi_ashift8"): Likewise.
5266         ("logicalhi3_zexthi", "*logicalsi3_silshr16"): Likewise.
5267         ("*logicalsi3_silshl16", "*logicalsi3_silshl16_zext"): Likewise.
5268         ("*ashldi3_const32", "*ashldi3_const1", "addsi_silshr16"): Likewise.
5269         ("addsi_andshr16", "*ashlsi3_const16_zexthi"): Likewise.
5270         ("*lshrdi3_const32", "*lshrdi_const1"): Likewise.
5271
5272 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
5273
5274         * config/m68hc11/m68hc11.md (SOFT_TMP_REGNUM): Define.
5275         (SOFT_XY_REGNUM): Define.
5276         (cmp split): Use the above instead of hard coded numbers.
5277         (8-bit op split): No need to check the mode; allow Q_REG.
5278         (ashift split): Adjust the first operand if it uses the SP and we
5279         are pushing the shifted value.
5280         (plus shift split): Fix when a source is in register D+X.
5281         ("doloop_end"): Pass dummy arguments to gen_rtx_NE.
5282
5283 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
5284
5285         * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Fix when
5286         comparing with Z register.
5287
5288 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5289
5290         * cfgloop.h (struct loop_desc): Removed.
5291         (struct loop): Fields simple, desc and has_desc removed.
5292         (simple_loop_p, count_loop_iterations): Declaration removed.
5293         * cfgloopanal.c (struct unmark_altered_insn_data): Removed.
5294         (unmark_altered, blocks_invariant_registers, unmark_altered_insn
5295         blocks_single_set_registers, invariant_rtx_wrto_regs_p_helper,
5296         invariant_rtx_wrto_regs_p, test_for_iteration, constant_iterations,
5297         simple_loop_exit_p, variable_initial_value, variable_initial_values,
5298         simple_condition_p, simple_increment, count_strange_loop_iterations,
5299         inverse, fits_in_mode_p, simple_loop_p, count_loop_iterations):
5300         Removed.
5301         * loop-iv.c (check_simple_exit, find_simple_exit): Update comments.
5302
5303 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
5304
5305         * genattrtab.c: Don't handle MATCH_INSN.
5306         * genrecog.c: Likewise.
5307         * gensupport.c: Likewise.
5308         * rtl.def (match_insn): Remove.
5309         * doc/md.texi (match_insn, match_insn2): Remove.
5310
5311 2004-03-02  Mark Mitchell  <mark@codesourcery.com>
5312
5313         * doc/c-tree.texi (DECL_ASSEMBLER_NAME): Mention that using this
5314         macro results in memory allocation.
5315
5316 2004-03-02  David O'Brien  <obrien@FreeBSD.org>
5317
5318         * config/freebsd-spec.h (FBSD_DYNAMIC_LINKER): Add.
5319         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Define
5320         %(fbsd_dynamic_linker),
5321         (LINK_SPEC): Use %(fbsd_dynamic_linker), and sync style with
5322         config/i386/freebsd.h
5323         * config/arm/freebsd.h: Ditto.
5324         * config/i386/freebsd.h: Ditto.
5325         * config/i386/freebsd64.h: Ditto.
5326         * config/ia64/freebsd.h: Ditto.
5327         * config/rs6000/sysv4.h: Ditto.
5328         * config/sparc/freebsd.h: Ditto.
5329
5330 2004-03-02  Loren James Rittle  <ljrittle@acm.org>
5331
5332         * gcc/doc/install.texi (*-*-freebsd*): Update target information.
5333
5334 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
5335
5336         * rtl.def (define_combine): Remove.
5337
5338 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
5339
5340         * config/h8300/h8300.md: Tweak formatting.
5341
5342 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
5343
5344         * config/h8300/h8300.md (*cmphi_h8300): Rename to
5345         *cmphi_h8300_znvc.
5346         (*cmphi_h8300hs): Rename to *cmphi_h8300hs_znvc.
5347
5348 2004-03-01  Mark Mitchell  <mark@codesourcery.com>
5349
5350         PR bootstrap/14356
5351         * gcc.c (process_command): Remove const-qualification from argv.
5352         (main): Likewise.
5353
5354 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
5355
5356         * config/h8300/h8300.md (pushqi1_h8300hs): Rename to
5357         pushqi1_h8300hs_advanced.  Adjust its caller.
5358         (pushhi1_h8300hs): Rename to pushhi1_h8300hs_advanced.
5359         Adjust its caller.
5360
5361 2004-03-02  Nicolas Roche  <roche@act-europe.fr>
5362
5363         * Makefile.in (install-libgcc, install-multilib): Pass
5364         mkinstalldirs var to libgcc.mk.
5365
5366 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
5367
5368         * system.h (DBX_OUTPUT_STANDARD_TYPES): Poison.
5369         * doc/tm.texi (DBX_OUTPUT_STANDARD_TYPES): Remove.
5370
5371 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
5372
5373         * config/h8300/h8300.c (gtle_operator): Accept GT and LE.
5374         * config/h8300/h8300.md: Split several peephole2's, each into
5375         two.
5376
5377 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5378
5379         * dominance.c (recount_dominator): Handle postdominators.
5380
5381 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
5382
5383         * config/mips/mips-protos.h (enum mips_symbol_type): Move from mips.h.
5384         (NUM_SYMBOL_TYPES): Likewise.
5385         (SYMBOL_64_HIGH, SYMBOL_64_MID, SYMBOL_64_LOW): New symbol types.
5386         (mips_unspec_address): Declare.
5387         (mips_gotoff_page, mips_gotoff_global): Delete.
5388         * config/mips/mips.h (PREDICATE_CODES): Add general_symbolic_operand.
5389         * config/mips/mips.c (enum mips_symbol_type, NUM_SYMBOL_TYPES): Delete.
5390         (mips_symbolic_constant_p, mips_symbolic_address_p)
5391         (mips_symbol_insns): Handle new symbol types.
5392         (general_symbolic_operand): New predicate.
5393         (mips_unspec_address): Make extern.
5394         (mips_gotoff_page, mips_gotoff_global): Delete.
5395         (override_options): Allow -mabi=64 -mno-abicalls -mexplicit-relocs.
5396         Handle new symbol types.
5397         * config/mips/mips.md (*lea_high64, *lea64): New patterns.
5398         (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_disp[sd]i): Call
5399         mips_unspec_address directly.
5400         * doc/invoke.texi: Remove the -mabi=64 -mno-abicalls exception from
5401         the documentation of -mexplicit-relocs.
5402
5403 2004-03-01  Jeff Law  <law@redhat.com>
5404
5405         * fold-const.c (fold): An equality comparison of a non-weak object
5406         against zero has a known result.  Similarly an equality comparison
5407         of the address of two non-weak, unaliased symbols has a known result.
5408
5409         * ggc-page.c (struct page_entry): New field PREV.
5410         (ggc_alloc): Update PREV field appropriately.
5411         (sweep_pages): Likewise.
5412         (ggc_free): Likewise.  Use PREV field rather than loop to
5413         improve ggc_free performance.
5414
5415 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
5416
5417         * config/mips/mips.c (mips_output_division): Use the division
5418         instruction to fill the delay slot of a zero check.
5419         (mips_idiv_insns): Adjust accordingly.
5420
5421 2004-03-01  Nathanael Nerode  <neroden@gcc.gnu.org>
5422
5423         * config.gcc: Create a default tmake_file for linux, and use
5424         it in all but two linux clauses.  Comment those two.
5425
5426 2004-03-01  Paolo Bonzini  <bonzini@gnu.org>
5427
5428         * combine.c (try_combine):  Do not refer to is_replaced.
5429         (gen_lowpart_for_combine):  Perverse subregs now have a
5430         more politically correct name.
5431         * cse.c (cse_insn): Likewise.
5432         * jump.c: Fix bogus reference to delete_insn.
5433
5434 2004-02-29  Mark Mitchell  <mark@codesourcery.com>
5435
5436         PR debug/14328
5437         * dwarf2out.c (gen_enumeration_type_die): Output all enumeration
5438         constants as signed values.
5439
5440         PR middle-end/13448
5441         * c-tree.h (readonly_warning): Rename to ...
5442         (readonly_error): ... this.
5443         * c-typeck.c (build_unary_op): Adjust accordingly.
5444         (readonly_warning): Rename to ...
5445         (readonly_error): ... this and issue errors, not warnings.
5446         (build_modify_expr): Call readonly_error, not readonly_warning.
5447         (c_expand_asm_operands): Likewise.
5448         * tree-inline.c (optimize_inline_calls): Do not inline functions
5449         after errors have occurred.
5450
5451 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
5452
5453         * configure.ac: Rearrange some threading code for clarity;
5454         add section comment.
5455         * configure: Regenerate.
5456
5457 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
5458
5459         * passes.c, config/frv/frv.c, config/sh/sh.c: Fix comment
5460         typos.
5461         * doc/cppopts.texi: Fix a typo.
5462
5463 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
5464
5465         * config/i386/i386.md: Fix formatting.
5466
5467 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
5468
5469         * configure.ac: Add some comments delineating sections of code.
5470
5471         * doc/install.texi: Note that libada uses autoconf 2.57 also.
5472
5473         * doc/install.texi: Fix idiot typo in previous commit.
5474
5475         * doc/install.texi: Update for conversion of intl to autoconf 2.57.
5476
5477 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
5478
5479         * config/h8300/h8300.md: Add comments about peephole2's.
5480
5481 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
5482
5483         * config/h8300/h8300.md: Tweak operand numbers of some
5484         peephole2's.
5485
5486 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
5487
5488         * config/h8300/h8300.md: Tweak comments about peephole2's.
5489
5490 2004-02-29  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
5491
5492         PR middle-end/14203
5493         * function.c (uninitialized_vars_warning): Use DECL_RTL_SET_P
5494         instead of testing whether DECL_RTL is not NULL.
5495
5496 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
5497
5498         * config/sh/sh.c: Fix formatting.
5499
5500 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
5501
5502         * config/sh/sh.c: Convert to ISO-C.
5503
5504 2004-02-28  Andrew Pinski  <pinskia@physics.uc.edu>
5505
5506         * c-typeck.c (tagged_types_tu_compatible_p): Fix pasto in
5507         my previous patch.
5508
5509         * config/darwin.h (machopic_finish): Output stub even if the
5510         symbol is already defined.
5511
5512 2004-02-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5513
5514         * pa64-hpux.h (LIB_SPEC): Fix linking under HP-UX 11.00 with -p and -pg.
5515
5516 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
5517
5518         * genattr.c (main): Don't define
5519         TRADITIONAL_PIPELINE_INTERFACE or DFA_PIPELINE_INTERFACE.
5520         * system.h (TRADITIONAL_PIPELINE_INTERFACE): Poison.
5521         (DFA_PIPELINE_INTERFACE): Likewise.
5522         * doc/tm.texi (TRADITIONAL_PIPELINE_INTERFACE): Remove.
5523         (DFA_PIPELINE_INTERFACE): Likewise.
5524
5525 2004-02-28  Richard Sandiford  <rsandifo@redhat.com>
5526
5527         * config/mips/mips.md (tstsi, tstdi): Delete.
5528
5529 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
5530
5531         * config/mips/mips.c (override_options): Remove an obsolete
5532         duplicate definition of the "e" constraint.
5533         * config/mips/mips.h: Update a comment accordingly.
5534
5535 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
5536
5537         * config/mips/mips.md: Complete the unfinished R4000
5538         multiply/shift errata workaround.  Improve documentation.
5539         (hazard): Use TARGET_FIX_R4000 to decide whether an "imul" instruction
5540         has a hilo hazard.
5541         (mulsi3, mulsi3_internal, mulsi3_r4000): Use TARGET_FIX_R4000.
5542         (muldi3, muldi3_internal): Likewise.
5543         (muldi3_internal2): Remove, replacing with...
5544         (muldi3_mult3, muldi3_r4000): ...these new patterns.
5545         (mulsidi3): Take the errata into account.
5546         (mulsidi3_32bit): Remove, replacing with...
5547         (mulsidi3_32bit_internal, mulsidi3_32bit_r4000): ...these new patterns.
5548         (mulsidi3_64bit, mulsidi3_64bit_parts): Disable if TARGET_FIX_R4000.
5549         (umulsidi3): Take the errata into account.
5550         (umulsidi3_32bit): Remove, replacing with..
5551         (umulsidi3_32bit_internal, umulsidi3_32bit_r4000): ...these patterns.
5552         (umulsi3_highpart, umulsi3_highpart_internal): Disable if
5553         TARGET_FIX_R4000.
5554         (smulsi3_highpart, smulsi3_highpart_internal): Likewise.
5555         (smuldi3_highpart, umuldi3_highpart): Likewise.
5556         * doc/invoke.texi: Document the errata workaround.
5557
5558 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
5559
5560         * config/mips/mips-protos.h (mips_idiv_insns): Declare.
5561         * config/mips/mips.h (MASK_FIX_SB1): Bump.
5562         (MASK_FIX_R4000, TARGET_FIX_R4000): New macros.
5563         (TARGET_SWITCHES): Add -mfix-r4000 and -mno-fix-r4000.
5564         * config/mips/mips.c (mips_idiv_insns): New function.
5565         (override_options): Make -march=r4000 imply -mfix-r4000 by default.
5566         (mips_output_division): Add a workaround for the R4000 divide/shift
5567         errata.
5568         * config/mips/mips.md (length): Use mips_idiv_insns() to calculate
5569         the length of an "idiv" instruction.
5570         * doc/invoke.texi: Document the new switches.
5571
5572 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
5573
5574         * doc/tm.texi (IS_COSTLY_DEPENDENCE): Change to
5575         TARGET_SCHED_IS_COSTLY_DEPENDENCE.
5576
5577 2004-02-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5578
5579         PR optimization/14229
5580         * cfgrtl.c (rtl_tidy_fallthru_edge): Do not fail for !onlyjump jump.
5581
5582 2004-02-28  Eric Botcazou  <ebotcazou@act-europe.fr>
5583
5584         * fold-const.c (fold): Strip NOPs that change the signedness
5585         for RSHIFT too.  Expand comment.
5586
5587 2004-02-27  Ian Lance Taylor  <ian@wasabisystems.com>
5588
5589         PR optimization/7871
5590         * flow.c (mark_set_1): Don't add LOG_LINKS for global registers
5591         from or to call insns.
5592
5593 2004-02-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
5594
5595         PR optimization/7871
5596         * flow.c (propagate_one_insn): Interpret calls as setting global
5597         registers, not merely clobbering them.
5598
5599 2004-02-27  Dale Johannesen  <dalej@apple.com>
5600
5601         * config/darwin.c (machopic_output_possible_stub_label):  Remove.
5602         config/darwin-protos.h:  Ditto.
5603         config/darwin.h:  Remove call to it.
5604         * combine.c (distribute_notes): Do not place a REG_DEAD note
5605         when value is both set and used.
5606
5607 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
5608
5609         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
5610         as well.
5611         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
5612         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
5613
5614 2004-02-27  Andrew Pinski  <apinski@apple.com>
5615
5616         * c-typeck.c (tagged_types_tu_compatible_p) <ENUMERAL_TYPE>:
5617         Speedup common case of the type values being in the same order.
5618
5619 2004-02-27  Steve Ellcey  <sje@cup.hp.com>
5620
5621         * config/ia64/ia64.h (no-inline-float-divide): New option.
5622         * config/ia64/ia64.h (no-inline-int-divide): New option.
5623         * config/ia64/ia64.h (no-inline-sqrt): New option.
5624         (TARGET_DEFAULT): Add MASK_INLINE_FLOAT_DIV_THR to define.
5625         * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
5626         * config/ia64/ia64.c (ia64_override_options): Modify error
5627         checking for inlined division/sqrt.
5628
5629 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
5630
5631         * bb-reorder.c, cfgbuild.c, diagnostic.c, explow.c, profile.c,
5632         ra-build.c, read-rtl.c, tracer.c, unwind-dw2-fde-glibc.c,
5633         value-prof.c, config/darwin-protos.h, config/frv/frv-abi.h,
5634         config/i386/pmmintrin.h, config/pa/pa-hpux.h: Update
5635         copyright.
5636
5637 2004-02-27  Paul Brook  <paul@codesourcery.com>
5638
5639         * function.c (assign_parms): Don't count pretend args for alignment.
5640
5641 2004-02-27  Richard Henderson  <rth@redhat.com>
5642
5643         * passes.c: New file.
5644         * Makefile.in (OBJS-common): Add it.
5645         * diagnostic.c (rtl_dump_and_exit): Move decl ...
5646         * flags.h (rtl_dump_and_exit): ... here.
5647         * output.h (size_directive_output, last_assemble_variable_decl):
5648         Move from toplev.c.
5649         * rtl.h (reg_alloc): Move from toplev.c.
5650         * toplev.c (HAVE_conditional_execution, DUMPFILE_FORMAT,
5651         struct dump_file_info, enum dump_file_index, dump_file_tbl,
5652         open_dump_file, close_dump_file, rest_of_decl_compilation,
5653         rest_of_type_compilation, rest_of_handle_final,
5654         rest_of_handle_delay_slots, rest_of_handle_stack_regs,
5655         rest_of_handle_variable_tracking, rest_of_handle_machine_reorg,
5656         rest_of_handle_new_regalloc, rest_of_handle_old_regalloc,
5657         rest_of_handle_regrename, rest_of_handle_reorder_blocks,
5658         rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_regmove,
5659         rest_of_handle_tracer, rest_of_handle_if_conversion,
5660         rest_of_handle_if_after_combine, rest_of_handle_web,
5661         rest_of_handle_branch_prob,
5662         rest_of_handle_value_profile_transformations, rest_of_handle_cfg,
5663         rest_of_handle_addressof, rest_of_handle_sibling_calls,
5664         rest_of_handle_jump_bypass, rest_of_handle_inlining,
5665         rest_of_handle_null_pointer, rest_of_handle_combine,
5666         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
5667         rest_of_handle_gcse, rest_of_handle_loop_optimize,
5668         rest_of_handle_loop2, rest_of_compilation): Move to passes.c.
5669         (decode_d_option): Use enable_rtl_dump_file.
5670         (compile_file, finalize, do_compile): Move profile+combine+graph
5671         cleanup to finish_optimization_passes.
5672         * toplev.h (init_optimization_passes, finish_optimization_passes,
5673         enable_rtl_dump_file): Declare.
5674
5675 2004-02-27  Eric Botcazou  <ebotcazou@act-europe.fr>
5676             Roger Sayle  <roger@eyesopen.com>
5677
5678         * fold-const.c (fold): Revert 2004-02-25 change.  Use the original
5679         operands to build a tree with swapped operands.
5680         * expr.c (expand_expr_real) <MAX_EXPR>: Consistently use the
5681         'unsignedp' predicate to specify the signedness.
5682
5683 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
5684
5685         * c-decl.c, c-ppoutput.c, combine.c, cppfiles.c, dwarf2out.c,
5686         expr.c, fold-const.c, gcc.c, haifa-sched.c, loop-iv.c,
5687         params.def, read-rtl.c, rtl.c, rtlanal.c, toplev.c: Fix
5688         comment typos and formatting.  Follow spelling conventions.
5689
5690 2004-02-26  Aldy Hernandez  <aldyh@redhat.com>
5691
5692         * config/rs6000/rs6000.md: Add fixuns_truncsfsi2 and
5693         fix_truncsfsi2.
5694
5695         * config/rs6000/spe.md: Delete spe_efsctuiz.
5696         Add spe_fixuns_truncsfsi2.
5697         Add spe_fix_truncsfsi2.
5698
5699 2004-02-26  Eric Christopher  <echristo@redhat.com>
5700
5701         * c-lex.c (c_lex_string_translate): New variable.
5702         (lex_string): Use to determine string translation.
5703         * c-pragma.h: Prototype.
5704         * c-parse.in (start_string_translation): New. Set above.
5705         (stop_string_translation): Ditto.
5706         (attribute, attribute_list, asm_def, asm_stmt,
5707         asm_operand): Use above functions.
5708         * cp/parser.c (cp_parser_declaration): Translate strings
5709         unless token is RID_EXTERN. Set c_lex_string_translate
5710         for recursive use.
5711         (cp_parser_asm_definition): Only translate argument strings
5712         to asms.
5713         (cp_parser_asm_operand_list): Ditto.
5714         (cp_parser_attribute_list): Do not translate attribute strings.
5715
5716 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
5717
5718         * stmt.c (expand_start_case_dummy): Remove.
5719         * tree.h: Remove the corresponding prototype.
5720
5721 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
5722
5723         * builtins.c (apply_args_register_offset): Remove.
5724         * tree.h: Remove the corresponding prototype.
5725
5726 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
5727
5728         * stor-layout.c (is_pending_size): Remove.
5729         * tree.h: Remove the corresponding prototype.
5730
5731 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
5732
5733         * recog.c (validate_replace_src): Remove.
5734         * recog.h: Remove the corresponding prototype.
5735
5736 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
5737
5738         * calls.c: Don't reference FINAL_REG_PARM_STACK_SPACE or
5739         MAYBE_REG_PARM_STACK_SPACE.
5740         * function.c: Likewise.
5741         * system.h (FINAL_REG_PARM_STACK_SPACE): Poison.
5742         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
5743         * doc/tm.texi (FINAL_REG_PARM_STACK_SPACE): Remove.
5744         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
5745
5746 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
5747
5748         * c-decl.c (c_expand_deferred_function): Remove.
5749         * c-tree.h: Remove the corresponding prototype.
5750
5751 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
5752
5753         * postreload.c (reload_cse_move2add): Generate just a PLUS
5754         instead of an entire SET.
5755
5756 2004-02-26  Jan Hubicka  <jh@suse.cz>
5757
5758         * config.gcc: Add support for nocoma/prescott/pentium-m/pentium3m
5759         /pentium4m.
5760         * i386.c (override_options): Add support for new CPUs.
5761         * i386.h (TARGET_CPU_DEFAULT_NAMES): New names.
5762         (TARGET_CPU_DEFAULT_pentium_m, TARGET_CPU_DEFAULT_pentium4e): New
5763         constants.
5764         * invoke.texi: Extend documentation of -mtune/-march for new CPUs.
5765
5766 2004-02-26  Bob Wilson  <bob.wilson@acm.org>
5767
5768         * config/xtensa/xtensa.h (TARGET_CPU_CPP_BUILTINS): Define __xtensa__.
5769
5770 2004-02-26  Eric Botcazou  <ebotcazou@act-europe.fr>
5771
5772         * config/sparc/sparc-protos.h (sparc_emit_floatunsdi): Add 'mode'.
5773         (sparc_emit_fixunsdi): New prototype.
5774         * config/sparc/sparc.c (sparc_emit_floatunsdi): Use 'mode' argument.
5775         (sparc_emit_fixunsdi): New function.
5776         * config/sparc/sparc.md (floatunsdisf2): Use 'general_operand' for
5777         operand 1.  Pass SFmode to sparc_emit_floatunsdi.
5778         (floatunsdidf2): Use 'general_operand' for operand 1.  Pass DFmode
5779         to sparc_emit_floatunsdi.
5780         (fixuns_truncsfdi2): New expander.
5781         (fixuns_truncdfdi2): Likewise.
5782
5783 2004-02-26  Alan Modra  <amodra@bigpond.net.au>
5784
5785         * gcse.c (delete_null_pointer_checks_1): Do not delete CC setter
5786         unless HAVE_cc0.
5787
5788 2004-02-25  Richard Henderson  <rth@redhat.com>
5789
5790         * explow.c (force_reg): Call mark_reg_pointer as appropriate.
5791         * config/alpha/alpha.c (alpha_emit_conditional_branch): Don't
5792         use (op0-op1) == 0 if op0 is a pointer.
5793         * config/alpha/alpha.md (cmpdi): Use some_operand.
5794         (three comparison combine splits): Remove.
5795
5796 2004-02-25  Richard Henderson  <rth@redhat.com>
5797
5798         PR c/12794
5799         * c-common.c (handle_alias_attribute): Reject the attribute if
5800         current_function_decl is set.
5801
5802 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
5803
5804         * config.gcc: Add comment describing extra_gcc_objs.
5805         i[34567]86-*-cygwin*): Replace host_extra_gcc_objs with extra_gcc_objs.
5806         * configure.ac (extra_gcc_objs): New substitution variable.
5807         (host_extra_gcc_objs): Don't substitute.
5808         * configure: Regenerate.
5809         * Makefile.in: Use extra_gcc_objs.
5810
5811 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
5812
5813         * doc/contrib.texi: Add an entry for myself.
5814
5815 2004-02-25  Jan Hubicka  <jh@suse.cz>
5816
5817         * basic-block.h (make_eh_edge, break_superblocks): Declare.
5818         * cfgbuild.c (make_eh_edge):  Make global.
5819         * cfglayout.c (break_superblocks): Likewise; fix memory leak.
5820         * except.c (build_post_landing_pads, connect_post_landing_pads,
5821         dw2_build_landing_pads, sjlj_emit_function_enter,
5822         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
5823         sjlj_build_landing_pads): Update CFG.
5824         (emit_to_new_bb_before): New function.
5825         (finish_eh_generation): Do not rebuild the CFG.
5826
5827 2004-02-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5828
5829         * config.gcc (hppa*-*-*, parisc*-*-*): Add MASK_BIG_SWITCH to all
5830         target_cpu_default defines.
5831         * pa-hpux.h (TARGET_DEFAULT): Add MASK_BIG_SWITCH to define.
5832         * pa.h (TARGET_DEFAULT): Likewise.
5833
5834 2004-02-25  Eric Botcazou  <ebotcazou@act-europe.fr>
5835
5836         * fold-const.c (fold): Treat MAX_EXPR and MIN_EXPR like
5837         comparisons with regard to signedness.
5838
5839 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
5840
5841         * arm.c (thumb_legitimize_address): New function.
5842         * arm-protos.h: Prototype it.
5843         * arm.h (THUMB_LEGITIMIZE_ADDRESS): Define.
5844         (LEGITIMIZE_ADDRESS): Use it.
5845
5846 2004-02-25  J"orn Rennecke <joern.rennecke@superh.com>
5847
5848         * reload1.c (reload): Only spill eliminable register with multiple
5849         adjacent elimination alternatives if all alternatives fail.
5850
5851 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
5852
5853         * arm.c (arm_legitimate_index_p): For QImode the range of an offset
5854         is -4095...+4095 inclusive.
5855
5856 2004-02-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
5857
5858         * doc/install.texi (sparc-sun-solaris2* specific notes): Document
5859         the bootstrap failure with Sun CC 5.4 and 5.5.
5860
5861 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
5862
5863         * cse.c (cse_change_cc_mode_insns): Stop at any instruction
5864         which modifies NEWREG.
5865         (cse_condition_code_reg): Update the mode of CC_REG in
5866         CC_SRC_INSN on our own.
5867
5868 2004-02-24  Michael Matz  <matz@suse.de>
5869
5870         * config/i386/i386.c (ix86_comp_type_attributes): Check for
5871         regparm attributes.
5872
5873 2004-02-24  Richard Henderson  <rth@redhat.com>
5874
5875         * toplev.c (dump_file_tbl): Rename from dump_file.
5876         * bb-reorder.c, bt-load.c, cfgcleanup.c, cfglayout.c, cfgloopanal.c,
5877         cfgloopmanip.c, cfgrtl.c, config/arm/arm.c, config/frv/frv.c,
5878         config/i386/i386.c, config/ia64/ia64.c, config/mips/mips.c,
5879         config/sh/sh.c, cse.c, flow.c, ifcvt.c, loop-iv.c, loop-unroll.c,
5880         loop-unswitch.c, output.h, predict.c, profile.c, ra-build.c,
5881         ra-colorize.c, ra-debug.c, ra-rewrite.c, ra.c, regrename.c, reload1.c,
5882         toplev.c, tracer.c, value-prof.c, var-tracking.c, web.c:
5883         s/rtl_dump_file/dump_file/g.
5884
5885 2004-02-24  Aldy Hernandez  <aldyh@redhat.com>
5886
5887         * config/rs6000/spe.md (spe_fix_truncsfsi2): Delete.
5888         (spe_fixuns_truncsfsi2): Delete.
5889
5890         * config/rs6000/rs6000.md (fix_truncsfsi2): Delete.
5891         (fixuns_truncsfsi2): Delete.
5892
5893 2004-02-24  Josef Zlomek  <zlomekj@suse.cz>
5894
5895         PR/14240
5896         * rtlanal.c (replace_label): Fix replacing labels in constant pool.
5897
5898 2004-02-24  Geoffrey Keating  <geoffk@apple.com>
5899
5900         * config/darwin.h (TARGET_HAS_F_SETLKW): Define.
5901
5902 2004-02-24  Jason Merrill  <jason@redhat.com>
5903
5904         * tree.c (check_qualified_type): New fn.
5905         (get_qualified_type): Use it.  If type already has the desired
5906         quals, just return it.
5907         * tree.h: Declare it.
5908
5909 2003-02-24  Sanjiv Kumar Gupta  <sanjivg@noida.hcltech.com>
5910
5911         * target-def.h (TARGET_SCHED_INIT_GLOBAL,
5912         TARGET_SCHED_FINISH_GLOBAL): New macros.
5913
5914         * target.h (md_init_global, md_finish_global): Function
5915         declarations corresponding to new target macros.
5916
5917         * haifa-sched.c (sched_init, sched_finish): Allow target to
5918         call the new schedular hooks.
5919
5920         * flow.c (recompute_reg_usage): Add PROP_DEATH_NOTES flag in
5921         call to update_life_info.
5922
5923         * config/sh/sh.h (OVERRIDE_OPTIONS): Re-enable
5924         flag_schedule_insns for SH4.
5925
5926         * config/sh/sh.c (sh_md_init_global, sh_md_finish_global,
5927         find_set_regmode_weight, find_insn_regmode_weight,
5928         find_regmode_weight), sh_md_init, sh_dfa_new_cycle,
5929         sh_variable_issue, high_pressure, ready_reorder,
5930         rank_for_reorder, swap_reorder, sh_reorder, sh_reorder2): New
5931         functions used to throttle the insn movement in first
5932         scheduling pass for SH.
5933
5934         * gcc/doc/tm.texi: Document TARGET_SCHED_INIT_GLOBAL and
5935         TARGET_SCHED_FINISH_GLOBAL.
5936
5937 2004-02-24  Alexandre Oliva  <aoliva@redhat.com>
5938
5939         Implement FR-V FDPIC ABI support for frv-uclinux and frv-linux.
5940         2004-02-05  Alexandre Oliva  <aoliva@redhat.com>
5941         * config/frv/frv.c (frv_emit_movsi): Use GOT relocations for
5942         symbols in sections named by the user.
5943         2004-01-30  Alexandre Oliva  <aoliva@redhat.com>
5944         * config/frv/linux.h (TARGET_OS_CPP_BUILTINS): New.
5945         2004-01-27  Alexandre Oliva  <aoliva@redhat.com>
5946         * config.gcc (frv-*-*linux*): Handle like *-*-linux*.
5947         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Remove, obviated by
5948         the above.
5949         2004-01-20  Alexandre Oliva  <aoliva@redhat.com>
5950         * config/frv/frv.md (symGOT2reg_hilo, symGOTOFF2reg_hilo): Add
5951         one more pseudo to further improve code generation.
5952         2004-01-19  Alexandre Oliva  <aoliva@redhat.com>
5953         * config/frv/frv.md (movdi_ldd): Introduce explicit indirection
5954         inside UNSPEC.
5955         2004-01-16  Alexandre Oliva  <aoliva@redhat.com>
5956         * config/frv/frv.c (frv_legitimate_address_p): Added
5957         allow_double_reg_p argument.  Adjust all callers.  Use it to
5958         decide whether to enable double-register indirect addressing.
5959         (frv_funcdesc_alias_set): Remove.
5960         (frv_expand_fdpic_call): Force non-SYMBOL_REF operand into
5961         register.  Emit movdi_ldd.
5962         (ldd_address_operand): New.
5963         * config/frv/frv-protos.h (frv_legitimate_address_p): Adjust.
5964         * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Likewise.
5965         (PREDICATE_CODES): Add ldd_address_operand.
5966         * config/frv/frv.md (movdi_ldd): New.
5967         (symGOT2reg_hilo, symGOTOFF2reg_hilo): Use separate pseudo for
5968         intermediate computations if possible.
5969         (symGOTOFF2reg_i): Fix harmless typo.
5970         2003-12-18  Alexandre Oliva  <aoliva@redhat.com>
5971         * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Cast
5972         relocated p_vaddr to vaddr type.
5973         * config/frv/frv-protos.h (frv_expand_fdpic_call): Return void.
5974         * config/frv/frv.c (frv_get_funcdesc_alias_set): New.
5975         (frv_expand_fdpic_call): Propagate incoming MEM's expr to funcdesc
5976         MEM, or use a funcdesc alias set.  Use regular move instead of
5977         ldd.
5978         (dbl_memory_one_insn_operand): Recognize function descriptors by
5979         type or by alias set, and don't split them.
5980         * config/frv/frv.md (call, call_value): Never use call_internal
5981         for fdpic.
5982         (call_internal, call_value_internal): Never match for FDPIC.
5983         (call_fdpicdi, call_fdpicsi, call_value_fdpicdi,
5984         call_value_fdpicsi): Require FDPIC.
5985         (ldd): Removed.
5986         2003-12-17  Alexandre Oliva  <aoliva@redhat.com>
5987         * config/frv/frv.h (CRT_GET_RFIB_DATA): Define for __FRV_FDPIC__.
5988         * unwind-dw2-fde-glibc.c: Don't include elf-fdpic.h any more.
5989         (_Unwind_IteratePhdrCallback): Adjust type of load_base for FRV
5990         FDPIC.  Compute data base address.
5991         * config/frv/linux.h (SUBTARGET_DRIVER_SELF_SPECS): Enable -mfdpic
5992         before the other self-specs are processed.
5993         * config/frv/t-linux (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS):
5994         Build with -fPIC.
5995         2003-12-15  Alexandre Oliva  <aoliva@redhat.com>
5996         * unwind-dw2-fde-glibc.c: Don't include bits/elf-fdpic.h if
5997         inhibit_libc is defined.
5998         2003-12-12  Alexandre Oliva  <aoliva@redhat.com>
5999         * unwind-dw2-fde-glibc.c: Include bits/elf-fdpic.h for
6000         __FRV_FDPIC__.
6001         (__RELOC_POINTER): Define.
6002         (_Unwind_IteratePhdrCallback): Use it.
6003         * config/frv/frv.h (Twrite): Define.
6004         (TRANSFER_FROM_TRAMPOLINE): Use it.
6005         * config/frv/linux.h (INVOKE__main): Undefine.
6006         (Twrite): Override.
6007         2003-12-05  Richard Sandiford  <rsandifo@redhat.com>
6008         * doc/invoke.texi (-mlong-calls, -mlinked-fp): Document FRV options.
6009         (-mlibrary-pic): Emphasize that this option generates EABI code.
6010         (-mcpu): Add fr550.
6011         (-mpack): Remove.
6012         2003-11-30  Alexandre Oliva  <aoliva@redhat.com>
6013         * config/frv/frv.c (int_2word_operand): Reject LABELs, SYMBOL_REFs
6014         and CONSTs in FDPIC mode.
6015         * gcc/config.gcc (with_cpu): Default to fr400 on frv-*-*linux*.
6016         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
6017         * config/frv/frv.c (move_source_operand): Don't accept symbolic
6018         constants.
6019         * config/frv/frv.md (*movhi_internal, *movsi_internal): Use an 'n'
6020         rather than 'i' constraint for the 2-instruction alternative.
6021         (*movsi_2word): New, incorporating existing int_2word_operand splitter.
6022         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
6023         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Q): Renamed from
6024         EXTRA_CONSTRAINT_FOR_Y.
6025         (EXTRA_CONSTRAINT): Remove handling of 'Y'.
6026         * config/frv/frv.md (*movsi_internal): Remove 'Q' constraint.
6027         (addsi3): Change 'Y' constraint to 'Q'.
6028         2003-11-27  Richard Sandiford  <rsandifo@redhat.com>
6029         * reload.c (CONST_POOL_OK_P): New macro.
6030         (find_reloads): Use it to decide whether a constant can be forced
6031         into memory.
6032         * config/frv/frv.h (LEGITIMATE_PIC_OPERAND_P): Return true if the
6033         constant satisfies got12_operand.
6034         (frv_cannot_force_const_mem): Always return true for TARGET_FDPIC.
6035         (frv_legitimate_address_p): Check for valid unspec offsets using
6036         got12_operand rather than frv_legitimate_fdpic_operand_p.
6037         (frv_legitimate_fdpic_operand_p): Delete.
6038         (frv_emit_movsi): Abort if we try to use the FDPIC register during
6039         or after reload.
6040         (frv_legitimate_constant_p): Return LEGITIMATE_PIC_OPERAND_P if
6041         TARGET_FDPIC.
6042         * config/frv/frv.md (*movdf_double): Add alternatives for CONST_DOUBLE.
6043         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
6044         * config/frv/frv-protos.h (fdpic_operand, fdpic_got12_operand)
6045         (frv_fdpic_fptr_operand): Don't declare here.
6046         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Y): Call got12_operand
6047         rather than fdpic_got12_operand.
6048         (PREDICATE_CODES): Remove symbolic_operand entry.  Add entries for
6049         got12_operand and const_unspec_operand.
6050         * config/frv/frv.c (got12_operand): Renamed from fdpic_got12_operand.
6051         (gpr_or_int12_operand, dbl_memory_one_insn_operand): Update calls.
6052         (symbolic_operand): Remove.
6053         (const_unspec_operand): New predicate.
6054         * config/frv/frv.md (*movsi_got): Use got12_operand.
6055         (*movsi_high_got, *movsi_lo_sum_got): Use const_unspec_operand.
6056         2003-11-18  Richard Sandiford  <rsandifo@redhat.com>
6057         * config/frv/frv-protos.h (frv_output_addr_const_extra): Remove.
6058         * config/frv/frv.h (OUTPUT_ADDR_CONST_EXTRA): Remove definition.
6059         * config/frv/frv.c (frv_unspec): New structure.
6060         (frv_small_data_reloc_p, frv_const_unspec_p): New functions.
6061         (frv_print_operand_memory_reference): Use frv_const_unspec_p to
6062         validate CONST indices.  Use frv_output_const_unspec to print them.
6063         (frv_print_operand): Update call to unspec_got_name.  Use
6064         frv_output_const_unspec to print constant unspecs.
6065         (frv_legitimate_fdpic_operand_p): Return true if frv_const_unspec_p.
6066         Reject UNSPECs otherwise.
6067         (unspec_got_name): Take the relocation number as argument, not an
6068         rtx containing it.
6069         (frv_output_addr_const_extra): Remove, replacing with...
6070         (frv_output_const_unspec): ...this new function.
6071         (frv_find_base_term): Use frv_const_unspec_p & frv_small_data_reloc_p.
6072         (gpr_or_int12_operand): Use fdpic_got12_operand.
6073         (dbl_memory_one_insn_operand): Likewise.
6074         (fdpic_got12_operand): Use frv_const_unspec_p.
6075         (frv_emit_movsi): Use frv_const_unspec_p to check for CONSTs that
6076         are already legitimate.  Use frv_small_data_reloc_p when deciding
6077         whether to use HIGH/LO_SUM for R_FRV_GOTOFF12 and R_FRV_GPREL12.
6078         2003-11-18  Alexandre Oliva  <aoliva@redhat.com>
6079         * config/frv/t-linux (SHLIB_MAPFILES): Override so as to export...
6080         * config/frv/libgcc-frv.ver: ... frv-specific symbols.  New file.
6081         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
6082         label, for real this time.
6083         * config/frv/frv.c (frv_local_funcdesc_p): Update to new
6084         representation of visibility.
6085         (fdpic_got12_operand, symbolic_operand): Mark unused arguments as
6086         such.
6087         2003-11-17  Richard Sandiford  <rsandifo@redhat.com>
6088         * config/frv/frv.h (MASK_LINKED_FP, TARGET_LINKED_FP): New macros.
6089         (TARGET_SWITCHES): Add -mlinked-fp and -mno-linked-fp.
6090         * config/frv/frv.c (frv_override_options): Set MASK_LINKED_FP unless
6091         it was explicitly disabled.
6092         (frv_stack_info): There is no need to save the link register in every
6093         frame unless TARGET_LINKED_FP is true.
6094         (frv_frame_pointer_required): If !TARGET_LINKED_FP, only require a
6095         frame pointer if the stack pointer might change value.
6096         (frv_return_addr_rtx): Check and process "count" argument.
6097         2003-11-14  Richard Sandiford  <rsandifo@redhat.com>
6098         * config/frv/frv-protos.h (frv_legitimize_address): Remove.
6099         (frv_find_base_term): Declare.
6100         * config/frv/frv.h (LEGITIMIZE_ADDRESS): Do nothing.
6101         (FIND_BASE_TERM): Define.
6102         (PREDICATE_CODES): Remove pic_register_operand, pic_symbolic_operand,
6103         small_data_register_operand, small_data_symbolic_operand.  Add
6104         symbolic_operand.
6105         * config/frv/frv.c (const_small_data_p, plus_small_data_p): Delete.
6106         (frv_print_operand_memory_reference, output_move_single): Remove
6107         special handling for unlegitimized sdata addresses.
6108         (frv_legitimate_address_p): Don't allow sums of SDA_BASE_REG
6109         and symbolic addresses.
6110         (frv_legitimize_address, frv_legitimize_fdpic_address): Delete.
6111         (frv_find_base_term): New function.
6112         (int_2word_operand): Check specifically for symbolic address constants.
6113         (pic_register_operand, pic_symbolic_operand): Delete.
6114         (small_data_register_operand, small_data_symbolic_operand): Delete.
6115         (dbl_memory_one_insn_operand): Don't call plus_small_data_p.
6116         Allow UNSPEC_GOT constants if !TARGET_FDPIC.
6117         (move_source_operand): Only accept CONSTs if they're a two-insn
6118         symbolic constant.
6119         (fdpic_got12_operand): Don't require TARGET_FDPIC.
6120         (frv_emit_movsi): Legitimize sdata and -mlibrary-pic addresses
6121         using gen_symGOTOFF2reg*.
6122         (frv_ifcvt_rewrite_mem): Remove (plus gr16 ...) special cases.
6123         (frv_rtx_costs): Give all MEM addresses a cost of 0.  Give MEMs
6124         themselves a cost of 3 insns.
6125         * config/mips/mips.md (*movsi_got): Allow for !TARGET_FDPIC too.
6126         Change predicate to symbolic_operand.
6127         (*movsi_high_got, *movsi_lo_sum_got): Likewise.
6128         (*movsi_lda_sdata): Delete.
6129         (*movsi_pic, movsi_high_pic, movsi_lo_sum_pic): Delete.
6130         2003-11-05  Alexandre Oliva  <aoliva@redhat.com>
6131         * config.gcc: Add t-slibgcc-elf-ver and support --with-cpu for
6132         frv-*-*linux*.
6133         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
6134         label.
6135         * config/frv/frv.h (DRIVER_SELF_SPECS): Add blank before
6136         -multilib-library-pic.
6137         (LINK_SPEC): Add -z text for -mfdpic.
6138         * config/frv/frvbegin.c (__ROFIXUP_LIST__): Don't define on FDPIC.
6139         * config/frv/frvend.c (__ROFIXUP_END__): Likewise.
6140         * config/frv/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, LINK_SPEC):
6141         Override.
6142         (OPTION_DEFAULT_SPECS, HAS_INIT_SECTION, INIT_SECTION_ASM_OP,
6143         FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION): Define.
6144         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Use
6145         crtstuff-generated files.
6146         2003-10-31  Alexandre Oliva  <aoliva@redhat.com>
6147         * config.gcc: Add frv-*-*linux*.
6148         * config/frv/linux.h, config/frv/t-linux: New.
6149         2003-10-06  Alexandre Oliva  <aoliva@redhat.com>
6150         * config/frv/frv.h (LINK_SPEC): Pass -melf32frvfd to the linker
6151         when -mfdpic even if a linker script is explicitly listed.
6152         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
6153         * config/frv/frv.c (frv_override_options): Clear asm_out
6154         unaligned_op for SImode on FDPIC.
6155         (frv_emit_movsi): Use compute_reloc_for_constant to compute the
6156         argument passed to decl_readonly_section.
6157         (frv_assemble_integer): Revert 2003-09-30's change, but make the
6158         whole block run with FDPIC even with -fno-PIC.
6159         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
6160         * config/frv/frv.c (frv_cannot_force_const_mem): Don't force
6161         symbol or label plus offset to memory.
6162         (frv_emit_movsi): Emit GPREL only if -mgprel-ro.  Emit 32-bit
6163         GOTOFF and GPREL for LABEL_REF.
6164         * config/frv/frv.h (DRIVER_SELF_SPECS): Add -mgprel-ro with
6165         -mfdpic unless -mno-gprel-ro, -fpic or -fpie.
6166         (MASK_GPREL_RO, TARGET_GPREL_RO): New.
6167         (TARGET_SWITCHES): Added gprel-ro and no-gprel-ro.
6168         * doc/invoke.texi: Document them.
6169         2003-09-30  Alexandre Oliva  <aoliva@redhat.com>
6170         * config/frv/frv-protos.h (frv_gen_GPsym2reg): Declare.
6171         (frv_splittable_got_operand): Removed.
6172         * config/frv/frv.c (frv_cannot_force_const_mem): Reject HIGH and
6173         LO_SUM.  Add comments.
6174         (frv_override_options): Moved enabling of FDPIC to
6175         DRIVER_SELF_SPECS.  Don't enable MASK_DWORD.
6176         (frv_local_funcdesc_p): Remove unnecessary heck for flag_pie.
6177         (frv_legitimize_fdpic_address): Don't duplicate logic in
6178         frv_emit_movsi.
6179         (frv_gen_GPsym2reg): New.
6180         (unspec_got_name): Added gprel.
6181         (frv_expand_fdpic_call): Add support for inlining PLTs.
6182         (fdpic_fptr_operand): Renamed from frv_fdpic_fptr_operand.
6183         (gpr_or_int12_operand): Added GPREL12.
6184         (pic_symbolic_operand): Match even if !flag_pic for FDPIC.
6185         (small_data_symbolic_operand): Fail if FDPIC.
6186         (fdpic_splittable_got_operand): Removed.
6187         (fdpic_got12_operand): Added GPREL12.
6188         (frv_emit_movsi): Reorganize to avoid duplication.  Emit GPREL
6189         when appropriate.  Fix sdata GOTOFF.
6190         (frv_legitimate_constant_p): Require legitimate PIC operand for
6191         FDPIC with pic, but only a legitimate fdpic operand for non-pic.
6192         (frv_assemble_integer): Move FDPIC funcdesc handling out of
6193         flag_pic case.
6194         (frv_asm_out_constructor, frv_asm_out_destructor): Abort if
6195         frv_assemble_integer fails.
6196         * config/frv/frv.h (DRIVER_SELF_SPECS): New.
6197         (SUBTARGET_DRIVER_SELF_SPECS): New.
6198         (ASM_SPEC): Don't pass -mno-fdpic.
6199         (LINK_SPEC): Pass -melf32frvfd for FDPIC.
6200         (MASK_INLINE_PLT, TARGET_INLINE_PLT): New.
6201         (TARGET_SWITCHES): Add -minline-plt, -mno-inline-plt and
6202         -multilib-library-pic.
6203         (PREDICATE_CODES): Added fdpic_operand, fdpic_fptr_operand,
6204         condexec_si_media_operator, condexec_sf_add_operator and
6205         condexec_sf_conv_operator.  Removed condexec_sf_binary_operator
6206         and condexec_sf_unary_operator.
6207         * config/frv/frv.md (R_FRV_GPREL12, R_FRV_GPRELHI, R_FRV_GPRELLO):
6208         New.
6209         (movsi_got, movsi_high_got, movsi_lo_sum_got): Move before
6210         movsi_internal.  Give them internal names.  movsi_got has type
6211         int.
6212         (fdpic got splitters): Remove.
6213         (symGPREL2reg, symGPREL2reg_hilo): New.
6214         * config/frv/t-frv (MULTILIB_MATCHES): Don't map -fpic and -fPIC
6215         to -mlibrary-pic.  Map -multilib-library-pic to it.
6216         * doc/invoke.texi: -mfdpic, -minline-plt, -multilib-library-pic:
6217         Document.
6218         2003-09-28  Alexandre Oliva  <aoliva@redhat.com>
6219         * config/frv/frv.c (frv_function_symbol_referenced_p): Declare.
6220         (TARGET_CANNOT_FORCE_CONST_MEM): Define to...
6221         (frv_cannot_force_const_mem): New function.
6222         (const_small_data_p, plus_small_data_p): Update comments on sdata
6223         on FDPIC.
6224         (frv_override_options): Set flag_pie for FDPIC too.
6225         (frv_conditional_register_usage): Mark gr16 and gr17 as non-fixed,
6226         call-saved registers on FDPIC.
6227         (frv_stack_info): Don't preserve the PIC register on FDPIC, and
6228         don't force LR to be preserved.
6229         (frv_expand_prologue): Likewise.
6230         (frv_asm_output_mi_thunk): Use 12-bit funcdesc gotoff for -fpic.
6231         (frv_frame_pointer_required): Don't force it just because the
6232         FDPIC register is used.
6233         (frv_legitimate_address_p) <CONST>: Accept a legitimate FDPIC
6234         operand only if !condexec_p.
6235         (frv_legitimize_address): Return the FDPIC-legitimized address.
6236         Don't match small data here on FDPIC.
6237         (frv_legitimate_fdpic_operand_p): Don't accept unadorned function
6238         symbols.  Use TRUE/FALSE instead of 1/0.
6239         (frv_local_funcdesc_p): New.
6240         (frv_legitimize_fdpic_address): Rewrite to use GOTOFF and 12-bit
6241         immediates when possible.
6242         (pic_symbolic_operand): Accept SYMBOL_REFs and CONSTs in FDPIC.
6243         (dbl_memory_one_insn_operand): Accept addresses that add a REG and
6244         an UNSPEC_GOT.
6245         (frv_emit_movsi): Handle FDPIC before small data.  Use GOTOFF and
6246         12-bit immediates when possible.
6247         (frv_legitimate_constant_p): In FDPIC, reject SImode operands that
6248         are not legitimate pic operands.
6249         (frv_in_small_data_p): Re-enable for FDPIC.
6250         * config/frv/frv.h (SDA_BASE_REG): Remove comment about FDPIC.
6251         (FRV_GLOBAL_P): Removed.
6252         * config/frv/frv.md: Add modes to CONSTs.
6253         (movsi_got): New.
6254         (movsi_lo_sum_got): Use separate matches instead of match_dup.
6255         (movsi_high_pic, movsi_lo_sum_pic): Match on non-FDPIC only.
6256         (fdpic splittable operations): Match on flag_pic != 1.
6257         2003-09-22  Alexandre Oliva  <aoliva@redhat.com>
6258         * config/frv/frv.c (frv_asm_out_constructor,
6259         frv_asm_out_destructor): Pass to frv_assemble_integer the size in
6260         bytes, not bits.
6261         2003-09-19  Alexandre Oliva  <aoliva@redhat.com>
6262         * config/frv/frv.c (frv_assemble_integer): Reject complex
6263         expressions referencing function SYMBOL_REFs.
6264         * config/frv/frv.c (frv_function_symbol_referenced_p): New.
6265         (move_source_operand): Reject CONSTs that reference function
6266         SYMBOL_REFs on FDPIC.
6267         (frv_emit_movsi): If we get such a CONST, break it up.
6268         * config/frv/frv.h (CPP_SPEC): Define __FRV_FDPIC__ for -mfdpic.
6269         (TRANSFER_FROM_TRAMPOLINE): Use different definitions for FDPIC.
6270         * config/frv/frv.c (frv_print_operand) <I>: Recognize PLUS without
6271         MEM.
6272         (frv_assemble_integer): Don't use funcdesc for LABEL_REFs.
6273         (frv_trampoline_size): Increase for FDPIC.
6274         * config/frv/frv.h (TRAMPOLINE_ALIGNMENT): Bump to 64 for FDPIC.
6275         (TRANSFER_FROM_TRAMPOLINE): Handle FDPIC trampolines.
6276         * config/frv/frv.c (frv_legitimize_fdpic_address, frv_emit_movsi):
6277         Disable use of GOTOFF for now.
6278         (const_small_data_p, plus_small_data_p, frv_in_small_data_p):
6279         Disable use of small data in FDPIC for now.
6280         (frv_asm_output_mi_thunk): Implement for FDPIC.
6281         * config/frv/frv.h (SDA_BASE_REG): Set to -1 with FDPIC.
6282         * config/frv/frv.c (frv_asm_out_constructor): Use
6283         frv_assemble_integer for FDPIC pointers.
6284         (frv_asm_out_destructor): Likewise.
6285         * config/frv/frv.md (ldd): Fix order of operands.  Use
6286         address_operand for input.
6287         2003-09-18  DJ Delorie  <dj@redhat.com>
6288         * config/frv/frv.c (frv_legitimate_fdpic_operand_p): Remove UNSPEC_PIC.
6289         (unspec_got_name): Correct typo.
6290         (frv_emit_movsi): Pre-expand splittable GOTs.
6291         (frv_expand_fdpic_call): Rename gen_lddi to gen_ldd.
6292         * config/frv/frv.md (lddi): Fix syntax error, rename to ldd.
6293         (symGOT2reg_hilo, symGOTOFF2reg_hilo): New.
6294         * config/frv/t-frv: Add -mfdpic multilibs.
6295         * config/frv/frv.h (ASM_SPEC): Pass -mfdpic/-mno-fdpic.
6296         (TARGET_SWITCHES): Add -mno-fdpic, fix documentation.
6297         * config/frv/frv.c (frv_override_options): -mfdpic assumes
6298         flag_pic, default to 32-bit pics, require DWORD ops.
6299         (frv_override_options): Add W and Z constraints.
6300         (frv_expand_prologue): No pic prologue for -mfdpic.
6301         (frv_asm_output_mi_thunk): Support -mfdpic (soon).
6302         (frv_print_operand_memory_reference): Handle GOT constants.
6303         (frv_legitimate_address_p): Allow GOT constants.
6304         (frv_legitimize_address): Handle GOT addresses too.
6305         (frv_legitimate_fdpic_operand_p): New.
6306         (frv_legitimize_fdpic_address): New.
6307         (unspec_got_name): New.
6308         (frv_output_addr_const_extra): New.
6309         (frv_expand_fdpic_call): New.
6310         (frv_fdpic_fptr_operand): New.
6311         (gpr_or_int12_operand): Handle GOT operands.
6312         (int_2word_operand): Handle GOT operands.
6313         (fdpic_operand): New.
6314         (fdpic_splittable_got_operand): New.
6315         (fdpic_got12_operand): New.
6316         (frv_emit_movsi): Handle GOT operands.
6317         (frv_assemble_integer): -mfdpic doesn't use rofixups.
6318         (frv_print_operand): Support 'g' code for GOT operands.
6319         * config/frv/frv-protos.h: Add prototypes as needed.
6320         * config/frv/frv.md (R_FRV_GOT12, R_FRV_GOTHI, R_FRV_GOTLO,
6321         R_FRV_FUNCDESC, R_FRV_FUNCDESC_GOT12, R_FRV_FUNCDESC_GOTHI,
6322         R_FRV_FUNCDESC_GOTLO, R_FRV_FUNCDESC_VALUE,
6323         R_FRV_FUNCDESC_GOTOFF12, R_FRV_FUNCDESC_GOTOFFHI,
6324         R_FRV_FUNCDESC_GOTOFFLO, R_FRV_GOTOFF12, R_FRV_GOTOFFHI,
6325         R_FRV_GOTOFFLO): New.
6326         (movsi_high_got, movsi_lo_sum_got): New.
6327         (*movsi_pic): Don't use this splitter for -mfdpic.
6328         (addsi3): Allow GOT references also.
6329         (call, call_value): Handle -mfdpic separately.
6330         (call_fdpicdi, call_fdpicsi, lddi, call_value_fdpicdi,
6331         call_value_fdpicsi): New.
6332         (symGOT2reg, symGOT2reg_i, got splitters, symGOTOFF2reg,
6333         symGOTOFF2reg_i): New.
6334         * config/frv/frv.h (MASK_FDPIC): New.
6335         (TARGET_FDPIC): New.
6336         (TARGET_SWITCHES): Add -mfdpic.
6337         (FDPIC_FPTR_REGNO): New.
6338         (FDPIC_REGNO): New.
6339         (OUR_FDPIC_REG): New.
6340         (enum reg_class): Add FDPIC_REGS, FDPIC_FPTR_REGS, and
6341         FDPIC_CALL_REGS.
6342         (REG_CLASS_NAMES): Likewise.
6343         (REG_CLASS_CONTENTS): Likewise.
6344         (EXTRA_CONSTRAINT_FOR_Y): New, for 12-bit GOTs.
6345         (EXTRA_CONSTRAINT): Add it here.
6346         (FRV_GLOBAL_P): New.
6347         (OUTPUT_ADDR_CONST_EXTRA): New.
6348
6349 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
6350
6351         * config/sparc/sparc.h: Remove commented-out definitions of
6352         TARGET_EDOM and GEN_ERRNO_RTX.
6353
6354 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
6355
6356         * df.c, df.h, ra-build.c, ra-rewrite.c, ra.c, web.c: Replace
6357         df_analyse with df_analyze.
6358
6359 2004-02-24  Alan Modra  <amodra@bigpond.net.au>
6360
6361         * gcse.c (delete_null_pointer_checks_1): Set stop_insn to end, not
6362         beginning of block.
6363
6364 2004-02-23  James E Wilson  <wilson@specifixinc.com>
6365
6366         * calls.c (precompute_arguments): Update comment.
6367
6368 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
6369
6370         * et-forest.c: Replace et_occurences with et_occurrences.
6371
6372 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
6373
6374         * cfgloop.h, loop-iv.c, loop-unswitch.c: Replace iv_analyse
6375         with iv_analyze.
6376
6377 2004-02-23  Kelley Cook  <kcook@gcc.gnu.org>
6378
6379         * config/i386/i386.c: Rename pni to sse3.
6380         * config/i386/i386.h: Likewise.
6381         * config/i386/i386.md: Likewise.
6382         * config/i386/pmmintrin.h: Likewise.
6383         * doc/extend.texi: Likewise.
6384         * doc/invoke.texi: Likewise.
6385
6386 2004-02-23  Zack Weinberg  <zack@codesourcery.com>
6387             Kazu Hirata  <kazu@cs.umass.edu>
6388
6389         Remove -fwritable-strings.
6390         * c-common.c (fix_string_type): Don't check
6391         flag_writable_strings.
6392         (fix_string_type): Likewise.
6393         * c-opts.c (set_std_c89): Don't initialize
6394         flag_writable_strings.
6395         (set_std_c99): Likewise.
6396         * common.opt (fwritable-strings): Remove.
6397         * flags.h: Remove the external declaration of
6398         flag_writable_strings.
6399         * opts.c (common_handle_option) <OPT_fwritable_strings>:
6400         Remove.
6401         * toplev.c (flag_writable_strings): Remove.
6402         (f_options): Remove an entry for writable-strings.
6403         * varasm.c (const_hash_1) <STRING_CST>: Don't check
6404         flag_writable_strings.
6405         (compare_constant) <STRING_CST>: Likewise.
6406         (build_constant_desc): Likewise.
6407         * config/darwin.c (machopic_select_section): Likewise.
6408         * config/arm/arm.c (AOF_ASSEMBLER): Likewise.
6409         * config/arm/pe.c (arm_pe_encode_section_info): Likewise.
6410         * config/iq2000/iq2000.c (iq2000_select_section): Likewise.
6411         * config/mips/mips.c (mips_select_section): Likewise.
6412         (mips_encode_section_info): Likewise.
6413         * config/pa/pa.c (pa_select_section): Likewise.
6414         * config/pa/pa.h (TEXT_SPACE_P): Likewise.
6415         * config/v850/v850.c (v850_select_section): Likewise.
6416         * doc/invoke.texi (-fwritable-strings): Remove.
6417         (-fno-const-strings): Don't mention -fwritable-strings.
6418         * doc/trouble.texi: Don't mention -fwritable-strings.
6419
6420 2003-02-23  Nathanael Nerode  <neroden@gcc.gnu.org>
6421
6422         * doc/install.texi: Update for switch of boehm-gc to autoconf 2.57.
6423
6424 2004-02-23  Dale Johannesen  <dalej@apple.com>
6425
6426         * config/rs6000.md (movsf_hardfloat): Add POWER form of nop.
6427         (movdf_hardfloat64):  Ditto.
6428         (movdf_softfloat64):  Ditto.
6429
6430 2004-02-23  Fariborz Jahanian <fjahanian@apple.com>
6431         * config/rs6000/rs6000.c (function_arg): call to
6432         rs6000_mixed_function_arg for DFmode moved to allow
6433         normal DFmode incoming register assignment.
6434
6435 2004-02-23  Dale Johannesen  <dalej@apple.com>
6436
6437         * config/rs6000.md (movsf_hardfloat): Accept CTR-to-CTR copy.
6438         (movdf_hardfloat64):  Ditto.
6439
6440 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
6441
6442         * convert.c, gcov-io.c, libgcov.c, sched-int.h, sibcall.c,
6443         config/rs6000/linux.h, config/rs6000/rs6000-c.c: Update
6444         copyright.
6445
6446 2004-02-23  Andrew Pinski  <pinskia@physics.uc.edu>
6447
6448         PR c/14156
6449         * c-typeck.c (c_expand_return): Change check for VAR_DECL
6450         to use DECL_P instead.
6451
6452         * config/rs6000/linux.h (OS_MISSING_POWERPC64): Define.
6453         * config/rs6000/linux64.h (OS_MISSING_POWERPC64): Define.
6454
6455 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
6456
6457         * Makefile.in (opts.o): Depend on target.h.
6458         * opts.c (decode_options): Use targetm.default_short_enums
6459         instead of DEFAULT_SHORT_ENUMS.
6460         * system.h (DEFAULT_SHORT_ENUMS): Poison.
6461         * target-def.h (TARGET_DEFAULT_SHORT_ENUMS): New.
6462         (TARGET_INITIALIZER): Add TARGET_DEFAULT_SHORT_ENUMS.
6463         * target.h (gcc_target): Add default_short_enums.
6464         * config/cris/cris.h: Remove a comment about
6465         DEFAULT_SHORT_ENUMS.
6466         * config/ip2k/ip2k.h: Likewise.
6467         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Change to
6468         TARGET_DEFAULT_SHORT_ENUMS.  Update the description.
6469
6470 2004-02-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
6471             Falk Hueffner  <falk@debian.org>
6472
6473         PR c/14188
6474         * builtins.c (expand_builtin_va_arg): Emit an informative message
6475         if a trap is generated.
6476         * c-typeck.c (build_function_call): Likewise.
6477
6478 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
6479
6480         * gcov-io.c (gcov_open) [GCOV_LOCKED]: Use open + fdopen instead of
6481         fopen.
6482         * libgcov.c: Include sys/stat.h.
6483         * config/rs6000/linux.h (TARGET_HAS_F_SETLKW): Define.
6484         * config/rs6000/linux64.h (TARGET_HAS_F_SETLKW): Define.
6485         * config/sparc/linux.h (TARGET_HAS_F_SETLKW): Define.
6486         * config/sparc/linux64.h (TARGET_HAS_F_SETLKW): Define.
6487
6488 2004-02-22  Kazu Hirata  <kazu@cs.umass.edu>
6489
6490         * reorg.c: Remove comments about dead ports.
6491
6492 2004-02-22  Christopher Faylor  <cgf@redhat.com>
6493
6494         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): *Really* specify
6495         extra host object file when targetting cygwin rather than generic
6496         object files.
6497
6498 2004-02-22  Josef Zlomek  <zlomekj@suse.cz>
6499
6500         Merge from tree-ssa:
6501         2003-11-20  Richard Henderson  <rth@redhat.com>
6502
6503                 * tree-inline.c (insert_decl_map): New.
6504                 (remap_decl, remap_type, remap_block, copy_body_r,
6505                 initialize_inlined_parameters, declare_return_variable,
6506                 remap_save_expr): Use it.
6507
6508         * function.c (copy_body_r): Add mapping from id->ret_label to
6509         id->ret_label.  Revert test for ret_label.
6510
6511 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
6512
6513         * genoutput.c (process_template): Strip trailing whitespace in @
6514         templates and issue a warning if there was any.
6515
6516 2004-02-21  Christopher Faylor  <cgf@redhat.com>
6517
6518         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): Specify extra host
6519         object file when targetting cygwin.
6520         * config/i386/t-cygwin (EXTRA_GCC_OBJS): Remove definition since it is
6521         overridden by top-level Makefile.
6522
6523 2004-02-21  Roger Sayle  <roger@eyesopen.com>
6524
6525         * config/i386/i386.c (standard_80387_constant_p): Also prefer
6526         the x87's load constant instructions when optimizing for size.
6527
6528 2004-02-21  Kazu Hirata  <kazu@cs.umass.edu>
6529
6530         * combine.c (SHIFT_COUNT_TRUNCATED): Remove.
6531         * defaults.h (SHIFT_COUNT_TRUNCATED): Provide the default.
6532         * expmed.c: Assume SHIFT_COUNT_TRUNCATED is always defined.
6533         * fold-const.c: Likewise.
6534         * simplify-rtx.c: Likewise.
6535
6536 2004-02-21  Alan Modra  <amodra@bigpond.net.au>
6537
6538         * combine.c (can_combine_p): Don't ignore SETs marked with
6539         REG_EH_REGION notes.
6540         (try_combine): When attemting to fix unrecognized insns, don't
6541         split a PARALLEL that contains the original i2.
6542
6543 2004-02-21  Ziemowit Laski  <zlaski@apple.com>
6544
6545         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Refer to
6546         SUBTARGET_OPTION_TRANSLATE_TABLE for architecture-specific options.
6547         * config/i386/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): Define it.
6548         * config/rs6000/altivec.h: #error out if '-maltivec' not specified.
6549         (vector, pixel, bool): #define to __vector, __pixel and __bool.
6550         (__un_args_eq, __bin_args_eq, __tern_args_eq): Move to C-specific
6551         portion of header.
6552         (__altivec_link_error_invalid_argument): Remove prototype; will use
6553         __builtin_altivec_compiletime_error("vec_*") instead.
6554         (vec_*): Fix/complete set of available operation overloads given the
6555         existence of distinct 'vector bool ...' and 'vector pixel' types; tighten
6556         cv-correctness of pointer arguments; in C, always check for correct
6557         argument types before macro expansion.
6558         * config/rs6000/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): New macro
6559         defining Darwin/PowerPC-specific '-f[no-]altivec' and
6560         '-W[no-]altivec-long-deprecated' switches.
6561         * config/rs6000/rs6000-c (rs6000_cpu_cpp_builtins): Pre-define
6562         '__vector', '__pixel' and '__bool' macros using
6563         '__attribute__((altivec(...)))' types.
6564         * config/rs6000/rs6000.c (bool_char_type_node, bool_short_type_node,
6565         bool_int_type_node, pixel_type_node, bool_V16QI_type_node,
6566         bool_V8HI_type_node, bool_V4SI_type_node, pixel_V8HI_type_node):
6567         New type nodes.
6568         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): New, for
6569         handling '-W[no-]altivec-long-deprecated'.
6570         (rs6000_override_options): Handle '-W[no-]altivec-long-deprecated'.
6571         (rs6000_expand_binop_builtin, rs6000_expand_ternop_builtin,
6572         altivec_expand_dst_builtin): Remove casts from integer literals.
6573         (altivec_expand_builtin): Likewise; handle expansion of new
6574         '__builtin_altivec_compiletime_error' function.
6575         (rs6000_init_builtins): Initialize 'vector bool ...' and 'vector pixel'
6576         types, and make them distinct from other vector types; register
6577         '__builtin_altivec_compiletime_error' function.
6578         (print_operand): For 'P', print a full target register name instead of
6579         merely its number.
6580         (rs6000_attribute_table): Add "altivec" attribute.
6581         (rs6000_handle_altivec_attribute): New function.
6582         * config/rs6000/rs6000.h (TARGET_OPTIONS): Describe
6583         '-m[no-]-warn-altivec-long' (which '-W[no-]altivec-long-deprecated'
6584         maps to).
6585         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): Forward
6586         declare.
6587         (ALTIVEC_BUILTIN_COMPILETIME_ERROR): New built-in enumeration.
6588
6589 2004-02-20  James E Wilson  <wilson@specifixinc.com>
6590
6591         * config/ia64/ia64.md (shift_mix4left+1): Delete reload_completed
6592         check.
6593         (shift_mix4left+2): Delete redundant pattern.
6594
6595 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
6596
6597         * alias.c (OUTGOING_REGNO): Don't define the default.
6598         * builtins.c (OUTGOING_REGNO): Likewise.
6599         (INCOMING_REGNO): Likewise.
6600         (apply_args_register_offset): Always use OUTGOING_REGNO.
6601         * combine.c (OUTGOING_REGNO): Likewise.
6602         * sibcall.c (OUTGOING_REGNO): Likewise.
6603         * defaults.h (INCOMING_REGNO): Provide the default.
6604         (OUTGOING_REGNO): Likewise.
6605
6606 2004-02-21  Jan Hubicka  <jh@suse.cz>
6607
6608         * params.def (max-peeled-insns, max-completely-peeled-insns,
6609         max-once-peeled-insns): Set to 400.
6610
6611 2004-02-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6612
6613         PR c++/12007
6614         * dbxout.c (dbxout_parms): Check that DECL_RTL and DECL_INCOMING_RTL
6615         are set for parameters before outputing debugging information.
6616
6617 2004-02-20  Falk Hueffner  <falk@debian.org>
6618
6619         PR target/14201
6620         * config/alpha/alpha.md (*fix_truncsfsi_ieee): Fix typoed operand
6621         numbers.
6622
6623 2004-02-20  Per Bothner  <per@bothner.com>
6624
6625         * input.h:  Don't #include line-map.h.  It may cause link problems
6626         with undefined linemap_line_start when line-map.h is included but
6627         line-map.o is not linked, as currently happens with gengtype on
6628         compilers that don't support inline.
6629         * toplev.c:  So we do have to explicitly #include line-map.h here.
6630
6631 2004-02-20  Richard Henderson  <rth@redhat.com>
6632
6633         * doc/invoke.texi: Add -Wvariadic-macros.
6634
6635 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
6636
6637         * haifa-sched.c (sched_emit_insn): Remove.
6638         * sched-int.h: Remove the corresponding prototype.
6639
6640 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
6641
6642         Revert:
6643         2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
6644         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
6645         * system.h (DEFAULT_SHORT_ENUMS): Poison.
6646         * config/cris/cris.h: Remove a comment about
6647         DEFAULT_SHORT_ENUMS.
6648         * config/ip2k/ip2k.h: Likewise.
6649         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
6650
6651 2004-02-20  Mohan Embar  <gnustuff@thisiscool.com>
6652             Tom Tromey  <tromey@redhat.com>
6653
6654         * doc/install.texi: Moved --disable-libgcj and
6655         --with-system-zlib documentation to new section for
6656         Java-specific options.
6657         Added explicit Cross-Compiler-Specific Options subheading.
6658         Added section for Java-specific options.
6659
6660 2004-02-20  Matt Kraai  <kraai@alumni.cmu.edu>
6661
6662         * doc/install.texi (Building the Ada compiler): Remove
6663         example.
6664
6665 2004-02-20  James E Wilson  <wilson@specifixinc.com>
6666
6667         * toplev.c (dump_file_index, dump_file): Put ce3 before rnreg.
6668
6669 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
6670
6671         * gcc.c (process_command): Allow translation of the copyright
6672         symbol but not the rest of the copyright message.
6673         * gcov.c (print_version): Likewise.  Allow translation of the
6674         message about warranty.
6675
6676 2004-02-20  Hans-Peter Nilsson  <hp@axis.com>
6677
6678         * config/cris/cris.md ("*andsi_movu"): Correct parentheses in
6679         predicate.
6680         ("*andsi_clear"): Tweak constraints to not match postincrement.
6681         Adjust the predicate to exclude a volatile memory reference.
6682         ("*andhi_clear"): Ditto.  Rename from "*andhi_clear_signed".
6683         ("*andhi_clear_unsigned"): Remove, non-matching pattern.
6684
6685 2004-02-19  Matt Kraai  <kraai@alumni.cmu.edu>
6686
6687         * move-if-change: Remove.
6688         * Makefile.in (s-mlib, c-parse.y, s-check, s-gencheck)
6689         (s-specs, s-options, s-config, s-conditions, s-flags, s-codes)
6690         (s-constants, s-emit, s-recog, s-opinit, s-extract, s-peep)
6691         (s-attr, s-attrtab, s-output, s-genrtl, s-modes, s-preds)
6692         (s-gtyp-gen, s-iov): Use the top level move-if-change.
6693         * objc/Make-lang.in (objc/objc-parse.y): Likewise.
6694
6695 2004-02-19  James E Wilson  <wilson@specifixinc.com>
6696
6697         * config/i386/i386.md (doloop_end_internal): Use nonimmediate_operand
6698         for operand2.  Add condition that requires register_operand operand2
6699         before reload.
6700
6701 2004-02-19  Richard Sandiford  <rsandifo@redhat.com>
6702             Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
6703
6704         * config/mips/mips.c (mips_address_insns): Treat BLKmode specially.
6705         * config/mips/mips.md: Expand comment above unaligned loads and stores.
6706
6707 2004-02-19  Richard Henderson  <rth@redhat.com>
6708
6709         * Makefile.in (STRICT2_WARN): Add -Wno-variadic-macros.
6710         * tree.c (build0, build1, build2, build3, build4): Split out from...
6711         (build): ... here.  Call them.
6712         * tree.h (build, _buildN1, _buildN2, _buildC1, _buildC2): New.
6713
6714         * convert.c (convert_to_integer): Remove extra build argument.
6715         * tree-inline.c (expand_call_inline): Likewise.
6716
6717 2004-02-19  Richard Henderson  <rth@redhat.com>
6718
6719         * c-opts.c (warn_variadic_macros): New.
6720         (c_common_handle_option): Set it.
6721         (sanitize_cpp_opts): Copy it to cpp_opts.
6722         * c.opt (Wvariadic-macros): New.
6723         * cpplib.h (struct cpp_options): Add warn_variadic_macros.
6724         * cppinit.c (cpp_create_reader): Initialize it.
6725         * cppmacro.c (parse_params): Check it.
6726
6727 2004-02-19  David Daney <ddaney@avtrex.com>
6728
6729         PR preprocessor/14198
6730         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Add
6731         builtin_assert ("machine=mips")
6732
6733 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
6734
6735         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
6736         * system.h (DEFAULT_SHORT_ENUMS): Poison.
6737         * config/cris/cris.h: Remove a comment about
6738         DEFAULT_SHORT_ENUMS.
6739         * config/ip2k/ip2k.h: Likewise.
6740         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
6741
6742 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
6743
6744         * config/ia64/ia64.c (ia64_function_arg): In big-endian mode,
6745         when passing single SFmode quantities in general registers,
6746         put them in the high half.
6747
6748 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
6749
6750         * doc/md.texi (Standard Names): Document additional dependency on
6751         fix pattern.
6752
6753         * optabs.c (ftruncify): Remove.
6754         (expand_fix): Manually inline ftruncify above.
6755         (can_fix_p): Add FIXME note.
6756
6757 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
6758
6759         * config/rs6000/spe.md (spe_fixunssfsi2): Rename to
6760         spe_fixuns_truncsfsi2.
6761
6762         * config/rs6000/rs6000.md (fixunssfsi2): Rename to
6763         fixuns_truncsfsi2.
6764
6765 2004-02-19  Steve Ellcey  <sje@cup.hp.com>
6766
6767         * config/ia64/ia64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
6768         * testsuite/gcc.dg/20040219-1.c: New test.
6769
6770 2004-02-19  Ulrich Weigand  <uweigand@de.ibm.com>
6771
6772         * config/s390/s390.md ("*subdf3_cc", "*subdf3_cconly", "*subsf3_cc",
6773         "*subsf3_cconly"): Subtraction is not commutative.
6774
6775 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
6776
6777         * sdbout.c (preinit_symbols, sdbout_initialized): New statics.
6778         (sdbout_symbol): If called before sdbout_init, queue DECL for
6779         later and return.
6780         (sdbout_init): Set sdbout_initialized true, process decls
6781         queued earlier by sdbout_symbol.
6782         (sdbout_finish): Use size_t for index variable.
6783
6784 2004-02-19  Jeff Law  <law@redhat.com>
6785
6786         * fold-const.c (invert_truthvalue): Do not call invert_tree_comparison
6787         for unordered comparison codes.
6788
6789 2004-02-19  Ian Lance Taylor  <ian@wasabisystems.com>
6790
6791         * reload1.c (reload): Correct comment.
6792         (scan_paradoxical_subregs): Remove #if 0 and old comment.
6793         * doc/extend.texi (Local Reg Vars): Remove obsolete comment that
6794         register variables are not used by reload.
6795
6796 2004-02-19  Hans-Peter Nilsson  <hp@axis.com>
6797
6798         PR target/14209
6799         * config/cris/cris.md ("*andsi_movu", "*andhi_movu"): Tweak
6800         constraints to not match postincrement.  Adjust the predicate to
6801         exclude a volatile memory reference.
6802
6803 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
6804
6805         * config/mcore/mcore.h (ASM_OUTPUT_EXTERNAL): Remove.
6806
6807 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
6808
6809         * hooks.c (hook_void_tree_int): Remove.
6810         (hook_void_constcharptr): Likewise.
6811         (hook_int_void_0): Likewise.
6812         * hooks.h: Remove the prototypes for the above three
6813         functions.
6814         * targhooks.c (hook_bool_machine_mode_true): Remove.
6815         * targhooks.h: Remove the prototype for
6816         hook_bool_machine_mode_true.
6817
6818 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
6819
6820         * emit-rtl.c (subreg_realpart_p): Remove.
6821         (reorder_insns_with_line_notes): Likewise.
6822         (end_full_sequence): Likewise.
6823         * rtl.h: Remove the prototype for the above functions.
6824
6825 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
6826
6827         * config/arc/arc.h, config/arm/arm.h, config/frv/frv.h,
6828         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
6829         config/iq2000/iq2000.h, config/m32r/m32r.h,
6830         config/pdp11/pdp11.h, config/sparc/sparc.h,
6831         config/xtensa/xtensa.h: Remove commented-out or useless
6832         definitions of CASE_VECTOR_PC_RELATIVE.
6833
6834 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
6835
6836         * loop.c (all_sets_invariant_p): Remove.
6837
6838 2004-02-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
6839
6840         PR target/12916
6841         * config/sparc/sparc.h (NPARM_REGS): Delete.
6842         (BASE_RETURN_VALUE_REG): Likewise.
6843         (BASE_OUTGOING_VALUE_REG): Likewise.
6844         (BASE_PASSING_ARG_REG): Likewise.
6845         (BASE_INCOMING_ARG_REG): Likewise.
6846         * config/sparc/sparc.c (sparc_strict_argument_naming): Test
6847         TARGET_ARCH64, not TARGET_V9.
6848         (function_arg_slotno): Dispatch based on the mode class.
6849         Handle vector modes like floating-point modes.
6850         (function_arg_record_value_1): Handle vector types like
6851         floating-point types.
6852         (function_arg_record_value_2): Likewise.
6853         Calculate regno after mode transformation.
6854         (function_arg): Handle vector modes like floating-point modes.
6855         (function_arg_partial_nregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX.
6856         If ARCH64, do not recheck alignment.
6857         (function_arg_pass_by_reference): Reorder the conditions.
6858         (sparc_return_in_memory): Move after function_arg_padding.
6859         Implement calling conventions for vector modes.
6860         (sparc_struct_value_rtx): Move after sparc_return_in_memory.
6861         (function_value): Move scope of 'regbase'.
6862         Implement calling conventions for vector modes.
6863         (sparc_builtin_saveregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX
6864         and BASE_INCOMING_ARG_REG by SPARC_INCOMING_INT_ARG_FIRST.
6865         (sparc_va_arg): Use function_arg_pass_by_reference to test whether
6866         the argument is passed by reference.
6867         (sparc_type_code): Handle vector types.
6868
6869 2004-02-19  Alan Modra  <amodra@bigpond.net.au>
6870
6871         * function.c (assign_parms): When building decl_rtl for
6872         SPLIT_COMPLEX_ARGS, ensure inner modes of concat match outer.
6873
6874 2004-02-19  Olivier Hainque  <hainque@act-europe.fr>
6875
6876         * expr.c (is_aligning_offset): Check if we are aligning the
6877         expressions's address over BIGGEST_ALIGNMENT in bytes, not
6878         in bits.
6879
6880 2003-02-18  Matt Austern  <austern@apple.com>
6881
6882         * gcc.c (LIBGCC_SPEC): If REAL_LIBGCC_SPEC is defined, and
6883         LIBGCC_SPEC isn't, set LIBGCC_SPEC to REAL_LIBGCC_SPEC.
6884         (init_gcc_spec): Don't define or call if REAL_LIBGCC_SPEC is
6885         defined.  Instead use REAL_LIBGCC_SPEC, unmodifed, as the libgcc
6886         spec string.
6887         * doc/tm.texi (REAL_LIBGCC_SPEC): Document.
6888
6889 2004-02-18  Zack Weinberg  <zack@codesourcery.com>
6890
6891         * dwarf2out.c (loclabel_num): Move outside #ifdef
6892         DWARF2_DEBUGGING_INFO and mark with GTY(()).
6893         * config/ia64/ia64.c (struct extern_func_list,extern_func_head):
6894         Mark with GTY(()).
6895         (ia64_hpux_add_extern_decl): Save the decl, not the name string.
6896         Allocate memory with ggc_alloc.  No need to copy anything.
6897         (ia64_hpux_file_end): Update to match.
6898
6899 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
6900
6901         * config/i386/i386.c (override_options): Don't imply 3DNow! for -m64
6902         by default.
6903
6904 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
6905
6906         * config/s390/s390.md ("divmodtidi3"): Use canonical RTL.
6907         ("divmodtisi3"): Likewise.
6908         ("udivmoddi4", "udivmodtidi3"): Likewise.
6909         ("divmodsi4", "divmoddisi3"): Likewise.
6910         ("udivmodsi4", "udivmoddisi3"): Likewise.
6911         ("udivsi3", "umodsi3"): Likewise.
6912
6913 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
6914
6915         * config/s390/s390.c (s390_mainpool_start): Delete the main pool
6916         placeholder insn when chunkifying the pool.
6917
6918 2004-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6919
6920         * pa.h (PIC_OFFSET_TABLE_REGNUM): Define to INVALID_REGNUM when not
6921         generating PIC code.
6922
6923 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
6924
6925         * config/h8300/h8300-protos.h: Add a prototype for
6926         h8300_expand_branch.
6927         * config/h8300/h8300.c (h8300_expand_branch): New.
6928         * config/h8300/h8300.md (ble, bleu, bge, bgeu, blt, bltu, bgt,
6929         bgtu, beq, bne): Call h8300_expand_branch().
6930
6931 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
6932
6933         * config/h8300/h8300-protos.h: Add prototypes for
6934         h8300_hard_regno_nregs and h8300_hard_regno_mode_ok.
6935         * config/h8300/h8300.c (h8300_hard_regno_nregs): New.
6936         (h8300_hard_regno_mode_ok): Likewise.
6937         * config/h8300/h8300.h (HARD_REGNO_NREGS): Call
6938         h8300_hard_regno_nregs().
6939         (HARD_REGNO_MODE_OK): Call h8300_hard_regno_mode_ok().
6940
6941 2004-02-18  Per Bothner  <per@bothner.com>
6942
6943         * cpphash.h (struct cpp_buffer):  Restore return_at_eof field.  This
6944         partly reverts my 2003-10-01 change, because we're back to logically
6945         including <command line> inside the main line.
6946         * cpplex.c (_cpp_get_fresh_line):  Check return_at_eof field.
6947         * cppmacro.c (cpp_scan_nooutput):  Set return_at_eof of current buffer.
6948         Fixes PR preprocessor/14103.
6949
6950         * cppfiles.c (_cpp_stack_include):  When appropriate decrement
6951         line_table's highest_location, fixing LAST_SOURCE_LINE_LOCATION.
6952         (cpp_push_include):  Don't need to increment pfile's line field.
6953         * line-map.h (LAST_SOURCE_LINE_LOCATION):  Only decrement by 1.
6954
6955         * c-ppoutput.c (print struct):  New first_time field.
6956         (init_pp_output):  Set print.first_time.
6957         (pp_file_change):  Use print.first_time, rather than MAIN_FILE_P,
6958         which is set also for (say) <command line>.  Clear print.first_time.
6959
6960         * cppfiles.c (struct _cpp_file):  Comment and type for pch field
6961         does not match the code, so fix both.
6962         (should_stack_file):  Inline include_pch_p function.
6963         (include_pch_p):  Remove pointless function.
6964
6965         * cpphash.h (struct cpp_buffer):  Remove unused search_cached field.
6966
6967 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
6968
6969         * config/h8300/h8300.md (four define_peephole2's): Use
6970         h8300_regs_ok_for_stm().
6971
6972 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
6973
6974         * config/h8300/h8300-protos.h: Update the prototype for
6975         expand_a_rotate().
6976         * config/h8300/h8300.c (expand_a_rotate): Remove the first
6977         argument.
6978         * config/h8300/h8300.md: Update all callers.
6979
6980 2004-02-18  Jan Hubicka  <jh@suse.cz>
6981
6982         * simplify-rtx.c (simplify_unary_operation): Deal with logicals on
6983         floats.
6984         (simplify_binary_operation): Deal with logicals on floats.
6985
6986         * i386.md (SSE fabs splitters): Emit new patterns.
6987         (SSE cmov splitters): Likewise.
6988         (sse_andv4sf3, sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3
6989         (sse_andv2df3, sse_nandv2df3, sse_iorv2df3, sse_xorv2df3): Do not use
6990         subregs.
6991         (sse_andsf3, sse_nandsf3, sse_xorsf3): Kill.
6992         (sse_anddf3, sse_nanddf3, sse_xordf3): Kill.
6993
6994 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
6995
6996         * config/h8300/h8300.c (expand_a_rotate): Don't generate insns
6997         by hand.
6998         (output_a_rotate): Tweak a comment.
6999         * config/h8300/h8300.md (*rotlqi3_1): Change to rotlqi3_1.
7000         (*rotlhi3_1): Change to rotlhi3_1.
7001         (*rotlsi3_1): Change to rotlsi3_1.
7002
7003 2004-02-18  Richard Earnshaw  <rearnsha@arm.com>
7004
7005         PR target/13866
7006         * arm.c (load_multiple_operation): Don't insist that the source reg
7007         of a post-increment component is the same as the destination.
7008         (store_multiple_operation): Likewise.
7009
7010 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
7011
7012         * config/h8300/h8300.md: Move movsf patterns into one section
7013         of the file.
7014
7015 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
7016
7017         * cfgloop.h, cfgloopanal.c, cpplex.c, except.h, loop-init.c,
7018         loop-unroll.c, scan-decls.c, scan.h, stor-layout.c,
7019         xcoffout.c, xcoffout.h, config/arm/mmintrin.h,
7020         config/mips/linux64.h, config/pa/pa-64.h,
7021         config/rs6000/aix51.h, config/rs6000/aix52.h,
7022         config/rs6000/spe.md, config/sparc/linux.h,
7023         config/sparc/linux64.h: Update copyright.
7024
7025 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
7026
7027         * config/h8300/h8300.md: Move push patterns into one
7028         section of the file.
7029
7030 2004-02-18  Mark Mitchell <mark@codesourcery.com>
7031
7032         PR c++/11326
7033         * config/ia64/ia64.c (ia64_struct_value_rtx): Cope with NULL
7034         fntype.
7035
7036 2004-02-18  Paul Brook  <paul@codesourcery.com>
7037
7038         * rtlanal.c (rtx_varies_p): Return 0 for NULL_RTX
7039
7040 2004-02-18  Paul Brook  <paul@codesourcery.com>
7041
7042         PR debug/12934
7043         * dwarf2out.c (loc_descriptor_from_tree): Handle
7044         EXPR_WITH_FILE_LOCATION.
7045
7046 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
7047
7048         * config/i386/i386.md (zero_extendqidi2, zero_extendqidi2,
7049         testdi_1_rex64, anddi_2, xordi_1_rex64, xordi_2_rex64): Remove
7050         trailing whitespace from instructions.
7051
7052 2004-02-17  Geoffrey Keating  <geoffk@apple.com>
7053
7054         * configure.ac: When generating auto-build.h, pass
7055         --enable-languages to the sub-configure.
7056         Put quotes around ${program_transform_name} when generating
7057         name of as, ld, nm, objdump.
7058         * configure: Regenerate.
7059
7060 2004-02-17  Matt Kraai  <kraai@alumni.cmu.edu>
7061
7062         * Makefile.in (s-check, s-config, s-conditions, s-flags)
7063         (s-codes, s-constants, s-emit, s-recog, s-opinit, s-extract)
7064         (s-peep, s-attr, s-attrtab, s-output, s-genrtl, s-modes)
7065         (s-preds, s-iov): Do not depend on move-if-change.
7066
7067 2004-02-17  James E Wilson  <wilson@specifixinc.com>
7068
7069         * caller-save.c (insert_restore): Pass mem through copy_rtx.
7070         (insert_save): Likewise.
7071
7072 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
7073
7074         * config/h8300/h8300.c (h8300_emit_stack_adjustment): Fix a
7075         warning.
7076
7077 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
7078
7079         * config/h8300/h8300.md (*one_complsi2_h8300): Change to
7080         *one_cmplsi2_h8300.
7081         (*one_complsi2_h8300hs): Change to *one_cmplsi2_h8300hs.
7082
7083 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
7084
7085         * config/h8300/h8300-protos.h: Update the prototype of
7086         fix_bit_operand().
7087         * config/h8300/h8300.c (fix_bit_operand): Remove the second
7088         argument "what".
7089         * config/h8300/h8300.md: Update all callers.
7090
7091 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
7092
7093         * config/h8300/h8300.c (fix_bit_operand): Change the name of
7094         the last argument to "code" from "type".
7095
7096 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
7097
7098         * config/h8300/h8300.c: Remove an extern declaration of
7099         rtx_equal_function_value_matters.
7100
7101 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
7102
7103         * config/h8300/h8300.c (fix_bit_operand): Don't generate insns
7104         by hand.
7105         * config/h8300/h8300.md (*andqi3_1): Change to andqi3_1.
7106         (*iorqi3_1): Change to iorqi3_1.
7107         (*xorqi3_1): Change to xorqi3_1.
7108
7109 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
7110
7111         * c-common.c, cfghooks.c, rtlanal.c, varasm.c: Fix comment
7112         typos.
7113
7114 2004-02-17  Jan Hubicka  <jh@suse.cz>
7115
7116         * i386.c (x86_prologue_using_move, x86_epilogue_using_move): Disable for P4.
7117
7118 2004-02-18  Alan Modra  <amodra@bigpond.net.au>
7119
7120         PR optimization/14119
7121         * combine.c (try_combine): When attemting to fix unrecognized insns,
7122         don't delete SETs marked with REG_EH_REGION notes.
7123
7124 2004-02-17  Ulrich Weigand  <uweigand@de.ibm.com>
7125
7126         * combine.c (simplify_if_then_else): Do not replace
7127         (if_then_else (ne reg 0) (0) (const_int)) by (reg) if the
7128         modes differ.
7129
7130 2004-02017  Steven Bosscher  <stevenb@suse.de>
7131
7132         * (c-decl.c, c-semantics.c, calls.c, cgraph.c, cgraphunit.c,
7133         function.c, integrate.c, print-tree.c, toplev.c, tree-optimize.c,
7134         tree.h): Replace DECL_SAVED_INSNS with DECL_STRUCT_FUNCTION.
7135         * ada/utils.c: Likewise.
7136         * cp/decl.c: Likewise.
7137         * f/com.c: Likewise.
7138         * java/class.c: Likewise.
7139
7140 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
7141
7142         * config/h8300/h8300.md: Fix comment typos.
7143
7144 2004-02-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7145
7146         * config/mips/t-iris6gld: Renamed to ...
7147         * config/mips/t-irix-gld: ... this.
7148         * config.gcc (mips-sgi-irix6*): Reflect this
7149         (mips-sgi-irix5*): Use it with GNU ld.
7150
7151         * config/mips/irix6-crti.asm, config/mips/irix6-crtn.asm: Renamed
7152         to ...
7153         * config/mips/irix-crti.asm, config/mips/irix-crtn.asm: ... this.
7154         * config/mips/t-irix-gld: Reflect this.
7155         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
7156
7157         * config/mips/iris5gld.h: New file.
7158         * config.gcc (mips-sgi-irix5*): Use it with GNU ld.
7159         Only use collect2 without gas.
7160
7161         * config/mips/iris6.h (IRIX6_STARTFILE_SPEC, IRIX6_ENDFILE_SPEC):
7162         Renamed to IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
7163         (STARTFILE_SPEC, ENDFILE_SPEC, SUBTARGET_EXTRA_SPECS): Reflect this.
7164         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
7165
7166         * config/mips/iris6.h (SUBTARGET_EXTRA_SPECS): Moved ...
7167         * config/mips/iris5.h: ... here.
7168
7169         * config/mips/iris5.h (STARTFILE_SPEC, ENDFILE_SPEC): Renamed to
7170         IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
7171         (STARTFILE_SPEC, ENDFILE_SPEC): Define.
7172
7173         * config/mips/iris5gas.h (STARTFILE_SPEC, ENDFILE_SPEC): Simplify
7174         using irix_startfile_spec, irix_endfile_spec.
7175
7176 2004-02-16  Gunther Nikl  <gni@gecko.de>
7177
7178         * config/m68k/m68k.c: Remove obsolete support for HPUX_ASM.
7179
7180 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
7181
7182         * config/h8300/h8300.c (h8300_expand_prologue): Don't generate
7183         insns by hand.
7184
7185 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7186
7187         * cfghooks.c (split_edge): Speed up updating of dominators.
7188
7189 2004-02-17  Mark Mitchell  <mark@codesourcery.com>
7190
7191         PR c++/11326
7192         * c-common.c (flag_abi_version): Remove.
7193         * c-common.h (flag_abi_version): Likewise.
7194         * c-opts.c (c_common_handle_option): Remove OPT_fabi_version case.
7195         * c.opt (fabi-version): Remove.
7196         * calls.c (expand_call): Always pass a function type to
7197         struct_value_rtx.  Use convert_memory_address.
7198         * common.opt (fabi-version): Add it.
7199         * flags.h (flag_abi_version): Likewise.
7200         (abi_version_at_least): New macro.
7201         * opts.c (common_handle_option): Add OPT_fabi_version.
7202         * toplev.c (flag_abi_version): Define it.
7203         * config/ia64/ia64.c (ia64_struct_retval_addr_is_first_parm_p):
7204         New function.
7205         (ia64_output_mi_thunk): Use it.
7206         (ia64_struct_value_rtx): Likewise.
7207
7208 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
7209
7210         * config/h8300/h8300.c (h8300_emit_stack_adjustment):
7211         Don't generate insns by hand.
7212
7213 2004-02-17  Andrew Pinski  <pinskia@physics.uc.edu>
7214
7215         PR c++/14178
7216         * doc/invoke.texi (fabi-version): The default is 2 now.
7217
7218 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7219
7220         * loop-iv.c: New file.
7221         * Makefile.in (loop-iv.o): New.
7222         * basic_block.h (FOR_BB_INSNS, FOR_BB_INSNS_REVERSE): New macros.
7223         * cfgloop.c (fill_sons_in_loop, get_loop_body_in_dom_order,
7224         num_loop_branches): New functions.
7225         * cfgloop.h (get_loop_body_in_dom_order, num_loop_branches,
7226         iv_analysis_loop_init, iv_get_reaching_def, iv_analyse, get_iv_value,
7227         find_simple_exit, iv_number_of_iterations, iv_analysis_done,
7228         get_simple_loop_desc, free_simple_loop_desc): Declare.
7229         (simple_loop_desc): New inline function.
7230         (struct rtx_iv, struct niter_desc): New.
7231         * cfgloopmanip.c (loopify): Specify semantics more precisely.
7232         * expr.c (force_operand): Handle subregs of expressions created by
7233         loop unroller.
7234         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Move
7235         parts of the initialization to toplev.c
7236         * loop-unroll.c (loop_exit_at_end_p): New.
7237         (unroll_and_peel_loops): Call iv_analysis_done.
7238         (decide_peel_once_rolling, decide_peel_completely,
7239         decide_unroll_stupid, decide_unroll_constant_iterations,
7240         decide_unroll_runtime_iterations, decide_peel_simple,
7241         peel_loop_simple, unroll_loop_stupid, unroll_loop_constant_iterations,
7242         unroll_loop_runtime_iterations): Use new simple loop analysis.
7243         * loop-unswitch.c (compare_and_jump_seq): New.
7244         (may_unswitch_on_p): Renamed to ...
7245         (may_unswitch_on): Use new iv analysis.
7246         (reversed_condition): Export.
7247         (unswitch_single_loop, unswitch_loop): Use new iv analysis.
7248         * predict.c (estimate_probability): Use new simple loop analysis.
7249         * rtl.h (get_mode_bounds, reversed_condition,compare_and_jump_seq,
7250         canon_condition, simplify_using_condition): Declare.
7251         * stor-layout.c (get_mode_bounds): New.
7252         * toplev.c (rest_of_handle_loop2): Some parts of
7253         initialization/finalization moved here from loop-init.c.
7254
7255 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
7256
7257         * config/h8300/h8300.h (FIXED_REGISTERS): Add the soft frame
7258         pointer.
7259         (CALL_USED_REGISTERS): Likewise.
7260         (REG_ALLOC_ORDER): Likewise.
7261         (REG_CLASS) <GENERAL_REGS>: Likewise.
7262
7263 2004-02-16  Geoffrey Keating  <geoffk@apple.com>
7264
7265         * doc/md.texi (Insn Canonicalizations): Document left-chaining
7266         in associative operators.
7267         * rtlanal.c (commutative_operand_precedence): Create some new
7268         variables.  Prefer a commutative operand on the left, then
7269         binary expressions, then NEG and NOT.
7270
7271 2004-02-16  Matthias Klose  <doko@debian.org>
7272
7273         * config/t-slibgcc-elf-ver: Define SHLIB_NAME and SHLIB_SONAME
7274         in terms of SHLIB_SOVERSION.
7275         * config/m68k/t-slibgcc-elf-ver: New file.
7276         * config/pa/t-slibgcc-elf-ver: New file.
7277         * config.gcc (m68k-linux, parisc-linux): Use them when not
7278         sjlj exceptions are not configured.
7279
7280 2004-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
7281
7282         * config/sparc/sparc.c (get_pc_symbol_name): Mark with GTY(()).
7283
7284 2004-02-16  Zack Weinberg  <zack@codesourcery.com>
7285
7286         * sdbout.c (sdb_debug_hooks): Correct the type_decl entry.
7287
7288 2004-02-16  Joseph S. Myers  <jsm@polyomino.org.uk>
7289
7290         * doc/sourcebuild.texi: Mention backends.html.
7291
7292 2004-02-16  Kazu Hirata  <kazu@cs.umass.edu>
7293
7294         * c-decl.c, c-ppoutput.c, cpphash.h, cpplib.h, dbxout.c,
7295         line-map.c, line-map.h, var-tracking.c: Fix comment
7296         formatting.
7297
7298 2004-02-16  Richard Henderson  <rth@redhat.com>
7299
7300         * cse.c (cse_insn): Don't lose REG_NON_LOCAL_GOTO note.
7301
7302         * fold-const.c (operand_equal_p): Fix VECTOR_CST comparison.
7303
7304 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
7305
7306         * config/h8300/h8300.md: Remove unnecessary parallels from
7307         all define_insn and define_split patterns.
7308
7309 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
7310
7311         * config/h8300/h8300.md: Remove explicit (set_attr "cc"
7312         "clobber").
7313
7314 2004-02-15  Bernardo Innocenti  <bernie@develer.com>
7315
7316         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Restore support for
7317         '%#'.
7318
7319 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
7320
7321         * config/ia64/ia64.c, config/mips/mips.c,
7322         config/mmix/mmix-modes.def: Fix comment typos.
7323
7324 2004-02-15  Roger Sayle  <roger@eyesopen.com>
7325
7326         * c-common.h (GET_DIRECTIVE_LINE): Remove unused macro.
7327         (get_directive_line): Remove unused function prototype.
7328
7329 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
7330
7331         * tree-inline.c (copy_body_r): Do not replace ret_label.
7332
7333 2004-02-14  Jan Hubicka  <jh@suse.cz>
7334
7335         * i386.c (x86_four_jump_limit): New variable.
7336         (k8_avoid_jump_misspredicts): Rename to ...
7337         (ix86_avoid_jump_misspredicts): .. this one.
7338         (ix86_pad_returns): Break out from ...
7339         (ix86_reorg): ... this one; do ix86_avoid_jump_misspredicts when asked
7340         to.
7341         * i386.h (TARGET_FOUR_JUMP_LIMIT): New macro.
7342
7343 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
7344
7345         * emit-rtl.c (set_decl_incoming_rtl): Check whether the 0th element of
7346         PARALLEL is NULL.
7347
7348 2004-02-14  Per Bothner  <per@bothner.com>
7349
7350         * fix-header.c (line_table):  Move local variable in main to global.
7351         * scan.h (line_table):  Use it.
7352         * scan-decls.c (scan_decls):  Need to call linemap_lookup on token's
7353         line (recently renamed to src_loc) before calling recognized_function.
7354
7355 2004-02-14  Matt Kraai  <kraai@alumni.cmu.edu>
7356
7357         * Makefile.in: Fix comment typos.
7358
7359 2004-02-14  Olivier Hainque  <hainque@act-europe.fr>
7360
7361         * loop.c (check_dbra_loop): Use gen_int_mode instead of GEN_INT
7362         for start_value when it is directly moved into reg, and factorize
7363         the retrieval of GET_MODE (reg).
7364
7365 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
7366
7367         * config/mips/mips-protos.h (mips_load_got_page): Delete.
7368         (mips_load_got_global): Delete.
7369         (mips_gotoff_page): Declare.
7370         * config/mips/mips.md (UNSPEC_LOAD_GOT): New constant.
7371         (*xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i): Build an
7372         UNSPEC_LOAD_GOT pattern rather than a MEM.
7373         (*load_got[sd]i): New patterns.
7374         * config/mips/mips.c (mips_got_alias_set, mips_load_got): Delete.
7375         (mips_load_got_page, mips_load_got_global): Delete.
7376         (mips_gotoff_page): New function.
7377         (override_options): Don't initialize mips_got_alias_set.
7378
7379 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
7380
7381         * config/mips/mips.h (MASK_DEBUG_[ABEFI], TARGET_DEBUG_[ABEFI]_MODE)
7382         (TARGET_MIPS4100, TARGET_MIPS4300, TARGET_MIPS4KC, TARGET_MIPS5KC)
7383         (TARGET_SB1, TUNE_SB1, TUNE_SR71K, BIGGEST_MAX_ARGS_IN_REGISTERS)
7384         (GO_PRINTF, GO_PRINTF2, GO_DEBUG_RTX, DFMODE_NAN, SFMODE_NAN): Delete.
7385         (TARGET_SWITCHES): Remove MASK_DEBUG_[ABEFI].
7386         * config/mips/mips.c: Fix some overly-long lines.
7387         (SINGLE_WORD_MODE_P, PIC_OFFSET_TABLE_MASK): Delete.
7388         (init_cumulative_args): Remove TARGET_DEBUG_E_MODE handling.
7389
7390 2004-02-13  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7391
7392         * configure.ac: Search for as, ld below libexec/gcc.
7393         * configure: Regenerate.
7394
7395 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
7396
7397         * config/arm/mmintrin.h (_mm_setwcx): Reverse arguments in call to
7398         __builtin_arm_setwcx ().
7399         * config/arm/arm.c (arm_expand_builtin): Generate operands
7400         correctly and reverse their order in call to gen_iwmmxt_tmcr ().
7401
7402 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
7403
7404         * config/arm/arm.c (bdesc_2arg): Correct builtin names "wmulsh"
7405         and "wmuluh" to "wmulsm" and "wmulum", respectively.
7406         * config/arm/arm.h (enum arm_builtins): Rename enumerators to
7407         ARM_BUILTIN_WMULSM and ARM_BUILTIN_WMULUM.
7408         * config/arm/mmintrin.h (_mm_mulhi_pi16): Update intrinsic call.
7409         (_mm_mulhi_pu16): Likewise.
7410
7411 2004-02-13  Zack Weinberg  <zack@codesourcery.com>
7412
7413         * xcoffout.c (xcoff_assign_fundamental_type_number): Check
7414         DECL_NAME != 0 before dereferencing.
7415
7416 2004-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
7417
7418         * config/s390/s390-protos.h (s390_output_symbolic_const): Remove.
7419         (s390_output_addr_const_extra): Declare.
7420         (s390_output_pool_entry): Remove FILE * argument.
7421         * config/s390/s390.c (s390_output_symbolic_const): Remove.
7422         (s390_output_addr_const_extra): New function.
7423         (print_operand_address): Call output_addr_const instead of
7424         s390_output_symbolic_const.
7425         (print_operand): Likewise.
7426         (s390_output_pool_entry): Use assemble_integer for symbolic constants.
7427         Remove FILE * argument.
7428         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Define.
7429         * config/s390/s390.md ("*pool_entry"): Adapt s390_output_pool_entry
7430         call.
7431
7432 2004-02-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7433
7434         * cfgloopanal.c (mark_irreducible_loops): Rewriten.
7435         (struct edge, struct vertex, struct graph): New.
7436         (dump_graph, new_graph, add_edge, dfs, check_irred, for_each_edge,
7437         free_graph): New functions.
7438
7439 2004-02-12  Chris Demetriou  <cgd@broadcom.com>
7440
7441         * config/mips/mips.md (casesi_internal, casesi_internal_di):
7442         Use ".set macro" to avoid warnings about multi-instruction
7443         macros, since they're intentional.
7444
7445 2004-02-12  Geoffrey Keating  <geoffk@apple.com>
7446
7447         * config/darwin.h: Add include guards.  Remove old, now incorrect,
7448         comment about STANDARD_EXEC_PREFIX.
7449
7450         * Makefile.in (install-man): Use $(CPP_INSTALL_NAME) and
7451         $(GCOV_INSTALL_NAME) to install manpages.  Remove generic rule
7452         for installing .1 manpages.  Add rules for installing cpp
7453         and gcov manpages under their installed names.
7454
7455 2004-02-12  Alexandre Oliva  <aoliva@redhat.com>
7456
7457         * configure.ac (gcc_cv_ld): Don't set to LD if target is not
7458         host, but try LD_FOR_TARGET first.
7459         * configure: Rebuilt.
7460
7461 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
7462
7463         * dbxout.c: Move declaration of dbxout_type_decl outside
7464         #ifdef DBX_DEBUGGING_INFO.
7465         * c-parse.in: Don't give the asmdef production a type.
7466
7467 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
7468
7469         * debug.h (struct gcc_debug_hooks): Add type_decl field.
7470         (debug_nothing_tree_int): Prototype.
7471         (dwarf_debug_hooks): Delete, unused.
7472         * debug.c (do_nothing_debug_hooks): Update.
7473         (debug_nothing_tree_int): New function.
7474         * langhooks.h (struct lang_hooks_for_decls):
7475         Remove builtin_type_decls field.
7476         * langhooks-def.h (LANG_HOOKS_BUILTIN_TYPE_DECLS): Delete.
7477         (LANG_HOOKS_DECLS): Update.
7478         * toplev.c (rest_of_decl_compilation, rest_of_type_compilation):
7479         Use debug_hooks->type_decl.
7480         * dbxout.c (preinit_symbols): New static.
7481         (dbx_debug_hooks, xcoff_debug_hooks): Update.
7482         (dbxout_init): Don't call DBX_OUTPUT_STANDARD_TYPES or
7483         lang_hooks.decls.builtin_type_decls.  Do scan preinit_symbols
7484         for symbols to output.
7485         (dbxout_type_decl): New function.
7486         (dbxout_symbol): If called before dbxout_init has run, queue
7487         the symbol for later.  Apply DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER
7488         to TYPE_DECLs before emitting them.
7489         * xcoffout.c (assign_type_number): Delete.
7490         (xcoff_type_numbers): New static table.
7491         (xcoff_assign_fundamental_type_number): New function.
7492         * xcoffout.h: Define DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER, not
7493         DBX_OUTPUT_STANDARD_TYPES.  Remove unnecessary #ifdefs.
7494         * sdbout.c: Include varray.h.
7495         (deferred_global_decls): New static.
7496         (sdb_debug_hooks): Update.
7497         (sdbout_global_decl): If we can't emit something right now,
7498         remember it in deferred_global_decls.
7499         (sdbout_finish): Just scan deferred_global_decls; don't call getdecls.
7500         (sdbout_init): Initialize deferred_global_decls.
7501         * Makefile.in: Update dependencies of sdbout.o.
7502         * dwarf2out.c (dwarf2out_type_decl): New function.
7503         (dwarf2_debug_hooks): Update.
7504         * vmsdbgout.c (vmsdbg_debug_hooks): Update.
7505         * c-decl.c (getdecls): Just return 0.
7506         (check_for_loop_decls): Don't use getdecls.
7507         (record_builtin_type): Call debug_hooks->type_decl on the TYPE_DECL.
7508         * c-objc-common.c (c_objc_common_finish_file): Don't use getdecls.
7509
7510 2004-02-12  Ulrich Weigand  <uweigand@de.ibm.com>
7511
7512         * config/s390/s390.c (s390_sched_reorder2): Remove.
7513         (TARGET_SCHED_REORDER2): Do not redefine.
7514
7515 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
7516
7517         * c-parse.in (maybe_type_qual): Delete.
7518         (maybe_volatile, simple_asm_expr, asmdef, asm_stmt)
7519         (asm_argument): New grammar rules.
7520         (extdef_1): Use asmdef.
7521         (maybeasm): Move down with other asm rules; use simple_asm_expr.
7522         (xexpr): Move up with other expression rules.
7523         (stmt): Use asm_stmt.
7524
7525         * c-typeck.c (build_asm_expr): New function - body mostly
7526         pulled from build_asm_stmt.
7527         (build_asm_stmt): Just handle tacking on the volatile qualifier.
7528         * c-tree.h (build_asm_expr, build_asm_stmt): Update prototypes.
7529
7530 2004-02-12  Richard Sandiford  <rsandifo@redhat.com>
7531
7532         PR bootstrap/13617
7533         * config/mips/mips-protos.h (mips_output_aligned_decl_common): Declare.
7534         (mips_declare_object): Make variadic.
7535         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Use
7536         mips_output_aligned_decl_common.
7537         * config/mips/mips.c (mips_output_aligned_decl_common): New function.
7538         (mips_declare_object): Make variadic.
7539
7540 2004-02-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7541
7542         * function.c (update_epilogue_consts): Teach about binary operations.
7543
7544         * emit-rtl.c (set_mem_attributes_minus_bitpos): Don't kill
7545         previous MEM_VOLATILE in REF.
7546         * function.c (fixup_var_refs): Save volatile_ok and set to 1.
7547         * expr.c (emit_block_move_via_movstr): Save and restore volatile_ok.
7548
7549 2004-02-12  Gunther Nikl  <gni@gecko.de>
7550
7551         * config.gcc: Restore support for m68k-openbsd.
7552
7553 2004-02-12  Jan Hubicka  <jh@suse.cz>
7554
7555         * tree-optimize.c (tree_rest_of_compilation): Do not release
7556         DECL_ARGUMENTS.
7557
7558 2004-02-11  Matt Kraai  <kraai@alumni.cmu.edu>
7559
7560         * doc/install.texi: Fix the spelling of "explicitly".
7561
7562 2004-02-11  Eric Christopher  <echristo@redhat.com>
7563
7564         * cppcharset.c (_cpp_interpret_string_notranslate): Rename and
7565         duplicate argument structure of cpp_interpret_string.
7566         * cpphash.h: Move prototype...
7567         * cpplib.h: Here.
7568         * cpplib.c: Fix calls to match new function signature.
7569
7570 2004-02-11  Joseph S. Myers  <jsm@polyomino.org.uk>
7571
7572         PR c/456
7573         * cppexp.c (num_binary_op): Don't allow comma operators in #if
7574         constant expressions at all outside C99 mode if pedantic.
7575
7576 2004-02-11  Uros Bizjak  <uros@kss-loka.si>
7577
7578         * optabs.h (enum optab_index): Add new OTI_log10 and OTI_log2.
7579         (log10_optab, log2_optab): Define corresponding macros.
7580         * optabs.c (init_optabs): Initialize log10_optab and log2_optab.
7581         * genopinit.c (optabs): Implement log10_optab and log2_optab
7582         using log10?f2 and log2?f2 patterns.
7583         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG10{,F,L}
7584         using log10_optab, and BUILT_IN_LOG2{,F,L} using log2_optab.
7585         (expand_builtin): Expand BUILT_IN_LOG10{,F,L} and BUILT_IN_LOG2{,F,L}
7586         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
7587
7588         * config/i386/i386.md (log10sf2, log10df2, log10xf2, log2sf2,
7589         log2df2, log2xf2): New patterns to implement log10, log10f, log10l,
7590         log2, log2f and log2l built-ins as inline x87 intrinsics.
7591
7592 2004-02-11  Richard Henderson  <rth@redhat.com>
7593
7594         PR target/1532
7595         * flow.c (insn_dead_p): A clobber of a dead hard register is a
7596         dead insn after reload.
7597
7598 2004-02-11  Ulrich Weigand  <uweigand@de.ibm.com>
7599
7600         * tree.h (frame_base_decl): Add GTY marker.
7601         * var-tracking.c (frame_base_decl): Likewise.
7602
7603 2004-02-11  Daniel Berlin  <dberlin@dberlin.org>
7604
7605         * dwarf2out.c (output_loc_list): Remove no longer necessary, and now
7606         incorrect, hunk.
7607         (add_location_or_const_value_attribute): Use text_section_label,
7608         not TEXT_SECTION_NAME.
7609
7610 2004-02-11  Per Bothner  <per@bothner.com>
7611
7612         Represent column numbers using line-map's source_location.
7613         The "next available source_location" is now managed internally by
7614         line-maps.c rather than by clients.
7615         * line-map.h (struct line_map):  New field column_bits.
7616         <from_line>:  Rename field to start_location.
7617         (struct line_maps):  New fields highest_location and max_column_hint.
7618         (linemap_check_files_exited):  New declaration.
7619         (linemap_line_start):  New declaration.
7620         (linemap_add):  Remove from_line parameter; use highest_location field.
7621         (SOURCE_LINE, LAST_SOURCE_LINE):  Modify to use column_bits.
7622         (SOURCE_COLUMN, LAST_SOURCE_LINE_LOCATION):  New macros.
7623         (CURRENT_LINE_MAP):  Remove macro.
7624         (linemap_position_for_column):  New inline function.
7625         * line-map.c (linemap_init):  Clear new fields.
7626         (linemap_check_files_exited):  New function, extracted from ...
7627         (linemap_free):  Use linemap_check_files_exited.
7628         (linemap_add):  Remove from_line parameter.  Various updates.
7629         (linemap_line_start):  New function.
7630         (linemap_lookeup):  Update for new field names.
7631         * cpphash.h (struct cpp_reader) <map>:  Field removed.  Because
7632         linemap_position_for_column may unpredictably change the current map,
7633         it is cleaner and simpler for us to not cache it in cpp_reader.
7634         (struct cpp_buffer):  New sysp field.
7635         Changed warned_cplusplus_comments and from_stage3 to bitfields.
7636         * cppinit.c (cpp_read_min_file):  pfile->map no longer exists.
7637         * cpplib.c (do_line, do_linemarker, _cpp_do_file_change):  Get
7638         current map using linemap_lookup.
7639         (do_linemarker):  Also set buffer's sysp field.
7640         (destringize_and_run):  No longer need to decrement current line.
7641         * cppfiles.c (_cpp_stack_file):  Set sysp from and in buffer.
7642         (search_path_head, open_file_failed):  Use buffer's sysp.
7643         (cpp_make_system_header):  Get current map using linemap_lookup.
7644         Also set buffer's sysp flag.
7645         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use linemap_lookup.
7646         * cpphash.h (CPP_INCREMENT_LINE):  New macro.
7647         (struct cpp_buffer):  Moved fields saved_cur, saved_rlimit to ...
7648         (struct cpp_reader):  ... and adding saved_line_base field.
7649         * cpptrad.c (_cpp_overlay_buffer, _cpp_remove_overlay):
7650         Update accordingly.  Don't adjust line.
7651         (_cpp_scan_out_logical_line):  Use CPP_INCREMENT_LINE.
7652         * cpphash.c (CPP_IN_SYSTEM_HEADER):  Replaced macro by ...
7653         (cpp_in_system_header):  ... new inline function, using buffer's sysp.
7654         * cpperror.c (_cpp_begin_message):  Update to use cpp_in_system_header.
7655         * cpplex.c (_cpp_lex_direct):  Likewise.
7656         * cppmacro.c (_cpp_builtin_macro_text):  Likewise.
7657         * cppmacro.c (_cpp_create_definition):  Use buffer's sysp field.
7658         * cpplib.h (struct cpp_token):  Rename line field to src_loc.
7659         Remove col field as it is now subsumed by src_loc.
7660         * cpperror.c:  Update various field, parameter, and macro names.
7661         (print_location):  If col==0, try SOURCE_COLUMN of line.
7662         (cpp_error):  Use cur_token's src_loc field, rather than line+col.
7663         * cpplib.c (do_diagnostic):  Token's src_loc fields replaces line+col.
7664         * cpplex.c (_cpp_process_line_notes, _cpp_lex_direct,
7665         _cpp_skip_block_comment):  Use CPP_INCREMENT_LINE.
7666         (_cpp_temp_token):  Replace cpp_token's line+col fields by src_loc.
7667         (_cpp_get_fresh_line):  Don't need to adjust line for missing newline.
7668         (_cpp_lex_direct):  Use linemap_position_for_column.
7669         * c-ppoutput.c (maybe_print_line, print_line):  Don't take map
7670         parameter.  Instead get it from the line_table global.  Adjust callers.
7671         (print):  Remove map field.  Replace line field to src_line.
7672         (init_pp_output, account_for_newlines, maybe_print_line):  Adjust.
7673         (cb_line_change):  Use SOURCE_COLUMN.  Minor optimizations.
7674         (pp_file_change):  Use MAIN_FILE_P since we cannot checked print.map.
7675         Use LAST_SOURCE_LINE_LOCATION to "catch up" after #include.
7676         * cpptrad.c (copy_comment):  Rename variable.
7677         * c-lex.c (map):  Remove static variable, for same reason we removed
7678         cpp_reader's map field.
7679         (cb_line_change, cb_def_pragma, cb_define, cb_undef):  Hence we need
7680         to call linemap_lookup.
7681         (cb_line_change):  Token's line field replaced by src_loc.
7682         (fe_file_change):  Use MAINFILE_P and LAST_SOURCE_LINE macros.
7683         Don't save new_map.
7684
7685         * cpphash.h, cpperror.c, cpplib.h:  Some renames of fileline to
7686         source_location.
7687
7688 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
7689
7690         * config/rs6000/altivec.md (*movv4si_internal): At least one
7691         operand must be register_operand.
7692         (*movv8hi_internal1): Likewise.
7693         (*movv16qi_internal1): Likewise.
7694         (*movv4sf_internal1): Likewise.
7695
7696 2004-02-10  Aldy Hernandez  <aldyh@redhat.com>
7697
7698         * config/rs6000/spe.md ("*movv2si_internal"): Check for register
7699         operand.
7700         (movv4hi_internal): Same.
7701         (movv2sf_internal): Same.
7702         (movv1di_internal): Same.
7703
7704 2004-02-11  Thiemo Seufer  <seufer@csv.ica.uni-stuttgart.de>
7705
7706         * config/mips/mips.h (TARGET_OLDABI): Define. Use TARGET_NEWABI and
7707         TARGET_OLDABI consistently.
7708         * config/mips/mips.c (function_arg,mips_setup_incoming_varargs,
7709         mips_va_arg,override_options,compute_frame_size,
7710         mips_initial_elimination_offset,mips16_fp_args,build_mips16_call_stub
7711         ,mips_return_in_memory,mips_strict_argument_naming): Use TARGET_NEWABI
7712         and TARGET_OLDABI consistently.
7713         * config/mips/mips.md (exception_receiver): Likewise.
7714         * config/mips/linux64.h: Likewise.
7715
7716 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
7717
7718         * gcc/config/rs6000/rs6000.c (rs6000_override_options)
7719         Set AltiVec ABI and vrsave as default for ppc64 linux.
7720         (init_cumulative_args): Post error, if try to return
7721         value in AltiVec register without enable AltiVec.
7722         (function_arg_advance): Ditto for passing arguments.
7723
7724 2004-02-11  Richard Sandiford  <rsandifo@redhat.com>
7725
7726         * emit-rtl.c (mark_label_nuses): Check that a LABEL_REF refers to
7727         a label before updating its usage count.
7728
7729 2004-02-10  Matt Kraai  <kraai@alumni.cmu.edu>
7730
7731         * doc/install.texi: Remove extra cd.
7732
7733 2004-02-10  Ziemowit Laski  <zlaski@apple.com>
7734
7735         * c-common.c (vector_size_helper): Remove; call
7736         reconstruct_complex_type() instead.
7737         * tree.c (reconstruct_complex_type): New function
7738         (formerly vector_size_helper() in c-common.c).
7739         (make_vector): Make externally visible.
7740         * tree.h (reconstruct_complex_type, make_vector): Add prototypes.
7741
7742 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
7743
7744         * config/h8300/h8300-protos.h: Add a prototype for
7745         h8300_regs_ok_for_stm.
7746         * config/h8300/h8300.c (h8300_regs_ok_for_stm): New.
7747         * config/h8300/h8300.md (stm_h8300s_2_advanced,
7748         stm_h8300s_2_normal, stm_h8300s_2, stm_h8300s_3_advanced,
7749         stm_h8300s_3_normal, stm_h8300s_3, stm_h8300s_4_advanced,
7750         stm_h8300s_4_normal, stm_h8300s_4, ldm_h8300s_2_advanced,
7751         ldm_h8300s_2_normal, ldm_h8300s_2, ldm_h8300s_3_advanced,
7752         ldm_h8300s_3_normal, ldm_h8300s_3, ldm_h8300s_4_advanced,
7753         ldm_h8300s_4_normal, ldm_h8300s_4): Use
7754         h8300_regs_ok_for_stm().
7755
7756 2004-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
7757
7758         PR c/14088
7759         * real.c (real_from_string): Look for 'X' as well as 'x' in
7760         hexfloat strings.
7761
7762 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
7763
7764         * config/h8300/h8300.md: Remove an incorrect comment about
7765         peephole2.  Add comments.
7766
7767 2004-02-10  Josef Zlomek  <zlomekj@suse.cz>
7768
7769         PR/14058
7770         * emit-rtl.c (set_decl_incoming_rtl): New.
7771         * tree.h (set_decl_incoming_rtl): New.
7772         * function.c (assign_parms): Use set_decl_incoming_rtl for setting
7773         DECL_INCOMING_RTL.
7774         * ada/misc.c (adjust_decl_rtl): Likewise.
7775
7776 2004-02-10  Per Bothner  <per@bothner.com>
7777
7778         * c-opts.c (c_common_post_options):   Don't emit working directory
7779         in cpp output if -P was specified.
7780
7781 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
7782
7783         PR c/14092
7784         * fold-const.c (fold) <NEGATE_EXPR>: Convert result of
7785         negate_expr back to the original type.
7786
7787 2004-02-10  Alan Modra  <amodra@bigpond.net.au>
7788
7789         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Don't
7790         bump retaddr here.
7791
7792 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
7793
7794         * rtl.h (schedule_insns, schedule_ebbs, fix_sched_param,
7795         gen_lowpart_SUBREG): Move under the file in which they
7796         are actually declared.
7797
7798 2004-02-10  Arnaud Charlet  <charlet@act-europe.fr>
7799
7800         * doc/sourcebuild.texi: Add libada documentation.
7801
7802         * doc/install.texi: Update documentation on Ada build, now
7803         that the GNAT lib and tools are built automatically.
7804
7805 2004-02-10  Richard Sandiford  <rsandifo@redhat.com>
7806
7807         * config/mips/mips.h (TARGET_GPWORD): Return false for TARGET_NEWABI
7808         && TARGET_IRIX.
7809
7810 2004-02-09  Ziemowit Laski  <zlaski@apple.com>
7811
7812         * objc/objc-act.c (get_super_receiver): Move '#ifdef OBJCPLUS'
7813         boundaries outside build_component_ref() call (a macro in ObjC++).
7814
7815 2004-02-09  Bob Wilson  <bob.wilson@acm.org>
7816
7817         * config/xtensa/xtensa-protos.h (xtensa_copy_incoming_a7): Update.
7818         (init_cumulative_args): Likewise.
7819         (a7_overlap_mentioned_p): Delete prototype.
7820         * config/xtensa/xtensa.c (struct machine_function): Replace
7821         incoming_a7_copied field with need_a7_copy and vararg_a7 flags.
7822         Add set_frame_ptr_insn field.
7823         (xtensa_emit_move_sequence): Update call to xtensa_copy_incoming_a7.
7824         (xtensa_copy_incoming_a7): Rewrite to check need_a7_copy flag and check
7825         if the operand is an argument in a7.  If so, copy a7 to a new pseudo
7826         at the function entry and replace the operand with the pseudo.
7827         (init_cumulative_args): Remove unused arguments.  Add new "incoming"
7828         argument and record this flag in CUMULATIVE_ARGS.
7829         (function_arg): Remove result_mode and special-case code to handle
7830         arguments in a7.  Instead, set need_a7_copy flag when there is an
7831         incoming argument in a7.
7832         (xtensa_expand_prologue): Remove code to search for set_frame_ptr insn
7833         and use the value recorded in cfun->machine->set_frame_ptr_insn.
7834         (xtensa_builtin_saveregs): Check for negative gp_left value.  Set
7835         need_a7_copy and vararg_a7 flags.  Use move_block_from_reg instead of
7836         special-case code.
7837         (a7_overlap_mentioned_p): Delete.
7838         * config/xtensa/xtensa.h (CUMULATIVE_ARGS): Add "incoming" flag.
7839         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Remove useless
7840         arguments to init_cumulative_args and pass "incoming" flag instead.
7841         (BLOCK_REG_PADDING): Delete.
7842         * config/xtensa/xtensa.md (movdi, movsf, movdf): Remove unnecessary
7843         checks for reload_in_progress and reload_completed.  Update calls to
7844         xtensa_copy_incoming_a7.
7845         (ashlsi3): Rename existing insn to ashlsi3_internal.  Add expander
7846         to call xtensa_copy_incoming_a7.
7847
7848 2004-02-09  DJ Delorie  <dj@redhat.com>
7849
7850         * config/i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): No
7851         longer modify standard_exec_prefix, standard_bindir_prefix, or
7852         standard_startfile_prefix.
7853
7854 2004-02-09  James E Wilson  <wilson@specifixinc.com>
7855
7856         PR c++/11295
7857         * c-common.c (c_expand_expr, case STMT_EXPR): Change expand_expr call
7858         to expand_expr_real call, and pass in alt_rtl as last argument.
7859
7860         PR libstdc++/5625
7861         * builtin-types.def (BT_WORD, BT_FN_WORD_PTR): New.
7862         * builtins.c (expand_builtin): Handle BUILT_IN_EXTEND_POINTER.
7863         * builtins.def (BUILT_IN_EXTEND_POINTER): New.
7864         * except.c (expand_builtin_extend_pointer): New.
7865         * except.h (expand_builtin_extend_pointer): Declare.
7866
7867 2004-02-09  David Edelsohn  <edelsohn@gnu.org>
7868
7869         * config/rs6000/rs6000.c (rs6000_emit_move): Remove splitting slow
7870         unaligned loads and stores.
7871
7872 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7873
7874         * config/mips/iris5.h (BSS_SECTION_ASM_OP): Define.
7875         * config/mips/iris6.h (BSS_SECTION_ASM_OP): Undef.
7876
7877         * config/mips/iris6.h (TARGET_ASM_NAMED_SECTION): Moved ...
7878         * config/mips/iris5.h: ... here.
7879         * config/mips/iris5gas.h (TARGET_ASM_NAMED_SECTION): Remove.
7880
7881         * config/mips/iris6.h (EXTRA_SECTION_FUNCTIONS): Move ...
7882         * config/mips/iris5.h: ... here.
7883
7884 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7885
7886         * configure.ac: Remove default executable files before AC_PROG_CC.
7887         * configure: Regenerate.
7888
7889 2004-02-09  Kazu Hirata  <kazu@cs.umass.edu>
7890
7891         PR target/13721
7892         * config/h8300/h8300.c (byte_reg): Call abort() if asked to
7893         print a operand other than a register.
7894
7895 2004-02-09  Roger Sayle  <roger@eyesopen.com>
7896
7897         * fold-const.c (fold) <NOP_EXPR>: Use the original type conversion
7898         tree code rather than call fold_convert, which doesn't specify a
7899         default floating point to integer conversion.
7900
7901 2004-02-08  Bernardo Innocenti  <bernie@develer.com>
7902
7903         * config/m68k/m68k.c, config/m68k/m68k.md (SGS, SGS_CMP_ORDER): Remove
7904         code to support SGS assembler.  Reformat adjacent code where possible.
7905         * config/m68k/m68k.c (switch_table_difference_label_flag): Remove
7906         definition.
7907         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Remove support
7908         for '%#'.
7909         * config/m68k/linux.h, config/m68k/m68k.c,
7910         * config/m68k/math-68881.h: Replace `%#' with `#' in inline asm
7911         macros and asm_printf() format strings.
7912         * config/m68k/m68kelf.h (ASM_OUTPUT_CASE_END): Remove macro definition.
7913         * config/m68k/linux.h: Update copyright.
7914         * config/m68k/linux.h, config/m68k/m68k.c: Remove traling whitespace.
7915
7916 2004-02-08  Andreas Schwab  <schwab@suse.de>
7917             Bernardo Innocenti  <bernie@develer.com>
7918
7919         * config/m68k/m68k.h (REGISTER_NAMES): Prefix each name with
7920         REGISTER_PREFIX.
7921         * (M68K_FP_REG_NAME): New macro to specify an alternate name for the
7922         frame pointer register, overridable by OS targets.
7923         * (M68K_REGNAME): Macro to obtain register name for asm output,
7924         eventually replacing %a6 with M68K_FP_REG_NAME.
7925         * config/m68k/coff.h (REGISTER_NAMES): Don't redefine.
7926         * config/m68k/linux.h (REGISTER_NAMES): Likewise.
7927         * config/m68k/m68kelf.h (REGISTER_NAMES): Likewise.
7928         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Likewise.
7929         * config/m68k/m68k.c: Use M68K_REGNAME(x) in place of reg_names[x].
7930
7931 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
7932
7933         * target-def.h (TARGET_STRUCT_VALUE_RTX): Define as
7934         hook_rtx_tree_int_null.
7935         * targhooks.c (default_struct_value_rtx): Remove.
7936         * targhooks.h: Remove the prototype for
7937         default_struct_value_rtx.
7938         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
7939         config/fr30/fr30.c, config/h8300/h8300.c, config/i386/i386.c,
7940         config/ip2k/ip2k.c, config/iq2000/iq2000.c,
7941         config/m32r/m32r.c, config/mcore/mcore.c, config/mips/mips.c,
7942         config/mn10300/mn10300.c, config/pdp11/pdp11.c,
7943         config/rs6000/rs6000.c, config/s390/s390.c,
7944         config/stormy16/stormy16.c, config/v850/v850.c,
7945         config/xtensa/xtensa.c (TARGET_STRUCT_VALUE_RTX): Remove.
7946         * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document the default.
7947
7948 2004-02-08  Joseph S. Myers  <jsm@polyomino.org.uk>
7949
7950         * README.Portability: Change "ISO C89" to "ISO C90".
7951         * c-parse.in (primary, initelt): Likewise.
7952
7953 2004-02-08  Richard Sandiford  <rsandifo@redhat.com>
7954
7955         * real.c (encode_ibm_extended): Normalize the input value before
7956         converting it to a double.  Handle the case where a normal value
7957         rounds to infinity.
7958
7959 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
7960
7961         * c-objc-common.c (c_cannot_inline_tree_fn): Fix a typo in a
7962         warning.
7963         * cse.c (preferrable): Change to preferable. Update all of its
7964         callers.
7965         * genautomata.c (ainsn): Change
7966         first_ainsn_with_given_equialence_num to
7967         first_ainsn_with_given_equivalence_num.  Update all of its
7968         references.
7969
7970 2004-02-08  Jan Hubicka  <jh@suse.cz>
7971
7972         * schedule-ebb.c (schedule_ebbs): Do not allocate reg life data.
7973
7974 2004-02-07  David Edelsohn  <edelsohn@gnu.org>
7975
7976         * function.c (assign_parms): Fix formatting.
7977
7978 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
7979
7980         * default.h (PROMOTE_PROTOTYPES): Remove.
7981         * system.h (PROMOTE_FUNCTION_RETURN, PROMOTE_PROTOTYPES,
7982         STRUCT_VALUE_REGNUM, SETUP_INCOMING_VARARGS,
7983         EXPAND_BUILTIN_SAVEREGS): Poison.
7984         * target-def.h (TARGET_PROMOTE_FUNCTION_RETURN): Define as
7985         hook_bool_tree_false.
7986         (TARGET_PROMOTE_PROTOTYPES): Likewise.
7987         * target.h: Replace SETUP_INCOMING_VARARGS with
7988         targetm.calls.setup_incoming_varargs().
7989         * targhooks.c (default_promote_function_return): Remove.
7990         (default_promote_prototypes): Likewise.
7991         (default_struct_value_rtx): Always abort().
7992         (default_expand_builtin_saveregs): Always print an error
7993         message.
7994         (default_setup_incoming_varargs): Do nothing.
7995         (default_pretend_outgoing_varargs_named): Don't depend on
7996         SETUP_INCOMING_VARARGS.
7997         * targhooks.h: Remove the prototype for
7998         default_promote_function_return and
7999         default_promote_prototypes.
8000
8001 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
8002
8003         * system.h (SHARED_SECTION_ASM_OP): Poison.
8004         * varasm.c (data_section): Don't use SHARED_SECTION_ASM_OP.
8005         * doc/tm.texi (SHARED_SECTION_ASM_OP): Remove.
8006
8007 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
8008
8009         Bug 13856
8010         * c-decl.c (diagnose_mismatched_decls): Only give special
8011         treatment when olddecl is DECL_BUILT_IN, if C_DECL_INVISIBLE
8012         is also true.
8013         (merge_decls): Don't clear DECL_BUILT_IN_CLASS and
8014         DECL_FUNCTION_CODE when defining a built-in function.
8015         Don't update DECL_ESTIMATED_INSNS.
8016         * dwarf2out.c (dwarf2out_decl): Don't ignore built-in
8017         FUNCTION_DECLs.
8018         * tree.h: Delete DECL_ESTIMATED_INSNS.
8019         * tree-inline.c (struct inline_data): Delete inlined_insns field.
8020         (expand_call_inline, optimize_inline_calls): Don't update
8021         DECL_ESTIMATED_INSNS nor inlined_insns.
8022         * cgraphunit.c (cgraph_analyze_function): Don't update
8023         DECL_ESTIMATED_INSNS.
8024
8025 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
8026
8027         * c-common.c (shadow_warning): Delete.
8028         * c-common.h (free_parser_stacks, shadow_warning, sw_kind): Delete.
8029         * c-decl.c (warn_if_shadowing): Issue shadow warnings directly.
8030         * c-opts.c (c_common_parse_file): Don't call free_parser_stacks.
8031         * c-parse.in (free_parser_stacks): Delete.
8032
8033 2004-02-07  Nathanael Nerode  <neroden@gcc.gnu.org>
8034
8035         * Makefile.in, config/t-slibgcc-darwin, config/t-slibgcc-elf-ver,
8036         config/t-slibgcc-sld, config/mips/t-iris5-6, config/sh/t-linux:
8037         Use the top level mkinstalldirs, not the one in the gcc subdir.
8038         * mkinstalldirs: Remove (from the gcc subdir).
8039
8040 2004-02-07  Roger Sayle  <roger@eyesopen.com>
8041
8042         PR middle-end/13696
8043         * fold-const.c (fold_convert): New function to provide type
8044         conversion to the middle-end without using convert.
8045         (negate_expr, associate_trees, size_diffop, omit_one_operand,
8046         operand_equal_for_comparison_p, pedantic_omit_one_operand,
8047         invert_truthvalue, optimize_bit_field_compare, range_binop,
8048         decode_field_reference, make_range, build_range_check, unextend,
8049         fold_truthop, extract_muldiv_1, fold_mathfn_compare,
8050         fold_binary_op_with_conditional_arg, fold_inf_compare,
8051         fold_single_bit_test, fold, multiple_of_p): Replace all calls to
8052         convert with calls to fold_convert.
8053
8054 2004-02-07  Jan Hubicka  <jh@suse.cz>
8055
8056         * genrecog.c (find_operand): add extra argument stop.
8057         (validate_pattern): Verify that mach_dup is duplicating operand
8058         defined lexically earlier.
8059
8060 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
8061
8062         * config.gcc: Don't mention MAX_LONG_TYPE_SIZE.
8063         * system.h (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
8064         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Poison.
8065         * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
8066         config/ia64/ia64.h, config/ip2k/ip2k.h,
8067         config/iq2000/iq2000.h, config/mips/iris5.h,
8068         config/mips/mips.h, config/pa/pa-64.h, config/pa/pa.h,
8069         config/rs6000/aix51.h, config/rs6000/aix52.h,
8070         config/rs6000/darwin.h, config/rs6000/rs6000.h,
8071         config/s390/s390.h, config/sh/sh.h, config/sparc/freebsd.h,
8072         config/sparc/linux.h, config/sparc/linux64.h,
8073         config/sparc/netbsd-elf.h, config/sparc/sparc.h,
8074         config/xtensa/xtensa.h: Remove the definitions of
8075         MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE, and/or
8076         MAX_WCHAR_TYPE_SIZE.
8077         * doc/tm.texi (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
8078         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Remove.
8079
8080 2004-02-07  Stephane Carrez  <stcarrez@nerim.fr>
8081
8082         PR bootstrap/13990
8083         * config/m68hc11/m68hc11.md ("doloop_end"): Pass dummy arguments to
8084         gen_rtx_NE.
8085
8086 2004-02-07  Josef Zlomek  <zlomekj@suse.cz>
8087
8088         * var-tracking.c (vt_add_function_parameters): Surround checkings by
8089         #ifdef ENABLE_CHECKING and #endif.
8090
8091 2004-02-07  Roger Sayle  <roger@eyesopen.com>
8092
8093         * fold-const.c (negate_expr_p, negate_expr): Optimize -(A+B) into
8094         either (-A)-B or (-B)-A, if A or B is easily negated respectively.
8095         (fold) <MINUS_EXPR>: Optimize (A*C) - (B*C) -> (A-B)*C for both
8096         integer types and floating point with unsafe_math_optimizations.
8097         Add similar optimization for (A*C1) - (A*C2) -> A*(C1-C2).
8098         Optimize A - B as A + (-B), if B is easily negated.
8099
8100 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
8101
8102         * c-ppoutput.c, cfganal.c, diagnostic.h, print-rtl.c,
8103         config/darwin.c, config/darwin.h, config/ia64/ia64-c.c,
8104         config/m32r/linux.h, config/rs6000/ppc64-fp.c,
8105         config/sparc/openbsd.h, doc/makefile.texi, doc/passes.texi:
8106         Update copyright.
8107
8108 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
8109
8110         * c-ppoutput.c, var-tracking.c: Fix comment typos.
8111
8112 2004-02-06  James E Wilson  <wilson@specifixinc.com>
8113
8114         * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Only define for
8115         glibc 2.3 or better.
8116
8117 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
8118
8119         * doc/tm.texi (TARGET_FLOAT_LIB_COMPARE_RETURNS_BOOL): Change
8120         to FLOAT_LIB_COMPARE_RETURNS_BOOL.
8121
8122 2004-02-07  Alan Modra  <amodra@bigpond.net.au>
8123
8124         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Add darwin-ldouble.c.
8125         (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
8126         (SHLIB_MKMAP_OPTS): Delete.
8127         (TARGET_LIBGCC2_CFLAGS): Add -specs.
8128         (bispecs): Add rule.
8129         * config/rs6000/libgcc-ppc64.ver: New file.
8130         * config/rs6000/ppc64-fp.c (__fixtfdi, __floatditf): New functions.
8131         (__floatdidf, __floatdisf): Optimize multiply.
8132         (__fixunstfdi): New function.
8133         * config/rs6000/rs6000.c (rs6000_complex_function_value): Allow for
8134         real and imag parts larger than one register.
8135         (function_arg): Correct type of reg used when fp arg split partially
8136         to stack.
8137         * config/rs6000/darwin-ldouble.c: Protect with #if !_SOFT_FLOAT
8138         and __MACH__ or __powerpc64__.
8139
8140 2004-02-06  Roger Sayle  <roger@eyesopen.com>
8141             Ulrich Weigand  <uweigand@de.ibm.com>
8142
8143         * builtins.c (expand_builtin_signbit): Use extract_bit_field instead
8144         of gen_highpart or gen_lowpart when the floating point format is
8145         wider than the result mode.
8146
8147 2004-02-06  Andrew Pinski  <pinskia@physics.uc.edu>
8148
8149         * dwarf2out.c (loclabel_num): Move into #ifdef
8150         DWARF2_DEBUGGING_INFO.
8151
8152 2004-02-06  Ziemowit Laski  <zlaski@apple.com>
8153
8154         * objc/objc-act.c (build_super_template) the 'class' field of
8155         'struct _objc_super' shall be named 'super_class' #ifdef OBJCPLUS.
8156         (get_super_receiver): Likewise.
8157
8158 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
8159
8160         * reload1.c (check_eliminable_occurrences): Optimize the reset
8161         of can_eliminate.
8162         (eliminate_regs_in_insn): Likewise.
8163
8164 2004-02-06  Daniel Berlin <dberlin@dberlin.org>
8165             Josef Zlomek  <zlomekj@suse.cz>
8166
8167         * dwarf2out.c (struct gcc_debug_hooks): Call dwarf2out_begin_function
8168         at the beginning of function, call dwarf2out_var_location for
8169         NOTE_INSN_VAR_LOCATION note.
8170         (struct var_loc_node, struct var_loc_list_def, loclabel_num,
8171         decl_loc_table): New.
8172         (lookup_decl_loc): New function.
8173         (add_var_loc_to_decl): New function.
8174         (based_loc_descr): Added parameter can_use_fbreg, DW_OP_fbreg is used
8175         only if can_use_fbreg.
8176         (mem_loc_descriptor): Added parameter can_use_fbreg, pass it to other
8177         functions.
8178         (loc_descriptor): Likewise. Process VAR_LOCATION.
8179         (concat_loc_descriptor): Call loc_descriptor with can_use_fbreg == true.
8180         (loc_descriptor_from_tree): Call mem_loc_descriptor with
8181         can_use_fbreg == true.
8182         (add_location_or_const_value_attribute): Added parameter enum
8183         dwarf_attribute attr, generate attribute ATTR.  Create the location list.
8184         (add_bound_info): Call loc_descriptor with can_use_fbreg == true.
8185         (gen_formal_parameter_die): Call add_location_or_const_value_attribute
8186         with attr == DW_AT_location.
8187         (gen_subprogram_die): Generate the location list for DW_AT_frame_base
8188         if frame_base_decl is defined and has a location list.
8189         (gen_variable_die): Call add_location_or_const_value_attribute with
8190         attr == DW_AT_location.
8191         (dwarf2out_var_location): New function.
8192         (dwarf2out_begin_function): New function.
8193         (dwarf2out_init): Create decl_loc_table.
8194
8195 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
8196
8197         * loop.c (force_movables): Transitively increase the priorities of
8198         all insns forces by an insn, not just the first one.
8199
8200 2004-02-06  Josef Zlomek  <zlomekj@suse.cz>
8201             Daniel Berlin <dberlin@dberlin.org>
8202
8203         Josef Zlomek  <zlomekj@suse.cz>
8204         * Makefile.in (var-tracking.o): New.
8205         * common.opt (fvar-tracking): New.
8206         * flags.h (flag_var_tracking): New.
8207         * gengtype.c (adjust_field_rtx_def): NOTE_INSN_VAR_LOCATION was added.
8208         * opts.c (common_handle_option): Add OPT_fvar_tracking.
8209         * print-rtl.c (print_rtx): NOTE_INSN_VAR_LOCATION was added.
8210         * rtl.c (note_insn_name): Likewise.
8211         * rtl.def (VAR_LOCATION): New.
8212         * rtl.h (NOTE_VAR_LOCATION): New.
8213         (NOTE_VAR_LOCATION_DECL): New.
8214         (NOTE_VAR_LOCATION_LOC): New.
8215         (enum insn_note): NOTE_INSN_VAR_LOCATION was added.
8216         (variable_tracking_main): New exported function.
8217         * timevar.def (TV_VAR_TRACKING): New.
8218         * toplev.c (enum dump_file_index): Added DFI_vartrack.
8219         (dump_file): "vartrack" was added (-dV).
8220         (flag_var_tracking): New.
8221         (f_options): "var-tracking" was added.
8222         (rest_of_handle_variable_tracking): New function.
8223         (rest_of_compilation): Run variable tracking.
8224         (process_options): If user has not specified flag_var_tracking set it
8225         according to optimize, debug_info_level and debug_hooks.
8226         * tree.h (frame_base_decl): New.
8227         * var-tracking.c: New file.
8228         * config/ia64/ia64.c (ia64_flag_var_tracking): New variable.
8229         (ia64_override_options): Set flags to run variable tracking in machine
8230         dependent reorg instead of toplev.c.
8231         (ia64_reorg): Run variable tracking if wanted.
8232         * doc/invoke.texi: Mention variable tracking in -dV,
8233         add and -fvar-tracking.
8234         * doc/passes.texi: Added variable tracking pass.
8235
8236         Daniel Berlin <dberlin@dberlin.org>
8237         * debug.h (struct gcc_debug_hooks): Added var_location debug hook.
8238         * dbxout.c (dbx_debug_hooks): Likewise.
8239         (xcoff_debug): Likewise.
8240         * debug.c (do_nothing_debug_hooks): Likewise.
8241         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
8242         * dwarfout.c (dwarf_debug_hooks): Likewise.
8243         * sdbout.c (sdb_debug_hooks): Likewise.
8244         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
8245         * final.c (final_scan_insn): Call var_location debug hook for each
8246         NOTE_INSN_VAR_LOCATION.
8247
8248 2004-02-06  Jan Hubicka  <jh@suse.cz>
8249
8250         * flow.c (update_life_info): Allocate reg_deaths when called from
8251         scheudler.
8252         (attempt_auto_inc):  Update life ranges accordingly.
8253
8254 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
8255
8256         PR debug/11816
8257         * dwarf2out.c (gen_decl_die): Handle anonymous struct members.
8258
8259 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
8260
8261         * cfganal.c (flow_call_edges_add): Never split a libcall block.
8262
8263 2004-02-06  Daniel Berlin  <dberlin@dberlin.org>
8264
8265         * dwarf2out.c (output_loc_list): Don't use deltas if we have
8266         a separate line info table in use.
8267         Use the correct size for terminators.
8268         (output_die): Use offset, not delta.
8269
8270 2004-02-06  H.J. Lu  <hongjiu.lu@intel.com>
8271
8272         * doc/invoke.texi: Remove the pni option from -mfpmath=.
8273
8274 2004-02-06  Jan Hubicka  <jh@suse.cz>
8275
8276         * recog.c (split_all_insns): Do not update reg info.
8277         * regrename.c (regrename_optimize): Likewise.
8278         * toplev.c (rest_of_handle_reorder_blocks): Likewise.
8279         * flow.c (struct propagate_block_info): Add insn_num field.
8280         (reg_deaths): New array.
8281         (life_analysis): Free reg_deaths info.
8282         (allocate_reg_life_data): Allocate reg_deaths array.
8283         (propagate_one_insn): Use new array.
8284         (init_propagate_block): Initialize it.
8285         (free_propagate_block_info): Finish compuation of
8286         REG_LIVE_LENGTH
8287         (attempt_auto_inc): Sanity check that REG_INFO is not
8288         computed at same time.
8289         (mark_used_regs): Update new array.
8290
8291         * reg-stack.c (subst_stack_regs): Unshare clobbers before
8292         substitution.
8293
8294 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
8295
8296         * config/s390/s390.md (*extendsiqi2_short_displ): Change to
8297         *extendqisi2_short_displ.
8298
8299 2004-02-06  Alan Modra  <amodra@bigpond.net.au>
8300
8301         * doc/tm.texi (INIT_CUMULATIVE_ARGS): Update doco.
8302         * calls.c (expand_call): Pass n_named_args to INIT_CUMULATIVE_ARGS.
8303         (emit_library_call_value_1): Likewise pass nargs.
8304         * expr.c (block_move_libcall_safe_for_call_parm): Pass 3 here.
8305         * function.c (assign_parms): Pass -1 to INIT_CUMULATIVE_ARGS.
8306         * config/rs6000/rs6000.c (init_cumulative_args): Use n_named_args
8307         parameter instead of scanning TYPE_ARGS_TYPES to count args.
8308         * config/rs6000/rs6000-protos.h (init_cumulative_args): Update
8309         prototype.
8310         * config/rs6000/rs6000.h (INIT_CUMULATIVE_ARGS): Pass extra arg.
8311         (INIT_CUMULATIVE_INCOMING_ARGS): Set extra arg to 1000.
8312         (INIT_CUMULATIVE_LIBCALL_ARGS): Set extra arg to 0.
8313         * config/sh/sh.c (sh_output_mi_thunk): Pass 1 as n_named_args to
8314         INIT_CUMULATIVE_ARGS.
8315         * config/alpha/alpha.h (INIT_CUMULATIVE_ARGS): Update.
8316         * config/alpha/unicosmk.h, config/alpha/vms.h, config/arc/arc.h,
8317         config/arm/arm.h, config/avr/avr.h, config/c4x/c4x.h,
8318         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.h,
8319         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
8320         config/ia64/ia64.h, config/ip2k/ip2k.h, config/iq2000/iq2000.h,
8321         config/iq2000/iq2000.c, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
8322         config/m68k/m68k.h, config/mcore/mcore.h, config/mips/mips.h,
8323         config/mmix/mmix.h, config/mn10300/mn10300.h, config/ns32k/ns32k.h,
8324         config/pa/pa.h, config/pdp11/pdp11.h, config/s390/s390.h,
8325         config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
8326         config/v850/v850.h, config/vax/vax.h, config/xtensa/xtensa.h: Likewise.
8327
8328 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
8329
8330         * genemit.c (gen_exp) [CONST_INT]: Use const_int_rtx whenever
8331         possible.
8332
8333 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
8334
8335         * reload1.c (eliminate_regs_in_insn): If a set has a REG_EQUAL
8336         note containing (plus (reg) (const_int)), where reg is an
8337         eliminable reg, then perform the register elimination without
8338         depending on eliminate_regs().
8339
8340 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
8341
8342         * config/arc/arc.c (arc_return_in_memory): Check the return
8343         value of int_size_in_bytes against -1.  Don't check
8344         TREE_ADDRESSABLE.
8345         * config/avr/avr.c (avr_return_in_memory): Check the return
8346         value of int_size_in_bytes against -1.
8347         * config/ip2k/ip2k.c (ip2k_return_in_memory): Likewise.
8348         * config/m68hc11/m68hc11.c (m68hc11_return_in_memory):
8349         Likewise.
8350         * config/mcore/mcore.c (mcore_return_in_memory): Likewise.
8351         * config/stormy16/stormy16.c (xstormy16_return_in_memory):
8352         Likewise.
8353
8354 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
8355
8356         * config/frv/frv-protos.h: Remove the prototype for
8357         frv_setup_incoming_varargs.
8358         * config/frv/frv.c (TARGET_SETUP_INCOMING_VARARGS): New.
8359         (frv_setup_incoming_varargs): Make it static.
8360         * config/frv/frv.h (SETUP_INCOMING_VARARGS): Remove.
8361
8362 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
8363
8364         * config/fr30/fr30-protos.h: Remove the prototype for
8365         fr30_setup_incoming_varargs.
8366         Update the prototypes for fr30_num_arg_regs and
8367         fr30_function_arg_partial_nregs.
8368         * config/fr30/fr30.c (TARGET_STRUCT_VALUE_RTX): New.
8369         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
8370         (fr30_setup_incoming_varargs): Make it static.
8371         Add argument second_time.  Don't do anything when second_time
8372         is nonzero.
8373         (fr30_num_arg_regs): Change the type of the first argument to
8374         enum machine_mode.
8375         (fr30_function_arg_partial_nregs): Change the type of the
8376         second argument to enum machine_mode.
8377         * config/fr30/fr30.h (STRUCT_VALUE): Remove.
8378         (SETUP_INCOMING_VARARGS): Remove.
8379
8380 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
8381
8382         * config/arc/arc-protos.h: Remove the prototype for
8383         arc_setup_incoming_varargs.
8384         * config/arc/arc.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
8385         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
8386         (arc_setup_incoming_varargs): Make it static.
8387         (arc_external_libcall): Likewise.
8388         * config/arc/arc.h (SETUP_INCOMING_VARARGS): Remove.
8389         Remove the commented-out definition of
8390         ASM_OUTPUT_EXTERNAL_LIBCALL.
8391
8392 2004-02-05  SUGIOKA Toshinobu  <sugioka@itonet.co.jp>
8393
8394         * config/sh/t-linux (SHLIB_INSTALL): Prepend $$(DESTDIR)
8395         to $$(slibdir) in the installation commands.
8396
8397 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
8398
8399         * reload.c (refers_to_regno_for_reload_p): Index hard_regno_nregs
8400         with inner_regno, not regno.
8401         * rtlanal.c (refers_to_regno_p): Same.
8402
8403 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
8404
8405         * config.gcc: Remove i370 support.
8406
8407 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
8408
8409         * doc/install.texi:  Update automake and autoconf version
8410         requirements.  Note where to find gcj automake version.
8411
8412 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
8413
8414         * Makefile.in (generate-manpages): Move dependencies to ...
8415         (man): here.
8416         * doc/makefile.texi: Document new targets.
8417         * doc/sourcebuild.texi (Make-lang.in): Document new langhooks.
8418
8419 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
8420
8421         PR/13485
8422         Makefile.in (srcextra):  Add a level of indirection to ...
8423         (gcc.srcextra): ... here.
8424         (po-generated): Delete.
8425         (po/$(PACKAGE).pot: Use srcextra instead of po-generated.  Depend on
8426         options.c.
8427         (start.encap): Remove superfluous lang.srcextra dependency.
8428         objc/Make-lang.in (po-generated):  Delete.
8429
8430 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
8431
8432         * config/ia64/ia64.c (REG_GP): Remove.
8433
8434 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8435
8436         * config/mips/iris5gas.h (PREFERRED_DEBUGGING_TYPE): Define.
8437
8438 2004-02-05  Devang Patel  <dpatel@apple.com>
8439
8440         * dwarf2out.c (force_type_die): Look up input type itself
8441         instead of root_type() of type.
8442
8443 2004-02-05  Andreas Krebbel  <krebbel1@de.ibm.com>
8444
8445         * config/s390/s390.md ("*tmqidi_ext"): New insn.
8446         ("*extendqidi2_short_displ", "*extendsiqi2_short_displ"): Old
8447         pre-reload splitters are transformed to post-reload
8448         define_insn_and_split patterns.
8449         ("*tmqisi_ext"): Renamed old "*tmqi_ext".
8450
8451 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
8452
8453         * config/cris/cris.h: Replace PROMOTE_PROTOTYPES with
8454         TARGET_PROMOTE_PROTOTYPES.
8455
8456 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8457
8458         PR middle-end/13750
8459         Revert:
8460         2004-01-15  Geoffrey Keating  <geoffk@apple.com>
8461         PR pch/13361
8462         * c-typeck.c (constructor_asmspec): Delete.
8463         (struct initializer_stack): Delete field 'asmspec'.
8464         (start_init): Delete saving of asmspec.
8465         (finish_init): Don't update constructor_asmspec.
8466         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
8467         * stmt.c (expand_asm): Duplicate strings from tree.
8468         (expand_asm_operands): Likewise.
8469         * tree.c (tree_size): Update computation of size of STRING_CST.
8470         (make_node): Don't make STRING_CST nodes.
8471         (build_string): Allocate string with tree node.
8472         * tree.def (STRING_CST): Update comment.
8473         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
8474         (tree_string): Place contents of string in tree node.
8475         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
8476         from tree.
8477
8478 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
8479
8480         * diagnostic.h (DEFINE_DIAGNOSTIC_KIND): Change parameter M to
8481         msgid.
8482
8483 2004-02-05  Dorit Naishlos  <dorit@il.ibm.com>
8484
8485         * config/rs6000/altivec.md (*movv4si_internal): At least one
8486         operand must be altivec_register_operand.
8487         (*movv8hi_internal1): Likewise.
8488         (*movv16qi_internal1): Likewise.
8489         (*movv4sf_internal1): Likewise.
8490
8491 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
8492
8493         * configure.ac (gcc_cv_as_powerpc_mfcrf): Correct test for mfcr.
8494         * configure: Regenerate.
8495
8496 2004-02-05  Jonathan Wakely  <redi@gcc.gnu.org>
8497
8498         * doc/install.texi: Update description of --gxx-include-dir to
8499         give correct default value.
8500
8501 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
8502
8503         * config/h8300/h8300.h (REG_OK_FOR_BASE_NONSTRICT_P): Replace
8504         8 with MAC_REG.
8505
8506 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
8507
8508         * config/pa/pa.c (emit_hpdiv_const): Replace gen_rtx with
8509         gen_rtx_PARALLEL.
8510
8511 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
8512
8513         * emit-rtl.c: Update the comment about the file.
8514
8515 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
8516
8517         * sourcebuild.texi (Test Idioms): Update testcase naming
8518         conventions.
8519
8520 2004-02-04  Per Bothner  <per@bothner.com>
8521
8522         Partially revert/redo 2003-10-01 change; fix -fworking-directory.
8523         * c-ppoutput.c (pp_dir_change):  New function.
8524         * c-common.h (pp_dir_change):  New declaration.
8525         * cpplib.h (struct cpp_options):  Remove working_directory field.
8526         * cppinit.c (cpp_find_main_file, cpp_push_main_file):  Merge back to
8527         (cpp_read_main_file):  as before 10-01.  Call _cpp_stack_file.
8528         Don't handle -fworking_directory here, but in c_common_post_options.
8529         (read_original_directory): Don't back up when done.
8530         Don't clear no-longer used working_directory flag.
8531         * cpplib.h:  Update declarations to match.
8532         * c-lex.c (cb_dir_change):  Move to c-opts.c.
8533         (init_c_lex):  Don't set dir_change callback here, since we want
8534         to set it even if flag_preprocess_only.
8535         * c-opts.c (cb_dir_change):  Function moved from c-lex.c.
8536         (c_common_post_options):  Set dir_change callback.
8537         Call pp_dir_change if approporiate.
8538         (finish_options):  Don't call cpp_find_main_file here.  Hence remove
8539         unneeded parameter and result. Do LC_RENAME for <built-in>.
8540         (c_common_post_options):  Call cpp_read_main_file here instead.
8541         (c_common_init):  Update accordingly.
8542         (push_command_line_include):  Don't cpp_push_main_file.
8543         Do LC_RENAME rather than LC_LEASE to get back to main file.
8544         Compared to pre-10-01 version, inline cpp_rename_to_main_file.
8545         (c_common_parse_file):  Call cpp_read_main_file for subsequent main
8546         files, but call finish_options for all files.
8547         * c-opts.c (sanitize_cpp_opts):  Don't set cpp_opts->working_directory.
8548         * fix-header.c (read_scan_file):  Call cpp_read_main_file instead of
8549         cpp_find_main_file + cpp_push_main_file.
8550         * c-lex.c (fe_file_change):  Don't set main_input_filename here.
8551         * opts.c (handle_options):  Only set main_input_filename first time.
8552
8553 2004-02-05  Ian Lance Taylor  <ian@wasabisystems.com>
8554
8555         * config/arm/arm.h (REG_CLASS_NAMES): Add missing comma.
8556
8557 2004-02-04  Geoffrey Keating  <geoffk@apple.com>
8558
8559         * reload.c (find_equiv_reg): When checking for register overlap,
8560         don't index hard_regno_nregs with a pseudo-reg.
8561
8562 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
8563
8564         * config/s390/s390.c (s390_trampoline_template): Remove gen_rtx().
8565
8566 2004-02-04  David Edelsohn  <edelsohn@gnu.org>
8567
8568         * reload.c (refers_to_regno_for_reload_p): Test regno, not inner_regno,
8569         against FIRST_PSEUDO_REGISTER.
8570
8571 2004-02-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8572
8573         * Makefile.in: Move target, host overrides after per-language
8574         fragments.
8575
8576         * config/mips/t-iris5-as (FORCE_DEBUG_ADAFLAGS): Clear.
8577         (GNATLIBCFLAGS): Remove -g.
8578
8579 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
8580
8581         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
8582         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
8583         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
8584         config/m32r/m32r.c, config/ns32k/ns32k.c, config/pa/pa.c,
8585         config/pdp11/pdp11.c, config/rs6000/rs6000.c,
8586         config/sparc/sparc.c, config/vax/vax.c: Revert the
8587         replacements of "FALLTHRU" with "Fall through" done in the
8588         previous patch.
8589
8590 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
8591
8592         * config/darwin.c, config/darwin.h, config/freebsd-spec.h,
8593         config/arm/arm.c, config/arm/arm.md,
8594         config/cris/cris-protos.h, config/fr30/fr30.c,
8595         config/fr30/fr30.h, config/h8300/h8300.c, config/i386/i386.h,
8596         config/i860/i860.c, config/i860/i860.h, config/ia64/ia64-c.c,
8597         config/ia64/ia64.c, config/ia64/ia64.h, config/ip2k/ip2k.h,
8598         config/ip2k/ip2k.md, config/ip2k/libgcc.S,
8599         config/m32r/linux.h, config/m32r/m32r.c, config/m32r/m32r.h,
8600         config/m68k/m68k.c, config/m68k/netbsd-elf.h,
8601         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.md,
8602         config/ns32k/netbsd.h, config/ns32k/ns32k.c,
8603         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
8604         config/rs6000/darwin-ldouble.c, config/s390/s390.h,
8605         config/s390/s390.md, config/sparc/netbsd-elf.h,
8606         config/sparc/openbsd.h, config/sparc/sparc.c,
8607         config/xtensa/lib2funcs.S: Fix comment formatting.
8608
8609 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
8610
8611         * config/alpha/alpha.c, config/arc/arc.c,
8612         config/arm/arm-cores.def, config/arm/arm.c, config/arm/arm.h,
8613         config/arm/arm1026ejs.md, config/arm/arm1136jfs.md,
8614         config/arm/arm926ejs.md, config/arm/vfp.md, config/avr/avr.c,
8615         config/c4x/c4x.c, config/cris/cris.c, config/frv/frv.md,
8616         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
8617         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
8618         config/iq2000/iq2000.c, config/m32r/m32r.c,
8619         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.h,
8620         config/ns32k/ns32k.c, config/pa/pa.c, config/pdp11/pdp11.c,
8621         config/rs6000/darwin-ldouble.c, config/rs6000/rs6000.c,
8622         config/rs6000/rs6000.h, config/sparc/sparc.c,
8623         config/vax/vax.c: Fix comment typos.  Follow spelling
8624         conventions.
8625
8626 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
8627
8628         * alloc-pool.h, c-convert.c, c-lang.c, c-tree.h,
8629         caller-save.c, df.h, genconfig.c, global.c, lcm.c,
8630         ra-rewrite.c, ra.c, regclass.c, regs.h, resource.c,
8631         sched-rgn.c, config/arm/aof.h, config/arm/cirrus.md,
8632         config/arm/fpa.md, config/arm/iwmmxt.md,
8633         config/arm/netbsd-elf.h, config/arm/netbsd.h,
8634         config/m68hc11/m68hc11.md, config/mips/iris5.h,
8635         config/mn10300/mn10300.md, config/rs6000/altivec.md,
8636         config/sparc/netbsd-elf.h: Update copyright.
8637
8638 2004-02-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
8639
8640         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
8641         for all modes whose size is greater than 8 bytes if ARCH32.
8642         (sparc_va_arg): Handle all modes whose size is greater than 8 bytes
8643         by reference if ARCH32.
8644
8645 2004-02-04  Aldy Hernandez  <aldyh@redhat.com>
8646
8647         * cgraphunit.c (cgraph_postorder): Fix typo in comment.
8648
8649 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
8650
8651         * config/s390/s390.md ("*la_64" + peepholes, "reload_indi"): Move
8652         to before adddi3 insn patterns.
8653         ("*la_31" + peepholes, "*la_31_and", "*la_31_and_cc", "force_la_31",
8654         "reload_insi"): Move to before addsi3 insn patterns.
8655
8656 2004-02-04  Mark Mitchell  <mark@codesourcery.com>
8657
8658         * calls.c (initialize_argument_information): Add CALL_FROM_THUNK_P
8659         parameter.  Use it instead of current_function_is_thunk.
8660         * function.h (struct function): Update documentation for is_thunk.
8661         * tree.h (CALL_FROM_THUNK_P): New macro.
8662         * config/alpha/alpha.c (alpha_sa_mask): Do not check
8663         no_new_pseudos when testing current_function_is_thunk.
8664         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likeiwse.
8665
8666 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
8667
8668         * doc/tm.texi: Replace SETUP_INCOMING_VARARGS with
8669         TARGET_SETUP_INCOMING_VARARGS.
8670
8671 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
8672
8673         * emit-rtl.c (gen_rtx): Remove.
8674         * genattrtab.c: Don't mention gen_rtx in a comment.
8675         * rtl.h: Remove the prototype for gen_rtx.
8676         * doc/md.texi: Replace gen_rtx with gen_rtx_REG.
8677
8678 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
8679
8680         * config/arc/arc.h, config/fr30/fr30.h
8681         (SETUP_INCOMING_VARARGS): Remove the target-independent
8682         comments.
8683         * doc/tm.texi: Don't mention deprecated target macros.
8684
8685 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
8686
8687         * config/fr30/fr30.h (FUNCTION_VALUE): Remove the
8688         target-independent comment.
8689
8690 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
8691
8692         * doc/interface.texi, doc/tm.texi, doc/trouble.texi: Don't
8693         mention deprecated target macros.
8694
8695 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
8696
8697         * config.gcc: Remove obsolete ports and configurations.
8698         * config/linux-aout.h, config/netware.h,
8699         config/t-linux-gnulibc1, config/d30v/abi,
8700         config/d30v/d30v-protos.h, config/d30v/d30v.c,
8701         config/d30v/d30v.h, config/d30v/d30v.md,
8702         config/d30v/libgcc1.asm, config/d30v/t-d30v,
8703         config/dsp16xx/dsp16xx-modes.def,
8704         config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c,
8705         config/dsp16xx/dsp16xx.h, config/dsp16xx/dsp16xx.md,
8706         config/i370/README, config/i370/i370-c.c,
8707         config/i370/i370-protos.h, config/i370/i370.c,
8708         config/i370/i370.h, config/i370/i370.md, config/i370/linux.h,
8709         config/i370/mvs.h, config/i370/oe.h, config/i370/t-i370,
8710         config/i386/freebsd-aout.h, config/i386/linux-aout.h,
8711         config/i386/moss.h, config/i386/netware.h,
8712         config/i386/svr3.ifile, config/i386/svr3dbx.h,
8713         config/i386/svr3gas.h, config/i386/svr3z.ifile,
8714         config/i386/t-udk, config/i386/udk.h, config/i386/vsta.h,
8715         config/i960/i960-c.c, config/i960/i960-coff.h,
8716         config/i960/i960-modes.def, config/i960/i960-protos.h,
8717         config/i960/i960.c, config/i960/i960.h, config/i960/i960.md,
8718         config/i960/rtems.h, config/i960/t-960bare,
8719         config/m68k/hp310.h, config/m68k/hp320.h,
8720         config/m68k/hp320base.h, config/m68k/m68kv4.h,
8721         config/m68k/netbsd.h, config/m68k/sgs.h, config/m68k/t-hp320:
8722         Remove.
8723         * doc/extend.texi, doc/install.texi, doc/invoke.texi,
8724         doc/md.texi: Remove mentions of obsolete ports.
8725
8726 2004-02-04  Jan Hubicka  <jh@suse.cz>
8727
8728         * alias.c (find_base_term, get_addr):  Do not dereference NULL
8729         pointer when all VALUE's locations has been invalidated.
8730         (rtx_equal_for_memref_p): Simplify checking of VALUEs.
8731
8732 2004-02-03  Wolfgang Bangerth  <bangerth@dealii.org>
8733
8734         * doc/invoke.texi (x86 options): Fix spelling/wording.
8735
8736 2004-02-03  Richard Sandiford  <rsandifo@redhat.com>
8737
8738         * config/mips/iris5.h (ASM_OUTPUT_ASCII): Use mips_output_ascii to
8739         put the original string in a comment.
8740         * config/mips/mips-protos.h (mips_output_ascii): Add prefix argument.
8741         * config/mips/mips.c (mips_output_ascii): Likewise.
8742         * config/mips/mips.h (ASM_OUTPUT_ASCII): Adjust accordingly.
8743
8744 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
8745
8746         * system.h (GIV_SORT_CRITERION): Poison.
8747         * config/avr/avr.h (GIV_SORT_CRITERION): Remove.
8748         * config/ip2k/ip2k.h (GIV_SORT_CRITERION): Likewise.
8749
8750 2004-02-03  Roger Sayle  <roger@eyesopen.com>
8751
8752         PR target/9348
8753         * expr.c (expand_expr_real) <MULT_EXPR>:  When performing widening
8754         multiplies with a multiplication of the wrong signedness, its the
8755         signedness of the multiplication that we've performed that needs to
8756         be passed to expand_mult_highpart_adjust.  Avoid emitting a nop-move
8757         if expand_mult_highpart_adjust places the result in target.
8758
8759 2004-02-03  Richard Henderson  <rth@redhat.com>
8760
8761         * varasm.c (const_desc_rtx_sym_eq): Compare symbol strings.
8762
8763 2004-02-03  J"orn Rennecke <joern.rennecke@superh.com>
8764
8765         * config.gcc (sh[234]l): Use little endian fragments.
8766
8767 2004-02-03  Paul Koning  <pkoning@equallogic.com>
8768
8769         * config/pdp11/pdp11-modes.def: Add RESET_FLOAT_FORMAT calls.
8770         * config/pdp11/pdp11-protos.h (legitimate_const_double_p): Add.
8771         * config/pdp11/pdp11.c (encode_pdp11_f, decode_pdp11_f,
8772         encode_pdp11_d, decode_pdp11_d): New functions to handle PDP11
8773         floating point format.
8774         (pdp11_f_format, pdp11_d_format): New real_format descriptors for
8775         the above functions.
8776         (output_move_quad): Output float values in correct target format.
8777         (legitimate_const_double_p): New function.
8778         * config/pdp11/pdp11.h: Fix typos.
8779         (FLOAT_WORDS_BIG_ENDIAN): Add definition.
8780         (TARGET_FLOAT_FORMAT): Ditto.
8781         (pdp11_f_format, pdp11_d_format): Add external declarations.
8782         (MAX_REGS_PER_ADDRESS): Corrected.
8783         (LEGITIMATE_CONSTANT_P): Use legitimate_const_double_p().
8784         (PRINT_OPERAND): Output float literals in target format.
8785
8786 2004-02-03  Mark Mitchell  <mark@codesourcery.com>
8787
8788         PR c++/13975
8789         * tree.h (enum tree_index): Add TI_PUBLIC, TI_PROTECTED, and
8790         TI_PRIVATE.
8791         (access_public_node): Redefine.
8792         (access_protected_node): Likewise.
8793         (access_private_node): Likewise.
8794         * tree.c (build_common_tree_nodes): Create access_public_node,
8795         access_protected_node, and access_private_node.
8796
8797 2004-02-03  Steve Ellcey  <sje@cup.hp.com>
8798
8799         * config/ia64/ia64.h (MASK_INLINE_INT_DIV_LAT): Change value.
8800         (MASK_INLINE_INT_DIV_THR): Ditto.
8801         (MASK_INLINE_SQRT_LAT): Ditto.
8802         (MASK_INLINE_SQRT_THR): Ditto.
8803         (MASK_DWARF2_ASM): Ditto.
8804         (MASK_EARLY_STOP_BITS): Ditto.
8805
8806 2004-02-02  Paul Brook  <paul@codesourcery.com>
8807
8808         Merge from csl-arm-branch.
8809
8810         2004-01-30  Paul Brook  <paul@codesourcery.com>
8811
8812         * aof.h (REGISTER_NAMES): Add vfp reg names
8813         (ADDITIONAL_REGISTER_NAMES): Ditto.
8814         * aout.h (REGISTER_NAMES): Ditto.
8815         (ADDITIONAL_REGISTER_NAMES): Ditto.
8816         * arm-protos.h: Update/Add Prototypes.
8817         * arm.c (init_fp_table): Rename from init_fpa_table. Update users.
8818         Only allow 0.0 for VFP.
8819         (fp_consts_inited): Rename from fpa_consts_inited.  Update users.
8820         (values_fp): Rename from values_fpa.  Update Users.
8821         (arm_const_double_rtx): Rename from const_double_rtx_ok_for_fpa.
8822         Update users.  Only check valid constants for this hardware.
8823         (arm_float_rhs_operand): Rename from fpa_rhs_operand.  Update Users.
8824         Only allow consts for FPA.
8825         (arm_float_add_operand): Rename from fpa_add_operand.  Update users.
8826         Only allow consts for FPA.
8827         (use_return_insn): Check for saved VFP regs.
8828         (arm_legitimate_address_p): Handle VFP DFmode addressing.
8829         (arm_legitimize_address): Ditto.
8830         (arm_general_register_operand): New function.
8831         (vfp_mem_operand): New function.
8832         (vfp_compare_operand): New function.
8833         (vfp_secondary_reload_class): New function.
8834         (arm_float_compare_operand): New function.
8835         (vfp_print_multi): New function.
8836         (vfp_output_fstmx): New function.
8837         (vfp_emit_fstm): New function.
8838         (arm_output_epilogue): Output VPF reg restore code.
8839         (arm_expand_prologue): Output VFP reg save code.
8840         (arm_print_operand): Add 'P'.
8841         (arm_hard_regno_mode_ok): Return modes for VFP regs.
8842         (arm_regno_class): Return classes for VFP regs.
8843         (arm_compute_initial_elimination_offset): Include space for VFP regs.
8844         (arm_get_frame_size): Ditto.
8845         * arm.h (FIXED_REGISTERS): Add VFP regs.
8846         (CALL_USED_REGISTERS): Ditto.
8847         (CONDITIONAL_REGISTER_USAGE): Enable VFP regs.
8848         (FIRST_VFP_REGNUM): Define.
8849         (LAST_VFP_REGNUM): Define.
8850         (IS_VFP_REGNUM): Define.
8851         (FIRST_PSEUDO_REGISTER): Include VFP regs.
8852         (HARD_REGNO_NREGS): Handle VFP regs.
8853         (REG_ALLOC_ORDER): Add VFP regs.
8854         (enum reg_class): Add VFP_REGS.
8855         (REG_CLASS_NAMES): Ditto.
8856         (REG_CLASS_CONTENTS): Ditto.
8857         (CANNOT_CHANGE_MODE_CLASS) Handle VFP Regs.
8858         (REG_CLASS_FROM_LETTER): Add 'w'.
8859         (EXTRA_CONSTRAINT_ARM): Add 'U'.
8860         (EXTRA_MEMORY_CONSTRAINT): Define.
8861         (SECONDARY_OUTPUT_RELOAD_CLASS): Handle VFP regs.
8862         (SECONDARY_INPUT_RELOAD_CLASS): Ditto.
8863         (REGISTER_MOVE_COST): Ditto.
8864         (PREDICATE_CODES): Add arm_general_register_operand,
8865         arm_float_compare_operand and vfp_compare_operand.
8866         * arm.md (various): Rename as above.
8867         (divsf3): Enable when TARGET_VFP.
8868         (divdf3): Ditto.
8869         (movdfcc): Ditto.
8870         (sqrtsf2): Ditto.
8871         (sqrtdf2): Ditto.
8872         (arm_movdi): Disable when TARGET_VFP.
8873         (arm_movsi_insn): Ditto.
8874         (movsi): Only split with general regs.
8875         (cmpsf): Use arm_float_compare_operand.
8876         (push_fp_multi): Restrict to TARGET_FPA.
8877         (vfp.md): Include.
8878         * vfp.md: New file.
8879         * fpa.md (various): Rename as above.
8880         * doc/md.texi: Document ARM w and U constraints.
8881
8882         2004-01-15  Paul Brook  <paul@codesourcery.com>
8883
8884         * config.gcc: Add with_fpu.  Allow with-float=softfp.
8885         * config/arm/arm.c (arm_override_options): Rename *-s to *s.
8886         Break out of loop when we find a float-abi.  Fix typo.
8887         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "fpu".
8888         Set -mfloat-abi=.
8889         * doc/install.texi: Document --with-fpu.
8890
8891         2003-01-14  Paul Brook  <paul@codesourcery.com>
8892
8893         * config.gcc (with_arch): Add armv6.
8894         * config/arm/arm.h: Rename TARGET_CPU_*_s to TARGET_CPU_*s.
8895         * config/arm/arm.c (arm_overrride_options): Ditto.
8896
8897         2004-01-08  Richard Earnshaw  <rearnsha@arm.com>
8898
8899         * arm.c (FL_ARCH3M): Renamed from FL_FAST_MULT.
8900         (FL_ARCH6): Renamed from FL_ARCH6J.
8901         (arm_arch3m): Renamed from arm_fast_multiply.
8902         (arm_arch6): Renamed from arm_arch6j.
8903         * arm.h: Update all uses of above.
8904         * arm-cores.def: Likewise.
8905         * arm.md: Likewise.
8906
8907         * arm.h (CPP_CPU_ARCH_SPEC): Emit __ARM_ARCH_6J__ define for armV6j,
8908         not arm6j.  Add entry for arch armv6.
8909
8910         2004-01-07  Richard Earnshaw  <rearnsha@arm.com>
8911
8912         * arm.c (arm_emit_extendsi): Delete.
8913         * arm-protos.h (arm_emit_extendsi): Delete.
8914         * arm.md (zero_extendhisi2): Also handle zero-extension of
8915         non-subregs.
8916         (zero_extendqisi2, extendhisi2, extendqisi2): Likewise.
8917         (thumb_zero_extendhisi2): Only match if not v6.
8918         (arm_zero_extendhisi2, thumb_zero_extendqisi2, arm_zero_extendqisi2)
8919         (thumb_extendhisi2, arm_extendhisi2, arm_extendqisi)
8920         (thumb_extendqisi2): Likewise.
8921         (thumb_zero_extendhisi2_v6, arm_zero_extendhisi2_v6): New patterns.
8922         (thumb_zero_extendqisi2_v6, arm_zero_extendqisi2_v6): New patterns.
8923         (thumb_extendhisi2_insn_v6, arm_extendhisi2_v6): New patterns.
8924         (thumb_extendqisi2_v6, arm_extendqisi_v6): New patterns.
8925         (arm_zero_extendhisi2_reg, arm_zero_extendqisi2_reg): Delete.
8926         (arm_extendhisi2_reg, arm_extendqisi2_reg): Delete.
8927         (arm_zero_extendhisi2addsi): Remove subreg.  Add attributes.
8928         (arm_zero_extendqisi2addsi, arm_extendhisi2addsi): Likewise.
8929         (arm_extendqisi2addsi): Likewise.
8930
8931         2003-12-31  Mark Mitchell  <mark@codesourcery.com>
8932
8933         Revert this change:
8934         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
8935         + REG addressing modes.
8936
8937         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
8938         + REG addressing modes.
8939
8940         2003-12-30  Mark Mitchell  <mark@codesourcery.com>
8941
8942         * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept
8943         CONSTANT_P_RTX.
8944
8945         2003-30-12  Paul Brook  <paul@codesourcery.com>
8946
8947         * longlong.h: protect arm inlines with !defined (__thumb__)
8948
8949         2003-30-12  Paul Brook  <paul@codesourcery.com>
8950
8951         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Always define __arm__.
8952
8953         2003-12-30  Nathan Sidwell  <nathan@codesourcery.com>
8954
8955         * builtins.c (expand_builtin_apply_args_1): Fix typo in previous
8956         change.
8957
8958         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
8959
8960         * builtins.c (expand_builtin_apply_args_1): Add pretend args size
8961         to the virtual incoming args pointer for downward stacks.
8962
8963         2003-12-29  Paul Brook  <paul@codesourcery.com>
8964
8965         * config/arm/arm-cores.def: Add cost function.
8966         * config/arm/arm.c (arm_*_rtx_costs): New functions.
8967         (arm_rtx_costs): Remove
8968         (struct processors): Add rtx_costs field.
8969         (all_cores, all_architectures): Ditto.
8970         (arm_override_options): Set targetm.rtx_costs.
8971         (thumb_rtx_costs): New function.
8972         (arm_rtx_costs_1): Remove cases handled elsewhere.
8973         * config/arm/arm.h (processor_type): Add COSTS parameter.
8974
8975         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
8976
8977         * config/arm/arm.md (generic_sched): arm926 has its own scheduler.
8978         (arm926ejs.md): Include it.
8979         * config/arm/arm926ejs.md: New pipeline description.
8980
8981         2003-12-24  Paul Brook  <paul@codesourcery.com>
8982
8983         * config/arm/arm.c (arm_arch6j): New variable.
8984         (arm_override_options): Set it.
8985         (arm_emit_extendsi): New function.
8986         * config/arm/arm-protos.h (arm_emit_extendsi): Add prototype.
8987         * config/arm/arm.h (arm_arch6j): Declare.
8988         * config/arm/arm.md: Add sign/zero extend insns.
8989
8990         2003-12-23  Paul Brook  <paul@codesourcery.com>
8991
8992         * config/arm/arm.c (all_architectures): Add armv6.
8993         * doc/invoke.texi: Document it.
8994
8995         2003-12-19  Paul Brook  <paul@codesourcery.com>
8996
8997         * config/arm/arm.md: Add load1 and load_byte "type" attrs.  Modify
8998         insn patterns to match.
8999         * config/arm/arm-generic.md: Ditto.
9000         * config/arm/cirrus.md: Ditto.
9001         * config/arm/fpa.md: Ditto.
9002         * config/amm/iwmmxt.md: Ditto.
9003         * config/arm/arm1026ejs.md: Ditto.
9004         * config/arm/arm1135jfs.md: Ditto.  Add insn_reservation and bypasses
9005         for 11_loadb.
9006
9007         2003-12-18  Nathan Sidwell  <nathan@codesourcery.com>
9008
9009         * config/arm/arm-protos.h (arm_no_early_alu_shift_value_dep): Declare.
9010         * config/arm/arm.c (arm_adjust_cost): Check shift cost for
9011         TYPE_ALU_SHIFT and TYPE_ALU_SHIFT_REG.
9012         (arm_no_early_store_addr_dep, arm_no_early_alu_shift_dep,
9013         arm_no_early_mul_dep): Correctly deal with conditional execution,
9014         parallels and single shift operations.
9015         (arm_no_early_alu_shift_value_dep): Define.
9016         * arm.md (attr type): Replace 'normal' with 'alu',
9017         'alu_shift' and 'alu_shift_reg'.
9018         (attr core_cycles): Adjust.
9019         (*addsi3_carryin_shift, andsi_not_shiftsi_si, *arm_shiftsi3,
9020         *shiftsi3_compare0, *notsi_shiftsi, *notsi_shiftsi_compare0,
9021         *not_shiftsi_compare0_scratch, *cmpsi_shiftsi, *cmpsi_shiftsi_swp,
9022         *cmpsi_neg_shiftsi, *arith_shiftsi, *arith_shiftsi_compare0,
9023         *arith_shiftsi_compare0_scratch, *sub_shiftsi,
9024         *sub_shiftsi_compare0, *sub_shiftsi_compare0_scratch,
9025         *if_shift_move, *if_move_shift, *if_shift_shift): Set type
9026         attribute appropriately.
9027         * config/arm/arm1026ejs.md (alu_op): Adjust.
9028         (alu_shift_op, alu_shift_reg_op): New.
9029         * config/arm/arm1136.md: Add better bypasses for early
9030         registers. Remove load[234] and store[234] bypasses.
9031         (11_alu_op): Adjust.
9032         (11_alu_shift_op, 11_alu_shift_reg_op): New.
9033
9034         2003-12-15  Nathan Sidwell  <nathan@codesourcery.com>
9035
9036         * config/arm/arm-protos.h (arm_no_early_store_addr_dep,
9037         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Declare.
9038         * config/arm/arm.c (arm_no_early_store_addr_dep,
9039         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Define.
9040         * config/arm/arm1026ejs.md: Add load-store bypass.
9041         * config/arm/arm1136jfs.md (11_alu_op): Take 2 cycles.
9042         Add bypasses between instructions.
9043
9044         2003-12-10  Paul Brook  <paul@codesourcery.com>
9045
9046         * config/arm/arm.c (arm_fpu_model): New variable.
9047         (arm_fload_abi): New variable.
9048         (target_fpe_name): Rename from target_fp_name.
9049         (target_fpu_name): New variable.
9050         (arm_is_cirrus): Remove.
9051         (fpu_desc): New struct.
9052         (all_fpus): Define.
9053         (pf_model_for_fpu): Define.
9054         (all_loat_abis): Define.
9055         (arm_override_options): Set fp arch flags based on -mfpu=
9056         and -float-abi=.
9057         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
9058         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
9059         (*): Use new TARGET_* flags.
9060         * config/arm/arm.h (TARGET_ANY_HARD_FLOAT): Remove.
9061         (TARGET_HARD_FLOAT): No longer implies TARGET_FPA.
9062         (TARGET_SOFT_FLOAT): Ditto.
9063         (TARGET_SOFT_FLOAT_ABI): New.
9064         (TARGET_MAVERICK): Rename from TARGET_CIRRUS.  No longer implies
9065         TARGET_HARD_FLOAT.
9066         (TARGET_VFP): No longer implies TARGET_HARD_FLOAT.
9067         (TARGET_OPTIONS): Add -mfpu=.
9068         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
9069         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
9070         (arm_pf_model): Define.
9071         (arm_float_abi_type): Define.
9072         (fputype): Add FPUTYPE_VFP.  Change SOFT_FPA->NONE
9073         * config/arm/arm.md: Use new TARGET_* flags.
9074         * config/arm/cirrus.md: Ditto.
9075         * config/arm/fpa.md: Ditto.
9076         * config/arm/elf.h (ASM_SPEC): Pass -mfloat-abi= and -mfpu=.
9077         * config/arm/semi.h (ASM_SPEC): Ditto.
9078         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Specify vfp.
9079         (FPUTYPE_DEFAULT): Set to VFP.
9080         * doc/invoke.texi: Document -mfpu= and -mfloat-abi=.
9081
9082         2003-11-22  Phil Edwards  <phil@codesourcery.com>
9083
9084         PR target/12476
9085         * config/arm/arm.c (arm_output_mi_thunk):  In Thumb mode, use
9086         'bx' instead of 'b' to avoid branch range restrictions.  Output
9087         the thunk immediately before the thunked-to function.
9088         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME):  Do not emit
9089         .thumb_func if a thunk is being generated.  Emit .code 16 along
9090         with .thumb_func if a thunk is not being generated.
9091
9092         2003-11-15  Nicolas Pitre <nico@cam.org>
9093
9094         * config/arm/arm.md (ashldi3, arm_ashldi3_1bit, ashrdi3,
9095         arm_ashrdi3_1bit, lshrdi3, arm_lshrdi3_1bit): New patterns.
9096         * config/arm/iwmmxt.md (ashrdi3_iwmmxt): Renamed from ashrdi3.
9097         (lshrdi3_iwmmxt): Renamed from lshrdi3.
9098         * config/arm/arm.c (IWMMXT_BUILTIN2): Renamed argument accordingly.
9099
9100         2003-11-12  Steve Woodford  <scw@wasabisystems.com>
9101             Ian Lance Taylor  <ian@wasabisystems.com>
9102
9103         * config/arm/lib1funcs.asm (ARM_DIV_BODY, ARM_MOD_BODY): Add new
9104         code for __ARM_ARCH__ >= 5 && ! defined (__OPTIMIZE_SIZE__).
9105
9106         2003-11-05  Phil Edwards  <phil@codesourcery.com>
9107
9108         * config/arm/arm.md (insn):  Add new V6 instruction names.
9109         (generic_sched):  New attr.
9110         * config/arm/arm-generic.md:  Use generic_sched here.
9111         * config/arm/arm1026ejs.md:  Do not model fetch/issue/decode
9112         stages of pipeline.  Adjust latency counts accordingly.
9113         * config/arm/arm1136jfs.md:  New file.
9114
9115         2003-10-28  Mark Mitchell  <mark@codesourcery.com>
9116
9117         * config/arm/arm.h (processor_type): New enumeration type.
9118         (CPP_ARCH_DEFAULT_SPEC): Set appropriately for ARM 926EJ-S,
9119         ARM1026EJ-S, ARM1136J-S, and ARM1136JF-S processor cores.
9120         (CPP_CPU_ARCH_SPEC): Likewise.
9121         * config/arm/arm.c (arm_tune): New variable.
9122         (all_cores): Use cores.def.
9123         (all_architectures): Add representative processor.
9124         (arm_override_options): Restructure way in which tuning
9125         information is deduced.
9126         * arm.md: Update "insn" and "type" attributes throughout.
9127         (insn): New attribute.
9128         (type): Compute "mult" from "insn" attribute.  Add load2,
9129         load3, load4 alternatives.
9130         (arm automaton): Move to arm-generic.md.
9131         * config/arm/arm-cores.def: New file.
9132         * config/arm/arm-generic.md: Likewise.
9133         * config/arm/arm1026ejs.md: Likewise.
9134
9135 2004-02-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
9136
9137         * doc/invoke.texi (SPARC options): Remove -mflat and
9138         all -mxxx (xxx:chip) options.
9139         * config/sparc/aout.h (DBX_REGISTER_NUMBER): Delete.
9140         * config/sparc/litecoff.h (DBX_REGISTER_NUMBER): Likewise.
9141         * config/sparc/netbsd-elf.h (DBX_REGISTER_NUMBER): Likewise.
9142         * config/sparc/sol2.h (DBX_REGISTER_NUMBER): Likewise.
9143         * config/sparc/sparc-protos.h: Delete sparc_flat_* prototypes.
9144         * config/sparc/sparc.c: Likewise.
9145         (sparc_output_function_prologue): Remove TARGET_FLAT handling.
9146         (sparc_nonflat_function_prologue): Rename into sparc_function_prologue.
9147         (sparc_output_function_epilogue): Remove TARGET_FLAT handling.
9148         (sparc_nonflat_function_epilogue): Rename into sparc_function_epilogue.
9149         (struct sparc_frame_info, current_frame_info, zero_frame_info): Delete.
9150         (sparc_flat_must_save_register_p): Likewise.
9151         (sparc_flat_compute_frame_size): Likewise.
9152         (sparc_flat_save_restore): Likewise.
9153         (sparc_flat_function_prologue): Likewise.
9154         (sparc_flat_function_epilogue): Likewise.
9155         (sparc_flat_epilogue_delay_slots): Likewise.
9156         (sparc_flat_eligible_for_epilogue_delay): Likewise.
9157         (sparc_function_ok_for_sibcall): Remove TARGET_FLAT handling.
9158         * config/sparc/sparc.h (MASK_FLAT, TARGET_FLAT): Delete.
9159         (TARGET_SWITCHES): Remove -mflat and all -mxxx (xxx:chip) options.
9160         (SPARC_INCOMING_INT_ARG_FIRST): Remove TARGET_FLAT handling.
9161         (CONDITIONAL_REGISTER_USAGE): Likewise.
9162         (FRAME_POINTER_REQUIRED): Likewise.
9163         (INITIAL_ELIMINATION_OFFSET): Likewise.
9164         (BASE_RETURN_VALUE_REG): Likewise.
9165         (BASE_OUTGOING_VALUE_REG): Likewise.
9166         (BASE_PASSING_ARG_REG): Likewise.
9167         (BASE_INCOMING_ARG_REG): Likewise.
9168         (INCOMING_REGNO): Likewise.
9169         (OUTGOING_REGNO): Likewise.
9170         (LOCAL_REGNO): Likewise.
9171         (DELAY_SLOTS_FOR_EPILOGUE): Likewise.
9172         (ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise.
9173         (EPILOGUE_USES): Likewise.
9174         * config/sparc/sparc.md ("isa" attribute): Change "v6" into "v7".
9175         ("flat" attribute): Delete.
9176         (do_builtin_setjmp_setup): Remove TARGET_FLAT and "flat" attribute
9177         handling.
9178         (call followed by jump define_peephole's): Delete.
9179         (exception_receiver): Likewise.
9180         (builtin_setjmp_receiver): Likewise.
9181         * config/sparc/t-sparclite (MULTILIB_OPTIONS): Remove -mflat.
9182
9183 2004-02-03  Paolo Bonzini  <bonzini@gnu.org>
9184
9185         PR c/11658
9186         PR c/13994
9187         * Makefile.in (c-parse.o, c-convert.o, c-typeck.o): Depend
9188         on langhooks.h.
9189         * objc/Make-lang.in (objc-parse.o): Depend on langhooks.h.
9190         * c-parse.in, c-convert.c, c-typeck.c, objc/objc-act.c:
9191         Include langhooks.h.  Replace c_common_truthvalue_conversion
9192         with the truthvalue_conversion language hook throughout.
9193         (expr_no_commas): Call default_conversion before save_expr
9194         for the first term of the production 'x ? : y'.
9195         * c-common.c (c_common_truthvalue_conversion): Remove
9196         obsolete block.  Invoke recursively the hook instead
9197         of this function.
9198         * c-convert.c (convert): handle ERROR_MARK_NODE.
9199         * c-typeck.c (build_binary_op): handle ERROR_MARK_NODE
9200         returned by the truthvalue_conversion language hook.
9201         * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
9202         c_objc_common_truthvalue_conversion.
9203         * c-objc-common.c (c_objc_common_truthvalue_conversion):
9204         New function.
9205         * c-tree.h (c_objc_common_truthvalue_conversion): Declare it.
9206         * objc/objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
9207         c_objc_common_truthvalue_conversion.
9208
9209 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
9210
9211         * config/c4x/c4x.h (FUNCTION_VALUE): Use gen_rtx_REG instead
9212         of gen_rtx.
9213         (LIBCALL_VALUE): Likewise.
9214         * config/ip2k/ip2k.c (mdr_try_propagate_clr_sequence): Use
9215         gen_rtx_CC0 instead of gen_rtx.
9216         * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use
9217         gen_rtx_fmt_e and gen_rtx_fmt_ee instead of gen_rtx.
9218         (m68hc11_expand_compare): Use gen_rtx_fmt_ee instead of
9219         gen_rtx.
9220         (m68hc11_emit_logical): Likewise.
9221
9222 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
9223
9224         * config/alpha/alpha.c, config/arm/arm.c, config/c4x/c4x.c,
9225         config/fr30/fr30.md, config/frv/frv.c, config/frv/frv.md,
9226         config/h8300/h8300.c, config/ia64/ia64.c, config/ip2k/ip2k.md,
9227         config/m32r/m32r.md, config/m68hc11/m68hc11.c,
9228         config/mips/mips.md, config/mmix/mmix.c,
9229         config/mn10300/mn10300.c, config/mn10300/mn10300.md,
9230         config/ns32k/ns32k.c, config/pa/pa.md, config/pdp11/pdp11.c,
9231         config/rs6000/altivec.md, config/s390/s390.c,
9232         config/s390/s390.h, config/s390/s390.md, config/sh/sh.c,
9233         config/sh/sh.h, config/sh/sh.md, config/stormy16/stormy16.c:
9234         Use const0_rtx instead of GEN_INT (0).  Do the same for other
9235         constants that are readily available.
9236
9237 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
9238
9239         * doloop.c, optabs.c, regmove.c, sched-deps.c,
9240         config/i386/i386.c, config/i386/i386.md: Use const0_rtx
9241         instead of GEN_INT (0).  Do the same for other constants that
9242         are readily available.
9243
9244 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
9245
9246         * combine.c (simplify_set): Use gen_rtx_fmt_e instead of
9247         gen_rtx.
9248         * emit-rtl.c (init_emit_once): Use gen_rtx_PC and gen_rtx_CC0
9249         instead of gen_rtx.
9250         * reload1.c (init_elim_table): Use gen_rtx_fmt_e instead of
9251         gen_rtx.
9252         * config/ns32k/ns32k.md (udivmodhi4): Use gen_rtx_IOR and
9253         gen_rtx_ASHIFT instead of gen_rtx.
9254         (udivmodqi4): Likewise.
9255
9256 2004-02-02  Richard Henderson  <rth@redhat.com>
9257
9258         PR target/13789
9259         * expr.c (store_expr): Use force_operand before emit_move_insn.
9260
9261 2004-02-02  Jeff Law  <law@redhat.com>
9262             Roger Sayle  <roger@eyesopen.com>
9263
9264         * tree.c (commutative_tree_code, associative_tree_code): New
9265         functions.
9266         (iterative_hash_expr): Use commutative_tree_code.
9267         * tree.h (commutative_tree_code, associative_tree_code): Declare.
9268         * fold-const.c (operand_equal_p): Use commutative_tree_code
9269         rather than inlining the commutativity check.
9270         (fold): Likewise.
9271
9272 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
9273
9274         * system.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Poison.
9275         * config/frv/frv-protos.h: Remove the prototype for
9276         frv_function_arg_keep_as_reference.
9277         * config/frv/frv.c (frv_function_arg_keep_as_reference):
9278         Remove.
9279         * config/frv/frv.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Likewise.
9280         * config/stormy16/stormy16.h: Remove the commented-out
9281         definition of FUNCTION_ARG_KEEP_AS_REFERENCE.
9282
9283 2004-02-03  Alan Modra  <amodra@bigpond.net.au>
9284
9285         PR target/13914
9286         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Use ap
9287         for retaddr_column.
9288
9289 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
9290
9291         * genemit.c (gen_exp): Generate gen_rtx_fmt_e* instead of
9292         gen_rtx.
9293
9294 2004-02-02  Eric Christopher  <echristo@redhat.com>
9295             Zack Weinberg  <zack@codesourcery.com>
9296
9297         * c-opts.c (c_common_handle_option): Add -finput-charset.
9298         * c.opt: Ditto.
9299         * cppcharset.c (one_iso88591_to_utf8): Remove.
9300         (convert_iso88591_utf8): Ditto.
9301         (conversion_tab): Remove 8859-1 converter.
9302         (_cpp_input_to_utf8): Remove.
9303         (_cpp_init_iconv_buffer): Ditto.
9304         (_cpp_close_iconv_buffer): Ditto.
9305         (_cpp_convert_input): New function.
9306         (_cpp_default_encoding): Ditto.
9307         * cpphash.h: Add/remove prototypes for above.
9308         * cppfiles.c (read_file_guts): Use _cpp_convert_input.
9309         * cppinit.c (cpp_create_reader): Use _cpp_default_encoding
9310         for narrow execution and input character sets.
9311         * cpplib.c (cpp_push_buffer): Delete uses of removed functions.
9312         * doc/cppopts.texi: Document -finput-charset.
9313
9314 2004-02-02  David Edelsohn  <edelsohn@gnu.org>
9315
9316         * rtlanal.c (refers_to_regno_p): Test regno, not inner_regno,
9317         against FIRST_PSEUDO_REGISTER.
9318
9319 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
9320
9321         * doc/invoke.texi (SPARC options): Further improve.
9322
9323 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
9324
9325         * config/arm/arm.md, config/c4x/c4x.md, config/cris/cris.md,
9326         config/h8300/h8300.c, config/ip2k/ip2k.md,
9327         config/iq2000/iq2000.c, config/mips/mips.c,
9328         config/rs6000/rs6000.c, config/rs6000/rs6000.md,
9329         config/sh/sh.c, config/sh/sh.md, config/stormy16/stormy16.c,
9330         config/v850/v850.md: Fix indentation.
9331
9332 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
9333
9334         * config/sparc/sparc.c (function_arg_slotno): Align TImode
9335         arguments on a 16-byte boundary in the parameter array if ARCH64.
9336         Split handling of TFmode.
9337
9338 2004-02-02  Paolo Bonzini  <bonzini@gnu.org>
9339
9340         * rtlanal.c (reg_overlap_mentioned_p) [!ENABLE_CHECKING]:
9341         Don't test CONSTANT_P (x).
9342         (reg_overlap_mentioned_p): Merge check for STRICT_LOWPART,
9343         ZERO_EXTRACT, SIGN_EXTRACT with the switch statement.
9344         Fix misindentation.
9345
9346 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
9347
9348         * doc/invoke.texi (SPARC options): Document that -mflat is deprecated.
9349
9350 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
9351
9352         * config/arc/arc.md, config/arm/arm.c, config/arm/arm.md,
9353         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.md,
9354         config/frv/frv.c, config/h8300/h8300.c, config/ip2k/ip2k.md,
9355         config/iq2000/iq2000.c, config/m32r/m32r.c,
9356         config/mcore/mcore.c, config/mips/mips.c, config/mmix/mmix.md,
9357         config/mn10300/mn10300.c, config/rs6000/rs6000.c,
9358         config/rs6000/rs6000.md, config/sh/sh.c, config/sh/sh.md,
9359         config/stormy16/stormy16.c, config/v850/v850.md,
9360         config/xtensa/xtensa.c: Replace gen_rtx with gen_rtx_fmt_e*.
9361
9362 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
9363
9364         * config/mcore/mcore.c (block_move_sequence): Replace
9365         gen_rtx_CONST_INT with GEN_INT.
9366
9367 2004-02-02  Jan Hubicka  <jh@suse.cz>
9368
9369         * alias.c (record_set): Use hard_regno_nregs.
9370         * bt-load.c (find_btr_reference, note_btr_set): Likewise.
9371         * builtins.c (apply_args_size): Likewise.
9372         * caller-save.c (setup_save_areas, save_call_clobbered_regs,
9373         mark_set_regs, add_stored_regs, mark_referenced_regs,
9374         insert_restore, insert_save, insert_one_insn): Likewise.
9375         * cfgcleanup.c: Include regs.h
9376         (mark_effect, mentions_nonequal_regs): Likewise.
9377         * cfgrtl.c (mark_killed_regs): Likewise
9378         * combine.c (update_table_tick, record_value_for_reg,
9379         record_dead_and_set_regs, get_last_value_validate, use_crosses_set_p,
9380         reg_dead_at_p_1, reg_dead_at_p, mark_used_regs_combine, move_deaths,
9381         reg_bitfield_target_p, distribute_notes): Likewise.
9382         * cse.c (mention_regs, insert, invalidate, invalidate_for_call,
9383         exp_equiv_p, cse_insn): Likewise.
9384         * cselib.c (cselib_lookup): Likewise.
9385         (cselib_invalidate_regno, cselib_record_set): Likewise.
9386         * df.c (df_ref_record): Likewise.
9387         * dwarf2out.c (reg_loc_descriptor, multiple_reg_loc_descriptor):
9388         Likewise.
9389         * flow.c (mark_reg, insn_dead_p, mark_set_1, mark_used_reg,
9390         count_or_remove_death_notes_bb): Likewise.
9391         * function.c (aggregate_value_p, keep_stack_depressed): Likewise.
9392         * gloval.c (global_alloc, find_reg, mark_reg_store, mark_reg_conflicts,
9393         mark_reg_death, set_preference, reg_becomes_live, reg_dies): Likewise.
9394         * integrate.c (mark_stores): Likewise.
9395         * jump.c (delete_prior_computation): Likewise.
9396         * lcm.c (reg_dies, reg_becomes_live): Likewise.
9397         * local-alloc.c (combine_regs, find_free_reg, post_mark_life): Likewise.
9398         * loop.c (LOOP_REGNO_NREGS): Likewise.
9399         * postreload.c (reload_combine, reload_combine_note_store,
9400         reload_combine_note_use, reload_cse_move2add, move2add_note_store): Likewise.
9401         * ra-colorize.c (combine, color_usable_p, get_free_reg,
9402         calculate_dont_begin, calculate_dont_begin, colorize_one_web,
9403         try_recolor_web, insert_coalesced_conflicts, check_colors,
9404         break_precolored_alias): Likewise.
9405         * ra-debug.c: Include regs.h
9406         (ra_print_rtx_object): Likewise.
9407         * ra-rewrite (choose_spill_colors): Likewise.
9408         (spill_same_color_p, update_spill_colors, spill_is_free): Likewise.
9409         * ra.c (init_ra): Likewise.
9410         * recog.c (reg_fits_class_p, peep2_reg_dead_p,
9411         peep2_find_free_register): Likewise.
9412         * reg-stack.c (subst_stack_regs_pat, convert_regs_exit): Likewise.
9413         * regclass.c (hard_regno_nregs): New array.
9414         (init_reg_modes_once): Initialize it.
9415         (choose_hard_reg_mode): Use it.
9416         (record_reg_classes): Likewise.
9417         * regmove.c (mark_flags_life_zones): Likewise.
9418         * regrename.c (note_sets, clear_dead_regs, regrename_optimize,
9419         scan_rtx_reg, dump_def_use_chain, kill_value, set_value_regno,
9420         copy_value, maybe_mode_change, find_oldest_value_reg,
9421         copyprop_hardreg_forward_1):
9422         * regs.h (hard_regno_nregs): Declare.
9423         * realod.c (reload_inner_reg_of_subreg): Use it.
9424         (push_reload, combine_reloads, find_dummy_reload,
9425         hard_reg_set_here_p, operands_match_p, decompose, find_reloads,
9426         refers_to_regno_for_reload_p, find_equiv_reg, regno_clobbered_p,
9427         reload_adjust_reg_for_mode): Likewise.
9428         * reload1.c (compute_use_by_pseudos, count_pseudo,
9429         count_spilled_pseudo, find_reg, find_reload_regs, mark_home_live,
9430         spill_hard_reg, forget_old_reloads_1, mark_reload_reg_in_use,
9431         clear_reload_reg_in_use, reload_reg_free_for_value_p, free_for_value_p
9432         allocate_reload_reg, choose_reload_regs, emit_reload_insns,
9433         delete_output_reload): Likewise.
9434         * resource.c (update_live_status, mark_referenced_resources,
9435         mark_set_resources, mark_target_live_regs): Likewise.
9436         * rtlanal.c:  Include regs.h
9437         (refers_to_regno_p, reg_overlap_mentioned_p, dead_or_set_p,
9438         dead_or_set_regno_p, find_regno_note, find_reg_fusage,
9439         subreg_regno_offset, subreg_offset_representable_p,
9440         hoist_test_store): Likewise.
9441         * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
9442         * sched-rgn.c (check_live_1, update_live_1): Likewise.
9443         * stmt.c: Include regs.h
9444         (decl_conflicts_with_clobbers_p): Likewise.
9445         * varasm.c (make_decl_rtl): Likewise.
9446         * Makefile.in (cfgcleanup.o, rtlanal.o, ra-debug.o): Add regs.h dependnecy.
9447
9448 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
9449
9450         * config/arm/arm.c, config/arm/arm.h, config/arm/arm.md,
9451         config/arm/linux-gas.h, config/arm/netbsd-elf.h,
9452         config/arm/netbsd.h, config/arm/pe.c, config/avr/avr.c,
9453         config/avr/avr.h, config/avr/avr.md, config/c4x/c4x.h,
9454         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
9455         config/frv/frv.h, config/ip2k/ip2k.c, config/iq2000/iq2000.c,
9456         config/iq2000/iq2000.h, config/m32r/m32r.c,
9457         config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
9458         config/m68hc11/m68hc11.md, config/m68k/m68k.md,
9459         config/mcore/mcore.c, config/mcore/mcore.h,
9460         config/mcore/mcore.md, config/mips/mips.c,
9461         config/ns32k/ns32k.h, config/ns32k/ns32k.md,
9462         config/rs6000/rs6000.c, config/s390/s390.c,
9463         config/s390/s390.md, config/sparc/sparc.c, config/v850/v850.c,
9464         config/xtensa/xtensa.h, config/xtensa/xtensa.md: Replace
9465         "gen_rtx (FOO, " with "gen_rtx_FOO (".
9466
9467 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
9468
9469         * config/h8300/h8300.md (two peephole2's): New.
9470
9471 2004-02-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
9472
9473         * config/sparc/sol2-bi.h: Handle TARGET_CPU_ultrasparc3.
9474         (CPP_CPU_SPEC): Handle -mcpu=ultrasparc3.
9475         (ASM_CPU_SPEC): Likewise
9476         * config/sparc/sol2.h: Handle TARGET_CPU_ultrasparc3.
9477         (ASM_CPU_SPEC): Remove -mcpu=v8plus.  Handle -mcpu=ultrasparc3.
9478
9479 2004-02-01  Roger Sayle  <roger@eyesopen.com>
9480
9481         * builtins.c (expand_builtin_pow): If flag_unsafe_math_optimizations
9482         isn't set, don't call expand_builtin_mathfn_2 to use the pow optab.
9483         (expand_builtin): Always call expand_builtin_pow.
9484
9485 2004-02-01  Roger Sayle  <roger@eyesopen.com>
9486
9487         * builtins.def (BUILT_IN_SIGNBIT, BUILT_IN_SIGNBITF,
9488         BUILT_IN_SIGNBITL): New GCC builtins.
9489         * builtins.c (expand_builtin_signbit): New function to RTL expand
9490         calls to signbit, signbitf and signbitl as inline intrinsics.
9491         (expand_builtin): Call expand_builtin_signbit for BUILT_IN_SIGNBIT*.
9492         (fold_builtin_signbit): New function to perform constant folding
9493         of signbit, signbitf and signbitl.
9494         (fold_builtin): Call fold_builtin_signbit for BUILT_IN_SIGNBIT*.
9495
9496         * doc/extend.texi: Document new signbit{,f,l} builtins.
9497
9498 2004-02-01  Richard Sandiford  <rsandifo@redhat.com>
9499
9500         * config/mips/mips.md (adddi3_internal_2): Remove superfluous %s.
9501
9502 2004-02-01  Chris Demetriou  <cgd@broadcom.com>
9503
9504         * config/mips/mips.h (PREDICATE_CODES): Remove entries for
9505         "mips_const_double_ok" and "simple_memory_operand", which were
9506         removed from the MIPS port with the mips-3_4-rewrite branch merge.
9507         * config/mips/mips.c (mips16_lay_out_constants): Update comment
9508         for removal of simple_memory_operand.
9509
9510 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
9511
9512         * config/c4x/c4x.md: Use GEN_INT instead of
9513         gen_rtx (CONST_INT, ...).
9514
9515 2004-01-31  Richard Henderson  <rth@redhat.com>
9516
9517         * varasm.c (output_constant_pool): Don't zap the pool.
9518
9519 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
9520
9521         * genrecog.c (decision_type): Add DT_const_int.
9522         (write_cond) [DT_const_int]: Print a comparison against small
9523         constant.
9524         (write_node): Simplify comparisons against small constants
9525         before printing tests.
9526
9527 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
9528
9529         * config/m32r/m32r.c (m32r_load_pic_register): Use GEN_INT
9530         instead of gen_rtx_CONST_INT.
9531
9532 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
9533
9534         * config/xtensa/xtensa.h (DYNAMIC_CHAIN_ADDRESS): Use GEN_INT
9535         instead of gen_rtx_CONST_INT.
9536
9537 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
9538
9539         * target-def.h (TARGET_STRICT_ARGUMENT_NAMING): Define as
9540         hook_bool_CUMULATIVE_ARGS_false.
9541         * targhooks.c (default_strict_argument_naming): Rename to
9542         hook_bool_CUMULATIVE_ARGS_false.
9543         * targhooks.h: Update the prototype for
9544         default_strict_argument_naming.
9545
9546 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
9547
9548         * config/sh/sh.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
9549         * config/sh/sh.h: Likewise.
9550         * config/sh/sh.md: Likewise.
9551
9552 2004-01-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
9553
9554         * doc/invoke.texi (SPARC options): Restructure and update.
9555
9556 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
9557
9558         * system.h (PROMOTE_FUNCTION_ARGS, STRUCT_VALUE_INCOMING, and
9559         STRICT_ARGUMENT_NAMING): Poison.
9560         * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS): Define as
9561         hook_bool_tree_false.
9562         * targhooks.c (default_promote_function_args): Remove.
9563         (default_struct_value_rtx): Don't use STRUCT_VALUE_INCOMING.
9564         Don't check incoming.
9565         (default_strict_argument_naming): Don't use
9566         STRICT_ARGUMENT_NAMING.
9567         * targhooks.h: Remove the prototype for
9568         default_promote_function_args.
9569
9570 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
9571
9572         * config/i386/i386-protos.h: Remove the prototype for
9573         ix86_setup_incoming_varargs.
9574         * config/i386/i386.c (TARGET_SETUP_INCOMING_VARARGS): New.
9575         (ix86_setup_incoming_varargs): Make it static.
9576         * config/i386/i386.h (SETUP_INCOMING_VARARGS): Remove.
9577
9578 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
9579
9580         * alloc-pool.c: Fix comment typos.
9581         * builtin-types.def: Likewise.
9582         * builtins.def: Likewise.
9583         * c-pretty-print.c: Likewise.
9584         * df.h: Likewise.
9585         * reload1.c: Likewise.
9586
9587 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
9588
9589         * doc/invoke.texi: Follow spelling conventions.
9590         * doc/tm.texi: Likewise.
9591
9592 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
9593
9594         * doc/install.texi: Fix typos.
9595         * doc/invoke.texi: Likewise.
9596
9597 2004-01-31  Ulrich Weigand  <uweigand@de.ibm.com>
9598
9599         * config/s390/s390.c (s390_decompose_address): Do not treat virtual
9600         registers as pointers.
9601         * config/s390/s390.md ("*la_31" second peephole2): Fix incorrect mode.
9602
9603 2004-01-31  Paolo Bonzini  <bonzini@gnu.org>
9604
9605         * combine.c (cse_main): Set gen_lowpart to gen_lowpart_for_combine
9606         and restore it to gen_lowpart_general on exit.
9607         (gen_lowpart_for_combine): Adjust all callers to go through
9608         gen_lowpart.
9609         * cse.c (cse_main): Set gen_lowpart to gen_lowpart_if_possible
9610         and restore it to gen_lowpart_general on exit.
9611         (gen_lowpart_if_possible): Adjust all callers to go through
9612         gen_lowpart.
9613         * emit-rtl.c (gen_lowpart_general): New name of gen_lowpart.
9614         (gen_lowpart): Declare as pointer to function, initialized to
9615         gen_lowpart_general.
9616         * rtl.h (gen_lowpart): Declare as pointer to function.
9617
9618 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
9619
9620         * bt-load.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
9621         * calls.c: Likewise.
9622         * emit-rtl.c: Likewise.
9623         * function.c: Likewise.
9624         * reload1.c: Likewise.
9625         * config/i386/cygming.h: Likewise.
9626         * config/i386/i386.c: Likewise.
9627         * config/i386/winnt.c: Likewise.
9628
9629 2004-01-30  Dara Hazeghi  <dhazeghi@yahoo.com>
9630
9631         PR bootstrap/9249
9632         * doc/install.texi: document --enable-__cxa_atexit option.
9633         * configure.ac: Disable __cxa_atexit if not supported.
9634         * configure: Regenerate.
9635
9636 2003-01-30  Daniel Berlin  <dberlin@dberlin.org>
9637
9638         * ggc-zone.c (ggc_free): New function.
9639
9640 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
9641
9642         alloc-pool.c, c-lex.c, c-pragma.h, c-semantics.c, cfghooks.c,
9643         cfghooks.h, cfglayout.c, cfgloopmanip.c, debug.c, debug.h,
9644         flow.c, genextract.c, ggc-common.c, ggc-page.c, ggc.h,
9645         ifcvt.c, jump.c, loop-unswitch.c, timevar.c, timevar.def,
9646         tree-optimize.c, vmsdbgout.c, config/fp-bit.c,
9647         config/alpha/alpha.c, config/alpha/alpha.h,
9648         config/alpha/alpha.md, config/alpha/unicosmk.h,
9649         config/alpha/vms.h, config/arm/linux-elf.h, config/avr/avr.c,
9650         config/c4x/c4x-protos.h, config/c4x/c4x.md,
9651         config/d30v/d30v.h, config/frv/frv.md, config/frv/frvbegin.c,
9652         config/frv/frvend.c, config/i386/cygming.h,
9653         config/i386/djgpp.h, config/i386/emmintrin.h,
9654         config/i386/gthr-win32.c, config/i386/i386-interix.h,
9655         config/i386/i386-protos.h, config/i386/openbsd.h,
9656         config/i386/winnt.c, config/i386/xm-mingw32.h,
9657         config/i386/xmmintrin.h, config/ia64/ia64.md,
9658         config/iq2000/iq2000.md, config/m32r/m32r.md,
9659         config/m68k/m68k.md, config/mcore/mcore-elf.h,
9660         config/mcore/mcore.md, config/mips/elf.h, config/mips/elf64.h,
9661         config/mips/iris5gas.h, config/mips/iris6.h,
9662         config/mips/iris6gas.h, config/mips/linux.h,
9663         config/mips/mips.md, config/mips/netbsd.h,
9664         config/mips/openbsd.h, config/mips/windiss.h,
9665         config/pa/fptr.c, config/rs6000/aix.h,
9666         config/rs6000/altivec.h, config/rs6000/darwin.h,
9667         config/rs6000/xcoff.h, config/s390/s390-protos.h,
9668         config/s390/s390.c, config/s390/s390.h, config/s390/s390.md,
9669         config/sh/netbsd-elf.h, config/sh/sh.h, config/sh/vxworks.h,
9670         config/sparc/sol2.h: Update copyright.
9671
9672 2004-01-30  Kelley Cook  <kcook@gcc.gnu.org>
9673
9674         * Makefile.in (abs_docdir, abs_srcdir): Define.
9675         (doc/%.dvi, doc/gccinstall.dvi): Use $(abs_docdir).
9676
9677 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
9678
9679         * genconfig.c (main): Have CC0_P check its operand even on a
9680         target without cc0.
9681
9682 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
9683
9684         * config/alpha/alpha.c: Remove mentions of deprecates macros
9685         in comments, remove some target-independent comments about target
9686         macros, and/or add minimal function comments for target hook
9687         implementations.
9688         * config/avr/avr.c: Likewise.
9689         * config/ia64/ia64.h: Likewise.
9690         * config/ip2k/ip2k.c: Likewise.
9691         * config/iq2000/iq2000.c: Likewise.
9692         * config/m32r/m32r.h: Likewise.
9693         * config/m68hc11/m68hc11.c: Likewise.
9694         * config/mcore/mcore.c: Likewise.
9695         * config/mmix/mmix.c: Likewise.
9696         * config/mn10300/mn10300.c: Likewise.
9697         * config/pa/pa.c: Likewise.
9698         * config/pdp11/pdp11.c: Likewise.
9699         * config/rs6000/rs6000.h: Likewise.
9700         * config/sh/sh.c: Likewise.
9701         * config/sh/sh.h: Likewise.
9702         * config/sparc/sparc.c: Likewise.
9703         * config/sparc/sparc.h: Likewise.
9704         * config/stormy16/stormy16.c: Likewise.
9705         * config/xtensa/xtensa.c: Likewise.
9706
9707 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
9708
9709         PR optimization/12147
9710         * reload1.c (reload_reg_free_p): RELOAD_OTHER conflicts with
9711         RELOAD_FOR_OPADDR_ADDR.
9712         (reload_reg_reaches_end_p): RELOAD_FOR_OTHER_ADDRESS register
9713         might be reused as RELOAD_FOR_OPADDR_ADDR register.
9714
9715 2004-01-30  Jan Hubicka  <jh@suse.cz>
9716
9717         * reload.c (get_secondary_mem): Fix updating of
9718         secondary_memlocs_elim_used.
9719
9720 2004-01-30  Richard Henderson  <rth@redhat.com>
9721
9722         * varasm.c (struct rtx_const, struct pool_constant): Remove.
9723         (MAX_RTX_HASH_TABLE): Remove.
9724         (const_rtx_hash_table, const_rtx_sym_hash_table): Remove.
9725         (first_pool, last_pool, pool_offset): Remove.
9726         (struct rtx_constant_pool): Split out from ...
9727         (struct varasm_status): ... here.  Reference one via pointer.
9728         (struct constant_descriptor_rtx): Merge struct pool_constant.
9729         (SYMHASH): Remove.
9730         (decode_rtx_const): Remove.
9731         (const_hash_rtx, compare_constant_rtx): Remove.
9732         (record_constant_rtx): Remove.
9733         (const_desc_rtx_hash, const_desc_rtx_eq): New.
9734         (const_desc_rtx_sym_hash, const_desc_rtx_sym_eq): New.
9735         (const_rtx_hash_1, const_rtx_hash): New.
9736         (init_varasm_status): Allocate a rtx_constant_pool, and its hashes.
9737         (simplify_subtraction): Use simplify_rtx.
9738         (force_const_mem): Rewrite to use new data structures.
9739         (find_pool_constant): Likewise.
9740         (get_pool_constant, get_pool_constant_mark,
9741         get_pool_constant_for_function, get_pool_mode,
9742         get_pool_mode_for_function, get_pool_offset, get_pool_size): Likewise.
9743         (output_constant_pool_2): Split out from output_constant_pool.
9744         (output_constant_pool_1): Likewise.  Use new pool datastructures.
9745         (output_constant_pool): Zap entire pool datastructure.
9746         (mark_constant): Use new pool datastructures.
9747         (mark_constants): Use for_each_rtx.
9748         (mark_constant_pool): Use new pool datastructures.
9749
9750 2004-01-30  Fariborz Jahanian <fjahanian@apple.com>
9751
9752         * config/rs6000/rs6000.c (rs6000_emit_move): Remove #if 0.
9753         Copy operands[1] to pseudo for simplify_gen_subreg.
9754
9755 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
9756
9757         * gcse.c (bypass_block): Fix a typo in the previous check-in
9758         to the file.
9759
9760 2004-01-30  Andrew Pinski <pinskia@physics.uc.edu>
9761
9762         * toplev.c: Include alloc-pool.h.
9763         * Makefile.in (toplev.c): Update dependencies.
9764
9765 2004-01-30  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9766
9767         * combine.c (simplify_shift_const, case XOR): Be careful when
9768         commuting XOR with ASHIFTRT.
9769
9770 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
9771             Eric Botcazou  <ebotcazou@libertysurf.fr>
9772
9773         * config/sparc/sparc-protos.h: Remove the prototype for
9774         sparc_builtin_saveregs.
9775         * config/sparc/sparc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
9776         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
9777         (TARGET_PROMOTE_PROTOTYPES): Likewise.
9778         (TARGET_STRUCT_VALUE_RTX): Likewise.
9779         (TARGET_RETURN_IN_MEMORY): Likewise.
9780         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
9781         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
9782         (sparc_builtin_saveregs): Make it static.
9783         (sparc_promote_prototypes): New.
9784         (sparc_struct_value_rtx): Likewise.
9785         (sparc_return_in_memory): Likewise.
9786         * config/sparc/sparc.h: (PROMOTE_FUNCTION_ARGS): Remove.
9787         (PROMOTE_FUNCTION_RETURN): Likewise.
9788         (RETURN_IN_MEMORY): Likewise.
9789         (STRUCT_VALUE): Likewise.
9790         (STRUCT_VALUE_INCOMING): Likewise.
9791         (EXPAND_BUILTIN_SAVEREGS): Likewise.
9792         (STRICT_ARGUMENT_NAMING): Likewise.
9793         (PROMOTE_PROTOTYPES): Likewise.
9794
9795         * config/sparc/sparc.h (PROMOTE_MODE): Use word_mode.
9796
9797 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
9798
9799         PR c/12818
9800         * varasm.c (const_hash_1) <STRING_CST>: Use the
9801         address to compute the hash value if flag_writable_strings.
9802         (compare_constant) <STRING_CST>: Compare the addresses
9803         if flag_writable_strings.
9804         (build_constant_desc): Do not copy the expression for a
9805         STRING_CST if flag_writable_strings.
9806
9807 2004-01-30  Jan Hubicka  <jh@suse.cz>
9808
9809         * alloc-pool.c: Include hashtab.h
9810         (alloc_pool_descriptor): New structure
9811         (alloc_pool_hash): New global variable.
9812         (hash_descriptor, eq_descriptor, alloc_pool_descriptor): New.
9813         (create_alloc_pool): Update statistics.
9814         (free_alloc_pool): Likewise.
9815         (pool_alloc): Likewise.
9816         (output_info): New structure
9817         (print_statistics, dump_alloc_pool_statistics): New function.
9818         * alloc-pool.h (alloc_pool_def): Turn name to be constant.
9819         (dump_alloc_pool_statistics): Declare.
9820         * toplev.c (finalize):  Dump statistics.
9821
9822         * reload.c (secondary_memlocs_elim_used): New static variable.
9823         (get_secondary_mem): Update it.
9824         (find_reloads): Use it.
9825
9826 2004-01-30  Steven Bosscher <s.bosscher@student.tudelft.nl>
9827
9828         * toplev.c: Fix broken checkin of 2003-12-30, again.
9829
9830 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
9831
9832         * configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for
9833         s390*-*-* targets by specifying a 'nop' insn.
9834         * configure: Regenerate.
9835
9836 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
9837
9838         PR target/11475
9839         * config/sparc/sparc.md (movhi_lo_sum): Tighten predicates.
9840
9841 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
9842
9843         * emit-rtl.c (change_address): Use XEXP (memref, 0) instead
9844         of addr when creating MEM copy.
9845
9846 2004-01-29  Devang Patel  <dpatel@apple.com>
9847
9848         * dwarf2out.c (gen_field_die): Do not equate decl number to die.
9849
9850 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
9851
9852         PR inline-asm/6162
9853         * reload.c (find_reloads): Only support one pair of commutative
9854         operands.
9855
9856 2004-01-29  Roger Sayle  <roger@eyesopen.com>
9857
9858         PR java/13824
9859         * tree.c (unsafe_for_reeval): Handle EXIT_BLOCK_EXPR nodes specially
9860         as their EXIT_BLOCK_LABELED_BLOCK operands can lead to unbounded
9861         recursion.
9862
9863 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
9864
9865         * config/frv/frv.c: Don't mention deprecated macros in
9866         comments.  Remove some target-independent comments about
9867         target macros.
9868         * config/frv/frv.h: Likewise.
9869
9870 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9871
9872         * cfghooks.c (split_block): Set probability and count of the
9873         new edge.
9874
9875 2005-01-29  Josef Zlomek  <zlomekj@suse.cz>
9876
9877         * dwarf2out.c (struct die_struct): Added field decl_id.
9878         (decl_die_table): Changed to hash table.
9879         (decl_die_table_allocated): Deleted.
9880         (decl_die_table_in_use): Deleted.
9881         (DECL_DIE_TABLE_INCREMENT): Deleted.
9882         (decl_die_table_hash): New function.
9883         (decl_die_table_eq): New function.
9884         (lookup_decl_die): Lookup in a hash table.
9885         (equate_decl_number_to_die): Insert into a hash table.
9886         (dwarf2out_init): Init hash table decl_die_table.
9887
9888 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
9889
9890         PR optimization/13424
9891         * expr.c (store_constructor): Revert 2003-12-03 change.
9892
9893         * emit-rtl.c (change_address): Check also if MEM_ATTRS is set as
9894         expected before returning early.  Avoid sharing RTL if they
9895         need to be changed.
9896
9897         * config/i386/i386.c (ix86_expand_movstr): Rework rep_mov and strmov
9898         handling so that memory attributes are preserved.  Don't call
9899         ix86_set_move_mem_attrs.
9900         (ix86_set_move_mem_attrs_1, ix86_set_move_mem_attrs): Removed.
9901         (ix86_expand_clrstr): Rename src argument to
9902         dst.  Rework rep_stos and strset handling so that memory attributes
9903         are preserved.
9904         (ix86_expand_strlen): Pass src argument to
9905         ix86_expand_strlensi_unroll_1.  Rework strlenqi_1 handling so that
9906         memory attributes are preserved.
9907         (ix86_expand_strlensi_unroll_1): Add src argument.  Use
9908         change_address instead of gen_rtx_MEM.
9909         * config/i386/i386.md (strmov, strmov_singleop, rep_mov): New
9910         expanders.
9911         (strmovdi_rex64, strmovsi, strmovsi_rex64, strmovhi, strmovhi_rex64,
9912         strmovqi, strmovqi_rex64): Remove.
9913         (rep_mov*, strmov*): Prefix insn names with *.
9914         (strset, strset_singleop, rep_stos): New expanders.
9915         (strsetdi_rex64, strsetsi, strsetsi_rex64, strsethi, strsethi_rex64,
9916         strsetqi, strsetqi_rex64): Remove.
9917         (rep_stos*, strset*): Prefix insn names with *.
9918         (rep_stosqi_rex64): Likewise.  Fix mode of dirflag reg from DImode
9919         to SImode.
9920         (cmpstrsi): Rework cmpstrqi_1 handling so that memory attributes
9921         are preserved.
9922         (cmpstrqi_nz_1, cmpstrqi_nz_rex_1, cmpstrqi_1, cmpstrqi_rex_1):
9923         Prefix insn names with *.
9924         (cmpstrqi_nz_1, cmpstrqi_1): New expanders.
9925         (strlenqi_1, strlenqi_rex_1): Prefix insn names with *.
9926         (strlenqi_1): New expander.
9927         * config/i386/i386.h (ix86_set_move_mem_attrs): Remove prototype.
9928
9929 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9930
9931         * Makefile.in (cfghooks.o): Add TIMEVAR_H and toplev.h dependency.
9932         * basic-block.h (tidy_fallthru_edge, tidy_fallthru_edges, dump_bb,
9933         verify_flow_info): Declaration removed.
9934         * cfg.c (verify_flow_info, dump_bb): Moved to cfghooks.c.
9935         (debug_bb, debug_bb_n): Add argument to dump_bb call.
9936         * cfgcleanup.c (try_simplify_condjump, try_crossjump_to_edge,
9937         try_optimize_cfg, delete_unreachable_blocks): Use delete_basic_block
9938         instead of delete_block.
9939         * cfghooks.c: Include timevar.h and toplev.h.
9940         (cfg_hooks): Define here.
9941         (verify_flow_info, dump_bb): Moved from cfg.c.
9942         (redirect_edge_and_branch, redirect_edge_and_branch_force,
9943         split_block, split_block_after_labels, move_block_after,
9944         delete_basic_block, split_edge, create_basic_block,
9945         create_empty_bb, can_merge_blocks_p, merge_blocks,
9946         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
9947         New functions.
9948         * cfghooks.h (struct cfg_hooks): Added fields name,
9949         make_forwarder_block, tidy_fallthru_edge and
9950         move_block_after. Changed type of verify_flow_info, dump_bb,
9951         split_block fields. Renamed cfgh_split_edge and delete_block
9952         fields.
9953         (redirect_edge_and_branch, redirect_edge_and_branch_force,
9954         split_block, delete_block, split_edge, create_basic_block,
9955         can_merge_blocks_p, merge_blocks): Macros removed.
9956         (cfg_hooks): Do not export.
9957         (verify_flow_info, dump_bb, redirect_edge_and_branch,
9958         redirect_edge_and_branch_force, split_block, split_block_after_labels,
9959         move_block_after, delete_basic_block, split_edge, create_basic_block,
9960         create_empty_bb, can_merge_blocks_p, merge_blocks,
9961         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
9962         Declare.
9963         (cfg_layout_rtl_cfg_hooks): Declare.
9964         * cfgloop.c (update_latch_info, mfb_keep_just, mfb_keep_nonlatch):
9965         New functions.
9966         (canonicalize_loop_headers): Use new semantics of make_forwarder_block.
9967         (redirect_edge_with_latch_update): Removed.
9968         (make_forwarder_block): Moved to cfghooks.c, semantics changed.
9969         * cfgloopmanip.c (remove_bbs): Do not update dominators here.
9970         * cfgrtl.c (cfg_layout_split_block, rtl_split_block, rtl_dump_bb,
9971         rtl_delete_block, rtl_split_block, rtl_merge_blocks,
9972         tidy_fallthru_edge, rtl_split_edge, cfg_layout_delete_block,
9973         cfg_layout_merge_blocks, cfg_layout_split_edge): Partly moved to
9974         cfghooks.c.
9975         (rtl_create_basic_block): Coding style fix.
9976         (rtl_tidy_fallthru_edge, rtl_move_block_after,
9977         rtl_make_forwarder_block): New functions.
9978         (update_cfg_after_block_merging): Removed.
9979         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hooks): Fill in new entries.
9980         * flow.c (verify_wide_reg, verify_local_live_at_start): Add argument
9981         to dump_bb.
9982         * ifcvt.c (merge_if_block, find_cond_trap, find_if_case_1,
9983         find_if_case_2): Don't update dominators.
9984         * timevar.def (TV_CFG_VERIFY): New.
9985         * loop-unswitch.c (unswitch_loop): Don't call add_to_dominance_info.
9986         * cfglayout.c (copy_bbs): Don't call add_to_dominance_info.
9987         * cfgloopmanip.c (split_loop_bb): Don't update dominators.
9988         (remove_bbs): Don't call remove_bbs.
9989         (create_preheader): Use make_forwarder_block.
9990         (mfb_keep_just, mfb_update_loops): New static functions.
9991
9992 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
9993
9994         * config/avr/avr.h: Remove target-independent comments about
9995         target macros.
9996
9997 2004-01-28  Daniel Berlin  <dberlin@dberlin.org>
9998
9999         * timevar.c (timevar_print): Mention when checking is enabled.
10000
10001 2004-01-28  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
10002
10003         * c-lex.c (c_lex): Rename to...
10004         (c_lex_with_flags): Add new parameter to get CPP flags.
10005         (c_lex): Thunk to c_lex_with_flags while keeping the old interface.
10006         * c-pragma.h (c_lex_with_flags): Declare.
10007
10008 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
10009
10010         * config/mcore/mcore.c (mcore_external_libcall): Add a
10011         comment.
10012         (mcore_return_in_memory): Likewise.
10013
10014 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
10015
10016         * config/mcore/mcore-protos.h: Remove the prototype for
10017         mcore_setup_incoming_varargs.
10018         * config/mcore/mcore.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
10019         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
10020         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
10021         (TARGET_PROMOTE_PROTOTYPES): Likewise.
10022         (TARGET_STRUCT_VALUE_RTX): Likewise.
10023         (TARGET_RETURN_IN_MEMORY): Likewise.
10024         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
10025         (mcore_setup_incoming_varargs): Make it static.  Receive the
10026         first argument by reference.  Add argument second_time.
10027         (mcore_external_libcall): New.
10028         (mcore_return_in_memory): Likewise.
10029         * config/mcore/mcore.h (PROMOTE_FUNCTION_ARGS): New.
10030         (PROMOTE_FUNCTION_RETURN): Likewise.
10031         (STRUCT_VALUE): Likewise.
10032         (RETURN_IN_MEMORY): Likewise.
10033         (SETUP_INCOMING_VARARGS): Likewise.
10034         (PROMOTE_PROTOTYPES): Likewise.
10035         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
10036
10037 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
10038
10039         * config/m32r/m32r-protos.h: Remove the prototype for
10040         m32r_setup_incoming_varargs.
10041         * config/m32r/m32r.c (TARGET_PROMOTE_PROTOTYPES): New.
10042         (TARGET_STRUCT_VALUE_RTX): Likewise.
10043         (TARGET_RETURN_IN_MEMORY): Likewise.
10044         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
10045         (m32r_return_in_memory): New.
10046         (m32r_setup_incoming_varargs): Make it static.
10047         * config/m32r/m32r.h: Remove #undef of
10048         ASM_OUTPUT_EXTERNAL_LIBCALL.  Remove the commented-out
10049         definitions of PROMOTE_FUNCTION_ARGS and
10050         PROMOTE_FUNCTION_RETURN.
10051         (PROMOTE_PROTOTYPES): Remove.
10052         (RETURN_IN_MEMORY): Likewise.
10053         (STRUCT_VALUE): Likewise.
10054
10055 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
10056
10057         * config/m68k/m68k.c (TARGET_PROMOTE_PROTOTYPES): New.
10058         (TARGET_STRUCT_VALUE_RTX): Likewise.
10059         (m68k_struct_value_rtx): Likewise.
10060         * config/m68k/m68k.h (STRUCT_VALUE_REGNUM): Rename to
10061         STRUCT_VALUE_REGNUM.
10062         (PROMOTE_PROTOTYPES): Remove.
10063         * config/m68k/m68kelf.h (STRUCT_VALUE_REGNUM): Rename to
10064         STRUCT_VALUE_REGNUM.
10065         * config/m68k/m68kv4.h (STRUCT_VALUE_REGNUM): Likewise.
10066         * config/m68k/netbsd-elf.h (STRUCT_VALUE_REGNUM): Likewise.
10067
10068 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
10069
10070         * config/stormy16/stormy16.c
10071         (TARGET_BUILD_BUILTIN_VA_LIST_TYPE): Rename to
10072         TARGET_BUILD_BUILTIN_VA_LIST.
10073
10074 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
10075
10076         * config/v850/v850.c (TARGET_PROMOTE_PROTOTYPES): New.
10077         (TARGET_STRUCT_VALUE_RTX): Likewise.
10078         (TARGET_RETURN_IN_MEMORY): Likewise.
10079         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
10080         (v850_return_in_memory): Likewise.
10081         (v850_setup_incoming_varargs): Likewise.
10082         * config/v850/v850.h (PROMOTE_PROTOTYPES): Remove.
10083         (SETUP_INCOMING_VARARGS): Likewise.
10084         (RETURN_IN_MEMORY): Likewise.
10085         (STRUCT_VALUE): Likewise.
10086
10087 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
10088
10089         * config/fr30/fr30.c (TARGET_PROMOTE_PROTOTYPES): New.
10090         (fr30_setup_incoming_varargs): Don't use
10091         STRICT_ARGUMENT_NAMING.
10092         * config/fr30/fr30.h (PROMOTE_PROTOTYPES): Remove.
10093         (STRICT_ARGUMENT_NAMING): Likewise.
10094
10095 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
10096
10097         * config/frv/frv-protos.h: Remove the prototype for
10098         frv_expand_builtin_saveregs.
10099         * config/frv/frv.c (TARGET_STRUCT_VALUE_RTX): Likewise.
10100         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
10101         (frv_stack_info): Use FRV_STRUCT_VALUE_REGNUM instead of
10102         STRUCT_VALUE_REGNUM.
10103         (frv_expand_builtin_saveregs): Make it static.
10104         (frv_struct_value_rtx): New.
10105         * config/frv/frv.h (EXPAND_BUILTIN_SAVEREGS): Remove.
10106
10107 2004-01-29  Jan Hubicka  <jh@suse.cz>
10108
10109         PR c++/12850
10110         * cgraph.c (cgraph_remove_node): Clear out saved/insns/arguments and
10111         initial pointers.
10112         * cgraphunit.c (cgraph_finalize_function): Clear out DECL_SAVED_INSNS
10113         for functions that will be only inlined.
10114         (cgraph_mark_function_to_output): Likewise.
10115         (cgraph_expand_function): Sanity check that DECL_DEFER_OUTPUT is clear;
10116         do not clear function body.
10117         * tree-optimize.c (clear_decl_rtl): Use decl_function_context.
10118         (tree_rest_of_compilation): Reorganize the logic releasing function
10119         body to use callgraph datastructure.
10120
10121 2004-01-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10122
10123         * pa.md: Change predicate of a peephole2 pattern from reg_or_0_operand
10124         to register_operand.
10125
10126 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
10127
10128         * config/ia64/ia64.md (fetchadd_acq_si, fetchadd_acq_di)
10129         (cmpxchg_acq_si, cmpxchg_acq_di): Exchange match_dup and
10130         match_operand expressions so that all match_dups appear
10131         lexically after their corresponding match_operands.
10132
10133 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
10134
10135         * config/h8300/h8300.c (WORD_REG_USED): Use
10136         HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM.
10137         (compute_saved_regs): Likewise.
10138         (h8300_expand_prologue): Likewise.  Allocate locals after
10139         saving registers.
10140         (h8300_expand_epilogue): Use HARD_FRAME_POINTER_REGNUM instead
10141         of FRAME_POINTER_REGNUM.  Deallocate locals before saving
10142         registers.
10143         (h8300_initial_elimination_offset): Adjust for the new frame
10144         layout, which swaps flips the order of locals and saved
10145         registers.
10146         * config/h8300/h8300.h (FIRST_PSEUDO_REGISTER): Change to 12.
10147         (HARD_FRAME_POINTER_REGNUM): New.
10148         (ELIMINABLE_REGS): Add an elimination rule from
10149         FRAME_POINTER_REGNUM to HARD_FRAME_POINTER_REGNUM.
10150         (REGISTER_NAMES): Add fp.
10151         * config/h8300/h8300.md (FP_REG): Change to 11.
10152         (HFP_REG): New.
10153
10154 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
10155
10156         * genrecog.c (write_node): Remove a useless local variable.
10157
10158 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
10159
10160         * Makefile.in (options.c options.h): Use stamp file s-options to
10161         avoid unnecessary rebuilds.
10162         (options.o): New target listing dependencies.
10163         (gtyp-gen.h): Use stamp file s-gtyp-gen.
10164         (STAGESTUFF): Add s-gtyp-gen.
10165
10166 2004-01-28  Richard Henderson  <rth@redhat.com>
10167
10168         * ggc.h (ggc_free): Declare.
10169         * ggc-common.c (ggc_realloc): Use it.
10170         * ggc-page.c: Remove lots of inline markers.
10171         (globals): Add free_object_list.
10172         (ggc_alloc): Tidy.
10173         (ggc_free, validate_free_objects): New.
10174         (poison_pages): Provide default.
10175         (ggc_collect): Call validate_free_objects; emit markers to
10176         the debug file.
10177
10178 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
10179             Jim Wilson  <wilson@specifixinc.com>
10180
10181         * config/ia64/ia64.c (ia64_split_tmode, ia64_split_tmode_move):
10182         Rewrite to use POST_INC/POST_DEC/POST_MODIFY instead of a
10183         scratch pointer.
10184         (ia64_secondary_reload_class): Delete case GR_REGS.
10185         * config/ia64/ia64.md (movti, *movti_internal, movtf, *movtf_internal):
10186         Do not allocate a scratch register.
10187         (reload_inti, reload_outti, reload_intf, reload_outtf): Delete.
10188
10189 2004-01-28  Jan Hubicka  <jh@suse.cz>
10190
10191         * gcse.c (bypass_block): Prevent edges to be unified when we are
10192         about to emit compenstation code.
10193
10194 2004-01-28  Nick Clifton  <nickc@redhat.com>
10195
10196         * config/arm/arm.c (arm_expand_builtin): Force second argument of
10197         the setcwx insn into a register.
10198
10199 2004-01-28  Richard Sandiford  <rsandifo@redhat.com>
10200
10201         * config/fp-bit.c (pack_d): When using paired doubles to implement
10202         a long double, round the high part separately.
10203         (unpack_d): Fix the case in which the high part is a power of two
10204         and the low part is a nonzero value of the opposite sign.
10205
10206 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
10207
10208         * config/c4x/c4x.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
10209         (TARGET_STRUCT_VALUE_RTX): Likewise.
10210         (c4x_external_libcall): Likewise.
10211         (c4x_struct_value_rtx): Likewise.
10212         * config/c4x/c4x.h: Remove.
10213         (STRUCT_VALUE_REGNUM): Likewise.
10214         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
10215
10216 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
10217
10218         * config/i386/i386.c (TARGET_PROMOTE_PROTOTYPES): New.
10219         (TARGET_STRUCT_VALUE_RTX): Likewise.
10220         * config/i386/i386.h (STRUCT_VALUE_INCOMING): Remove.
10221         (STRUCT_VALUE): Likewise.
10222         (PROMOTE_PROTOTYPES): Likewise.
10223
10224 2004-01-27  Roger Sayle  <roger@eyesopen.com>
10225
10226         * config/pa/pa.c (emit_move_sequence): Check that operand1 is a
10227         CONST_INT before using INTVAL.
10228
10229 2004-01-27  Ulrich Weigand  <uweigand@de.ibm.com>
10230
10231         * config/s390/s390.h (TARGET_DEFAULT): Default to !TARGET_BACKCHAIN.
10232         * config/s390/s390.c (s390_return_addr_rtx): Fail for all but current
10233         frame if !TARGET_BACKCHAIN.
10234         * config/s390/s390.md ("allocate_stack"): Use pattern only if
10235         TARGET_BACKCHAIN.
10236         * doc/invoke.texi (-mbackchain/-mno-backchain): Document new default.
10237
10238 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
10239
10240         * ia64.c (ia64_function_arg): When placing HFAs in integer
10241         registers, do not special case the mode used for complex
10242         types.  Do not advance int_regs until the current register
10243         is full.
10244
10245 2004-01-27  Richard Sandiford  <rsandifo@redhat.com>
10246
10247         PR target/7297
10248         * except.c (init_eh): Use a 5-word __jbuf for __builtin_setjmp().
10249
10250 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
10251
10252         * config/rs6000/rs6000.c (rs6000_emit_move): #if 0 splitting
10253         slow, unaligned loads and stores while debugging.  Fix formatting.
10254
10255 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
10256
10257         * config/rs6000/rs6000.md (save_stack_nonlocal): Use Pmode instead
10258         of computing wmode.
10259         (restore_stack_nonlocal): Same.
10260
10261 2004-01-27  Devang Patel <dpatel@apple.com>
10262
10263         * Makefile.in (dwarf2out.o): Depend on input.h
10264         * dbxout.c (dbx_debug_hooks): Add new empty hook for
10265         imported_module_or_decl.
10266         (xcoff_debug_hooks): Same.
10267         * sdbout.c (sdb_debug_hooks): Same.
10268         * vmsdbgout.c (vmsdbg_debug_hooks): Same.
10269         * debug.c (do_nothing_debug_hooks): Same.
10270         (debug_nothing_tree_tree): New function.
10271         * debug.h (gcc_debug_hooks): New hook, imported_module_or_decl.
10272         * dwarf2out.c: Include input.h.
10273         (dwarf2_debug_hooks): Add new hook for imported_module_or_decl.
10274         (remove_child_TAG): New function.
10275         (dwarf_tag_name): Handle DW_TAG_imported_module.
10276         (gen_subprogram_die): Equate decl number to declaration die. Do not
10277         remove all children dies while reusing declaration die for definition.
10278         Instead, selectively remove only formal parameters.
10279         (gen_variable_die): Equate variable decl to declaration die.
10280         (gen_field_die): Equate field decl to line number.
10281         (force_namespace_die): Replace it with ...
10282         (force_decl_die): ... this.
10283         (force_type_die): New function.
10284         (setup_namespace_context): Replace use of force_namespace_die() with
10285         force_decl_die().
10286         (gen_namespace_die): Same.
10287         (dwarf2out_imported_module_or_decl): New function.
10288
10289 2004-01-27  Bob Wilson  <bob.wilson@acm.org>
10290
10291         * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Remove SUBREG
10292         on CQImode and CHImode incoming arguments in register a7.
10293         (function_arg): Wrap BLKmode argument in register a7 in a PARALLEL.
10294         * config/xtensa/xtensa.h (BLOCK_REG_PADDING): Define.
10295         * config/xtensa/xtensa.md (movdi, movdf): Only call force_reg or
10296         xtensa_copy_incoming_a7 before reload.
10297
10298 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
10299
10300         * coverage.c (get_coverage_counts): Give a different message
10301         if flag_guess_branch_prob is set.
10302         * predict.c (counts_to_freqs): Return an int.
10303         (estimate_bb_frequencies): If counts_to_freqs returns zero,
10304         calculate estimates.
10305
10306 2004-01-27  Kazu Hirata  <kazu@cs.umass.edu>
10307
10308         * config/iq2000/iq2000-protos.h: Remove the prototype for
10309         iq2000_setup_incoming_varargs.
10310         * config/iq2000/iq2000.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
10311         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
10312         (TARGET_PROMOTE_PROTOTYPES): Likewise.
10313         (TARGET_STRUCT_VALUE_RTX): Likewise.
10314         (TARGET_RETURN_IN_MEMORY): Likewise.
10315         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
10316         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
10317         (iq2000_return_in_memory): Likewise.
10318         (iq2000_setup_incoming_varargs): Make it static.  Receive the
10319         first argument by reference.
10320         * config/iq2000/iq2000.h (PROMOTE_FUNCTION_ARGS): Remove.
10321         (PROMOTE_FUNCTION_RETURN): Likewise.
10322         (PROMOTE_PROTOTYPES): Likewise.
10323         (RETURN_IN_MEMORY): Likewise.
10324         (STRUCT_VALUE): Likewise.
10325         (SETUP_INCOMING_VARARGS): Likewise.
10326         (STRICT_ARGUMENT_NAMING): Likewise.
10327
10328 2004-01-24  James A. Morrison  <ja2morri@uwaterloo.ca>
10329
10330         * fixinc/fixinc.c (test_test): Initialize res.
10331         (start_flexer): Initialize pz_cmd_save.
10332
10333 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
10334
10335         * doc/rtl.texi (Arithmetic): Rewrite entries for PLUS,
10336         SS_PLUS, US_PLUS, LO_SUM, MINUS, SS_MINUS, US_MINUS.
10337
10338 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
10339
10340         PR 7198
10341         * config/ia64/ia64.md (*nmaddsf4, *nmadddf4, *nmadddf4_alts)
10342         (*nmadddf4_trunc, *nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf)
10343         (*nmaddxf4_alts, *nmaddxf4_truncdf_alts):
10344         Rewrite pattern as (minus (op 3) (mult (op 1) (op 2))).
10345         Possibly rename pattern for consistency.
10346         Remove ??? comments suggesting that this be done.
10347         (*nmaddsf4_alts, *nmadddf4_truncsf_alts, *nmaddxf4_truncsf_alts):
10348         New patterns.
10349         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr)
10350         (divsf3_internal_lat, divsf3_internal_thr, sqrtsf2_internal_thr)
10351         (divdf3_internal_lat, divdf3_internal_thr, sqrtdf2_internal_thr)
10352         (divxf3_internal_lat, divxf3_internal_thr, sqrtxf2_internal_thr):
10353         Update to match.
10354
10355 2004-01-27  Ian Lance Taylor  <ian@wasabisystems.com>
10356
10357         * config/arm/arm.c (output_return_instruction): Only restore IP
10358         into SP if frame_pointer_needed.
10359
10360 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
10361
10362         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
10363         for SCmode and DCmode if ARCH32.
10364         (sparc_va_arg): Handle SCmode and DCmode by reference if ARCH32.
10365         * config/sparc/sparc.h (RETURN_IN_MEMORY): Return 0 for TCmode
10366         if ARCH32.
10367         (BASE_RETURN_VALUE_REG): Return 32 for all FP modes except TFmode
10368         if ARCH32.
10369         (BASE_OUTGOING_VALUE_REG): Likewise.
10370
10371 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
10372
10373         PR target/10904
10374         PR target/13058
10375         * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): New.
10376         Forbid mode changes from SImode for lower FP regs if ARCH64.
10377
10378 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
10379
10380         * Makefile.in (bt-load.o): Depend on except.h.
10381         * bt-load.c (except.h): #include.
10382         (compute_defs_uses_and_gen): If insn at end of BB can throw
10383         within this function, consider registers used by it unavailable for
10384         btr migration.
10385         (move_btr_def): If insn at end of BB can throw, insert before rather
10386         than after.
10387
10388         * flags.h (flag_btr_bb_exclusive): Declare.
10389         * toplev.c (flag_btr_bb_exclusive): New variable.
10390         (f_options): Add btr-bb-exclusive.
10391         * bt-load.c (augment_live_range): Restore old behaviour if
10392         flag_btr_bb_exclusive is set.
10393         * common.opt: Add entry for -fbtr-bb-exclusive.
10394         * opts.c (common_handle_options): Same.
10395         * doc/invoke.texi: Document -fbtr-bb-exclusive.
10396
10397         * bt-load.c (btrs_live_at_end): New variable.
10398         (compute_defs_uses_and_gen): Compute its pointed-to array.
10399         (clear_btr_from_live_range, add_btr_to_live_range): Update it.
10400         (augment_live_range): When augmenting with a new dominator,
10401         use only its btrs_live_at_end set, but also add in the full set
10402         of the old dominator.
10403         (btr_def_live_range): Use btrs_live_at_end.
10404         (move_btr_def): Set other_btr_uses_before_def, and move new set
10405         to the end of the basic block, if appropriate.
10406         (migrate_btr_defs): Allocate and free btrs_live_at_end.
10407
10408         * bt-load.c (basic_block_freq): Remove outdated comment.
10409
10410 2004-01-27  Alan Modra  <amodra@bigpond.net.au>
10411
10412         * config/rs6000/rs6000.h: Correct target_flags free bits comment.
10413         (PREDICATE_CODES): Remove duplicate.
10414         * config/rs6000/linux64.h (CPP_SYSV_SPEC): Don't define.
10415         (SUBSUBTARGET_OVERRIDE_OPTIONS): Disallow 32 bit TARGET_PROFILE_KERNEL.
10416         (MASK_PROFILE_KERNEL): Adjust define.
10417
10418 2004-01-27  Jakub Jelinek  <jakub@redhat.com>
10419
10420         * config/i386/i386.c (ix86_constant_alignment): Decrease alignment
10421         of long string literals from 32 bytes to sizeof (void *) when !-Os
10422         and to 1 with -Os.
10423
10424 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
10425
10426         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Accept
10427         constant addresses in the normal mode.
10428
10429 2004-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10430
10431         * system.h (CHAR_BITFIELD): Delete.
10432         (BOOL_BITFIELD): New.
10433         * c-decl.c (c_scope): Use BOOL_BITFIELD.
10434         * gengtype-lex.l: Recognize BOOL_BITFIELD instead of CHAR_BITFIELD.
10435
10436 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
10437
10438         * config/arc/arc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
10439         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
10440         (TARGET_PROMOTE_PROTOTYPES): Likewise.
10441         (TARGET_STRUCT_VALUE_RTX): Likewise.
10442         (TARGET_RETURN_IN_MEMORY): Likewise.
10443         (arc_return_in_memory): Likewise.
10444         * config/arc/arc.h (PROMOTE_FUNCTION_ARGS): Remove.
10445         (PROMOTE_FUNCTION_RETURN): Likewise.
10446         (RETURN_IN_MEMORY): Likewise.
10447         (STRUCT_VALUE): Likewise.
10448
10449 2004-01-26  Richard Henderson  <rth@redhat.com>
10450
10451         * c-parse.in (extension): Use itype.
10452         (SAVE_EXT_FLAGS): Don't allocate a tree.
10453         (RESTORE_EXT_FLAGS): Don't read a tree.
10454
10455 2004-01-26  Jan Hubicka  <jh@suse.cz>
10456
10457         * cselib.c (discard_useless_values):  Clear out value pointer pointing
10458         to datastructure to be recycled.
10459
10460 2004-01-25  Jan Hubicka  <jh@suse.cz>
10461
10462         * genextract.c (main): Do not output the memset when not checking.
10463
10464 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
10465
10466         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Use a
10467         switch statement instead of a chain of if statements.
10468
10469 2004-01-26  Jeff Law  <law@redhat.com>
10470
10471         * doc/contrib.texi: Minor cleanup for Paolo Carlini's entry.  Add
10472         acute accents for Petur Runolfsson's entry.
10473
10474 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
10475
10476         * config/pdp11/pdp11.c (TARGET_STRUCT_VALUE_RTX): New.
10477         (TARGET_RETURN_IN_MEMORY): Likewise.
10478         * config/pdp11/pdp11.h (STRUCT_VALUE): Remove.
10479         (RETURN_IN_MEMORY): Likewise.
10480
10481 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
10482
10483          * config/rs6000/rs6000.c (rs6000_emit_move): split slow
10484          unaligned load/store into smaller loads and stores.
10485
10486 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
10487
10488         * function.c (assign_parms): Do not assign
10489         long long argument to memory in prologue if
10490         is it loaded into register.
10491
10492 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
10493
10494          PR middle-end/13779
10495          * expr.c (emit_group_load): split constant
10496          correctly into register components of PARALLEL insn.
10497
10498 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
10499
10500         * gcc/config/rs6000/rs6000.md (save_stack_nonlocal):
10501         Use adjust_address_nv directly with appropriate mode.
10502         (restore_stack_nonlocal): Ditto.
10503
10504 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
10505
10506         * config/xtensa/xtensa-protos.h: Remove the prototype for
10507         xtensa_builtin_saveregs.
10508         * config/xtensa/xtensa.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
10509         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
10510         (TARGET_PROMOTE_PROTOTYPES): Likewise.
10511         (TARGET_STRUCT_VALUE_RTX): Likewise.
10512         (TARGET_RETURN_IN_MEMORY): Likewise.
10513         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
10514         (xtensa_builtin_saveregs): Make it static.
10515         (xtensa_return_in_memory): New.
10516         * config/xtensa/xtensa.h (PROMOTE_FUNCTION_ARGS: Remove.
10517         (PROMOTE_FUNCTION_RETURN): Likewise.
10518         (PROMOTE_PROTOTYPES): Likewise.
10519         (STRUCT_VALUE): Likewise.
10520         (RETURN_IN_MEMORY): Likewise.
10521         (EXPAND_BUILTIN_SAVEREGS): Likewise.
10522
10523 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
10524
10525         * config/arm/arm.c (TARGET_SETUP_INCOMING_VARARGS): New.
10526         (arm_setup_incoming_varargs): Likewise.
10527         * config/arm/arm.h (SETUP_INCOMING_VARARGS): Remove.
10528
10529 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
10530
10531         * config/cris/cris.c (TARGET_SETUP_INCOMING_VARARGS): New.
10532         (cris_setup_incoming_varargs): Likewise.
10533         * config/cris/cris.h (SETUP_INCOMING_VARARGS): Remove.
10534
10535 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
10536
10537         * config/ns32k/ns32k.c (TARGET_STRUCT_VALUE_RTX): New.
10538         (ns32k_struct_value_rtx): Likewise.
10539         * config/ns32k/ns32k.h (STRUCT_VALUE_REGNUM): Rename to
10540         NS32K_STRUCT_VALUE_REGNUM.
10541
10542 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
10543
10544         * config/arm/arm.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
10545         (TARGET_PROMOTE_PROTOTYPES): Likewise.
10546         (TARGET_STRUCT_VALUE_RTX): Likewise.
10547         (arm_struct_value_rtx): Likewise.
10548         * config/arm/arm.h (PROMOTE_FUNCTION_ARGS): Remove.
10549         (STRUCT_VALUE): Likewise.
10550         (STRUCT_VALUE_REGNUM): Likewise.
10551         (PROMOTE_PROTOTYPES): Likewise.
10552
10553 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
10554
10555         * config/ia64/ia64-protos.h: Remove the prototype for
10556         ia64_setup_incoming_varargs and ia64_return_in_memory.
10557         * config/ia64/ia64.c (TARGET_STRUCT_VALUE_RTX): New.
10558         (TARGET_RETURN_IN_MEMORY): Likewise.
10559         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
10560         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
10561         (ia64_setup_incoming_varargs): Adjust the arguments to meet
10562         the requirement of TARGET_SETUP_INCOMING_VARARGS.
10563         (ia64_return_in_memory): Make it static.  Change the return
10564         type to bool from int.  Add an argument.
10565         (ia64_struct_value_rtx): New.
10566         * config/ia64/ia64.h: Remove commented-out definitions of
10567         PROMOTE_FUNCTION_ARGS, PROMOTE_FUNCTION_RETURN, and
10568         PROMOTE_PROTOTYPES.
10569         (RETURN_IN_MEMORY): Remove.
10570         (STRUCT_VALUE_REGNUM): Likewise.
10571         (STRICT_ARGUMENT_NAMING): Likewise.
10572
10573 2004-01-26  Eric Botcazou  <ebotcazou@libertysurf.fr>
10574
10575         PR target/13666
10576         * config/sparc/sparc.c (function_arg_union_value): New function.
10577         (function_arg): Use it to deal with unions.
10578         (function_value): Likewise.  Define 'regbase' only for ARCH64.
10579         Replace a conditional statement by a simpler one.
10580
10581 2004-01-26  Richard Sandiford  <rsandifo@redhat.com>
10582
10583         * config/mips/mips.c (mips16_optimize_gp): Delete.
10584         (mips_reorg): Don't call it.
10585
10586 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10587
10588         * config/c4x/c4x.md (addqi3_noclobber): Move up pecking order.
10589         (floatunsqihf2): Remove operand 6.
10590         (fixhfqi_set, fix_trunchfqi2, fixuns_trunchfqi2): Group with other
10591         fix patterns.
10592         (ldi_conditional, ldf_conditional): Validate operands.
10593
10594 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10595
10596         * config/c4x/c4x.h (BCT_CHECK_LOOP_ITERATIONS): Remove.
10597         (HAVE_GAS_HIDDEN): Undefine as interim measure.
10598
10599 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10600
10601         * config/c4x/c4x.c (c4x_legitimate_address_p):  Invalidate direct
10602         memory references if TARGET_EXPOSE_LDP nonzero.
10603
10604 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10605
10606         * config/c4x/c4x.c (legitimize_operands): Truncate invalid shift counts.
10607
10608 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10609
10610         * config/c4x/c4x.c (c4x_valid_operands): More aggressively reject
10611         invalid operand combinations.
10612
10613 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10614
10615         * config/c4x/c4x.c (c4x_check_legit_addr): Rename to
10616         c4x_legitimate_address_p.  Fix post_modify check.
10617
10618         * config/c4x/c4x-protos.h (c4x_check_legit_addr): Adjust.
10619         * config/c4x/c4x.h (c4x_check_legit_addr): Adjust.
10620
10621 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
10622
10623         * config/pa/pa-protos.h: Remove the prototype for
10624         hppa_builtin_saveregs.  Add a prototype for
10625         pa_return_in_memory.
10626         * config/pa/pa.c (TARGET_PROMOTE_FUNCTION_RETURN): New.
10627         (TARGET_PROMOTE_PROTOTYPES): Likewise.
10628         (TARGET_STRUCT_VALUE_RTX): Likewise.
10629         (TARGET_RETURN_IN_MEMORY): Likewise.
10630         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
10631         (pa_struct_value_rtx): Likewise.
10632         (pa_return_in_memory): Likewise.
10633         * config/pa/pa.h (STRUCT_VALUE_REGNUM): Rename to
10634         PA_STRUCT_VALUE_REGNUM.
10635         (INIT_CUMULATIVE_ARGS): Use pa_return_in_memory.
10636         (EXPAND_BUILTIN_SAVEREGS): Remove.
10637         (PROMOTE_PROTOTYPES): Likewise.
10638         (PROMOTE_FUNCTION_RETURN): Likewise.
10639
10640 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
10641
10642         * config/vax/vax.c (TARGET_PROMOTE_PROTOTYPES): New.
10643         (TARGET_STRUCT_VALUE_RTX): Likewise.
10644         (vax_struct_value_rtx): Likewise.
10645         * config/vax/vax.h (STRUCT_VALUE_REGNUM): Rename to
10646         VAX_STRUCT_VALUE_REGNUM.
10647         (PROMOTE_PROTOTYPES): Remove.
10648
10649 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10650
10651         * config/c4x/c4x.h (LEGITIMIZE_RELOAD_ADDRESS):  Handle symref.
10652
10653 2003-04-25  Chris Demetriou  <cgd@broadcom.com>
10654
10655         * config/mips/mips.h (ISA_HAS_HILO_INTERLOCKS): MIPS32, MIPS32r2,
10656         and MIPS64 have HI/LO interlocks.  Update comment.
10657
10658 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
10659
10660         * config/stormy16/stormy16-protos.h: Remove the prototype for
10661         xstormy16_setup_incoming_varargs.
10662         * config/stormy16/stormy16.c
10663         (xstormy16_setup_incoming_varargs): Remove.
10664         (xstormy16_return_in_memory): New.
10665         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
10666         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
10667         (TARGET_PROMOTE_PROTOTYPES): Likewise.
10668         (TARGET_STRUCT_VALUE_RTX): Likewise.
10669         (TARGET_RETURN_IN_MEMORY): Likewise.
10670         * config/stormy16/stormy16.h (PROMOTE_FUNCTION_ARGS): Remove.
10671         (PROMOTE_FUNCTION_RETURN): Likewise
10672         (PROMOTE_PROTOTYPES): Likewise
10673         (RETURN_IN_MEMORY): Likewise
10674         (STRUCT_VALUE): Likewise
10675         (SETUP_INCOMING_VARARGS): Likewise
10676
10677 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
10678
10679         * config/mips/mips.c (mips_offset_within_object_p): New function.
10680         (mips_symbolic_constant_p): Use it in the SYMBOL_SMALL_DATA and
10681         SYMBOL_CONSTANT_POOL cases.  Also use it for SYMBOL_GENERAL if the
10682         ABI has 64-bit pointers and the object file only allows 32-bit symbols.
10683
10684 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
10685
10686         * config/sh/sh.h (PROMOTE_FUNCTION_ARGS): Remove.
10687         (PROMOTE_FUNCTION_RETURN): Likewise.
10688
10689 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
10690
10691         * config/mn10300/mn10300-protos.h: Remove the prototype for
10692         mn10300_builtin_saveregs.
10693         * config/mn10300/mn10300.c (TARGET_PROMOTE_PROTOTYPES): New.
10694         (TARGET_STRUCT_VALUE_RTX): Likewise.
10695         (TARGET_RETURN_IN_MEMORY): Likewise.
10696         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
10697         (mn10300_return_in_memory): Likewise.
10698         (mn10300_builtin_saveregs): Make it static.
10699         * config/mn10300/mn10300.h (PROMOTE_PROTOTYPES): Remove.
10700         (RETURN_IN_MEMORY): Likewise.
10701         (STRUCT_VALUE): Likewise.
10702         (EXPAND_BUILTIN_SAVEREGS): Likewise.
10703
10704 2004-01-25  Eric Botcazou  <ebotcazou@act-europe.fr>
10705
10706         PR bootstrap/13853
10707         * cfgcleanup.c (try_optimize_cfg): Explicitly test against 0.
10708
10709 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
10710
10711         * config/h8300/lib1funcs.asm (divnorm, modnorm): Optimize by
10712         using ccr.
10713
10714 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
10715
10716         * config/i860/i860-protos.h: Remove the prototype for
10717         i860_saveregs.
10718         * config/i860/i860.c (i860_saveregs): Make it static.
10719         (i860_struct_value_rtx): New.
10720         (TARGET_STRUCT_VALUE_RTX): Likewise.
10721         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
10722         * config/i860/i860.h (STRUCT_VALUE_REGNUM): Rename to
10723         I860_STRUCT_VALUE_REGNUM.
10724         (EXPAND_BUILTIN_SAVEREGS): Remove.
10725
10726 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
10727
10728         * config/m68hc11/m68hc11.c (TARGET_STRUCT_VALUE_RTX): New.
10729         (TARGET_RETURN_IN_MEMORY): Likewise.
10730         (m68hc11_struct_value_rtx): Likewise.
10731         (m68hc11_return_in_memory): Likewise.
10732         * config/m68hc11/m68hc11.h: Remove a commented-out definition
10733         of PROMOTE_PROTOTYPES.
10734         (RETURN_IN_MEMORY): Remove.
10735         (STRUCT_VALUE_REGNUM): Likewise.
10736
10737 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
10738
10739         * config/mmix/mmix-protos.h: Remove the prototype for
10740         mmix_setup_incoming_varargs.
10741         * config/mmix/mmix.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
10742         (TARGET_STRUCT_VALUE_RTX): Likewise.
10743         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
10744         (mmix_setup_incoming_varargs): Make it static.
10745         (mmix_struct_value_rtx): New.
10746         * config/mmix/mmix.h (PROMOTE_FUNCTION_ARGS): Remove.
10747         Remove a commented-out definition of PROMOTE_FUNCTION_RETURN.
10748         (STRUCT_VALUE_REGNUM): Remove.
10749         (SETUP_INCOMING_VARARGS): Likewise.
10750
10751 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
10752
10753         * config/mips/mips-protos.h: Remove the prototypes for
10754         mips_setup_incoming_varargs and mips_return_in_memory.
10755         * config/mips/mips.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
10756         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
10757         (TARGET_PROMOTE_PROTOTYPES): Likewise.
10758         (TARGET_STRUCT_VALUE_RTX): Likewise.
10759         (TARGET_RETURN_IN_MEMORY): Likewise.
10760         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
10761         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
10762         (mips_setup_incoming_varargs): Match the prototype for
10763         TARGET_SETUP_INCOMING_VARARGS.
10764         (mips_return_in_memory): Make it static.  Add argument fntype.
10765         (mips_strict_argument_naming): New.
10766         * config/mips/mips.h (PROMOTE_PROTOTYPES): Remove.
10767         (PROMOTE_FUNCTION_ARGS): Likewise.
10768         (PROMOTE_FUNCTION_RETURN): Likewise.
10769         (STRUCT_VALUE): Likewise.
10770         (RETURN_IN_MEMORY): Likewise.
10771         (SETUP_INCOMING_VARARGS): Likewise.
10772         (STRICT_ARGUMENT_NAMING): Likewise.
10773
10774 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
10775
10776         * config/ip2k/ip2k.c (TARGET_STRUCT_VALUE_RTX): New.
10777         (TARGET_RETURN_IN_MEMORY): Likewise.
10778         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
10779         (ip2k_return_in_memory): Likewise.
10780         (ip2k_setup_incoming_varargs): Likewise.
10781         * config/ip2k/ip2k.h (RETURN_IN_MEMORY): Remove.
10782         (STRUCT_VALUE): Likewise.
10783         (STRUCT_VALUE_INCOMING): Likewise.
10784         (SETUP_INCOMING_VARARGS): Likewise.
10785
10786 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
10787
10788         * config/avr/avr.c (TARGET_STRUCT_VALUE_RTX): New.
10789         (TARGET_RETURN_IN_MEMORY): Likewise.
10790         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
10791         (avr_return_in_memory): Remove.
10792         * config/avr/avr.h (RETURN_IN_MEMORY): Remove.
10793         (STRUCT_VALUE): Likewise.
10794         (STRUCT_VALUE_INCOMING): Likewise.
10795         (STRICT_ARGUMENT_NAMING): Likewise.
10796
10797 2004-01-25  Jan Hubicka  <jh@suse.cz>
10798
10799         * combine.c (recog_for_combine): Avoid allocating unnecesary RTX.
10800
10801 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
10802
10803         * config/mips/mips-protos.h (mips_reg_mode_ok_for_base_p): Delete.
10804         (mips_regno_mode_ok_for_base_p): Declare.
10805         * config/mips/mips.h (ARG_POINTER_REGNUM): Renumber to 77.
10806         (FRAME_POINTER_REGNUM): Renumber to 78.
10807         (FIRST_PSEUDO_REGISTER): Update comment accordingly.
10808         (BASE_REG_P, GP_REG_OR_PSEUDO_STRICT_P): Delete.
10809         (GP_REG_OR_PSEUDO_NONSTRICT_P): Delete.
10810         (REGNO_MODE_OK_FOR_BASE_P): Use mips_regno_mode_ok_for_base_p.
10811         (REG_MODE_OK_FOR_BASE_P): Likewise.
10812         * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Change
10813         entry for 77 to "$arg" and entry for 78 to "$frame".
10814         (mips_regno_to_class): Map 77 and 78 to ALL_REGS.
10815         (mips_reg_mode_ok_for_base_p): Remove.
10816         (mips_regno_mode_ok_for_base_p): New function, derived from old
10817         BASE_REG_P macro.  Don't enforce the mips16 stack pointer
10818         restrictions unless we're being strict.
10819         (mips_valid_base_register_p): Use mips_regno_mode_ok_for_base_p.
10820
10821 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
10822
10823         * c-common.h: Fix comment typos.
10824         * c-decl.c: Likewise.
10825         * cgraphunit.c: Likewise.
10826         * combine.c: Likewise.
10827         * et-forest.c: Likewise.
10828         * flow.c: Likewise.
10829         * function.c: Likewise.
10830         * ifcvt.c: Likewise.
10831         * integrate.c: Likewise.
10832         * jump.c: Likewise.
10833         * postreload.c: Likewise.
10834         * varray.c: Likewise.
10835
10836 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
10837
10838         * doc/frontends.texi: Update copyright.
10839         * doc/gcov.texi: Likewise.
10840         * doc/gty.texi: Likewise.
10841         * doc/sourcebuild.texi: Likewise.
10842         * doc/standards.texi: Likewise.
10843
10844 2004-01-24  Herman A.J. ten Brugge  <hermantenbrugge@home.nl>
10845
10846         PR target/12978
10847         * c4x.md: (movstrqi*) Use match_scratch instead of match_dup.
10848         Remove movstrqi_small because it conflicts with movstrqi_large.
10849
10850 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
10851
10852         * config/cris/cris.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
10853         (TARGET_STRUCT_VALUE_RTX): Likewise.
10854         (cris_struct_value_rtx): Likewise.
10855         * config/cris/cris.h (PROMOTE_FUNCTION_ARGS): Remove.
10856         (CRIS_STACKADJ_REG): Use CRIS_STRUCT_VALUE_REGNUM instead of
10857         STRUCT_VALUE_REGNUM.
10858         (STRUCT_VALUE_REGNUM): Rename to CRIS_STRUCT_VALUE_REGNUM.
10859
10860 2004-01-24  Ian Lance Taylor  <ian@wasabisystems.com>
10861
10862         PR bootstrap/13848
10863         * cse.c (cse_cc_succs): Change the mode of the source expression
10864         as soon as decide we need a new mode.  Don't permit changing modes
10865         if we found a match in a successor block.
10866         (cse_condition_code_reg): Save original mode of source expression
10867         so that we know whether we have to change the mode in other
10868         insns.
10869
10870 2004-01-24  Jan Hubicka  <jh@suse.cz>
10871
10872         * emit-rtl.c (change_address, adjust_address_1, offset_address,
10873         widen_memory_access):  Return early when there is nothing to change.
10874
10875 2004-01-24  Jakub Jelinek  <jakub@redhat.com>
10876
10877         * simplify-rtx.c (simplify_relational_operation): Don't
10878         simplify address == constant into address + -constant == 0.
10879
10880 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
10881
10882         * gcc.c (process_command): Don't internationalize the
10883         Copyright message.
10884         * mips-tfile.c (main): Likewise.
10885
10886 2004-01-24  Andreas Tobler  <a.tobler@schweiz.ch>
10887
10888         * cse.c: (cse_cc_succs) Fix comparison warning.
10889
10890 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
10891
10892         * config/h8300/h8300.md: Remove extraneous USE in expanders.
10893
10894 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
10895
10896         * config/h8300/h8300-protos.h: Provide prototypes for
10897         h8300_legitimate_constant_p and h8300_legitimate_address_p.
10898         * config/h8300/h8300.c (h8300_legitimate_constant_p): New.
10899         (h8300_rtx_ok_for_base_p): Likewise.
10900         (h8300_legitimate_address_p): Likewise.
10901         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Use
10902         h8300_legitimate_constant_p.
10903         (RTX_OK_FOR_BASE_P): Remove.
10904         (GO_IF_LEGITIMATE_ADDRESS): Use h8300_legitimate_address_p.
10905
10906 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
10907
10908         * config/h8300/h8300.h (REG_OK_FOR_INDEX_NONSTRICT_P): New.
10909         (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
10910         (REG_OK_FOR_INDEX_STRICT_P): Likewise.
10911         (REG_OK_FOR_BASE_STRICT_P): Likewise.
10912         (REG_OK_FOR_INDEX_STRICT_P): Use REGNO_OK_FOR_INDEX_P.
10913         (REG_OK_FOR_BASE_STRICT_P): Use REGNO_OK_FOR_BASE_P.
10914         (REG_OK_FOR_INDEX_P): Use REG_OK_FOR_INDEX_STRICT_P.
10915         (REG_OK_FOR_BASE_P): Use REG_OK_FOR_BASE_STRICT_P.
10916
10917 2004-01-24  Jan Hubicka  <jh@suse.cz>
10918
10919         * cselib.c (remove_useless_values):  Do not access discarded values.
10920
10921 2004-01-24  Joseph S. Myers  <jsm@polyomino.org.uk>
10922
10923         * c-typeck.c (build_conditional_expr): Do not allow non-lvalue
10924         arrays.
10925
10926 2004-01-23  Kazu Hirata  <kazu@cs.umass.edu>
10927
10928         * recog.c: Fix a typo in copyright.
10929
10930 2004-01-23  Andrew Pinski  <apinski@apple.com>
10931
10932         * config/rs6000/rs6000.md (call): Fix misappiled patch.
10933         (call_value): Likewise.
10934
10935 2004-01-23  Richard Henderson  <rth@redhat.com>
10936
10937         PR opt/12941
10938         * combine.c (SHIFT_COUNT_TRUNCATED): Provide default value.
10939         (simplify_comparison): Don't simplify (eq (zero_extract c 1 r) 0)
10940         if SHIFT_COUNT_TRUNCATED is set.
10941
10942 2004-01-23  Bob Wilson  <bob.wilson@acm.org>
10943
10944         * config/xtensa/xtensa.c (xtensa_va_arg): Handle complex values as
10945         separate real and imaginary parts.
10946         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Define.
10947
10948 2004-01-23  Hartmut Penner <hpenner@de.ibm.com>
10949
10950         PR target/13674
10951         * config/rs6000/rs6000.md (movdf_hardfloat64): Do not disparage
10952         loading into GPR.
10953
10954 2004-01-23  Jan Hubicka  <jh@suse.cz>
10955
10956         * emit-rtl.c (change_address_1):  Do not re-generate the RTX if nothing
10957         change.
10958
10959         * alloc-pool.c (align_four): Kill.
10960         (create_alloc_pool): Align size to eight.
10961         (free_alloc_pool, free_pool): Invalidate deallocated data.
10962
10963 2004-01-23  Ian Lance Taylor  <ian@wasabisystems.com>
10964
10965         PR gcc/1532
10966         * cse.c (cse_change_cc_mode): New static function.
10967         (cse_change_cc_mode_insns, cse_cc_succs): Likewise.
10968         (cse_condition_code_reg): New function.
10969         * rtl.h (cse_condition_code_reg): Declare.
10970         * toplev.c (rest_of_handle_cse2): Call cse_condition_code_reg.
10971         * target.h (struct gcc_target): Add fixed_condition_code_regs and
10972         cc_modes_compatible.
10973         * target-def.h (TARGET_FIXED_CONDITION_CODE_REGS): Define.
10974         (TARGET_CC_MODES_COMPATIBLE): Define.
10975         (TARGET_INITIALIZER): Add new initializers.
10976         * targhooks.c (default_cc_modes_compatible): New function.
10977         * targhooks.c (default_cc_modes_compatible): Declare.
10978         * hooks.c (hook_bool_intp_intp_false): New function.
10979         * hooks.h (hook_bool_intp_intp_false): Declare.
10980         * config/i386/i386.c (TARGET_FIXED_CONDITION_CODE_REGS): Define.
10981         (TARGET_CC_MODES_COMPATIBLE): Define.
10982         (ix86_fixed_condition_code_regs): New static function.
10983         (ix86_cc_modes_compatible): Likewise.
10984         * doc/tm.texi (Condition Code): Document new hooks.
10985
10986 2004-01-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10987
10988         * fixinc/inclhack.def (bad_lval): Renamed to ...
10989         (alpha_bad_lval): ... this.
10990         Removed file list.
10991         Restrict to alpha*-dec-osf*.
10992         * fixinc/fixincl.x: Regenerate.
10993         * fixinc/tests/base/dirent.h: Remove, moving test ...
10994         * fixinc/tests/base/testing.h: ... here, reflecting new name.
10995
10996 2004-01-23  Zack Weinberg  <zack@codesourcery.com>
10997
10998         PR c/13814
10999         * c-decl.c (diagnose_mismatched_decls): Also discard a
11000         built-in if we encounter an old-style definition with the
11001         same name.
11002
11003 2004-01-23  Jakub Jelinek  <jakub@redhat.com>
11004
11005         * config.gcc (powerpc*-*): Clear $with_cpu or $with_tune if it was
11006         set to default{32,64}.
11007
11008 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
11009
11010         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR)
11011         [!__powerpc64__]: Corrected to handle kernels with changed ucontext.
11012
11013 2004-01-23  Eric Botcazou  <ebotcazou@act-europe.fr>
11014             Olivier Hainque  <hainque@act-europe.fr>
11015
11016         * fold-const.c (fold_binary_op_with_conditional_arg): Only
11017         build a COMPOUND_EXPR if 'arg' is really a SAVE_EXPR.
11018
11019 2004-01-23  Daniel Jacobowitz  <drow@mvista.com>
11020
11021         * config/arm/arm.c (arm_legitimate_address_p): Don't check the mode
11022         size for minipool references.
11023
11024 2004-01-23  Roger Sayle  <roger@eyesopen.com>
11025
11026         * real.c (real_floor, real_ceil): Tweak to allow input and output
11027         arguments to overlap.
11028         (real_round): New function to implement round(3m) semantics.
11029         * real.h (real_round): Prototype here.
11030         * builtins.c (fold_builtin_round): New function to constant fold
11031         round, roundf and roundl.
11032         (fold_builtin): Call fold_builtin_round for BUILT_IN_ROUND{,F,L}.
11033
11034 2004-01-23  Alexandre Oliva  <aoliva@redhat.com>
11035
11036         PR optimization/13819
11037         * config/sh/sh.c (sh_reorg): Compensate for sharing of CLOBBERs
11038         introduced by 2004-01-20's Jan Hubicka's copy_insn change.
11039         (sh_handle_sp_switch_attribute): Remove warning.
11040
11041 2003-11-30  Jan Hubicka  <jh@suse.cz>
11042
11043         * i386.c (ix86_emit_restore_regs_using_mov):  Deal with large offsets.
11044
11045 2004-01-23  J"orn Rennecke <joern.rennecke@superh.com>
11046
11047         * doc/tm.texi: Insert some weasel words when LOAD_EXTEND_OP
11048         may or may not return non-NIL.
11049         * postreload.c (reload_cse_simplify_operands): In LOAD_EXTEND_OP code,
11050         check CANNOT_CHANGE_MODE_CLASS
11051
11052 2004-01-23  Jan Hubicka  <jh@suse.cz>
11053
11054         * basic-block.h (PROP_POSTRELOAD): New macro.
11055         (CLEANUP_LOG_LINKS): New.
11056         * cfgcleanup.c (cleanup_cfg): Only PROP_LOG_LINKS when asked to.
11057         * toplev.c (rest_of_handle_life):  Preserve LOG_LINKS trought cleanup_cfg.
11058
11059         * cselib.c (value_pool): New.
11060         (new_cselib_val): Use pool.
11061         (cselib_init): Initialize value_pool
11062         (cselib_finish): Free pool.
11063
11064 2004-01-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
11065
11066         * config/sparc/sparc.c (scan_record_type): New function.
11067         (function_arg_slotno): Use it to determine which kinds of
11068         registers the record can be passed in.
11069
11070 2004-01-22  James A. Mmorrison  <ja2morri@uwaterloo.ca>
11071
11072         * config/pa/fptr.c: Fix old-style definition.
11073
11074 2004-01-22  Paolo Bonzini  <bonzini@gnu.org>
11075
11076         PR optimization/13724
11077         * cse.c (fold_rtx) <SUBREG>:  Fold a SUBREG to zero if it
11078         represents the zero bits produced by a ZERO_EXTEND operation.
11079
11080 2004-01-22  Roger Sayle  <roger@eyesopen.com>
11081
11082         PR optimization/13821
11083         * simplify-rtx.c (simplify_subreg): Use subreg_lowpart_offset to
11084         correctly calculate the lowpart offset of the contracted subreg.
11085
11086 2004-01-22  Ian Lance Taylor  <ian@wasabisystems.com>
11087
11088         * doc/invoke.texi (Optimize Options): Note that --param arguments
11089         are subject to change without notice.
11090
11091 2004-01-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
11092
11093         * config.gcc (mips-sgi-irix6*o32): Removed.
11094         * config/mips/iris6-o32-as.h: Likewise.
11095         * config/mips/iris6-o32-gas.h: Likewise.
11096         * config/mips/iris6-o32.h: Likewise.
11097
11098 2004-01-22  Jan Hubicka  <jh@suse.cz>
11099
11100         * cfgcleanup.c (first_pass): New static variable.
11101         (try_forward_edges):  Add work limiting check for threading.
11102         (try_crossjump_bb):  Add work limiting check for crossjumping.
11103         (try_optimize_cfg):  Maintain first pass variable.
11104
11105 2004-01-22  Bob Wilson  <bob.wilson@acm.org>
11106
11107         * config/xtensa/xtensa.c (function_arg): Generalize logic so that it
11108         handles complex and vector modes.
11109
11110 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
11111
11112         * config/h8300/h8300.h (REG_OK_FOR_INDEX_P_STRICT): Remove.
11113         (REG_OK_FOR_BASE_P_STRICT): Likewise.
11114         (STRICT): Likewise.
11115
11116 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
11117
11118         * c-semantics.c (genrtl_while_stmt, genrtl_do_stmt_1)
11119         (genrtl_for_stmt): Remove emit_nop calls.
11120
11121 2004-01-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11122
11123         PR target/13713
11124         PR target/13324
11125         * pa.md (movstrsi_prereload, movstrsi_postreload, movstrdi_prereload,
11126         movstrdi_postreload, clrstrsi_prereload, clrstrsi_postreload,
11127         clrstrdi_prereload, clrstrdi_postreload): Fix constraints.
11128
11129 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
11130
11131         * config/arm/arm.c: Include "debug.h".
11132         (thumb_pushpop): Take two new arguments.  Add some commentary.
11133         Output frame information when pushing.
11134         (thumb_exit, thumb_unexpanded_epilogue): Update calls to
11135         thumb_pushpop.
11136         (thumb_output_function_prologue): Likewise.  Accumulate a CFA
11137         offset, and pass it to thumb_pushpop.  Output CFI information.
11138         (thumb_expand_prologue): Add some frame-related markers and notes.
11139
11140 2004-01-22  Ulrich Weigand  <uweigand@de.ibm.com>
11141
11142         * config/s390/s390.c (s390_frame_info): Allow large frame sizes
11143         for TARGET_64BIT.
11144         (s390_arg_frame_offset): Change return type to HOST_WIDE_INT.
11145         * config/s390/s390-protos.h (s390_arg_frame_offset): Likewise.
11146
11147 2004-01-22  Roger Sayle  <roger@eyesopen.com>
11148             Paolo Bonzini  <bonzini@gnu.org>
11149
11150         * rtlanal.c (subreg_lsb_1): New function split out from subreg_lsb.
11151         (subreg_lsb): Change to call new subreg_lsb_1 helper function.
11152         * rtl.h (subreg_lsb_1): Prototype here.
11153         * simplify-rtx.c (simplify_subreg): Optimize subregs of zero and
11154         sign extensions.
11155
11156 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
11157
11158         * doc/tm.texi (CASE_VECTOR_PC_RELATIVE): Mention that the
11159         macro need not be defined if jump-tables should contain
11160         relative addresses only when -fPIC or -fPIC is in effect.
11161
11162 2004-01-22  Jan Hubicka  <jh@suse.cz>
11163
11164         * alias.c (reg_base_value): Turn into varray.
11165         (reg_base_value_size): Kill.
11166         (old_reg_base_value): New deletable varray.
11167         (alias_invariant_size): New variable.
11168         (REG_BASE_VALUE): Update to use varray.
11169         (find_base_value): Likewise.
11170         (record_set): Likewise.
11171         (record_base_value): Likewise.
11172         (memrefs_conflict_p): Likewise.
11173         (record_set): Likewise
11174         (record_base_value): Likewise.
11175         (memrefs_conflict_p): Use alias_invariant_size.
11176         (init_alias_analysis): Use varray; set alias_invariant_size;
11177         rescale other arrays to be sized by maxreg.
11178         (end_alias_analysis): Save reg_base_value; clear alias_invariant_size.
11179
11180 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
11181
11182         * config/sparc/sparc.c (function_arg_slotno): Use
11183         FLOAT_TYPE_P to detect FP fields in structures.
11184         (function_arg_record_value_1): Likewise.
11185         (function_arg_record_value_2): Likewise.
11186
11187 2004-01-22  Jan Hubicka  <jh@suse.cz>
11188
11189         * function.c (allocate_struct_function): Do not initialize expr, emit
11190         and varasm.
11191         (prepare_function_start): Do it here.
11192         * c-parse.in (maybe_type_qual): Do not produce line number notes.
11193
11194 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
11195
11196         PR target/13559
11197         * config/sparc/sparc.c (function_arg_record_value_3): Revert
11198         to 'word_mode' once the first slot has been filled.
11199
11200 2004-01-22  Olivier Hainque  <hainque@act-europe.fr>
11201
11202         * config/sparc/sparc.c (function_arg_record_value_1): Fix
11203         computation of the number of integer registers required.
11204
11205 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
11206
11207         * config/i386/i386.md: Simplify certain comparisons of
11208         const_int.
11209
11210 2004-01-21  Andrew Pinski  <apinski@apple.com>
11211
11212         PR target/13785
11213         * config/rs6000/rs6000.md (call_value): Force operand
11214         1 not operand 0 into a register.
11215
11216 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
11217
11218         * cpperror.c, cpptrad.c, longlong.h, params.def, rtl.def,
11219         unwind-dw2-fde.h: Update copyright.
11220
11221 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11222
11223         * pa-protos.h: Update copyright.
11224         * pa.h: Likewise.
11225         * pa.md: Likewise.
11226
11227 2004-01-21  Caroline Tice  <ctice@apple.com>
11228
11229         PR target/12308
11230         * config/i386/i386.md (fix_truncxfdi2): Add clause to clobber
11231         flags register.
11232         (fix_truncdfdi2): Likewise.
11233         (fix_truncsfdi2): Likewise.
11234         (*fix_truncdi_1): Likewise.
11235         (fix_truncxfsi2): Likewise.
11236         (fix_truncdfsi2): Likewise.
11237         (fix_truncsfsi2): Likewise.
11238         (*fix_truncsi_1): Likewise.
11239         (fix_truncxfhi2): Likewise.
11240         (fix_truncdfhi2): Likewise.
11241         (fix_truncsfhi2): Likewise.
11242         (*fix_trunchi_1): Likewise.
11243
11244 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
11245
11246         * alias.c, basic-block.h, c-common.c, c-common.h,
11247         c-cppbuiltin.c, c-opts.c, c-pragma.c, c-pretty-print.c,
11248         calls.c, cfg.c, cfgcleanup.c, cfgrtl.c, cgraph.h, collect2.c,
11249         combine.c, cppcharset.c, cpphash.h, cppinit.c, cpplib.c,
11250         cpplib.h, cppmacro.c, crtstuff.c, cselib.c, cselib.h,
11251         defaults.h, df.c, dominance.c, et-forest.c, expmed.c, expr.c,
11252         expr.h, fix-header.c, function.h, gcc.c, gcse.c, genattrtab.c,
11253         genautomata.c, genconditions.c, genemit.c, genflags.c,
11254         gengtype.c, gengtype.h, genopinit.c, genrecog.c, gensupport.c,
11255         ggc-zone.c, graph.c, haifa-sched.c, input.h, integrate.c,
11256         langhooks-def.h, langhooks.c, langhooks.h, line-map.c,
11257         line-map.h, local-alloc.c, optabs.c, optabs.h, postreload.c,
11258         ra.h, recog.c, reg-stack.c, regmove.c, reload.c, reorg.c,
11259         rtl.c, sched-deps.c, sched-ebb.c, sdbout.c, system.h,
11260         target.h, targhooks.c, toplev.h, tree-inline.c, unwind-pe.h,
11261         unwind.h, varray.c, varray.h: Update copyright.
11262
11263 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
11264
11265         * config/h8300/coff.h: Update copyright.
11266         * config/h8300/elf.h: Likewise.
11267         * config/h8300/h8300-protos.h: Likewise.
11268         * config/h8300/h8300.c: Likewise.
11269         * config/h8300/h8300.h: Likewise.
11270         * config/h8300/h8300.md: Likewise.
11271
11272 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11273
11274         * fixinc/inclhack.def (hpux10_stdio_declarations, ultrix_const3,
11275         ultrix_locale, ultrix_stdlib, ultrix_strings, ultrix_sys_time,
11276         ultrix_unistd): New hacks.
11277         * fixinc/tests/base/stdio.h (HPUX10_STDIO_DECLARATIONS_CHECK,
11278         ULTRIX_CONST2_CHECK): Add checks.
11279         * fixinc/tests/base/stdlib.h (ULTRIX_STDLIB_CHECK): Likewise.
11280         * fixinc/tests/base/strings.h (ULTRIX_STRINGS2_CHECK): Likewise.
11281         * fixinc/tests/base/unistd.h (ULTRIX_UNISTD_CHECK): Likewise.
11282         * fixinc/tests/base/sys/time.h (ULTRIX_SYS_TIME_CHECK): Likewise.
11283         * fixinc/tests/base/locale.h: New file.
11284         * fixinc/fixincl.x: Rebuilt.
11285
11286 2004-01-21  Andreas Jaeger  <aj@suse.de>
11287             Michael Matz  <matz@suse.de>
11288
11289         * doc/extend.texi (Extended Asm): Clarify memory clobber.
11290
11291 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
11292
11293         * crtstuff.c (frame_dummy, __do_global_ctors_1): Call
11294         _Jv_RegisterClasses through a function pointer.
11295
11296 2004-01-21  Falk Hueffner  <falk@debian.org>
11297
11298         PR target/12898
11299         * config/alpha/alpha.c (alpha_emit_set_const_1): If
11300         no_new_pseudos, use gen_rtx_SET directly for SImode constants
11301         which need multiple instructions to emit.
11302
11303 2004-01-21  Inaoka Kazuhiro  <inaoka.kazuhiro@renesas.com>
11304
11305         * config/m32r/m32r.h (CPP_SPEC): Define.
11306
11307 2004-01-21  Zack Weinberg  <zack@codesourcery.com>
11308
11309         * c-decl.c (merge_decls): Kill different_binding_level and
11310         different_tu arguments; simplify throughout.
11311         (duplicate_decls): Likewise.
11312         (pushdecl, merge_translation_unit_decls): Update calls to
11313         duplicate_decls.
11314
11315 2004-01-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11316
11317         * Makefile.in (pretty-print.o): Depend on $(CONFIG_H) and
11318         $(SYSTEM_H).
11319         (print-rtl1.o): Depend on $(SYSTEM_H).
11320
11321 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
11322
11323         PR bootstrap/12730
11324         * configure.ac: Delete definition and subsitution of docdir.
11325         Add info, man, srcman and srcinfo to target hooks. Create doc/
11326         directory.
11327         * configure: Regenerate.
11328         * Makefile.in: Don't substitute docdir and delete all references
11329         throughout.
11330         (MAKEINFOFLAGS): Define.
11331         (stmp-docobjdir): Delete.
11332         (INFOFILES, MANFILES): Define.
11333         (info): Call lang.info, srcinfo and lang.srcinfo.
11334         (generated-manpages): Call lang.man, srcman and lang.srcman.
11335         (srcinfo, srcman): New rules to copy back files to source directory.
11336         (doc/%.info, doc/%.dvi, doc/%.1, doc/%.7): New implict rule.
11337         (install-man): Revamp rule.
11338         (clean): Update dvi directory.
11339         (distclean): Delete TAGS from front end directorys.
11340         (maintainer-clean): Delete all document files in source directory.
11341
11342         objc/Make-lang.in (objc.man, objc.info): Dummy entries.
11343         (objc.srcman, objc.srcinfo): Likewise.
11344
11345 2004-01-20  Bruce Korb  <bkorb@gnu.org>
11346
11347         * fixinc/inclhack.def(math_exception): bypass only for glibc.
11348         (matherr_decl): rename & relocate as exception_structure.
11349         This fix must precede the math_exception fix.
11350
11351 2004-01-20  Roger Sayle  <roger@eyesopen.com>
11352
11353         * fold-const.c (fold_convert): Rename to fold_convert_const.
11354         (fold_convert_const): Change arguments to take a tree_code,
11355         a type and the operand/expression to be converted.  Return
11356         NULL_TREE if no simplification is possible.  Add support for
11357         FIX_CEIL_EXPR and FIX_FLOOR_EXPR in addition to FIX_TRUNC_EXPR.
11358         (fold): Handle FIX_CEIL_EXPR and FIX_FLOOR_EXPR.
11359         Adjust call to fold_convert to match new fold_convert_const.
11360         Avoid modifying the tree passed to fold in-place.
11361
11362 2004-01-21  Alan Modra  <amodra@bigpond.net.au>
11363
11364         * config/rs6000/sysv4.h (DWARF2_FRAME_REG_OUT): Define.
11365         * dwarf2out.c (output_cfi): Map regs using DWARF2_FRAME_REG_OUT.
11366         * doc/tm.texi (DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Document.
11367
11368 2004-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11369
11370         * pa-protos.h (compute_frame_size): Use HOST_WIDE_INT for frame sizes.
11371         * pa.c (store_reg, store_reg_modify, load_reg, set_reg_plus_d):
11372         Likewise.  Handle frames larger than 0x7fffffff on 64-bit ports.
11373         (emit_move_sequence): Check scratch_reg first in various if statements.
11374         Extend source simplification to handle all 64-bit CONST_INTs.
11375         (pa_output_function_prologue): Use HOST_WIDE_INT_PRINT_DEC for printing
11376         frame size.
11377         (hppa_expand_prologue, hppa_expand_epilogue): Use HOST_WIDE_INT for
11378         frame offset calculations.
11379         * pa.h (NEW_HP_ASSEMBLER): Add comment.
11380         (MAX_LEGIT_64BIT_CONST_INT, MIN_LEGIT_64BIT_CONST_INT,
11381         LEGITIMATE_64BIT_CONST_INT_P): Define.
11382         (LEGITIMATE_CONSTANT_P): Use LEGITIMATE_64BIT_CONST_INT_P.  Treat
11383         any CONST_INT as legitimate during and after reload.
11384         (VAL_32_BITS_P, INT_32_BITS): Define.
11385         (LEGITIMIZE_RELOAD_ADDRESS): Handle large frame offsets.
11386
11387 2004-01-20  Jan Hubicka  <jh@suse.cz>
11388
11389         * emit-rtl.c (verify_rtx_sharing, copy_insn_1,
11390         emit_copy_of_insn_after, emit_copy_of_insn_after): Clobbers
11391         containing hard regs are shared.
11392         (gen_hard_reg_clobber): New function.
11393         (hard_reg_clobbers): New array.
11394         * genemit.c (gen_exp): Use gen_hard_reg_clobber.
11395         (copy_rtx): Do not copy clobbers containing hard regs.
11396         * rtl.h (gen_hard_reg_clobber): Declare.
11397
11398 2004-01-20  Jan Hubicka  <jh@suse.cz>
11399
11400         * varray.c:  Include hashtab.h
11401         (varray_descriptor): New structure.
11402         (hash_descriptor, eq_descriptor, varray_descriptor,
11403         print_statistics): New static functions
11404         (varray_init, varray_grow): Update statistics
11405         (dump_varray_statistics): New function.
11406         * varray.h (dump_varray_statistics): Declare.
11407         * toplev.c (finalize): Call it.
11408         * Makefile.in (varray.o): Add dependency.
11409
11410 2004-01-20  Jan Hubicka  <jh@suse.cz>
11411
11412         * cselib.c: Include alloc-pool.h
11413         (empty_vals, empty_elt_lists, empty_elt_loc_lists): Kill.
11414         (elt_loc_list_pool, elt_list_pool, cselib_val_pool): Declare.
11415         (new_elt_list, new_elt_loc_list, unchain_one_elt_list,
11416         unchain_one_elt_loc_list_pool, unchain_one_value,
11417         new_cselib_val): Simplify using allocpool.
11418         (cselib_init): Initialize allocpools.
11419         (cselib_finish): Finish allocpools.
11420         * Makefile.in (cselib.o): Depend on alloc-pool.h
11421
11422 2004-01-20  Richard Sandiford  <rsandifo@redhat.com>
11423
11424         * config/mips/mips.c (mips_load_call_address): Make the call insn
11425         use $gp if it could be calling a lazy binding stub.
11426
11427 2004-01-20  Kazu Hirata  <kazu@cs.umass.edu>
11428
11429         * config/s390/s390.c (TARGET_PROMOTE_FUNCTION_ARGS): Define.
11430         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
11431         (TARGET_STRUCT_VALUE_RTX): Likewise.
11432         * config/s390/s390.h (PROMOTE_FUNCTION_ARGS): Remove.
11433         (PROMOTE_FUNCTION_RETURN): Remove.
11434         (STRUCT_VALUE): Remove.
11435
11436 2004-01-20  Denis Chertykov  <denisc@overta.ru>
11437
11438         PR bootstrap/13735
11439         * config/avr/avr.h (BASE_REG_CLASS): Don't permit to use X
11440         register as pointer after reload.
11441
11442 2004-01-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11443
11444         PR optimization/12440
11445         * loop.c: Include ggc.h.
11446         (loop_optimize): Run garbage collector between optimization of loops.
11447         * Makefile.in (loop.o): Add GGC_H dependency.
11448
11449 2004-01-20  Hartmut Penner  <hpenner@de.ibm.com>
11450
11451         * gcc/config/rs6000/rs6000.c (function_arg) Handle
11452         vector register special in function without prototype.
11453         (function_arg_advance): Vector parameters get always
11454         GPRs allocated for the linux64 target.
11455
11456 2004-01-20  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
11457
11458         * config/m32r/m32r.h (TARGET_M32R2). Test for TARGET_M32R2_MASK
11459         not TARGET_M32RX_MASK.
11460
11461 2004-01-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
11462
11463         PR target/13557
11464         * config/sparc/sparc.c (function_arg): Reorder the cases.
11465
11466 2004-01-19  Per Bothner  <per@bothner.com>
11467
11468         Move cpp_reader's line_maps field to a shared global.
11469         * cpphash.h (cpp_reader):  Rename line_maps field to line_table
11470         and change the type to a pointer rather than a struct.
11471         * cppinit.c (cpp_push_main_field):  Adjust accordingly.
11472         * cpplib.c (do_include_common, _cpp_do_file_change, cpp_get_callbacks):
11473         Likewise.
11474         * cppfiles.c (validate_pch):  Likewise.
11475         * cppmacro.c (_cpp_warn_if_unused_macro, _cpp_builtin_macro_text):
11476         Likewise.
11477         * cpperror.c (print_location):  Likewise.
11478         * cpplib.h (cpp_create_reader):  New line_maps pointer parameter.
11479         * cppinit.c (cpp_create_reader):  Handle new parameter.
11480         (cpp_destroy):  Don't free line_maps - that's no longer our job.
11481         * input.h (line_table):  New variable.
11482         * toplev.c (line_table):  Declare variable.
11483         (general_init):  Initialize line_table.
11484         * c-opts.c (c_common_init_options):  Pass line_table to
11485         cpp_create_reader.
11486         * fix-header.c (read_scan_file):  New local variable line_table.
11487         Initialize, and pass it to cpp_create_reader.
11488         * Makefile.in (LIBS, LIBDEPS):  Add libcpp.a.
11489         (C_AND_OBJC_OBJS, fix-header):  Remove redundant libcpp.a.
11490
11491 2004-01-19  Per Bothner  <per@bothner.com>
11492
11493         Implement a cache for linemap_lookup.
11494         * line-map.h (struct_line_maps):  Add cache field.
11495         * line-map.c (linemap_init):  Zero cache field.
11496         (linemap_add):  Set cache field to offset of newly allocated map.
11497         (linemap_lookup):  Use and set cache field.
11498
11499 2004-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
11500
11501         PR optimization/13567
11502         * cse.c (cse_basic_block): Call cse_insn with a non-null
11503         libcall_insn for the last SET insn of a no-confilict block.
11504
11505 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
11506
11507         * Makefile.in (target_noncanonical, program_transform_name): Use
11508         immediate define instead of deferred.
11509         (GCC_INSTALL_NAME, GCC_TARGET_INSTALL_NAME, CPP_INSTALL_NAME,
11510         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, GCOV_INSTALL_NAME,
11511         GCCBUG_INSTALL_NAME): Define via a immediate $(shell) instead of
11512         deferred backquote.
11513
11514 2004-01-20  Joseph S. Myers  <jsm@polyomino.org.uk>
11515
11516         * c-decl.c (c_init_decl_processing): Set pedantic_lvalues to
11517         true unconditionally.
11518         * c-typeck.c (unary_complex_lvalue, pedantic_lvalue_warning):
11519         Remove.
11520         (build_unary_op, build_modify_expr): Don't handle extended
11521         lvalues.
11522         (build_component_ref, build_conditional_expr): Call non_lvalue
11523         instead of pedantic_non_lvalue.
11524         (build_c_cast): Don't condition use of non_lvalue on pedantic.
11525         * fold-const.c (fold): Don't check pedantic directly for
11526         COMPOUND_EXPR.  Ensure that results for COMPOUND_EXPR are
11527         passed to pedantic_non_lvalue.
11528         * doc/extend.texi: Remove documentation of extended lvalues.
11529
11530 2004-01-19  Roger Sayle  <roger@eyesopen.com>
11531
11532         PR optimization/5263
11533         * simplify-rtx.c (associative_constant_p): Delete.
11534         (simplify_associative_operation): Rewrite to linearize terms, and
11535         attempt to simplify new term against both left and right subterms.
11536         (simplify_binary_operation): Call swap_commutative_operands_p on
11537         op0 and op1, not trueop0 and trueop1.  Move the initialization of
11538         trueop0 and trueop1 down to where first needed.
11539         (simplify_relational_operation): Likewise.
11540         * rtlanal.c (commutative_operand_precedence): Also order constant
11541         operands using avoid_constant_pool_reference.
11542
11543 2004-01-19  Richard Henderson  <rth@redhat.com>
11544
11545         * config/alpha/alpha.c (aligned_memory_operand): Check MEM_ALIGN,
11546         don't check memory mode.
11547         (unaligned_memory_operand): Likewise.
11548         (reload_inqi, reload_inhi, reload_outqi, reload_outhi): Don't
11549         abort for op0 not MEM.
11550
11551         * config/alpha/alpha.c (alpha_expand_mov_nobwx): If the destination
11552         is not a reg, copy to a scratch first.
11553         (aligned_loadqi, aligned_loadhi, unaligned_loadqi, unaligned_loadhi,
11554         unaligned_loadqi_le, unaligned_loadqi_be, unaligned_loadhi_le,
11555         unaligned_loadhi_be): Expect op0 in DImode; don't SUBREG.
11556         (reload_inqi, reload_inhi): Fix mode of op0.
11557         (reload_inqi_help, reload_inhi_help, reload_outqi_help,
11558         reload_outhi_help): Likewise.  Use define_insn_and_split.
11559
11560         * config/alpha/alpha.md (call peepholes): Check for REG_NORETURN
11561         as well as $29 dead.
11562
11563 2004-01-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
11564
11565         * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): New.  Emit
11566         "tls_object" for thread-local objects.
11567         * config/sparc/sparc.c (sparc_elf_asm_named_section): Emit
11568         "#tls" for thread-local sections.
11569         * configure.ac (thread-local checks): Specify --fatal-warnings in
11570         every binutils-specific checks.  For sparc*-*-*, test whether the
11571         OS is Solaris and the tools are native and act accordingly.
11572         * configure: Rebuild.
11573
11574 2004-01-19  Jeff Law  <law@redhat.com>
11575
11576         * contrib.texi: Update Paolo Carlini's entry.  New entries for
11577         Jerry Quinn and Petur Runolfsson.
11578
11579 2004-01-19  Roger Sayle  <roger@eyesopen.com>
11580
11581         * config/i386/i386.md (*movhi_1, *movqi_1): When optimizing for
11582         size, don't use the larger zero-extending loads.
11583
11584 2004-01-19  Richard Henderson  <rth@redhat.com>
11585
11586         * alpha.h (HARD_REGNO_MODE_OK): Disallow SImode in FP regs.
11587         * alpha.md (UNSPEC_NT_LDA): Remove.
11588         (UNSPEC_CVTLQ, cvtlq): New.
11589         (extendsidi2_1): Rename from extendsidi2_nofix; remove f/f.
11590         (extendsidi2_fix): Remove.
11591         (extendsidi2 splitter): Use cvtlq.
11592         (extendsidi2 fp peepholes): Remove.
11593         (cvtql): Use SFmode instead of SImode.
11594         (fix_trunc?fsi): Update to match.
11595         (floatsisf2_ieee, floatsisf2, floatsidf2_ieee, floatsidf2): New.
11596         (movsi): Rename from movsi_nofix, remove f alternatives.
11597         (movsi_nt_vms): Similarly.
11598         (movsi_fix, movsi_nt_vms_fix): Remove.
11599         (nt_lda): Remove.
11600         * alpha.c (alpha_expand_prologue): Use adddi3, not nt_lda.
11601
11602 2004-01-19  Jan Hubicka  <jh@suse.cz>
11603
11604         * cgraph.c (cgraph_remove_node): Fix removal from linked list.
11605         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear next_needed
11606         list.
11607         (cgraph_remove_unreachable_nodes): New function
11608         (cgraph_decide_inlining_of_small_function): Fix pasto.
11609         (cgraph_decide_inlining_incrementally): Fix pasto.
11610         (cgrpah_decide_inlining): Likewise; remove unreachable nodes.
11611
11612 2004-01-19  Steven Bosscher  <stevenb@suse.de>
11613
11614         * gengtype.c (header_file): Make it static.
11615         (write_types_process_field, write_enum_defn): Minor whitespace fixes.
11616         * gengtype.h (header_file): No longer extern.
11617
11618 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
11619
11620         * defaults.h (CASE_VECTOR_PC_RELATIVE): Provide the default.
11621         * expr.c (CASE_VECTOR_PC_RELATIVE): Remove.
11622         * stmt.c (CASE_VECTOR_PC_RELATIVE): Likewise.
11623
11624 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
11625
11626         * stmt.c (HAVE_casesi): Define it not already defined.
11627         (HAVE_tablejump): Likewise.
11628         (expand_end_case_type): Resort to the binary tree method if
11629         neither casesi or tablejump is available.
11630
11631 2004-01-18  Daniel Jacobowitz  <drow@mvista.com>
11632
11633         * final.c (final_scan_insn): Make non-static again.
11634         * output.h (final_scan_insn): Re-add prototype.
11635         * config/arc/arc.c (arc_output_function_epilogue): Add NULL
11636         to final_scan_insn call.
11637         * config/cris/cris.c (cris_target_asm_function_epilogue): Likewise.
11638         * config/mips/mips.c (mips_output_conditional_branch): Likewise.
11639         * config/pa/pa.c (output_lbranch, output_call): Likewise.
11640         * config/sh/sh.c (print_slot): Likewise.
11641         * config/sparc/sparc.c (sparc_nonflat_function_epilogue): Likewise.
11642         (output_sibcall, sparc_flat_function_epilogue): Likewise.
11643
11644 2004-01-18  Jan Hubicka  <jh@suse.cz>
11645
11646         * basic-block.h (try_redirect_by_replacing_jump): Declare.
11647         * cfgcleanup.c (try_optimize_cfg): Use it.
11648         * cfgrtl.c (try_redirect_by_replacing_jump): Export.
11649         (rtl_redirect_edge_and_branch, cfg_layout_redirect_edge_and_branch):
11650         Kill hack.
11651         (cfg_layout_merge_blocks): Use try_redirect_by_replacing_jump.
11652
11653         Revert:
11654         2004-01-16  Geoffrey Keating  <geoffk@apple.com>
11655
11656                 * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
11657                 even after reload, just don't remove the actual jump tables.
11658
11659 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
11660
11661         * config/rs6000/rs6000.h (STRICT_ARGUMENT_NAMING): Remove.
11662
11663 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
11664
11665         * defaults.h (ASM_OUTPUT_ADDR_VEC_ELT): Fix the computation of
11666         the size of a pointer in bytes.
11667
11668 2004-01-18  Roger Sayle  <roger@eyesopen.com>
11669
11670         * builtins.c (expand_builtin_expect_jump): Fix thinko of reusing
11671         live "next" variable, which could lead to an infinite loop.
11672
11673 2004-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
11674
11675         * config/rs6000/altivec.h: Wrap C++ functions in extern "C++"
11676         block.
11677
11678         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
11679         Check for NULL in the chain and remove repeated code.
11680
11681 2004-01-18  Jan Hubicka  <jh@suse.cz>
11682
11683         * coverage.c (checksum_string): Rename to ...
11684         (coverage_checksum_string): ... this one, Use crc32_string; recognize
11685         names containing random number and zero the number out in order to get
11686         match.
11687
11688 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
11689
11690         * config/mips/mips.c (mips_got_alias_set): Mark for PCH.
11691
11692 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
11693
11694         * doc/c-tree.texi, doc/cpp.texi, doc/extend.texi,
11695         doc/frontends.texi, doc/gcov.texi, doc/gty.texi, doc/install.texi,
11696         doc/invoke.texi, doc/libgcc.texi, doc/md.texi, doc/rtl.texi,
11697         doc/sourcebuild.texi, doc/standards.texi, doc/tm.texi,
11698         doc/trouble.texi: Remove trailing whitespace.
11699
11700 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
11701
11702         PR target/7618
11703         * config/mips/mips.c: Include cfglayout.h.
11704         (TARGET_ASM_OUTPUT_MI_THUNK, TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
11705         (mips_unspec_offset_high): Add temporary register argument.
11706         (mips_load_call_address): New function, split out from...
11707         (mips_expand_call): ...here.
11708         (mips_output_cplocal): New function.
11709         (mips_output_function_prologue, mips_output_function_epilogue): Use it.
11710         (mips_emit_loadgp): New function, split out from...
11711         (mips_expand_prologue): ...here.
11712         (mips_output_mi_thunk): New function.
11713
11714 2004-01-17  Bernardo Innocenti  <bernie@develer.com>
11715
11716         * longlong.h (mc68020, __mc68030__, mc68030, __mc68040__, mc68040,
11717         mcpu32): Remove redundant checks for implied target predefines.
11718
11719 2004-1-17  Andrew Pinski  <pinskia@physics.uc.edu>
11720
11721         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
11722         Return type is unsigned int not int.
11723         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
11724         Likewise.
11725
11726 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
11727
11728         * doc/contrib.texi, doc/cppenv.texi, doc/extend.texi,
11729         doc/install.texi, doc/invoke.texi, doc/tm.texi: Consistently use
11730         "GNU/Linux" and "Microsoft Windows" terminology.
11731
11732 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
11733
11734         * doc/c-tree.texi, doc/compat.texi, doc/cpp.texi,
11735         doc/cppopts.texi, doc/extend.texi, doc/install.texi,
11736         doc/interface.texi, doc/invoke.texi, doc/libgcc.texi, doc/md.texi,
11737         doc/objc.texi, doc/rtl.texi, doc/tm.texi, doc/trouble.texi: Use
11738         @smallexample instead of @example.
11739
11740 2004-01-17  Ziemowit Laski  <zlaski@apple.com>
11741
11742         * objc/objc-act.c (build_objc_method_call): Use target
11743         hooks instead of macros to determine if ..._stret
11744         dispatchers should be used (NeXT runtime only).
11745
11746 2004-01-17  Roger Sayle  <roger@eyesopen.com>
11747
11748         * builtins.c (expand_builtin_expect_jump): Fix mistake in my
11749         last patch.  Use XEXP (x, 0) to get a LABEL_REF's CODE_LABEL.
11750
11751 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
11752
11753         * rtl.h (emit_insn_before_sameloc, emit_jump_insn_before_sameloc)
11754         (emit_call_insn_before_sameloc, emit_insn_after_sameloc)
11755         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): New
11756         macros.
11757         * reload1.c (emit_reload_insns): Use them.
11758         * emit-rtl.c (emit_insn_before_sameloc, emit_insn_after_sameloc)
11759         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): Check
11760         for NULL PATTERN.
11761
11762 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
11763
11764         * final.c (SEEN_BB, SEEN_NOTE, SEEN_EMITTED): Define.
11765         (final_scan_insn): Update to take an additional SEEN argument.  Emit
11766         a line note after the prologue.  Make static.
11767         (line_note_exists): Remove.
11768         (final): Don't initialize line_note_exists.  Update call to
11769         final_scan_insn.
11770         * output.h (final_scan_insn): Remove prologue.
11771         * function.c (set_insn_locators): Update comment.
11772         (thread_prologue_and_epilogue_insns): Add a comment.
11773
11774 2004-01-17  Andrew Pinski  <pinskia@physics.uc.edu>
11775
11776         PR target/10781
11777         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
11778         Prototype.
11779         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
11780         New function.
11781         * config/rs6000/linux64.h (ROUND_TYPE_ALIGN): Use it.
11782         * config/rs6000/aix.h (ROUND_TYPE_ALIGN): Likewise.
11783         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Likewise.
11784
11785 2004-01-17  Jan Hubicka  <jh@suse.cz>
11786
11787         * toplev.c (rest_of_handle_reorder_blocks): Fix pasto in previous
11788         commit.
11789
11790         * toplev.c (HAVE_conditional_execution): Provide default.
11791         (rest_of_handle_reorder_blocks): For conditional_execution target
11792         update liveness once after all transformations
11793         (rest_of_compilation): Do crossjumping before ce3.
11794
11795 2004-01-17  Geoffrey Keating  <geoffk@apple.com>
11796
11797         * alias.c (new_alias_set): Mark last_alias_set for PCH.
11798         (get_varargs_alias_set): Rename 'set' to 'varargs_set' and mark it
11799         for PCH.
11800         (get_frame_alias_set): Likewise, except rename it to 'frame_set'.
11801         * config/rs6000/rs6000.c (rs6000_sr_alias_set): Mark for PCH.
11802         (get_TOC_alias_set): Mark 'set' for PCH.
11803
11804 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
11805
11806         * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
11807         even after reload, just don't remove the actual jump tables.
11808
11809 2004-01-17  J. Brobecker  <brobecker@gnat.com>
11810
11811         * dwarf2out.c (is_subrange_type): Renamed from is_ada_subrange_type().
11812         Remove checks for is_ada() and TREE_UNSIGNED.
11813         (subrange_type_die): Emit a byte_size attribute if the subrange
11814         type size is different from the base type size.
11815         (modified_type_die): Replace call to is_ada_subrange_type() by
11816         call to is_subrange_type().
11817
11818 2004-01-16  Andrew Pinski  <pinskia@physics.uc.edu>
11819
11820         * config/sh/sh.c: Include ggc.h.
11821
11822 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
11823
11824         * Makefile.in (MD5_H): New.
11825         (fold-const.o): Depend on md5.h.
11826         (dwarf2out.o): Likewise.
11827         (cppfiles.o): Likewise.
11828         * cppfiles.c: Include md5.h.
11829         (should_stack_file): Check against list read from PCH file.
11830         (struct pchf_data): New.
11831         (pchf): New variable.
11832         (struct pchf_adder_info): New.
11833         (pchf_adder): New.
11834         (pchf_save_compare): New.
11835         (_cpp_save_file_entries): New.
11836         (_cpp_read_file_entries): New.
11837         (struct pchf_compare_data): New.
11838         (pchf_compare): New.
11839         (check_file_against_entries): New.
11840         * cpphash.h (_cpp_save_file_entries): Prototype.
11841         (_cpp_read_file_entries): Prototype.
11842         * cpppch.c (cpp_write_pch_state): Write the list of headers.
11843         (cpp_read_state): Read the list of headers.
11844
11845 2004-01-17  Jan Hubicka  <jh@suse.cz>
11846
11847         * c-common.c (c_estimate_num_insns_1): Handle builtin_constant_p and
11848         builtin_expect specially.
11849         * params.def (PARAM_MAX_INLINE_INSNS_AUTO): Set to 100.
11850         (PARAM_LARGE_FUNCTION_INSNS): Set to 3000.
11851         * invoke.texi (max-inline-insns-single): Set to 100.
11852         (large-function-insns): Set to 3000.
11853
11854 2004-01-16  Eric Christopher  <echristo@redhat.com>
11855             Chandrakala Chavva <cchavva@redhat.com>
11856
11857         * cppcharset.c (one_iso88591_to_utf8): New function.
11858         (convert_iso88591_utf8): Ditto. Use.
11859         (conversion_tab): Use.
11860         (_cpp_input_to_utf8): New function.
11861         (_cpp_init_iconv_buffer): Ditto.
11862         (_cpp_close_iconv_buffer): Ditto.
11863         * cpphash.h: Prototype new functions.
11864         (cpp_buffer): Add input_cset_desc.
11865         * cppinit.c: Add input_charset default.
11866         * cpplib.c (cpp_push_buffer): Support init and
11867         close of iconv.
11868         * cpplib.h (cpp_options): Add input_charset.
11869
11870 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
11871
11872         * system.h (ASM_OUTPUT_SECTION_NAME): Poison.
11873         * config/alpha/unicosmk.h: Remove a commented-out definition
11874         of ASM_OUTPUT_SECTION_NAME.
11875         * config/stormy16/stormy16.h: Likewise.
11876
11877 2004-01-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
11878
11879         * fixinc/inclhack.def (alpha___extern_prefix): Renamed to ...
11880         (alpha___extern_prefix_sys_stat): ... this.
11881         Apply to <sys/mount.h>, too.
11882         Tweak to match more variations.
11883         * fixinc/tests/base/sys/stat.h: Adapt for new hackname.
11884
11885         * fixinc/inclhack.def (alpha___extern_prefix,
11886         alpha___extern_prefix_standards): New hacks to obey
11887         __PRAGMA_EXTERN_PREFIX.
11888         * fixinc/tests/base/testing.h [ALPHA___EXTERN_PREFIX_CHECK]: New
11889         test.
11890         * fixinc/tests/base/standards.h: Likewise.
11891
11892         * fixincl/inclhack.def (alpha_pthread): Tweak to match more
11893         variations.
11894         New testcase.
11895         * fixinc/tests/base/pthread.h: Handle it.
11896
11897         * fixincl/inclhack.def (bad_lval): Sort file list.
11898         Add many missing files up to Tru64 UNIX V5.1B.
11899         * gcc/fixinc/tests/base/libgen.h: Renamed to ...
11900         * gcc/fixinc/tests/base/dirent.h: ... this to match new file list
11901         order.
11902
11903         * fixinc/fixincl.x: Regenerate.
11904
11905 2004-01-16  Mark Mitchell  <mark@codesourcery.com>
11906
11907         * version.c (version_string): Change to 3.5.0.
11908         * doc/include/gcc-common.texi (version-GCC): Likewise.
11909
11910 2004-01-16  Jan Hubicka  <jh@suse.cz>
11911
11912         * i386.md (load_tp_di): Fix pasto.
11913
11914         PR opt/13608
11915         * i386.c (ix86_compute_frame_layout): Fix for alloca on leaf function.
11916
11917         * c-pretty-print.c (pp_c_type_cast, pp_c_abstract_declarator,
11918         pp_c_character_constant, pp_c_floating_constant,
11919         pp_c_additive_expression, pp_c_shift_expression,
11920         pp_c_equality_expression, pp_c_and_expression,
11921         pp_c_exclusive_or_expression, pp_c_inclusive_or_expression,
11922         pp_c_logical_and_expression): Remove inline modifier.
11923         * dwarf2out.c (get_AT): Likewise.
11924         * et-forest.c (et_splay): Likewise.
11925         * ra.h (ra_alloc, ra_calloc): Likewise
11926
11927 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
11928
11929         * config/frv/frv-protos.h: Fix comment formatting.
11930         * config/frv/frv.c: Likewise.
11931         * config/frv/frv.h: Likewise.
11932         * config/frv/frv.md: Likewise.
11933         * config/frv/frvbegin.c: Likewise.
11934         * config/frv/frvend.c: Likewise.
11935
11936 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
11937
11938         * system.h (LINKER_DOES_NOT_WORK_WITH_DWARF2): Poison.
11939         * doc/tm.texi (PREFERRED_DEBUGGING_TYPE): Don't mention
11940         LINKER_DOES_NOT_WORK_WITH_DWARF2.
11941         (LINKER_DOES_NOT_WORK_WITH_DWARF2): Remove.
11942
11943 2004-01-16  J"orn Rennecke <joern.rennecke@superh.com>
11944
11945         PR 11864
11946         * postreload.c (reload_cse_simplify_operands): Don't remove
11947         implicit extension from LOAD_EXTEND_OP.
11948
11949 2004-01-16  Jan Hubicka  <jh@suse.cz>
11950
11951         PR opt/11350
11952         * cfgcleanup.c (try_optimize_cfg): Suppress tablejump removal
11953         after reload.
11954         * cfgrtl.c (rtl_can_merge_blocks, cfglayout_can_merge_blocks,
11955         rtl_try_redirect_by_replacing_branch): Likewise.
11956
11957 2004-01-15  Geoffrey Keating  <geoffk@apple.com>
11958
11959         PR pch/13689
11960         * alias.c (struct alias_set_entry): Mark for GC.
11961         (alias_sets): Make static, mark for GC.
11962         (record_alias_subset): Use GC to allocate alias structures.
11963         * varray.c (element): Make generic varrays GCed.
11964
11965         PR pch/13361
11966         * c-typeck.c (constructor_asmspec): Delete.
11967         (struct initializer_stack): Delete field 'asmspec'.
11968         (start_init): Delete saving of asmspec.
11969         (finish_init): Don't update constructor_asmspec.
11970         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
11971         * stmt.c (expand_asm): Duplicate strings from tree.
11972         (expand_asm_operands): Likewise.
11973         * tree.c (tree_size): Update computation of size of STRING_CST.
11974         (make_node): Don't make STRING_CST nodes.
11975         (build_string): Allocate string with tree node.
11976         * tree.def (STRING_CST): Update comment.
11977         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
11978         (tree_string): Place contents of string in tree node.
11979         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
11980         from tree.
11981
11982         * config/rs6000/rs6000.c (rs6000_va_arg): No need to special-case
11983         altivec operands.
11984
11985 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
11986
11987         * c-common.h: Fix comment formatting.
11988         * c-cppbuiltin.c: Likewise.
11989         * c-pragma.c: Likewise.
11990         * calls.c: Likewise.
11991         * collect2.c: Likewise.
11992         * cppcharset.c: Likewise.
11993         * cpptrad.c: Likewise.
11994         * dbxout.c: Likewise.
11995         * defaults.h: Likewise.
11996         * dwarf2out.c: Likewise.
11997         * fold-const.c: Likewise.
11998         * genautomata.c: Likewise.
11999         * genconditions.c: Likewise.
12000         * genflags.c: Likewise.
12001         * gengtype.c: Likewise.
12002         * integrate.c: Likewise.
12003         * loop.c: Likewise.
12004         * predict.c: Likewise.
12005         * sdbout.c: Likewise.
12006
12007 2004-01-15  Zack Weinberg  <zack@codesourcery.com>
12008
12009         * config/ia64/ia64.md (*movti_internal): C output template
12010         extracted to ia64.c.
12011         (*movti_internal_reg): Delete.
12012         (reload_inti, reload_outti): Use the correct mode on operand 2
12013         in the first place, don't fix it up in the output template.
12014         (movtf, reload_ointf, reload_outtf): New expanders.
12015         (*movtf_internal): New define_insn_and_split.
12016         * config/ia64/ia64.c (ia64_split_timode): Rename to ia64_split_tmode;
12017         make static; do not hand TFmode CONST_DOUBLEs to split_double.
12018         (ia64_split_tmode_move): New function, body mostly pulled
12019         from ia64.md:*movti_internal.
12020         (ia64_function_arg_words): New function, extracted common
12021         logic from ia64_function_arg et seq.
12022         (ia64_function_arg_offset): Likewise.  Handle correctly the
12023         case of a scalar quantity 16 bytes wide with only 8-byte alignment.
12024         (ia64_function_arg, ia64_function_arg_partial_nregs)
12025         (ia64_function_arg_advance): Use ia64_function_arg_words and
12026         ia64_function_arg_offset.
12027         (ia64_function_value): TCmode does not go in float regs.
12028         (ia64_secondary_reload_class): Also handle TFmode.
12029         * config/ia64/ia64-protos.h: Remove prototype for
12030         ia64_split_timode; add prototype for ia64_split_tmode_move.
12031
12032 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
12033
12034         * Makefile.in (MAINT): Make it an immediate assignment.
12035
12036 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
12037
12038         * config/m32r/m32r.md: Remove useless calls to gen_lowpart.
12039
12040 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
12041
12042         * config/h8300/coff.h: Replace Hitachi with Renesas.
12043         * config/h8300/elf.h: Likewise.
12044         * config/h8300/h8300-protos.h: Likewise.
12045         * config/h8300/h8300.c: Likewise.
12046         * config/h8300/h8300.h: Likewise.
12047         * config/h8300/h8300.md: Likewise.
12048         * config/h8300/lib1funcs.asm: Likewise.
12049
12050 2004-01-15  Andrew Pinski  <apinski@apple.com>
12051
12052         * config/rs6000/rs6000.c (uses_TOC): Wrap #if TARGET_ELF
12053         around it.
12054
12055 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
12056
12057         * config/h8300/h8300.c (h8300_return_in_memory): New.
12058         (TARGET_STRUCT_VALUE_RTX): Likewise.
12059         (TARGET_RETURN_IN_MEMORY): Likewise.
12060         * config/h8300/h8300.h (STRUCT_VALUE): Remove.
12061         (RETURN_IN_MEMORY): Likewise.
12062
12063 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
12064
12065         PR optimization/13375
12066         * gcse.c (handle_avail_expr): Just return if the source is not a
12067         single set.
12068
12069 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
12070             Daniel Jacobowitz  <drow@mvista.com>
12071
12072         * arm/lib1funcs.asm (ARM_FUNC_START): Correct interworking case.
12073         (EQUIV): Define.
12074         (ARM_FUNC_ALIAS): New macro.
12075         * arm/ieee754-df.S (gedf2, ledf2, nedf2, eqdf2): Use it.
12076         * arm/ieee754-sf.S (gesf2, lesf2, nesf2, eqsf2): Use it.
12077
12078 2004-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12079
12080         PR optimization/12372
12081         * calls.c (expand_call): Add call_fusage data for stack arguments in
12082         constant calls.
12083
12084 2004-01-15  Alan Modra  <amodra@bigpond.net.au>
12085
12086         * config/rs6000/rs6000.c (uses_TOC): Correct comment.  Make static.
12087         (rs6000_elf_declare_function_name): Formatting.
12088         * config/rs6000/rs6000-protos.h (uses_TOC): Remove declaration.
12089
12090 2004-01-15  Jan Hubicka  <jh@suse.cz>
12091
12092         PR bootstrap/13692
12093         * sched-deps.c (sched_analyze_1, sched_analyze_2): Fix thinko in
12094         previous patch.
12095
12096 2004-01-15  Richard Henderson  <rth@redhat.com>
12097
12098         * config/alpha/alpha.h (REG_ALLOC_ORDER): Reorder fp regs after
12099         integer regs of the same call-savedness.
12100
12101 2004-01-15  Andreas Schwab  <schwab@suse.de>
12102
12103         PR bootstrap/13562
12104         * config/m68k/m68k.c (output_move_const_into_data_reg): Clear cc
12105         status for NOTB/NOTW/NEGW methods.
12106
12107 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
12108
12109         * doc/invoke.texi: Update dump file names.  Fix a typo.
12110
12111 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
12112
12113         * builtins.c (expand_builtin_va_end): Don't use
12114         EXPAND_BUILTIN_VA_END.
12115         * system.h (EXPAND_BUILTIN_VA_END): Poison.
12116         * config/d30v/d30v.h: Remove a commented-out definition of
12117         EXPAND_BUILTIN_VA_END.
12118         * config/stormy16/stormy16.h: Likewise.
12119
12120 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
12121
12122         * system.h (STRUCT_VALUE_INCOMING_REGNUM): Poison.
12123         * targhooks.c (default_struct_value_rtx): Don't use
12124         STRUCT_VALUE_INCOMING_REGNUM.
12125
12126 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
12127
12128         PR bootstrap/12744
12129         * configure.in: Revamp enable-generated-files-in-srcdir rule to define
12130         GENINSRC and not parsedir.  Define srcextra as a langhook.
12131         * configure: Regenerate.
12132         * Makefile.in: Suppress default .l.c rule.  Don't substitute
12133         parsedir and delete all references throughout.  Conditionally define
12134         rule for srcextra dependent on GENINSRC.
12135         (stmp-docobjdir): Delete.
12136         (c-parse.o, gengtype-lex.o, gengtype-yacc.o): Use implicit build rule.
12137         (srcextra): Copy c-parse.y, c-parse.c, gengtype-lex.c, gengtype-yacc.c,
12138         and gengtype-yacc.h back to source directory.
12139         (maintainer-clean): Delete all parse files in source directory.
12140         (distclean): Delete generated files.
12141
12142         * objc/Make-lang.in (objc-parse.o): Use implicit build rule.
12143         (objc-parse.c, objc-parse.y): Don't use parsedir.
12144         (objc.srcextra): Copy objc-parse.y and objc-parse.c back to source
12145         directory if requested.
12146         (po-generated): Don't use parsedir.
12147         (objc.maintainer-clean): Delete above files from source directory.
12148
12149 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
12150
12151         * doc/tm.texi (FUNCTION_VALUE): Fix a typo.
12152
12153 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
12154
12155         * doc/tm.texi: Replace RETURN_IN_MEMORY with
12156         TARGET_RETURN_IN_MEMORY.
12157
12158 2004-01-15  Jan Hubicka  <jh@suse.cz>
12159
12160         * builtins.c (std_expand_builtin_va_arg): Align operand when needed.
12161         * i386.c (init_cumulative_args): Set warn_sse; fix handling of variadic
12162         functions accepting SSE arguments
12163         (function_arg): Warn only when asked to warn.
12164         * i386.h (ix86_args): Add warn_sse/warn_mmx fiels.
12165
12166 2004-01-14  Joseph S. Myers  <jsm@polyomino.org.uk>
12167
12168         * c-parse.in (stmts_and_decls): Make label at end of compound
12169         statement a hard error.
12170
12171 2004-01-14  Jan Hubicka  <jh@suse.cz>
12172
12173         * cgraph.c (create_edge): Use local.redefined_extern_inline.
12174         * cgraph.h (cgraph_local_info): Sort fields by size; add
12175         redefined_extern_inline
12176         (cgraph_global_info): Sort fields by size.
12177         (cgraph_node): Likewise.
12178         * cgraphunit.c (cgraph_finalize_function): Se
12179         local.redefined_extern_inline on redefinition.
12180         (cgraph_analyze_function): Use it; fix formating.
12181
12182 2004-01-14  Jan Hubicka  <jh@suse.cz>
12183
12184         PR c++/10776
12185         * sched-deps.c (trye_dependency_cache, anti_dependency_cache,
12186         outptu_dependency_cache, forward_dependency_cahe): Trun to vectors of
12187         bitmaps
12188         (cache_size): New variable
12189         (add_dependence): Update use; canonize early memory locations
12190         (sched_analyze_1): Likewise.
12191         (sched_analyze_2): Likewise.
12192         (init_dependency_caches): Initialize bitmaps.
12193         (free_dependency_caches): Free bitmaps
12194
12195 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
12196
12197         * calls.c: Replace STRICT_ARGUMENT_NAMING in comments with
12198         targetm.calls.strict_argument_naming().
12199         * target.h: Likewise.
12200
12201 2004-01-14  Richard Henderson  <rth@redhat.com>
12202
12203         PR debug/13231
12204         * dwarf2out.c (dwarf2out_stack_adjust): Skip prologue and epilogue
12205         instructions.
12206
12207 2004-01-14  Richard Henderson  <rth@redhat.com>
12208
12209         PR c++/12491
12210         * except.c (struct eh_region): Add u.fixup.resolved.
12211         (resolve_one_fixup_region): Split out from ...
12212         (resolve_fixup_regions): ... here.
12213
12214 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
12215
12216         * config/mn10300/mn10300.h (STRUCT_VALUE): Change to 0.
12217
12218 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
12219
12220         * config/alpha/alpha.h (STRUCT_VALUE): Remove.
12221         * config/alpha/vms.h (STRUCT_VALUE_REGNUM): Remove #undef.
12222         (STRUCT_VALUE): Remove.
12223
12224 2004-01-14  Steven Bosscher  <stevenb@suse.de>
12225
12226         * system.h: Poison PROMOTED_MODE
12227         * integrate.c (expand_inline_function): Don't mention the
12228         PROMOTED_MODE.
12229         * loop.c (update_giv_derive): Same.
12230         * tree.h (DECL_RTL): Same.
12231
12232 2004-01-14  J"orn Rennecke <joern.rennecke@superh.com>
12233
12234         PR target/9365
12235         * sh.c (gen_block_redirect): Add special handling of RETURN.
12236         (gen_far_branch) Don't call gen_stuff_delay_slot if there is no
12237         far branch target (i.e. it's a return).
12238
12239 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
12240
12241         * regrename.c (find_oldest_value_reg): Fix a warning.
12242
12243 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
12244
12245         PR bootstrap/12527
12246         * config.gcc (arm*-*-linux*): Don't include unknown-elf.h in tm_file.
12247         Move linux-gas.h and linux-elf.h before aout.h.
12248         * arm/arm.h (INITIALIZE_TRAMPOLINE): Only define if not already.
12249         * arm/linux-elf.h (SUBTARGET_CPU_DEFAULT): Define.
12250
12251 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
12252
12253         * config/m32r/m32r.md: Use GEN_INT instead of gen_rtx
12254         (CONST_INT, VOIDmode, ...).
12255
12256 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
12257
12258         * regrename.c (find_oldest_value_reg): If the replacement uses
12259         multiple hard registers, check that all of them are in CLASS.
12260
12261 2004-01-14  Jan Hubicka  <jh@suse.cz>
12262
12263         * alias.c (get_alias_set):  Initialize alias set to 0 when subset is
12264         impossible.
12265
12266 2004-01-14  Kelley Cook  <kcook@gcc.gnu.org>
12267
12268         * Makefile.in: Define MAINT from --enable-maintainer-mode.
12269
12270 2004-01-14  Hartmut Penner  <hpenner@de.ibm.com>
12271
12272         * gcc/config/rs6000/rs6000.c (rs6000_stack_info)
12273         Calculate always vrsave_mask if TARGET_ALTIVEC.
12274         (rs6000_emit_prologue): Emit code for vrsave
12275         only if TARGET_ALTIVEC_VRSAVE.
12276         (rs6000_emit_epilogue): Likewise.
12277
12278 2004-01-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
12279
12280         * config/sparc/sparc.md (tie_add32): Fix pasto.
12281         (tie_add64): Likewise.
12282
12283 2004-01-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12284
12285         * config/i386/i386.md (*addqi_1_slp): Do not access operands[2].
12286
12287 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
12288
12289         * config/iq2000/iq2000-protos.h: Fix comment formatting.
12290         * config/iq2000/iq2000.c: Likewise.
12291         * config/iq2000/iq2000.md: Likewise.
12292
12293 2004-01-14  J. Brobecker  <brobecker@gnat.com>
12294
12295         * dwarf2out.c (is_ada_subrange_type): No longer check the TYPE_NAME.
12296         (subrange_type_die): Add handle for nameless subrange types.
12297
12298 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
12299
12300         * config/h8300/h8300-protos.h: Replace do_movsi with
12301         h8300_expand_movsi.
12302         * config/h8300/h8300.c (do_movsi): Change to
12303         h8300_expand_movsi.
12304         * config/h8300/h8300.md (movsi): Replace do_movsi with
12305         h8300_expand_movsi.
12306         (movsf): Likewise.
12307
12308 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
12309
12310         * config/h8300/h8300.c (dosize): Change to
12311         h8300_emit_stack_adjustment.  Update callers.
12312
12313 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
12314
12315         * config/h8300/h8300.md (movstrictqi): Add an alternative with
12316         the source being post_inc.  Tighten the predicate for the
12317         destination to register_operand.
12318         (movstricthi): Likewise.
12319
12320 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
12321
12322         * system.h (SHARED_BSS_SECTION_ASM_OP): Poison.
12323         * varasm.c (bss_section): Don't use SHARED_BSS_SECTION_ASM_OP.
12324         * doc/tm.texi (SHARED_BSS_SECTION_ASM_OP): Remove.
12325
12326 2004-01-14  Jan Hubicka  <jh@suse.cz>
12327
12328         Partial fix PR c++/12850
12329         * cgraphunit.c (cgraph_finalize_function): Always ggc_collect when
12330         at zero nest level.
12331
12332 2004-01-13  Bernardo Innocenti  <bernie@develer.com>
12333
12334         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Add missing "argptr"
12335         pseudo-register.
12336
12337 2004-01-13  Devang Patel <dpatel@apple.com
12338
12339         PR debug/7078
12340         * dbxout.c (dbxout_symbol_name): Emit mangled names for
12341         NAMESPACE_DECL memebers.
12342
12343 2004-01-13  Andrew Pinski  <pinskia@physics.uc.edu>
12344
12345         PR c++/12709
12346         * c-common.c (finish_fname_decls): Use the chain only if the
12347         tree is an expr_stmt.
12348
12349 2004-01-13  Vladimir Makarov  <vmakarov@redhat.com>
12350
12351         * rtl.def: Add comment about new option in automata_option.
12352
12353         * genautomata.c (PROGRESS_OPTION): New macro.
12354         (progress_flag): New global variable.
12355         (gen_automata_option): Process `progress'.
12356         (transform_insn_regexps, check_unit_distributions_to_automata,
12357         make_automaton, NDFA_to_DFA, build_automaton, create_automata,
12358         expand_automata, write_automata): Print about the progress only if
12359         progress_flag.  Remove fflush.
12360         (initiate_automaton_gen): Process command line flag `-progress'.
12361
12362         * doc/md.texi: Describe the new option.
12363
12364 2004-01-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12365
12366         * cfg.c (dump_bb): Dump entry edges.
12367
12368 2004-01-13  Richard Earnshaw  <rearnsha@arm.com>
12369
12370         * arm.c (thumb_legitimate_address_p): Only allow constant pool
12371         references from SImode.
12372         * arm.md (thumb_movhi_insn): Don't allow minipool references.
12373
12374 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
12375
12376         * system.h (TEXT_SECTION): Poison.
12377         * varasm.c (text_section): Don't use TEXT_SECTION.
12378         * config/sh/sh.c (sh_file_start): Fix a comment typo.
12379         * doc/tm.texi (TEXT_SECTION): Remove.
12380
12381 2004-01-13  Ben Elliston  <bje@wasabisystems.com>
12382
12383         * doc/rtl.texi (Vector Operations): Remove defunct vec_const item.
12384
12385 2004-01-12  James E Wilson  <wilson@specifixinc.com>
12386
12387         * unwind-libunwind.c: Delete.
12388
12389 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
12390
12391         PR 13656
12392         * c-decl.c (diagnose_mismatched_decls): Whenever newtype or
12393         oldtype is set, set *newtypep or *oldtypep too.  Do not set
12394         them at the very end.
12395         (validate_proto_after_old_defn): Restructure for comprehensibility;
12396         make error messages clearer.
12397
12398 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
12399
12400         * varray.h (VARRAY_POP): Add checking variant, aborts on underflow.
12401         (VARRAY_TOP): Use VARRAY_CHECK so the access is bounds-checked.
12402         * varray.c: No need to prototype error.
12403         (varray_check_failed): Wrap long string onto two lines.
12404         (varray_underflow): New function.
12405
12406 2004-01-13  Steven Bosscher  <stevenb@suse.de>
12407
12408         PR c++/13376
12409         * function.h (struct function): Kill `name' field.
12410         (current_function_name): Make it an extern function.
12411         * function.c (current_function_name): New function.
12412         * graph.c: Update all uses of current_function_name.
12413         * gcse.c: Likewise.
12414         * config/alpha/alpha.c, config/avr/avr.c, config/c4x/c4x.c,
12415         config/mips/mips.c, config/pdp11/pdp11.c: Likewise.
12416         * config/ip2k/ip2k.c (function_prologue): Use MAIN_NAME_P
12417         instead of a strcmp with "main".
12418
12419 2004-01-13  Jan Hubicka  <jh@suse.cz>
12420
12421         * c-decl.c (diagnose_mismatched_decls):  Fix warning calls.
12422
12423         * cgraphunit.c (cgraph_optimize_function):  Always do
12424         optimize_inline_calls when there is always_inline callee.
12425         (cgraph_decide_inlining): Fix formating.
12426         * tree-inline.c (inlinable_function_p): Do sorry for alwaysinline
12427         functions.
12428         (expand_call_inline): Likewise.
12429         * toplev.h (sorry): Fix prototype.
12430
12431 2004-01-12  Roger Sayle  <roger@eyesopen.com>
12432
12433         * builtins.c (expand_builtin_expect_jump): Simplify logic. Handle
12434         conditional jumps that drop through to unconditional jumps or the
12435         end of the sequence.
12436
12437 2004-01-13  Jan Hubicka  <jh@suse.cz>
12438
12439         * alias.c (new_alias_set): Construct the alias_set varray.
12440         (init_alias_once): Don't do it here.
12441
12442 2004-01-12  Marc Espie <espie@openbsd.org>
12443
12444         * system.h: handle YYBYACC like YYBISON.
12445
12446 2004-01-12  Jonathan Merriman <jonm@dualitymedia.com>
12447
12448         PR target/10847
12449         * config.gcc: No longer includes conflicting header sparc/sol2.h when
12450         building on sparc64-*-openbsd*.
12451
12452 2004-01-12  Andrew Pinski  <pinskia@physics.uc.edu>
12453
12454         PR debug/13539
12455         * dbxout.c (dbxout_type): Protected inheritance is not
12456         private but protected.
12457
12458 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
12459
12460         * config/mips/mips.c (mips_symbolic_constant_p): Revert last patch.
12461
12462 2004-01-12  Kazu Hirata  <kazu@cs.umass.edu>
12463
12464         PR optimization/12508.
12465         * combine.c (try_combine): Remove a dead set in a parallel
12466         even if its destination is a subreg.
12467
12468         Revert:
12469         2003-06-03  Kazu Hirata  <kazu@cs.umass.edu>
12470         * combine.c (simplify_set): Don't move a subreg in SET_SRC to
12471         SET_DEST if WORD_REGISTER_OPERATIONS is not defined.
12472
12473 2004-01-12  Geoffrey Keating  <geoffk@apple.com>
12474
12475         * real.c: Update copyright date.
12476         * emit-rtl.c: Likewise.
12477         * rtl.h: Likewise.
12478         * dwarf2out.c: Likewise.
12479         * config/rs6000/darwin-ldouble.c: Likewise.
12480         * config/rs6000/rs6000.md: Likewise.
12481
12482 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
12483
12484         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Add AIX
12485         TFmode to SImode libfuncs.
12486
12487 2004-01-12  Roger Sayle  <roger@eyesopen.com>
12488
12489         PR middle-end/11397
12490         * varasm.c (assemble_alias): Remove weak aliases from weak_decls.
12491
12492 2004-01-12  Jan Hubicka  <jh@suse.cz>
12493
12494         PR opt/12826
12495         * loop.c (insert_loop_mem): Preffer VOLATILE memory references to be
12496         stored.
12497
12498         PR opt/12863
12499         * cfgcleanup.c (label_is_jump_target_p): Move to...
12500         * rtlanal.c (label_is_jump_target_p): ... here.
12501         * cfgrtl.c (cfg_layout_redirect_edge_and_branch):  Fix redirecting of fallthru
12502         edges unified with branch edges.
12503
12504 2004-01-12  Richard Earnshaw  <rearnsha@arm.com>
12505
12506         * simplify-rtx.c (simplify_immed_subreg): Correctly extract the
12507         high word of an integral CONST_DOUBLE.
12508
12509 2004-01-12  Paul Brook  <paul@codesourcery.com>
12510
12511         * simplify-rtx.c (simplify_plus_minus): Always generate canonical form.
12512
12513 2004-01-12  J"orn Rennecke <joern.rennecke@superh.com>
12514
12515         PR target/13585
12516         * sh-protos.h (check_use_sfunc_addr): Declare.
12517         * sh.c (extract_sfunc_addr, check_use_sfunc_addr): New functions.
12518         * sh.md (use_sfunc_addr): Use check_use_sfunc_addr in insn predicate.
12519
12520 2004-01-12  Jan Hubicka  <jh@suse.cz>
12521
12522         * alias.c:  Invlude varray.h
12523         (alias_sets): Turn into varray.
12524         (get_alias_set_entry): Use VARRAY; mark inline.
12525         (mems_in_disjoint_alias_sets_p): Mark inline.
12526         (record_alias_subset): Use varray.
12527         (init_alias_once): Initialize varray.
12528         (new_alias_set): Grow array.
12529         * varray.c: Make VARRAY_GENERIC_PTR non GTYized.
12530
12531 2004-01-12  Jan Hubicka  <jh@suse.cz>
12532
12533         Partial fix for PR opt/10776 II
12534         * cselib.c: Include params.h
12535         (cselib_invalidate_mem):  Limit amount of nonconflicting memory
12536         locations.
12537         * params.def (PARAM_MAX_CSELIB_MEMORY_LOCATIONS): New.
12538         * Makefile.in (cselib.o): Depend on params.h
12539
12540 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
12541
12542         * combine.c (combine_simplify_rtx): Don't pass VOIDmode to
12543         simplify_unary_operation if the operand has a known mode.
12544
12545 2004-01-12  Hartmut Penner  <hpenner@de.ibm.com>
12546
12547         PR target/13534
12548         * gcc/config/rs6000/rs6000.c (word_offset_memref_operand): New
12549         predicate to handle 'ld' conform addresses.
12550         * gcc/config/rs6000/rs6000.h (EXTRA_CONSTRAINT): New 'Y'
12551         contraint.
12552         (EXTRA_MEMORY_CONSTRAINT): Tell reload which constraint
12553         are memory contraints.
12554         * gcc/config/rs6000/rs6000-protos.h (word_offset_memref_operand):
12555         New prototype.
12556         * gcc/config/rs6000/rs6000.md (*movdf_hardfloat64):
12557         Change 'o' to 'Y' constraint.
12558         (*movdf_softfloat64): Ditto.
12559
12560 2004-01-12  Bernardo Innocenti  <bernie@develer.com>
12561
12562         * gcc/config/m68k/m68k.md: Switch from the "*..." syntax to the
12563         brace-enclosed syntax in all C output statements.
12564
12565 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
12566
12567         PR target/13401
12568         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
12569         Objective-C language type value is 14.
12570
12571 2004-01-12  Markus F.X.J. Oberhumer  <markus@oberhumer.com>
12572
12573         PR c/12148
12574         * config/m68k/fpgnulib.c: Fix `-mshort' bugs: Use `long' instead of
12575         `int' in a number of places to make sure we always have a SImode
12576         and not a HImode.  Add a 'L' suffix to a number of constants.
12577
12578 2004-01-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12579
12580         * pa.c: Don't include obstack.h.
12581
12582         * pa.md: Correct constraint in pattern for loading PIC label address.
12583
12584 2004-01-11  Kaz Kojima  <kkojima@gcc.gnu.org>
12585
12586         * config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine
12587          before defining.
12588
12589 2004-01-11  Steven Bosscher  <stevenb@suse.de>
12590
12591         PR fortran/9972
12592         * toplev.c (rest_of_handle_inline): Also consider functions
12593         for deferral if the language is GNU F77.
12594
12595 2004-01-11  Zack Weinberg  <zack@codesourcery.com>
12596
12597         * c-decl.c (diagnose_arglist_conflict): Add missing space to
12598         diagnostic messages.
12599
12600 2004-01-11  Jakub Jelinek  <jakub@redhat.com>
12601
12602         PR middle-end/13392
12603         * builtins.c (expand_builtin_expect_jump): Handle conditional jumps
12604         to drop through label.  Don't fall back to SCC even when conditional
12605         jump has not been found.
12606
12607 2004-01-11  Jan Hubicka  <jh@suse.cz>
12608
12609         * invoke.texi: Fix syntax error in previous patch.
12610
12611         Partial fix for PR opt/10776
12612         * Makefile.in (reload.o): Include param.h
12613         * params.def (PARAM_MAX_RELOAD_SEARCH_INSNS): New parameter.
12614         * reload.c: Include params.h.
12615         (find_equiv_reg): Work limiting check.
12616         * invoke.texi: Document.
12617
12618 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
12619
12620         * config/mips/mips.c (mips_symbolic_constant_p): Don't allow
12621         out-of-bounds accesses to string constants.  Simplify mips16
12622         case accordingly.
12623
12624 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
12625
12626         PR optimization/13469
12627         * toplev.c (rest_of_compilation): Call purge_all_dead_edges after
12628         reload_cse_regs (-fnon-call-exceptions only).
12629
12630 2004-01-11  Kazu Hirata  <kazu@cs.umass.edu>
12631
12632         * config/mcore/lib1.asm: Fix comment formatting.
12633         * config/mcore/mcore-elf.h: Likewise.
12634         * config/mcore/mcore.c: Likewise.
12635         * config/mcore/mcore.h: Likewise.
12636         * config/mcore/mcore.md: Likewise.
12637
12638 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
12639
12640         * c-decl.c (duplicate_decls): Break apart into...
12641         (diagnose_arglist_conflict, validate_proto_after_old_defn)
12642         (locate_old_defn, diagnose_mismatched_decls, merge_decls):
12643         ... these new functions.  Restructure for comprehensibility.
12644         Remove various archaic special cases.  Always report the
12645         location of the previous declaration when a diagnostic is issued.
12646         (redeclaration_error_message): Fold into diagnose_mismatched_decls.
12647         (match_builtin_function_types): Delete unnecessary forward declaration.
12648
12649 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
12650
12651         * genautomata.c (make_automaton, NDFA_to_DFA):
12652         Print progress bars with '.' characters instead of '*'.
12653         (build_automaton): Change notes to match.
12654
12655 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
12656
12657         * config/m32r/m32r.md: Use define_constants for unspec and
12658         unspec_volatile.
12659
12660 2004-01-10  Jan Hubicka  <jh@suse.cz>
12661
12662         PR opt/11635
12663         * expr.c (expand_expr_real):  More curefully expand union casts.
12664
12665 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
12666
12667         * config/m32r/m32r.md (flush_icache): Use 1 for
12668         unspec_volatile.
12669
12670 2004-01-10  David Edelsohn  <edelsohn@gnu.org>
12671             James E Wilson  <wilson@specifixinc.com>
12672
12673         PR debug/12860
12674         * dbxout.c (dbxout_symbol): Remove initialization of
12675         current_sym_code, current_sym_value, and current_sym_addr.
12676         (dbxout_symbol_location): Same.
12677         (dbxout_prepare_symbol): Zero current_sym_code,
12678         current_sym_value, and current_sym_addr.
12679
12680 2004-01-10  Richard Sandiford  <rsandifo@redhat.com>
12681
12682         * tree.c (get_unwidened): Reorder conditions so that the null pointer
12683         check is done first.
12684
12685 2004-01-09  Eric Christopher  <echristo@redhat.com>
12686
12687         * toplev.c (rest_of_handle_cfg): Add reg_scan pass
12688         if we're running mark_constant_function.
12689
12690 2004-01-09  Jeff Bailey  <jbailey@nisa.net>
12691
12692         PR target/12561
12693         * config/t-gnu: Rename SYSTEM_HEADER_DIR to NATIVE_SYSTEM_HEADER_DIR.
12694
12695 2004-01-09  Andrew Pinski <pinskia@physics.uc.edu>
12696
12697         PR debug/11231
12698         * dbxout.c (dbxout_type_fields): Return if any item is
12699         error_mark_node or the type is error_mark_node.
12700
12701 2004-01-09  Geoffrey Keating  <geoffk@apple.com>
12702
12703         * config/rs6000/darwin-ldouble.c: Add big comment explaining
12704         exactly what is expected as a 'long double'.
12705         (_xlqadd): When a value to be returned is representable as a
12706         'double', just return it directly, do not construct it using a union.
12707         Also, correct final fixup.
12708         (_xlqmul): Likewise.
12709         (_xlqdiv): Likewise.
12710         * real.c (encode_ibm_extended): Make consistent with darwin-ldouble.c.
12711
12712         * config/rs6000/rs6000.md (fix_trunctfdi2): Delete.
12713
12714 2004-01-09  Richard Henderson  <rth@redhat.com>
12715
12716         * recog.c (constrain_operands): Validate mem operands.
12717
12718 2004-01-09   James E Wilson  <wilson@specifixinc.com>
12719
12720         * gcc.c (init_spec): Remove -lunwind from shared case.
12721         * conifg/ia64/t-hpux (SHLIB_LINK): Add -lunwind.
12722
12723 2004-01-09  Steve Ellcey  <sje@cup.hp.com>
12724
12725         * configure.ac: (gcc_cv_ld_hidden) Set to true for ia64*-*-hpux*.
12726         * configure: Regenerate
12727
12728 2004-01-09  Joseph S. Myers  <jsm@polyomino.org.uk>
12729
12730         PR c/11234
12731         * c-typeck.c (build_c_cast): If pedantic, warn for conversions
12732         between function and object pointers.
12733         (digest_init): When comparing a pointer to function type to the
12734         target type, only apply TREE_TYPE once to the pointer to function
12735         type.
12736         * except.c (for_each_eh_label_1): Treat data as a pointer to a
12737         function pointer rather than casting it to a function pointer.
12738         (for_each_eh_label): Update caller.
12739         * recog.h (struct insn_data): Use a struct or union for output.
12740         * genoutput.c (output_insn_data): Update.
12741         * final.c (get_insn_template): Update.
12742
12743 2004-01-09  Mark Mitchell  <mark@codesourcery.com>
12744
12745         * expr.h (expand_expr): Make it a macro, not a function.
12746         (expand_expr_real): New function.
12747         * expr.c (store_expr): Adjust logic for deciding whether or not to
12748         copy the value returned by expand_expr.
12749         (expand_expr): Rename to ...
12750         (expand_expr_real): ... this.  Add alt_rtl parameter.  Adjust
12751         calls to language hooks.
12752         * c-common.h (c_expand_expr): Adjust prototype.
12753         * c-common.c (c_expand_expr): Add alt_rtl parameter.
12754         * langhooks-def.h (lhd_expand_expr): Change prototype.
12755         * langhooks.c (lhd_expand_expr): Add all_rtl parameter.
12756         * langhooks.h (lang_hooks): Change type of expand_expr.
12757         * stmt.c (stmt_status): Add x_last_expr_alt_rtl.
12758         (last_expr_alt_rtl): Likewise.
12759         (expand_expr_stmt_value): Set last_expr_alt_rtl.
12760         (clear_last_expr): Clear it.
12761         (expand_end_stmt_expr): Set RTL_EXPR_ATL_RTL.
12762         (expand_end_bindings): Save and restor last_expr_alt_rtl.
12763         * tree.def (RTL_EXPR): Give it an additional operand.
12764         * tree.h (RTL_EXPR_ALT_RTL): New macro.
12765
12766 2004-01-09  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
12767
12768         * config/m32r/m32r.h (TARGET_CPU_CPP_BUILTINS): Add __m32r__.
12769         * config/m32r/m32r.c (call26_operand): Allow in PIC mode.
12770
12771 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
12772
12773         PR target/13380.
12774         * config/m32r/m32r.md: Replace (reg:SI 17) with (reg:CC 17)
12775         or (ne:SI (reg:CC 17) (const_int 0)).
12776         Be specific about modes wherever possible.
12777
12778 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
12779
12780         * config/m32r/m32r.c (m32r_expand_block_move): Call
12781         gen_movestrsi_internal with two more arguments.
12782         (m32r_output_block_move): Adjust operand numbers.
12783         Properly update the source and destination pointers.
12784         * config/m32r/m32r.md (movstrsi_internal): Use 'r' instead of
12785         'r+'.  Change the set detinations to match_operand.
12786
12787 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
12788
12789         * final.c (FIRST_INSN_ADDRESS): Remove.
12790         (shorten_branches): Don't use FIRST_INSN_ADDRESS.
12791         * system.h (FIRST_INSN_ADDRESS): Poison.
12792         * config/avr/avr.h: Remove a comment about FIRST_INSN_ADDRESS.
12793         * config/m32r/m32r-protos.h: Remove the prototype for
12794         m32r_first_insn_address.
12795         * config/m32r/m32r.c (m32r_first_insn_address): Remove.
12796         * config/m32r/m32r.h (FIRST_INSN_ADDRESS): Likewise.
12797         * doc/md.texi (FIRST_INSN_ADDRESS): Likewise.
12798
12799 2004-01-09  J. Brobecker  <brobecker@gnat.com>
12800
12801         * dwarf2out.c (gen_enumeration_type_die): Return the DIE that
12802         we just created.
12803         (is_ada_subrange_type): DIEs for enumeration subtypes should be
12804         emitted as subrange types too.
12805         (subrange_type_die): Add handling of enumeration subtypes.
12806
12807 2004-01-08  Richard Henderson  <rth@redhat.com>
12808
12809         PR opt/12441
12810         Revert: Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>
12811         * i386.c (aligned_operand): Be prepared for SUBREGed registers.
12812         (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
12813         (ix86_address_cost): Be prepared for SUBREGed registers.
12814         (legitimate_address_p): Accept SUBREGed registers.
12815
12816 2004-01-08  Kelley Cook  <kcook@gcc.gnu.org>
12817
12818         * Makefile.in: Rename configure.in to configure.ac
12819         * doc/sourcebuild.texi: Likewise.
12820         * configure: Regenerate.
12821         * config.in: Regenerate.
12822
12823 2004-01-08  Stuart Hastings  <stuart@apple.com>
12824
12825         * config/i386/i386.md: Typos in MMX/SSE immediate shifts.
12826
12827 2004-01-08  Jan Hubicka  <jh@suse.cz>
12828
12829         * cgraphunit.c (cgraph_decide_inlining):  Fix typo.
12830
12831 2004-01-08  Geoffrey Keating  <geoffk@apple.com>
12832
12833         * config/rs6000/rs6000.md (cmptf_internal1): Correct branch offset.
12834         (UNSPEC_FIX_TRUNC_TF): New constant.
12835         (movtf_internal): Make splitter active only when insn is active.
12836         (extenddftf2): Rewrite to properly load zero into low part.
12837         (extenddftf2_internal): New.
12838         (extendsftf2): Rewrite.
12839         (truncdftf2): Correct length.
12840         (floatditf2): Delete.
12841         (fix_trunc_helper): New.
12842         (fix_trunctfdi2): Use fix_trunc_helper.
12843         (fix_trunctfsi2): Likewise.fix_trunc
12844         (fix_trunctfsi2_internal): New.
12845
12846         * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): lo_sum
12847         addresses are legitimate on Darwin even when flag_pic.
12848         (rs6000_legitimize_reload_address) [TARGET_MACHO]: Don't create
12849         non-offsettable addresses for loads of TFmode constants.
12850
12851 2004-01-08  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
12852
12853         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Actually emit
12854         variables in the appropriate bss section.
12855
12856 2004-01-09  Alan Modra  <amodra@bigpond.net.au>
12857
12858         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Ensure
12859         target_flags has MASK_POWERPC64 when -m64.
12860         * config/rs6000/rs6000.c (processor_target_table): Add MASK_POWERPC64
12861         to 620, 630, power3, power4 and rs64a entries.
12862         * config/rs6000/rs6000.h (MASK_64BIT): Expand comment.
12863
12864 2004-01-08  Richard Sandiford  <rsandifo@redhat.com>
12865
12866         * simplify-rtx.c (simplify_immed_subreg): Fix construction of
12867         floating-point constants.
12868
12869 2004-01-08  J. Brobecker  <brobecker@gnat.com>
12870
12871         * dwarf2out.c (subrange_type_die): Add context_die parameter.
12872         Create the subrange_type DIE using the given context DIE.
12873         (modified_type_die): Update call to subrange_type_die.
12874
12875 2004-01-08  Zack Weinberg  <zack@codesourcery.com>
12876
12877         * dwarf2.h, unwind-dw2-fde.h, unwind-pe.h, unwind.h:
12878         Add multiple-include guard.
12879
12880 2004-01-08  Hartmut Penner  <hpenner@de.ibm.com>
12881
12882         * gcc/config/rs6000/rs6000.c (easy_vector_constant): Accept
12883         all vector constant loadable by vsplt*.
12884         (output_vec_const_move): Likewise.
12885
12886 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
12887
12888         PR c/6024
12889         * c-typeck.c (comptypes): Only treat enumerated types in the same
12890         translation unit as compatible with each other when they are the
12891         same type.
12892         * doc/extend.texi: Update.
12893
12894 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
12895
12896         PR c/12165
12897         * c-decl.c (grokdeclarator): Take type qualifiers of typedefed
12898         array type from the array element type.
12899
12900 2004-01-07  Alan Modra  <amodra@bigpond.net.au>
12901
12902         * config/rs6000/rs6000.c (rs6000_dbx_register_number): New function.
12903         * config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Declare.
12904         * config/rs6000/rs6000.h (DWARF_FRAME_REGNUM): Define.
12905         (DWARF_REG_TO_UNWIND_COLUMN): Correct column adjustment and comment.
12906         * config/rs6000/sysv4.h (DBX_REGISTER_NUMBER): Define.
12907
12908 2004-01-06  Eric Christopher  <echristo@redhat.com>
12909
12910         * config/mips/mips.h (MDEBUG_ASM_SPEC): Change for dwarf2 default.
12911         (DWARF2_DEBUGGING_INFO): Define.
12912         (PREFERRED_DEBUGGING_TYPE): Set to dwarf2.
12913         * config/mips/openbsd.h (PREFERRED_DEBUGGING_TYPE): Remove.
12914         * config/mips/iris6.h (SUBTARGET_ASM_DEBUGGING_SPEC): Only pass -g0
12915         for irix as.
12916         (SUBTARGET_ASM_OPTIMIZING_SPEC): Only pass O0 for irix as.
12917         * config/mips/iris6gas.h (MDEBUG_ASM_SPEC): Remove.
12918         * config/mips/iris5gas.h: Ditto.
12919         (DBX_DEBUGGING_INFO): Remove.
12920         (DWARF2_DEBUGGING_INFO): Ditto.
12921         (MIPS_DEBUGGING_INFO): Ditto.
12922         (PREFERRED_DEBUGGING_TYPE): Ditto.
12923         * config/mips/elf.h (DWARF2_DEBUGGING_INFO): Remove.
12924         (PREFERRED_DEBUGGING_TYPE): Ditto.
12925         (SUBTARGET_ASM_DEBUGGING_SPEC): Ditto.
12926         * config/mips/elf64.h: Ditto.
12927
12928 2004-01-06  Jan Hubicka  <jh@suse.cz>
12929
12930         * Makefile.in (STAGEPROFILE_FLAGS_TO_PASS): Use -fprofile-generate.
12931         (STAGEFEEDBACK_FLAGS_TO_PASS): Use -fprofile-use.
12932
12933 2004-01-06  Geoffrey Keating  <geoffk@apple.com>
12934
12935         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Compile darwin-ldouble.c.
12936         (TARGET_LIBGCC2_CFLAGS): Use -mlong-double-128.
12937         * config/rs6000/darwin-ldouble.c: New.
12938
12939         * emit-rtl.c (gen_lowpart_common): Use simplify_gen_subreg
12940         for constants.
12941         (constant_subword): Delete.
12942         * rtl.h (constant_subword): Delete prototype.
12943         (immed_double_const): Is not in varasm.c.
12944         * simplify-rtx.c (simplify_immed_subreg): New.
12945         (simplify_subreg): Use simplify_immed_subreg.
12946
12947         * config/rs6000/rs6000.md (floatsitf2): Use expand_float rather
12948         than trying to generate RTL directly.
12949         (fix_trunctfsi2): Use expand_fix rather than trying to generate
12950         RTL directly.
12951
12952         * dwarf2out.c (add_const_value_attribute): Remove incorrect comment.
12953
12954 2004-01-06  David Edelsohn  <edelsohn@gnu.org>
12955
12956         * config/rs6000/xcoff.h (EXTRA_SECTION_FUNCTIONS): Split each
12957         function into a separate macro.
12958         (read_only_data_section): Add void argument.
12959         (private_data_section): Same.
12960         (read_only_private_data_section): Same.
12961         (toc_section): Same.
12962
12963 2004-01-06  Jan Hubicka  <jh@suse.cz>
12964
12965         * invoke.texi:  Remove typo in last change.
12966
12967         PR target/10301
12968         * config.gcc: Accept opteron and athlon-64 as variants
12969         of k8.
12970         * i386.c (override_options): Likewise.
12971         * invoke.texi (i386 -mtune): Expand documentation.
12972
12973 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
12974
12975         * alias.c: Fix comment typos.
12976         * builtins.c: Likewise.
12977         * cfg.c: Likewise.
12978         * df.c: Likewise.
12979         * dominance.c: Likewise.
12980         * dwarf2out.c: Likewise.
12981         * emit-rtl.c: Likewise.
12982         * expr.c: Likewise.
12983         * final.c: Likewise.
12984         * fold-const.c: Likewise.
12985         * gcse.c: Likewise.
12986         * genattrtab.c: Likewise.
12987         * genrecog.c: Likewise.
12988         * gensupport.c: Likewise.
12989         * ggc-zone.c: Likewise.
12990         * integrate.c: Likewise.
12991         * local-alloc.c: Likewise.
12992         * loop.c: Likewise.
12993         * recog.c: Likewise.
12994         * regmove.c: Likewise.
12995         * reg-stack.c: Likewise.
12996         * reorg.c: Likewise.
12997         * rtlanal.c: Likewise.
12998         * rtl.h: Likewise.
12999         * sched-ebb.c: Likewise.
13000         * simplify-rtx.c: Likewise.
13001         * toplev.c: Likewise.
13002         * varasm.c: Likewise.
13003
13004 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
13005
13006         * doc/install.texi: Fix typos.
13007         * doc/invoke.texi: Likewise.
13008         * doc/md.texi: Likewise.
13009
13010 2004-01-06  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
13011
13012         * config/m32r/m32r.h (TRAMPOLINE_LINE_SIZE): Changed
13013
13014 2004-01-06  Jan Hubicka  <jh@suse.cz>
13015
13016         * i386.c (init_cumulative_args):  Add handling of MMX_REGPARM.
13017         (function_arg_advance):  Do not pass aggregates in SSE; deal handling
13018         of MMX_REGPARM.
13019         (function_arg): Add new warnings about ABI changes;  fix SSE_REGPARM;
13020         add MMX_REGPARM.
13021         * i386.h (ix86_args): Add mmx_words/mmx_regs/mmx_regno fields.
13022         (SSE_REGPARM_MAX): Default to 3 on i386 -msse ABI.
13023         (MMX_REGPARM_MAX): Similarly for -mmmx.
13024
13025 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
13026
13027         * config/sh/linux.h: Fix comment formatting.
13028         * config/sh/netbsd-elf.h: Likewise.
13029         * config/sh/sh.c: Likewise.
13030         * config/sh/sh.h: Likewise.
13031         * config/sh/vxworks.h: Likewise.
13032
13033 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
13034
13035         * system.h (ASM_OUTPUT_MAIN_SOURCE_FILENAME): Poison.
13036         * toplev.c (output_file_directive): Don't use
13037         ASM_OUTPUT_MAIN_SOURCE_FILENAME.
13038
13039 2004-01-05  Steven Bosscher <s.bosscher@student.tudelft.nl>
13040
13041         * toplev.c: Fix broken checkin of 2003-12-30.
13042
13043 2004-01-05  Daniel Berlin  <dberlin@dberlin.org>
13044
13045         * ggc-zone.c: Remove everything in #ifdef USING_MALLOC_PAGE_GROUPS
13046         (USING_MMAP): We don't support non-mmap.
13047         (struct alloc_chunk): Steal 1 bit from typecode, use it to mark
13048         large objects.
13049         (struct page_entry): Remove bytes_free.
13050         (struct page_table_chain): Remove.
13051         (struct globals): Remove page_table member.
13052         (loookup_page_table_entry): Function deleted.
13053         (set_page_table_entry): Ditto.
13054         (ggc_allocated_p): No longer need page table lookups.
13055         (ggc_marked_p): Ditto.
13056         (alloc_small_page): Don't care about bytes_free anymore.
13057         (alloc_large_page): Round up size.
13058         (ggc_alloc_zone_1): Mark large objects as such, and calculate
13059         their size the new way.
13060         Remove page table lookups and setting.
13061         (ggc_get_size): Calculate large object size the new way.
13062         (sweep_pages): Redo to account for fact that we no longer have
13063         bytes_free.
13064         (ggc_collect): No longer need to reincrement bytes_free.
13065         (ggc_pch_alloc_object): Handle new large objects properly.
13066         (ggc_pch_read): Put PCH stuff into it's own uncollected zone.
13067
13068 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
13069
13070         * doc/invoke.texi: Remove a page break.
13071
13072 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
13073
13074         * config/avr/avr.c (avr_output_function_prologue): Remove an
13075         extra pair of curly braces.
13076
13077 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
13078
13079         * config/mn10300/mn10300.c: Fix comment formatting.
13080         * config/mn10300/mn10300.h: Likewise.
13081
13082 2004-01-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13083
13084         * tree.h: Update documentation on nothrow_flag.
13085         * print-tree.c (print_node): Print TREE_NOTHROW as "align-ok" for
13086         types.
13087
13088 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
13089
13090         * doc/invoke.texi: Remove traces of dead ports.
13091
13092 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
13093
13094         * doc/invoke.texi: Add documentation for the MIPS -mexplicit-relocs
13095         option.
13096
13097 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
13098
13099         PR target/12945
13100         * coverage.c (coverage_counter_alloc): Set SYMBOL_FLAG_LOCAL for
13101         counter labels.
13102         * config/mips/mips.c (INTERNAL_SYMBOL_P): Delete.
13103         (mips_classify_symbol): Always treat SYMBOL_REF_FLAG as indicating
13104         string constants if TARGET_MIPS16.  Use SYMBOL_REF_DECL to check
13105         the binding of decl symbols, otherwise check SYMBOL_REF_LOCAL_P.
13106         (mips_symbol_insns): Don't trust the local/global classification.
13107         (m16_usym8_4, m16_usym5_4): Same mips16 change as mips_classify_symbol.
13108         (override_options): Make -mabicalls -fno-unit-at-a-time imply
13109         -mno-explicit-relocs.
13110         (mips_encode_section_info): Don't use SYMBOL_REF_FLAG to distinguish
13111         between local and global symbols.
13112
13113 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
13114
13115         * config/mips/mips-protos.h (mips_dangerous_for_la25_p): Declare.
13116         (mips_preferred_reload_class): Declare.
13117         * config/mips/mips.h (DANGEROUS_FOR_LA25_P): Replace with function.
13118         (EXTRA_CONSTRAINT): Update accordingly.
13119         (PREFERRED_RELOAD_CLASS): Use mips_preferred_reload_class.
13120         * config/mips/mips.c (mips_dangerous_for_la25_p): New function.
13121         (mips_preferred_reload_class): New function.  Prefer LEA_REGS if
13122         mips_dangerous_for_la25_p.
13123         (mips_secondary_reload_class): Use LEA_REGS rather than GR_REGS
13124         if mips_dangerous_for_la25_p.
13125
13126 2004-01-05  Bernardo Innocenti  <bernie@develer.com>
13127
13128         * config/m68k/m68k.c (output_andsi3): Fix signed/unsigned comparison
13129         warning.
13130
13131 2004-01-04  Nathanael Nerode  <neroden@gcc.gnu.org>
13132
13133         * configure.ac: Use AC_PROG_CPP_WERROR.
13134         * configure: Regenerate.
13135
13136 2004-01-04  Zack Weinberg  <zack@codesourcery.com>
13137
13138         * .cvsignore: Add autom4te.cache.
13139
13140 2004-01-04  Richard Sandiford  <rsandifo@redhat.com>
13141
13142         * doc/invoke.texi: Revamp documentation of MIPS options.  Remove
13143         -mabi=meabi, -mabi-fake-default, -mmips-as, -mgas, -mmips-tfile,
13144         -m4650, -mfix7000 and -(m)no-crt0.  Put endianness options first,
13145         then architecture options, then ABI options.  General rewording.
13146
13147 2004-01-04  Joseph S. Myers  <jsm@polyomino.org.uk>
13148
13149         PR c/3414
13150         * doc/extend.texi: Clarify definition of malloc attribute.
13151
13152 2004-01-04  Jan Hubicka  <jh@suse.cz>
13153
13154         * Makefile.in (cgraph.o, cgraphunit.o): Add intl.h dependency.
13155         * cgraph.c (create_edge, dump_cgraph): Update to use inline_failed
13156         * cgraph.h (cgraph_edge): Replace inline_call by inline_failed
13157         (cgraph_inline_p): Add extra argument reason.
13158         * cgraphunit.c: Minor formating fixes.
13159         cgraph_first_inlined_callee): New functions.
13160         (record_call_1): Record builtins too.
13161         (cgraph_analyze_function): Update inline_failed messages.
13162         (cgraph_mark_functions_to_output, cgraph_expand_function, cgraph_inlined_into,
13163         cgraph_inlined_callees, cgraph_estimate_growth): Update to use inline_failed.
13164         (cgraph_check_inline_limits): Likewise; Add argument reason.
13165         (cgraph_set_inline_failed): New static function.
13166         (cgraph_decide_inlining_of_small_function, cgraph_decide_inlining): Set
13167         reasons.
13168         (cgraph_inline_p): Add new argument reason.
13169         * tree-inline.c (expand_call_inline):  Update warning.
13170
13171 2004-01-03  Nathanael Nerode  <neroden@gcc.gnu.org>
13172
13173         * configure.ac: Replace AC_INIT, AC_OUTPUT, AC_CANONICAL_SYSTEM
13174         with modern equivalents.
13175         * configure: Regenerate.
13176
13177         * configure.ac: Replace gcc_AC_CHECK_TYPE with AC_CHECK_TYPE.
13178         * aclocal.m4 (gcc_AC_CHECK_TYPE): Remove.
13179         * configure: Regenerate.
13180
13181         * doc/install.texi: Note that 'gcc' is now a 2.57 directory.
13182
13183         * configure.in: Rename to configure.ac.
13184         * configure.ac: Renamed from configure.in; make minimum necessary
13185         changes for autoconf 2.5x.
13186         * aclocal.m4: Make minimum necessary changes for autoconf 2.5x.
13187         * configure: Regenerate with autoconf 2.57.
13188
13189 2004-01-03  Kazu Hirata  <kazu@cs.umass.edu>
13190
13191         * config/mips/linux.h: Fix comment formatting.
13192         * config/mips/mips.c: Likewise.
13193         * config/mips/mips.h: Likewise.
13194         * config/mips/mips.md: Likewise.
13195         * config/mips/netbsd.h: Likewise.
13196         * config/mips/windiss.h: Likewise.
13197
13198 2004-01-02  Richard Henderson  <rth@redhat.com>
13199
13200         * config/i386/i386.md (fp constant pool splitter): Reorg suppression
13201         for sse and 387; add suppression for mmx.
13202
13203 2004-01-02  Andrew Pinski  <pinskia@physics.uc.edu>
13204
13205         * loop.c (loop_optimize): Free all loops_info's mems.
13206
13207         * c-typeck.c (finish_init): Free spelling_base before
13208         setting it again.
13209
13210         * cfgloop.c (flow_loops_find): Always free the sbitmap
13211         headers.
13212
13213         * predict.c (estimate_probability): Free bbs after being
13214         done with it.
13215
13216 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
13217
13218         * config/mn10300/mn10300.h (PREDICATE_CODES): Add
13219         const_8bit_operand and call_address_operand.
13220
13221 2004-01-02  Jan Hubicka  <jh@suse.cz>
13222
13223         * cgraphunit.c (cgraph_optimize_function):  Call optimize_inline_calls
13224         when there is nothing to inline but warnings are requested.
13225         (cgraph_decide_inlining):  Fix memory leak.
13226
13227 2004-01-02  Jan Hubicka  <jh@suse.cz>
13228
13229         * expr.c (store_constructor):  Fix pasto in previous patch.
13230
13231 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
13232
13233         * config/i386/cygming.h: Fix comment formatting.
13234         * config/i386/djgpp.h: Likewise.
13235         * config/i386/gthr-win32.c: Likewise.
13236         * config/i386/i386-interix.h: Likewise.
13237         * config/i386/i386.c: Likewise.
13238         * config/i386/i386.h: Likewise.
13239         * config/i386/openbsd.h: Likewise.
13240         * config/i386/winnt.c: Likewise.
13241         * config/i386/xm-mingw32.h: Likewise.
13242
13243 2004-01-02  Joseph S. Myers  <jsm@polyomino.org.uk>
13244
13245         * doc/gcc.texi, doc/invoke.texi, doc/install.texi: Update
13246         copyright and last modification dates.
13247
13248 2004-01-02  Andreas Jaeger  <aj@suse.de>, Gerald Pfeifer  <gp@suse.de>
13249
13250         * doc/install.texi (Specific): Mention x86_64.
13251
13252 2004-01-01  Hans-Peter Nilsson  <hp@bitrange.com>
13253
13254         * builtins.c (expand_builtin_apply_args_1) [STACK_GROWS_DOWNWARD]:
13255         Call force_operand on plus_constant result.
13256
13257 2004-01-01  Jan Hubicka  <jh@suse.cz>
13258
13259         * expmed.c (store_bit_field, extract_bit_field): Use new named patterns
13260         * expr.c (store_constructor): Use vec_init pattern.
13261         * genopinit.c (optabs): Initailize vec_set/vec_extract/vec_init.
13262         * optabs.h (optab_index): ADD OTI_vec_set/OTI_vec_extract/OTI_vec_init
13263         (vec_set_optab, vec_extract_optab, vec_init_optab): New.
13264         * i386.md (vec_setv2df, vec_extractv2df, vec_setv4sf, vec_extractv4sf):
13265         New patterns.
13266         (sse2_unpc?pd): Fix pattern.
13267         (sse2_movlpd): Kill.
13268         (sse2_movsd): Deal with movlpd too.
13269         * i386.c (ix86_expand_builtin): Use sse2_movsd instead of sse2_movlpd.
13270         (ix86_expand_vector_init): New.
13271         * emmintrin.h (__mm_set_pd, __mm_set_ps): Use vector extensions.
13272         * md.texi (vec_set, vec_extract): Document
13273
13274 2003-12-31  Jan Hubicka  <jh@suse.cz>
13275
13276         PR opt/13473
13277         * recog.c (validate_replace_rtx_1):  Take care for RTL sharing inside
13278         ASM input operands
13279
13280         PR opt/12617
13281         * toplev.c (dump_file_index): Reorder ce3 and bbro.
13282         (dump_file): Likewise.
13283         (rest_of_compilation): Likewise.
13284
13285         PR debug/13367
13286         * cgraph.c (cgraph_function_possibly_inlined):  Even with
13287         flag_really_no_inline we inline always_inline functions.
13288         * cgraphunit.c (cgraph_analyze_function): Clear inlinable flag
13289         for non-always_inline functions when there is flag_really_no_inline.
13290         (cgraph_decide_inlining): Limit work done when not inlining.
13291         (cgraph_decide_inlining_incrementally): Likewise.
13292         (cgraph_optimize_function): Check whether something got inlined.
13293         * c-objc-common.c (c_disregard_inline_limits): Do not always inline
13294         extern inline functions when not inlining.
13295
13296         * opts.c (decode_options):  Disable crossjumping at -O1
13297         * invoke.texi (-O1): Document change.
13298
13299 See ChangeLog.10 for earlier changes.