OSDN Git Service

* config/arm/arm-protots.h (vfp_mem_operand): Rename ...
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2004-05-06  Paul Brook  <paul@codesourcery.com>
2
3         * config/arm/arm-protots.h (vfp_mem_operand): Rename ...
4         (arm_coproc_mem_operand): ... To this.
5         * config/arm/arm.c (arm_legitimate_address_p): Allow ldrd modes.
6         (arm_legitimate_index_p): Ditto.
7         (vfp_mem_operand): Rename ...
8         (arm_coproc_mem_operand): ... To this.  Handle writeback modes.
9         (vfp_secondary_reload_class): Use it.
10         (output_move_double): Use doubleword load/store instructions.
11         (arm_hard_regno_mode_ok): Only allow even reg pairs for ldrd.
12         * config/arm/arm.h (TARGET_LDRD): Define.
13         (EXTRA_CONSTRAINT_STR_ARM): Add 'Uy'.
14         * config/gcc/arm/arm.md (arm_movdi): Allow all valid memory operands.
15         New splitter for invalid doubleword loads.
16         * config/arm/iwmmxt.md (iwmmxt_arm_movdi): Use Uy constraint.
17         * config/arm/vfp.md (arm_movdi_vfp): Allow all valid memory operands.
18         * doc/md.texi: Document Uy constraint.
19
20 2004-05-05  Jan Hubicka  <jh@suse.cz>
21
22         PR opt/14980
23         * cgraphunit.c (cgraph_remove_unreachable_nodes): Deal properly with
24         inline clones.
25
26 2004-05-05  H.J. Lu  <hongjiu.lu@intel.com>
27
28         PR target/15290
29         * config/i386/i386.c (ix86_split_to_parts): Use real_to_target
30         instead of REAL_VALUE_TO_TARGET_LONG_DOUBLE.
31
32 2004-05-05  Mike Stump  <mrs@apple.com>
33
34         * config/darwin-c.c (add_framework): Copy the directory name as it
35         can be freed later.  Also, ensure we always allocate enough room
36         for the cached framework information.
37         (find_subframework_header): Keep track of the directory where the
38         subframework header was found.
39         (framework_construct_pathname): Speed up by not trying to re-add a
40         framework.
41         * cppfiles.c (search_path_exhausted): Arrange for the missing
42         header callback to be able to set the directory where the header
43         was found.
44         (cpp_get_dir): Add.
45         * cpplib.h (missing_header_cb): Add a parameter.
46         (cpp_get_dir): Add.
47
48 2004-05-03  Mike Stump  <mrs@apple.com>
49
50         * doc/invoke.texi (Directory Options): Document -iquote.
51         * doc/cpp.texi: Likewise.
52         * doc/cppopts.texi: Likewise.
53         * c-opts.c (c_common_missing_argument): Add -iquote processing.
54         (c_common_handle_option): Likewise.
55         * c.opt (iquote): Add.
56         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add -iquote.
57         * c-incpath.c (merge_include_chains): Update comment to use -iquote.
58
59         * c-opts.c (case OPT_I): Deprecate -I- support.
60         * doc/invoke.texi: Likewise.
61         * doc/cpp.texi: Likewise.
62         * doc/cppopts.texi: Likewise.
63
64 2004-05-05  Steven Bosscher  <stevenb@suse.de>
65
66         * basic-block.h (free_basic_block_vars): Update prototype.
67         * flow.c (free_basic_block_vars): Remove the keep_head_end_p
68         argument.
69         (life_analysis): Update call.
70         * ifcvt.c (if_convert): Likewise.
71         * sibcall.c (optimize_sibling_and_tail_recursive_call): Likewise.
72         * passes.c (rest_of_handle_final): Likewise.
73         (rest_of_compilation): Likewise.
74         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
75
76         * emit-rtl.c (next_real_insn): Use INSN_P.
77         (prev_real_insn): Likewise.
78
79 2004-05-05  Eric Christopher  <echristo@redhat.com>
80
81         * config/mips/mips.md: Update the madd define_split for new mflo/mfhi
82         representation.
83
84 2004-05-05  Paolo Bonzini  <bonzini@gnu.org>
85
86         * config/rs6000/rs6000.c (build_opaque_vector_type):
87         New function.
88         (rs6000_init_builtins): Use it.
89
90 2004-05-04  Bernard Giroud  <bgiroud2@free.fr>
91
92         * gcc/gcc/vmsdbgout.c (vms_func_node, vms_func_ref): New.
93         (func_table): Change type from char ** to vms_func_ref.
94         (write_rtnbeg):  Update to reflect func_table change.  Use
95         fde->funcdef_number instead of rtnnum in output.
96         (write_rtnend, vmxdbgout_begin_function, vmsdbgout_init): Likewise.
97
98 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
99             Richard Henderson  <rth@redhat.com>
100
101         PR target/14899
102
103         * c-common.c (vector_types_convertible_p): New function.
104         * c-typeck.c (comptypes): Recurse on vector types.
105         (convert_for_assignment): Use vector_types_convertible_p.
106         (digest_init): Use vector_types_convertible_p to check
107         validness of constant vector initializers; otherwise treat
108         them as scalars.
109         * tree.c (make_or_reuse_type): New.
110         (build_common_tree_nodes): Use it.
111         * cp/call.c (standard_conversion): Likewise.
112         * cp/typeck.c (comptypes): Recurse on vector types.
113         (convert_for_assignment): Use vector_types_convertible_p.
114
115 2004-05-04  Chris Demetriou  <cgd@broadcom.com>
116
117         * config/mips/mips.c (override_options): Default to no
118         generation of branch-likely operations when tuning for
119         CPUs where they tend to have a negative performance impact
120         (e.g., SB-1).
121
122 2004-05-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
123
124         * expr.c (store_constructor_field): Don't call store_constructor
125         if bitsize is not a multiple of a byte.
126
127 2004-05-04  Richard Sandiford  <rsandifo@redhat.com>
128
129         * reload1.c (inherit_piecemeal_p): New function.
130         (emit_reload_insns): When reloading a group of hard registers, use
131         inherit_piecemeal_p to decide whether the values of individual hard
132         registers can be inherited.
133
134 2004-05-04  H.J. Lu  <hongjiu.lu@intel.com>
135
136         * config/ia64/t-ia64 (LIB2ADDEH): Remove gthr-gnat.c.
137         * config/s390/t-tpf (LIB2ADDEHDEP): Likewise.
138         * config/t-linux (LIB2ADDEHDEP): Likewise.
139
140 2004-05-04  Paul Brook  <paul@codesourcery.com>
141
142         * config/arm/crti.asm: Push an even number of registers.
143         * config/arm/crtn.asm: And restore them.  Load via sp.
144
145 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
146
147         * ggc-zone.c (ggc_alloc_zone_1): Add MEM_STAT_DECL parameter.
148         Collect overhead information.
149         (ggc_alloc_stat): New name of ggc_alloc.  Add MEM_STAT_DECL
150         parameter and pass it through.
151         (ggc_alloc_typed_stat): New name of ggc_alloc_typed.  Add
152         MEM_STAT_DECL parameter and pass it through.
153         (ggc_alloc_zone_stat): New name of ggc_alloc_zone.  Add
154         MEM_STAT_DECL parameter and pass it through.
155
156 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
157
158         * config/rs6000/rs6000-protos.h: Protoize rs6000_hard_regno_nregs.
159
160         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs): New.
161
162         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Call
163         rs6000_hard_regno_nregs.
164
165 2004-05-03  Eric Christopher  <echristo@redhat.com>
166
167         * config/s390/s390.c (s390_emit_prologue): Call unspec tpf
168         prologue insn instead of setting up call.
169         (s390_emit_epilogue): Ditto.
170         * config/s390/s390.md (prologue_tpf, epilogue_tpf): New patterns.
171         (define_constants): Add numbers for above patterns.
172
173 2004-05-03  Eric Christopher  <echristo@redhat.com>
174
175         * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Move body...
176         * config/s390/s390.c (s390_conditional_register_usage): ...here.
177         * config/s390/s390-protos.h: Prototype.
178
179 2004-05-03  Joe Buck <jbuck@welsh-buck.org>
180
181         * cppfiles.c (pchf_adder): Eliminate use of |= in d->have_once_only
182         assignment.
183
184 2004-05-03  Eric Christopher  <echristo@redhat.com>
185
186         * config/mips/mips.md: Fix branch length attribute definition.
187
188 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
189
190         * config.gcc: Remove --enable-altivec support.
191
192         * config/rs6000/altivec-defs.h: Remove.
193
194 2004-05-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
195
196         * fixinc/inclhack.def (svr4_profil): Don't apply on IRIX 5/6.
197         * fixinc/fixincl.x: Regenerate.
198
199 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
200
201         * config/i386/i386.md (*fyl2x_sfxf3, *fyl2x_dfxf3): Remove insn
202         definition.
203         (log?f2, log10?f2, log2?f2): Reimplement expanders with
204         float_truncate insn.
205         (*fxtractsf3, *fxtractdf3): Remove insn definition.
206         (logb?f2): Reimplement expanders with float_truncate insn.
207
208 2004-05-03  Graham Stott  <graham.stott@btinternet.com>
209
210         PR 14718
211         * dwarf2out.c (dwarf2out_imported_module_or_decl): Use
212         force_type_die for CONST_DECL.
213
214 2004-05-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
215             Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
216
217         * config.gcc (sparc64-*-solaris2*, sparcv9-*-solaris2*): Add
218         tm-dwarf2.h to tm_file.
219         (sparc-*-solaris2*): Add tm-dwarf2.h to tm_file for Solaris 7+.
220         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Delete.
221         (ASM_DEBUG_SPEC): Delete.
222
223 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
224
225         * optabs.h (enum optab_index): Add new OTI_expm1.
226         (expm1_optab): Define corresponding macro.
227         * optabs.c (init_optabs): Initialize expm1_optab.
228         * genopinit.c (optabs): Implement expm1_optab using expm1?f2
229         patterns.
230         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXPM1{,F,L}
231         using expm1_optab.
232         (expand_builtin): Expand BUILT_IN_EXPM1{,F,L} using
233         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
234
235         * config/i386/i386.md (expm1df2, expm1sf2, expm1xf2): New expanders
236         to implement expm1, expm1f and expm1l built-ins as inline x87
237         intrinsics.
238
239 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
240
241         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
242         * config/frv/frv.md (*return_true, *return_false): New patterns.
243
244 2004-05-02  Kazu Hirata  <kazu@cs.umass.edu>
245
246         * rtl.h (PHI_NODE_P): Remove.
247
248 2004-05-02  Eric Botcazou  <ebotcazou@act-europe.fr>
249
250         PR middle-end/14988
251         * function.c (assign_stack_local_1): Use BITS_PER_UNIT alignment
252         when passed -2 as 'align'.
253         (put_var_into_stack): Use 'bool' as the type for the three local
254         predicates.  Adjust calls to put_reg_into_stack.
255         When passed a CONCAT, instruct put_reg_into_stack to use
256         a consecutive stack slot for the second part.
257         (put_reg_into_stack): Remove 'promoted_mode' parameter, add
258         'consecutive_p' parameter.  Turn the three predicates into 'bool'
259         parameters.  Retrieve the register mode from 'reg'.
260         When consecutive_p is true, instruct assign_stack_local_1 to use
261         BITS_PER_UNIT alignment.
262         (put_addressof_into_stack): Use 'bool' as the type for the two
263         local predicates. Adjust call to put_reg_into_stack.
264
265 2004-05-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
266
267         * fold-const.c (fold_convert_const, fold): Add missing
268         FIX_ROUND_EXPR case.
269
270 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
271
272         * configure.ac (FLEX, BISON): Only use tools from the build tree
273         if build equals host.
274         * configure: Rebuilt.
275
276         * config/frv/frv-protos.h (frv_expand_epilogue,
277         frv_expand_fdpic_call): Add bool argument.
278         * config/frv/frv.c (frv_function_ok_for_sibcall): New.
279         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to it.
280         (frv_expand_epilogue): Use new argument to decide whether to emit
281         return instruction or copy the return address to LR.
282         (frv_expand_fdpic_call): Inline PLT entry when emitting direct
283         sibcalls.
284         (sibcall_operand): New.
285         * config/frv/frv.h (PREDICATE_CODES): call_operand doesn't match
286         PLUS nor LABEL_REF.  Add sibcall_operand.
287         * config/frv/frv.md (call, call_value): Pass false to
288         frv_expand_fdpic_call.
289         (call_fdpicdi, call_value_fdpicdi): Insert %i0 in calll.
290         (sibcall, sibcall_internal, sibcall_fdpicdi, sibcall_value,
291         sibcall_value_internal, sibcall_value_fdpicdi): New.
292         (return_unsigned_true, return_unsigned_false): New.
293         (epilogue): Adjust call to frv_expand_epilogue.
294         (sibcall_epilogue): New.
295
296         * config/frv/frv.h (ASM_SPEC): Pass -mno-fdpic as -mnopic.
297         (CPP_SPEC, CPP_SIMPLE_SPEC): Undefine __FRV_ACC__ and __FRV_FPR__
298         before redefining them.
299
300 2004-05-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
301
302         * builtins.c (fold_fixed_mathfn): New function.
303         (fold_builtin_lround, fold_builtin): Use it.
304
305 2004-05-01  Jakub Jelinek  <jakub@redhat.com>
306
307         * config/sparc/linux64.h (TARGET_DEFAULT): Make 64-bit by default
308         also for TARGET_CPU_DEFAULT == TARGET_CPU_ultrasparc3.
309
310 2004-05-01  Kazu Hirata  <kazu@cs.umass.edu>
311
312         * config/cris/cris.h: Revert my "fix comment typos" patch.
313
314 2004-05-01  Richard Sandiford  <rsandifo@redhat.com>
315
316         * config/mips/mips.h (TUNE_MACC_CHAINS): Fix comment.
317
318 2004-05-01  Falk Hueffner  <falk@debian.org>
319
320         * config/alpha/alpha.md (builtin_insbl, builtin_inswl,
321         builtin_insll): Disallow 0 as first input operand.
322
323 2004-05-01  Falk Hueffner  <falk@debian.org>
324
325         * config/alpha/alpha.c (alpha_rtx_costs): Fix shiftadd costs.
326
327 2004-05-01  Ulrich Weigand  <uweigand@de.ibm.com>
328
329         PR middle-end/15054
330         * expr.c (expand_expr_real): Do not call preserve_temp_slots
331         on a TARGET_EXPR temp.
332         * function.c (assign_stack_temp_for_type): Set 'keep' flag for
333         TARGET_EXPR temp slots.
334
335 2004-05-01  Paolo Bonzini  <bonzini@gnu.org>
336
337         * simplify-rtx.c (simplify_ternary_operation): When
338         converting an IF_THEN_ELSE to a relational op, return
339         correct mode.
340
341 2004-04-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
342
343         * builtins.c (fold_builtin_round): Fix comment typo.
344         (fold_builtin_lround): New function.
345         (fold_builtin): Use it.
346
347 2004-04-20  Andrew Pinski  <pinskia@physics.uc.edu>
348
349         PR target/11608
350         * config/sh/elf.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Update and make it
351         more like the one in config/dbxelf.h.
352
353 2004-04-30  Zack Weinberg  <zack@codesourcery.com>
354
355         * tree.h (SET_ARRAY_OR_VECTOR_CHECK): Rename to SET_OR_ARRAY_CHECK
356         and adjust definition accordingly.
357         (TYPE_DOMAIN): Allow only SET_TYPE and ARRAY_TYPE.
358         (TYPE_DEBUG_REPRESENTATION_TYPE): Allow only VECTOR_TYPE.
359         * expr.c (store_constructor): Do not access TYPE_DOMAIN of a
360         VECTOR_TYPE.
361
362 2004-04-30  Jason Merrill  <jason@redhat.com>
363
364         PR c++/14587
365         * config/i386/winnt.c (associated_type): Look for attributes on
366         the TYPE_MAIN_VARIANT of *this.
367         * attribs.c (decl_attributes): If ATTR_FLAG_TYPE_IN_PLACE, also
368         apply the attributes to the variants.
369
370 2004-04-30  Paul Brook  <paul@codesourcery.com>
371
372         * config.gcc: Simplify arm --with-{cpu,tune} test.
373         * config/arm/arm-cores.def: Document whitespace restrictions.
374
375 2004-04-30  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
376
377         PR other/1963
378         * config/alpha/osf.h (SWITCHES_NEED_SPACES): Define.
379
380 2004-04-30  Brian Ford  <ford@vss.fsi.com>
381             DJ Delorie  <dj@redhat.com>
382
383         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
384         (DWARF2_DEBUGGING_INFO): Define to enable.
385         (DBX_REGISTER_NUMBER): Define to use the svr4 register map for
386         DWARF2.
387         * configure.ac (Target-specific assembler checks)
388         <i[34567]86-*-[cygwin*|pe|mingw32*]>: New test for .secrel32
389         relocs.
390         * configure: Regenerate.
391         * config.in: Likewise.
392
393         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
394         (ASM_OUPUT_DWARF_OFFSET): Define.
395
396 2004-04-29  Andreas Krebbel  <krebbel1@de.ibm.com>
397
398         * config/s390/s390-protos.h (s390_emit_epilogue): Parameter added.
399         (s390_emit_call): New function prototype added.
400         (s390_tls_get_offset): Function removed.
401         * config/s390/s390.c (s390_function_ok_for_sibcall,
402         s390_call_saved_register_used_p): New functions.
403         (TARGET_FUNCTION_OK_FOR_SIBCALL): Definition of target macro added.
404         (s390_tls_get_offset): Function merged into s390_emit_tls_call_insn.
405         (s390_emit_tls_call_insn): New function.
406         (legitimize_tls_address): Call s390_emit_tls_call_insn instead of
407         emit_call_insn.
408         (s390_emit_prologue): Use s390_emit_call instead of emit_call_insn.
409         (s390_emit_epilogue): Like s390_emit_prologue. Parameter for sibcalls
410         added.
411         * config/s390/s390.h (SIBCALL_REGNUM): New macro representing the
412         register number used to hold the target address for sibcalls.
413         * config/s390/s390.md ("sibcall", "sibcall_value", "sibcall_epilogue"):
414         New expanders.
415         ("*sibcall_br", "*sibcall_brc", "*sibcall_brcl", "*sibcall_value_br",
416         "*sibcall_value_brc", "*sibcall_value_brcl"): New insns.
417         ("call_exp", "call_value_exp", "call_value_tls", "call_value_tls_exp"):
418         Expanders removed.
419         ("call", "call_value"): Call s390_emit_call to emit the call patterns.
420         ("*bras", "*brasl", "*bras_r", "*brasl_r", "*bras_tls", "*brasl_tls",
421         "*basr", "*basr_r", "*basr_tls"): Added constraint: !SIBLING_CALL_P.
422         ("epilogue"): Changed the call to s390_emit_epilogue to use the
423         new parameter.
424
425 2004-04-30  Kazu Hirata  <kazu@cs.umass.edu>
426
427         * bb-reorder.c, c-opts.c, cfglayout.c, cgraph.c, cgraphunit.c,
428         cppfiles.c, fold-const.c, ggc-zone.c, loop-doloop.c, optabs.c,
429         reg-stack.c, varasm.c, config/alpha/ev4.md,
430         config/alpha/ev5.md, config/alpha/ev6.md, config/arm/arm.c,
431         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.c,
432         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
433         config/frv/frv.h, config/frv/frv.md, config/h8300/h8300.c,
434         config/i386/i386.c, config/i386/i386.md, config/i386/winnt.c,
435         config/ia64/itanium2.md, config/ip2k/ip2k.c,
436         config/mips/mips.c, config/mips/mips.h, config/mips/sr71k.md,
437         config/pa/pa.c, config/s390/s390.c, config/sh/sh.c: Fix
438         comment typos.
439
440 2004-04-30  Paul Brook  <paul@codesourcery.com>
441
442         * config.gcc: Default ep9312 to hard-float.
443         * config/arm/arm-cores.def: Add ARCH field.
444         * config/arm/arm.c (FL_FOR_ARCH*): Define.
445         (arm_arch_cirrus): New variable.
446         (all_cores): Set and use arch.
447         (all_architectures): Ditto.
448         (arm_arch_name): New variable.
449         (arm_override_options): Set it. Use [SUB]TARGET_CPU_DEFAULT.
450         Set and use arm_arch_cirrus.
451         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set arch defines.
452         (enum processor_type): Update ARM_CORE define.
453         (enum target_cpus): Add.  Replaces TARGET_CPU_* defines.
454         (CPP_SPEC): Remove %(cpp_cpu_arch).
455         (CPP_ARCH_DEFAULT_SPEC): Remove.
456         (CPP_CPU_ARCH_SPEC): Remove.
457         (EXTRA_SPECS): Don't use CPP_*ARCH*_SPEC.
458         (FPUTYPE_DEFAULT): Don't define here.
459
460 2004-04-30  J"orn Rennecke <joern.rennecke@superh.com>
461
462         * flow.c (propagate_one_insn): Call mark_set_regs for stack pointer
463         updates too.
464
465 2004-04-30  Paul Brook  <paul@codesourcery.com>
466
467         * arm.c (arm_needs_doubleword_align): Use mode alignment.
468
469 2004-04-30  Paolo Bonzini  <bonzini@gnu.org>
470
471         * config/altivec/altivec.h [__cplusplus] (vec_subsubs): Rename to
472         vec_sububs.
473         [__cplusplus] (vec_subsuhs): Rename to vec_subuhs, without
474         duplicates.
475
476 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
477
478         * config/i386/i386.md (atansf2, atandf2, atanxf2): Move near
479         atan2?f3 expanders.
480
481 2004-04-29  Nick Clifton  <nickc@redhat.com>
482
483         Bug 14093
484         * config/sh/sh-protos.h (sh_promote_prototypes): Declare.
485         * config/sh/sh.c (sh_promote_prototypes): Remove declaration.
486         Delete static from definition.
487         * config/sh/sh.h (FUNCTION_VALUE): Add sh_promote_prototypes call.
488
489 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
490
491         * reg-stack.c (subst_stack_regs_pat): <UNSPEC_SIN, UNSPEC_COS,
492         UNSPEC_FRNDINT, UNSPEC_F2XM1>: abort() if src1 dies.
493         <UNSPEC_SINCOS_COS, UNSPEC_TAN_ONE, UNSPEC_XTRACT_FRACT>: Same.
494         <UNSPEC_SINCOS_SIN, UNSPEC_TAN_TAN, UNSPEC_XTRACT_EXP>: Same.
495
496 2004-04-29  Richard Guenther  <richard.guenther@uni-tuebingen.de>
497
498         * commom.opt (Wfatal-errors): Add it.
499         * diagnostic.c (flag_fatal_errors): Define it.
500         (diagnostic_action_after_output): Check for flag_fatal_errors.
501         * flags.h (flag_fatal_errors): Declare it.
502         * opts.c (common_handle_option): Add OPT_Wfatal_errors.
503         * doc/invoke.texi (Warning Options): Document -Wfatal-errors.
504
505 2004-04-30  Josef Zlomek  <zlomekj@suse.cz>
506
507         * gcse.c (remove_reachable_equiv_notes): Delete notes also in
508         blocks which have kill flag set.
509
510 2004-04-29  Ben Elliston  <bje@au.ibm.com>
511
512         * configure.ac (--with-as): Abort if user-supplied assembler
513         cannot be executed.
514         (--with-ld): Likewise for the linker.
515         * configure: Regenerate.
516
517 2004-04-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
518
519         * convert.c (convert_to_integer): Ensure `long_integer_type_node'
520         isn't NULL before using it.
521
522 2004-04-29  Richard Sandiford  <rsandifo@redhat.com>
523
524         PR target/15189
525         * config/mips/mips.md (load_df_low): Use default length.
526         (load_df_high, store_df_high): Likewise.
527
528 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
529
530         * config/mips/mips.md, config/mips/sb1.md,
531         config/rs6000/rs6000.c: Fix comment typos.
532
533 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
534
535         * builtins.c, cgraph.c, cgraphunit.c, final.c, fold-const.c:
536         Fix comment typos.
537
538 2004-04-29  Douglas B Rupp  <rupp@gnat.com>
539
540         * gcc.c (DELETE_IF_ORDINARY): New macro default definition.
541         (delete_if_ordinary): Use above macro.
542         * config/alpha/xm-vms.h (DELETE_IF_ORDINARY): New macro VMS definition.
543         Update copyright.
544         * doc/hostconfig.texi (DELETE_IF_ORDINARY): Document new macro.
545
546 2004-04-29  Richard Earnshaw  <rearnsha@arm.com>
547
548         * c-decl.c (get_parm_info): Use the correct tag keywords when
549         warning about type declarations in prototypes.
550
551 2004-04-29  Paul Brook  <paul@codesourcery.com>
552
553         * config.gcc: Pull list of cores from arm-cores.def.
554
555 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
556
557         * combine.c (combine_simplify_rtx): Adjust call to use
558         simplify_relational_operation.  Do not use SELECT_CC_MODE
559         when a comparison already has a MODE_CC mode.
560
561 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
562
563         (simplify_set): simplify_relational_operation may now
564         return another relational expression.
565         * cse.c (fold_rtx): simplify_relational_operation now
566         takes of computing the comparison mode.
567         * dojump.c (compare_from_rtx): Use simplify_relational_operation,
568         remove dead code.
569         (do_compare_rtx_and_jump): Likewise.
570         * integrate.c (subst_constants): simplify_relational_operation
571         may now return another relational expression.
572         * simplify-rtx.c (simplify_gen_relational): Move most code to
573         the new simplify_relational_operation and
574         simplify_relational_operation_1 functions.
575         (simplify_relational_operation): Rewritten.
576         (simplify_relational_operation_1): New function.
577         (simplify_ternary_operation): simplify_relational_operation
578         may now return another relational expression.
579         (simplify_rtx): Remove unnecessary temp variable.
580
581 2004-04-29  Uros Bizjak  <uros@kss-loka.si>
582
583         * reg-stack.c (swap_to_top): New function.
584         (subst_stack_regs_pat): UNSPEC_FPATAN, UNSPEC_FYL2X: Use
585         swap_to_top().
586         (subst_stack_regs_pat): UNSPEC_FSCALE: Remove.
587         (subst_stack_regs_pat): Handle UNSPEC_FSCALE_FRACT and
588         UNSPEC_FSCALE_EXP.
589
590         * config/i386/i386.md (UNSPEC_FSCALE): Remove.
591         (*fscale_sfxf3, *fscale_dfxf3, *fscale_xf3): Remove insn pattern.
592         (UNSPEC_FSCALE_FRACT, UNSPEC_FSCALE_EXP): New unspecs to represent
593         x87's fscale insn.
594         (*fscalexf4: Define new insn pattern to implement x87 fscale insn.
595         (exp?f2, exp10?f2, exp2?f2): Use *fscalexf4 and float_truncate
596         patterns.
597
598 2004-04-28  Serge Belyshev  <1319@bot.ru>
599
600         PR 14944
601         * coverage.c (read_counts_file): Fix usage of warning () call.
602         * pretty-print.c (pp_base_format_text): Fix typo in the comment.
603
604 2004-04-28  Ben Elliston  <bje@au.ibm.com>
605
606         * doc/invoke.texi (Objective-C Dialect Options): Don't prefix
607         options with "-" in the option index.
608         (SPARC Options): Likewise.
609         (M32R/D Options): Likewise.
610
611 2004-04-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
612
613         * convert.c (convert_to_integer): Convert (long)round -> lround,
614         etc.
615
616 2004-04-28  Andrew Pinski  <pinskia@physics.uc.edu>
617
618         * config/rs6000/rs6000.c (registers_ok_for_quad_peep):
619         Return false if we do not have fp register.
620         (addrs_ok_for_quad_peep): Rename to ...
621         (mems_ok_for_quad_peep): this.
622         Add check for volatile memory.
623         * config/rs6000/rs6000-protos.h (addrs_ok_for_quad_peep):
624         Rename to ...
625         (mems_ok_for_quad_peep): this.
626         * config/rs6000/rs6000.md: Change peephole's for lfq/stq
627         to peephole2's.
628         (lfq_power2): New instruction.
629         (stfq_power2): Likewise.
630
631 2004-04-28  Jan Hubicka  <jh@suse.cz>
632
633         PR c/15004
634         * function.c (do_warn_unused_parameter): Break out form ...
635         (expand_function_end): ... here; warn only when not using cgraphunit.
636         * function.h (do_warn_unused_parameter): Declare.
637         * cgraphunit.c: Include function.h.
638         (cgraph_finalize_function): Do unused parameter warning.
639         * Makefile.in (cgraphunit.o): Depend on function.h
640
641 2004-04-28  Joseph S. Myers  <jsm@polyomino.org.uk>
642
643         * Makefile.in ($(DESTDIR)$(infodir)/%.info): Don't condition
644         calling install-info on $(DESTDIR)$(infodir)/dir already being
645         present.
646
647 2004-04-28  Paul Brook  <paul@codesourcery.com>
648
649         * dwarf2out.c (mem_loc_descriptor): Handle shifts.
650
651 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
652
653         * gcse.c (find_moveable_store): Do not accept store insns with
654         REG_EH_REGION note.
655
656 2004-04-28  Paul Brook  <paul@codesourcery.com>
657
658         * calls.c (precompute_arguments): Remove PROMOTE_FOR_CALL_ONLY.
659         * function.c (assign_temp): Ditto.
660         * system.h (PROMOTE_FOR_CALL_ONLY): Poison.
661
662 2004-04-28  Paul Brook  <paul@codesourcery.com>
663
664         * config/arm/lib1funcs.asm: Recognize armv5tej and armv6.
665
666 2004-04-28  Josef Zlomek  <zlomekj@suse.cz>
667
668         * var-tracking.c (variable_different_p): Add a parameter
669         compare_current_location, compare current location of variable parts
670         if it is true.
671         (dataflow_set_different_1): Pass compare_current_location == false.
672         (dataflow_set_different_2): Pass compare_current_location == false.
673         (emit_notes_for_differences_1): Pass compare_current_location == true.
674
675 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
676
677         * config/s390/s390.md ("casesi"): Mark jump table access as
678         non-trapping and unchanging.
679
680 2004-04-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
681
682         PR debug/14829
683         * dwarf2out.c (reg_number): Rename to dbx_reg_number.  Adjust all
684         callers.
685         (multiple_reg_loc_descriptor, reg_loc_descriptor): Use gcc register
686         number for indexing hard_regno_nregs array.
687
688 2004-04-27  Geoffrey Keating  <geoffk@apple.com>
689
690         * config/darwin.h (STARTFILE_SPEC): Use %s to find crt2.o.
691         * config/darwin-crt2.c: Only have contents on __ppc__.
692
693 2004-04-27  Bob Wilson  <bob.wilson@acm.org>
694
695         * config/xtensa/xtensa.c (call_insn_operand): Check
696         SYMBOL_REF_EXTERNAL_P in addition to SYMBOL_REF_LOCAL_P.
697         * config/xtensa/xtensa.h (LEGITIMATE_PIC_OPERAND): Likewise.
698         * config/xtensa/xtensa.md (call, call_value): Likewise.
699
700 2004-04-27  Wu Yongwei  <adah@sh163.net>
701
702         * gthr-win32.h (__gthread_mutex_t): Change typedef to new structure.
703         (__GTHREAD_MUTEX_INIT_DEFAULT): Adjust.
704         (__gthread_mutex_init_function): Replace CreateMutex with
705         initialization of custom mutex using CreateSemaphore.
706         (__gthread_mutex_lock): Use InterlockedIncrement.
707         (__gthread_mutex_trylock): Use InterlockedCompareExchange.
708         (__gthread_mutex_unlock): Use InterlockedDecrement and
709         ReleaseSemaphore to unlock
710         * config/i386/gthr-win32.c (__gthread_mutex_init_function,
711         __gthread_mutex_lock, __gthread_mutex_trylock,
712         __gthread_mutex_unlock): Adjust to match inline versions in
713         gthr-win32.h.
714
715 2004-04-27  Paul Brook  <paul@codesourcery.com>
716
717         * config/arm/arm.c (arm_promote_prototypes): New function.
718         (TARGET_PROMOTE_PROTOTYPES): Use it.
719
720 2004-04-27  Paul Brook  <paul@codesourcery.com>
721
722         * config/arm/arm.c (arm_expand_epilogue): Count blocks of 4 regs.
723
724 2004-04-26  Bernard Giroud  <bgiroud@free.fr>
725
726         * config/alpha.c (alpha_end_function): For OpenVMS gas,
727         correctly output .pdesc directive before .end.
728
729 2004-04-26  James E Wilson  <wilson@specifixinc.com>
730
731         Bug 14927
732         * config/ia64/ia64.md (movxf): New local op0.  Handle case where
733         operands[0] is a SUBREG.  Handle case where operands[1] is a GR reg.
734
735 2004-04-26  Zack Weinberg  <zack@codesourcery.com>
736
737         * config/ia64/hpux.h: Predefine __STDCPP__ when compiling C++.
738         * config/pa/pa-hpux10.h: Likewise.
739         * config/pa/pa-hpux11.h: Likewise.
740
741 2004-04-26  Geoffrey Keating  <geoffk@apple.com>
742
743         * doc/invoke.texi (Overall Options): Document default for -o
744         for PCH files.
745
746 2004-04-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
747
748         * builtins.c (expand_builtin_update_setjmp_buf): New function.
749         (expand_builtin, case BUILT_IN_UPDATE_SETJMP_BUF): New case.
750         * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): New code.
751
752 2004-04-26  Paul Brook  <paul@codesourcery.com>
753
754         * config/arm/arm.c (arm_legitimate_index_p): Correct iwmmxt offsets.
755
756 2004-04-26  Paul Brook  <paul@codesourcery.com>
757
758         * config/arm/arm.c (arm_legitimate_index_p): Correct maverick offsets.
759
760 2004-04-25  Roger Sayle  <roger@eyesopen.com>
761
762         * fold-const.c (fold): Prefer fold_convert (negate_expr (...)) to
763         fold (build1 (NEGATE_EXPR, ...)).  Optimize X / -1 as -X and
764         X % -1 as 0.
765
766 2004-04-26  Hans-Peter Nilsson  <hp@bitrange.com>
767
768         PR bootstrap/15141
769         * except.c (connect_post_landing_pads): Delete insns after the
770         barrier when generating a unwind_resume_libfunc call.
771
772 2004-04-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
773
774         PR/c++ 15119
775         * tree.c (substitute_placeholder_in_expr, case 4): New case,
776         for TARGET_EXPR.
777
778 2004-04-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
779
780         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
781         __gcov_execv, __gcov_execvp, __gcov_execve): Do not declare when
782         inhibit_libc is defined.
783
784 2004-04-25  Richard Sandiford  <rsandifo@redhat.com>
785
786         * config/mips/mips-protos.h (mips_linked_macc_p): Declare.
787         * config/mips/mips.h (TUNE_MACC_CHAINS): New macro.
788         * config/mips/mips.c (TARGET_SCHED_REORDER): Define.
789         (TARGET_SCHED_VARIABLE_ISSUE): Define.
790         (mips_adjust_cost): Move later in file, next to other sched hooks.
791         (mips_macc_chains_last_hilo): New variable.
792         (mips_linked_madd_p, mips_macc_chains_record, mips_macc_chains_reorder)
793         (mips_promote_ready, mips_sched_reorder, mips_variable_issue): New.
794         * config/mips/mips.md (may_clobber_hilo): New attribute.
795
796 2004-04-24  Roger Sayle  <roger@eyesopen.com>
797             Bruce Korb  <bkorb@gnu.org>
798
799         * fixinc/inclhack.def (aix_syswait_2): New fix.
800         * fixinc/fixincl.x: Regenerate.
801         * fixinc/tests/base/sys/wait.h: Update for new test.
802
803 2004-04-24  Alan Modra  <amodra@bigpond.net.au>
804
805         PR target/14960
806         * config/rs6000/rs6000.c (rs6000_stack_info): Rename total_raw_size
807         to non_fixed_size, and leave out fixed_size from the sum.
808         (generate_set_vrsave): Correct clobbers.
809         (rs6000_emit_epilogue): Test TARGET_ALTIVEC with TARGET_ALTIVEC_SAVE.
810         (rs6000_function_value): Test TARGET_ALTIVEC and TARGET_ALTIVEC_ABI.
811         (rs6000_libcall_value): Likewise.
812         * config/rs6000/rs6000.h (FUNCTION_VALUE_REGNO_P): Likewise.
813         (FUNCTION_ARG_REGNO_P): Likewise.
814
815 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
816
817         * expmed.c (expand_mult_highpart_adjust): Do not assume OP1
818         is a CONST_INT.
819         (expand_mult_highpart_optab): Call expand_mult_highpart_adjust
820         with NARROW_OP1 instead of OP1.
821
822 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
823
824         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __s390__
825         and __s390x__ hosts.
826
827 2004-03-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
828
829         * Makefile.in (LIBGCOV): Add _gcov_fork, _gcov_execl, _gcov_execlp,
830         _gcov_execle, _gcov_execv, _gcov_execvp, _gcov_execve.
831         * builtin-types.def (BT_PID, BT_PTR_CONST_STRING, BT_FN_PID,
832         BT_FN_INT_CONST_STRING_PTR_CONST_STRING,
833         BT_FN_INT_CONST_STRING_PTR_CONST_STRING_PTR_CONST_STRING): New.
834         * builtins.c (expand_builtin_fork_or_exec): New.
835         (expand_builtin): Call it.
836         * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP,BUILT_IN_EXECLE,
837         BUILT_IN_EXECV, BUILT_IN_EXECVP, BUILT_IN_EXECVE, BUILT_IN_FORK): New.
838         * c-common.c (PID_TYPE): New macro.
839         (c_common_nodes_and_builtins): Initialize pid_type_node.
840         * calls.c (special_function_p): Do not handle fork and exec.
841         (expand_call): Do not handle ECF_FORK_OR_EXEC.
842         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
843         __gcov_execv, __gcov_execvp, __gcov_execve): Declare.
844         * libgcov.c (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
845         __gcov_execv, __gcov_execvp, __gcov_execve): New.
846         * tree.h (enum tree_index): Add TI_PID_TYPE.
847         (pid_type_node): New macro.
848         (ECF_FORK_OR_EXEC): Removed.
849
850 2004-04-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
851
852         PR optimization/13985
853         * cfgloopmanip.c (fix_loop_placements): New prototype.
854         Call fix_bb_placements on the preheader of loops that have
855         been reparented.
856         (remove_path): Adjust call to fix_loop_placements.
857
858 2004-04-23  Andrew Pinski  <pinskia@physics.uc.edu>
859
860         * config/darwin7.h: New file.
861         * config.gcc (*-*-darwin*): Add darwin7.h if the
862         version is greater than 6.
863         * config/darwin.h (TARGET_C99_FUNCTIONS): Define.
864         (MATH_LIBRARY): Wrap in ifdefs.
865
866 2004-04-23  Daniel Jacobowitz  <drow@mvista.com>
867
868         * config/arm/arm.c (arm_output_epilogue): Reverse the order of
869         loading iWMMXt registers with a frame pointer.  Use post-increment
870         without a frame pointer.
871         (arm_expand_prologue): Reverse the order of saving iWMMXt registers.
872
873 2004-04-23  Paolo Bonzini  <bonzini@gnu.org>
874
875         * doc/invoke.texi (Optimize Options): Refer to "unit-at-a-time
876         mode" rather than "-funit-at-a-time" since -O2 enables it
877         without requiring -f* options.  Refer to -fprofile-generate and
878         -fprofile-use correctly.  Move -funit-at-a-time among options
879         enabled by -O.  Add information about unit-at-a-time caveats.
880
881 2004-04-22  Per Bothner  <per@bothner.com>
882
883         * line-map.h (struct line_maps):  New field highest_line.
884         (linemap_position_for_column):  Make non-inline function.
885         (LINEMAP_POSITION_FOR_COLUMN):  New macro.
886         * line-map.c (linemap_init):  Clear highest_line field.
887         (linemap_add):  Set highest_line field.
888         (linemap_line_start):  Minor optimization - use highest_line field.
889         Reduce maximum column hint to 10000.  Update highest_line field.
890         (linemap_position_for_column):  Moved from line-map.h.  Optimize a bit.
891         * cpphash.h (struct cpp_reader):  Remove line field - instead use
892         line_table->highest_line.
893         (saved_line):  Remove unused field.
894         (CPP_INCREMENT_FILE):  Don't do linemap_lookup - just use newest map.
895         Use  line_table's highest_line field instead of cpp_reader's line.
896         * cpplib.c (start_directive):  Likewise use highest_line field.
897         (do_line, do_linemarker):  Likewise just use newest map.
898         (_cpp_do_file_change):  Don't need to set cpp_reader's line field.
899         * cpperror.c (cpp_error):  Likewise use highest_line field.
900         * cppfiles.c (open_file_failed:  Likewise.
901         (cpp_make_system_header):  Likewise use newest map and highest_line.
902         * cppinit.c (cpp_create_reader):  Don't initialize removed field.
903         * cpplex.c (_cpp_process_line_notes, _cpp_skip_block_comment,
904         skip_line_comment, skip_whitespace, _cpp_get_fresh_line,
905         _cpp_lex_direct):  Likewise use highest_line.
906         (_cpp_lex_direct):  Use new LINEMAP_POSITION_FOR_COLUMN macro.
907         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use highest_line,
908         and use newest map.
909         * cpppch.c (cpp_read_state):  Don't save+restore cpp_reader's line.
910         * cpptrad.c (_cpp_overlay_buffer):  Don't save cpp_reader's line.
911         (copy_comment, _cpp_scan_out_logical_line):  Likewise use highest_line.
912
913 2004-04-23  Alan Modra  <amodra@bigpond.net.au>
914
915         PR bootstrap/14992
916         * gcc.c (init_gcc_specs): Test USE_LD_AS_NEEDED, not HAVE_LD_AS_NEEDED.
917         * config/linux.h (USE_LD_AS_NEEDED): Define.
918         * gcc/config/alpha/linux.h (USE_LD_AS_NEEDED): Define.
919         * gcc/config/arm/linux-elf.h (USE_LD_AS_NEEDED): Define.
920         * gcc/config/rs6000/linux.h (USE_LD_AS_NEEDED): Define.
921         * gcc/config/rs6000/linux64.h (USE_LD_AS_NEEDED): Define.
922         * gcc/config/sh/linux.h (USE_LD_AS_NEEDED): Define.
923         * gcc/config/sparc/linux.h (USE_LD_AS_NEEDED): Define.
924         * gcc/config/sparc/linux64.h (USE_LD_AS_NEEDED): Define.
925
926 2004-04-22  Per Bothner  <per@bothner.com>
927
928         * cppinit.c (cpp_read_main_file):  Return NULL rather than false.
929         Fixes PR preprocessor/15067.
930
931 2004-04-23  Andreas Schwab  <schwab@suse.de>
932
933         * config/ia64/ia64intrin.h: Add intermediate cast to void * to
934         avoid aliasing warning.
935
936 2004-04-22  Jan Hubicka  <jh@suse.cz>
937             Mostafa Hagog <mustafa@il.ibm.com>
938
939       * cfgloopmanip.c (scale_bbs_frequencies): Use RDIV macro
940       * cfgloopanal.c (expected_loop_iterations): Change the return value
941
942 2004-04-22  Jakub Jelinek  <jakub@redhat.com>
943
944         * cselib.h (struct elt_loc_list): Remove canon_loc field.
945         * cselib.c (new_elt_loc_list): Remove canon_loc initialization.
946         (cselib_invalidate_mem): Remove all canon_loc and canon_x
947         traces.
948
949 2004-04-22  Josef Zlomek  <zlomekj@suse.cz>
950
951         Revert
952         2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
953
954                 * var-tracking.c (variable_part_different_p): Variable parts
955                 differ when the most recent locations differ.
956
957 2004-04-22  Richard Sandiford  <rsandifo@redhat.com>
958
959         * doc/invoke.texi: Remove the MIPS -membedded-pic option.
960         * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): Delete.
961         (embedded_pic_offset): Delete.
962         * config/mips/mips.h (MASK_EMBEDDED_PIC): Delete.  Shuffle other
963         MASK_* constants.
964         (TARGET_EMBEDDED_PIC): Delete.
965         (TARGET_SWITCHES): Remove -m{no-,}embedded-pic.
966         (ASM_SPEC): Remove -membedded-pic.
967         (ASM_OUTPUT_ADDR_DIFF_ELT): Remove embedded-pic handling.
968         (ASM_OUTPUT_CASE_LABEL): Likewise.
969         * config/mips/vxworks.h (ASM_SPEC): Remove -membedded-pic.
970         * config/mips/windiss.h (ASM_SPEC): Likewise.
971         * config/mips/mips.c (struct machine_function): Remove
972         embedded_pic_fnaddr_rtx.
973         (TARGET_ENCODE_SECTION_INFO): Remove override.
974         (embedded_pic_fnaddr_reg, embedded_pic_offset): Delete.
975         (override_options): Remove -membedded-pic handling.
976         (print_operand): Remove handling of '%S'.
977         (mips_select_section: Remove -membedded-pic handling.
978         (mips_encode_section_info): Delete.
979         (mips_output_conditional_branch): Remove mention of -membedded-pic.
980         * config/mips/mips.md (define_attr length, movsi, movdi, jump): Remove
981         -membedded-pic handling.
982         (casesi, casesi_internal, casesi_internal_di, get_fnaddr): Delete.
983
984 2004-04-22  Alan Modra  <amodra@bigpond.net.au>
985
986         * var-tracking.c (frame_base_decl): Remove useless GTY.
987
988 2004-04-21  Aldy Hernandez  <aldyh@redhat.com>
989
990         * config/rs6000/rs6000.c (rs6000_override_options): Error when
991         user wants altivec and e500 instructions.
992
993 2004-04-21  H.J. Lu  <hongjiu.lu@intel.com>
994
995         PR target/14813
996         * config/ia64/crtend.asm: Move pointer to __do_global_ctors_aux
997         in .init_array section to ...
998         * config/ia64/crtbegin.asm: Here.
999
1000         * config/ia64/crtend.asm: Mark __do_global_ctors_aux global
1001         and hidden if HAVE_INITFINI_ARRAY is defined.
1002
1003 2004-04-21  James E Wilson  <wilson@specifixinc.com>
1004
1005         * config/mips/mips-protos.h (fp_register_operand, lo_operand): Declare.
1006         * config/mips/mips.c (mips_multipass_dfa_lookahead): Declare.
1007         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): New.
1008         (fp_register_operand, lo_operand): New.
1009         (mips_rtx_costs): Add TUNE_SB1 support.
1010         (mips_issue_rate): Add comment.  Add PROCESSOR_SB1 support.
1011         (mips_use_dfa_pipeline_interface): Add PROCESSOR_SB1 support.
1012         (mips_multipass_dfa_lookahead): New.
1013         * config/mips/mips.h (MASK_FP_EXCEPTIONS, TARGET_FP_EXCEPTIONS,
1014         TUNE_SB1): New.
1015         (TARGET_SWITCHES): Add -mfp-exceptions support.
1016         (TARGET_FP_EXCEPTIONS_DEFAULT): New.
1017         (BRANCH_COST): Fix whitespace.
1018         * config/mips/mips.md: Include sb1.md.
1019         * config/mips/sb1.md: New file.
1020         * doc/invoke.texi: Document -mfp-exceptions.
1021
1022         * Makefile.in (fixinc.sh): Don't set or export WARN_CFLAGS.  Fix
1023         comment.
1024         * fixinc/Makefile.in (FL_LIST): Don't mention WARN_CFLAGS.
1025         (fixincl.o-warn): Delete.
1026
1027 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
1028
1029         * config/rs6000/rs6000 (print_operand) ['z']:
1030         Change ifdef of TARGET_MACHO to if TARGET_MACHO.
1031
1032 2004-04-21 Daniel Jacobowitz  <drow@mvista.com>
1033
1034         * config.gcc: Support --with-arch=iwmmxt for ARM.
1035
1036 2004-04-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1037
1038         * expmed.c (expand_mult_highpart_optab): Use narrower version of OP1
1039         in two more places; remove unneeded force_reg
1040
1041 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
1042
1043         * config/rs6000/rs6000.c (symbol_ref_operand): Remove hack
1044         for TARGET_MACHO.
1045         (print_operand): For TARGET_MACHO check to see if we need a stub
1046         and output one if we need it.
1047
1048         PR debug/15033
1049         * dwarf2out.c (rtl_for_decl_location): Check for NULL
1050         rtl.
1051
1052 2004-04-20  James E Wilson  <wilson@specifixinc.com>
1053
1054         * config/ia64/ia64.md (call_value_nogp): Add constraints for op0.
1055         (vall_value_gp): Likewise.
1056
1057 2004-04-20  DJ Delorie  <dj@redhat.com>
1058
1059         * dwarf2out.c (rtl_for_decl_location): Adjust rtl for byte
1060         variables stored in word registers, then in memory.
1061
1062 2004-04-20  Eric Christopher  <echristo@redhat.com>
1063
1064         * cp/parser.c (cp_parser_declaration): Move translate
1065         up before tokens are lexed.
1066
1067 2004-04-20  Uros Bizjak  <uros@kss-loka.si>
1068
1069         * optabs.h (enum optab_index): Add new OTI_asin and OTI_acos.
1070         (asin_optab, acos_optab): Define corresponding macros.
1071         * optabs.c (init_optabs): Initialize asin_optab and acos_optab.
1072         * genopinit.c (optabs): Implement asin_optab and acos_optab
1073         using asin?f2 and acos?f2 patterns.
1074         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_ASIN{,F,L}
1075         using asin_optab, and BUILT_IN_ACOS{,F,L} using acos_optab.
1076         (expand_builtin): Expand BUILT_IN_ASIN{,F,L} and BUILT_IN_ACOS{,F,L}
1077         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
1078
1079         * config/i386/i386.md (asindf2, asinsf2, asinxf2, acosdf2,
1080         acossf2, acosxf2): New expanders to implement asin, asinf, asinl,
1081         acos, acosf and acosl built-ins as inline x87 intrinsics.
1082
1083 2004-04-20  Paul Brook  <paul@codesourcery.com>
1084
1085         * config/arm/arm.c (arm_legitimate_address_p): Use rtx_equal_p.
1086
1087 2004-04-20  Paul Brook  <paul@codesourcery.com>
1088
1089         * config/arm/arm.c (arm_expand_prologue): Fix size calculation.
1090
1091 2004-04-20  Paolo Bonzini  <bonzini@gnu.org>
1092
1093         Revert part of 2004-04-17 change that moved -frename-registers
1094         to -O1.  -frename-registers is buggy.
1095
1096         * toplev.c (flag_rename_registers): Initialize to 0.
1097         * doc/invoke.texi (Optimize options): Move -frename-registers
1098         to "Not triggered by any -O level" section.  Adjust commentary
1099         accordingly.
1100
1101 2004-04-20  Anil Paranjpe <anilp1@kpitcummins.com>
1102
1103         * toplev.c (compile_file): Move targetm.asm_out.file_end call to end.
1104
1105 2004-04-20  Richard Sandiford  <rsandifo@redhat.com>
1106
1107         * config/mips/mips.c (mips_legitimize_move): Generate special patterns
1108         for mflo and mfhi instructions.
1109         (mips_output_move): Remove mflo and mfhi handling.
1110         * config/mips/mips.md (UNSPEC_MFHILO): New unspec.
1111         (*mulsidi3_64bit): Update for new mfhi/mflo representation.
1112         Likewise various define_peephole2s.
1113         (*movdi_32bit, *movdi_64bit, *movsi_internal): Merge x<-J and x<-d
1114         alternatives.
1115         (*movdi_64bit, *movdi_64bit_mips16, *mov[shq]i_internal)
1116         (*mov[shq]i_mips16): Remove mflo and mfhi alternatives.
1117         (mfhilo_di, mfhilo_si): New patterns.
1118
1119 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
1120
1121         * function.c (assign_parms): Force
1122         MEM_EXPR (DECL_INCOMING_RTL (parm)) == parm.
1123
1124 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
1125
1126         * var-tracking.c (variable_part_different_p): Variable parts differ
1127         when the most recent locations differ.
1128
1129 2004-04-19  James E Wilson  <wilson@specifixinc.com>
1130
1131         * rtl.h (reg_set_last): Delete declaration.
1132         * rtlanal.c (reg_set_last): Delete.
1133
1134 2004-04-19  Roger Sayle  <roger@eyesopen.com>
1135
1136         * fold-const.c (fold_convert): Make function extern/public.
1137         * tree.h (fold_convert): Prototype here.
1138         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
1139         expand_builtin_strrchr, expand_builtin_strpbrk,
1140         expand_builtin_mempcpy, expand_builtin_bcopy,
1141         expand_builtin_bzero, expand_builtin_memcmp,
1142         expand_builtin_strcmp, expand_builtin_strncmp,
1143         stabilize_va_list, expand_builtin_sprintf,
1144         fold_trunc_transparent_mathfn, fold_builtin_logarithm,
1145         fold_builtin_exponent, fold_builtin_mempcpy,
1146         fold_builtin_strcpy, fold_builtin_strcmp, fold_builtin_strncmp,
1147         fold_builtin_signbit, fold_builtin_isdigit, fold_builtin): Prefer
1148         fold_convert to "convert" or "fold (build1 (NOP_EXPR, ...))".
1149
1150 2004-04-19  Aldy Hernandez  <aldyh@redhat.com>
1151
1152         * config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): New constant.
1153         (move_from_CR_gt_bit): New.
1154         (cceq_ior_compare): Name previously unnamed pattern.  Disable for
1155         E500.
1156         (cceq_rev_compare): Name previously unnamed pattern.  Allow for
1157         E500.
1158
1159         * config/rs6000/spe.md (cmpsfeq_gpr): Rewrite as unspec.
1160         (tstsfeq_gpr): Same.
1161         (cmpsfgt_gpr): Same.
1162         (tstsfgt_gpr): Same.
1163         (cmpsflt_gpr): Same.
1164         (tstsflt_gpr): Same.
1165         (e500_cceq_ior_compare): New.
1166         (e500_flip_gt_bit): New.
1167
1168         * config/rs6000/rs6000.c (ccr_bit): Remove E500 specific code.
1169         (print_operand): Add 'c' and 'D'.
1170         (rs6000_generate_compare): Rewrite to generate correct rtl.
1171         (rs6000_emit_sCOND): Handle E500.
1172         (output_cbranch): Adjust for changes in rs6000_generate_compare.
1173         (output_e500_flip_gt_bit): New.
1174
1175         * config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit):
1176         Protoize.
1177
1178 2004-04-19  Eric Christopher  <echristo@redhat.com>
1179
1180         * config/mips/mips.h (DWARF2_ADDR_SIZE): New.
1181
1182 2004-04-19  David Edelsohn  <edelsohn@gnu.org>
1183
1184         * doc/install.texi (*-ibm-aix*): Add AIX 5.1 assembler and archiver
1185         fix information.
1186
1187 2004-04-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1188
1189         * doc/install.texi (Specific, mips-sgi-irix5): Fix IRIX 5.3 IDO
1190         download URL.
1191
1192 2004-04-19  Daniel Jacobowitz  <drow@mvista.com>
1193
1194         * stor-layout.c (layout_decl): Check DECL_PACKED before calling
1195         ADJUST_FIELD_ALIGN.  Check maximum_field_alignment after.
1196
1197 2004-04-19  Andrew PInski  <pinskia@physics.uc.edu>
1198
1199         * builtins.c (fold_builtin_cabs): Remove fndecl parameter.
1200         (fold_builtin): Update caller to match.
1201
1202         PR bootstrap/15009
1203         * bb-reorder.c (fix_up_fall_thru_edges): Init cond_jump.
1204
1205         PR bootstrap/14999
1206         * builtins.c (fold_builtin_cabs): Mark fndecl as unused.
1207
1208 2004-04-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1209
1210         * varasm.c (compare_constant, case VIEW_CONVERT_EXPR): Add case.
1211
1212         * expmed.c (expand_mult_highpart_adjust): Make OP1 valid for MODE.
1213         (expand_mult_highpart_optab): Likewise.
1214         (expand_mult_highpart): Make OP1 valid for WIDER_MODE, not MODE.
1215
1216 2004-04-19  Paul Brook  <paul@codesourcery.com>
1217
1218         * config/arm/arm.md (fixuns_truncsfsi2, fixuns_truncdfsi2,
1219         floatunssisf2, floatunssidf2): New patterns.
1220
1221 2004-04-18  Mark Mitchell  <mark@codesourcery.com>
1222
1223         PR other/14918
1224         * doc/invoke.texi (-fprofile-generate): Document requirement to
1225         use -fprofile-generate when linking.
1226
1227         * doc/extend.texi (Strong Using): Warn users against using this
1228         feature.
1229
1230 2004-04-18  Richard Sandiford  <rsandifo@redhat.com>
1231
1232         * config/mips/mips-protos.h (m16_usym8_4, m16_usym5_4): Delete.
1233         * config/mips/mips.h (mips_entry, mips_string_length): Delete.
1234         (CONSTANT_POOL_BEFORE_FUNCTION, ASM_OUTPUT_POOL_EPILOGUE): Undefine.
1235         * config/mips/mips.c (struct mips16_constant): Renamed from struct
1236         constant.  Propogate change throughout file.
1237         (struct machine_function): Remove insns_len.
1238         (mips_string_length, mips16_strings, string_constants): Delete.
1239         (mips_classify_symbol): Return SYMBOL_CONSTANT_POOL for LABEL_REFs
1240         when generating mips16 code.  Remove special mips16 treatment of
1241         string constants.
1242         (mips_symbolic_constant_p): Allow mips16 constant pool accesses
1243         to have the form LABEL+CONSTANT.
1244         (mips_symbolic_address_p): Fix comment.
1245         (m16_usym8_4, m16_usym5_4): Delete.
1246         (mips_output_function_epilogue): Remove mips16 string handling.
1247         (mips_output_mi_thunk): Call mips16_lay_out_constants.
1248         (mips_select_section, mips_encode_section_info): Remove mips16
1249         string handling.
1250         (struct mips16_constant_pool): New.
1251         (add_constant): Take a mips16_constant_pool structure.  Keep pool
1252         sorted into order of ascending mode size.  Keep track of the highest
1253         possible start address, taking padding and the masking of the base PC
1254         value into account.
1255         (dump_constants_1): New function, split out from dump_constants.
1256         Handle vector constants.  Use gen_consttable_{int,float} rather than
1257         separate functions for each mode.
1258         (dump_constants): Simplify.  Use GET_MODE_ALIGNMENT.  Use gen_align
1259         rather than separate functions for each alignment.
1260         (mips_find_symbol): Delete.
1261         (mips16_insn_length): New function, split out from
1262         mips16_lay_out_constants.
1263         (mips16_rewrite_pool_refs): New function.
1264         (mips16_lay_out_constants): Rework. Remove string handling.
1265         Always create an inline constant pool.
1266         * config/mips/mips.md (UNSPEC_CONSTTABLE_INT, UNSPEC_CONSTTABLE_FLOAT)
1267         (UNSPEC_ALIGN): New constants.
1268         (UNSPEC_CONSTTABLE_[QHSD]I, UNSPEC_CONSTTABLE_[SD]F): Delete.
1269         (UNSPEC_ALIGN_[248]): Delete.
1270         (consttable_int, consttable_float, align): New patterns.
1271         (consttable_[qhsd]i, consttable_[sd]f, align_[248]): Delete.
1272
1273 2004-04-17  Aldy Hernandez  <aldyh@redhat.com>
1274
1275         * config/rs6000/altivec.h (vec_any_numeric): Correct typo in
1276         __unn_args_eq.
1277
1278 2004-04-17  Alan Modra  <amodra@bigpond.net.au>
1279
1280         PR target/14715
1281         * config/rs6000/rs6000.c (rs6000_stack_info): Make parm_size agree
1282         with STARTING_FRAME_OFFSET.
1283
1284 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
1285
1286         * config/mips/mips.h (PREDICATE_CODES): Add macc_msac_operand.
1287         * config/mips/mips.c (macc_msac_operand): New function.
1288         * config/mips/mips.md (*msac): Move after *macc.
1289         (*msac2): New.  Generalize macc-related peepholes so that they apply
1290         to msac too.
1291
1292 2004-04-17  Paolo Bonzini  <bonzini@gnu.org>
1293
1294         * opts.c (decode_options): Do not enable flag_rename_registers
1295         and flag_web at -O3.
1296         * toplev.c (flag_rename_registers): Initialize
1297         flag_rename_registers and flag_web to
1298         AUTODETECT_FLAG_VAR_TRACKING.
1299         (default_debug_hooks): New global.
1300         (process_options): Initialize default_debug_hooks.  Warn if
1301         -fvar-tracking specified but not supported by the current
1302         debug format.  Do not run var tracking at -O0 or if not
1303         supported by the current debug format, even if
1304         -fvar-tracking was given.  If -fno-rename-registers
1305         is not specified, always run register renaming if var
1306         tracking is supported by the default debugging information
1307         format for the target, and we are at -O1 or higher; similarly
1308         for -fweb, but only at -O2 or higher.
1309         * doc/invoke.texi (Optimize Options): Document this.
1310
1311 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
1312
1313         * configure.ac (gcc_cv_ld_as_needed): Use AC_CACHE_CHECK.
1314         * configure: Regenerate.
1315
1316 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
1317
1318         * gcc.c (used_arg): Check whether an option has been removed.
1319
1320 2004-04-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1321
1322         * config.gcc (i[34567]86-*-solaris2*): Default to DWARF-2
1323         debugging on Solaris 7 and up.
1324
1325 2004-04-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1326
1327         * doc/install.texi (Specific, mips-sgi-irix5): Reflect working
1328         IRIX 5 port.
1329         Remove -save-temps workaround, handled automatically.
1330         Require GNU binutils 2.15 for debugging.
1331         Remove SGI make warnings since GNU make is now required.
1332         (Specific, mips-sgi-irix6): Some markup fixes.
1333         Describe MIPSpro C problems and workarounds.
1334         Mention working O32 ABI support.
1335         Recommend GNU as 2.15 for O32 with debugging.
1336         Remove description of fixed structure pass/return bug.
1337
1338 2004-04-16  DJ Delorie  <dj@redhat.com>
1339
1340         * sdbout.c (sdbout_one_type): Use TYPE_VALUES for enums, not
1341         TYPE_FIELDS.
1342         (sdbout_finish): Don't free deferred_global_decls; it's GC'd.
1343
1344 2004-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1345
1346         * pa.md: Remove unnecessary declarations for asm_out_file.
1347
1348         * pa64-regs.h (DBX_REGISTER_NUMBER): Simplify and correct mapping of
1349         SAR register.  Fix comment.
1350         (ADDITIONAL_REGISTER_NAMES): Correct register number of SAR register
1351         (%cr11).
1352
1353         * pa64-hpux.h (LIB_SPEC): Fix library specification used with GNU ld.
1354
1355 2004-04-16  Nick Clifton  <nickc@redhat.com>
1356
1357         * config/arm/arm.c (arm_override_options): Revert previous patch.
1358         * config/arm/t-xscale-elf: Disable iwmmxt multilibs until they can
1359         be safely built.
1360
1361 2004-04-16  Kazuhiro Inaoka <inaoka dot kazuhiro at renesas dot com>
1362
1363         * config/m32r/m32r.h (BIG_ENDIAN_BIT): Deleted to fix endian
1364         bug.
1365         (TARGET_LITTLE_ENDIAN, TARGET_BIG_ENDIAN,
1366         TARGET_DEFAULT): Changed. Ditto.
1367         (LITTLE_ENDIAN_BIT, TARGET_CPU_DEFAULT,
1368         TARGET_ENDIAN_DEFAULT): Added. Ditto.
1369         * config/m32r/little.h (TARGET_LITTLE_ENDIAN): Deleted.
1370         (TARGET_ENDIAN_DEFAULT): Added.
1371
1372 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1373
1374         * builtins.def (BUILT_IN_ISDIGIT, BUILT_IN_ISXDIGIT): Mark with
1375         ATTR_CONST_NOTHROW_LIST.
1376
1377 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1378
1379         PR/middle-end 14915
1380         * builtins.c (expand_builtin_signbit): Test BYTES_BIG_ENDIAN, not
1381         BITS_BIG_ENDIAN.
1382
1383 2004-04-15  Pat Haugen  <pthaugen@us.ibm.com>
1384
1385         * ra-debug.c (ra_print_rtx): Add break's to case legs.
1386
1387 2004-04-14  James E Wilson  <wilson@specifixinc.com>
1388
1389         * Makefile.in (fixinc.sh): Set WARN_CFLAGS to empty string.
1390
1391 2004-04-14  Nathanael Nerode  <neroden@gcc.gnu.org>
1392
1393         * libada-mk.in: New file.
1394         * configure.ac: Create libada-mk from libada-mk.in.
1395         * configure: Regenerate.
1396
1397 2004-04-14  Uros Bizjak  <uros@kss-loka.si>
1398
1399         * optabs.h (enum optab_index): Add new OTI_logb and OTI_ilogb.
1400         (logb_optab, ilogb_optab): Define corresponding macros.
1401         * optabs.c (init_optabs): Initialize logb_optab and ilogb_optab.
1402         * genopinit.c (optabs): Implement logb_optab and ilogb_optab
1403         using logb?f2 and ilogb?i2 patterns.
1404         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOGB{,F,L}
1405         using logb_optab, and BUILT_IN_ILOGB{,F,L} using ilogb_optab.
1406         (expand_builtin): Expand BUILT_IN_LOGB{,F,L} and BUILT_IN_ILOGB{,F,L}
1407         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
1408
1409         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_XTRACT_FRACT
1410         and UNSPEC_XTRACT_EXP.
1411
1412         * config/i386/i386.md (*fxtractdf3, *fxtractsf3, *fxtractxf3): New
1413         patterns to implement fxtract x87 instruction.
1414         (logbdf2, logbsf2, logbxf2, ilogbsi2): New expanders to implement
1415         logb, logbf, logbl, ilogb, ilogbf and ilogbl built-ins as inline x87
1416         intrinsics.
1417         (UNSPEC_XTRACT_FRACT, UNSPEC_XTRACT_EXP): New unspecs to represent
1418         x87's fxtract insn.
1419
1420 2004-04-14  Eric Christopher  <echristo@redhat.com>
1421
1422         * config/mips/t-elf: Enable multilibs by default.
1423
1424 2004-04-14  Andreas Tobler  <a.tobler@schweiz.ch>
1425
1426         * bb-reorder.c (fix_crossing_conditional_branches): Adjust the
1427         previous fix to check HAVE_return at runtime too.
1428
1429 2004-04-14  Nick Clifton  <nickc@redhat.com>
1430
1431         * config/arm/arm.c (arm_override_options): If the user has not
1432         specified an ABI, then default to AAPCS for the iWMMXt processor.
1433         * config/arm/t-xscale-elf: Remove redundant multilib specifications.
1434         * config/arm/t-xscale-coff: Likewise.
1435
1436 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1437
1438         * builtins.c (fold_builtin_isdigit): New.
1439         (fold_builtin): Handle BUILT_IN_ISDIGIT.
1440         * defaults.h: Add TARGET_DIGIT0 and sort.
1441         * doc/tm.texi: Add TARGET_BS and TARGET_DIGIT0.
1442
1443 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1444
1445         * builtins.c (fold_builtin_cabs, fold_builtin): Use
1446         `mathfn_built_in' to determine the new builtin.
1447         * fold-const.c (fold): Likewise.
1448
1449 2004-04-14  Richard Sandiford  <rsandifo@redhat.com>
1450
1451         * doc/invoke.texi: Rename MIPS's -mfix-vr4122-bugs to -mfix-vr4120.
1452         * config/mips/mips.h (MASK_FIX_VR4120): Renamed from MASK_FIX_VR4122.
1453         (TARGET_FIX_VR4120): Likewise TARGET_FIX_VR4122.
1454         (TARGET_SWITCHES): Replace -mfix-vr4122-bugs with -mfix-vr4120.
1455         (ASM_SPEC): Update accordingly.
1456         * config/mips/mips.c: Update after above renaming.
1457         * config/mips/mips.md, config/mips/t-vr, config/mips/vr.h: Likewise.
1458         * config/mips/vr4120-div.S: Renamed from vr4122-div.S.
1459
1460 2004-04-13  James E Wilson  <wilson@specifixinc.com>
1461
1462         * c-opt.c (c_common_post_options): If this_input_filename is NULL,
1463         increment errorcount and return false instead of true.
1464
1465 2004-04-13  Uros Bizjak  <uros@kss-loka.si>:
1466
1467         * optabs.c (expand_twoval_unop): Reorder function arguments.
1468         * builtins.c (expand_builtin_mathfn_3): Update calls to
1469         expand_twoval_unop.
1470
1471         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_TAN_ONE
1472         and UNSPEC_TAN_TAN. Add missing comment.
1473
1474         * config/i386/i386.md (*tandf3_1, *tansf3_1, *tanxf3_1): New
1475         patterns to implement fptan x87 instruction.
1476         (tandf2, tansf2, tanxf2): New expanders to implement tan, tanf
1477         and tanl built-ins as inline x87 intrinsics. Define corresponding
1478         peephole2 optimizers for 'fptan; fstp %st(0); fld1' sequence.
1479         (UNSPEC_TAN_ONE, UNSPEC_TAN_TAN): New unspecs to represent
1480         x87's fptan insn.
1481
1482 2004-03-13  Richard Henderson  <rth@redhat.com>
1483
1484         * bb-reorder.c (fix_crossing_unconditional_branches): Use Pmode
1485         for LABEL_REFs.
1486
1487         * defaults.h (HOT_TEXT_SECTION_NAME): Add leading dot.
1488         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Likewise.
1489         * doc/invoke.texi: Update to match.
1490
1491         * varasm.c (unlikely_text_section): Use assemble_align instead of
1492         ASM_OUTPUT_ALIGN.  Use it in the correct place with an approximately
1493         correct alignment argument.
1494
1495 2004-04-13  Ulrich Weigand  <uweigand@de.ibm.com>
1496
1497         * reload1.c (emit_reload_insns): Set reg_has_output_reload to one
1498         after setting reg_last_reload_reg for optional output reloads.
1499
1500 2004-04-12  Fariborz Jahanian <fjahanian@apple.com>
1501
1502         * config/rs6000/altivec.h (vec_mergeh, vec_mergel):
1503         Definition of these two macros are corrected by adding
1504         matchine right paren.
1505
1506 2004-04-12  Jonathan Larmour  <jifl@eCosCentric.com>
1507
1508         * fix-header.c: kill(), putenv() and tzset() are POSIX not ANSI.
1509
1510 2004-04-12  Roger Sayle  <roger@eyesopen.com>
1511
1512         * config/i386/i386.c (output_387_reg_move): New function.
1513         * config/i386/i386-protos.h (output_387_reg_move): Prototype here.
1514         * config/i386/i386.md (*movsf_1, *movsf1_nointerunit,
1515         *movdf_nointeger, *movdf_integer, *movxf_nointeger, *movxf_integer,
1516         *extendsfdf2_1,  *extendsfxf2_1, *extenddfxf2_1, truncdfsf2_noop,
1517         truncxfsf2_noop, truncxfdf2_noop): Call output_387_reg_move.
1518
1519 2004-04-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1520
1521         * c-decl.c (finish_decl): Make a decl_stmt for a variable-sized
1522         TYPE_DECL.
1523         * c-semantics.c (genrtl_decl_stmt): Handle TYPE_DECL.
1524         * stmt.c (expand_decl): Remove redundant expansion of TYPE_DOMAIN.
1525         * stor-layout.c (variable_size): Don't check for MINUS_EXPR.
1526         Use skip_simple_arithmetic to find SAVE_EXPR.
1527         (force_type_save_exprs, force_type_save_exprs_1): New functions.
1528         * tree-inline.c (remap_type, case POINTER_TYPE, case REFERENCE_TYPE):
1529         Properly chain multiple pointers.
1530         (copy_tree_r): Copy a TYPE_DECL.
1531         * tree.c (variably_modified_type_p): Add some missing tests and
1532         make some other minor changes.
1533         * tree.h (force_type_save_exprs): New declaration.
1534
1535 2004-04-12  Roger Sayle  <roger@eyesopen.com>
1536
1537         * simplify-rtx.c (simplify_binary_operation) <UDIV, DIV, UMOD, MOD>:
1538         Remove fall throughs.  Convert 0/x and 0%x into x&0 when x has
1539         side-effects.  Don't convert x/1.0 into x if we honor signaling NaNs.
1540         Convert x/-1.0 into -x if we don't honor signaling NaNs.  Convert
1541         x/-1 into -x.  Optimize x%1 into x&0 if x has side-effects.  Optimize
1542         x%-1 into 0 (or x&0 if x has side-effects).
1543
1544 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
1545
1546         * config/rs6000/rs6000.md: Document why a pattern is not
1547         available.
1548
1549         * config/rs6000/rs6000.c (rs6000_emit_cmove): Disable comparisons
1550         of floats on the E500.
1551         (branch_positive_comparison_operator): Do not allow NE even on the
1552         E500.
1553
1554 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
1555
1556         * config/rs6000/rs6000.c (rs6000_assemble_integer): Change
1557         in_text_unlikely_section to in_unlikely_text_section.
1558
1559 2004-04-11  Roger Sayle  <roger@eyesopen.com>
1560
1561         * fold-const.c (fold_binary_op_with_conditional_arg):  Tweak
1562         calling convention to allow a NULL_TREE to be returned.  Factor
1563         sanity checks from callers, return NULL_TREE when appropriate.
1564         (fold): Handle COMPOUND_EXPR operands of binary expressions
1565         before COND_EXPR operands.  Use reorder_operands_p(a,b) to check
1566         whether a op (b,c) can be rewritten as (b, a op c).  Simplify
1567         calls to fold_binary_op_with_conditional_arg.
1568
1569 2004-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1570
1571         * config/mips/iris5.h (current_section_flags):  Add
1572         in_unlikely_executed_text and default case.
1573
1574 2004-04-11  Andreas Tobler  <a.tobler@schweiz.ch>
1575
1576         * bb-reorder.c (fix_crossing_conditional_branches): Fix bootstrap
1577         failure on solaris. Place ifdef HAVE_return around gen_ret call.
1578         * cfgrtl.c (force_nonfallthru_and_redirect): Remove ifdef
1579         HAVE_return and place it around the place where it is needed.
1580
1581 2004-04-11  Andrew Pinski  <pinskia@physics.uc.edu>
1582
1583         * varasm.c (text_section): Use TEXT_SECTION_ASM_OP and
1584         ASM_OUTPUT_ALIGN instead of SECTION_FORMAT_STRING
1585         and NORMAL_TEXT_SECTION_NAME.
1586         (unlikely_text_section): Check targetm.have_named_sections
1587         instead of TARGET_ASM_NAMED_SECTION and use TEXT_SECTION_ASM_OP
1588         instead of SECTION_FORMAT_STRING.
1589         * config/mips/iris5.h (current_section_name): Add
1590         in_unlikely_executed_text case and move the abort into the switch.
1591         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME): Remove.
1592         (NORMAL_TEXT_SECTION_NAME): Remove.
1593         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
1594         (SECTION_FORMAT_STRING): Remove.
1595         * defaults.h (SECTION_FORMAT_STRING): Remove.
1596         * tm.texi (NORMAL_TEXT_SECTION_NAME): Remove.
1597         (SECTION_FORMAT_STRING): Remove.
1598
1599 2004-04-10  Joseph S. Myers  <jsm@polyomino.org.uk>
1600
1601         * c-typeck.c (common_type): Prefer long long to long when same
1602         precision.
1603
1604 2004-04-09  Zack Weinberg  <zack@codesourcery.com>
1605
1606         PR 14887
1607         * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Look only at
1608         mode argument.
1609         * config/ia64/ia64.c (ia64_hpux_file_end): Check
1610         TREE_SYMBOL_REFERENCED on DECL_ASSEMBLER_NAME, not DECL_NAME.
1611
1612 2004-04-09  Roger Sayle  <roger@eyesopen.com>
1613
1614         * simplify-rtx.c (mode_signbit_p): New function to check whether
1615         an RTX is an immediate constant that represents the most significant
1616         bit of a given machine mode.
1617         (simplify_unary_operation) <NOT>: Optimize ~(X+C) as X ^ ~C, where
1618         C is the sign bit.
1619         (simplify_binary_operation) <PLUS>: Optimize (X^C1) + C2 as X^(C1^C2)
1620         when C2 is the sign bit.
1621         (simplify_binary_operation) <XOR>: Canonicalize X^C as X+C when C
1622         is the sign bit.  Optimize (X+C1) ^ C2 as X^(C1^C2) when C1 is the
1623         sign bit.
1624
1625 2004-04-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1626
1627         * builtins.c (mathfn_built_in): Check TYPE_MAIN_VARIANT, not
1628         TYPE_MODE.
1629
1630 2004-04-09  Andrew Pinski  <pinskia@physics.uc.edu>
1631
1632         * c-common.c (handle_noreturn_attribute): Use TYPE_READONLY instead
1633         of TREE_READONLY for types.
1634
1635 2004-04-09  Caroline Tice  <ctice@apple.com>
1636
1637         * basic-block.h (struct edge_def):  Add new field, crossing_edge.
1638         (struct basic_block_def):  Add new field, partition.
1639         (UNPARTITIONED, HOT_PARTITION, COLD_PARTITION):  New constant macro
1640         definitions.
1641         (partition_hot_cold_basic_blocks): Add extern function
1642         declaration.
1643         * bb-reorder.c (function.h, obstack.h, expr.h, regs.h):  Add four new
1644         include statements.
1645         (N_ROUNDS): Increase the maximum number of rounds by 1.
1646         (branch_threshold): Add array value for new round.
1647         (exec_threshold): Add array value for new round.
1648         (push_to_next_round_p): New function.
1649         (add_unlikely_executed_notes): New function.
1650         (find_rarely_executed_basic_blocks_and_crossing_edges): New function.
1651         (mark_bb_for_unlikely_executed_section): New function.
1652         (add_labels_and_missing_jumps): New function.
1653         (add_reg_crossing_jump_notes): New function.
1654         (fix_up_fall_thru_edges): New function.
1655         (find_jump_block): New function.
1656         (fix_crossing_conditional_branches): New function.
1657         (fix_crossing_unconditional_branches): New function.
1658         (fix_edges_for_rarely_executed_code): New function.
1659         (partition_hot_cold_basic_blocks): New function.
1660         (find_traces):  Add an extra round for partitioning hot/cold
1661         basic blocks.
1662         (find_traces_1_round): Add a parameter.  Modify to push all cold blocks,
1663         and only cold blocks, into the last (extra) round of collecting traces.
1664         (better_edge_p): Add a parameter.  Modify to favor non-crossing edges
1665         over crossing edges.
1666         (bb_to_key):  Add code to correctly identify cold blocks when
1667         doing partitioning.
1668         (connect_traces): Modify to connect all the non-cold traces first, then
1669         go back and connect up all the cold traces.
1670         (reorder_basic_blocks):  Add call to add_unlikely_executed_notes.
1671         * cfg.c (entry_exit_blocks): Add initialization for partition field in
1672         entry and exit blocks.
1673         * cfgbuild.c (make_edges): Update current_function_has_computed_jump
1674         if we are doing hot/cold partitioning.
1675         * cfgcleanup.c (cfglayout.h): Add new include statement.
1676         (try_simplify_condjump): Modify to not attempt on blocks with jumps
1677         that cross section boundaries.
1678         (try_forward_edges): Likewise.
1679         (merge_blocks_move_predecessor_nojumps): Likewise.
1680         (merge_blocks_move_successor_nojumps): Likewise.
1681         (merge_blocks_move): Likewise.
1682         (try_crossjump_to_edge): Modify to not attempt after we have done
1683         the block partitioning.
1684         (try_crossjump_bb): Modify to not attempt on blocks with jumps that
1685         cross section boundaries.
1686         (try_optimize_cfg): Likewise.
1687         * cfghooks.c (tidy_fallthru_edges): Modify to not remove indirect
1688         jumps that cross section boundaries.
1689         * cfglayout.c (flags.h): Add new include statement.
1690         (update_unlikely_executed_notes):  New function.
1691         (fixup_reorder_chain):  Add code so when a new jumping basic block is
1692         added, it's UNLIKELY_EXECUTED_CODE and REG_CROSSING_JUMP notes are
1693         updated appropriately.
1694         (duplicate_insn_chain):  Add code to duplicate the new NOTE insn
1695         introduced by this optimization.
1696         * cfglayout.h (scan_ahead_for_unlikely_executed_note):  Add new
1697         extern function declaration.
1698         * cfgrtl.c (can_delete_note_p):  Add NOTE_INSN_UNLIKELY_EXECUTED_CODE to
1699         list of notes that can be deleted.
1700         (create_basic_block_structure):  Add initialization for partition field.
1701         (rtl_can_merge_blocks):  Modify to test blocks for jumps that cross
1702         section boundaries.
1703         (try_redirect_by_replacing_jump):  Modify to not attempt on jumps that
1704         cross section boundaries.
1705         (commit_one_edge_insertion): Add code so newly created basic block
1706         ends up in correct (hot or cold) section.  Modify to disallow
1707         insertions before NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
1708         (rtl_verify_flow_info_1):  Add code to verify that no fall_thru edge
1709         crosses section boundaries.
1710         (cfg_layout_can_merge_blocks_p): Modify to test blocks for jumps that
1711         cross section boundaries.
1712         (force_nonfallthru_and_redirect): Modify to make sure new basic block
1713         ends up in correct section, with correct notes attached.
1714         * common.opt (freorder-blocks-and-partition):  Add new flag for this
1715         optimization.
1716         * dbxout.c (dbx_function_end):  Add code to make sure scope labels at
1717         the end of functions are written into the correct (hot or cold)
1718         section.
1719         (dbx_source_file): Add code so writing debug file information
1720         doesn't incorrectly change sections.
1721         * defaults.h (NORMAL_TEXT_SECTION_NAME): New constant macro, for use
1722         in partitioning hot/cold basic blocks into separate sections.
1723         (SECTION_FORMAT_STRING): New constant macro, for linux/i386 hot/cold
1724         section partitioning.
1725         (HAS_LONG_COND_BRANCH): New constant macro, indicating whether or not
1726         conditional branches can span all of memory.
1727         (HAS_LONG_UNCOND_BRANCH): New constant macro, indicationg whether or not
1728         unconditional branches can span all of memory.
1729         * final.c (scan_ahead_for_unlikely_executed_note):  New function.
1730         (final_scan_insn):  Add code to check for NOTE instruction indicating
1731         whether basic block belongs in hot or cold section, and to make sure
1732         the current basic block is being written to the appropriate section.
1733         Also added code to ensure that jump table basic blocks end up in the
1734         correct section.
1735         * flags.h (flag_reorder_blocks_and_partition):  New flag.
1736         * ifcvt.c (find_if_case_1):  Modify to not attempt if conversion if
1737         one of the branches has a jump that crosses between sections.
1738         (find_if_case_2): Likewise.
1739         (ifcvt): Modify to not attempt to mark loop exit edges after
1740         hot/cold partitioning has occurred.
1741         * opts.c (decode_options): Code to handle new flag,
1742         flag_reorder_blocks_and_partition; also to turn it off if
1743         flag_exceptions is on.
1744         (common_handle_option): Code to handle new flag,
1745         flag_reorder_blocks_and_partition.
1746         * output.h (unlikely_text_section): New extern function declaration.
1747         (in_unlikely_text_section): New extern function declaration.
1748         * passes.c (rest_of_handle_stack_regs):  Add
1749         flag_reorder_blocks_and_partition as an 'or' condition for calling
1750         reorder_basic_blocks.
1751         (rest_of_handle_reorder_blocks):  Add flag_reorder_blocks_and_partition
1752         as an 'or' condition for calling reorder_basic_blocks.
1753         (rest_of_compilation):  Add call to partition_hot_cold_basic_blocks.
1754         * print-rtl.c (print_rtx): Add code for handling new note,
1755         NOTE_INSN_UNLIKELY_EXECUTED_CODE
1756         * rtl.c  (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note insn (see below).
1757         (REG_CROSSING_JUMP): New kind of reg_note, to mark jumps that
1758         cross between section boundaries.
1759         * rtl.h (NOTE_INSN_UNLIKELY_EXECUTED_CODE):  New note instruction,
1760         indicating the basic block containing it belongs in the cold section.
1761         (REG_CROSSING_JUMP): New type of reg_note, to mark jumps that cross
1762         between hot and cold sections.
1763         * toplev.c (flag_reorder_blocks_and_partition):  Add code to
1764         initialize this flag, and to tie it to the command-line option
1765         freorder-blocks-and-partition.
1766         * varasm.c (cfglayout.h):  Add new include statement.
1767         (unlikely_section_label_printed):  New global variable, used for
1768         determining when to output section name labels for cold sections.
1769         (in_section):  Add in_unlikely_executed_text to enum data structure.
1770         (text_section):  Modify code to use SECTION_FORMAT_STRING and
1771         NORMAL_TEXT_SECTION_NAME macros.
1772         (unlikely_text_section):  New function.
1773         (in_unlikely_text_section):  New function.
1774         (function_section):  Add code to make sure beginning of function is
1775         written into correct section (hot or cold).
1776         (assemble_start_function):  Add code to make sure stuff is written to
1777         the correct section.
1778         (assemble_zeros):  Add in_unlikely_text_section as an 'or' condition
1779         to an if statement that was checking 'in_text_section'.
1780         (assemble_variable):  Add 'in_unlikely_text_section' as an 'or'
1781         condition to an if statement that was checking 'in_text_section'.
1782         (default_section_type_flags_1):  Add check: if in cold section
1783         flags = SECTION_CODE.
1784         * config/darwin.c (darwin_asm_named_section):  Modify to use
1785         SECTION_FORMAT_STRING if we are partitioning hot/cold blocks.
1786         * config/i386/i386.h (HAS_LONG_COND_BRANCH): Defined this macro
1787         specifically for the i386.
1788         (HAS_LONG_UNCOND_BRANCH):  Defined this macro specifically for the i386.
1789         * config/rs6000/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Change
1790         text string to something more informative.
1791         (NORMAL_TEXT_SECTION_NAME): Add new definition.
1792         (SECTION_FORMAT_STRING):  Add new definition.
1793         * config/rs6000/rs6000.c (rs6000_assemble_integer):  Add
1794         '!in_unlikely_text_section' as an 'and' condition to an if statement
1795         that was already checking '!in_text_section'.
1796         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME,NORMAL_TEXT_SECTION_NAME,
1797         UNLIKELY_EXECUTED_TEXT_SECTION_NAME,SECTION_FORMAT_STRING): Make
1798         sure these are properly defined for linux on ppc.
1799         * doc/invoke.texi  (freorder-blocks-and-partition): Add documentation
1800         for this new flag.
1801         * doc/rtl.texi (REG_CROSSING_JUMP):  Add documentation for new
1802         reg_note.
1803         * doc/tm.texi (NORMAL_TEXT_SECTION_NAME, SECTION_FORMAT_STRING,
1804         HAS_LONG_COND_BRANCH, HAS_LONG_UNCOND_BRANCH): Add documentation for
1805         these new macros.
1806
1807 2004-04-08  Roger Sayle  <roger@eyesopen.com>
1808
1809         * function.c (gen_mem_addressof): When changing the RTX from a REG
1810         to a MEM, clear MEM_VOLATILE_P which was formerly REG_USERVAR_P.
1811
1812 2004-04-08  Roger Sayle  <roger@eyesopen.com>
1813
1814         PR target/14888
1815         * config/i386/i386.md (truncdfsf2_noop, truncxfsf2_noop,
1816         truncxfdf2_noop): Provide dummy "fmov" implementations.
1817
1818 2004-04-08  Ian Lance Taylor  <ian@wasabisystems.com>
1819
1820         * gcc.c (default_compilers): Add missing initializers.
1821
1822         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
1823         Return 1 if file was successfully mapped.
1824
1825 2004-04-08  Geoffrey Keating  <geoffk@apple.com>
1826
1827         PR pch/13419
1828         PR pch/14137
1829         Radar #: 3315288
1830         * doc/invoke.texi (Precompiled Headers): Suggest -o
1831         to put an output file in a particular place.  Be more detailed
1832         about which options affect PCH validity and which options
1833         might not work.
1834         * c-pch.c (pch_matching): New.
1835         (MATCH_SIZE): New.
1836         (struct c_pch_validity): New field 'match'.
1837         (pch_init): Handle pch_matching.
1838         (c_common_valid_pch): Check pch_matching.
1839
1840         * explow.c: Fix typo defining default of PROMOTE_FUNCTION_MODE.
1841
1842 2004-04-08  Mark Mitchell  <mark@codesourcery.com>
1843
1844         * doc/invoke.texi (Precompiled Headers): Warn about known
1845         problems.
1846
1847 2004-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
1848
1849         PR c++/14808
1850         * defaults.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): New macro. Default
1851         to 1 if ASM_OUTPUT_DEF is defined.
1852         * doc/tm.texi (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document.
1853         * config/i386/cygming.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): Define.
1854         Set to non-zero iff not a one_only decl.
1855
1856 2004-04-08  Paul Brook  <paul@codesourcery.com>
1857
1858         * arm.h (CLASS_LIKELY_SPILLED_P): Define.
1859
1860 2004-04-08  Paul Brook  <paul@codesourcery.com>
1861
1862         * explow.c (promote_mode): Use PROMOTE_FUNCTION_MODE instead of
1863         PROMOTE_FOR_CALL_ONLY.
1864         * config/arm/arm-protos.h (arm_function_value): Declare.
1865         * config/arm/arm.h (TARGET_PROMOTE_FUNCTION_ARGS): Define.
1866         (TARGET_PROMOTE_PROTOTYPES): Return false.
1867         (arm_function_value): New function.
1868         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Define.
1869         (FUNCTION_VALUE): Call arm_function_value.
1870         * config/cris/cris.h (PROMOTE_MODE): Rename ...
1871         (PROMOTE_FUNCTION_MODE): ... to this.
1872         (PROMOTE_FOR_CALL_ONLY): Remove.
1873         * config/mmix/mmix.h: Likewise.
1874         * config/s390/s390.h: Likewise.
1875         * config/sparc/sparc.h: Likewise.
1876         * config/sparc/sparc.c: Update comments about PROMOTE_MODE.
1877         * doc/tm.texi (PROMOTE_FUNCTION_MODE): Document.
1878         (TARGET_PROMOTE_FUNCTION_MODE, TARGET_PROMOTE_FUNCTION_RETURN): Update.
1879         (PROMOTE_FOR_CALL_ONLY): Remove.
1880
1881 2004-04-08  Joel Sherrill <joel@oarcorp.com>
1882
1883         PR ada/14538
1884         * ada/5rosinte.adb: Remove fake mprotect() body.
1885         * ada/5rosinte.ads: Add SA_SIGINFO.
1886         * ada/5rtpopsp.adb: Rewrite to use new interface.
1887         * ada/init.c: Reorder so the simple single OS conditional __rtems__
1888         is tested before more complex ones which mix UNIX and embedded
1889         systems in the conditional.
1890
1891 2004-04-08  Joel Sherrill  <joel@oarcorp.com>
1892
1893         PR ada/14665
1894         * ada/osint.adb (Find_Program_Name): Rework to properly handle
1895         filenames which end in .exe or have versioning suffixes like VMS.
1896
1897 2004-04-08  Andrew Pinski  <pinskia@physics.uc.edu>
1898
1899         PR target/10129
1900         * config/darwin.c (darwin_encode_section_info): When the decl has
1901         a DECL_INITIAL, it is only defined also when it is not a common.
1902
1903 2004-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1904
1905         * builtins.c (fold_builtin_isascii, fold_builtin_toascii): New.
1906         (fold_builtin): Handle BUILT_IN_ISASCII and BUILT_IN_TOASCII.
1907
1908 2004-04-07  H.J. Lu  <hongjiu.lu@intel.com>
1909
1910         * config/ia64/ia64.c (ia64_encode_section_info): Don't prod
1911         global register variables.
1912
1913 2004-04-07  Joseph S. Myers  <jsm@polyomino.org.uk>
1914
1915         * fixinc/inclhack.def (rpc_xdr_lvalue_cast_a,
1916         rpc_xdr_lvalue_cast_b): New fixes.
1917         * fixinc/fixincl.x: Regenerate.
1918         * fixinc/tests/base/rpc/xdr.h: Add new tests.
1919
1920 2004-04-07  David Edelsohn  <edelsohn@gnu.org>
1921
1922         * config/rs6000/rs6000.c (processor_target_table): Add MASK_MFCRF
1923         to power4 and power5 entries.
1924
1925 2004-04-06  Geoffrey Keating  <geoffk@apple.com>
1926
1927         * c-common.h (pending_lang_change): Mark for PCH.
1928
1929 2004-04-07  Caroline Tice  <ctice@apple.com>
1930
1931         * gcc.c (main): Move 'break' in main loops (on an error)
1932         to wait until error processing has occurred.
1933
1934 2004-04-06  Nathanael Nerode  <neroden@gcc.gnu.org>
1935
1936         * config.gcc: Stop changing enable_threads midstream.
1937         Replace uses of enable_threads_flag with enable_threads.
1938         * configure.ac: Replace uses of enable_threads_flag with
1939         enable_threads.  Improve autoconf quotation in one place.
1940         * configure: Regenerate.
1941
1942 2004-04-06  Uros Bizjak  <uros@kss-loka.si>
1943
1944         * builtins.c: Implement support for sincos function.
1945         (expand_builtin_mathfn): Remove BUILT_IN_SIN{,F,L} and
1946         BUILT_IN_COS{,F,L}.
1947         (expand_builtin_mathfn_3): New function.
1948         (expand_builtin): Expand BUILT_IN_SIN{,F,L} and
1949         BUILT_IN_COS{,F,L} using expand_builtin_mathfn_3 if
1950         flag_unsafe_math_optimization is set.
1951
1952         * optabs.h (enum optab_index): Add new OTI_sincos.
1953         (sincos_optab): Define corresponding macro.
1954
1955         * optabs.c (init_optabs): Initialize sincos_optab.
1956         (expand_twoval_unop): New function.
1957
1958         * genopinit.c (optabs): Implement sincos_optab using sincos?f3
1959         patterns.
1960
1961         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_SINCOS_COS
1962         and UNSPEC_SINCOS_SIN.
1963
1964         * config/i386/i386.md (sincosdf3, sincossf3, *sincosextendsfdf3,
1965         sincosxf3): New patterns to implement sincos, sincosf and sincosl
1966         built-ins as inline x87 intrinsics. Define splits for
1967         sindf2, sinsf2, *sinextendsfdf2, sinxf2, cosdf2,
1968         cossf2, *cosextendsfdf2 and cosxf2 patterns from corresponding
1969         sincos patterns.
1970         (sindf2, sinsf2, sinxf2): Rename to *sindf2, *sinsf2, *sinxf2.
1971         (cosdf2, cossf2, cosxf2): Rename to *cosdf2, *cossf2, *cosxf2.
1972
1973         (UNSPEC_SINCOS_SIN, UNSPEC_SINCOS_COS): New unspecs to represent
1974         x87's fsincos insn.
1975
1976 2004-04-06  Devang Patel  <dpatel@apple.com>
1977
1978         PR 14467
1979         * config/darwin.h (LINK_COMMAND_SPEC): Use c++filt instead of c++filt3.
1980
1981 2004-04-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1982
1983         * doc/install.texi: Update HP-UX 11 installation procedure.
1984
1985 2004-04-06  Paul Brook  <paul@codesourcery.com>
1986
1987         * doc/sourcebuild.texi: Remove obsolete contraint on testcases.
1988
1989 2004-04-05  Kaz Kojima  <kkojima@gcc.gnu.org>
1990
1991         * config/sh/sh.c (prepare_move_operands): Use emit_call_insn
1992         when the TLS address is generated by a function call.
1993         * config/sh/sh.md (tls_global_dynamic): Use a call expression.
1994         (tls_local_dynamic): Likewise.
1995
1996 2004-04-05  Andrew Pinski  <pinskia@physics.uc.edu>
1997
1998         * tree.c (reconstruct_complex_type): Use TYPE_READONLY
1999         and TYPE_VOLATILE.
2000
2001 2004-04-05  Caroline Tice  <ctice@apple.com>
2002
2003         * gcc.c (combine_flag): New global variable, for new driver option.
2004         (struct compiler): Add two new fields, to be used when
2005         combining multiple input files in a single pass (IMA).
2006         (default_compilers):  Add values for the new fields to all
2007         compiler entries. Modify the "@c" compiler entry for doing IMA
2008         properly with "-save-temps" and the "combine" flag.
2009         (option_map):  Add new driver option, "--combine", to tell driver
2010         to pass multiple input files to compiler at one time.
2011         (have_o_argbuf_index): New global variable.
2012         (store_arg): Modify to assign value to have_o_argbuf_index.
2013         (struct infile):  Add three new fields, to help with IMA.
2014         (display_help): Add help for new "combine" option.
2015         (process_command): Remove local variable have_o; add code to check
2016         for new "combine" option; remove assignment to combine_inputs.
2017         (do_spec_1):  Modify to deal with IMA better.
2018         (main): Make variable 'lang_n_infiles' local to entire function
2019         rather than to a single block.  Use flag combine_flag to
2020         determine whether to do IMA or not; Modify loop initializing
2021         infiles to deal properly with linker files.
2022         Add code for doing preprocessing in presence of
2023         IMA with "-save-temps" flag.  Modify "main" loop to handle
2024         multiple input files, in multiple languages, with or without
2025         preprocessing,  gracefully.
2026         * toplev.c (set_src_pwd): Modify to not complain if attempting to
2027         re-set it to same directory it's previously been set to (avoid
2028         irritating, meaningless warning messages when doing IMA with
2029         save-temps).
2030         * doc/invoke.texi: Add "-combine" to list of Overall Options;
2031         remove documentation about IMA that is no longer accurate; Add
2032         documentation explaining what "-combine" does.
2033         * ada/lang-specs.h: Add initialization values for new fields in
2034         "struct compiler".
2035         * cp/lang-specs.h: Likewise.
2036         * f/lang-specs.h: Likewise.
2037         * java/lang-specs.h: Likewise.
2038         * objc/lang-specs.h: Likewise.
2039         * treelang/lang-specs.h: Likewise.
2040
2041 2004-04-05  David Edelsohn
2042
2043         * config/rs6000/rs6000.c (VTABLE_NAME_P): Add _ZTI to special
2044         symbol handling.
2045
2046 2004-04-05  Jakub Jelinek  <jakub@redhat.com>
2047             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2048
2049         PR optimization/13424 (hppa), bootstrap/14462, c/14828
2050         * pa.md: Use replace_equiv_address to retain the attributes of the
2051         memory operands used in the split and peephole2 patterns for optimizing
2052         the pre-reload movstrsi, movstrdi, clrstrsi and clrstrdi patterns.
2053
2054 2004-04-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2055
2056         * c-decl.c (build_compound_literal): Use TYPE_READONLY.
2057         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
2058         * objc/objc-act.c (adorn_decl, gen_declspecs): Likewise.
2059         * c-typeck.c (decl_constant_value): Don't access DECL_INITIAL of a
2060         PARM_DECL.
2061         * calls.c (flags_from_decl_or_type): Use TYPE_READONLY and do so only
2062         for a type.
2063         * print-tree.c (print_node): Properly handle side-effects, readonly,
2064         and constant flags.
2065         * tree.c (build1_stat, build_expr_wfl): Only look at TREE_SIDE_EFFECTS
2066         and TREE_CONSTANT if not a type.
2067         * tree.h (IS_NON_TYPE_CODE_CLASS): New macro.
2068         (IS_EXPR_CODE_CLASS): Write 'E', not 'e'.
2069         (NON_TYPE_CHECK): New macro.
2070         (TREE_SIDE_EFFECT, TREE_READONLY, TREE_CONSTANT: Add check.
2071
2072 2004-04-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
2073
2074         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Set
2075         to DWARF2_DEBUG unconditionally.
2076         (ASM_DEBUG_SPEC): Set the default to --gdwarf2 unconditionally.
2077
2078 2004-04-04  Ian Lance Taylor  <ian@wasabisystems.com>
2079             Nathanael Nerode  <neroden@gcc.gnu.org>
2080
2081         PR target/14548
2082         * config.host: Set the shell variable host_can_use_collect2.
2083         Set it to yes by default, and to no for alpha*-dec-*vms*,
2084         i[34567]86-*-mingw32*, and powerpc-*-beos*.
2085         * configure.ac: Set and substitute the shell variable collect2.
2086         Give an error if use_collect2 is yes and host_can_use_collect2 is
2087         no.
2088         * Makefile.in (COLLECT2): Rename from USE_COLLECT2.  Change all
2089         uses.  Initialize to @collect2@.
2090         (STAGESTUFF): Remove $(USE_COLLECT2).
2091         * config/alpha/x-vms (USE_COLLECT2): Don't set.
2092         * config/i386/t-mingw32 (USE_COLLECT2): Likewise.
2093         * config/rs6000/t-beos (USE_COLLECT2): Likewise.
2094         * config/pa/t-pa64: Remove commented out USE_COLLECT2.
2095         * configure: Regenerate.
2096
2097 2004-04-04  Roger Sayle  <roger@eyesopen.com>
2098
2099         * simplify-rtx.c (simplify_binary_operation): Constant fold
2100         DIV, MOD, UDIV and UMOD using div_and_round_double.
2101
2102 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
2103
2104         PR c++/14804
2105         * varasm.c (initializer_constant_valid_p): Allow NOP_EXPRs to
2106         RECORD_TYPEs.
2107
2108 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
2109
2110         * doc/invoke.texi (-mabi=o64): Create link to O64 ABI
2111         documentation.
2112
2113 2004-04-04  Roger Sayle  <roger@eyesopen.com>
2114
2115         * cse.c (cse_insn): Correct usage of simplify_replace_rtx when
2116         updating the REG_EQUAL note on an insn's libcall_insn.
2117
2118 2004-04-04  Roger Sayle  <roger@eyesopen.com>
2119
2120         * df.h: Tidy up whitespace in the definitions of the DF_ flags.
2121
2122 2004-04-03  Roger Sayle  <roger@eyesopen.com>
2123
2124         * fold-const.c (fold) <PLUS_EXPR>: Guard (-A)+B -> B-A transformation
2125         with reorder_operands_p.
2126
2127 2004-04-03  Jan Hubicka  <jh@suse.cz>
2128
2129         * md.texi (vec_set, vec_extract, vec_init): Document.
2130
2131 2004-04-02  Gabor Loki <loki@inf.u-szeged.hu>
2132
2133        * opts.c (decode_options): Do function inlining with very small
2134        max-inline-insns-* parameters when optimizing for size.
2135
2136 2004-04-02  Vladimir Makarov  <vmakarov@redhat.com>
2137
2138         * config/i386/i386.h (TARGET_NOCONA): New macro.
2139         (TARGET_CPU_CPP_BUILTINS): Add code for Nocona.
2140         (processor_type): Add PROCESSOR_NOCONA.
2141
2142         * config/i386/i386.md (cpu): Add nocona to the attribute values.
2143
2144         * config/i386/i386.c (nocona_cost): New variable.
2145         (m_NOCONA): New macro.
2146         (x86_push_memory, x86_movx, x86_cmove, x86_deep_branch,
2147         x86_branch_hints, x86_use_sahf, x86_single_stringop,
2148         x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8,
2149         x86_integer_DFmode_moves, x86_partial_reg_dependency,
2150         x86_memory_mismatch_stall, x86_accumulate_outgoing_args,
2151         x86_decompose_lea, x86_arch_always_fancy_math_387,
2152         x86_sse_partial_reg_dependency, x86_sse_load0_by_pxor,
2153         x86_ext_80387_constants, x86_four_jump_limit):
2154         (override_options): Add nocona_cost to processor_target_table.
2155         Set up PROCESSOR_NOCONA for Nocona entry in processor_alias_table.
2156         (incdec_operand): Prevent inc/dec generation for Nocona too.
2157         (ix86_issue_rate): Add PROCESSOR_NOCONA.
2158
2159 2004-04-01  Andrew Pinski  <pinskia@physics.uc.edu>
2160
2161         * rtlanal.c (find_reg_note): Manually
2162         unswitch the loop.
2163
2164 2004-04-01  Mark Mitchell  <mark@codesourcery.com>
2165
2166         * genemit.c (gen_split): Change prototype of generated code.
2167         * genrecog.c (write_action): Adjust prototype for and calls to
2168         gen_split_*.
2169         * gensupport.c (struct queue_elem): Add split field.
2170         (queue_pattern): Return a value.  Clear the split field.
2171         (process_rtx): Maintain an association between an insn and the
2172         split generated from it for a define_insn_and_split.
2173         (process_one_cond_exec): Generate a new split for a
2174         define_insn_and_split.
2175         * config/arm/arm-protos.h (arm_split_constant): Add insn
2176         parameter.
2177         (emit_constant_insn): New function.
2178         (arm_gen_constant): Use it.
2179         * config/arm/arm.md: Adjust calls to arm_split_constant.
2180
2181 2004-04-02  Jan Hubicka  <jh@suse.cz>
2182
2183         * cgraph.c: Add overall comment.
2184         (cgraph_inline_hash): New global variable.
2185         (cgraph_create_node): Break out from ...
2186         (cgraph_node): ... here.
2187         (cgraph_edge): New function.
2188         (cgraph_create_edge): New CALL_EXPR argument; some sanity checking.
2189         (cgraph_remove_edge): Accept edge, intead of source and destination.
2190         (cgraph_redirect_edge_callee): New.
2191         (cgraph_remove_node): Update all new datastructures.
2192         (cgraph_record_call, cgraph_remove_call): Kill.
2193         (dump_cgraph_node): Break out from ... ; dump new datastructures.
2194         (dump_cgraph): ... here.
2195         (cgraph_function_possibly_inlined_p): Use new hashtable.
2196         (cgraph_clone_edge, cgraph_clone_node): New.
2197         * cgraph.h: Include hashtab.h
2198         (struct cgraph_global_info): Kill cloned_times, inline_once, will_be_output
2199         fields, add inlined_to pointer.
2200         (cgraph_node): Add pointer to next_clone.
2201         (cgraph_remove_edge, cgraph_create_edge): Update prototype.
2202         (cgraph_remove_call, cgraph_record_call): Kill.
2203         (cgraph_inline_hash): Declare.
2204         (dump_cgraph_node, cgraph_edge, cg4raph_clone_edge, cgraph_clone_node,
2205         cgraph_redirect_edge_callee): Declare.
2206         (cgraph_create_edges, cgraph_inline_p): Update prorotype.
2207         (cgraph_preserve_function_body_p, verify_cgraph, verify_cgraph_node,
2208         cgraph_mark_inline_edge, cgraph_clone_inlined_nodes): Declare.
2209         * cgraphunit.c: Add overall comment.
2210         (cgraph_optimize_function): Kill.
2211         (cgraph_assemble_pending_functions): Do not assemble inline clones.
2212         (cgraph_finalize_function): Update call of cgraph_remove_node
2213         (record_call_1): Record call sites.
2214         (cgraph_create_edges): Accept node instead of decl argument.
2215         (error_found): New static variable.
2216         (verify_cgraph_node_1, verify_cgraph_node, verify_cgraph): New functions.
2217         (cgraph_analyze_function): Update for new datastructures.
2218         (cgraph_finalize_compilation_unit): Plug memory leak.
2219         (cgraph_optimize_function): Kill.
2220         (cgraph_expand_function): Do not use cgraph_optimize_function.
2221         (INLINED_TIMES, SET_INLINED_TIMES, cgraph_inlined_into,
2222         cgraph_inlined_callees): Kill.
2223         (cgraph_remove_unreachable_nodes): Verify cgraph; update handling of
2224         clones.
2225         (estimate_growth): Simplify.
2226         (cgraph_clone_inlined_nodes): New function.
2227         (cgraph_mark_inline_edge): Re-implement.
2228         (cgraph_mark_inline): Likewise.
2229         (cgraph_check_inline_limits): Simplify.
2230         (cgraph_recursive_inlining_p): New.
2231         (update_callee_keys): Break out from ...
2232         (cgraph_decide_inlining_of_small_functions): ... here; simplify.
2233         (cgraph_decide_inlining, cgraph_decide_inlining_incrementally):
2234         Likewise.
2235         (cgraph_expand_all_functions):  Remove inline clones from the ordered
2236         list.
2237         (cgraph_preserve_function_body_p): New predicate.
2238         (cgraph_optimize): Verify cgraph.
2239         * function.h (struct function): Add fields saved_tree/saved_args.
2240         * timevar.def (TV_CGRAPH_VERIFY): Use verifier.
2241         * toplev.c (rest_of_compilation): Do not free cfun.
2242         * tree-inline.c: Include function.h
2243         (struct inline_data): Add saving_p field; replace decl/current_decl by
2244         node/current_node.
2245         (insert_decl_map): New function.
2246         (copy_body_r): Handle saving; update cgraph datastructure.
2247         (copy_body): Handle recursive inlining.
2248         (initialize_inlined_parameters): Likewise.
2249         (expand_call_inline): Propagate node attributes; update cgraph.
2250         (optimize_inline_calls): Verify that datastructure still match.
2251         (save_body): New function.
2252         * tree-inline.h (save_body): New.
2253         * tree-optimize.c (tree_rest_of_compilation): preserve function body; do inlining.
2254         * langhooks-def.c (LANG_HOOKS_UPDATE_DECL_AFTER_SAVING): New.
2255         * langhooks.c (lang_hooks): Add update_decl_after_saving.
2256
2257 2004-04-01  Serge Belyshev  <1319@bot.ru>
2258
2259         PR target/14702
2260         * config/i386/i386.md: fix source operand constraints in
2261         mmx_pshufw, sse2_pshufd, sse2_pshuflw, sse2_pshufhw
2262
2263 2004-04-01  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
2264
2265         * fold-const.c (folda): Preserve types of comparisons.
2266
2267 2004-04-01  Richard Henderson  <rth@redhat.com>
2268
2269         * toplev.c (backend_init): Move init_optimization_passes call ...
2270         (lang_dependent_init): ... here.
2271
2272 2004-04-01  Alan Modra  <amodra@bigpond.net.au>
2273             Jakub Jelinek  <jakub@redhat.com>
2274
2275         * gcc.c (init_gcc_specs): If HAVE_LD_AS_NEEDED, link with
2276         -lgcc --as-needed -lgcc_s --no-as-needed by default.
2277         * configure.ac (HAVE_LD_AS_NEEDED): Check for ld --as-needed.
2278         * configure: Rebuilt.
2279         * config.in: Rebuilt.
2280         * Makefile.in (stage1-start): Copy also libgcc_s*$(SHLIB_EXT).
2281         (stage2-start, stage3-start, stage4-start): Likewise.
2282         (stageprofile-start, stagefeedback-start): Likewise.
2283
2284 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
2285
2286         * config/sparc/sparc.h (DITF_CONVERSION_LIBFUNCS): Define to 0.
2287         * config/sparc/linux.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
2288         * config/sparc/linux64.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
2289         * config/sparc/sol2.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
2290         (SOLARIS_CONVERSION_LIBFUNCS): Rename to SUN_CONVERSION_LIBFUNCS.
2291         * config/sparc/sparc.c (sparc_init_libfuncs): Initialize optabs
2292         with _Q_qtoll, _Q_qtoull and _Q_lltoq if DITF_CONVERSION_LIBFUNCS.
2293         * config.gcc (sparc-*-linux*): Revert 2004-03-23 change.
2294         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Likewise.
2295         * config/sparc/t-linux: Removed.
2296
2297 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
2298
2299         PR c++/14755
2300         * fold-const.c (fold) <EQ_EXPR>: Properly compute newconst in
2301         "bitfld++ == const" to "++bitfld == const + incr" transformations.
2302
2303 2004-04-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2304
2305         * expr.c (get_inner_reference): Use DECL_UNSIGNED, not TREE_UNSIGNED.
2306         * stor-layout.c (layout_decl): Likewise.
2307         * tree.c (get_narrower): Likewise and also use BIT_FIELD_REF_UNSIGNED.
2308         * fold-const.c (make_bit_field_ref): Use BIT_FIELD_REF_UNSIGNED.
2309         * print-tree.c (print_node): Handle various used of unsigned_flag.
2310         * tree.def (BIT_FIELD_REF): Update comment.
2311         * tree.h (TREE_UNSIGNED): Deleted.
2312         (DECL_UNSIGNED, BIT_FIELD_REF_UNSIGNED): New macros.
2313
2314 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2315
2316         * builtins.c, c-aux-info.c, c-common.c, c-cppbuiltin.c, c-decl.c:
2317         Change most occurrences of TREE_UNSIGNED to TYPE_UNSIGNED.
2318         * c-format.c, c-opts.c, c-pretty-print.c, c-typeck.c: Likewise.
2319         * calls.c, convert.c, dbxout.c, dojump.c, dwarf2out.c: Likewise.
2320         * expmed.c, expr.c, fold-const.c, function.c, integrate.c: Likewise.
2321         * optabs.c, sdbout.c, stmt.c, stor-layout.c, tree-dump.c: Likewise.
2322         * tree.c, config/iq2000/iq2000.c, config/m32r/m32r.c: Likewise.
2323         * config/mips/mips.c, config/rs6000/rs6000.c: Likewise.
2324         * config/s390/s390.c, config/sparc/sparc.c, objc/objc-act.c: Likewise.
2325         * stor-layout.c (layout_type, case COMPLEX_TYPE): Test for
2326         REAL_TYPE, not INTEGER_TYPE.
2327         (layout_type, case VECTOR_TYPE): Simplify code.
2328         * tree.c (build_vector_type_for_mode): Remove dup unsigned setting.
2329         * tree.h: Update comments.
2330         (STRIP_NOPS): Use TYPE_UNSIGNED.
2331         (TYPE_UNSIGNED): New macro.
2332         (TYPE_TRAP_SIGNED): Remove now redundant check.
2333         (SAVE_EXPR_NOPLACEHOLDER): Don't use TREE_UNSIGNED.
2334
2335 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2336
2337         * function.c (put_var_into_stack): Properly set orig_reg for indirect.
2338
2339 2004-03-31  Andrew Pinski  <pinskia@physics.uc.edu>
2340
2341         * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA):
2342         Add darwin-fpsave.asm, darwin-vecsave.asm,
2343         and darwin-world.asm.
2344         (TARGET_LIBGCC2_CFLAGS): Add -Wa,-force_cpusubtype_ALL
2345         as the asm files contain altivec instructions.
2346         * config/rs6000/darwin-fpsave.asm: New file.
2347         * config/rs6000/darwin-vecsave.asm: New file.
2348         * config/rs6000/darwin-world.asm: New file.
2349
2350 2004-03-31  Zack Weinberg  <zack@codesourcery.com>
2351
2352         * gengtype-yacc.y (option, stringseq): Add missing
2353         terminating semicolon.
2354
2355 2004-03-30  David Edelsohn  <edelsohn@gnu.org>
2356
2357         * config/rs6000/rs6000.md (tls_gd_32, tls_gd_64,
2358         tls_ld_32, tls_ld_64, tls_dtprel_32, tls_dtprel_64,
2359         tls_dtprel_ha_32, tls_dtprel_ha_64,
2360         tls_dtprel_lo_32, tls_dtprel_lo_64,
2361         tls_got_dtprel_64, tls_tprel_32, tls_tprel_64,
2362         tls_tprel_ha_32, tls_tprel_ha_64,
2363         tls_tprel_lo_32, tls_tprel_lo_64,
2364         tls_got_tprel_32, tls_got_tprel_64,
2365         tls_tls_32, tls_tls_64): Replace register_operand with
2366         gpc_reg_operand.
2367
2368 2004-03-30  Mostafa Hagog  <mustafa@il.ibm.com>
2369
2370         * config/rs6000/rs6000.md (*ctrsi_internal1, *ctrsi_internal2,
2371         *ctrdi_internal1, *ctrdi_internal2, *ctrsi_internal3,
2372         *ctrsi_internal4, *ctrdi_internal3, *ctrdi_internal4,
2373         *ctrsi_internal5, *ctrsi_internal6, *ctrdi_internal5,
2374         *ctrdi_internal6): Replace register_operand with
2375         nonimmediate_operand.
2376
2377 2004-03-29  Fariborz Jahanian <fjahanian@apple.com>
2378
2379         * fold-const.c (fold): Reassociate multiply expression
2380         with an adjacent non-multiply expression to use
2381         architecture's multiply-add instruction.
2382
2383 2004-03-30  Zack Weinberg  <zack@codesourcery.com>
2384
2385         * gengtype.c (create_option): New function.
2386         * gengtype.h: Prototype it.
2387         * gengtype-yacc.y (stringseq): New rule.
2388         (option): Use create_option.  Add new bare ID production.  Use
2389         stringseq, not STRING directly.
2390
2391         * alias.c, bitmap.c, c-decl.c, cgraph.h, cpplib.h, cselib.h
2392         * dwarf2out.c, emit-rtl.c, function.h, lists.c, tree.h
2393         * varray.h, config/alpha/alpha.c:
2394         Use new shorter form of GTY markers.
2395
2396         * doc/gty.texi: Rewrite.
2397
2398 2004-03-30  Andrew Pinski  <pinskia@physics.uc.edu>
2399
2400         * config/darwin.c (machopic_function_base_name):
2401         Remove current_name and getting the name of the
2402         current function.
2403
2404 2004-03-30  Nick Clifton  <nickc@redhat.com>
2405
2406         * config/arm/arm.md (thumb_jump): Reduce the backward branch
2407         range, and increase the forward branch range, to allow for
2408         the fact that the PC will be off by 4.
2409
2410 2004-03-30  Alan Modra  <amodra@bigpond.net.au>
2411
2412         * .cvsignore: Add GPATH, GRTAGS, GSYMS and GTAGS (GNU GLOBAL)
2413
2414 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
2415
2416         * config/rs6000/rs6000.c (output_vec_const_move):
2417         Find all cases of EASY_VECTOR_15_ADD_SELF.
2418         (easy_vector_constant_add_self): Accept
2419         all vector constant loadable by vsplt* and vadd*.
2420         (easy_vector_same): Use easy_vector_splat_const.
2421         (easy_vector_const): Use easy_vector_splat_const.
2422         (easy_vector_splat_const): New function.
2423         (gen_easy_vector_constant_add_self): New function.
2424
2425         * config/rs6000/rs6000-protos.c (gen_easy_vector_constant_add_self):
2426         New prototype.
2427
2428         * config/rs6000/altivec.md (movv4si splitter): Change to
2429         emit move insn with halfed vector constant.
2430         (*movv8hi splitter): Likewise.
2431         (*movv16qi splitter): Likewise.
2432
2433 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
2434
2435         PR 11591
2436         * config/rs6000/rs6000.c (rs6000_legitimate_address):
2437         Allow any offset to argument pointer in no-strict case.
2438
2439 2004-03-30  Jan Hubicka  <jh@suse.cz>
2440
2441         * toplev.c (backend_init): Add missing call to inint_optimization_passes.
2442         * passes.c (init_optimization_passes, finish_optimization_passes): Output cgraph
2443         dump file in non-unit-at-a-time mode.
2444
2445 2004-03-29  Hans-Peter Nilsson  <hp@axis.com>
2446
2447         * config/cris/cris.h: Correct #ifdef to test for
2448         HAVE_AS_NO_MUL_BUG_ABORT_OPTION, not
2449         HAVE_AS_MUL_BUG_ABORT_OPTION.
2450
2451 2004-03-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2452
2453         * function.c (put_var_into_stack): If old RTL was ADDRESSOF, update
2454         the address inside the old RTL.
2455
2456 2004-03-28  Zack Weinberg  <zack@codesourcery.com>
2457
2458         * c-decl.c: Verify that C_SIZEOF_STRUCT_LANG_IDENTIFIER is correct.
2459         (struct c_binding, struct c_scope): Add chain_next
2460         attributes to GTY markers.
2461         (struct lang_identifier, struct lang_tree_node): Define
2462         here...
2463         * c-tree.h: ... not here.  No longer need to declare struct
2464         c_binding either.  Do define C_SIZEOF_STRUCT_LANG_IDENTIFIER.
2465         * c-lang.c, objc/objc-lang.c: Set LANG_HOOKS_IDENTIFIER_SIZE
2466         to C_SIZEOF_STRUCT_LANG_IDENTIFIER.
2467
2468         PR 14734, 11944
2469         * c-decl.c (get_parm_info): If error_mark_node is encountered
2470         in the bindings chain, unbind and discard it; don't abort.
2471
2472 2004-03-28  Olga Golovonevsky <olga@il.ibm.com>
2473             Dorit Naishlos <dorit@il.ibm.com>
2474
2475         * config/rs6000/altivec.md: (andvv16qi3, andv8hi3, one_cmplv16qi2,
2476         one_cmplv8hi2, one_cmplv4si2, iorv16qi3, iorv8hi3,): New modelling.
2477
2478 2004-03-28  Stephane Carrez  <stcarrez@nerim.fr>
2479
2480         * config/m68hc11/m68hc11-protos.h (m68hc11_page0_symbol_p): Declare.
2481
2482         * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute): New.
2483         (m68hc11_attribute_table): New attribute "page0" to mark a global
2484         variable as being allocated from within page0 section.
2485         (m68hc11_encode_label): New function.
2486         (m68hc11_strip_name_encoding): New function.
2487         (m68hc11_page0_symbol_p): New function.
2488         (m68hc11_indirect_p): Accept global variables marked in page0.
2489         (m68hc11_encode_section_info): Lookup "page0" attribute.
2490
2491         * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): 'R' constraint also
2492         represents access to page0 variables.
2493
2494         * config/m68hc11/m68hc11.md ("*logicalsi3_zexthi"): Use gen_rtx_REG.
2495         ("*logicalsi3_silshl16_zext"): Likewise.
2496         ("*ashldi3_const32"): Likewise.
2497         (peephole2 ashift): Likewise.
2498
2499 2004-03-28  Joseph S. Myers  <jsm@polyomino.org.uk>
2500
2501         * c-tree.h (C_DECL_REGISTER): New.
2502         * c-aux-info.c (gen_decl), c-decl.c (objc_mark_locals_volatile,
2503         finish_decl, grokdeclarator, get_parm_info), c-typeck.c
2504         (build_array_ref, c_mark_addressable): Set and use it.
2505         * c-decl.c (grokdeclarator), c-typeck.c (c_mark_addressable):
2506         Allow structures with volatile fields to be declared register.
2507         Don't check TREE_ADDRESSABLE before warning about taking address
2508         of register.
2509         * c-decl.c (finish_decl): Don't allow structures with volatile
2510         fields to be placed in named register.
2511         * doc/trouble.texi: Remove reference to structures with volatile
2512         fields in registers.
2513
2514 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
2515
2516         * function.c (thread_prologue_and_epilogue): Move
2517         NOTE_INSN_FUNCTION_END and NOTE_INSN_FUNCTION_BEG notes
2518         before the epilogue.
2519
2520 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
2521
2522         * expr.c (store_constructor): Use gen_int_mode to correctly
2523         sign-extend CONST_INT value.
2524
2525 2004-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2526
2527         * builtin-types.def (BT_WINT, BT_FN_INT_WINT, BT_FN_WINT_WINT): New.
2528         * builtins.def (DEF_C94_BUILTIN): New.  Add wctype builtins.
2529         * doc/extend.texi: Likewise.
2530
2531 2004-03-26  Diego Novillo  <dnovillo@redhat.com>
2532
2533         * c-typeck.c (comptypes): Replace calls to TYPE_DOMAIN
2534           with TYPE_ORIG_SIZE_TYPE.
2535
2536 2004-03-25  Aldy Hernandez  <aldyh@redhat.com>
2537
2538         PR 14219
2539         * c-typeck.c (build_binary_op): Do not allow comparisons of
2540         vectors.
2541
2542 2004-03-26  James A. Morrison  <ja2morri@uwaterloo.ca>
2543
2544         * config.gcc: Remove sparc-tti-*.
2545         * config/sparc/pbd.h: Delete.
2546
2547         * config/sparc/sol2.h: Remove note about Sun OS 4.x.
2548         * config/sparc/aout.h: Likewise.
2549
2550         * config/sparc/sparc.h: Remove if 0'd code.
2551         * config/sparc/sparc.md (call): Remove if 0'd code.
2552         (call_value): Likewise.
2553         (nonlocal_goto): Likewise.
2554         (unimp_insn): Delete.
2555
2556 2004-03-25  Roger Sayle  <roger@eyesopen.com>
2557
2558         * fold-const.c (tree_expr_nonnegative_p): Handle BIT_XOR_EXPR like
2559         BIT_IOR_EXPR; A^B is nonnegative when A and B are nonnegative.
2560
2561 2004-03-25  Richard Henderson  <rth@redhat.com>
2562
2563         PR 11527
2564         * c-typeck.c (pop_init_level): Emit pending init elements earlier
2565         rather than later.
2566
2567 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2568
2569         * builtins.c (fold_builtin): Fix error in last change.
2570
2571 2004-03-25  Richard Sandiford  <rsandifo@redhat.com>
2572
2573         * config/mips/mips.h: Formatting fix.
2574
2575 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2576
2577         * builtins.def: Add ctype builtins.
2578         * doc/extend.texi: Likewise.
2579
2580 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2581
2582         * builtins.c (fold_builtin): Add new builtin optimizations for
2583         sqrt and/or cbrt.
2584         * fold-const.c (fold): Likewise.
2585
2586 2004-03-25  David Edelsohn  <edelsohn@gnu.org>
2587
2588         * config/rs6000/rs6000.c (rs6000_always_hint): New variable.
2589         (rs6000_sched_groups): New variable.
2590         (processor_target_table): Add power5.
2591         (rs6000_override_options): Set rs6000_sched_insert_nops,
2592         rs6000_sched_costly_dep and rs6000_sched_restricted_insns_priority
2593         from rs6000_sched_groups.
2594         (output_cbranch): Use rs6000_always_hint.
2595         (rs6000_variable_issue): Use rs6000_sched_groups.
2596         (rs6000_adjust_cost): Add CPU_POWER5.
2597         (is_microcoded_insn): Use rs6000_sched_groups.
2598         (is_dispatch_slot_restricted): Use rs6000_sched_groups.
2599         Return 2 for POWER5 cracked instructions.
2600         (is_cracked_insn): Use rs6000_sched_groups.
2601         (is_branch_slot_insn): Use rs6000_sched_groups.
2602         (rs6000_issue_rate): Add CPU_POWER5.
2603         (rs6000_sched_finish): Use rs6000_sched_groups.
2604         (rs6000_rtx_costs): Add PROCESSOR_POWER5.
2605         * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER5.
2606         (DEFAULT_SCHED_COSTLY_DEP): Delete.
2607         (DEFAULT_RESTRICTED_INSNS_PRIORITY): Delete.
2608         (DEFAULT_SCHED_FINISH_NOP_INSERTION_SCHEME): Delete.
2609         * config/rs6000/rs6000.md (define_attr "cpu"): Add power5.
2610         * config/rs6000/power5.md: New file.
2611         * doc/invoke.texi: Add power5 option.
2612
2613 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
2614
2615         * cfgrtl.c, dbxout.c, tree.def, config/darwin.h,
2616         config/arm/arm.c, objc/objc-act.c: Fix comment typos.
2617         * doc/invoke.texi: Fix a typo.
2618
2619 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
2620
2621         PR optimization/9707.
2622         * stmt.c (emit_case_nodes): Emit equality comparisons instead
2623         of recursing if both children are single-valued cases with no
2624         children.
2625
2626 2004-03-25  Paul Brook  <paul@codesourcery.com>
2627
2628         * config/arm/arm.c (vfp_print_multi): Remove.
2629         (arm_output_fldmx): New function.
2630         (vfp_emit_fstmx): Return block size, not insn. Add ARM10 VFPr1 bugfix.
2631         (arm_expand_prologue): Update to match.
2632         (arm_get_vfp_saved_size): New Function.
2633         (arm_get_frame_offsets): Use it.
2634         (arm_output_epilogue): Use new functions.
2635
2636 2004-03-24  Richard Henderson  <rth@redhat.com>
2637
2638         * alias.c (alias_invariant, alias_invariant_size): Mark GTY.
2639         (reg_known_value, reg_known_value_size): Likewise; make static.
2640         (reg_known_equiv_p): Make static.
2641         (clear_reg_alias_info): Update for new indexing.
2642         (get_reg_known_value, set_reg_known_value): New.
2643         (get_reg_known_equiv_p, set_reg_known_equiv_p): New.
2644         (canon_rtx): Use them.
2645         (init_alias_analysis): Likewise.  Allocate reg_known_value with gc.
2646         Don't play queer offsetting games with reg_known_value and
2647         reg_known_equiv_p.
2648         (end_alias_analysis): Free reg_known_value with gc.
2649         * rtl.h (get_reg_known_value, get_reg_known_equiv_p): Declare.
2650         * sched-deps.c (reg_known_equiv_p, reg_known_value): Remove.
2651         (deps_may_trap_p, sched_analyze_1, sched_analyze_2): Use the new
2652         functions instead.
2653
2654 2004-03-24  Kazu Hirata  <kazu@cs.umass.edu>
2655
2656         * dwarf2asm.c, loop.h, pretty-print.c, pretty-print.h,
2657         config/i386/mmintrin.h: Update copyright.
2658
2659 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
2660
2661         * configure.ac: Add --enable-werror-always (for top level bootstrap
2662         support).
2663         * configure: Regenerate.
2664
2665 2004-03-24  Ziemowit Laski  <zlaski@apple.com>
2666
2667         * objc/objc-act.c (objc_comptypes): Treat comparisons
2668         between 'Class' and '<class> *' as explicitly invalid.
2669
2670 2004-03-24  David Edelsohn  <edelsohn@gnu.org>
2671
2672         * doc/invoke.texi (-frename-registers: Add enabled at -O3.
2673         (-fprofile-values): Add enabled with profile-{generate,use}.
2674         (-fvpt): Same.
2675         (-ftracer): Add enabled with profile-use.
2676         (-funit-at-a-time): Add enabled at -O2,-O3.
2677         (-funroll-loops): Add enabled with profile-use.
2678         (-funswitch-loops): Add enabled with profile-use.  Remove duplicates.
2679         (max-gcse-passes): Mention default.
2680         (max-cse-path-length): Mention default.
2681
2682 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
2683
2684         * Makefile.in (STRICT2_WARN): Reorder.
2685         * configure.ac: Check for -Wold-style-definition, and use it
2686         in strict1_warn if it's available.
2687         * configure: Regnerate.
2688
2689 2004-03-24  Paul Brook  <paul@nowt.org>
2690
2691         * config.gcc <arm>: Add --with-abi=
2692         * config/arm/arm-protos.h (arm_get_frame_size, thumb_get_frame_size,
2693         thumb_far_jump_used): Remove prototypes.
2694         (arm_needs_doubleword_align): Add prototype.
2695         (thumb_compute_initial_elimination_offset): Ditto.
2696         * config/arm/arm.c (arm_get_frame_offsets): New function.
2697         (use_return_insn, output_return_instruction, arm_output_epilogue,
2698         arm_output_function_epilogue, arm_compute_initial_elimination_offset,
2699         arm_expand_prologue, thumb_expand_epilogue): Use it.
2700         (arm_abi, target_abi_name, all_arm_abis): New variables.
2701         (arm_override_options): Set them.  Set structure padding for AAPCS.
2702         (arm_return_in_memory): Update ABI check.
2703         (arm_init_cumulative_args): Initialize can_split.
2704         (arm_needs_doubleword_align): New function.
2705         (arm_function_arg): Don't split args after pushing to stack. Handle
2706         doubleword/even reg alignment.
2707         (arm_va_arg): Handle all doubleword aligned args.
2708         (add_minpoolforward ref, dump_minpool, push_minpool_fix): Align based
2709         on ABI, not CPU.
2710         (arm_compute_save_reg0_reg12_mask): Fix comment.
2711         (thumb_get_frame_size, thumb_get_frame_size): Remove.
2712         (thumb_jump_far_used_p): Remove superfluous argument.  Return save
2713         value for alignment.
2714         (thumb_unexpanded_epilogue, thumb_output_function_prologue): Change
2715         to match.
2716         (thumb_compute_initial_elimination_offset): New function.
2717         (thumb_expand_prologue): Use arm_get_frame_offsets.  Remove
2718         unneccessary rounding.
2719         * config/arm/arm.h (target_abi_name): Declare.
2720         (ARM_DOUBLEWORD_ALIGN, DOUBLEWORD_ALIGNMENT, TARGET_IWMMXT_ABI,
2721         arm_abi_type, ARM_DEFAULT_ABI): Define.
2722         (ARM_FLAG_ATPCS): Remove.
2723         (TARGET_OPTIONS, OPTION_DEFAULT_SPECS): Add -mabi=.
2724         (BIGGEST_ALIGNMENT, PREFERRED_STACK_BOUNDARY, STACK_BOUNDARY): Use it.
2725         (ADJUST_FIELD_ALIGN, DATA_ALIGNMENT, LOCAL_ALIGNMENT,
2726         TYPE_NEEDS_IWMMXT_ALIGNMENT): Remove.
2727         (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P, FUNCTION_ARG_REGNO_P):
2728         Contitionalize on ABI, not CPU.
2729         (struct arm_stack_offsets): Define.
2730         (struct machine_function): Add stack_offsets.  Remove frame_size.
2731         (FUNCTION_ARG_PARTIAL_NREGS): Don't split if previous args have been
2732         pushed.
2733         (FUNCTION_ARG_ADVANCE, FUNCTION_ARG_BOUNDARY): Handle general
2734         doubleword alignment.
2735         (THUMB_INITIAL_ELIMINATION_OFFSET,
2736         ARM_INITIAL_ELIMINATION_OFFSET): Remove.
2737         (INITIAL_ELIMINATION_OFFSET): Call functions directly.
2738         * config/arm/arm.md (align_8): Enable for all targets.
2739         * config/arm/netbsd-elf.h (TARGET_DEFAULT): Remove TARGET_ATPCS.
2740         (ARM_DEFAULT_ABI): Define.
2741         * doc/invoke.texi <ARM>: Document -mabi=. Update documentation for
2742         -mstructure-size-boundary.
2743
2744 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
2745
2746         * configure.ac: Check for -Wno-variadic-macros; don't use
2747         -pedantic (in stage 1 or a simple 'make all') unless it's available,
2748         and if it's available, use it.  Also, clean up check for
2749         -Wno-long-long.
2750         * configure: Regenerate.
2751
2752 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
2753
2754         * config.gcc (mips64vr-*-elf*, mips64vrel-*-elf*): Remove tm_defines.
2755         * config/mips/vr.h (DEFAULT_VR_ARCH): New macro, defined to vr4130.
2756         (MULTILIB_DEFAULTS): Use it.
2757         (MIPS_CPU_STRING_DEFAULT): Remove.
2758         (MIPS_ABI_DEFAULT, MIPS_MARCH_CONTROLS_SOFT_FLOAT): Define.
2759         (DRIVER_SELF_SPECS): Make -mfix-vr4122-bugs imply -march=vr4120.  Make
2760         EABI64 -mlong32 the default ABI.  Enforce the default architecture.
2761         * config/mips/t-vr (MULTILIB_OPTIONS): Add mfix-vr4122-bugs,
2762         march=vr4130, march=vr4300, march=vr5000 and march=vr5500.
2763         (MULTILIB_MATCHES): Use -mfix-vr4122-bugs multilibs for -march=vr4120.
2764         (MULTILIB_EXCEPTIONS): Change choice of multilibs.  Update comments
2765         accordingly.
2766
2767 2004-03-24  DJ Delorie  <dj@redhat.com>
2768             Richard Sandiford  <rsandifo@redhat.com>
2769
2770         * config/mips/mips.h (MASK_FIX_VR4122, TARGET_FIX_VR4122): New macros.
2771         (TARGET_SWITCHES): Add -mfix-vr4122-bugs and -mno-fix-vr4122-bugs.
2772         (ASM_SPEC): Pass down -mfix-vr4122-bugs.
2773         * config/mips/mips.c (mips_avoid_hazards): Don't emit whole functions
2774         in .set noreorder and .set nomacro if TARGET_FIX_VR4122.
2775         (mips_init_libfuncs): Use special functions for divsi3 and modsi3
2776         if TARGET_FIX_VR4122.
2777         * config/mips/mips.md (define_attr length): Account for nops inserted
2778         after macc and dmult when using -mfix-vr4122-bugs.
2779         (umuldi3_highpart, divmodsi4, divmoddi4): Disable if TARGET_FIX_VR4122.
2780         * config/mips/t-vr (LIB2FUNCS_STATIC_EXTRA): Define instead of
2781         LIB2FUNCS_EXTRA.  Add config/mips/vr4122-div.S.
2782         * config/mips/vr4122-div.S: New file.
2783         * doc/invoke.texi: Document -mfix-vr4122-bugs.
2784
2785 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
2786
2787         * config/mips/mips.h (PROCESSOR_R4130): New processor_type.
2788         (TARGET_MIPS4130): New macro.
2789         (ISA_HAS_MACC): Return true if TARGET_MIPS4130 && !TARGET_MIPS16.
2790         * config/mips/mips.c (mips_cpu_info_table): Add a vr4130 entry.
2791         (override_options): Extend MIPS_MARCH_CONTROLS_SOFT_FLOAT to deal
2792         with PROCESSOR_R4130.
2793         * config/mips/mips.md (define_attr cpu): Add r4130.
2794         * doc/invoke.texi: Document vr4130 as a supported MIPS architecture.
2795
2796 2004-03-24  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
2797             Richard Sandiford  <rsandifo@redhat.com>
2798
2799         * doc/invoke.texi: Apply missed hunk from 2004-03-03 change.
2800
2801 2004-03-24  Alexandre Oliva  <aoliva@redhat.com>
2802
2803         PR preprocessor/14438
2804         * cpplib.c (do_pragma): Remove line_change call after pragma
2805         handler.
2806
2807 2004-03-23  Ian Lance Taylor  <ian@wasabisystems.com>
2808
2809         * doc/extend.texi (ARM Built-in Functions): Replace with correct
2810         declarations.
2811
2812 2004-03-23  Roger Sayle  <roger@eyesopen.com>
2813
2814         * reg-stack.c (get_true_reg): Handle FLOAT_TRUNCATE like FLOAT_EXTEND
2815         if flag_unsafe_math_optimizations.
2816         * config/i386/i386.md (truncdfsf2): If flag_unsafe_math_optimizations
2817         and TARGET_80387 expand using truncdfsf2_noop pattern.
2818         (truncxfsf2): Likewise using truncxfsf2_noop.
2819         (truncxfdf2): Likewise using truncxfdf2_noop.
2820         (truncdfsf2_noop, truncxfsf2_noop, truncxfdf2_noop): New patterns.
2821
2822 2004-03-23  Ziemowit Laski  <zlaski@apple.com>
2823
2824         * hooks.c (hook_constcharptr_tree_null): New hook.
2825         * hooks.h (hook_constcharptr_tree_null): New prototype.
2826         * target-def.h (TARGET_MANGLE_FUNDAMENTAL_TYPE): New target hook.
2827         * target.h (mangle_fundamental_type): New target hook.
2828         * config/rs6000/rs6000.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Point
2829         target hook at rs6000_mangle_fundamental_type.
2830         (rs6000_mangle_fundamental_type): New function.
2831         * doc/tm.texi (TARGET_MANGLE_FUNDAMENTAL_TYPE): Document.
2832
2833 2004-03-23  Zack Weinberg  <zack@codesourcery.com>
2834
2835         PR 12267, 12391, 12560, 13129, 14114, 14133
2836         * c-tree.h: Forward declare struct c_binding.  Declare
2837         c_override_bindings_to_false.  Update prototypes.
2838         (struct lang_identifier): Update comments.  Change fields to be
2839         struct c_binding *.
2840         (IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE)
2841         (IDENTIFIER_LABEL_VALUE, C_DECL_INVISIBLE)
2842         (KEEP_NO, KEEP_YES, KEEP_MAYBE): Delete.
2843         (C_DECL_IN_EXTERNAL_SCOPE, C_DECL_DECLARED_BUILTIN): New.
2844         * c-common.h: Update prototypes.
2845         * c-decl.c (struct c_scope): Update commentary.  Remove names,
2846         names_last, parms, parms_last, tags, and shadowed fields.  Add
2847         bindings and depth fields.
2848         (scope_freelist): Move to more appropriate location.
2849         (c_print_identifier): Update for changes to struct lang_identifier.
2850         (objc_mark_locals_volatile): Update for new bindings structures.
2851         (global_bindings_p): Honor c_override_global_bindings_to_false.
2852         (pushlevel): Rename to push_scope; take no arguments; use the
2853         scope_freelist; initialize scope->depth and check for overflow.
2854         (poplevel): Rename to pop_scope; totally rewritten for new bindings
2855         structures.
2856         (diagnose_mismatched_decls): Use C_DECL_DECLARED_BUILTIN, not
2857         C_DECL_INVISIBLE, for certain decisions.  Adjust some diagnostics.
2858         Improve some commentary.  Adjust handling of forward parm decls.
2859         (merge_decls): Set C_DECL_DECLARED_BUILTIN when appropriate.
2860         Preserve C_DECL_IN_EXTERNAL_SCOPE.
2861         (warn_if_shadowing): Correct indentation.  Improve diagnostics.
2862         (pushdecl): Remove unnecessary assertion.  Short-circuit anonymous
2863         decls.  Rewrite for new bindings structures.  Improve commentary.
2864         Eliminate the copy_node call.
2865         (implicit_decl_warning): Use the "diag" idiom (as seen in
2866         locate_old_decl) to reduce code duplication; call locate_old_decl
2867         if appropriate.  Relocate to remove need for forward declaration.
2868         (implicitly_declare): Adjust for new bindings structures.  Kludge
2869         around Objective-C not-really-builtin functions.
2870         (undeclared_variable): Improve diagnostics.  If current_function_decl
2871         is nonnull but current_function_scope is null, use current_scope.
2872         Use bind.
2873         (lookup_tag): Adjust for new bindings structures.  Kludge around
2874         Objective-C's tag declarations that wind up in the external scope.
2875         (lookup_name): Adjust for new bindings structures.  Kludge around
2876         c-common.c's pseudo-typedefs that wind up in the external scope.
2877         (lookup_name_current_level): Rename lookup_name_in_scope; take a
2878         second argument indicating the scope to examine; rewrite for
2879         new bindings structures.
2880         (c_init_decl_processing): Adjust for renamed functions.  Do not
2881         initialize current_file_decl, first_builtin_decl, last_builtin_decl.
2882         First scope pushed is the external scope, not the global scope.
2883         (builtin_function): Use bind, not pushdecl.  Adjust other bits
2884         for new data structures.  Keep track of builtins that should be
2885         made visible automatically.
2886         (start_decl): Adjust diagnostics.  Remove unnecessary call to
2887         expand_decl.
2888         (grokparms): Return 0 if arg_types is error_mark_node.
2889         (get_parm_info): Rename "void_at_end" argument to "ellipsis", with
2890         reversed sense.  Rewrite for new bindings structures.  Do not
2891         leave any decls in the scope, to prevent pop_scope from doing
2892         contradictory things with them.
2893         (finish_struct, finish_enum): Remove redundant diagnostics.
2894         (build_enumerator): Don't cascade diagnostics for error_mark_node.
2895         Mark location where -pedantic changes the meaning of the program.
2896         (store_parm_decls_newstyle, store_parm_decls_oldstyle): Load the
2897         parameter decls into the function's scope structure using bind.
2898         Warn here about function definitions in the wrong style.
2899         Adjust diagnostics.
2900         (store_parm_decls): Correct the determination of whether a
2901         function was defined with a prototype.
2902         (c_write_global_declarations): Operate on all file decls and on
2903         the external scope.  Split body of the loop to...
2904         (c_write_global_declarations_1): ... this new function, to avoid
2905         code duplication.
2906         (truly_local_externals, first_builtin_decl, last_builtin_decl)
2907         (make_scope, pop_scope, in_parm_level_p, set_block)
2908         (any_external_decl, record_external_decl, bind_label, getdecls)
2909         (link_hash_hash, link_hash_eq, merge_translation_unit_decls)
2910         (c_reset_state): Delete.
2911         (visible_builtins, c_override_global_bindings_to_false)
2912         (c_binding, I_SYMBOL_BINDING, I_SYMBOL_DECL, I_TAG_BINDING)
2913         (I_TAG_DECL, I_LABEL_BINDING, I_LABEL_DECL, file_scope)
2914         (external_scope, binding_freelist, bind, free_binding_and_advance)
2915         (push_file_scope, pop_file_scope): New.
2916         (pushtag, pushdecl_top_level, lookup_label, declare_label)
2917         (define_label, c_make_fname_decl, finish_decl)
2918         (mark_forward_parm_decls, build_compound_literal)
2919         (grokdeclarator, start_function, check_for_loop_decls)
2920         (identifier_global_value, record_builtin_type): Minor adjustments
2921         for new bindings structures.  Improve diagnostics and commentary.
2922         * c-objc-common.c (start_cdtor, finish_cdtor): Adjust calls to
2923         pushlevel/poplevel respectively.
2924         (c_objc_common_finish_file): Don't call merge_translation_unit_decls.
2925         * c-opts.c (c_common_parse_file): Remove spurious ATTRIBUTE_UNUSED.
2926         Warn about YYDEBUG not being defined only if -dy.  Remove no-longer-
2927         correct loop over multiple translation units; call fatal_error if
2928         requested to compile more than one file at once.  (This disables
2929         IMA temporarily - an up-front error being preferable to a crash.)
2930         * c-parse.in (pushlevel, poplevel rules): Rename push_scope, pop_scope.
2931         (all actions): Adjust calls to pushlevel/poplevel.
2932         (parsing_iso_function_signature): Delete.
2933         (extdef_1): Fold into extdef.
2934         (old_style_parm_decls_1): Fold into old_style_parm_decls.  Don't
2935         warn here about function definitions in the wrong style.
2936         (after_tyle_declarator, parm_declarator_starttypename)
2937         (parm_declarator_nostarttypename, notype_declarator): Remove
2938         commented-out productions.
2939         (parmlist_1, parmlist_2): Use make_node, not tree_cons, to create
2940         an empty TREE_LIST node.  Adjust calls to get_parm_info.
2941         (parmlist_2 : ELLIPSIS): Tag the arg-info block with error_mark_node
2942         to suppress -Wold-style-definition after this error.
2943         (c_parse_file): Don't clear the binding stack or call
2944         finish_fname_decls here.  Correct comment.
2945         * c-typeck.c (same_translation_unit_p): Export.
2946         (common_type): Use c_override_global_bindings_to_false, not
2947         pushlevel/poplevel/declare_parm_level.
2948         * c-lang.c: Override LANG_HOOKS_CLEAR_BINDING_STACK,
2949         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK,
2950         and LANG_HOOKS_GETDECLS with do-nothing stubs.
2951         * objc/objc-lang.c: Likewise.
2952         * objc/objc-act.c: Adjust all calls to pushlevel, poplevel,
2953         get_parm_info.
2954         (OBJC_VOID_AT_END): Delete; replace all uses
2955         with void_list_node.
2956         (generate_forward_declaration_to_string_table): Delete.
2957         * objc/objc-act.h (OCTI_STRG_DECL, UOBJC_STRINGS_decl): Delete.
2958
2959         * coverage.c (create_coverage): Don't pushdecl anything.
2960         * langhooks.c (lhd_clear_binding_stack): Call
2961         lang_hooks.decls.poplevel, not poplevel.
2962         * tree.c (list_length): If ENABLE_TREE_CHECKING, abort on a
2963         circular list rather than going into an infinite loop.
2964
2965 2004-03-23  Olivier Hainque  <hainque@act-europe.fr>
2966
2967         * optabs.c (expand_binop): When synthesizing double word rotates
2968         from single word shifts, use a new register target if the provided
2969         target is not a REG already.
2970
2971 2004-03-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2972
2973         * alias.c (get_alias_set): Add support for TYPE_REF_CAN_ALIAS_ALL.
2974         * c-common.c (handle_mode_attribute): Add extra arg to
2975         build_pointer_type_for_mode and build_reference_type_for_mode.
2976         * c-typeck.c (build_c_cast): Only look at TREE_CONSTANT_OVERFLOW
2977         for INTEGER_CST.
2978         * tree.c (build_pointer_type_for_mode): Add arg CAN_ALIAS_ALL.
2979         Chain pointers via TYPE_NEXT_PTR_TO.
2980         (build_reference_type_for_mode): Similarly.
2981         (build_type_no_quals): Add extra arg to build_pointer_type_for_mode
2982         and build_reference_type_for_mode.
2983         (tree_check4_failed): New function.
2984         * tree.h (TREE_CHECK4, PTR_OR_REF_CHECK): New macros.
2985         (TYPE_REF_CAN_ALIAS_ALL, TYPE_NEXT_PTR_TO, TYPE_NEXT_REF_TO): Likewise.
2986         (TREE_NO_UNSUED_WARNING, TREE_VIA_VIRTUAL, TREE_CONSTANT_OVERFLOW):
2987         Add check.
2988
2989 2004-03-23  Roger Sayle  <roger@eyesopen.com>
2990
2991         * fold-const.c (tree_expr_nonnegative_p): A&B is nonnegative when
2992         A is nonnegative or B is nonnegative.  Similarly A|B is nonnegative
2993         when both A and B are nonnegative.
2994         (tree_expr_nonzero_p): A|B is nonzero when A is nonzero or B is
2995         nonzero.
2996
2997 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
2998
2999         * fold-const.c (fold): Remove cases for INTEGER_CST, REAL_CST,
3000         VECTOR_CST, STRING_CST, COMPLEX_CST, and CONSTRUCTOR.
3001
3002 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
3003
3004         PR optimization/14669
3005         * fold-const.c (fold): Only unwiden integer comparisons for equality
3006         and inequality operators, or when the signedness doesn't change.
3007
3008 2004-03-23  Jakub Jelinek  <jakub@redhat.com>
3009
3010         * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
3011         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Set.
3012         * config/sparc/t-linux: New file.
3013
3014 2004-03-23  Richard Sandiford  <rsandifo@redhat.com>
3015
3016         * gcse.c (can_assign_to_reg_p): New function, split out from...
3017         (want_to_gcse_p): ...here.
3018         (compute_ld_motion_mems): Use can_assign_to_reg_p to validate
3019         the rhs of a store.
3020
3021 2004-03-22  Diego Novillo  <dnovillo@redhat.com>
3022
3023         * c-typeck.c (same_translation_unit_p): Fix pasto.
3024
3025 2004-03-22  David Edelsohn  <edelsohn@gnu.org>
3026
3027         * params.def (PARAM_MAX_SCHED_REGION_BLOCKS): New.
3028         (PARAM_MAX_SCHED_REGION_INSNS): New.
3029         * sched-rgn.c: Include params.h
3030         (MAX_RGN_BLOCKS): Delete.
3031         (MAX_RGN_INSNS): Delete.
3032         (too_large): Return bool.  Convert to PARAM_VALUE.
3033         * Makefile.in (sched-rgn.o): Depend on $(PARAMS_H).
3034         * doc/invoke.texi (param): Document max-sched-region-blocks and
3035         max-sched-region-insns.
3036
3037 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
3038
3039         * dwarf2out.c (is_subrange_type): Do not emit a subrange_type DIE
3040         for base types.
3041
3042 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
3043
3044         * dwarf2out.c (is_subrange_type): Minor code rework. No behavior
3045         change.
3046
3047 2004-03-22  Jakub Jelinek  <jakub@redhat.com>
3048
3049         PR c/14069
3050         * c-decl.c (finish_struct): Change type of incorrect flexible array
3051         field into error_mark_node.
3052
3053 2004-03-22  Andrew Pinski  <pinskia@physics.uc.edu>
3054
3055         PR target/14580
3056         * config/rs6000/rs6000.c (symbol_ref_operand): Reject symbols
3057         who are not local for Darwin PIC.
3058
3059 2004-03-22  Ulrich Weigand  <uweigand@de.ibm.com>
3060
3061         * regrename.c (regrename_optimize): Set regs_ever_live for all
3062         registers introduced as replacement.
3063
3064 2004-03-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
3065
3066         PR middle-end/14470
3067         * expr.c (mark_queue): New function.
3068         (emit_insns_enqueued_after_mark): New function replacing
3069         emit_queue.  Clear the body of emitted queued insns.
3070         (emit_queue): Call emit_insns_enqueued_after_mark.
3071         (store_expr): Mark the increment queue on entry.  Emit
3072         only the incrementations queued when expanding the source.
3073
3074 2004-03-22  Nathanael Nerode  <neroden@gcc.gnu.org>
3075
3076         * configure.ac: Allow --disable-coverage-flags (for the future benefit
3077         of top level bootstrap, and consistency).  Reindent.
3078         * configure: Regenerate.
3079
3080 2004-03-21  Kazu Hirata  <kazu@cs.umass.edu>
3081
3082         * bt-load.c, builtins.c, cfghooks.c, cfgrtl.c, gcse.c,
3083         ggc-page.c, integrate.c, var-tracking.c, web.c: Remove
3084         unnecessary casts.
3085
3086 2004-03-22  Danny Smith  <dannysmith@users.sourceforge.net>
3087
3088         PR target/14291
3089         * gcov-io.h (gcov_truncate): Define ftruncate as _chsize for
3090         __MINGW32__.
3091
3092 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
3093
3094         * config/s390/s390.md ("*doloop_si"): Change predicate for operand 2
3095         to nonimmediate_operand.
3096         ("*doloop_di"): Likewise.
3097
3098 2004-03-21  Alexandre Oliva  <aoliva@redhat.com>
3099
3100         * real.h (struct real_value): Use the same type for all
3101         bitfields.  Rename exp to uexp.
3102         (REAL_EXP, SET_REAL_EXP): New accessor macros for uexp.
3103         Adjust all uses of exp...
3104         * builtins.c: ... here, ...
3105         * emit-rtl.c: ... here, and ...
3106         * real.c: ... and here.
3107
3108 2004-03-21  Gabriel Dos Reis  <gdr@integrable-solutions.net>
3109
3110         * pretty-print.c (pp_base_maybe_space): New function.
3111         * pretty-print.h (pp_base_maybe_space): Declare.
3112         (pp_maybe_space): New macro.
3113
3114 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
3115
3116         * config/s390/s390.md ("addti3", "subti3"): New insns and splitters.
3117
3118 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
3119
3120         * expmed.c (choose_mult_variant): Pass MULT_COST as argument instead
3121         of using register multiplication cost.
3122         (expand_mult): Adapt choose_mult_variant call.
3123         (expand_mult_highpart): Call choose_mult_variant with WIDER_MODE
3124         of MODE; pass appropriate cost bound.  Adjust result when
3125         performing signed multiplication by a negative constant.
3126         Don't use intermediate modes larger than word_mode.
3127
3128 2004-03-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3129
3130         * alias.c (get_alias_set): Remove handling of PLACEHOLDER_EXPR.
3131         * emit-rtl.c (component_ref_for_mem_expr): Likewise.
3132         (set_mem_attributes_minus_bitpos): Call SUBSTITUTE_PLACEHOLDER_IN_EXPR.
3133         * explow.c (expr_size): Likewise.
3134         * expr.h (placeholder_list, find_placeholder): Deleted.
3135         * expr.c (store_constructor): Likewise.
3136         (get_inner_reference): Likewise.  Also don't call find_placeholder.
3137         (placeholder_list, find_placeholder): Deleted.
3138         (is_aligning_offset): Don't handle WITH_RECORD_EXPR, PLACEHOLDER_EXPR.
3139         (expand_expr_real, cases PLACEHOLDER_EXPR, WITH_RECORD_EXPR): Likewise.
3140         (highest_pow2_factor, case WITH_RECORD_EXPR): Remove.
3141         * dojump.c (do_jump, case WITH_RECORD_EXPR): Likewise.
3142         * dwarf2out.c (loc_descriptor_from_tree, case WITH_RECORD_EXPR):
3143         Likewise.
3144         * fold-const.c (invert_truthvalue, case WITH_RECORD_EXPR): Likewise.
3145         (extract_muldiv, case WITH_RECORD_EXPR): Likewise.
3146         * tree.c (expr_align, case WITH_RECORD_EXPR): Likewise.
3147         (contains_placeholder_p): Don't handle WITH_RECORD_EXPR.
3148         Clean up by using first_rtl_op.
3149         (substitute_in_expr): Use SUBSTITUTE_IN_EXPR for recursive call.
3150         (substitute_placeholder_in_expr): New function.
3151         * tree.def (WITH_RECORD_EXPR): Deleted.
3152         * tree.h (SUBSTITUTE_IN_EXPR, SUBSTITUTE_PLACEHOLDER_IN_EXPR): New.
3153         (substitute_placeholder_in_expr): New.
3154
3155 2004-03-21  Andrew Pinski  <pinskia@gcc.gnu.org>
3156
3157         * dojump.c (prefer_and_bit_test): Fix which part of
3158         the and_test is replaced.
3159
3160 2004-03-21  Joseph S. Myers  <jsm@polyomino.org.uk>
3161
3162         * frontends.texi: Add missing line.
3163
3164 2004-03-21  Zack Weinberg  <zack@codesourcery.com>
3165             Chris Devers  <cdevers@pobox.com>
3166             Joseph S. Myers  <jsm@polyomino.org.uk>
3167
3168         * doc/frontends.texi: Rewrite.
3169         * doc/gcc.texi: Update last modification date.
3170
3171 2004-03-21  Josef Zlomek  <zlomekj@suse.cz>
3172
3173         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Print the debug
3174         message before redirecting the edge.
3175
3176 2004-03-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3177
3178         * emit-rtl.c (set_mem_attributes_minus_bitpos): Set MEM_POINTER
3179         flag.
3180         * explow.c (force_not_mem): Set REG_POINTER flag according to
3181         MEM_POINTER one.
3182         * rtl.h (MEM_POINTER): New macro.
3183         (struct rtx_def): Use integrated for MEM_SCALAR_P and frame_related
3184         for MEM_POINTER.
3185
3186 2004-03-20  Roger Sayle  <roger@eyesopen.com>
3187
3188         PR target/13889
3189         * cse.c (fold_rtx): Avoid substituting constants into unary
3190         conversion operations.
3191
3192 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
3193
3194         * fold-const.c (fold): Replace "expr" with "t".
3195
3196 2004-03-20  Ian Lance Taylor  <ian@wasabisystems.com>
3197
3198         PR c/12373
3199         * c-typeck.c (tagged_types_tu_compatible_p): Don't use
3200         DECL_ORIGINAL_TYPE if there isn't one.
3201
3202 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
3203
3204         * fold-const.c (fold): Replace "final_type" with "type".
3205         Remove variable "final_type".
3206
3207 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
3208
3209         * fold-const.c (fold): Constify "type".
3210         Replace "TREE_TYPE (t)" with "type".
3211
3212 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
3213
3214         * bb-reorder.c, bt-load.c, c-decl.c, cfgcleanup.c, coverage.c,
3215         dwarf2asm.c, ifcvt.c, stor-layout.c, varasm.c: Replace calls
3216         via (*targetm.foo) () with targetm.foo ().
3217
3218 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
3219
3220         PR other/14630
3221         * doc/install.texi: Add info directory category and entry.
3222
3223 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
3224
3225         * fold-const.c (fold): Replace "t" with "tem" where it is used
3226         as a temporary variable.  Remove "orig_t" and all of its uses.
3227
3228 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
3229
3230         * fold-const.c (fold): Remove variable "invert".
3231         Move the handling of relational expressions that can be folded
3232         to a constant ...
3233         (fold_relational_const): ... here.
3234         (tree_expr_nonzero_p): New.
3235
3236 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
3237
3238         PR c/14635
3239         * builtins.def (nan, nanf, nanl, nans, nansf, nansl): Change to
3240         DEF_GCC_BUILTIN.
3241
3242 2004-03-20  Richard Sandiford  <rsandifo@redhat.com>
3243
3244         * Makefile.in (dojump.o): Depend on $(GGC_H) and dojump.h.
3245         (GTFILES): Add $(srcdir)/dojump.h.
3246         (gt-dojump.h): New dependency.
3247         * dojump.c (and_reg, and_test, shift_test): New static variables.
3248         (prefer_and_bit_test): New function.
3249         (do_jump): Use it to choose between (X & (1 << C)) and (X >> C) & 1.
3250
3251 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
3252
3253         * c-common.c, cfgcleanup.c, cgraphunit.c, c-pretty-print.c,
3254         expmed.c, ggc-common.c, jump.c, passes.c, recog.c, regmove.c,
3255         reorg.c, tree.h: Fix comment typos.
3256
3257 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
3258
3259         * alias.c, attribs.c, bt-load.c, builtins.c, c-common.c,
3260         c-decl.c, c-objc-common.c, c-typeck.c, calls.c, cfglayout.c,
3261         cse.c, dbxout.c, dwarf2out.c, except.c, final.c,
3262         haifa-sched.c, integrate.c, passes.c, rtlanal.c, sched-rgn.c,
3263         sched-vis.c, simplify-rtx.c, stor-layout.c, tree.c, varasm.c,
3264         vmsdbgout.c: Replace calls via (*targetm.foo) () with
3265         targetm.foo ().
3266
3267 2004-03-19  Ziemowit Laski  <zlaski@apple.com>
3268
3269         * config/rs6000/altivec.h (vec_dst, vec_dstst, vec_dststt,
3270         vec_dstt, vec_sld, vec_splat): Add prototypes, marked with
3271         always_inline attribute.
3272         * config/rs6000/rs6000.c (altivec_expand_dst_builtin):
3273         Treat expansion as completed even if literal argument is
3274         invalid (so that other expansions are not tried in vain).
3275
3276 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
3277
3278         * loop-doloop.c (add_test): Replace GEN_INT (0) with
3279         const0_rtx.
3280
3281 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
3282
3283         * fold-const.c (fold) <ABS_EXPR>: Move the handling of constants
3284         ...
3285         (fold_abs_const): ... here.
3286
3287 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3288
3289         * tree.h (TYPE_ARRAY_MAX_SIZE): Use type.maxval directly.
3290
3291 2004-03-19  Denis Chertykov  <denisc@overta.ru>
3292
3293         PR target/11520
3294         * config/avr/avr.md ("call_insn"): Handle explicit integer
3295         specially.
3296         (call_value_insn): Likewise.
3297
3298 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3299
3300         * tree.c (substitute_in_expr): Rewrite to simplify and be more generic.
3301
3302 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
3303
3304         * fold-const.c (negate_expr): Move the handling of constants
3305         ...
3306         (fold_negate_const): ... here.
3307
3308 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3309
3310         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): New macro and hook.
3311         * langhooks.h (struct lang_hooks_for_types): New field hash_types.
3312         * tree.c (debug_no_type_hash): Deleted.
3313         (type_hash_canon): Abort if passed a variant.
3314         Check lang_hooks.types.hash_types.
3315         (build_type_no_quals): Copy mode of POINTER_TYPE and REFERENCE_TYPE.
3316         (build_array_type): Remove unnecessary allocation of pointer type.
3317         (build_complex_type): Properly qualify resulting type.
3318
3319 2004-03-19  Paolo Bonzini  <bonzini@gnu.org>
3320
3321         * config/rs6000/rs6000.c (rs6000_init_builtins): Fix typo.
3322
3323 2004-03-19  Richard Sandiford  <rsandifo@redhat.com>
3324
3325         * expmed.c (choose_mult_variant, expand_mult_const): New, split from...
3326         (expand_mult): ...here.
3327         (extract_high_half): New, split out from expand_mult_highpart.
3328         (expand_highpart_optab): Likewise.  Don't clobber target prematurely.
3329         (expand_highpart): Evaluate the cost of a shift/add sequence,
3330         then see if any of the specialized optabs are cheaper.
3331
3332 2004-03-18  Ian Lance Taylor  <ian@wasabisystems.com>
3333
3334         * mklibgcc.in: Remove obsolete MAYBE_USE_COLLECT2.
3335
3336 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3337
3338         * convert.c (convert_to_real): Add more math builtins.
3339
3340 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3341
3342         * convert.c (convert_to_real): Reformat using switch stmt.
3343
3344 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
3345
3346         * c-common.c (pointer_int_sum): Do not complain about using
3347         pointers to pointers-to-members.
3348
3349 2004-03-18  Kazu Hirata  <kazu@cs.umass.edu>
3350
3351         * system.h (MD_ASM_CLOBBERS): Move to "Old target macros that
3352         have moved to the target hooks structure".
3353
3354 2004-03-18  James E Wilson  <wilson@specifixinc.com>
3355
3356         * config/mips/mips.md (type): Split move into arith and fmove.  Split
3357         hilo into mthilo and mfhilo.  Add trap.  Delete icmp.  Fix all uses.
3358         * config/mips/5400.md (ir_vr54_hilo, ir_vr54_arith, ir_vr54_fabs):
3359         Likewise.
3360         * config/mips/5500.md (ir_vr55_hilo, ir_vr55_arith, ir_vr55_fabs):
3361         Likewise.
3362         * config/mips/7000.md (rm7_int_other, rm7_mthilo, rm7_mfhilo,
3363         rm7_fp_quick): Likewise.
3364         * config/mips/9000.md (rm9k_int, rm9k_mfhilo, rm9k_mthilo,
3365         rm9k_fquick): Likewise.
3366         * config/mips/sr71k.md (ir_sr70_hilo, ir_sr70_arith, ir_sr70_fabs):
3367         Likewise.
3368         (ir_sr70_icmp): Delete.
3369
3370 2004-03-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3371
3372         * tree.h (TREE_CHECK2, TREE_CHECK3, TREE_CHECK5): New macros.
3373         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New decl.
3374         (FUNC_OR_METHOD_CHECK, SET_ARRAY_OR_VECTOR_CHECK): New macros.
3375         (REC_OR_UNION_CHECK, NUMERICAL_TYPE_CHECK): Likewise.
3376         (TYPE_VALUES, TYPE_DOMAIN, TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD):
3377         Protect with proper check.
3378         (TYPE_ARG_TYPES, TYPE_METHOD_BASETYPE, TYPE_OFFSET_BASETYPE): Likewise.
3379         (TYPE_MIN_VALUE, TYPE_MAX_VALUE): Likewise.
3380         * tree.c (type_hash_eq): Rewrite to access proper fields for each type.
3381         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New.
3382         * c-typeck.c (build_array_ref): Use TYPE_DOMAIN, not TYPE_VALUES.
3383         * dwarf2out.c (gen_enumeration_type_die): Use TYPE_VALUES,
3384         not TYPE_FIELDS.
3385         * stor-layout.c (set_sizetype): Use TYPE_ORIG_SIZE_TYPE.
3386
3387 2004-03-18  Mostafa Hagog  <mustafa@il.ibm.com>
3388
3389         * gcse.c (eliminate_partially_redundant_loads): Reject change if
3390         dest is set between beginning and current insn.
3391
3392 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
3393
3394         * c-decl.c (grokdeclarator): Do not complain about redeclaring
3395         visible "static" identifiers "extern" in a local scope.
3396         * dwarf2out.c (loc_descriptor_from_tree): Handle pre- and
3397         post-increments/decrements.
3398
3399 2004-03-18  Bob Wilson  <bob.wilson@acm.org>
3400
3401         * config/xtensa/xtensa.c (current_function_arg_words): Delete.
3402         (xtensa_builtin_saveregs): Use current_function_args_info.arg_words.
3403         (xtensa_va_start): Remove assignment to current_function_arg_words.
3404
3405 2004-03-18  Richard Sandiford  <rsandifo@redhat.com>
3406
3407         * alias.c (record_set): Detect the case where a register is assigned
3408         a new value that has the same base term as the old one.
3409
3410 2004-03-18  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3411
3412         * doloop.c: Removed.
3413         * loop-doloop.c: New file.
3414         * Makefile.in (doloop.o): Remove.
3415         (loop-doloop.o): New.
3416         * cfgloop.h (get_loop_level, doloop_optimize_loops): Declare.
3417         * cfgloopanal.c (get_loop_level): New function.
3418         * loop-iv.c (iv_number_of_iterations): Handle case when loop
3419         is leaved immediatelly.
3420         * loop.c (strength_reduce): Do not call doloop optimization.
3421         * loop.h (LOOP_BCT): Removed.
3422         * passes.c (rest_of_handle_loop_optimize): Do not use LOOP_BCT.
3423         (rest_of_handle_loop2): Call doloop_optimize_loops.
3424         (rest_of_compilation): Test for optimizations moved to
3425         rest_of_handle_loop2.
3426
3427 2004-03-17  Fariborz Jahanian <fjahanian@apple.com>
3428
3429         * config/rs6000/rs6000.c (rs6000_stack_info): correct reg_size
3430         for mixed mode.
3431         (rs6000_emit_prologue): Ditto.
3432         (rs6000_emit_epilogue): Ditto.
3433         * config/rs6000/rs6000.h: Definition of DWARF_CIE_DATA_ALIGNMENT
3434         macro for mixed mode.
3435
3436 2004-03-18  Jan Hubicka  <jh@suse.cz>
3437
3438         * predict.c (propagate_freq): Compute correctly frequency of
3439         EXIT_BLOCK.
3440
3441 2004-03-17  Eric Christopher  <echristo@redhat.com>
3442
3443         * builtins.c (apply_args_size): Use reg_raw_mode.
3444         (apply_result_size): Ditto.
3445
3446 2004-03-17  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
3447
3448         PR target/14620
3449         * config/rtems.h: Add STD_LIB_SPEC and LIB_SPEC.
3450
3451 2004-03-17  Jakub Jelinek  <jakub@redhat.com>
3452
3453         * config/rs6000/t-linux64 (bispecs): Don't add -mlong-double-128 for
3454         32-bit builds when defaulting to 32-bit.
3455
3456 2004-03-17  Jan Hubicka  <jh@suse.cz>
3457
3458         * cfgrtl.c (rtl_create_basic_block): Pre-allocate basic_block_info
3459         array.
3460
3461 2004-03-17  James E Wilson  <wilson@specifixinc.com>
3462
3463         * config/mips/mips.md (zero_extendsidi2): Add length attribute.
3464         (hazard_nop): Change type to nop.
3465         (type): Split arith into arith, shift, slt, clz.  Delete darith.
3466         Fix all uses.  Change arith to multi if more than one insn emitted.
3467         * config/mips/5400.md (ir_vr54_arith): Likewise.
3468         * config/mips/5500.md (ir_vr55_arith): Likewise.
3469         * config/mips/7000.md (rm7_int_other): Likewise.
3470         * config/mips/9000.md (rm9k_int): Likewise.
3471         * config/mips/sr71k.md (ir_sr70_arith): Likewise.
3472
3473 2004-03-17  Joel Brobecker  <brobecker@gnat.com>
3474
3475         * dwarf2out.c (subrange_type_die): Define new variable "subtype"
3476         to hold the subtype tree instead of recomputing it several times.
3477
3478 2004-03-17  Kazu Hirata  <kazu@cs.umass.edu>
3479
3480         * config/mn10300/mn10300.c (notice_update_cc): Don't handle
3481         CC_INVERT.
3482         * config/mn10300/mn10300.md (cc): Remove "invert".
3483
3484 2004-03-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3485
3486         * builtins.c (integer_valued_real_p): Add builtin rint.
3487         (fold_builtin): Likewise.
3488         * convert.c (convert_to_real): Likewise.
3489
3490         * convert.c (convert_to_real): Fix typos in `long double'
3491         builtins.
3492
3493 2004-03-16  Mark Mitchell  <mark@codesourcery.com>
3494
3495         PR c++/14481
3496         * fold-const.c (fold): Set TREE_NO_UNUSED_WARNING on implicitly
3497         generated COMPOUND_EXPRs.
3498
3499 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
3500
3501         * config/h8300/t-rtems (h8300-*-rtems*): New.
3502
3503 2004-03-16  Eric Christopher  <echristo@redhat.com>
3504
3505         * doc/cppopts.texi(fwide-exec-charset): Fix typo.
3506
3507 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
3508
3509         * config/i386/i386-protos.h: Add a prototype for
3510         ix86_reverse_condition.
3511         * config/i386/i386.c (ix86_reverse_condition): New.
3512         * config/i386/i386.h (REVERSE_CONDITION): Use
3513         ix86_reverse_condition.
3514         * config/i386/i386.md: Use ix86_reverse_condition instead of
3515         REVERSE_CONDITION.
3516
3517 2004-03-16  J. Brobecker  <brobecker@gnat.com>
3518
3519         * dwarf2out.c (loc_descriptor_from_tree): Add handling for MIN_EXPR.
3520
3521 2004-03-16  Nathanael Nerode  <neroden@gcc.gnu.org>
3522
3523         PR bootstrap/12974
3524         * Makefile.in: Pass $(INCLUDES) down to libgcc.mk explicitly.
3525
3526 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
3527
3528         * c-common.c (c_common_type_for_mode): Build vector types on
3529         demand.
3530         (handle_mode_attribute): Deprecate using the mode attribute
3531         to create vector types.  Fix indentation.
3532         (vector_type_node_list): Remove.
3533         (handle_vector_size_attribute): Create vector types on demand.
3534         Strip a NON_LVALUE_EXPR from the attribute if there is one.
3535         * c-typeck.c (comptypes): Make vector types compatible if they
3536         have the same underlying mode.
3537         (convert_for_assignment): Use comptypes to convert between
3538         vector types.
3539         * tree.c (build_common_tree_nodes_2): Do not create vector types.
3540         * config/arm/arm.c (arm_init_iwmmxt_builtins): Create necessary
3541         vector types.
3542         * tree.h: Remove vector types.
3543         * config/i386/i386.c (i386_init_mmx_sse_builtins): Likewise.
3544         * config/rs6000/rs6000.c (rs6000_init_builtins): Likewise.
3545         (V16QI_type_node, V2SI_type_node, V2SF_type_node, V4HI_type_node,
3546         V4SI_type_node, V4SF_type_node, V8HI_type_node): New globals.
3547         * doc/extend.texi (Vector Types): Document how to use the
3548         vector_size attribute to create vectors, rather than mode.
3549
3550         * config/arm/mmintrin.h: Use vector_size attribute, not mode.
3551         * config/i386/emmintrin.h: Likewise.
3552         * config/i386/mmintrin.h: Likewise.
3553         * config/i386/xmmintrin.h: Likewise.
3554         * config/sh/ushmedia.h: Likewise.
3555
3556 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
3557
3558         * config/freebsd-spec.h, config/arc/arc-protos.h,
3559         config/arm/aout.h, config/arm/elf.h, config/arm/freebsd.h,
3560         config/arm/linux-gas.h, config/arm/semi.h,
3561         config/cris/cris-protos.h, config/i386/xm-djgpp.h,
3562         config/ia64/freebsd.h, config/mips/7000.md,
3563         config/mips/9000.md, config/ns32k/ns32k-protos.h,
3564         config/sparc/pbd.h: Update copyright.
3565
3566 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
3567
3568         PR target/14577
3569         * config.gcc: Switch sh-*-rtems* to ELF.  Add sh-*-rtemscoff.
3570
3571 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
3572
3573         * combine.c (combine_simplify_rtx): Remove the "last"
3574         parameter and its documentation.  Adjust recursive calls.
3575         (simplify_logical): Always perform the only simplification
3576         controlled by "last", if the simplified expression is
3577         actually different.
3578         (try_combine): Do not pass the "last" parameter to
3579         combine_simplify_rtx.
3580
3581 2004-03-16  Richard Sandiford  <rsandifo@redhat.com>
3582
3583         PR target/14599
3584         * config/mips/mips.md (UNSPEC_GP): New constant.
3585         * config/mips/mips.c (CONST_GP_P): Expect the CONST to contain
3586         an UNSPEC instead of (reg $gp).
3587         (mips16_gp_pseudo_reg): Change accordingly.
3588         (print_operand): Print $gp directly when handling CONST_GP_P.
3589
3590 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
3591
3592         * config.gcc, config/m68k/linux.h: Implement with-cpu for m68k-linux.
3593         * longlong.h: Make code 68060 clean when compiling for m68060.
3594
3595 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
3596
3597         * config/m68k/m68k.md: Fix constraints for bitfield instructions.
3598         * doc/md.texi: Clarify description of "i" constraint.
3599
3600 2004-03-15  James E Wilson  <wilson@specifixinc.com>
3601
3602         * config/mips/mips.md (type): Split load into load, fpload, fpidxload.
3603         Split store into store, fpstore, fpidxstore.  Fix all uses.
3604         * config/mips/5400.md (ir_vr54_load, ir_vr54_store, ir_vr54_fstore):
3605         Likewise.
3606         * config/mips/5500.md (ir_vr55_load, i5_vr55_store): Likewise.
3607         * config/mips/7000.md (rm7_ld, rm7_st): Likewise.
3608         * config/mips/9000.md (rm9k_load, rm9k_store): Likewise.
3609         * config/mips/sr71k.md (ir_sr70_load, ir_sr70_store, ir_sr70_fload,
3610         ir_sr70_fstore): Likewise.
3611
3612 2004-03-15  Richard Henderson  <rth@redhat.com>
3613
3614         PR middle-end/14535
3615         * except.c (collect_one_action_chain): Record action for cleanup
3616         outer of exception spec.
3617
3618 2004-03-15  Ian Lance Taylor  <ian@wasabisystems.com>
3619
3620         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
3621         Fix the check for abort and only do the mmap if we can.
3622
3623 2004-03-15  Eric Botcazou  <ebotcazou@act-europe.fr>
3624
3625         * config/sparc/sparc.h: Rework comments about the code model
3626         in 64-bit environment and the mode 'Pmode'.
3627         * doc/invoke.texi (SPARC options): Rework description of the
3628         different code models supported in 64-bit environment.
3629
3630 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
3631
3632         * defaults.h (REVERSIBLE_CC_MODE): Define.
3633         * jump.c (reversed_comparison_code_parts): Don't check if
3634         REVERSIBLE_CC_MODE is defined.
3635
3636 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
3637
3638         * c-incpath.c, c-incpath.h, c-pch.c, c.opt, cppexp.c,
3639         et-forest.h, genattr.c, ggc-none.c, hosthooks-def.h,
3640         hosthooks.h, params.h, ra-colorize.c, web.c,
3641         config/darwin-c.c, config/alpha/freebsd.h, config/arm/pe.c,
3642         config/avr/avr-protos.h, config/avr/avr.md,
3643         config/fr30/fr30-protos.h, config/fr30/fr30.md,
3644         config/h8300/fixunssfsi.c, config/i386/darwin.h,
3645         config/i386/freebsd.h, config/i386/freebsd64.h,
3646         config/ia64/hpux.h, config/ia64/unwind-ia64.c,
3647         config/ip2k/libgcc.S, config/m32r/xm-m32r.h,
3648         config/mmix/mmix-modes.def, config/ns32k/netbsd.h,
3649         config/ns32k/ns32k.md, config/pa/pa64-hpux.h,
3650         config/pa/pa64-regs.h, config/rs6000/aix41.h,
3651         config/rs6000/aix43.h, config/rs6000/host-darwin.c,
3652         config/sparc/aout.h, config/sparc/freebsd.h,
3653         config/sparc/litecoff.h, config/vax/vax-protos.h,
3654         doc/hostconfig.texi, doc/include/gcc-common.texi: Update
3655         copyright.
3656
3657 2004-03-15  Paul Brook  <paul@codesourcery.com>
3658
3659         * config/arm/arm.c (thumb_expand_prologue): Tie prologue insns to fp.
3660
3661 2004-03-15  Gabriel Dos Reis  <gdr@integrable-solutions.net>
3662
3663         * c-pretty-print.c (pp_c_semicolon): Fix formatting.
3664         (pp_c_cv_qualifier): Document.
3665         (pp_c_space_for_pointer_operator): Likewise.
3666         (pp_c_integer_constant): Likewise.
3667         (pp_c_identifier): Likewise.
3668         (pp_c_init_declarator): Don't print function body.
3669
3670 2004-03-14  Joseph S. Myers  <jsm@polyomino.org.uk>
3671
3672         * doc/contrib.texi, doc/extend.texi, doc/gcov.texi,
3673         doc/install.texi, doc/invoke.texi, doc/makefile.texi,
3674         doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi: Capitalize
3675         "gcc", "g++" and "g77" or mark up with appropriate markup.  Adjust
3676         wording and grammar.
3677
3678 2004-03-14  Roger Sayle  <roger@eyesopen.com>
3679
3680         * alias.c (get_alias_set): Replace calls via (*lang_hooks.foo) ()
3681         with lang_hooks.foo ().
3682         * builtins.c (expand_builtin_va_arg): Likewise.
3683         * c-common.c (fname_as_string, c_common_truthvalue_conversion,
3684         c_common_type_for_mode, c_common_nodes_and_builtins,
3685         handle_mode_attribute, handle_vector_size_attribute): Likewise.
3686         * c-convert.c (convert): Likewise.
3687         * c-format.c (check_format_types): Likewise.
3688         * c-objc-common.c (c_tree_printer): Likewise.
3689         * c-typeck.c (build_unary_op, build_conditional_expr,
3690         build_binary_op): Likewise.
3691         * calls.c (try_to_integrate, expand_call,
3692         emit_library_call_value_1): Likewise.
3693         * cgraph.c (cgraph_node_name, cgraph_function_possibly_inlined_p):
3694         Likewise.
3695         * cgraphunit.c (record_call_1, cgraph_analyze_function,
3696         cgraph_expand_function): Likewise.
3697         * convert.c (convert_to_pointer, convert_to_integer): Likewise.
3698         * coverage.c (build_fn_info_type, build_ctr_info_type,
3699         build_gcov_info, create_coverage): Likewise.
3700         * dbxout.c (dbxout_init): Likewise.
3701         * diagnostic.c (diagnostic_report_current_function): Likewise.
3702         * dojump.c (do_jump): Likewise.
3703         * dwarf2out.c (dwarf2_name): Likewise.
3704         * except.c (init_eh): Likewise.
3705         * explow.c (expr_size, int_expr_size): Likewise.
3706         * expmed.c (make_tree, const_mult_add_overflow_p, expand_mult_add):
3707         Likewise.
3708         * expr.c (store_expr, store_constructor, safe_from_p,
3709         expand_expr_real, do_store_flag, try_casesi): Likewise.
3710         * function.c (push_function_context_to, pop_function_context_from,
3711         free_after_parsing, assign_stack_local_1, assign_stack_temp_for_type,
3712         put_var_into_stack, allocate_struct_function, current_function_name):
3713         Likewise.
3714         * integrate.c (copy_decl_for_inlining, expand_inline_function):
3715         Likewise.
3716         * langhooks.c (lhd_clear_binding_stack, write_global_declarations,
3717         lhd_print_error_function): Likewise.
3718         * opts.c (handle_option, decode_options): Likewise.
3719         * passes.c (open_dump_file): Likewise.
3720         * print-tree.c (print_node): Likewise.
3721         * stmt.c (expand_fixup, fixup_gotos, expand_asm_operands,
3722         expand_decl_cleanup, emit_case_nodes): Likewise.
3723         * stor-layout.c (variable_size): Likewise.
3724         * toplev.c (announce_function, wrapup_global_declarations,
3725         check_global_declarations, compile_file, default_tree_printer,
3726         process_options, lang_dependent_init, finalize): Likewise.
3727         * tree-dump.c (dequeue_and_dump): Likewise.
3728         * tree-inline.c (remap_decl, remap_block, copy_body_r,
3729         initialize_inlined_parameters, declare_return_variable,
3730         inlinable_function_p, expand_call_inline, optimize_inline_calls,
3731         walk_tree, copy_tree_r): Likewise.
3732         * tree-optimize.c (tree_rest_of_compilation): Likewise.
3733         * tree.c (decl_assembler_name, tree_size, size_in_bytes, staticp,
3734         unsafe_for_reeval, get_unwidened, get_narrower, get_callee_fndecl,
3735         variably_modified_type_p, dump_tree_statistics): Likewise.
3736         * varasm.c (assemble_variable, compare_constant, copy_constant,
3737         force_const_mem, compute_reloc_for_constant, output_constant,
3738         output_addressed_constants, initializer_constant_valid_p): Likewise.
3739
3740 2004-03-14  Kelley Cook  <kcook@gcc.gnu.org>
3741
3742         * doc/install.texi: Make autoconf 2.13 the exception, not the rule.
3743
3744 2004-03-14  Andreas Tobler  <a.tobler@schweiz.ch>
3745
3746         * doc/install.texi: Reflect autoconf and automake version for
3747         libffi. Update autoconf version to 2.59.
3748
3749 2004-03-13  Roger Sayle  <roger@eyesopen.com>
3750
3751         * fold-const.c (negate_expr, operand_equal_for_comparison_p,
3752         optimize_bit_field_compare, decode_field_reference, all_ones_mask_p,
3753         make_range, build_range_check, fold_range_test, unextend,
3754         constant_boolean_node, fold_binary_op_with_conditional_arg,
3755         fold_truthop, fold_mathfn_compare, fold_inf_compare,
3756         fold_single_bit_test, fold): Replace calls via (*lang_hooks.foo) ()
3757         with lang_hooks.foo ().
3758
3759 2004-03-14  Richard Earnshaw  <rearnsha@arm.com>
3760
3761         * arm.h (EXTRA_CONSTRAINT_STR_ARM): Update comment.
3762
3763 2004-03-13  Dara Hazeghi  <dhazeghi@yahoo.com>
3764
3765         * doc/install.texi: Note status of -fnew-ra.
3766
3767 2004-03-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
3768
3769         PR middle-end/14470
3770         * expr.c (store_expr): Call emit_queue before generating the move
3771         from the temporary to the original target.  Protect the temporary
3772         from emit_queue.
3773
3774 2004-03-13  Jakub Jelinek  <jakub@redhat.com>
3775
3776         PR target/14533
3777         * config/s390/s390.c (legitimize_pic_address): Don't abort on UNSPEC
3778         other than UNSPEC_GOTOFF.
3779
3780 2004-03-13  Richard Earnshaw  <rearnsha@arm.com>
3781
3782         * arm.c (arm_legitimate_address_p): New argument, OUTER.  Pass through
3783         to arm_legitimate_index_p.  Update all callers with SET as default
3784         value.
3785         (arm_legitimate_index_p): New argument, OUTER.  Restrict the index
3786         range if OUTER is a sign-extend operation on QImode.  Correctly
3787         reject shift operations on sign-extended QImode addresses.
3788         (bad_signed_byte_operand): Delete.
3789         (arm_extendqisi_mem_op): New function.
3790         * arm.h (EXTRA_CONSTRAINT_ARM): Delete.  Replace with...
3791         (EXTRA_CONSTRAINT_STR_ARM): ... this.  Handle extended address
3792         constraints.
3793         (CONSTRAINT_LEN): New.
3794         (EXTRA_CONSTRAINT): Delete.  Replace with...
3795         (EXTRA_CONSTRAINT_STR): ... this.
3796         (PREDICATE_CODES): Remove bad_signed_byte_operand.
3797         * arm.md (extendqihi_insn): Use new constraint Uq.  Rework.  Length
3798         is now always default.
3799         (define_splits for bad sign-extend loads): Delete.
3800         (arm_extendqisi, arm_extendqisi_v5): Likewise.
3801         * arm/vfp.md (arm_movsi_vfp, arm_movdi_vfp, movsf_vfp, movdf_vfp):
3802         Rework 'U' constraint to 'Uv'.
3803         * arm-protos.h: Remove bad_signed_byte_operand.  Add
3804         arm_extendqisi_mem_op.
3805         * doc/md.texi (ARM constraints): Rename VFP constraint (now Uv).
3806         Add Uq constraint.
3807
3808 2004-03-13  Alan Modra  <amodra@bigpond.net.au>
3809
3810         * config/rs6000/rs6000.c (rs6000_va_arg): Replace SPLIT_COMPLEX_ARGS
3811         with targetm version.
3812
3813         PR target/14567
3814         * config/rs6000/rs6000.h (UNITS_PER_ARG, RS6000_ARG_SIZE): Delete.
3815         (HARD_REGNO_MODE_OK): Disallow TFmode for fp31.
3816         * config/rs6000/rs6000.c (rs6000_arg_size): New function.
3817         Update all users of RS6000_ARG_SIZE.
3818         (function_arg_advance): Count fregno using mode size.
3819         (function_arg): Handle long double split over regs and memory.
3820         (function_arg_partial_nregs): Likewise.
3821         (rs6000_va_arg): Repackage complex args.
3822
3823 2004-03-13  Dean Ferreyra <dferreyra@igc.org>
3824
3825         PR target/14047
3826         * config/avr/avr.c (avr_progmem_p): Add "attributes" parameter.
3827         (avr_insert_attributes): Pass "attributes" to avr_progmem_p.
3828         * config/avr/avr-protos.h (avr_progmem_p): Change prototype.
3829
3830 2004-03-12  Jakub Jelinek  <jakub@redhat.com>
3831
3832         * config/rs6000/rs6000-protos.h (rs6000_output_dwarf_dtprel): Add
3833         prototype.
3834         * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): New.
3835         * config/rs6000/rs6000.h (ASM_OUTPUT_DWARF_DTPREL): Define.
3836
3837 2003-03-12  Andrew Pinski  <apinski@apple.com>
3838
3839         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
3840         Use ret instead of result. Use addr instead of base.
3841
3842 2004-03-12  David Edelsohn  <edelsohn@gnu.org>
3843
3844         * doc/install.texi (*-ibm-aix*): Document assembler and achiver
3845         fixes required by libstdc++ and update installation instructions
3846         for libstdc++.a.
3847
3848 2004-03-12  Danny Smith  <dannysmith@users.sourceforge.net>
3849
3850         * config/i386/winnt.c (i386_pe_strip_name_encoding_full): Strip
3851         leading '@' on fastcall symbols before stripping suffix.
3852
3853 2004-03-12  Roger Sayle  <roger@eyesopen.com>
3854
3855         * combine.c (unmentioned_reg_p): New function to check whether an
3856         expression is a "specialization" of another, i.e. that there are
3857         no registers or memory references mentioned in the first that don't
3858         appear in the second.
3859         (unmentioned_reg_p_1): New helper subroutine of unmentioned_reg_p.
3860         (combine_instructions): Also try combining instructions using the
3861         REG_EQUAL note from a preceding log-linked instruction.
3862
3863 2004-03-12  Roger Sayle  <roger@eyesopen.com>
3864
3865         * config/i386/i386.c (ix86_split_ashrdi): Optimize shift by 63.
3866
3867 2004-03-12  Matt Austern  <austern@apple.com>
3868
3869         * target.h (struct gcc_target): New target hook, unwind_label.
3870         * target-def.h (TARGET_ASM_EMIT_UNWIND_LABEL): New hook.
3871         * output.h (default_emit_unwind_label): New function.
3872         * default.h (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): New macro.
3873         (TARGET_USES_WEAK_UNWIND_INFO): New target macro.
3874         (TARGET_SUPPORTS_HIDDEN): New target macro.
3875         * dwarf2out.c (struct dw_fde_struct): Add field for function decl
3876         that corresponds to this FDE.
3877         (FRAME_BEGIN_LABEL): Allow target to override default label.
3878         (output_call_frame_info): If FDEs are linknonce, then use extra
3879         indirection for FDE encoding, output a label for each FDE, and
3880         output an empty label for each function without an FDE.
3881         (dwarf2out_begin_prologue): Set up decl field when creating an FDE.
3882         * varasm.c (globalize_decl): Call ASM_MAKE_LABEL_LINKONCE for
3883         decls with DECL_ONE_ONLY set, if that macro is defined.
3884         (make_decl_one_only): Don't use DECL_COMMON if we're compiling
3885         for a SUPPORTS_ONE_ONLY target.
3886         * config/darwin-protos.h (darwin_unique_section): Declare.
3887         (darwin_asm_named_section): Likewise.
3888         (darwin_section_type_flags): Likewise.
3889         (darwin_non_lazy_pcrel): Likewise.
3890         (darwin_emit_unwind_label): Likewise.
3891         (darwin_make_decl_one_only): Likewise.
3892         * config/darwin.c (machopic_finish): Get rid of tweak that
3893         eliminate stubs for symbols that are defined.
3894         (darwin_encode_section_info): Don't treat weak functions as defined.
3895         (darwin_make_decl_one_only): Define.
3896         (darwin_asm_named_section): Likewise.
3897         (darwin_section_type_flags): Likewise.
3898         (darwin_unique_section): Likewise.
3899         (darwin_emit_unwind_label): Likewise.
3900         (darwin_non_lazy_pcrel): Likewise.
3901         (darwin_asm_output_dwarf_delta): Difference between two labels is
3902         local only if both labels are local.
3903         * config/darwin.h (MAKE_DECL_ONE_ONLY): Define.
3904         (ASM_MAKE_LABEL_LINKONCE): Likewise.
3905         (TARGET_SUPPORTS_HIDDEN): Likewise.
3906         (TARGET_USES_WEAK_UNWIND_INFO): Likewise.
3907         (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): Likewise.
3908         (FRAME_BEGIN_LABEL): Likewise.
3909         (ASM_DECLARE_OBJECT_NAME): Make references to weak symbols indirect.
3910         (ASM_DECLARE_FUNCTION_NAME): Likewise.
3911         (darwin_eh_frame_section): Give __eh_frame section the coalesced flag.
3912         (TARGET_ASM_UNIQUE_SECTION): Define.
3913         (EH_FRAME_SECTION_NAME): Define.
3914         (EH_FRAME_SECTION_ATTR): Likewise.
3915         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
3916         (TARGET_ASM_NAMED_SECTION): Likewise.
3917         (TARGET_SECTION_TYPE_FLAGS): Likewise.
3918         * doc/tm.texi: Document TARGET_USES_WEAK_UNWIND_INFO,
3919         TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, TARGET_SUPPORTS_HIDDEN,
3920         TARGET_ASM_EMIT_UNWIND_LABEL.
3921
3922 2004-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3923
3924         * builtins.c (expand_builtin_mathfn): Add pow10* to the
3925         existing exp10* case.
3926         (expand_builtin): Likewise.
3927
3928 2004-03-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
3929
3930         * doc/tm.texi (registers) <Values in Registers>: Add
3931         entry for REGMODE_NATURAL_SIZE.
3932
3933 2004-03-12  Richard Henderson  <rth@redhat.com>
3934
3935         PR target/14547
3936         * target.h (struct gcc_target): Move calls substructure before
3937         booleans.  Add split_complex_arg.
3938         * function.c (assign_parms, split_complex_args): Use it.
3939         * calls.c (expand_call): Likewise.
3940         (split_complex_values): Likewise.  Check for splittable types
3941         before allocating memory.
3942         (split_complex_types): Likewise.
3943         * system.h (SPLIT_COMPLEX_ARGS): Poison.
3944         * expr.h (SPLIT_COMPLEX_ARGS): Remove.
3945         * target-def.h (TARGET_SPLIT_COMPLEX_ARG): New.
3946         * config/alpha/alpha.c (alpha_split_complex_arg): New.
3947         (TARGET_SPLIT_COMPLEX_ARG): New.
3948         * config/alpha/alpha.h (SPLIT_COMPLEX_ARGS): Remove.
3949         * config/rs6000/rs6000.c (TARGET_SPLIT_COMPLEX_ARG): New.
3950         (rs6000_override_options): Zap it for non-AIX.
3951         (rs6000_function_value): Use targetm.calls.split_complex_arg.
3952         * config/rs6000/rs6000.h (SPLIT_COMPLEX_ARGS): Remove.
3953         * config/xtensa/xtensa.c (TARGET_SPLIT_COMPLEX_ARG): New.
3954         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Remove.
3955         * doc/tm.texi (TARGET_SPLIT_COMPLEX_ARG): Modify from old
3956         SPLIT_COMPLEX_ARGS entry.
3957
3958 2004-03-11  Richard Henderson  <rth@redhat.com>
3959
3960         * config/alpha/alpha.c (xfloating_ops, vax_cvt_ops): New.
3961         (alpha_lookup_xfloating_lib_func): Use them, return rtx.
3962         (alpha_emit_xfloating_arith): Update to match.
3963         (alpha_emit_xfloating_compare): Likewise.
3964         (alpha_emit_xfloating_cvt): Likewise.
3965         (alpha_emit_xfloating_libcall): Take already built symbol,
3966         mark call const.
3967         * config/alpha/alpha.md (extendsftf2, extenddftf2): Take
3968         op1 in a register.
3969
3970 2004-03-11  Richard Henderson  <rth@redhat.com>
3971
3972         PR target/14539
3973         * config/alpha/alpha.h (STACK_BOUNDARY): Set to 128.
3974
3975         * simplify-rtx.c (simplify_relational_operation): Fix typo.
3976
3977 2004-03-11  Richard Henderson  <rth@redhat.com>
3978
3979         PR middle-end/14477
3980         * except.c (remove_unreachable_regions): Look thru CALL_PLACEHOLDER.
3981
3982 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
3983
3984         PR target/14262
3985         * calls.c (load_register_parameters): If BLOCK_REG_PADDING is not
3986         defined, pass small BLKmode values in registers in the low-order part.
3987
3988 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
3989
3990         * combine.c (if_then_else_cond): Check for NULL return value of
3991         simplify_gen_subreg.
3992
3993 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
3994
3995         PR target/14496
3996         * config/mips/mips.h (UNITS_PER_FPVALUE): Fix value for
3997         TARGET_SINGLE_FLOAT.
3998
3999 2004-03-11  Steve Ellcey  <sje@cup.hp.com>
4000
4001         * config/ia64/hpux.h (TARGET_INIT_LIBFUNCS): Add undef.
4002         * config/ia64/ia64.h (TARGET_INIT_LIBFUNCS): Add define.
4003         * config/ia64/ia64.c (ia64_init_libfuncs): New.
4004         (ia64_hpux_init_libfuncs): Add call to ia64_init_libfuncs.
4005
4006 2004-03-11  Roger Sayle  <roger@eyesopen.com>
4007
4008         * fold-const.c (negate_expr_p) <RSHIFT_EXPR>: We can optimize
4009         -((int)X>>C) where C is an integer constant one bit less than the
4010         size of X into (unsigned)X>>C.  Similarly for unsigned->signed.
4011         (negate_expr) <RSHIFT_EXPR>: Implement the above transformations.
4012
4013         * simplify-rtx.c (simplify_unary_operation): Also implement the
4014         above transformations at the RTL level.
4015
4016 2004-03-11  Alan Modra  <amodra@bigpond.net.au>
4017
4018         * real.c (encode_ibm_extended): Do round low word.
4019
4020 2004-03-11  Ben Elliston  <bje@wasabisystems.com>
4021
4022         * config/arm/arm.md (is_xscale): Comment this attribute and move
4023         it a bit further up in the file, closer to related attributes.
4024
4025 2004-03-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
4026
4027         * config/host-solaris.c (sol_gt_pch_use_address): Add
4028         missing terminating marker to comment.
4029
4030 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
4031
4032         * config/mips/mips.md: Use move_operand in splitters for 64-bit moves.
4033         (movdi, movsi, movhi, movqi, movsf, movdf): Remove predicates.
4034         (*movdi_32bit_mips16, *movsi_mips16, *movhi_mips16, *movqi_mips16)
4035         (*movsf_mips16, *movdf_mips16):  Name unnamed patterns.  Use
4036         move_operand as source predicate in all cases.
4037         (*movdi_32bit): Renamed from movdi_internal.  Remove 'F' constraint.
4038         Test reg_or_0_operand.  Use move_operand as source predicate.
4039         (*movdi_64bit): Renamed from movdi_internal2.  Test reg_or_0_operand.
4040         (*movdi_64bit_mips16): Renamed from movdi_internal2_mips16.
4041         (*movsi_internal): Renamed from movsi_internal.  Test reg_or_0_operand.
4042         (movhi, movqi, movsf, movdf): Use mips_legitimize_move.
4043         (*movhi_internal): Renamed from movhi_internal.  Test reg_or_0_operand.
4044         Use move_operand as source predicate.  Remove 'K' constraint.
4045         (*movqi_internal): Likewise movqi_internal.
4046         (*movsf_hardfloat): Renamed from movsf_internal1.  Test
4047         reg_or_0_operand.  Use move_operand as source predicate.
4048         (*movsf_softfloat): Likewise movsf_internal2.
4049         (*movdf_hardfloat_64bit): Likewise movsf_internal1a.
4050         (*movdf_hardfloat_32bit): Likewise movsf_internal1b.
4051         (*movdf_softfloat): Likewise movdf_internal2.
4052         * config/mips/mips.c (move_operand): Match arbitrary CONST_INTs
4053         for DImode if !TARGET_64BIT.
4054         (mips_legitimize_move): Simplify accordingly.
4055
4056 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
4057
4058         PR/14362
4059         * var-tracking.c (struct variable_def): Added field refcount.
4060         (variable_htab_free): Decrease the refcount and delete variable
4061         only if there are no more references.
4062         (unshare_variable): New function.
4063         (vars_copy_1): Increase refcount instead of copying the variable.
4064         (variable_union): Share the variables where possible, unshare
4065         the variables if needed.
4066         (variable_different_p): Return false if var1 and var2 are
4067         the same structure.
4068         (variable_was_changed): Init the refcount of new variable.
4069         (set_frame_base_location): Unshare variable if needed.
4070         (set_variable_part): Init the refcount of new variable.
4071         Unshare the variables if needed.
4072         (delete_variable_part): Unshare the variables if needed.
4073         (emit_notes_for_differences_1): Init the refcount of new variable.
4074         (vt_add_function_parameters): Do not add function parameters to
4075         IN set of ENTRY_BLOCK_PTR because it is unused anyway.
4076         (vt_initialize): Do not add frame_base_decl to IN set of
4077         ENTRY_BLOCK_PTR because it is unused anyway.
4078
4079 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
4080
4081         * var-tracking.c (vars_copy_1): Cleanup and speedup chain operations.
4082         (vars_copy): Likewise.
4083         (variable_union): Likewise.
4084         (set_variable_part): Likewise.
4085         (delete_variable_part): Likewise.
4086
4087 2004-03-11  Kazu Hirata  <kazu@cs.umass.edu>
4088
4089         * c-typeck.c, combine.c, cse.c, dominance.c, et-forest.h,
4090         ggc-page.c, var-tracking.c, config/fp-bit.c, config/c4x/c4x.c,
4091         config/cris/cris.c, config/i386/ppro.md, config/i860/i860.c,
4092         config/i860/i860.h, config/m32r/m32r.h, config/m32r/xm-m32r.h,
4093         config/m68hc11/m68hc11.h, config/m68hc11/m68hc11.md,
4094         config/mips/mips.c, config/mmix/mmix.c, config/ns32k/ns32k.h,
4095         config/pa/pa.c, config/pa/pa32-regs.h, config/pa/pa64-regs.h,
4096         config/pdp11/pdp11.h, config/rs6000/rs6000.c,
4097         config/stormy16/stormy16.c: Fix comment typos and formatting.
4098
4099 2004-03-11  Nathanael Nerode  <neroden@gcc.gnu.org>
4100
4101         * configure: Regenerate, since I forgot to while committing Paolo's
4102         changes.
4103
4104 2004-03-08  Paolo Bonzini  <bonzini@gnu.org>
4105
4106         PR ada/14131
4107         Move language detection to the top level.
4108         * configure.ac: Remove code to detect languages,
4109         it now lives exclusively in the top level.
4110         * aclocal.m4 (gcc_AC_PROG_GNAT): Moved to the
4111         top level, renamed to ACX_PROG_GNAT.
4112
4113 2004-03-10  Richard Henderson  <rth@redhat.com>
4114
4115         * c-pch.c (c_common_no_more_pch): Update for gt_pch_use_address
4116         extra arguments.
4117         * config.host (*-*-solaris2*, *-*-linux*): Add out_host_hook_obj
4118         and host_xmake_file fragments.
4119         * ggc-common.c (gt_pch_save): Update for gt_pch_get_address change.
4120         (gt_pch_restore): Similarly for gt_pch_use_address.
4121         (default_gt_pch_get_address): New.
4122         (mmap_gt_pch_get_address): Split out of gt_pch_save.
4123         (default_gt_pch_use_address): Split out of gt_pch_restore.
4124         (mmap_gt_pch_use_address): Likewise.
4125         * hooks.c (hook_voidp_size_t_null): Remove.
4126         (hook_bool_voidp_size_t_false): Remove.
4127         * hooks.h: Likewise.
4128         * hosthooks-def.h (HOST_HOOKS_GT_PCH_GET_ADDRESS): Use one of the
4129         default_ or mmap_ definitions.
4130         (HOST_HOOKS_GT_PCH_USE_ADDRESS): Likewise.
4131         * hosthooks.h (struct host_hooks): Update gt_pch_get_address
4132         and gt_pch_use_address.
4133         * config/host-linux.c, config/host-solaris.c: New files.
4134         * config/x-linux, config/x-solaris: New files.
4135         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_get_address):
4136         Update for changed definition.
4137         (darwin_rs6000_gt_pch_use_address): Likewise.
4138         * doc/hostconfig.texi: Update docs.
4139
4140 2004-03-10  Richard Henderson  <rth@redhat.com>
4141
4142         PR c/14517
4143         * c-decl.c (grokdeclarator): Don't warn for duplicate qualifiers
4144         except for pedantic c90 mode.
4145
4146 2004-03-10  Kelley Cook  <kcook@gcc.gnu.org>
4147
4148         * configure.ac: Bump AC_PREREQ to 2.59.
4149         * configure: Regenerate.
4150
4151 2004-03-10  Uros Bizjak  <uros@kss-loka.si>
4152
4153         * optabs.h (enum optab_index): Add new OTI_exp10 and OTI_exp2.
4154         (exp10_optab, exp2_optab): Define corresponding macros.
4155         * optabs.c (init_optabs): Initialize exp10_optab and exp2_optab.
4156         * genopinit.c (optabs): Implement exp10_optab and exp2_optab
4157         using exp10?f2 and exp2?f2 patterns.
4158         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXP10{,F,L}
4159         using exp10_optab, and BUILT_IN_EXP2{,F,L} using exp2_optab.
4160         (expand_builtin): Expand BUILT_IN_EXP10{,F,L} and BUILT_IN_EXP2{,F,L}
4161         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
4162
4163         * config/i386/i386.md (exp10sf2, exp10df2, exp10xf2, exp2sf2,
4164         exp2df2, exp2xf2): New patterns to implement exp10, exp10f, exp10l,
4165         exp2, exp2f and exp2l built-ins as inline x87 intrinsics.
4166
4167 2004-03-10  Anthony Green  <green@redhat.com>
4168
4169         * doc/invoke.texi (ARM Options): Fix -mpfu typo.
4170
4171 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
4172
4173         * config/rs6000/aix.h (TARGET_OS_CPP_BUILTINS): Rename to ...
4174         (TARGET_OS_AIX_CPP_BUILTINS): this.  Conditionally define
4175         __LONGDOUBLE128.
4176         * config/rs6000/aix41.h (TARGET_OS_CPP_BUILTINS): Use
4177         TARGET_OS_AIX_CPP_BUILTINS.
4178         * config/rs6000/aix43.h (TARGET_OS_CPP_BUILTINS): Same.
4179         * config/rs6000/aix51.h (TARGET_OS_CPP_BUILTINS): Same.
4180         * config/rs6000/aix52.h (TARGET_OS_CPP_BUILTINS): Same.
4181         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Revert
4182         previous change.
4183
4184 2004-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4185
4186         * fold-const.c (tree_expr_nonnegative_p): Add more builtin cases.
4187
4188 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
4189
4190         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
4191         __LONGDOUBLE128 on AIX.
4192
4193 2004-03-10  Andrew Haley  <aph@redhat.com>
4194
4195         PR optimization/14381
4196         * function.c (expand_function_end): Emit a blockage insn before
4197         the epilogue when -fnon-call-exceptions is used.
4198
4199         * except.c (expand_start_all_catch): Make comment more accurate.
4200
4201 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
4202
4203         PR target/14480
4204         * config/rs6000/t-rtems: Add missing file on branch.
4205
4206 2004-03-10  Ulrich Weigand  <uweigand@de.ibm.com>
4207
4208         * dbxout.c (dbxout_symbol_location): Do not output references
4209         to optimized-out constant pool symbols.
4210
4211 2004-03-10  Andreas Schwab  <schwab@suse.de>
4212
4213         * config/ia64/ia64.md (divsi3, udivsi3): Remove unused variable
4214         twon34_r.
4215
4216 2004-03-09  James E Wilson  <wilson@specifixinc.com>
4217
4218         * alias.c (alias_sets_might_conflict_p): New.
4219         * c-typeck.c (build_c_cast): Call it if warn_strict_aliasing > 1.
4220         * common.opt (Wstrict-aliasing=): New.
4221         * flags.h (warn_strict_aliasing): Change type to int.
4222         * opts.c (warn_strict_aliasing): Change type to int.
4223         (common_handle_option): Handle OPT_Wstrict_aliasing_.
4224         * tree.h (alias_sets_might_conflict_p): Declare it.
4225         * doc/invoke.tex (-Wstrict-aliasing=2): Document it.
4226
4227 2004-03-10  Roman Zippel  <zippel@linux-m68k.org>
4228
4229         PR bootstrap/12371
4230         * config/m68k/m68k.h (FIXED_REGISTERS): Add arg pointer.
4231         (CALL_USED_REGISTERS): Likewise.
4232         (REG_CLASS_CONTENTS): Likewise.
4233         (REG_ALLOC_ORDER): New.
4234         (REGNO_REG_CLASS): Use regno_reg_class.
4235         * config/m68k/m68k.c: Add regno_reg_class array.
4236
4237 2004-03-09  Steve Ellcey  <sje@cup.hp.com>
4238
4239         * config/ia64/ia64.md (divsi3): Fix algorithm.
4240           (udivsi3): Ditto.
4241           (setf_exp_xf): Remove '*' from name.
4242         * testsuite/gcc.dg/20040309-1.c: New test.
4243
4244 2004-03-09  Ian Lance Taylor  <ian@wasabisystems.com>
4245
4246         * system.h (SUNOS4_SHARED_LIBRARIES): Poison.
4247         * collect2.c: Remove SUNOS4_SHARED_LIBRARIES code.
4248         * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): Don't define.
4249         * config/sparc/sparc.c (sparc_aout_select_section): Remove.
4250         (sparc_aout_select_rtx_section): Don't check
4251         SUNOS4_SHARED_LIBRARIES.
4252         * config/sparc/sparc.h (SUNOS4_SHARED_LIBRARIES): Don't define.
4253
4254 2004-03-10  Hans-Peter Nilsson  <hp@axis.com>
4255
4256         PR other/14474
4257         * doc/md.texi (Pattern Ordering, Dependent Patterns)
4258         (Jump Patterns, Looping Patterns): Wrap in separate "@ifset
4259         INTERNALS".
4260
4261 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
4262
4263         * config/ia64/hpux.h (MULTILIB_DEFAULTS): Define.
4264         (LIBGCC_SPEC): Update to match.
4265
4266 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
4267
4268         * c-decl.c (last_function_parms, last_function_parm_tags)
4269         (last_function_parm_others, current_function_parms)
4270         (current_function_parm_tags, current_function_parm_others):
4271         Delete.
4272         (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES, ARG_INFO_OTHERS):
4273         New macros.
4274         (grokdeclarator): For function definitions, save the arg-info
4275         block from the declarator in DECL_ARGUMENTS.
4276         (grokparms): Do not write to last_function_parm*.  Use ARG_INFO_*
4277         macros to operate on arg-info block.  Can assume ARG_INFO_PARMS
4278         contains only PARM_DECLs.  Improve diagnostics.
4279         (get_parm_info): Use ARG_INFO_* macros.  Improve comments and
4280         diagnostics.  Disable some expensive checks if not ENABLE_CHECKING.
4281         (store_parm_decls_newstyle): Take the function to operate on,
4282         and an arg-info block, as arguments; don't get anything from
4283         current_function_* globals.
4284         (store_parm_decls_oldstyle): Likewise.
4285         (store_parm_decls): Pass fndecl and its arg-info block down to
4286         store_parm_decls_newstyle/oldstyle.  Send functions with empty
4287         argument lists through store_parm_decls_newstyle to reduce
4288         overhead.
4289         (pushdecl): Comment on the problems with the call to copy_node.
4290         Clear DECL_ARGUMENTS of the old node after copying it, if it
4291         is an arg-info block instead of a chain of decls.
4292         (start_function): Do not manipulate current_function_parm* or
4293         last_function_parm*.
4294
4295 2004-03-09  Roger Sayle  <roger@eyesopen.com>
4296             Andrew Pinski  <pinskia@physics.uc.edu>
4297
4298         * ifcvt.c (noce_try_sign_mask): New function to transform
4299         "x = (y < 0) ? z : 0" into the equivalent "x = (y >> C) & z".
4300         (noce_process_if_block): Call noce_try_sign_mask.
4301
4302 2004-03-09  Andrew Pinski  <apinski@apple.com>
4303
4304         * c-typeck.c (tagged_types_tu_compatible_p):
4305         Fix typo.
4306
4307 2004-03-09  Roger Sayle  <roger@eyesopen.com>
4308
4309         * simplify-rtx.c (simplify_const_relational_operation): New function
4310         renamed from simplify_relational_operation.
4311         (simplify_relational_operation): Change prototype to accept an
4312         additional mode argument.  Call simplify_const_relational_operation.
4313         (simplify_gen_relational): Update simplify_relational_operation call.
4314         (simplify_ternary_operation): Update simplify_relational_operation
4315         subroutine call to use simplify_const_relational_operation instead.
4316
4317         * rtl.h (simplify_const_relational_operation): Prototype here.
4318         (simplify_relational_operation): Add addtional mode argument.
4319
4320         * combine.c (combine_simplify_rtx): Update calls to
4321         simplify_relational_operation.
4322         (simplify_set): Likewise.
4323         (gen_binary): Likewise.
4324         * cse.c (fold_rtx): Likewise.
4325         * dojump.c (compare_from_rtx): Likewise.
4326         (do_compare_rtx_and_jump): Likewise.
4327         * integrate.c (subst_constants): Likewise.
4328         * unroll.c (simplify_cmp_and_jump_insns): Likewise.
4329
4330 2004-03-09  Kazu Hirata  <kazu@cs.umass.edu>
4331
4332         * config/m32r/m32r.md: Remove all define_peephole's.
4333
4334 2004-03-09  Alan Modra  <amodra@bigpond.net.au>
4335
4336         * config/rs6000/rs6000.md: Remove trailing whitespace.
4337
4338 2004-03-08  Eric Christopher  <echristo@redhat.com>
4339
4340         * Makefile.in (site.exp): Add libiconv variable definition.
4341
4342 2004-03-09  Hans-Peter Nilsson  <hp@axis.com>
4343
4344         * configure: Regenerate for config/accross.m4 correction.
4345
4346 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
4347
4348         PR target/14480
4349         * config/rs6000/t-rtems: Add missing file on branch.
4350
4351 2004-03-08  Roger Sayle  <roger@eyesopen.com>
4352
4353         PR middle-end/14289
4354         * c-typeck.c (c_mark_addressable): A register variable should
4355         be considered global if its not automatic, i.e. TREE_PUBLIC,
4356         TREE_STATIC or DECL_EXTERNAL.
4357         * function.c (put_var_into_stack): Call abort when placing a
4358         hard register into the stack, if x_parm_reg_stack_loc is NULL.
4359
4360 2004-03-08  Ulrich Weigand  <uweigand@de.ibm.com>
4361
4362         * config/s390/s390.md ("*extendqidi2_short_displ"): Add CC clobber.
4363         ("*extendqisi2_short_displ"): Likewise.
4364
4365 2004-03-08  Kazu Hirata  <kazu@cs.umass.edu>
4366
4367         * config/pdp11/pdp11.c (comparison_operator_index): Remove.
4368         (comp_operator): Likewise.
4369         * config/pdp11/pdp11-protos.h: Remove corresponding
4370         prototypes.
4371
4372 2004-03-08  Eric Botcazou  <ebotcazou@act-europe.fr>
4373
4374         * expr.c (highest_pow2_factor_for_type): Rename into
4375         highest_pow2_factor_for_target.  Use DECL_ALIGN instead of
4376         TYPE_ALIGN when the target is a COMPONENT_REF.
4377         (expand_assignment): Ajust call to highest_pow2_factor_for_type.
4378
4379 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
4380
4381         * config/rs6000/rs6000.c: Formatting fix.
4382         (legitimate_offset_address_p): Correct offset range check.
4383
4384         * config/rs6000/rs6000.c (rs6000_override_options): Don't override
4385         -msoft-float by -mcpu.  Consolidate similar code for MASK_MULTIPLE
4386         and MASK_STRING.
4387
4388 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
4389
4390         * config/rs6000/rs6000.md (ashrdi3): Do not call ashrdi3_no_power
4391         for little endian.
4392         ("ashrdi3_no_power"): Disable for little endian.
4393         (ashrdi3): Same.
4394
4395 2004-03-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4396
4397         * fold-const.c (tree_expr_nonnegative_p): Reformat checks for
4398         builtins.
4399
4400 2004-03-08  Hans-Peter Nilsson  <hp@axis.com>
4401
4402         PR target/14471
4403         * configure.ac (Target-specific assembler checks) <cris-*-*>: New
4404         case, checking for -no-mul-bug-abort option.
4405         * configure, config.in: Regenerate.
4406         * doc/invoke.texi (CRIS Options): Document -mmul-bug-workaround
4407         and -mno-mul-bug-workaround.
4408         * config/cris/cris.md ("smulsi3_highpart", "umulsi3_highpart")
4409         ("mulsidi3", "umulsidi3"): Prefix output template with "%!".
4410         ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3"):
4411         Ditto.  Make attribute "slottable" dependent on TARGET_MUL_BUG.
4412         * config/cris/mulsi3.asm (__Mul) [__CRIS_arch_version >= 10]: Make
4413         sure mulu.d is not last on cache-line.
4414         * config/cris/cris.h (ASM_SPEC): Translate -mno-mul-bug-workaround
4415         into -no-mul-bug-abort depending on HAVE_AS_MUL_BUG_ABORT_OPTION.
4416         (TARGET_MASK_MUL_BUG, TARGET_MUL_BUG): New macros.
4417         (TARGET_SWITCHES): New options -mmul-bug-workaround and
4418         -mno-mul-bug-workaround.
4419         (TARGET_DEFAULT): Include TARGET_MASK_MUL_BUG.
4420         (PRINT_OPERAND_PUNCT_VALID_P): Include '!'.
4421         * config/cris/cris.c (cris_operand_extend_operator): Clarify
4422         relation to MULT in head comment.
4423         (cris_op_str): Abort for MULT.
4424         (cris_print_operand) <case '!'>: New case.
4425
4426 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
4427
4428         PR debug/11983
4429         * dwarf2out.c (enum dw_val_class): Rename dw_val_class_float to
4430         dw_val_class_vec.  Replace use throughout file.
4431         (dw_float_const): Delete.
4432         (dw_vec_const): New.
4433         (dw_val_struct_union): Rename val_float to val_vec.  Replace use
4434         throughout file.
4435         (add_AT_vec): Rename from add_AT_float.  Add elt_size param.
4436         (same_dw_val_p): Adjust vec comparison.  Use memcmp.
4437         (size_of_die): Adjust dw_val_class_vec sizing.
4438         (output_die): Output dw_val_class_vec.
4439         (insert_int, extract_int, insert_float): New functions.
4440         (add_const_value_attribute): Use insert_float for CONST_DOUBLE.
4441         Handle CONST_VECTOR.
4442         (add_location_or_const_value_attribute): Handle CONST_VECTOR.
4443
4444 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
4445
4446         * config/rs6000/rs6000.c (rs6000_parse_abi_options): SPE and
4447         AltiVec abi cannot co-exist.
4448
4449         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Same.
4450
4451 2004-03-07  Jan Hubicka  <jh@suse.cz>
4452
4453         * except.c (emit_to_new_bb_before):  Break fallthru edges.
4454
4455 2004-03-07  Stephane Carrez  <stcarrez@nerim.fr>
4456
4457         * config/m68hc11/m68hc11.md ("*lshrsi3_const"): Disable for 68HC12.
4458         ("*lshrsi3"): Also accept an immediate for 68HC12.
4459         ("*ashrsi3_const"): Likewise.
4460         ("*ashrsi3"): Likewise.
4461         ("*ashlsi3_const"): Likewise.
4462         ("*ashlsi3"): Likewise.
4463         ("cmphi_1_hc12"): Compare two hard register by pushing them and
4464         comparing with a pop; don't use a split for that.
4465         ("cmphi split"): Disable compare split for 68HC12.
4466
4467         * config/m68hc11/m68hc11.c (m68hc11_notice_update_cc): Invalidate
4468         the status operands if they have side effects.
4469
4470 2004-03-07  Kazu Hirata  <kazu@cs.umass.edu>
4471
4472         * defaults.h (LEGITIMIZE_ADDRESS): Provide a default
4473         definition.
4474         * config/arc/arc.h, config/fr30/fr30.h, config/frv/frv.h,
4475         config/h8300/h8300.h, config/ia64/ia64.h,
4476         config/mcore/mcore.h, config/mmix/mmix.h,
4477         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
4478         config/stormy16/stormy16.h, config/v850/v850.h,
4479         config/vax/vax.h (LEGITIMIZE_ADDRESS): Remove.
4480         * doc/tm.texi (LEGITIMIZE_ADDRESS): Mention the default
4481         definition.
4482
4483 2004-03-07  Roger Sayle  <roger@eyesopen.com>
4484
4485         * fold-const.c (fold) <IOR_EXPR>: Fold x | x as x.
4486         <XOR_EXPR>: Fold x ^ x as zero.
4487         <AND_EXPR>: Fold x & x as x.
4488
4489 2004-03-07  Roger Sayle  <roger@eyesopen.com>
4490
4491         * fold-const.c (fold) <EQ_EXPR>: Rewrite optimization to transform
4492         "foo++ == const" into "++foo == const+incr".
4493
4494 2004-03-07  Richard Sandiford  <rsandifo@redhat.com>
4495
4496         * config/mips/mips.c (mips_in_small_data_p): Return false if
4497         TARGET_ABICALLS.
4498
4499 2004-03-06  Stephane Carrez  <stcarrez@nerim.fr>
4500
4501         * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Use 2,-sp to push
4502         the stack register.
4503         (expand_prologue): Don't make an interrupt or a trap handler a far
4504         symbol.
4505         (m68hc11_initial_elimination_offset): Likewise.
4506
4507 2004-03-06  Richard Henderson  <rth@redhat.com>
4508
4509         * config/alpha/alpha.c (alpha_in_small_data_p): False for functions.
4510
4511 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
4512
4513         * config/ns32k/ns32k-protos.h: Add a prototype for
4514         ns32k_notice_update_cc.
4515         * config/ns32k/ns32k.c (ns32k_notice_update_cc): New.
4516         * config/ns32k/ns32k.h (NOTICE_UPDATE_CC): Call
4517         ns32k_notice_update_cc.
4518
4519 2004-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
4520
4521         * config/s390/s390.md ("load_multiple", "*load_multiple_di",
4522         "*load_multiple_si"): Allow only if reload_completed.
4523         ("store_multiple", "*store_multiple_di", "*store_multiple_si"):
4524         Likewise.
4525
4526 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
4527
4528         * config/vax/vax-protos.h: Add a prototype for
4529         vax_notice_update_cc.
4530         * config/vax/vax.c (vax_notice_update_cc): New.
4531         * config/vax/vax.h (NOTICE_UPDATE_CC): Call
4532         vax_notice_update_cc.
4533
4534 2004-03-06  David Edelsohn  <edelsohn@gnu.org>
4535
4536         * collect2.c (main): Only export initfunc and finifunc if
4537         LD_INIT_SWITCH not defined.
4538         (scan_prog_file): Only export constructors and destructors if
4539         LD_INIT_SWITCH not defined.  Only export symbols not found in
4540         shared objects.
4541
4542 2004-03-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4543
4544         * pa.md (icacheflush): Reorder operands to make match_scratch operand
4545         last.
4546         * pa.h (INITIALIZE_TRAMPOLINE): Remove unnecessary scratch argument
4547         from calls to gen_icacheflush.
4548
4549 2004-03-06  Richard Henderson  <rth@redhat.com>
4550
4551         * config/alpha/alpha.h (MASK_LONG_DOUBLE_128): New.
4552         (TARGET_LONG_DOUBLE_128): New.
4553         (TARGET_SWITCHES): Add long-double-{128,64}.
4554         (TARGET_HAS_XFLOATING_LIBS): Default to TARGET_LONG_DOUBLE_128.
4555         (LONG_DOUBLE_TYPE_SIZE): Honor TARGET_LONG_DOUBLE_128.
4556         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): New.
4557         (WIDEST_HARDWARE_FP_SIZE): New.
4558         (TARGET_CPU_CPP_BUILTINS): Define __LONG_DOUBLE_128__.
4559         * config/alpha/alpha.c (override_options): Clear MASK_LONG_DOUBLE_128
4560         if TARGET_VAX_FLOAT.
4561         * config/alpha/osf5.h (LONG_DOUBLE_TYPE_SIZE): Remove.
4562         (TARGET_DEFAULT): Set MASK_LONG_DOUBLE_128.
4563
4564 2004-03-06  Richard Henderson  <rth@redhat.com>
4565
4566         * config/alpha/alpha.c (alpha_swapped_comparison_operator): Fix
4567         botched rtx class conversion.
4568
4569 2004-03-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4570
4571         * tree.h (BUILTIN_EXP10_P, BUILTIN_EXPONENT_P, BUILTIN_SQRT_P,
4572         BUILTIN_CBRT_P, BUILTIN_ROOT_P): New macros.
4573
4574         * builtins.c (fold_builtin_logarithm, fold_builtin): Use new
4575         macros.
4576         * fold-const.c (fold_mathfn_compare, fold): Likewise.
4577
4578 2004-03-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
4579
4580         PR target/14343
4581         * config/i386/i386.md (movv2di_internal): Conditionalize on
4582         TARGET_SSE, not TARGET_SSE2.
4583
4584 2004-03-05  Chris Demetriou  <cgd@broadcom.com>
4585
4586         * config.gcc (mips64orion-*-elf*, mips64orionel-*-elf*): Delete
4587         duplicated line.
4588
4589 2004-03-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4590
4591         * builtins.c: Consistently use logN not log* in comments.
4592
4593 2004-03-05  Andreas Krebbel  <krebbel1@de.ibm.com>
4594
4595         * rtl.h (mem_expr_equal_p): Function prototype added.
4596         * cfgcleanup.c (merge_memattrs): New function.
4597         (flow_find_cross_jump): Call merge_memattrs for matching insns.
4598         * emit-rtl.c (mem_expr_equal_p): New function.
4599
4600 2004-03-05  Ziemowit Laski  <zlaski@apple.com>
4601
4602         * objc/objc-act.c (synth_module_prologue): Const-qualify
4603         objc_selector type if using the GNU runtime; fix generated
4604         signatures for objc_msg_lookup and objc_msg_lookup_super
4605         to match what GNU ObjC headers provide; reformat and clean up.
4606         (synth_self_and_ucmd_args): Use previously constructed (and
4607         hence possibly const-qualified) objc_selector type.
4608
4609 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
4610
4611         * doc/tm.texi (HARD_REGNO_RENAME_OK): Document.
4612
4613 2004-03-05  Jason Merrill  <jason@redhat.com>
4614
4615         * tree.h (TYPE_HASH): Use TYPE_UID.
4616         (TREE_HASH): New macro with old definition of TYPE_HASH.
4617         * tree.c (build_type_attribute_variant): Use iterative_hash_object.
4618         (build_array_type, build_function_type): Likewise.
4619         (build_method_type_directly): Likewise.
4620         (build_offset_type, build_complex_type): Likewise.
4621         (type_hash_list, attribute_hash_list): Likewise. Now static.
4622         * except.c: s/TYPE_HASH/TREE_HASH/.
4623
4624 2004-03-05  Bob Wilson  <bob.wilson@acm.org>
4625
4626         * config/xtensa/xtensa.c (function_arg): Handle 16-byte aligned args.
4627         (xtensa_va_start): Initialize __va_stk to ($arg_ptr - 32).  Adjust
4628         __va_ndx by 2 words when referencing an argument on the stack.
4629         (xtensa_va_arg): Handle 16-byte aligned args.  Adjust __va_ndx by 2
4630         words when an arg on the stack is first seen.
4631
4632 2004-03-05  Paul Brook  <paul@codesourcery.com>
4633
4634         * arm.h (ARM_FLAG_VFP): Remove.
4635         (ARM_FLAG_ATPCS, CIRRUS_FIX_INVALID_INSNS): Renumber.
4636         * netbsd-elf.h (ARM_FLAG_VFP): Remove.
4637
4638 2004-03-05  Paul Brook  <paul@codesourcery.com>
4639
4640         * function.c (assign_parms): Include pretend alignment offset.
4641
4642 2004-03-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4643
4644         * stor-layout.c (layout_type, case FUNCTION_TYPE): Make size
4645         FUNCTION_BOUNDARY, not POINTER_SIZE * 2.
4646
4647 2004-03-05  Ian Lance Taylor  <ian@wasabisystems.com>
4648
4649         * configure.ac: When passing --enable-languages to subdir
4650         configure when host != build, make sure we don't pass an empty
4651         value.
4652         * configure: Regenerate.
4653
4654 2004-03-05  Nathan Sidwell  <nathan@codesourcery.com>
4655
4656         PR 13577
4657         * gcc.c (cc1_options): Robustify -auxbase-strip from multiple -o
4658         options.
4659
4660 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
4661
4662         * simplify-rtx.c (simplify_relational_operation): If
4663         flag_wrapv is set, do not move terms between the two
4664         side of a relational operator.
4665
4666 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
4667
4668         * rtlanal.c: Include target.h and output.h
4669         (rtx_cost, address_cost, default_address_cost): Move from...
4670         * cse.c (rtx_cost, address_cost, default_address_cost):
4671         ... this file.
4672         * rtl.h (rtx_cost, address_cost): Move under rtlanal.c.
4673         * Makefile.in: Adjust dependencies.
4674
4675 2004-03-05  Paolo Bonzini <bonzini@gnu.org>
4676
4677         * cse.c (cse_end_of_basic_block): Make static.
4678         * local-alloc.c (function_invariant_p): Move to
4679         reload1.c.
4680         * loop.c (libcall_other_reg, record_excess_regs):
4681         Make static.
4682         * reload1.c (function_invariant_p): Moved here
4683         from local-alloc.c, made static.
4684         * rtl.h (cse_end_of_basic_block, function_invariant_p,
4685         libcall_other_reg, record_excess_regs): Remove
4686         declarations.
4687
4688 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
4689
4690         * config/m32r/m32r.c (signed_comparison_operator): Add a
4691         missing parenthesis.
4692
4693 2004-03-04  Ian Lance Taylor  <ian@wasabisystems.com>
4694
4695         * ggc-common.c (gt_pch_restore): Don't unmap addr unless we are
4696         going to call mmap again.  Read the file into the right place.
4697         Give a fatal error if we have to relocate.
4698
4699 2004-03-04  Bob Wilson  <bob.wilson@acm.org>
4700
4701         * config/xtensa/xtensa.c (xtensa_return_in_msb): New function.
4702         (TARGET_RETURN_IN_MSB): Define to xtensa_return_in_msb.
4703
4704 2004-03-05  Hans-Peter Nilsson  <hp@axis.com>
4705
4706         PR other/14354
4707         * config/fp-bit.c (_fpdiv_parts): Do not round when pack_d would
4708         round the same.  When rounding, clear bits that would cause a
4709         second rounding in pack_d.
4710         (_fpmul_parts): Ditto.  Remove #if 0:d code.
4711
4712 2004-03-04  Ziemowit Laski  <zlaski@apple.com>
4713
4714         PR c++/14425, c++/14426
4715         * config/rs6000/altivec.h (vec_splat_s8, vec_splat_s16,
4716         vec_splat_s32, vec_splat_u8, vec_splat_u16, vec_splat_u32):
4717         Change C++ definitions to accept a 'const int' argument;
4718         the prototypes already do.
4719         * config/rs6000/rs6000.c (rs6000_common_init_builtins):
4720         Rename v4si_ftype_char, v8hi_ftype_char, v16qi_ftype_char,
4721         v4sf_ftype_v4si_char, v4si_ftype_v4sf_char, v4si_ftype_v4si_char,
4722         v8hi_ftype_v8hi_char, v16qi_ftype_v16qi_char,
4723         v16qi_ftype_v16qi_v16qi_char, v8hi_ftype_v8hi_v8hi_char,
4724         v4si_ftype_v4si_v4si_char and v4sf_ftype_v4sf_v4sf_char to
4725         end in ..._int; change them to accept an int instead of a char
4726         as the last parameter.
4727
4728 2004-03-04  Phil Edwards  <phil@codesourcery.com>
4729
4730         * genmultilib:  Change '=' to '-' when translating option names
4731         to directory names.
4732
4733 2004-03-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4734
4735         * expr.c (expand_expr_real, case COMPONENT_REF): Get proper type of
4736         stack slot for temp used for result of BLKmode but in integral mode.
4737
4738 2004-03-04  Jan Hubicka  <jh@suse.cz>
4739
4740         * reload.c (find_reloads): Reorganize if seqeunce to switch.
4741
4742         * cfgrtl.c (rtl_redirect_edge_and_branch):  Set the source BB as dirty.
4743         (cfglayout_redirect_edge_and_branch):  Set the source BB as dirty.
4744
4745 2004-03-04  Steve Ellcey  <sje@cup.hp.com>
4746
4747         * config/ia64/ia64.md (divdf3_internal_thr): Fix algorithm.
4748         * testsuite/gcc.dg/20040303-1.c: New test.
4749
4750 2004-03-04  Steven Bosscher  <stevenb@suse.de>
4751
4752         * ppro.md: Rewrite as a DFA pipeline description.
4753         * i386.md: Remove all uses of the ppro_uops attribute.
4754         * i386.c: (ix86_safe_ppro_uops, ix86_dump_ppro_packet,
4755         ix86_reorder_insn, ix86_sched_reorder_ppro, ix86_sched_init,
4756         ix86_sched_reorder, ix86_variable_issue,
4757         struct ix86_sched_data, TARGET_SCHED_VARIABLE_ISSUE,
4758         TARGET_SCHED_INIT, TARGET_SCHED_REORDER): Remove.
4759         (ia32_use_dfa_pipeline_interface): Add TARGET_PENTIUMPRO.
4760         (ia32_multipass_dfa_lookahead): Add TARGET_PENTIUMPRO.
4761         * athlon.md (athlon_ssecmp_load): Fix comment
4762
4763 2004-03-04  Stuart Hastings  <stuart@apple.com>
4764
4765         * gcc/doc/invoke.texi: Document -mlongcall for Darwin/PPC.
4766
4767 2004-03-04  Stuart Hastings  <stuart@apple.com>
4768
4769         * gcc/config/i386/darwin.h: Darwin/x86 doesn't support CPUs before
4770         686, tell Darwin assembler to allow prefetch insns, non-empty def
4771         of SUBTARGET_OPTION_TRANSLATE_TABLE.
4772
4773 2004-03-04  DJ Delorie  <dj@redhat.com>
4774
4775         PR optimization/14282
4776         * sched-deps.c (sched_analyze_insn): Allow a stack adjustment
4777         between a call and the assignment of its return value.
4778
4779 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
4780
4781         * config/h8300/h8300.c: Put a comment for every function.
4782
4783 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
4784
4785         * config/h8300/h8300.md: Add comments about peephole2's.
4786
4787 2004-03-04  Steven Bosscher  <stevenb@suse.de>
4788
4789         * i386.h (TARGET_CPU_DEFAULT_nocona): Fix value.
4790
4791 2004-03-04  Jan Hubicka  <jh@suse.cz>
4792
4793         * cfgcleanup.c (thread_jump): Update call of cselib_init.
4794         * cselib.c (cselib_record_memory): New static variable.
4795         (cselib_lookup_mem, cselib_record_set, cselib_record_sets):
4796         Give up on memories when asked for.
4797         (cselib_init): Accept new argument.
4798         * cselib.h (cselib_init): Update prototype.
4799         * gcse.c (local_cprop_pass): Update call of cselib_init.
4800         * loop.c (load_mems): Update call of cselib_init.
4801         * postreload.c (reload_cse_regs_1): Update call of cselib_init.
4802         * sched-deps.c (sched_analyze): Update call of cselib_init.
4803
4804 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
4805             GP <gp@qnx.com>
4806
4807         * config/rs6000/rs6000.c (output_function_profiler): Append @plt
4808         when compiling PIC.
4809
4810 2004-03-04  Josef Zlomek  <zlomekj@suse.cz>
4811
4812         PR/14362
4813         * var-tracking.c (track_expr_p): Do not track variables which
4814         should be ignored for debugging purposes.
4815
4816 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
4817
4818         * real.c (encode_ibm_extended): Don't bother rounding low double.
4819         * c-cppbuiltin.c (builtin_define_float_constants): Tweak MAX
4820         when fmt->pnan < fmt->p.
4821
4822 2004-03-04  Eric Christopher  <echristo@redhat.com>
4823
4824         * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Fix to check
4825         only range of valid arg registers and fixed_regs.
4826
4827 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
4828
4829         PR target/14406
4830         * config/rs6000/rs6000.md (abstf2, abstf2+1): Delete define_insn.
4831         (abstf2, abstf2_internal): New define_expand.
4832
4833 2004-03-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
4834
4835         PR optimization/14235
4836         * expr.c (convert_move): Copy the source to a new pseudo
4837         when converting from a sub-word source to a larger-than-word
4838         register which conflicts with the source.
4839
4840 2004-03-03  Zack Weinberg  <zack@codesourcery.com>
4841
4842         PR 13728
4843         * c-decl.c (diagnose_mismatched_decls): Issue an error for two
4844         parameters with the same name, unless one is a forward decl.
4845         Do not issue a redundant-redeclaration warning for forward
4846         decls of parameters.
4847
4848 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
4849
4850         * doc/install.texi (*-ibm-aix*): Document use of Bash to speed up
4851         configuration.
4852
4853 2004-03-03  Ian Lance Taylor  <ian@wasabisystems.com>
4854
4855         * ggc-zone.c (ggc_pch_write_object): Don't align file pointer.
4856
4857 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
4858
4859         * target-def.h (TARGET_OPTF): Delete.
4860         * c-opts.c (TARGET_OPTF): Define.
4861
4862 2004-03-04  Jan Hubicka  <jh@suse.cz>
4863
4864         * cselib.c (cselib_finish): Fix another miss-application of my previous
4865         patch.
4866
4867 2004-03-03  Mike Stump  <mrs@apple.com>
4868
4869         Add framework support for darwin.
4870
4871         * c-incpath.c: Include target.h and machmode.h.
4872         (add_path): Use a consistent style for cpp_dir.  Initialize
4873         p->construct to 0.
4874         (add_cpp_dir_path): New.
4875         (register_include_chains): Add use of extra_includes callback.
4876         (hook_void_int): Add.
4877         (target_c_incpath): Add.
4878         * c-incpath.h (add_cpp_dir_path): New.
4879         (target_c_incpath_s): Add.
4880         (target_c_incpath): Add.
4881         (C_INCPATH_INIT): Add.
4882         * c-opts.c (c_common_missing_argument,
4883         c_common_handle_option): Add -F argument processing.
4884         * c.opt: Add -F argument processing.
4885         * gcc.c (trad_capable_cpp): Add -F argument processing.
4886         * cppfiles.c (find_file_in_dir): Update to use construct
4887         callback.
4888         (search_path_exhausted, cpp_get_path, cpp_get_buffer,
4889         cpp_get_prev): New.
4890         (_cpp_find_file): Use search_path_exhausted.
4891         (make_cpp_dir): Initialize construct to 0.
4892         * cpplib.h (missing_header_cb
4893         cpp_get_path, cpp_get_buffer, cpp_get_file, cpp_get_prev): New.
4894         (cpp_callbacks): Add missing_header
4895         (cpp_dir): Add construct.
4896         * target-def.h: (TARGET_OPTF): New.
4897         * hooks.c (hook_void_int, hook_void_charptr): Add.
4898         * hooks.h (hook_void_int, hook_void_charptr): Add.
4899         * Makefile.in (c-incpath.o) : Add $(TARGET_H) and
4900         $(MACHMODE_H) dependencies.
4901         * doc/invoke.texi (Darwin Options): Document -F.
4902         * doc/tm.texi (TARGET_EXTRA_INCLUDES): Add.
4903         (TARGET_OPTF): Add.
4904         * fix-header.c (target_c_incpath): Add.
4905
4906         * config/darwin-c.c: Add c-incpath.h include.
4907         (using_frameworks, find_subframework_file,
4908         find_subframework_header, add_system_framework_path,
4909         frameworks_in_use, num_frameworks, max_frameworks,
4910         add_framework, find_framework, struct framework_header,
4911         framework_header_dirs, framework_construct_pathname,
4912         find_subframework_file, add_system_framework_path,
4913         add_framework_path, framework_defaults,
4914         darwin_register_frameworks, find_subframework_header): Add.
4915         * config/darwin.h (TARGET_EXTRA_INCLUDES, TARGET_OPTF): New.
4916         (TARGET_OPTION_TRANSLATE_TABLE): Add -framework support.
4917         (CPP_SPEC): Add __APPLE_CC__ support.
4918         * t-darwin (darwin-c.o): Add c-incpath.h dependency.
4919
4920 2004-03-04  Jan Hubicka  <jh@suse.cz>
4921
4922         * cselib.c (cselib_finish): Fix miss-application of my previous
4923         patch.
4924
4925 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
4926
4927         * hooks.c (hook_tree_tree_identity): New.
4928         * hooks.h: Add a prototype for hook_tree_tree_identity.
4929         * stmt.c (expand_asm_operands): Use targetm.md_asm_clobbers
4930         instead of MD_ASM_CLOBBERS.
4931         * system.h (MD_ASM_CLOBBERS): Poison.
4932         * target-def.h (TARGET_MD_ASM_CLOBBERS): New.
4933         (TARGET_INITIALIZER): Add TARGET_MD_ASM_CLOBBERS.
4934         * target.h (gcc_target): Add md_asm_clobbers.
4935         * config/i386/i386.c (TARGET_MD_ASM_CLOBBERS): New.
4936         (ix86_md_asm_clobbers): New.
4937         * config/i386/i386.h (MD_ASM_CLOBBERS): Remove.
4938         * doc/tm.texi (MD_ASM_CLOBBERS): Change to
4939         TARGET_MD_ASM_CLOBBERS.
4940
4941 2004-03-03  Stuart Hastings  <stuart@apple.com>
4942
4943         * gcc/config.gcc: Arrange for Darwin/x86 to build libgcc_eh.a.
4944
4945 2004-03-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
4946
4947         * config/sparc/sparc.c (noov_compare64_op): Fix typo.
4948
4949         * config/sparc/sparc.h (ASM_FLOAT): Delete.
4950         (ASM_DOUBLE): Likewise.
4951         (ASM_LONGDOUBLE): Likewise.
4952         * config/sparc/pbd.h (ASM_INT_OP): Delete.
4953
4954 2003-03-03  Richard Henderson  <rth@redhat.com>
4955
4956         PR opt/13862
4957         * cselib.c (cselib_record_sets): Don't record multiple sets in
4958         asm insns.
4959
4960 2004-03-03  Mostafa Hagog  <mustafa@il.ibm.com>
4961
4962         * common.opt: Add description of the new -fgcse-after-reload flag.
4963
4964         * flags.h (flag_gcse_after_reload): Declaration of global variable.
4965
4966         * gcse.c (reg_used_on_edge ,reg_set_between_after_reload_p,
4967         reg_used_between_after_reload_p, rtx get_avail_load_store_reg,
4968         is_jump_table_basic_block, bb_has_well_behaved_predecessors,
4969         get_bb_avail_insn, hash_scan_set_after_reload,
4970         compute_hash_table_after_reload, eliminate_partially_redundant_loads,
4971         gcse_after_reload, get_bb_avail_insn): New functions to implement
4972         gcse-after-reload.
4973         (gcse_after_reload_main): New function, the main entry point to
4974         gcse-after-reload.
4975
4976         * rtl.h (gcse_after_reload_main): Declaration of the new function.
4977
4978         * opts.c (common_handle_option): Handle the -fgcse-after-reload flag.
4979
4980         * toplev.c (flag_gcse_after_reload): Initialization.
4981
4982         * passes.c (rest_of_handl_gcse2): Call gcse_after_reload_main.
4983
4984         * params.def (PARAM_GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
4985         PARAM_GCSE_AFTER_RELOAD_CRITICAL_FRACTION): New parameters for tuning
4986         the gcse after reload optimization.
4987
4988         * params.h (GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
4989         GCSE_AFTER_RELOAD_CRITICAL_FRACTION): Two macros to access the tuning
4990         parameters.
4991
4992         * doc/invoke.texi: Documentation for the new flag gcse-after-reload.
4993
4994 2004-03-03  Nicolas Pitre <nico@cam.org>
4995
4996         * config/arm/ieee754-df.S (muldf3, divdf3): Fix denormalization of
4997         small negative values.
4998
4999 2004-03-03  Jan Hubicka  <jh@suse.cz>
5000
5001         * cselib.c (hash_table):  Remove GTY marker.
5002         (reg_values): Turn into array.
5003         (used_regs): Likewise.
5004         (n_used_regs): New static variable.
5005         (reg_values_old): Kill.
5006         (clear_table): Update uses of arrays.
5007         (cselib_lookup): Likewise.
5008         (cselib_record_set): Likewise.
5009         (cselib_init): Likewise.
5010         (cselib_finish): Likewise.
5011         (cselib_udpate_varray_sizes): Kill.
5012         * cselib.h (cselib_update_varray_sizes): Kill.
5013
5014 2004-03-03  Paul Brook  <paul@codesourcery.com>
5015
5016         * flow.c (ior_reg_cond, and_reg_cond): Remove stray ")".
5017
5018 2004-03-03  Jan Hubicka  <jh@suse.cz>
5019
5020         * ggc-common.c (ggc_alloc_cleared_stat, ggc_realloc_stat):
5021         Rename from ...; make statistics transparent.
5022         (ggc_alloc_cleared, ggc_realloc_stat): ... these.
5023         (loc_descriptor): New structure.
5024         (hash_descriptor, eq_descriptor, loc_descriptor, cmp_statistics,
5025         add_statistics):
5026         New static function.
5027         (ggc_record_overhead, dump_statistics): New global function.
5028         * ggc-none.c (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
5029         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Rename
5030         from ...; accept locations
5031         (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
5032         ggc_realloc, ggc_alloc_typed):  ... this one.
5033         from ...; accept locations
5034         * ggc-page.c (ggc_alloc_typed_stat, ggc_alloc_zone_stat,
5035         ggc_alloc_stat): Rename from ... ; pass locations
5036         * ggc-page.c (ggc_alloc_typed, ggc_alloc_zone, ggc_alloc):
5037         ... this one.
5038         (ggc_alloc_stat): Record overehead.
5039         * ggc.h (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
5040         ggc_realloc, ggc_alloc_typed):  Turn to macros
5041         (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
5042         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Declare.
5043         (dump_ggc_loc_satistics, ggc_record_overehead): Declare.
5044         * langhooks.h (lhd_make_node): Declare.
5045         (LANG_HOOKS_MAKE_TYPE): Default to new function,
5046         * langhooks.c (lhd_make_node): New.
5047         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Rename from ... ; pass
5048         locations.
5049         (rtx_alloc, swallow_copy_rtx): ... this one.
5050         * rtl.h (rtx_alloc, swallow_copy_rtx): Turn to macros.
5051         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Declare.
5052         * toplpev.c (finalize): Dump stats.
5053         * tree.c (make_node_stat, copy_node_stat, make_tree_vec_stat,
5054         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
5055         Rename from ... ; pass locators.
5056         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
5057         build?,  build_decl): Declare.
5058         * tree.h (make_node_stat, copy_node_stat, make_tree_vec_stat,
5059         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
5060         Declare.
5061         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
5062         build?,  build_decl): New macros.
5063         * Makefile.in (RTL_H, TREE_H): Add statistics.h dependency.
5064         * statistics.h: New file.
5065
5066 2004-03-03  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
5067             Richard Sandiford  <rsandifo@redhat.com>
5068
5069         * config/mips/mips.h (MASK_FIX_SB1): Bump.
5070         (MASK_FIX_R4400, TARGET_FIX_R4400): New macros.
5071         (TARGET_SWITCHES): Add -mfix-r4400 and -mno-fix-r4400.
5072         * config/mips/mips.c (mips_output_division): Fill the branch delay
5073         slot with a nop if TARGET_FIX_R4000.  Extend R4000 workarounds to
5074         TARGET_FIX_R4400.
5075         (mips_output_division): Adjust accordingly.
5076         (override_options): Make -march=r4400 imply -mfix-r4400 by default.
5077         * doc/invoke.texi: Document -mfix-r4400 and new errata workarounds.
5078
5079 2004-03-03  Paolo Bonzini  <bonzini@gnu.org>
5080
5081         * alias.c (rtx_equal_for_memref_p): Use predicates
5082         to test rtx classes and new rtx class codes, possibly
5083         splitting conditionals that tested against '<' and 'o'.
5084         * caller-save.c (save_call_clobbered_regs): Likewise.
5085         * combine.c (contains_muldiv, find_split_point, subst,
5086         combine_simplify_rtx, simplify_if_then_else,
5087         simplify_set, simplify_logical, expand_compound_operation,
5088         make_compound_operation, if_then_else_cond, known_cond,
5089         apply_distributive_law, cached_nonzero_bits,
5090         cached_num_sign_bit_copies, simplify_shift_const,
5091         gen_binary, simplify_comparison, update_table_tick,
5092         record_value_for_reg, get_lsat_value_validate): Likewise.
5093         * cse.c (mention_regs, find_best_addr, find_comparison_args,
5094         fold_rtx, cse_insn, invalidate_memory, cse_basic_block):
5095         Likewise.
5096         * emit-rtl.c (copy_insn_1): Likewise.
5097         * expr.c (force_operand): Likewise.
5098         * final.c (final_scan_insn, get_mem_expr_from_op): Likewise.
5099         * flow.c (notice_stack_pointer_modification_1,
5100         invalidate_mems_from_autoinc, ior_reg_cond, not_reg_cond,
5101         and_reg_cond, elim_reg_cond): Likewise.
5102         * function.c (update_epilogue_consts): Likewise.
5103         * genattrtab.c (attr_rtx_1): Likewise.
5104         * genopinit.c (gen_insn): Likewise.
5105         * integrate.c (subst_constants): Likewise.
5106         * jump.c (reversed_comparison_code_parts,
5107         reversed_comparison_code, delete_related_insns,
5108         rtx_renumbered_equal_p): Likewise.
5109         * local-alloc.c (block_alloc): Likewise.
5110         * loop.c (rtx_equal_for_prefetch_p, maybe_eliminate_biv,
5111         canonicalize_condition): Likewise.
5112         * loop-iv.c (simplify_using_conditions, iv_number_of_iterations):
5113         Likewise.
5114         * optabs.c (add_equal_node, expand_binop): Likewise.
5115         * predict.c (estimate_probability): Likewise.
5116         * ra-debug.c (ra_print_rtx_2op, ra_print_rtx): Likewise.
5117         * recog.c (validate_replace_rtx_1, comparison_operator,
5118         offsettable_address_p, constrain_operands): Likewise.
5119         * reg-stack.c (swap_rtx_condition_1, subst_stack_regs_pat):
5120         Likewise.
5121         * regclass.c (scan_one_insn): Likewise.
5122         * regmove.c (stable_and_no_regs_but_for_p): Likewise.
5123         * regrename.c (kill_autoinc_value): Likewise.
5124         * reload.c (find_reusable_reload, find_reloads,
5125         reg_overlap_mentioned_for_reload_p): Likewise.
5126         * reload1.c (gen_reload, delete_address_reloads_1): Likewise.
5127         * rtl.c (copy_rtx): Likewise.
5128         * rtl.h (CONSTANT_P, INSN_P): Likewise.
5129         * rtlanal.c (commutative_operand_precedence): Likewise.
5130         * sched-deps.c (conditions_mutex_p): Likewise.
5131         * sched-rgn.c (is_cfg_nonregular): Likewise.
5132         * simplify-rtx.c (simplify_gen_binary,
5133         simplify_gen_relational, simplify_replace_rtx,
5134         simplify_unary_operation, simplify_binary_operation,
5135         simplify_ternary_operation, simplify_rtx): Likewise.
5136         * unroll.c (reg_dead_after_loop): Likewise.
5137         * config/alpha/alpha.c (alpha_swapped_comparison_operator,
5138         print_operand): Likewise.
5139         * config/arc/arc.c (proper_comparison_operator): Likewise.
5140         * config/arm/arm.c (arm_arm_address_cost, arm_select_cc_mode):
5141         Likewise.
5142         * config/avr/avr.c (_reg_unused_after): Likewise.
5143         * config/frv/frv.c (frv_ifcvt_modify_tests,
5144         frv_ifcvt_modify_insn, frv_pack_insn): Likewise.
5145         * config/i386/i386.c (ix86_comparison_operator,
5146         ix86_carry_flag_operator, fcmov_comparison_operator,
5147         arith_or_logical_operator, print_operand,
5148         ix86_expand_binary_operator, ix86_binary_operator_ok):
5149         Likewise.
5150         * config/i386/i386.md: Likewise.
5151         * config/ia64/ia64.c (not_postinc_memory_operand,
5152         ia64_print_operand, update_set_flags, errata_emit_nops):
5153         Likewise.
5154         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS,
5155         CONSTRAINT_OK_FOR_S): Likewise.
5156         * config/ip2k/ip2k.c (mdr_resequence_xy_yx,
5157         mdr_try_move_dp_reload, ip2k_check_can_adjust_stack_ref,
5158         ip2k_xexp_not_uses_reg_for_mem, ip2k_xexp_not_uses_reg_p,
5159         ip2k_composite_xexp_not_uses_reg_p, ip2k_unary_operator):
5160         Likewise.
5161         * config/iq2000/iq2000.c (cmp_op, symbolic_expression_p,
5162         eqne_comparison_operator, signed_comparison_operator):
5163         Likewise.
5164         * config/mips/mips.c (cmp_op, symbolic_expression_p):
5165         Likewise.
5166         * config/mmix/mmix (mmix_foldable_comparison_operator,
5167         mmix_comparison_operator): Likewise.
5168         * config/pa/pa.c (hppa_legitimize_address): Likewise.
5169         * config/rs6000/rs6000.c (stmw_operation,
5170         branch_comparison_operator, trap_comparison_operator,
5171         ccr_bit): Likewise.
5172         * config/rs6000/rs6000.h (SELECT_CC_MODE): Likewise.
5173         * config/s390/s390.c (s390_alc_comparison,
5174         s390_slb_comparison):L Likewise.
5175         * config/sh/sh.c (gen_block_redirect, reg_unused_after):
5176         Likewise.
5177         * config/sparc/sparc.c (eq_or_neq, normal_comp_operator,
5178         noov_compare_op, noov_compare64_op, v9_regcmp_op,
5179         emit_hard_tfmode_operation, reg_unused_after)
5180         * doc/md.texi, doc/rtl.texi: Likewise.
5181
5182         * ra-debug.c: Add 2004 to list of copyright years.
5183         * unroll.c: Likewise.
5184
5185         * combine.c (simplify_logical): Remove dummy test,
5186         (apply_distributive_law): Fix typo in comment.
5187         GET_CODE (x) == AND so x is a commutative binary op.
5188         * jump.c (delete_related_insns): simplify loop
5189         condition, move testing of RTX codes inside the loop.
5190         (rtx_renumbered_equal_p): do not use RTX_CODE.
5191         * rtl.c (rtx_class): Declare as enum rtx_class.
5192         * rtl.def (EQ, NE, UNEQ, LTGT, UNORDERED, ORDERED):
5193         Move to RTX_COMM_COMPARE class.
5194         (HIGH, SYMBOL_REF, LABEL_REF, CONST, CONST_INT, CONST_DOUBLE):
5195         Move to RTX_CONST_OBJ class.
5196         * rtl.h (enum rtx_class): New declaration,
5197         (RTX_OBJ_MASK, RTX_OBJ_RESULT, RTX_COMPARE_MASK,
5198         RTX_COMPARE_RESULT, RTX_ARITHMETIC_MASK, RTX_ARITHMETIC_RESULT,
5199         RTX_BINARY_MASK, RTX_BINARY_RESULT, RTX_COMMUTATIVE_MASK,
5200         RTX_COMMUTATIVE_RESULT, RTX_NON_COMMUTATIVE_RESULT,
5201         RTX_EXPR_FIRST, RTX_EXPR_LAST, UNARY_P, BINARY_P,
5202         ARITHMETIC_P, COMMUTATIVE_ARITHMETIC_P, COMPARISON_P,
5203         SWAPPABLE_OPERANDS_P, NON_COMMUTATIVE_P, COMMUTATIVE_P,
5204         OBJECT_P): New macros.
5205         * config/sparc/sparc.c (noov_compare_op): Remove register
5206         from parameter.
5207
5208 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
5209
5210         * target.h: Remove texi jargons in comments.
5211
5212 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
5213
5214         * config/h8300/lib1funcs.asm (___fixunssfsi): Change the
5215         threshold to 0x4f.
5216
5217         Revert:
5218         2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
5219         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
5220         as well.
5221         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
5222         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
5223
5224 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
5225
5226         * doc/md.texi (cbranchmode4): New.
5227
5228 2004-03-02  Eric Christopher  <echristo@redhat.com>
5229
5230         * config/mips/mips16.S: Change fixsfsi and fixdfsi to
5231         fix_trunc.
5232         * config/mips/mips.c (mips_init_libfuncs): Change accordingly.
5233         * config/mips/t-elf (LIB1ASMFUNCS): Ditto.
5234         * config/mips/t-isa3264 (LIB1ASMFUNCS): Ditto.
5235         * config/mips/t-r3900 (LIB1ASMFUNCS): Ditto.
5236
5237 2004-03-02  Richard Henderson  <rth@redhat.com>
5238
5239         PR middle-end/11767
5240         * coverage.c (coverage_counter_ref): Set MEM_NOTRAP_P.
5241         * optabs.c (prepare_cmp_insn): Force trapping memories to registers
5242         before the compare, if flag_non_call_exceptions.
5243
5244 2004-03-02  Richard Henderson  <rth@redhat.com>
5245
5246         PR middle-end/14327
5247         * stmt.c (expand_computed_goto): Do do_pending_stack_adjust before
5248         emitting the label, not after.
5249
5250 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
5251
5252         * config/m68hc11/m68hc11.c (m68hc11_addr_mode): New variable.
5253         (m68hc11_mov_addr_mode): Likewise.
5254         (m68hc11_override_options): Initialize them based on target.
5255         (register_indirect_p): Allow a MEM for indirect addressing modes and
5256         use flags to control what is allowed.
5257         (m68hc11_small_indexed_indirect_p): Use m68hc11_mov_addr_mode for
5258         supported addressing modes.
5259         (m68hc11_register_indirect_p): Use m68hc11_addr_mode.
5260         (go_if_legitimate_address_internal): Likewise.
5261         (m68hc11_indirect_p): Likewise and check the mode.
5262         (print_operand): Allow a (MEM (MEM)) and generate indirect addressing.
5263
5264 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
5265
5266         * builtins.c (BUILTIN_SETJMP_FRAME_VALUE): Remove.
5267         (expand_builtin_setjmp_setup): Use
5268         targetm.builtin_setjmp_frame_value instead of
5269         BUILTIN_SETJMP_FRAME_VALUE.
5270         * system.h (BUILTIN_SETJMP_FRAME_VALUE): Poison.
5271         * target-def.h (TARGET_BUILTIN_SETJMP_FRAME_VALUE): New.
5272         (TARGET_INITIALIZER): Add TARGET_BUILTIN_SETJMP_FRAME_VALUE.
5273         * target.h (gcc_target): Add builtin_setjmp_frame_value.
5274         * targhooks.c (default_builtin_setjmp_frame_value): New.
5275         * targhooks.h: Add a prototype for
5276         default_builtin_setjmp_frame_value.
5277         * doc/tm.texi (BUILTIN_SETJMP_FRAME_VALUE): Change to
5278         TARGET_BUILTIN_SETJMP_FRAME_VALUE.
5279
5280 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
5281
5282         * config/m68hc11/m68hc11.md (move peephole2): New peepholes to optimize
5283         sequences of moves.
5284         (add peepholes): New peepholes to optimize sequences adding small
5285         constants.
5286         (bset peepholes): New peepholes to transform an OR in a bset form
5287         (bclr peepholes): Likewise for bclr form.
5288         (cmp peepholes): New peepholes to avoid register copies when comparing.
5289
5290 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
5291
5292         * config/m68hc11/m68hc11.md ("*pushdi_internal"): New insn and split
5293         to separate push from moves.
5294         ("*pushdf_internal"): Likewise.
5295         ("*pushsf_internal"): Likewise.
5296         ("*pushsi_internal"): Likewise.
5297         ("movdi_internal"): Use define_insn_and_split; non push operand.
5298         ("movdf_internal"): Likewise.
5299         ("movsf_internal"): Likewise.
5300         ("movsi_internal"): Likewise.
5301         ("*movhi_68hc12", "*addhi3_68hc12"): Fix and tune constraints
5302         ("*addhi3", "*subhi3", "*andhi3_mem", "*iorhi3_mem"): Likewise.
5303         ("*ashlsi3_const1", "*lshrsi3_const1"): Likewise.
5304
5305 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
5306
5307         * config/m68hc11/m68hc11.md ("tstqi_z_used"): Use define_insn_and_split.
5308         ("cmphi_z_used", "cmpqi_z_used"): Likewise.
5309         ("movstrictsi", "movstricthi", "movstrictqi"): Likewise.
5310         ("anddi3", "andsi3", "iordi3", "iorsi3"): Likewise.
5311         ("xordi3", "xorsi3", "*logicalsi3_zexthi"): Likewise.
5312         ("*logicalsi3_zextqi", "*logicalhi3_zexthi_ashift8"): Likewise.
5313         ("logicalhi3_zexthi", "*logicalsi3_silshr16"): Likewise.
5314         ("*logicalsi3_silshl16", "*logicalsi3_silshl16_zext"): Likewise.
5315         ("*ashldi3_const32", "*ashldi3_const1", "addsi_silshr16"): Likewise.
5316         ("addsi_andshr16", "*ashlsi3_const16_zexthi"): Likewise.
5317         ("*lshrdi3_const32", "*lshrdi_const1"): Likewise.
5318
5319 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
5320
5321         * config/m68hc11/m68hc11.md (SOFT_TMP_REGNUM): Define.
5322         (SOFT_XY_REGNUM): Define.
5323         (cmp split): Use the above instead of hard coded numbers.
5324         (8-bit op split): No need to check the mode; allow Q_REG.
5325         (ashift split): Adjust the first operand if it uses the SP and we
5326         are pushing the shifted value.
5327         (plus shift split): Fix when a source is in register D+X.
5328         ("doloop_end"): Pass dummy arguments to gen_rtx_NE.
5329
5330 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
5331
5332         * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Fix when
5333         comparing with Z register.
5334
5335 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5336
5337         * cfgloop.h (struct loop_desc): Removed.
5338         (struct loop): Fields simple, desc and has_desc removed.
5339         (simple_loop_p, count_loop_iterations): Declaration removed.
5340         * cfgloopanal.c (struct unmark_altered_insn_data): Removed.
5341         (unmark_altered, blocks_invariant_registers, unmark_altered_insn
5342         blocks_single_set_registers, invariant_rtx_wrto_regs_p_helper,
5343         invariant_rtx_wrto_regs_p, test_for_iteration, constant_iterations,
5344         simple_loop_exit_p, variable_initial_value, variable_initial_values,
5345         simple_condition_p, simple_increment, count_strange_loop_iterations,
5346         inverse, fits_in_mode_p, simple_loop_p, count_loop_iterations):
5347         Removed.
5348         * loop-iv.c (check_simple_exit, find_simple_exit): Update comments.
5349
5350 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
5351
5352         * genattrtab.c: Don't handle MATCH_INSN.
5353         * genrecog.c: Likewise.
5354         * gensupport.c: Likewise.
5355         * rtl.def (match_insn): Remove.
5356         * doc/md.texi (match_insn, match_insn2): Remove.
5357
5358 2004-03-02  Mark Mitchell  <mark@codesourcery.com>
5359
5360         * doc/c-tree.texi (DECL_ASSEMBLER_NAME): Mention that using this
5361         macro results in memory allocation.
5362
5363 2004-03-02  David O'Brien  <obrien@FreeBSD.org>
5364
5365         * config/freebsd-spec.h (FBSD_DYNAMIC_LINKER): Add.
5366         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Define
5367         %(fbsd_dynamic_linker),
5368         (LINK_SPEC): Use %(fbsd_dynamic_linker), and sync style with
5369         config/i386/freebsd.h
5370         * config/arm/freebsd.h: Ditto.
5371         * config/i386/freebsd.h: Ditto.
5372         * config/i386/freebsd64.h: Ditto.
5373         * config/ia64/freebsd.h: Ditto.
5374         * config/rs6000/sysv4.h: Ditto.
5375         * config/sparc/freebsd.h: Ditto.
5376
5377 2004-03-02  Loren James Rittle  <ljrittle@acm.org>
5378
5379         * gcc/doc/install.texi (*-*-freebsd*): Update target information.
5380
5381 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
5382
5383         * rtl.def (define_combine): Remove.
5384
5385 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
5386
5387         * config/h8300/h8300.md: Tweak formatting.
5388
5389 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
5390
5391         * config/h8300/h8300.md (*cmphi_h8300): Rename to
5392         *cmphi_h8300_znvc.
5393         (*cmphi_h8300hs): Rename to *cmphi_h8300hs_znvc.
5394
5395 2004-03-01  Mark Mitchell  <mark@codesourcery.com>
5396
5397         PR bootstrap/14356
5398         * gcc.c (process_command): Remove const-qualification from argv.
5399         (main): Likewise.
5400
5401 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
5402
5403         * config/h8300/h8300.md (pushqi1_h8300hs): Rename to
5404         pushqi1_h8300hs_advanced.  Adjust its caller.
5405         (pushhi1_h8300hs): Rename to pushhi1_h8300hs_advanced.
5406         Adjust its caller.
5407
5408 2004-03-02  Nicolas Roche  <roche@act-europe.fr>
5409
5410         * Makefile.in (install-libgcc, install-multilib): Pass
5411         mkinstalldirs var to libgcc.mk.
5412
5413 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
5414
5415         * system.h (DBX_OUTPUT_STANDARD_TYPES): Poison.
5416         * doc/tm.texi (DBX_OUTPUT_STANDARD_TYPES): Remove.
5417
5418 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
5419
5420         * config/h8300/h8300.c (gtle_operator): Accept GT and LE.
5421         * config/h8300/h8300.md: Split several peephole2's, each into
5422         two.
5423
5424 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5425
5426         * dominance.c (recount_dominator): Handle postdominators.
5427
5428 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
5429
5430         * config/mips/mips-protos.h (enum mips_symbol_type): Move from mips.h.
5431         (NUM_SYMBOL_TYPES): Likewise.
5432         (SYMBOL_64_HIGH, SYMBOL_64_MID, SYMBOL_64_LOW): New symbol types.
5433         (mips_unspec_address): Declare.
5434         (mips_gotoff_page, mips_gotoff_global): Delete.
5435         * config/mips/mips.h (PREDICATE_CODES): Add general_symbolic_operand.
5436         * config/mips/mips.c (enum mips_symbol_type, NUM_SYMBOL_TYPES): Delete.
5437         (mips_symbolic_constant_p, mips_symbolic_address_p)
5438         (mips_symbol_insns): Handle new symbol types.
5439         (general_symbolic_operand): New predicate.
5440         (mips_unspec_address): Make extern.
5441         (mips_gotoff_page, mips_gotoff_global): Delete.
5442         (override_options): Allow -mabi=64 -mno-abicalls -mexplicit-relocs.
5443         Handle new symbol types.
5444         * config/mips/mips.md (*lea_high64, *lea64): New patterns.
5445         (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_disp[sd]i): Call
5446         mips_unspec_address directly.
5447         * doc/invoke.texi: Remove the -mabi=64 -mno-abicalls exception from
5448         the documentation of -mexplicit-relocs.
5449
5450 2004-03-01  Jeff Law  <law@redhat.com>
5451
5452         * fold-const.c (fold): An equality comparison of a non-weak object
5453         against zero has a known result.  Similarly an equality comparison
5454         of the address of two non-weak, unaliased symbols has a known result.
5455
5456         * ggc-page.c (struct page_entry): New field PREV.
5457         (ggc_alloc): Update PREV field appropriately.
5458         (sweep_pages): Likewise.
5459         (ggc_free): Likewise.  Use PREV field rather than loop to
5460         improve ggc_free performance.
5461
5462 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
5463
5464         * config/mips/mips.c (mips_output_division): Use the division
5465         instruction to fill the delay slot of a zero check.
5466         (mips_idiv_insns): Adjust accordingly.
5467
5468 2004-03-01  Nathanael Nerode  <neroden@gcc.gnu.org>
5469
5470         * config.gcc: Create a default tmake_file for linux, and use
5471         it in all but two linux clauses.  Comment those two.
5472
5473 2004-03-01  Paolo Bonzini  <bonzini@gnu.org>
5474
5475         * combine.c (try_combine):  Do not refer to is_replaced.
5476         (gen_lowpart_for_combine):  Perverse subregs now have a
5477         more politically correct name.
5478         * cse.c (cse_insn): Likewise.
5479         * jump.c: Fix bogus reference to delete_insn.
5480
5481 2004-02-29  Mark Mitchell  <mark@codesourcery.com>
5482
5483         PR debug/14328
5484         * dwarf2out.c (gen_enumeration_type_die): Output all enumeration
5485         constants as signed values.
5486
5487         PR middle-end/13448
5488         * c-tree.h (readonly_warning): Rename to ...
5489         (readonly_error): ... this.
5490         * c-typeck.c (build_unary_op): Adjust accordingly.
5491         (readonly_warning): Rename to ...
5492         (readonly_error): ... this and issue errors, not warnings.
5493         (build_modify_expr): Call readonly_error, not readonly_warning.
5494         (c_expand_asm_operands): Likewise.
5495         * tree-inline.c (optimize_inline_calls): Do not inline functions
5496         after errors have occurred.
5497
5498 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
5499
5500         * configure.ac: Rearrange some threading code for clarity;
5501         add section comment.
5502         * configure: Regenerate.
5503
5504 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
5505
5506         * passes.c, config/frv/frv.c, config/sh/sh.c: Fix comment
5507         typos.
5508         * doc/cppopts.texi: Fix a typo.
5509
5510 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
5511
5512         * config/i386/i386.md: Fix formatting.
5513
5514 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
5515
5516         * configure.ac: Add some comments delineating sections of code.
5517
5518         * doc/install.texi: Note that libada uses autoconf 2.57 also.
5519
5520         * doc/install.texi: Fix idiot typo in previous commit.
5521
5522         * doc/install.texi: Update for conversion of intl to autoconf 2.57.
5523
5524 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
5525
5526         * config/h8300/h8300.md: Add comments about peephole2's.
5527
5528 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
5529
5530         * config/h8300/h8300.md: Tweak operand numbers of some
5531         peephole2's.
5532
5533 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
5534
5535         * config/h8300/h8300.md: Tweak comments about peephole2's.
5536
5537 2004-02-29  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
5538
5539         PR middle-end/14203
5540         * function.c (uninitialized_vars_warning): Use DECL_RTL_SET_P
5541         instead of testing whether DECL_RTL is not NULL.
5542
5543 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
5544
5545         * config/sh/sh.c: Fix formatting.
5546
5547 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
5548
5549         * config/sh/sh.c: Convert to ISO-C.
5550
5551 2004-02-28  Andrew Pinski  <pinskia@physics.uc.edu>
5552
5553         * c-typeck.c (tagged_types_tu_compatible_p): Fix pasto in
5554         my previous patch.
5555
5556         * config/darwin.h (machopic_finish): Output stub even if the
5557         symbol is already defined.
5558
5559 2004-02-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5560
5561         * pa64-hpux.h (LIB_SPEC): Fix linking under HP-UX 11.00 with -p and -pg.
5562
5563 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
5564
5565         * genattr.c (main): Don't define
5566         TRADITIONAL_PIPELINE_INTERFACE or DFA_PIPELINE_INTERFACE.
5567         * system.h (TRADITIONAL_PIPELINE_INTERFACE): Poison.
5568         (DFA_PIPELINE_INTERFACE): Likewise.
5569         * doc/tm.texi (TRADITIONAL_PIPELINE_INTERFACE): Remove.
5570         (DFA_PIPELINE_INTERFACE): Likewise.
5571
5572 2004-02-28  Richard Sandiford  <rsandifo@redhat.com>
5573
5574         * config/mips/mips.md (tstsi, tstdi): Delete.
5575
5576 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
5577
5578         * config/mips/mips.c (override_options): Remove an obsolete
5579         duplicate definition of the "e" constraint.
5580         * config/mips/mips.h: Update a comment accordingly.
5581
5582 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
5583
5584         * config/mips/mips.md: Complete the unfinished R4000
5585         multiply/shift errata workaround.  Improve documentation.
5586         (hazard): Use TARGET_FIX_R4000 to decide whether an "imul" instruction
5587         has a hilo hazard.
5588         (mulsi3, mulsi3_internal, mulsi3_r4000): Use TARGET_FIX_R4000.
5589         (muldi3, muldi3_internal): Likewise.
5590         (muldi3_internal2): Remove, replacing with...
5591         (muldi3_mult3, muldi3_r4000): ...these new patterns.
5592         (mulsidi3): Take the errata into account.
5593         (mulsidi3_32bit): Remove, replacing with...
5594         (mulsidi3_32bit_internal, mulsidi3_32bit_r4000): ...these new patterns.
5595         (mulsidi3_64bit, mulsidi3_64bit_parts): Disable if TARGET_FIX_R4000.
5596         (umulsidi3): Take the errata into account.
5597         (umulsidi3_32bit): Remove, replacing with..
5598         (umulsidi3_32bit_internal, umulsidi3_32bit_r4000): ...these patterns.
5599         (umulsi3_highpart, umulsi3_highpart_internal): Disable if
5600         TARGET_FIX_R4000.
5601         (smulsi3_highpart, smulsi3_highpart_internal): Likewise.
5602         (smuldi3_highpart, umuldi3_highpart): Likewise.
5603         * doc/invoke.texi: Document the errata workaround.
5604
5605 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
5606
5607         * config/mips/mips-protos.h (mips_idiv_insns): Declare.
5608         * config/mips/mips.h (MASK_FIX_SB1): Bump.
5609         (MASK_FIX_R4000, TARGET_FIX_R4000): New macros.
5610         (TARGET_SWITCHES): Add -mfix-r4000 and -mno-fix-r4000.
5611         * config/mips/mips.c (mips_idiv_insns): New function.
5612         (override_options): Make -march=r4000 imply -mfix-r4000 by default.
5613         (mips_output_division): Add a workaround for the R4000 divide/shift
5614         errata.
5615         * config/mips/mips.md (length): Use mips_idiv_insns() to calculate
5616         the length of an "idiv" instruction.
5617         * doc/invoke.texi: Document the new switches.
5618
5619 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
5620
5621         * doc/tm.texi (IS_COSTLY_DEPENDENCE): Change to
5622         TARGET_SCHED_IS_COSTLY_DEPENDENCE.
5623
5624 2004-02-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5625
5626         PR optimization/14229
5627         * cfgrtl.c (rtl_tidy_fallthru_edge): Do not fail for !onlyjump jump.
5628
5629 2004-02-28  Eric Botcazou  <ebotcazou@act-europe.fr>
5630
5631         * fold-const.c (fold): Strip NOPs that change the signedness
5632         for RSHIFT too.  Expand comment.
5633
5634 2004-02-27  Ian Lance Taylor  <ian@wasabisystems.com>
5635
5636         PR optimization/7871
5637         * flow.c (mark_set_1): Don't add LOG_LINKS for global registers
5638         from or to call insns.
5639
5640 2004-02-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
5641
5642         PR optimization/7871
5643         * flow.c (propagate_one_insn): Interpret calls as setting global
5644         registers, not merely clobbering them.
5645
5646 2004-02-27  Dale Johannesen  <dalej@apple.com>
5647
5648         * config/darwin.c (machopic_output_possible_stub_label):  Remove.
5649         config/darwin-protos.h:  Ditto.
5650         config/darwin.h:  Remove call to it.
5651         * combine.c (distribute_notes): Do not place a REG_DEAD note
5652         when value is both set and used.
5653
5654 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
5655
5656         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
5657         as well.
5658         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
5659         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
5660
5661 2004-02-27  Andrew Pinski  <apinski@apple.com>
5662
5663         * c-typeck.c (tagged_types_tu_compatible_p) <ENUMERAL_TYPE>:
5664         Speedup common case of the type values being in the same order.
5665
5666 2004-02-27  Steve Ellcey  <sje@cup.hp.com>
5667
5668         * config/ia64/ia64.h (no-inline-float-divide): New option.
5669         * config/ia64/ia64.h (no-inline-int-divide): New option.
5670         * config/ia64/ia64.h (no-inline-sqrt): New option.
5671         (TARGET_DEFAULT): Add MASK_INLINE_FLOAT_DIV_THR to define.
5672         * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
5673         * config/ia64/ia64.c (ia64_override_options): Modify error
5674         checking for inlined division/sqrt.
5675
5676 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
5677
5678         * bb-reorder.c, cfgbuild.c, diagnostic.c, explow.c, profile.c,
5679         ra-build.c, read-rtl.c, tracer.c, unwind-dw2-fde-glibc.c,
5680         value-prof.c, config/darwin-protos.h, config/frv/frv-abi.h,
5681         config/i386/pmmintrin.h, config/pa/pa-hpux.h: Update
5682         copyright.
5683
5684 2004-02-27  Paul Brook  <paul@codesourcery.com>
5685
5686         * function.c (assign_parms): Don't count pretend args for alignment.
5687
5688 2004-02-27  Richard Henderson  <rth@redhat.com>
5689
5690         * passes.c: New file.
5691         * Makefile.in (OBJS-common): Add it.
5692         * diagnostic.c (rtl_dump_and_exit): Move decl ...
5693         * flags.h (rtl_dump_and_exit): ... here.
5694         * output.h (size_directive_output, last_assemble_variable_decl):
5695         Move from toplev.c.
5696         * rtl.h (reg_alloc): Move from toplev.c.
5697         * toplev.c (HAVE_conditional_execution, DUMPFILE_FORMAT,
5698         struct dump_file_info, enum dump_file_index, dump_file_tbl,
5699         open_dump_file, close_dump_file, rest_of_decl_compilation,
5700         rest_of_type_compilation, rest_of_handle_final,
5701         rest_of_handle_delay_slots, rest_of_handle_stack_regs,
5702         rest_of_handle_variable_tracking, rest_of_handle_machine_reorg,
5703         rest_of_handle_new_regalloc, rest_of_handle_old_regalloc,
5704         rest_of_handle_regrename, rest_of_handle_reorder_blocks,
5705         rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_regmove,
5706         rest_of_handle_tracer, rest_of_handle_if_conversion,
5707         rest_of_handle_if_after_combine, rest_of_handle_web,
5708         rest_of_handle_branch_prob,
5709         rest_of_handle_value_profile_transformations, rest_of_handle_cfg,
5710         rest_of_handle_addressof, rest_of_handle_sibling_calls,
5711         rest_of_handle_jump_bypass, rest_of_handle_inlining,
5712         rest_of_handle_null_pointer, rest_of_handle_combine,
5713         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
5714         rest_of_handle_gcse, rest_of_handle_loop_optimize,
5715         rest_of_handle_loop2, rest_of_compilation): Move to passes.c.
5716         (decode_d_option): Use enable_rtl_dump_file.
5717         (compile_file, finalize, do_compile): Move profile+combine+graph
5718         cleanup to finish_optimization_passes.
5719         * toplev.h (init_optimization_passes, finish_optimization_passes,
5720         enable_rtl_dump_file): Declare.
5721
5722 2004-02-27  Eric Botcazou  <ebotcazou@act-europe.fr>
5723             Roger Sayle  <roger@eyesopen.com>
5724
5725         * fold-const.c (fold): Revert 2004-02-25 change.  Use the original
5726         operands to build a tree with swapped operands.
5727         * expr.c (expand_expr_real) <MAX_EXPR>: Consistently use the
5728         'unsignedp' predicate to specify the signedness.
5729
5730 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
5731
5732         * c-decl.c, c-ppoutput.c, combine.c, cppfiles.c, dwarf2out.c,
5733         expr.c, fold-const.c, gcc.c, haifa-sched.c, loop-iv.c,
5734         params.def, read-rtl.c, rtl.c, rtlanal.c, toplev.c: Fix
5735         comment typos and formatting.  Follow spelling conventions.
5736
5737 2004-02-26  Aldy Hernandez  <aldyh@redhat.com>
5738
5739         * config/rs6000/rs6000.md: Add fixuns_truncsfsi2 and
5740         fix_truncsfsi2.
5741
5742         * config/rs6000/spe.md: Delete spe_efsctuiz.
5743         Add spe_fixuns_truncsfsi2.
5744         Add spe_fix_truncsfsi2.
5745
5746 2004-02-26  Eric Christopher  <echristo@redhat.com>
5747
5748         * c-lex.c (c_lex_string_translate): New variable.
5749         (lex_string): Use to determine string translation.
5750         * c-pragma.h: Prototype.
5751         * c-parse.in (start_string_translation): New. Set above.
5752         (stop_string_translation): Ditto.
5753         (attribute, attribute_list, asm_def, asm_stmt,
5754         asm_operand): Use above functions.
5755         * cp/parser.c (cp_parser_declaration): Translate strings
5756         unless token is RID_EXTERN. Set c_lex_string_translate
5757         for recursive use.
5758         (cp_parser_asm_definition): Only translate argument strings
5759         to asms.
5760         (cp_parser_asm_operand_list): Ditto.
5761         (cp_parser_attribute_list): Do not translate attribute strings.
5762
5763 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
5764
5765         * stmt.c (expand_start_case_dummy): Remove.
5766         * tree.h: Remove the corresponding prototype.
5767
5768 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
5769
5770         * builtins.c (apply_args_register_offset): Remove.
5771         * tree.h: Remove the corresponding prototype.
5772
5773 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
5774
5775         * stor-layout.c (is_pending_size): Remove.
5776         * tree.h: Remove the corresponding prototype.
5777
5778 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
5779
5780         * recog.c (validate_replace_src): Remove.
5781         * recog.h: Remove the corresponding prototype.
5782
5783 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
5784
5785         * calls.c: Don't reference FINAL_REG_PARM_STACK_SPACE or
5786         MAYBE_REG_PARM_STACK_SPACE.
5787         * function.c: Likewise.
5788         * system.h (FINAL_REG_PARM_STACK_SPACE): Poison.
5789         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
5790         * doc/tm.texi (FINAL_REG_PARM_STACK_SPACE): Remove.
5791         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
5792
5793 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
5794
5795         * c-decl.c (c_expand_deferred_function): Remove.
5796         * c-tree.h: Remove the corresponding prototype.
5797
5798 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
5799
5800         * postreload.c (reload_cse_move2add): Generate just a PLUS
5801         instead of an entire SET.
5802
5803 2004-02-26  Jan Hubicka  <jh@suse.cz>
5804
5805         * config.gcc: Add support for nocoma/prescott/pentium-m/pentium3m
5806         /pentium4m.
5807         * i386.c (override_options): Add support for new CPUs.
5808         * i386.h (TARGET_CPU_DEFAULT_NAMES): New names.
5809         (TARGET_CPU_DEFAULT_pentium_m, TARGET_CPU_DEFAULT_pentium4e): New
5810         constants.
5811         * invoke.texi: Extend documentation of -mtune/-march for new CPUs.
5812
5813 2004-02-26  Bob Wilson  <bob.wilson@acm.org>
5814
5815         * config/xtensa/xtensa.h (TARGET_CPU_CPP_BUILTINS): Define __xtensa__.
5816
5817 2004-02-26  Eric Botcazou  <ebotcazou@act-europe.fr>
5818
5819         * config/sparc/sparc-protos.h (sparc_emit_floatunsdi): Add 'mode'.
5820         (sparc_emit_fixunsdi): New prototype.
5821         * config/sparc/sparc.c (sparc_emit_floatunsdi): Use 'mode' argument.
5822         (sparc_emit_fixunsdi): New function.
5823         * config/sparc/sparc.md (floatunsdisf2): Use 'general_operand' for
5824         operand 1.  Pass SFmode to sparc_emit_floatunsdi.
5825         (floatunsdidf2): Use 'general_operand' for operand 1.  Pass DFmode
5826         to sparc_emit_floatunsdi.
5827         (fixuns_truncsfdi2): New expander.
5828         (fixuns_truncdfdi2): Likewise.
5829
5830 2004-02-26  Alan Modra  <amodra@bigpond.net.au>
5831
5832         * gcse.c (delete_null_pointer_checks_1): Do not delete CC setter
5833         unless HAVE_cc0.
5834
5835 2004-02-25  Richard Henderson  <rth@redhat.com>
5836
5837         * explow.c (force_reg): Call mark_reg_pointer as appropriate.
5838         * config/alpha/alpha.c (alpha_emit_conditional_branch): Don't
5839         use (op0-op1) == 0 if op0 is a pointer.
5840         * config/alpha/alpha.md (cmpdi): Use some_operand.
5841         (three comparison combine splits): Remove.
5842
5843 2004-02-25  Richard Henderson  <rth@redhat.com>
5844
5845         PR c/12794
5846         * c-common.c (handle_alias_attribute): Reject the attribute if
5847         current_function_decl is set.
5848
5849 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
5850
5851         * config.gcc: Add comment describing extra_gcc_objs.
5852         i[34567]86-*-cygwin*): Replace host_extra_gcc_objs with extra_gcc_objs.
5853         * configure.ac (extra_gcc_objs): New substitution variable.
5854         (host_extra_gcc_objs): Don't substitute.
5855         * configure: Regenerate.
5856         * Makefile.in: Use extra_gcc_objs.
5857
5858 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
5859
5860         * doc/contrib.texi: Add an entry for myself.
5861
5862 2004-02-25  Jan Hubicka  <jh@suse.cz>
5863
5864         * basic-block.h (make_eh_edge, break_superblocks): Declare.
5865         * cfgbuild.c (make_eh_edge):  Make global.
5866         * cfglayout.c (break_superblocks): Likewise; fix memory leak.
5867         * except.c (build_post_landing_pads, connect_post_landing_pads,
5868         dw2_build_landing_pads, sjlj_emit_function_enter,
5869         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
5870         sjlj_build_landing_pads): Update CFG.
5871         (emit_to_new_bb_before): New function.
5872         (finish_eh_generation): Do not rebuild the CFG.
5873
5874 2004-02-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5875
5876         * config.gcc (hppa*-*-*, parisc*-*-*): Add MASK_BIG_SWITCH to all
5877         target_cpu_default defines.
5878         * pa-hpux.h (TARGET_DEFAULT): Add MASK_BIG_SWITCH to define.
5879         * pa.h (TARGET_DEFAULT): Likewise.
5880
5881 2004-02-25  Eric Botcazou  <ebotcazou@act-europe.fr>
5882
5883         * fold-const.c (fold): Treat MAX_EXPR and MIN_EXPR like
5884         comparisons with regard to signedness.
5885
5886 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
5887
5888         * arm.c (thumb_legitimize_address): New function.
5889         * arm-protos.h: Prototype it.
5890         * arm.h (THUMB_LEGITIMIZE_ADDRESS): Define.
5891         (LEGITIMIZE_ADDRESS): Use it.
5892
5893 2004-02-25  J"orn Rennecke <joern.rennecke@superh.com>
5894
5895         * reload1.c (reload): Only spill eliminable register with multiple
5896         adjacent elimination alternatives if all alternatives fail.
5897
5898 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
5899
5900         * arm.c (arm_legitimate_index_p): For QImode the range of an offset
5901         is -4095...+4095 inclusive.
5902
5903 2004-02-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
5904
5905         * doc/install.texi (sparc-sun-solaris2* specific notes): Document
5906         the bootstrap failure with Sun CC 5.4 and 5.5.
5907
5908 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
5909
5910         * cse.c (cse_change_cc_mode_insns): Stop at any instruction
5911         which modifies NEWREG.
5912         (cse_condition_code_reg): Update the mode of CC_REG in
5913         CC_SRC_INSN on our own.
5914
5915 2004-02-24  Michael Matz  <matz@suse.de>
5916
5917         * config/i386/i386.c (ix86_comp_type_attributes): Check for
5918         regparm attributes.
5919
5920 2004-02-24  Richard Henderson  <rth@redhat.com>
5921
5922         * toplev.c (dump_file_tbl): Rename from dump_file.
5923         * bb-reorder.c, bt-load.c, cfgcleanup.c, cfglayout.c, cfgloopanal.c,
5924         cfgloopmanip.c, cfgrtl.c, config/arm/arm.c, config/frv/frv.c,
5925         config/i386/i386.c, config/ia64/ia64.c, config/mips/mips.c,
5926         config/sh/sh.c, cse.c, flow.c, ifcvt.c, loop-iv.c, loop-unroll.c,
5927         loop-unswitch.c, output.h, predict.c, profile.c, ra-build.c,
5928         ra-colorize.c, ra-debug.c, ra-rewrite.c, ra.c, regrename.c, reload1.c,
5929         toplev.c, tracer.c, value-prof.c, var-tracking.c, web.c:
5930         s/rtl_dump_file/dump_file/g.
5931
5932 2004-02-24  Aldy Hernandez  <aldyh@redhat.com>
5933
5934         * config/rs6000/spe.md (spe_fix_truncsfsi2): Delete.
5935         (spe_fixuns_truncsfsi2): Delete.
5936
5937         * config/rs6000/rs6000.md (fix_truncsfsi2): Delete.
5938         (fixuns_truncsfsi2): Delete.
5939
5940 2004-02-24  Josef Zlomek  <zlomekj@suse.cz>
5941
5942         PR/14240
5943         * rtlanal.c (replace_label): Fix replacing labels in constant pool.
5944
5945 2004-02-24  Geoffrey Keating  <geoffk@apple.com>
5946
5947         * config/darwin.h (TARGET_HAS_F_SETLKW): Define.
5948
5949 2004-02-24  Jason Merrill  <jason@redhat.com>
5950
5951         * tree.c (check_qualified_type): New fn.
5952         (get_qualified_type): Use it.  If type already has the desired
5953         quals, just return it.
5954         * tree.h: Declare it.
5955
5956 2003-02-24  Sanjiv Kumar Gupta  <sanjivg@noida.hcltech.com>
5957
5958         * target-def.h (TARGET_SCHED_INIT_GLOBAL,
5959         TARGET_SCHED_FINISH_GLOBAL): New macros.
5960
5961         * target.h (md_init_global, md_finish_global): Function
5962         declarations corresponding to new target macros.
5963
5964         * haifa-sched.c (sched_init, sched_finish): Allow target to
5965         call the new schedular hooks.
5966
5967         * flow.c (recompute_reg_usage): Add PROP_DEATH_NOTES flag in
5968         call to update_life_info.
5969
5970         * config/sh/sh.h (OVERRIDE_OPTIONS): Re-enable
5971         flag_schedule_insns for SH4.
5972
5973         * config/sh/sh.c (sh_md_init_global, sh_md_finish_global,
5974         find_set_regmode_weight, find_insn_regmode_weight,
5975         find_regmode_weight), sh_md_init, sh_dfa_new_cycle,
5976         sh_variable_issue, high_pressure, ready_reorder,
5977         rank_for_reorder, swap_reorder, sh_reorder, sh_reorder2): New
5978         functions used to throttle the insn movement in first
5979         scheduling pass for SH.
5980
5981         * gcc/doc/tm.texi: Document TARGET_SCHED_INIT_GLOBAL and
5982         TARGET_SCHED_FINISH_GLOBAL.
5983
5984 2004-02-24  Alexandre Oliva  <aoliva@redhat.com>
5985
5986         Implement FR-V FDPIC ABI support for frv-uclinux and frv-linux.
5987         2004-02-05  Alexandre Oliva  <aoliva@redhat.com>
5988         * config/frv/frv.c (frv_emit_movsi): Use GOT relocations for
5989         symbols in sections named by the user.
5990         2004-01-30  Alexandre Oliva  <aoliva@redhat.com>
5991         * config/frv/linux.h (TARGET_OS_CPP_BUILTINS): New.
5992         2004-01-27  Alexandre Oliva  <aoliva@redhat.com>
5993         * config.gcc (frv-*-*linux*): Handle like *-*-linux*.
5994         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Remove, obviated by
5995         the above.
5996         2004-01-20  Alexandre Oliva  <aoliva@redhat.com>
5997         * config/frv/frv.md (symGOT2reg_hilo, symGOTOFF2reg_hilo): Add
5998         one more pseudo to further improve code generation.
5999         2004-01-19  Alexandre Oliva  <aoliva@redhat.com>
6000         * config/frv/frv.md (movdi_ldd): Introduce explicit indirection
6001         inside UNSPEC.
6002         2004-01-16  Alexandre Oliva  <aoliva@redhat.com>
6003         * config/frv/frv.c (frv_legitimate_address_p): Added
6004         allow_double_reg_p argument.  Adjust all callers.  Use it to
6005         decide whether to enable double-register indirect addressing.
6006         (frv_funcdesc_alias_set): Remove.
6007         (frv_expand_fdpic_call): Force non-SYMBOL_REF operand into
6008         register.  Emit movdi_ldd.
6009         (ldd_address_operand): New.
6010         * config/frv/frv-protos.h (frv_legitimate_address_p): Adjust.
6011         * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Likewise.
6012         (PREDICATE_CODES): Add ldd_address_operand.
6013         * config/frv/frv.md (movdi_ldd): New.
6014         (symGOT2reg_hilo, symGOTOFF2reg_hilo): Use separate pseudo for
6015         intermediate computations if possible.
6016         (symGOTOFF2reg_i): Fix harmless typo.
6017         2003-12-18  Alexandre Oliva  <aoliva@redhat.com>
6018         * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Cast
6019         relocated p_vaddr to vaddr type.
6020         * config/frv/frv-protos.h (frv_expand_fdpic_call): Return void.
6021         * config/frv/frv.c (frv_get_funcdesc_alias_set): New.
6022         (frv_expand_fdpic_call): Propagate incoming MEM's expr to funcdesc
6023         MEM, or use a funcdesc alias set.  Use regular move instead of
6024         ldd.
6025         (dbl_memory_one_insn_operand): Recognize function descriptors by
6026         type or by alias set, and don't split them.
6027         * config/frv/frv.md (call, call_value): Never use call_internal
6028         for fdpic.
6029         (call_internal, call_value_internal): Never match for FDPIC.
6030         (call_fdpicdi, call_fdpicsi, call_value_fdpicdi,
6031         call_value_fdpicsi): Require FDPIC.
6032         (ldd): Removed.
6033         2003-12-17  Alexandre Oliva  <aoliva@redhat.com>
6034         * config/frv/frv.h (CRT_GET_RFIB_DATA): Define for __FRV_FDPIC__.
6035         * unwind-dw2-fde-glibc.c: Don't include elf-fdpic.h any more.
6036         (_Unwind_IteratePhdrCallback): Adjust type of load_base for FRV
6037         FDPIC.  Compute data base address.
6038         * config/frv/linux.h (SUBTARGET_DRIVER_SELF_SPECS): Enable -mfdpic
6039         before the other self-specs are processed.
6040         * config/frv/t-linux (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS):
6041         Build with -fPIC.
6042         2003-12-15  Alexandre Oliva  <aoliva@redhat.com>
6043         * unwind-dw2-fde-glibc.c: Don't include bits/elf-fdpic.h if
6044         inhibit_libc is defined.
6045         2003-12-12  Alexandre Oliva  <aoliva@redhat.com>
6046         * unwind-dw2-fde-glibc.c: Include bits/elf-fdpic.h for
6047         __FRV_FDPIC__.
6048         (__RELOC_POINTER): Define.
6049         (_Unwind_IteratePhdrCallback): Use it.
6050         * config/frv/frv.h (Twrite): Define.
6051         (TRANSFER_FROM_TRAMPOLINE): Use it.
6052         * config/frv/linux.h (INVOKE__main): Undefine.
6053         (Twrite): Override.
6054         2003-12-05  Richard Sandiford  <rsandifo@redhat.com>
6055         * doc/invoke.texi (-mlong-calls, -mlinked-fp): Document FRV options.
6056         (-mlibrary-pic): Emphasize that this option generates EABI code.
6057         (-mcpu): Add fr550.
6058         (-mpack): Remove.
6059         2003-11-30  Alexandre Oliva  <aoliva@redhat.com>
6060         * config/frv/frv.c (int_2word_operand): Reject LABELs, SYMBOL_REFs
6061         and CONSTs in FDPIC mode.
6062         * gcc/config.gcc (with_cpu): Default to fr400 on frv-*-*linux*.
6063         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
6064         * config/frv/frv.c (move_source_operand): Don't accept symbolic
6065         constants.
6066         * config/frv/frv.md (*movhi_internal, *movsi_internal): Use an 'n'
6067         rather than 'i' constraint for the 2-instruction alternative.
6068         (*movsi_2word): New, incorporating existing int_2word_operand splitter.
6069         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
6070         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Q): Renamed from
6071         EXTRA_CONSTRAINT_FOR_Y.
6072         (EXTRA_CONSTRAINT): Remove handling of 'Y'.
6073         * config/frv/frv.md (*movsi_internal): Remove 'Q' constraint.
6074         (addsi3): Change 'Y' constraint to 'Q'.
6075         2003-11-27  Richard Sandiford  <rsandifo@redhat.com>
6076         * reload.c (CONST_POOL_OK_P): New macro.
6077         (find_reloads): Use it to decide whether a constant can be forced
6078         into memory.
6079         * config/frv/frv.h (LEGITIMATE_PIC_OPERAND_P): Return true if the
6080         constant satisfies got12_operand.
6081         (frv_cannot_force_const_mem): Always return true for TARGET_FDPIC.
6082         (frv_legitimate_address_p): Check for valid unspec offsets using
6083         got12_operand rather than frv_legitimate_fdpic_operand_p.
6084         (frv_legitimate_fdpic_operand_p): Delete.
6085         (frv_emit_movsi): Abort if we try to use the FDPIC register during
6086         or after reload.
6087         (frv_legitimate_constant_p): Return LEGITIMATE_PIC_OPERAND_P if
6088         TARGET_FDPIC.
6089         * config/frv/frv.md (*movdf_double): Add alternatives for CONST_DOUBLE.
6090         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
6091         * config/frv/frv-protos.h (fdpic_operand, fdpic_got12_operand)
6092         (frv_fdpic_fptr_operand): Don't declare here.
6093         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Y): Call got12_operand
6094         rather than fdpic_got12_operand.
6095         (PREDICATE_CODES): Remove symbolic_operand entry.  Add entries for
6096         got12_operand and const_unspec_operand.
6097         * config/frv/frv.c (got12_operand): Renamed from fdpic_got12_operand.
6098         (gpr_or_int12_operand, dbl_memory_one_insn_operand): Update calls.
6099         (symbolic_operand): Remove.
6100         (const_unspec_operand): New predicate.
6101         * config/frv/frv.md (*movsi_got): Use got12_operand.
6102         (*movsi_high_got, *movsi_lo_sum_got): Use const_unspec_operand.
6103         2003-11-18  Richard Sandiford  <rsandifo@redhat.com>
6104         * config/frv/frv-protos.h (frv_output_addr_const_extra): Remove.
6105         * config/frv/frv.h (OUTPUT_ADDR_CONST_EXTRA): Remove definition.
6106         * config/frv/frv.c (frv_unspec): New structure.
6107         (frv_small_data_reloc_p, frv_const_unspec_p): New functions.
6108         (frv_print_operand_memory_reference): Use frv_const_unspec_p to
6109         validate CONST indices.  Use frv_output_const_unspec to print them.
6110         (frv_print_operand): Update call to unspec_got_name.  Use
6111         frv_output_const_unspec to print constant unspecs.
6112         (frv_legitimate_fdpic_operand_p): Return true if frv_const_unspec_p.
6113         Reject UNSPECs otherwise.
6114         (unspec_got_name): Take the relocation number as argument, not an
6115         rtx containing it.
6116         (frv_output_addr_const_extra): Remove, replacing with...
6117         (frv_output_const_unspec): ...this new function.
6118         (frv_find_base_term): Use frv_const_unspec_p & frv_small_data_reloc_p.
6119         (gpr_or_int12_operand): Use fdpic_got12_operand.
6120         (dbl_memory_one_insn_operand): Likewise.
6121         (fdpic_got12_operand): Use frv_const_unspec_p.
6122         (frv_emit_movsi): Use frv_const_unspec_p to check for CONSTs that
6123         are already legitimate.  Use frv_small_data_reloc_p when deciding
6124         whether to use HIGH/LO_SUM for R_FRV_GOTOFF12 and R_FRV_GPREL12.
6125         2003-11-18  Alexandre Oliva  <aoliva@redhat.com>
6126         * config/frv/t-linux (SHLIB_MAPFILES): Override so as to export...
6127         * config/frv/libgcc-frv.ver: ... frv-specific symbols.  New file.
6128         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
6129         label, for real this time.
6130         * config/frv/frv.c (frv_local_funcdesc_p): Update to new
6131         representation of visibility.
6132         (fdpic_got12_operand, symbolic_operand): Mark unused arguments as
6133         such.
6134         2003-11-17  Richard Sandiford  <rsandifo@redhat.com>
6135         * config/frv/frv.h (MASK_LINKED_FP, TARGET_LINKED_FP): New macros.
6136         (TARGET_SWITCHES): Add -mlinked-fp and -mno-linked-fp.
6137         * config/frv/frv.c (frv_override_options): Set MASK_LINKED_FP unless
6138         it was explicitly disabled.
6139         (frv_stack_info): There is no need to save the link register in every
6140         frame unless TARGET_LINKED_FP is true.
6141         (frv_frame_pointer_required): If !TARGET_LINKED_FP, only require a
6142         frame pointer if the stack pointer might change value.
6143         (frv_return_addr_rtx): Check and process "count" argument.
6144         2003-11-14  Richard Sandiford  <rsandifo@redhat.com>
6145         * config/frv/frv-protos.h (frv_legitimize_address): Remove.
6146         (frv_find_base_term): Declare.
6147         * config/frv/frv.h (LEGITIMIZE_ADDRESS): Do nothing.
6148         (FIND_BASE_TERM): Define.
6149         (PREDICATE_CODES): Remove pic_register_operand, pic_symbolic_operand,
6150         small_data_register_operand, small_data_symbolic_operand.  Add
6151         symbolic_operand.
6152         * config/frv/frv.c (const_small_data_p, plus_small_data_p): Delete.
6153         (frv_print_operand_memory_reference, output_move_single): Remove
6154         special handling for unlegitimized sdata addresses.
6155         (frv_legitimate_address_p): Don't allow sums of SDA_BASE_REG
6156         and symbolic addresses.
6157         (frv_legitimize_address, frv_legitimize_fdpic_address): Delete.
6158         (frv_find_base_term): New function.
6159         (int_2word_operand): Check specifically for symbolic address constants.
6160         (pic_register_operand, pic_symbolic_operand): Delete.
6161         (small_data_register_operand, small_data_symbolic_operand): Delete.
6162         (dbl_memory_one_insn_operand): Don't call plus_small_data_p.
6163         Allow UNSPEC_GOT constants if !TARGET_FDPIC.
6164         (move_source_operand): Only accept CONSTs if they're a two-insn
6165         symbolic constant.
6166         (fdpic_got12_operand): Don't require TARGET_FDPIC.
6167         (frv_emit_movsi): Legitimize sdata and -mlibrary-pic addresses
6168         using gen_symGOTOFF2reg*.
6169         (frv_ifcvt_rewrite_mem): Remove (plus gr16 ...) special cases.
6170         (frv_rtx_costs): Give all MEM addresses a cost of 0.  Give MEMs
6171         themselves a cost of 3 insns.
6172         * config/mips/mips.md (*movsi_got): Allow for !TARGET_FDPIC too.
6173         Change predicate to symbolic_operand.
6174         (*movsi_high_got, *movsi_lo_sum_got): Likewise.
6175         (*movsi_lda_sdata): Delete.
6176         (*movsi_pic, movsi_high_pic, movsi_lo_sum_pic): Delete.
6177         2003-11-05  Alexandre Oliva  <aoliva@redhat.com>
6178         * config.gcc: Add t-slibgcc-elf-ver and support --with-cpu for
6179         frv-*-*linux*.
6180         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
6181         label.
6182         * config/frv/frv.h (DRIVER_SELF_SPECS): Add blank before
6183         -multilib-library-pic.
6184         (LINK_SPEC): Add -z text for -mfdpic.
6185         * config/frv/frvbegin.c (__ROFIXUP_LIST__): Don't define on FDPIC.
6186         * config/frv/frvend.c (__ROFIXUP_END__): Likewise.
6187         * config/frv/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, LINK_SPEC):
6188         Override.
6189         (OPTION_DEFAULT_SPECS, HAS_INIT_SECTION, INIT_SECTION_ASM_OP,
6190         FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION): Define.
6191         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Use
6192         crtstuff-generated files.
6193         2003-10-31  Alexandre Oliva  <aoliva@redhat.com>
6194         * config.gcc: Add frv-*-*linux*.
6195         * config/frv/linux.h, config/frv/t-linux: New.
6196         2003-10-06  Alexandre Oliva  <aoliva@redhat.com>
6197         * config/frv/frv.h (LINK_SPEC): Pass -melf32frvfd to the linker
6198         when -mfdpic even if a linker script is explicitly listed.
6199         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
6200         * config/frv/frv.c (frv_override_options): Clear asm_out
6201         unaligned_op for SImode on FDPIC.
6202         (frv_emit_movsi): Use compute_reloc_for_constant to compute the
6203         argument passed to decl_readonly_section.
6204         (frv_assemble_integer): Revert 2003-09-30's change, but make the
6205         whole block run with FDPIC even with -fno-PIC.
6206         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
6207         * config/frv/frv.c (frv_cannot_force_const_mem): Don't force
6208         symbol or label plus offset to memory.
6209         (frv_emit_movsi): Emit GPREL only if -mgprel-ro.  Emit 32-bit
6210         GOTOFF and GPREL for LABEL_REF.
6211         * config/frv/frv.h (DRIVER_SELF_SPECS): Add -mgprel-ro with
6212         -mfdpic unless -mno-gprel-ro, -fpic or -fpie.
6213         (MASK_GPREL_RO, TARGET_GPREL_RO): New.
6214         (TARGET_SWITCHES): Added gprel-ro and no-gprel-ro.
6215         * doc/invoke.texi: Document them.
6216         2003-09-30  Alexandre Oliva  <aoliva@redhat.com>
6217         * config/frv/frv-protos.h (frv_gen_GPsym2reg): Declare.
6218         (frv_splittable_got_operand): Removed.
6219         * config/frv/frv.c (frv_cannot_force_const_mem): Reject HIGH and
6220         LO_SUM.  Add comments.
6221         (frv_override_options): Moved enabling of FDPIC to
6222         DRIVER_SELF_SPECS.  Don't enable MASK_DWORD.
6223         (frv_local_funcdesc_p): Remove unnecessary heck for flag_pie.
6224         (frv_legitimize_fdpic_address): Don't duplicate logic in
6225         frv_emit_movsi.
6226         (frv_gen_GPsym2reg): New.
6227         (unspec_got_name): Added gprel.
6228         (frv_expand_fdpic_call): Add support for inlining PLTs.
6229         (fdpic_fptr_operand): Renamed from frv_fdpic_fptr_operand.
6230         (gpr_or_int12_operand): Added GPREL12.
6231         (pic_symbolic_operand): Match even if !flag_pic for FDPIC.
6232         (small_data_symbolic_operand): Fail if FDPIC.
6233         (fdpic_splittable_got_operand): Removed.
6234         (fdpic_got12_operand): Added GPREL12.
6235         (frv_emit_movsi): Reorganize to avoid duplication.  Emit GPREL
6236         when appropriate.  Fix sdata GOTOFF.
6237         (frv_legitimate_constant_p): Require legitimate PIC operand for
6238         FDPIC with pic, but only a legitimate fdpic operand for non-pic.
6239         (frv_assemble_integer): Move FDPIC funcdesc handling out of
6240         flag_pic case.
6241         (frv_asm_out_constructor, frv_asm_out_destructor): Abort if
6242         frv_assemble_integer fails.
6243         * config/frv/frv.h (DRIVER_SELF_SPECS): New.
6244         (SUBTARGET_DRIVER_SELF_SPECS): New.
6245         (ASM_SPEC): Don't pass -mno-fdpic.
6246         (LINK_SPEC): Pass -melf32frvfd for FDPIC.
6247         (MASK_INLINE_PLT, TARGET_INLINE_PLT): New.
6248         (TARGET_SWITCHES): Add -minline-plt, -mno-inline-plt and
6249         -multilib-library-pic.
6250         (PREDICATE_CODES): Added fdpic_operand, fdpic_fptr_operand,
6251         condexec_si_media_operator, condexec_sf_add_operator and
6252         condexec_sf_conv_operator.  Removed condexec_sf_binary_operator
6253         and condexec_sf_unary_operator.
6254         * config/frv/frv.md (R_FRV_GPREL12, R_FRV_GPRELHI, R_FRV_GPRELLO):
6255         New.
6256         (movsi_got, movsi_high_got, movsi_lo_sum_got): Move before
6257         movsi_internal.  Give them internal names.  movsi_got has type
6258         int.
6259         (fdpic got splitters): Remove.
6260         (symGPREL2reg, symGPREL2reg_hilo): New.
6261         * config/frv/t-frv (MULTILIB_MATCHES): Don't map -fpic and -fPIC
6262         to -mlibrary-pic.  Map -multilib-library-pic to it.
6263         * doc/invoke.texi: -mfdpic, -minline-plt, -multilib-library-pic:
6264         Document.
6265         2003-09-28  Alexandre Oliva  <aoliva@redhat.com>
6266         * config/frv/frv.c (frv_function_symbol_referenced_p): Declare.
6267         (TARGET_CANNOT_FORCE_CONST_MEM): Define to...
6268         (frv_cannot_force_const_mem): New function.
6269         (const_small_data_p, plus_small_data_p): Update comments on sdata
6270         on FDPIC.
6271         (frv_override_options): Set flag_pie for FDPIC too.
6272         (frv_conditional_register_usage): Mark gr16 and gr17 as non-fixed,
6273         call-saved registers on FDPIC.
6274         (frv_stack_info): Don't preserve the PIC register on FDPIC, and
6275         don't force LR to be preserved.
6276         (frv_expand_prologue): Likewise.
6277         (frv_asm_output_mi_thunk): Use 12-bit funcdesc gotoff for -fpic.
6278         (frv_frame_pointer_required): Don't force it just because the
6279         FDPIC register is used.
6280         (frv_legitimate_address_p) <CONST>: Accept a legitimate FDPIC
6281         operand only if !condexec_p.
6282         (frv_legitimize_address): Return the FDPIC-legitimized address.
6283         Don't match small data here on FDPIC.
6284         (frv_legitimate_fdpic_operand_p): Don't accept unadorned function
6285         symbols.  Use TRUE/FALSE instead of 1/0.
6286         (frv_local_funcdesc_p): New.
6287         (frv_legitimize_fdpic_address): Rewrite to use GOTOFF and 12-bit
6288         immediates when possible.
6289         (pic_symbolic_operand): Accept SYMBOL_REFs and CONSTs in FDPIC.
6290         (dbl_memory_one_insn_operand): Accept addresses that add a REG and
6291         an UNSPEC_GOT.
6292         (frv_emit_movsi): Handle FDPIC before small data.  Use GOTOFF and
6293         12-bit immediates when possible.
6294         (frv_legitimate_constant_p): In FDPIC, reject SImode operands that
6295         are not legitimate pic operands.
6296         (frv_in_small_data_p): Re-enable for FDPIC.
6297         * config/frv/frv.h (SDA_BASE_REG): Remove comment about FDPIC.
6298         (FRV_GLOBAL_P): Removed.
6299         * config/frv/frv.md: Add modes to CONSTs.
6300         (movsi_got): New.
6301         (movsi_lo_sum_got): Use separate matches instead of match_dup.
6302         (movsi_high_pic, movsi_lo_sum_pic): Match on non-FDPIC only.
6303         (fdpic splittable operations): Match on flag_pic != 1.
6304         2003-09-22  Alexandre Oliva  <aoliva@redhat.com>
6305         * config/frv/frv.c (frv_asm_out_constructor,
6306         frv_asm_out_destructor): Pass to frv_assemble_integer the size in
6307         bytes, not bits.
6308         2003-09-19  Alexandre Oliva  <aoliva@redhat.com>
6309         * config/frv/frv.c (frv_assemble_integer): Reject complex
6310         expressions referencing function SYMBOL_REFs.
6311         * config/frv/frv.c (frv_function_symbol_referenced_p): New.
6312         (move_source_operand): Reject CONSTs that reference function
6313         SYMBOL_REFs on FDPIC.
6314         (frv_emit_movsi): If we get such a CONST, break it up.
6315         * config/frv/frv.h (CPP_SPEC): Define __FRV_FDPIC__ for -mfdpic.
6316         (TRANSFER_FROM_TRAMPOLINE): Use different definitions for FDPIC.
6317         * config/frv/frv.c (frv_print_operand) <I>: Recognize PLUS without
6318         MEM.
6319         (frv_assemble_integer): Don't use funcdesc for LABEL_REFs.
6320         (frv_trampoline_size): Increase for FDPIC.
6321         * config/frv/frv.h (TRAMPOLINE_ALIGNMENT): Bump to 64 for FDPIC.
6322         (TRANSFER_FROM_TRAMPOLINE): Handle FDPIC trampolines.
6323         * config/frv/frv.c (frv_legitimize_fdpic_address, frv_emit_movsi):
6324         Disable use of GOTOFF for now.
6325         (const_small_data_p, plus_small_data_p, frv_in_small_data_p):
6326         Disable use of small data in FDPIC for now.
6327         (frv_asm_output_mi_thunk): Implement for FDPIC.
6328         * config/frv/frv.h (SDA_BASE_REG): Set to -1 with FDPIC.
6329         * config/frv/frv.c (frv_asm_out_constructor): Use
6330         frv_assemble_integer for FDPIC pointers.
6331         (frv_asm_out_destructor): Likewise.
6332         * config/frv/frv.md (ldd): Fix order of operands.  Use
6333         address_operand for input.
6334         2003-09-18  DJ Delorie  <dj@redhat.com>
6335         * config/frv/frv.c (frv_legitimate_fdpic_operand_p): Remove UNSPEC_PIC.
6336         (unspec_got_name): Correct typo.
6337         (frv_emit_movsi): Pre-expand splittable GOTs.
6338         (frv_expand_fdpic_call): Rename gen_lddi to gen_ldd.
6339         * config/frv/frv.md (lddi): Fix syntax error, rename to ldd.
6340         (symGOT2reg_hilo, symGOTOFF2reg_hilo): New.
6341         * config/frv/t-frv: Add -mfdpic multilibs.
6342         * config/frv/frv.h (ASM_SPEC): Pass -mfdpic/-mno-fdpic.
6343         (TARGET_SWITCHES): Add -mno-fdpic, fix documentation.
6344         * config/frv/frv.c (frv_override_options): -mfdpic assumes
6345         flag_pic, default to 32-bit pics, require DWORD ops.
6346         (frv_override_options): Add W and Z constraints.
6347         (frv_expand_prologue): No pic prologue for -mfdpic.
6348         (frv_asm_output_mi_thunk): Support -mfdpic (soon).
6349         (frv_print_operand_memory_reference): Handle GOT constants.
6350         (frv_legitimate_address_p): Allow GOT constants.
6351         (frv_legitimize_address): Handle GOT addresses too.
6352         (frv_legitimate_fdpic_operand_p): New.
6353         (frv_legitimize_fdpic_address): New.
6354         (unspec_got_name): New.
6355         (frv_output_addr_const_extra): New.
6356         (frv_expand_fdpic_call): New.
6357         (frv_fdpic_fptr_operand): New.
6358         (gpr_or_int12_operand): Handle GOT operands.
6359         (int_2word_operand): Handle GOT operands.
6360         (fdpic_operand): New.
6361         (fdpic_splittable_got_operand): New.
6362         (fdpic_got12_operand): New.
6363         (frv_emit_movsi): Handle GOT operands.
6364         (frv_assemble_integer): -mfdpic doesn't use rofixups.
6365         (frv_print_operand): Support 'g' code for GOT operands.
6366         * config/frv/frv-protos.h: Add prototypes as needed.
6367         * config/frv/frv.md (R_FRV_GOT12, R_FRV_GOTHI, R_FRV_GOTLO,
6368         R_FRV_FUNCDESC, R_FRV_FUNCDESC_GOT12, R_FRV_FUNCDESC_GOTHI,
6369         R_FRV_FUNCDESC_GOTLO, R_FRV_FUNCDESC_VALUE,
6370         R_FRV_FUNCDESC_GOTOFF12, R_FRV_FUNCDESC_GOTOFFHI,
6371         R_FRV_FUNCDESC_GOTOFFLO, R_FRV_GOTOFF12, R_FRV_GOTOFFHI,
6372         R_FRV_GOTOFFLO): New.
6373         (movsi_high_got, movsi_lo_sum_got): New.
6374         (*movsi_pic): Don't use this splitter for -mfdpic.
6375         (addsi3): Allow GOT references also.
6376         (call, call_value): Handle -mfdpic separately.
6377         (call_fdpicdi, call_fdpicsi, lddi, call_value_fdpicdi,
6378         call_value_fdpicsi): New.
6379         (symGOT2reg, symGOT2reg_i, got splitters, symGOTOFF2reg,
6380         symGOTOFF2reg_i): New.
6381         * config/frv/frv.h (MASK_FDPIC): New.
6382         (TARGET_FDPIC): New.
6383         (TARGET_SWITCHES): Add -mfdpic.
6384         (FDPIC_FPTR_REGNO): New.
6385         (FDPIC_REGNO): New.
6386         (OUR_FDPIC_REG): New.
6387         (enum reg_class): Add FDPIC_REGS, FDPIC_FPTR_REGS, and
6388         FDPIC_CALL_REGS.
6389         (REG_CLASS_NAMES): Likewise.
6390         (REG_CLASS_CONTENTS): Likewise.
6391         (EXTRA_CONSTRAINT_FOR_Y): New, for 12-bit GOTs.
6392         (EXTRA_CONSTRAINT): Add it here.
6393         (FRV_GLOBAL_P): New.
6394         (OUTPUT_ADDR_CONST_EXTRA): New.
6395
6396 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
6397
6398         * config/sparc/sparc.h: Remove commented-out definitions of
6399         TARGET_EDOM and GEN_ERRNO_RTX.
6400
6401 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
6402
6403         * df.c, df.h, ra-build.c, ra-rewrite.c, ra.c, web.c: Replace
6404         df_analyse with df_analyze.
6405
6406 2004-02-24  Alan Modra  <amodra@bigpond.net.au>
6407
6408         * gcse.c (delete_null_pointer_checks_1): Set stop_insn to end, not
6409         beginning of block.
6410
6411 2004-02-23  James E Wilson  <wilson@specifixinc.com>
6412
6413         * calls.c (precompute_arguments): Update comment.
6414
6415 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
6416
6417         * et-forest.c: Replace et_occurences with et_occurrences.
6418
6419 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
6420
6421         * cfgloop.h, loop-iv.c, loop-unswitch.c: Replace iv_analyse
6422         with iv_analyze.
6423
6424 2004-02-23  Kelley Cook  <kcook@gcc.gnu.org>
6425
6426         * config/i386/i386.c: Rename pni to sse3.
6427         * config/i386/i386.h: Likewise.
6428         * config/i386/i386.md: Likewise.
6429         * config/i386/pmmintrin.h: Likewise.
6430         * doc/extend.texi: Likewise.
6431         * doc/invoke.texi: Likewise.
6432
6433 2004-02-23  Zack Weinberg  <zack@codesourcery.com>
6434             Kazu Hirata  <kazu@cs.umass.edu>
6435
6436         Remove -fwritable-strings.
6437         * c-common.c (fix_string_type): Don't check
6438         flag_writable_strings.
6439         (fix_string_type): Likewise.
6440         * c-opts.c (set_std_c89): Don't initialize
6441         flag_writable_strings.
6442         (set_std_c99): Likewise.
6443         * common.opt (fwritable-strings): Remove.
6444         * flags.h: Remove the external declaration of
6445         flag_writable_strings.
6446         * opts.c (common_handle_option) <OPT_fwritable_strings>:
6447         Remove.
6448         * toplev.c (flag_writable_strings): Remove.
6449         (f_options): Remove an entry for writable-strings.
6450         * varasm.c (const_hash_1) <STRING_CST>: Don't check
6451         flag_writable_strings.
6452         (compare_constant) <STRING_CST>: Likewise.
6453         (build_constant_desc): Likewise.
6454         * config/darwin.c (machopic_select_section): Likewise.
6455         * config/arm/arm.c (AOF_ASSEMBLER): Likewise.
6456         * config/arm/pe.c (arm_pe_encode_section_info): Likewise.
6457         * config/iq2000/iq2000.c (iq2000_select_section): Likewise.
6458         * config/mips/mips.c (mips_select_section): Likewise.
6459         (mips_encode_section_info): Likewise.
6460         * config/pa/pa.c (pa_select_section): Likewise.
6461         * config/pa/pa.h (TEXT_SPACE_P): Likewise.
6462         * config/v850/v850.c (v850_select_section): Likewise.
6463         * doc/invoke.texi (-fwritable-strings): Remove.
6464         (-fno-const-strings): Don't mention -fwritable-strings.
6465         * doc/trouble.texi: Don't mention -fwritable-strings.
6466
6467 2003-02-23  Nathanael Nerode  <neroden@gcc.gnu.org>
6468
6469         * doc/install.texi: Update for switch of boehm-gc to autoconf 2.57.
6470
6471 2004-02-23  Dale Johannesen  <dalej@apple.com>
6472
6473         * config/rs6000.md (movsf_hardfloat): Add POWER form of nop.
6474         (movdf_hardfloat64):  Ditto.
6475         (movdf_softfloat64):  Ditto.
6476
6477 2004-02-23  Fariborz Jahanian <fjahanian@apple.com>
6478         * config/rs6000/rs6000.c (function_arg): call to
6479         rs6000_mixed_function_arg for DFmode moved to allow
6480         normal DFmode incoming register assignment.
6481
6482 2004-02-23  Dale Johannesen  <dalej@apple.com>
6483
6484         * config/rs6000.md (movsf_hardfloat): Accept CTR-to-CTR copy.
6485         (movdf_hardfloat64):  Ditto.
6486
6487 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
6488
6489         * convert.c, gcov-io.c, libgcov.c, sched-int.h, sibcall.c,
6490         config/rs6000/linux.h, config/rs6000/rs6000-c.c: Update
6491         copyright.
6492
6493 2004-02-23  Andrew Pinski  <pinskia@physics.uc.edu>
6494
6495         PR c/14156
6496         * c-typeck.c (c_expand_return): Change check for VAR_DECL
6497         to use DECL_P instead.
6498
6499         * config/rs6000/linux.h (OS_MISSING_POWERPC64): Define.
6500         * config/rs6000/linux64.h (OS_MISSING_POWERPC64): Define.
6501
6502 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
6503
6504         * Makefile.in (opts.o): Depend on target.h.
6505         * opts.c (decode_options): Use targetm.default_short_enums
6506         instead of DEFAULT_SHORT_ENUMS.
6507         * system.h (DEFAULT_SHORT_ENUMS): Poison.
6508         * target-def.h (TARGET_DEFAULT_SHORT_ENUMS): New.
6509         (TARGET_INITIALIZER): Add TARGET_DEFAULT_SHORT_ENUMS.
6510         * target.h (gcc_target): Add default_short_enums.
6511         * config/cris/cris.h: Remove a comment about
6512         DEFAULT_SHORT_ENUMS.
6513         * config/ip2k/ip2k.h: Likewise.
6514         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Change to
6515         TARGET_DEFAULT_SHORT_ENUMS.  Update the description.
6516
6517 2004-02-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
6518             Falk Hueffner  <falk@debian.org>
6519
6520         PR c/14188
6521         * builtins.c (expand_builtin_va_arg): Emit an informative message
6522         if a trap is generated.
6523         * c-typeck.c (build_function_call): Likewise.
6524
6525 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
6526
6527         * gcov-io.c (gcov_open) [GCOV_LOCKED]: Use open + fdopen instead of
6528         fopen.
6529         * libgcov.c: Include sys/stat.h.
6530         * config/rs6000/linux.h (TARGET_HAS_F_SETLKW): Define.
6531         * config/rs6000/linux64.h (TARGET_HAS_F_SETLKW): Define.
6532         * config/sparc/linux.h (TARGET_HAS_F_SETLKW): Define.
6533         * config/sparc/linux64.h (TARGET_HAS_F_SETLKW): Define.
6534
6535 2004-02-22  Kazu Hirata  <kazu@cs.umass.edu>
6536
6537         * reorg.c: Remove comments about dead ports.
6538
6539 2004-02-22  Christopher Faylor  <cgf@redhat.com>
6540
6541         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): *Really* specify
6542         extra host object file when targetting cygwin rather than generic
6543         object files.
6544
6545 2004-02-22  Josef Zlomek  <zlomekj@suse.cz>
6546
6547         Merge from tree-ssa:
6548         2003-11-20  Richard Henderson  <rth@redhat.com>
6549
6550                 * tree-inline.c (insert_decl_map): New.
6551                 (remap_decl, remap_type, remap_block, copy_body_r,
6552                 initialize_inlined_parameters, declare_return_variable,
6553                 remap_save_expr): Use it.
6554
6555         * function.c (copy_body_r): Add mapping from id->ret_label to
6556         id->ret_label.  Revert test for ret_label.
6557
6558 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
6559
6560         * genoutput.c (process_template): Strip trailing whitespace in @
6561         templates and issue a warning if there was any.
6562
6563 2004-02-21  Christopher Faylor  <cgf@redhat.com>
6564
6565         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): Specify extra host
6566         object file when targetting cygwin.
6567         * config/i386/t-cygwin (EXTRA_GCC_OBJS): Remove definition since it is
6568         overridden by top-level Makefile.
6569
6570 2004-02-21  Roger Sayle  <roger@eyesopen.com>
6571
6572         * config/i386/i386.c (standard_80387_constant_p): Also prefer
6573         the x87's load constant instructions when optimizing for size.
6574
6575 2004-02-21  Kazu Hirata  <kazu@cs.umass.edu>
6576
6577         * combine.c (SHIFT_COUNT_TRUNCATED): Remove.
6578         * defaults.h (SHIFT_COUNT_TRUNCATED): Provide the default.
6579         * expmed.c: Assume SHIFT_COUNT_TRUNCATED is always defined.
6580         * fold-const.c: Likewise.
6581         * simplify-rtx.c: Likewise.
6582
6583 2004-02-21  Alan Modra  <amodra@bigpond.net.au>
6584
6585         * combine.c (can_combine_p): Don't ignore SETs marked with
6586         REG_EH_REGION notes.
6587         (try_combine): When attemting to fix unrecognized insns, don't
6588         split a PARALLEL that contains the original i2.
6589
6590 2004-02-21  Ziemowit Laski  <zlaski@apple.com>
6591
6592         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Refer to
6593         SUBTARGET_OPTION_TRANSLATE_TABLE for architecture-specific options.
6594         * config/i386/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): Define it.
6595         * config/rs6000/altivec.h: #error out if '-maltivec' not specified.
6596         (vector, pixel, bool): #define to __vector, __pixel and __bool.
6597         (__un_args_eq, __bin_args_eq, __tern_args_eq): Move to C-specific
6598         portion of header.
6599         (__altivec_link_error_invalid_argument): Remove prototype; will use
6600         __builtin_altivec_compiletime_error("vec_*") instead.
6601         (vec_*): Fix/complete set of available operation overloads given the
6602         existence of distinct 'vector bool ...' and 'vector pixel' types; tighten
6603         cv-correctness of pointer arguments; in C, always check for correct
6604         argument types before macro expansion.
6605         * config/rs6000/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): New macro
6606         defining Darwin/PowerPC-specific '-f[no-]altivec' and
6607         '-W[no-]altivec-long-deprecated' switches.
6608         * config/rs6000/rs6000-c (rs6000_cpu_cpp_builtins): Pre-define
6609         '__vector', '__pixel' and '__bool' macros using
6610         '__attribute__((altivec(...)))' types.
6611         * config/rs6000/rs6000.c (bool_char_type_node, bool_short_type_node,
6612         bool_int_type_node, pixel_type_node, bool_V16QI_type_node,
6613         bool_V8HI_type_node, bool_V4SI_type_node, pixel_V8HI_type_node):
6614         New type nodes.
6615         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): New, for
6616         handling '-W[no-]altivec-long-deprecated'.
6617         (rs6000_override_options): Handle '-W[no-]altivec-long-deprecated'.
6618         (rs6000_expand_binop_builtin, rs6000_expand_ternop_builtin,
6619         altivec_expand_dst_builtin): Remove casts from integer literals.
6620         (altivec_expand_builtin): Likewise; handle expansion of new
6621         '__builtin_altivec_compiletime_error' function.
6622         (rs6000_init_builtins): Initialize 'vector bool ...' and 'vector pixel'
6623         types, and make them distinct from other vector types; register
6624         '__builtin_altivec_compiletime_error' function.
6625         (print_operand): For 'P', print a full target register name instead of
6626         merely its number.
6627         (rs6000_attribute_table): Add "altivec" attribute.
6628         (rs6000_handle_altivec_attribute): New function.
6629         * config/rs6000/rs6000.h (TARGET_OPTIONS): Describe
6630         '-m[no-]-warn-altivec-long' (which '-W[no-]altivec-long-deprecated'
6631         maps to).
6632         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): Forward
6633         declare.
6634         (ALTIVEC_BUILTIN_COMPILETIME_ERROR): New built-in enumeration.
6635
6636 2004-02-20  James E Wilson  <wilson@specifixinc.com>
6637
6638         * config/ia64/ia64.md (shift_mix4left+1): Delete reload_completed
6639         check.
6640         (shift_mix4left+2): Delete redundant pattern.
6641
6642 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
6643
6644         * alias.c (OUTGOING_REGNO): Don't define the default.
6645         * builtins.c (OUTGOING_REGNO): Likewise.
6646         (INCOMING_REGNO): Likewise.
6647         (apply_args_register_offset): Always use OUTGOING_REGNO.
6648         * combine.c (OUTGOING_REGNO): Likewise.
6649         * sibcall.c (OUTGOING_REGNO): Likewise.
6650         * defaults.h (INCOMING_REGNO): Provide the default.
6651         (OUTGOING_REGNO): Likewise.
6652
6653 2004-02-21  Jan Hubicka  <jh@suse.cz>
6654
6655         * params.def (max-peeled-insns, max-completely-peeled-insns,
6656         max-once-peeled-insns): Set to 400.
6657
6658 2004-02-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6659
6660         PR c++/12007
6661         * dbxout.c (dbxout_parms): Check that DECL_RTL and DECL_INCOMING_RTL
6662         are set for parameters before outputing debugging information.
6663
6664 2004-02-20  Falk Hueffner  <falk@debian.org>
6665
6666         PR target/14201
6667         * config/alpha/alpha.md (*fix_truncsfsi_ieee): Fix typoed operand
6668         numbers.
6669
6670 2004-02-20  Per Bothner  <per@bothner.com>
6671
6672         * input.h:  Don't #include line-map.h.  It may cause link problems
6673         with undefined linemap_line_start when line-map.h is included but
6674         line-map.o is not linked, as currently happens with gengtype on
6675         compilers that don't support inline.
6676         * toplev.c:  So we do have to explicitly #include line-map.h here.
6677
6678 2004-02-20  Richard Henderson  <rth@redhat.com>
6679
6680         * doc/invoke.texi: Add -Wvariadic-macros.
6681
6682 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
6683
6684         * haifa-sched.c (sched_emit_insn): Remove.
6685         * sched-int.h: Remove the corresponding prototype.
6686
6687 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
6688
6689         Revert:
6690         2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
6691         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
6692         * system.h (DEFAULT_SHORT_ENUMS): Poison.
6693         * config/cris/cris.h: Remove a comment about
6694         DEFAULT_SHORT_ENUMS.
6695         * config/ip2k/ip2k.h: Likewise.
6696         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
6697
6698 2004-02-20  Mohan Embar  <gnustuff@thisiscool.com>
6699             Tom Tromey  <tromey@redhat.com>
6700
6701         * doc/install.texi: Moved --disable-libgcj and
6702         --with-system-zlib documentation to new section for
6703         Java-specific options.
6704         Added explicit Cross-Compiler-Specific Options subheading.
6705         Added section for Java-specific options.
6706
6707 2004-02-20  Matt Kraai  <kraai@alumni.cmu.edu>
6708
6709         * doc/install.texi (Building the Ada compiler): Remove
6710         example.
6711
6712 2004-02-20  James E Wilson  <wilson@specifixinc.com>
6713
6714         * toplev.c (dump_file_index, dump_file): Put ce3 before rnreg.
6715
6716 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
6717
6718         * gcc.c (process_command): Allow translation of the copyright
6719         symbol but not the rest of the copyright message.
6720         * gcov.c (print_version): Likewise.  Allow translation of the
6721         message about warranty.
6722
6723 2004-02-20  Hans-Peter Nilsson  <hp@axis.com>
6724
6725         * config/cris/cris.md ("*andsi_movu"): Correct parentheses in
6726         predicate.
6727         ("*andsi_clear"): Tweak constraints to not match postincrement.
6728         Adjust the predicate to exclude a volatile memory reference.
6729         ("*andhi_clear"): Ditto.  Rename from "*andhi_clear_signed".
6730         ("*andhi_clear_unsigned"): Remove, non-matching pattern.
6731
6732 2004-02-19  Matt Kraai  <kraai@alumni.cmu.edu>
6733
6734         * move-if-change: Remove.
6735         * Makefile.in (s-mlib, c-parse.y, s-check, s-gencheck)
6736         (s-specs, s-options, s-config, s-conditions, s-flags, s-codes)
6737         (s-constants, s-emit, s-recog, s-opinit, s-extract, s-peep)
6738         (s-attr, s-attrtab, s-output, s-genrtl, s-modes, s-preds)
6739         (s-gtyp-gen, s-iov): Use the top level move-if-change.
6740         * objc/Make-lang.in (objc/objc-parse.y): Likewise.
6741
6742 2004-02-19  James E Wilson  <wilson@specifixinc.com>
6743
6744         * config/i386/i386.md (doloop_end_internal): Use nonimmediate_operand
6745         for operand2.  Add condition that requires register_operand operand2
6746         before reload.
6747
6748 2004-02-19  Richard Sandiford  <rsandifo@redhat.com>
6749             Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
6750
6751         * config/mips/mips.c (mips_address_insns): Treat BLKmode specially.
6752         * config/mips/mips.md: Expand comment above unaligned loads and stores.
6753
6754 2004-02-19  Richard Henderson  <rth@redhat.com>
6755
6756         * Makefile.in (STRICT2_WARN): Add -Wno-variadic-macros.
6757         * tree.c (build0, build1, build2, build3, build4): Split out from...
6758         (build): ... here.  Call them.
6759         * tree.h (build, _buildN1, _buildN2, _buildC1, _buildC2): New.
6760
6761         * convert.c (convert_to_integer): Remove extra build argument.
6762         * tree-inline.c (expand_call_inline): Likewise.
6763
6764 2004-02-19  Richard Henderson  <rth@redhat.com>
6765
6766         * c-opts.c (warn_variadic_macros): New.
6767         (c_common_handle_option): Set it.
6768         (sanitize_cpp_opts): Copy it to cpp_opts.
6769         * c.opt (Wvariadic-macros): New.
6770         * cpplib.h (struct cpp_options): Add warn_variadic_macros.
6771         * cppinit.c (cpp_create_reader): Initialize it.
6772         * cppmacro.c (parse_params): Check it.
6773
6774 2004-02-19  David Daney <ddaney@avtrex.com>
6775
6776         PR preprocessor/14198
6777         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Add
6778         builtin_assert ("machine=mips")
6779
6780 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
6781
6782         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
6783         * system.h (DEFAULT_SHORT_ENUMS): Poison.
6784         * config/cris/cris.h: Remove a comment about
6785         DEFAULT_SHORT_ENUMS.
6786         * config/ip2k/ip2k.h: Likewise.
6787         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
6788
6789 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
6790
6791         * config/ia64/ia64.c (ia64_function_arg): In big-endian mode,
6792         when passing single SFmode quantities in general registers,
6793         put them in the high half.
6794
6795 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
6796
6797         * doc/md.texi (Standard Names): Document additional dependency on
6798         fix pattern.
6799
6800         * optabs.c (ftruncify): Remove.
6801         (expand_fix): Manually inline ftruncify above.
6802         (can_fix_p): Add FIXME note.
6803
6804 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
6805
6806         * config/rs6000/spe.md (spe_fixunssfsi2): Rename to
6807         spe_fixuns_truncsfsi2.
6808
6809         * config/rs6000/rs6000.md (fixunssfsi2): Rename to
6810         fixuns_truncsfsi2.
6811
6812 2004-02-19  Steve Ellcey  <sje@cup.hp.com>
6813
6814         * config/ia64/ia64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
6815         * testsuite/gcc.dg/20040219-1.c: New test.
6816
6817 2004-02-19  Ulrich Weigand  <uweigand@de.ibm.com>
6818
6819         * config/s390/s390.md ("*subdf3_cc", "*subdf3_cconly", "*subsf3_cc",
6820         "*subsf3_cconly"): Subtraction is not commutative.
6821
6822 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
6823
6824         * sdbout.c (preinit_symbols, sdbout_initialized): New statics.
6825         (sdbout_symbol): If called before sdbout_init, queue DECL for
6826         later and return.
6827         (sdbout_init): Set sdbout_initialized true, process decls
6828         queued earlier by sdbout_symbol.
6829         (sdbout_finish): Use size_t for index variable.
6830
6831 2004-02-19  Jeff Law  <law@redhat.com>
6832
6833         * fold-const.c (invert_truthvalue): Do not call invert_tree_comparison
6834         for unordered comparison codes.
6835
6836 2004-02-19  Ian Lance Taylor  <ian@wasabisystems.com>
6837
6838         * reload1.c (reload): Correct comment.
6839         (scan_paradoxical_subregs): Remove #if 0 and old comment.
6840         * doc/extend.texi (Local Reg Vars): Remove obsolete comment that
6841         register variables are not used by reload.
6842
6843 2004-02-19  Hans-Peter Nilsson  <hp@axis.com>
6844
6845         PR target/14209
6846         * config/cris/cris.md ("*andsi_movu", "*andhi_movu"): Tweak
6847         constraints to not match postincrement.  Adjust the predicate to
6848         exclude a volatile memory reference.
6849
6850 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
6851
6852         * config/mcore/mcore.h (ASM_OUTPUT_EXTERNAL): Remove.
6853
6854 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
6855
6856         * hooks.c (hook_void_tree_int): Remove.
6857         (hook_void_constcharptr): Likewise.
6858         (hook_int_void_0): Likewise.
6859         * hooks.h: Remove the prototypes for the above three
6860         functions.
6861         * targhooks.c (hook_bool_machine_mode_true): Remove.
6862         * targhooks.h: Remove the prototype for
6863         hook_bool_machine_mode_true.
6864
6865 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
6866
6867         * emit-rtl.c (subreg_realpart_p): Remove.
6868         (reorder_insns_with_line_notes): Likewise.
6869         (end_full_sequence): Likewise.
6870         * rtl.h: Remove the prototype for the above functions.
6871
6872 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
6873
6874         * config/arc/arc.h, config/arm/arm.h, config/frv/frv.h,
6875         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
6876         config/iq2000/iq2000.h, config/m32r/m32r.h,
6877         config/pdp11/pdp11.h, config/sparc/sparc.h,
6878         config/xtensa/xtensa.h: Remove commented-out or useless
6879         definitions of CASE_VECTOR_PC_RELATIVE.
6880
6881 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
6882
6883         * loop.c (all_sets_invariant_p): Remove.
6884
6885 2004-02-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
6886
6887         PR target/12916
6888         * config/sparc/sparc.h (NPARM_REGS): Delete.
6889         (BASE_RETURN_VALUE_REG): Likewise.
6890         (BASE_OUTGOING_VALUE_REG): Likewise.
6891         (BASE_PASSING_ARG_REG): Likewise.
6892         (BASE_INCOMING_ARG_REG): Likewise.
6893         * config/sparc/sparc.c (sparc_strict_argument_naming): Test
6894         TARGET_ARCH64, not TARGET_V9.
6895         (function_arg_slotno): Dispatch based on the mode class.
6896         Handle vector modes like floating-point modes.
6897         (function_arg_record_value_1): Handle vector types like
6898         floating-point types.
6899         (function_arg_record_value_2): Likewise.
6900         Calculate regno after mode transformation.
6901         (function_arg): Handle vector modes like floating-point modes.
6902         (function_arg_partial_nregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX.
6903         If ARCH64, do not recheck alignment.
6904         (function_arg_pass_by_reference): Reorder the conditions.
6905         (sparc_return_in_memory): Move after function_arg_padding.
6906         Implement calling conventions for vector modes.
6907         (sparc_struct_value_rtx): Move after sparc_return_in_memory.
6908         (function_value): Move scope of 'regbase'.
6909         Implement calling conventions for vector modes.
6910         (sparc_builtin_saveregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX
6911         and BASE_INCOMING_ARG_REG by SPARC_INCOMING_INT_ARG_FIRST.
6912         (sparc_va_arg): Use function_arg_pass_by_reference to test whether
6913         the argument is passed by reference.
6914         (sparc_type_code): Handle vector types.
6915
6916 2004-02-19  Alan Modra  <amodra@bigpond.net.au>
6917
6918         * function.c (assign_parms): When building decl_rtl for
6919         SPLIT_COMPLEX_ARGS, ensure inner modes of concat match outer.
6920
6921 2004-02-19  Olivier Hainque  <hainque@act-europe.fr>
6922
6923         * expr.c (is_aligning_offset): Check if we are aligning the
6924         expressions's address over BIGGEST_ALIGNMENT in bytes, not
6925         in bits.
6926
6927 2003-02-18  Matt Austern  <austern@apple.com>
6928
6929         * gcc.c (LIBGCC_SPEC): If REAL_LIBGCC_SPEC is defined, and
6930         LIBGCC_SPEC isn't, set LIBGCC_SPEC to REAL_LIBGCC_SPEC.
6931         (init_gcc_spec): Don't define or call if REAL_LIBGCC_SPEC is
6932         defined.  Instead use REAL_LIBGCC_SPEC, unmodifed, as the libgcc
6933         spec string.
6934         * doc/tm.texi (REAL_LIBGCC_SPEC): Document.
6935
6936 2004-02-18  Zack Weinberg  <zack@codesourcery.com>
6937
6938         * dwarf2out.c (loclabel_num): Move outside #ifdef
6939         DWARF2_DEBUGGING_INFO and mark with GTY(()).
6940         * config/ia64/ia64.c (struct extern_func_list,extern_func_head):
6941         Mark with GTY(()).
6942         (ia64_hpux_add_extern_decl): Save the decl, not the name string.
6943         Allocate memory with ggc_alloc.  No need to copy anything.
6944         (ia64_hpux_file_end): Update to match.
6945
6946 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
6947
6948         * config/i386/i386.c (override_options): Don't imply 3DNow! for -m64
6949         by default.
6950
6951 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
6952
6953         * config/s390/s390.md ("divmodtidi3"): Use canonical RTL.
6954         ("divmodtisi3"): Likewise.
6955         ("udivmoddi4", "udivmodtidi3"): Likewise.
6956         ("divmodsi4", "divmoddisi3"): Likewise.
6957         ("udivmodsi4", "udivmoddisi3"): Likewise.
6958         ("udivsi3", "umodsi3"): Likewise.
6959
6960 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
6961
6962         * config/s390/s390.c (s390_mainpool_start): Delete the main pool
6963         placeholder insn when chunkifying the pool.
6964
6965 2004-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6966
6967         * pa.h (PIC_OFFSET_TABLE_REGNUM): Define to INVALID_REGNUM when not
6968         generating PIC code.
6969
6970 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
6971
6972         * config/h8300/h8300-protos.h: Add a prototype for
6973         h8300_expand_branch.
6974         * config/h8300/h8300.c (h8300_expand_branch): New.
6975         * config/h8300/h8300.md (ble, bleu, bge, bgeu, blt, bltu, bgt,
6976         bgtu, beq, bne): Call h8300_expand_branch().
6977
6978 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
6979
6980         * config/h8300/h8300-protos.h: Add prototypes for
6981         h8300_hard_regno_nregs and h8300_hard_regno_mode_ok.
6982         * config/h8300/h8300.c (h8300_hard_regno_nregs): New.
6983         (h8300_hard_regno_mode_ok): Likewise.
6984         * config/h8300/h8300.h (HARD_REGNO_NREGS): Call
6985         h8300_hard_regno_nregs().
6986         (HARD_REGNO_MODE_OK): Call h8300_hard_regno_mode_ok().
6987
6988 2004-02-18  Per Bothner  <per@bothner.com>
6989
6990         * cpphash.h (struct cpp_buffer):  Restore return_at_eof field.  This
6991         partly reverts my 2003-10-01 change, because we're back to logically
6992         including <command line> inside the main line.
6993         * cpplex.c (_cpp_get_fresh_line):  Check return_at_eof field.
6994         * cppmacro.c (cpp_scan_nooutput):  Set return_at_eof of current buffer.
6995         Fixes PR preprocessor/14103.
6996
6997         * cppfiles.c (_cpp_stack_include):  When appropriate decrement
6998         line_table's highest_location, fixing LAST_SOURCE_LINE_LOCATION.
6999         (cpp_push_include):  Don't need to increment pfile's line field.
7000         * line-map.h (LAST_SOURCE_LINE_LOCATION):  Only decrement by 1.
7001
7002         * c-ppoutput.c (print struct):  New first_time field.
7003         (init_pp_output):  Set print.first_time.
7004         (pp_file_change):  Use print.first_time, rather than MAIN_FILE_P,
7005         which is set also for (say) <command line>.  Clear print.first_time.
7006
7007         * cppfiles.c (struct _cpp_file):  Comment and type for pch field
7008         does not match the code, so fix both.
7009         (should_stack_file):  Inline include_pch_p function.
7010         (include_pch_p):  Remove pointless function.
7011
7012         * cpphash.h (struct cpp_buffer):  Remove unused search_cached field.
7013
7014 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
7015
7016         * config/h8300/h8300.md (four define_peephole2's): Use
7017         h8300_regs_ok_for_stm().
7018
7019 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
7020
7021         * config/h8300/h8300-protos.h: Update the prototype for
7022         expand_a_rotate().
7023         * config/h8300/h8300.c (expand_a_rotate): Remove the first
7024         argument.
7025         * config/h8300/h8300.md: Update all callers.
7026
7027 2004-02-18  Jan Hubicka  <jh@suse.cz>
7028
7029         * simplify-rtx.c (simplify_unary_operation): Deal with logicals on
7030         floats.
7031         (simplify_binary_operation): Deal with logicals on floats.
7032
7033         * i386.md (SSE fabs splitters): Emit new patterns.
7034         (SSE cmov splitters): Likewise.
7035         (sse_andv4sf3, sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3
7036         (sse_andv2df3, sse_nandv2df3, sse_iorv2df3, sse_xorv2df3): Do not use
7037         subregs.
7038         (sse_andsf3, sse_nandsf3, sse_xorsf3): Kill.
7039         (sse_anddf3, sse_nanddf3, sse_xordf3): Kill.
7040
7041 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
7042
7043         * config/h8300/h8300.c (expand_a_rotate): Don't generate insns
7044         by hand.
7045         (output_a_rotate): Tweak a comment.
7046         * config/h8300/h8300.md (*rotlqi3_1): Change to rotlqi3_1.
7047         (*rotlhi3_1): Change to rotlhi3_1.
7048         (*rotlsi3_1): Change to rotlsi3_1.
7049
7050 2004-02-18  Richard Earnshaw  <rearnsha@arm.com>
7051
7052         PR target/13866
7053         * arm.c (load_multiple_operation): Don't insist that the source reg
7054         of a post-increment component is the same as the destination.
7055         (store_multiple_operation): Likewise.
7056
7057 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
7058
7059         * config/h8300/h8300.md: Move movsf patterns into one section
7060         of the file.
7061
7062 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
7063
7064         * cfgloop.h, cfgloopanal.c, cpplex.c, except.h, loop-init.c,
7065         loop-unroll.c, scan-decls.c, scan.h, stor-layout.c,
7066         xcoffout.c, xcoffout.h, config/arm/mmintrin.h,
7067         config/mips/linux64.h, config/pa/pa-64.h,
7068         config/rs6000/aix51.h, config/rs6000/aix52.h,
7069         config/rs6000/spe.md, config/sparc/linux.h,
7070         config/sparc/linux64.h: Update copyright.
7071
7072 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
7073
7074         * config/h8300/h8300.md: Move push patterns into one
7075         section of the file.
7076
7077 2004-02-18  Mark Mitchell <mark@codesourcery.com>
7078
7079         PR c++/11326
7080         * config/ia64/ia64.c (ia64_struct_value_rtx): Cope with NULL
7081         fntype.
7082
7083 2004-02-18  Paul Brook  <paul@codesourcery.com>
7084
7085         * rtlanal.c (rtx_varies_p): Return 0 for NULL_RTX
7086
7087 2004-02-18  Paul Brook  <paul@codesourcery.com>
7088
7089         PR debug/12934
7090         * dwarf2out.c (loc_descriptor_from_tree): Handle
7091         EXPR_WITH_FILE_LOCATION.
7092
7093 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
7094
7095         * config/i386/i386.md (zero_extendqidi2, zero_extendqidi2,
7096         testdi_1_rex64, anddi_2, xordi_1_rex64, xordi_2_rex64): Remove
7097         trailing whitespace from instructions.
7098
7099 2004-02-17  Geoffrey Keating  <geoffk@apple.com>
7100
7101         * configure.ac: When generating auto-build.h, pass
7102         --enable-languages to the sub-configure.
7103         Put quotes around ${program_transform_name} when generating
7104         name of as, ld, nm, objdump.
7105         * configure: Regenerate.
7106
7107 2004-02-17  Matt Kraai  <kraai@alumni.cmu.edu>
7108
7109         * Makefile.in (s-check, s-config, s-conditions, s-flags)
7110         (s-codes, s-constants, s-emit, s-recog, s-opinit, s-extract)
7111         (s-peep, s-attr, s-attrtab, s-output, s-genrtl, s-modes)
7112         (s-preds, s-iov): Do not depend on move-if-change.
7113
7114 2004-02-17  James E Wilson  <wilson@specifixinc.com>
7115
7116         * caller-save.c (insert_restore): Pass mem through copy_rtx.
7117         (insert_save): Likewise.
7118
7119 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
7120
7121         * config/h8300/h8300.c (h8300_emit_stack_adjustment): Fix a
7122         warning.
7123
7124 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
7125
7126         * config/h8300/h8300.md (*one_complsi2_h8300): Change to
7127         *one_cmplsi2_h8300.
7128         (*one_complsi2_h8300hs): Change to *one_cmplsi2_h8300hs.
7129
7130 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
7131
7132         * config/h8300/h8300-protos.h: Update the prototype of
7133         fix_bit_operand().
7134         * config/h8300/h8300.c (fix_bit_operand): Remove the second
7135         argument "what".
7136         * config/h8300/h8300.md: Update all callers.
7137
7138 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
7139
7140         * config/h8300/h8300.c (fix_bit_operand): Change the name of
7141         the last argument to "code" from "type".
7142
7143 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
7144
7145         * config/h8300/h8300.c: Remove an extern declaration of
7146         rtx_equal_function_value_matters.
7147
7148 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
7149
7150         * config/h8300/h8300.c (fix_bit_operand): Don't generate insns
7151         by hand.
7152         * config/h8300/h8300.md (*andqi3_1): Change to andqi3_1.
7153         (*iorqi3_1): Change to iorqi3_1.
7154         (*xorqi3_1): Change to xorqi3_1.
7155
7156 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
7157
7158         * c-common.c, cfghooks.c, rtlanal.c, varasm.c: Fix comment
7159         typos.
7160
7161 2004-02-17  Jan Hubicka  <jh@suse.cz>
7162
7163         * i386.c (x86_prologue_using_move, x86_epilogue_using_move): Disable for P4.
7164
7165 2004-02-18  Alan Modra  <amodra@bigpond.net.au>
7166
7167         PR optimization/14119
7168         * combine.c (try_combine): When attemting to fix unrecognized insns,
7169         don't delete SETs marked with REG_EH_REGION notes.
7170
7171 2004-02-17  Ulrich Weigand  <uweigand@de.ibm.com>
7172
7173         * combine.c (simplify_if_then_else): Do not replace
7174         (if_then_else (ne reg 0) (0) (const_int)) by (reg) if the
7175         modes differ.
7176
7177 2004-02017  Steven Bosscher  <stevenb@suse.de>
7178
7179         * (c-decl.c, c-semantics.c, calls.c, cgraph.c, cgraphunit.c,
7180         function.c, integrate.c, print-tree.c, toplev.c, tree-optimize.c,
7181         tree.h): Replace DECL_SAVED_INSNS with DECL_STRUCT_FUNCTION.
7182         * ada/utils.c: Likewise.
7183         * cp/decl.c: Likewise.
7184         * f/com.c: Likewise.
7185         * java/class.c: Likewise.
7186
7187 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
7188
7189         * config/h8300/h8300.md: Fix comment typos.
7190
7191 2004-02-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7192
7193         * config/mips/t-iris6gld: Renamed to ...
7194         * config/mips/t-irix-gld: ... this.
7195         * config.gcc (mips-sgi-irix6*): Reflect this
7196         (mips-sgi-irix5*): Use it with GNU ld.
7197
7198         * config/mips/irix6-crti.asm, config/mips/irix6-crtn.asm: Renamed
7199         to ...
7200         * config/mips/irix-crti.asm, config/mips/irix-crtn.asm: ... this.
7201         * config/mips/t-irix-gld: Reflect this.
7202         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
7203
7204         * config/mips/iris5gld.h: New file.
7205         * config.gcc (mips-sgi-irix5*): Use it with GNU ld.
7206         Only use collect2 without gas.
7207
7208         * config/mips/iris6.h (IRIX6_STARTFILE_SPEC, IRIX6_ENDFILE_SPEC):
7209         Renamed to IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
7210         (STARTFILE_SPEC, ENDFILE_SPEC, SUBTARGET_EXTRA_SPECS): Reflect this.
7211         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
7212
7213         * config/mips/iris6.h (SUBTARGET_EXTRA_SPECS): Moved ...
7214         * config/mips/iris5.h: ... here.
7215
7216         * config/mips/iris5.h (STARTFILE_SPEC, ENDFILE_SPEC): Renamed to
7217         IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
7218         (STARTFILE_SPEC, ENDFILE_SPEC): Define.
7219
7220         * config/mips/iris5gas.h (STARTFILE_SPEC, ENDFILE_SPEC): Simplify
7221         using irix_startfile_spec, irix_endfile_spec.
7222
7223 2004-02-16  Gunther Nikl  <gni@gecko.de>
7224
7225         * config/m68k/m68k.c: Remove obsolete support for HPUX_ASM.
7226
7227 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
7228
7229         * config/h8300/h8300.c (h8300_expand_prologue): Don't generate
7230         insns by hand.
7231
7232 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7233
7234         * cfghooks.c (split_edge): Speed up updating of dominators.
7235
7236 2004-02-17  Mark Mitchell  <mark@codesourcery.com>
7237
7238         PR c++/11326
7239         * c-common.c (flag_abi_version): Remove.
7240         * c-common.h (flag_abi_version): Likewise.
7241         * c-opts.c (c_common_handle_option): Remove OPT_fabi_version case.
7242         * c.opt (fabi-version): Remove.
7243         * calls.c (expand_call): Always pass a function type to
7244         struct_value_rtx.  Use convert_memory_address.
7245         * common.opt (fabi-version): Add it.
7246         * flags.h (flag_abi_version): Likewise.
7247         (abi_version_at_least): New macro.
7248         * opts.c (common_handle_option): Add OPT_fabi_version.
7249         * toplev.c (flag_abi_version): Define it.
7250         * config/ia64/ia64.c (ia64_struct_retval_addr_is_first_parm_p):
7251         New function.
7252         (ia64_output_mi_thunk): Use it.
7253         (ia64_struct_value_rtx): Likewise.
7254
7255 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
7256
7257         * config/h8300/h8300.c (h8300_emit_stack_adjustment):
7258         Don't generate insns by hand.
7259
7260 2004-02-17  Andrew Pinski  <pinskia@physics.uc.edu>
7261
7262         PR c++/14178
7263         * doc/invoke.texi (fabi-version): The default is 2 now.
7264
7265 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7266
7267         * loop-iv.c: New file.
7268         * Makefile.in (loop-iv.o): New.
7269         * basic_block.h (FOR_BB_INSNS, FOR_BB_INSNS_REVERSE): New macros.
7270         * cfgloop.c (fill_sons_in_loop, get_loop_body_in_dom_order,
7271         num_loop_branches): New functions.
7272         * cfgloop.h (get_loop_body_in_dom_order, num_loop_branches,
7273         iv_analysis_loop_init, iv_get_reaching_def, iv_analyse, get_iv_value,
7274         find_simple_exit, iv_number_of_iterations, iv_analysis_done,
7275         get_simple_loop_desc, free_simple_loop_desc): Declare.
7276         (simple_loop_desc): New inline function.
7277         (struct rtx_iv, struct niter_desc): New.
7278         * cfgloopmanip.c (loopify): Specify semantics more precisely.
7279         * expr.c (force_operand): Handle subregs of expressions created by
7280         loop unroller.
7281         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Move
7282         parts of the initialization to toplev.c
7283         * loop-unroll.c (loop_exit_at_end_p): New.
7284         (unroll_and_peel_loops): Call iv_analysis_done.
7285         (decide_peel_once_rolling, decide_peel_completely,
7286         decide_unroll_stupid, decide_unroll_constant_iterations,
7287         decide_unroll_runtime_iterations, decide_peel_simple,
7288         peel_loop_simple, unroll_loop_stupid, unroll_loop_constant_iterations,
7289         unroll_loop_runtime_iterations): Use new simple loop analysis.
7290         * loop-unswitch.c (compare_and_jump_seq): New.
7291         (may_unswitch_on_p): Renamed to ...
7292         (may_unswitch_on): Use new iv analysis.
7293         (reversed_condition): Export.
7294         (unswitch_single_loop, unswitch_loop): Use new iv analysis.
7295         * predict.c (estimate_probability): Use new simple loop analysis.
7296         * rtl.h (get_mode_bounds, reversed_condition,compare_and_jump_seq,
7297         canon_condition, simplify_using_condition): Declare.
7298         * stor-layout.c (get_mode_bounds): New.
7299         * toplev.c (rest_of_handle_loop2): Some parts of
7300         initialization/finalization moved here from loop-init.c.
7301
7302 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
7303
7304         * config/h8300/h8300.h (FIXED_REGISTERS): Add the soft frame
7305         pointer.
7306         (CALL_USED_REGISTERS): Likewise.
7307         (REG_ALLOC_ORDER): Likewise.
7308         (REG_CLASS) <GENERAL_REGS>: Likewise.
7309
7310 2004-02-16  Geoffrey Keating  <geoffk@apple.com>
7311
7312         * doc/md.texi (Insn Canonicalizations): Document left-chaining
7313         in associative operators.
7314         * rtlanal.c (commutative_operand_precedence): Create some new
7315         variables.  Prefer a commutative operand on the left, then
7316         binary expressions, then NEG and NOT.
7317
7318 2004-02-16  Matthias Klose  <doko@debian.org>
7319
7320         * config/t-slibgcc-elf-ver: Define SHLIB_NAME and SHLIB_SONAME
7321         in terms of SHLIB_SOVERSION.
7322         * config/m68k/t-slibgcc-elf-ver: New file.
7323         * config/pa/t-slibgcc-elf-ver: New file.
7324         * config.gcc (m68k-linux, parisc-linux): Use them when not
7325         sjlj exceptions are not configured.
7326
7327 2004-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
7328
7329         * config/sparc/sparc.c (get_pc_symbol_name): Mark with GTY(()).
7330
7331 2004-02-16  Zack Weinberg  <zack@codesourcery.com>
7332
7333         * sdbout.c (sdb_debug_hooks): Correct the type_decl entry.
7334
7335 2004-02-16  Joseph S. Myers  <jsm@polyomino.org.uk>
7336
7337         * doc/sourcebuild.texi: Mention backends.html.
7338
7339 2004-02-16  Kazu Hirata  <kazu@cs.umass.edu>
7340
7341         * c-decl.c, c-ppoutput.c, cpphash.h, cpplib.h, dbxout.c,
7342         line-map.c, line-map.h, var-tracking.c: Fix comment
7343         formatting.
7344
7345 2004-02-16  Richard Henderson  <rth@redhat.com>
7346
7347         * cse.c (cse_insn): Don't lose REG_NON_LOCAL_GOTO note.
7348
7349         * fold-const.c (operand_equal_p): Fix VECTOR_CST comparison.
7350
7351 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
7352
7353         * config/h8300/h8300.md: Remove unnecessary parallels from
7354         all define_insn and define_split patterns.
7355
7356 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
7357
7358         * config/h8300/h8300.md: Remove explicit (set_attr "cc"
7359         "clobber").
7360
7361 2004-02-15  Bernardo Innocenti  <bernie@develer.com>
7362
7363         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Restore support for
7364         '%#'.
7365
7366 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
7367
7368         * config/ia64/ia64.c, config/mips/mips.c,
7369         config/mmix/mmix-modes.def: Fix comment typos.
7370
7371 2004-02-15  Roger Sayle  <roger@eyesopen.com>
7372
7373         * c-common.h (GET_DIRECTIVE_LINE): Remove unused macro.
7374         (get_directive_line): Remove unused function prototype.
7375
7376 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
7377
7378         * tree-inline.c (copy_body_r): Do not replace ret_label.
7379
7380 2004-02-14  Jan Hubicka  <jh@suse.cz>
7381
7382         * i386.c (x86_four_jump_limit): New variable.
7383         (k8_avoid_jump_misspredicts): Rename to ...
7384         (ix86_avoid_jump_misspredicts): .. this one.
7385         (ix86_pad_returns): Break out from ...
7386         (ix86_reorg): ... this one; do ix86_avoid_jump_misspredicts when asked
7387         to.
7388         * i386.h (TARGET_FOUR_JUMP_LIMIT): New macro.
7389
7390 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
7391
7392         * emit-rtl.c (set_decl_incoming_rtl): Check whether the 0th element of
7393         PARALLEL is NULL.
7394
7395 2004-02-14  Per Bothner  <per@bothner.com>
7396
7397         * fix-header.c (line_table):  Move local variable in main to global.
7398         * scan.h (line_table):  Use it.
7399         * scan-decls.c (scan_decls):  Need to call linemap_lookup on token's
7400         line (recently renamed to src_loc) before calling recognized_function.
7401
7402 2004-02-14  Matt Kraai  <kraai@alumni.cmu.edu>
7403
7404         * Makefile.in: Fix comment typos.
7405
7406 2004-02-14  Olivier Hainque  <hainque@act-europe.fr>
7407
7408         * loop.c (check_dbra_loop): Use gen_int_mode instead of GEN_INT
7409         for start_value when it is directly moved into reg, and factorize
7410         the retrieval of GET_MODE (reg).
7411
7412 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
7413
7414         * config/mips/mips-protos.h (mips_load_got_page): Delete.
7415         (mips_load_got_global): Delete.
7416         (mips_gotoff_page): Declare.
7417         * config/mips/mips.md (UNSPEC_LOAD_GOT): New constant.
7418         (*xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i): Build an
7419         UNSPEC_LOAD_GOT pattern rather than a MEM.
7420         (*load_got[sd]i): New patterns.
7421         * config/mips/mips.c (mips_got_alias_set, mips_load_got): Delete.
7422         (mips_load_got_page, mips_load_got_global): Delete.
7423         (mips_gotoff_page): New function.
7424         (override_options): Don't initialize mips_got_alias_set.
7425
7426 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
7427
7428         * config/mips/mips.h (MASK_DEBUG_[ABEFI], TARGET_DEBUG_[ABEFI]_MODE)
7429         (TARGET_MIPS4100, TARGET_MIPS4300, TARGET_MIPS4KC, TARGET_MIPS5KC)
7430         (TARGET_SB1, TUNE_SB1, TUNE_SR71K, BIGGEST_MAX_ARGS_IN_REGISTERS)
7431         (GO_PRINTF, GO_PRINTF2, GO_DEBUG_RTX, DFMODE_NAN, SFMODE_NAN): Delete.
7432         (TARGET_SWITCHES): Remove MASK_DEBUG_[ABEFI].
7433         * config/mips/mips.c: Fix some overly-long lines.
7434         (SINGLE_WORD_MODE_P, PIC_OFFSET_TABLE_MASK): Delete.
7435         (init_cumulative_args): Remove TARGET_DEBUG_E_MODE handling.
7436
7437 2004-02-13  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7438
7439         * configure.ac: Search for as, ld below libexec/gcc.
7440         * configure: Regenerate.
7441
7442 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
7443
7444         * config/arm/mmintrin.h (_mm_setwcx): Reverse arguments in call to
7445         __builtin_arm_setwcx ().
7446         * config/arm/arm.c (arm_expand_builtin): Generate operands
7447         correctly and reverse their order in call to gen_iwmmxt_tmcr ().
7448
7449 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
7450
7451         * config/arm/arm.c (bdesc_2arg): Correct builtin names "wmulsh"
7452         and "wmuluh" to "wmulsm" and "wmulum", respectively.
7453         * config/arm/arm.h (enum arm_builtins): Rename enumerators to
7454         ARM_BUILTIN_WMULSM and ARM_BUILTIN_WMULUM.
7455         * config/arm/mmintrin.h (_mm_mulhi_pi16): Update intrinsic call.
7456         (_mm_mulhi_pu16): Likewise.
7457
7458 2004-02-13  Zack Weinberg  <zack@codesourcery.com>
7459
7460         * xcoffout.c (xcoff_assign_fundamental_type_number): Check
7461         DECL_NAME != 0 before dereferencing.
7462
7463 2004-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
7464
7465         * config/s390/s390-protos.h (s390_output_symbolic_const): Remove.
7466         (s390_output_addr_const_extra): Declare.
7467         (s390_output_pool_entry): Remove FILE * argument.
7468         * config/s390/s390.c (s390_output_symbolic_const): Remove.
7469         (s390_output_addr_const_extra): New function.
7470         (print_operand_address): Call output_addr_const instead of
7471         s390_output_symbolic_const.
7472         (print_operand): Likewise.
7473         (s390_output_pool_entry): Use assemble_integer for symbolic constants.
7474         Remove FILE * argument.
7475         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Define.
7476         * config/s390/s390.md ("*pool_entry"): Adapt s390_output_pool_entry
7477         call.
7478
7479 2004-02-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7480
7481         * cfgloopanal.c (mark_irreducible_loops): Rewriten.
7482         (struct edge, struct vertex, struct graph): New.
7483         (dump_graph, new_graph, add_edge, dfs, check_irred, for_each_edge,
7484         free_graph): New functions.
7485
7486 2004-02-12  Chris Demetriou  <cgd@broadcom.com>
7487
7488         * config/mips/mips.md (casesi_internal, casesi_internal_di):
7489         Use ".set macro" to avoid warnings about multi-instruction
7490         macros, since they're intentional.
7491
7492 2004-02-12  Geoffrey Keating  <geoffk@apple.com>
7493
7494         * config/darwin.h: Add include guards.  Remove old, now incorrect,
7495         comment about STANDARD_EXEC_PREFIX.
7496
7497         * Makefile.in (install-man): Use $(CPP_INSTALL_NAME) and
7498         $(GCOV_INSTALL_NAME) to install manpages.  Remove generic rule
7499         for installing .1 manpages.  Add rules for installing cpp
7500         and gcov manpages under their installed names.
7501
7502 2004-02-12  Alexandre Oliva  <aoliva@redhat.com>
7503
7504         * configure.ac (gcc_cv_ld): Don't set to LD if target is not
7505         host, but try LD_FOR_TARGET first.
7506         * configure: Rebuilt.
7507
7508 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
7509
7510         * dbxout.c: Move declaration of dbxout_type_decl outside
7511         #ifdef DBX_DEBUGGING_INFO.
7512         * c-parse.in: Don't give the asmdef production a type.
7513
7514 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
7515
7516         * debug.h (struct gcc_debug_hooks): Add type_decl field.
7517         (debug_nothing_tree_int): Prototype.
7518         (dwarf_debug_hooks): Delete, unused.
7519         * debug.c (do_nothing_debug_hooks): Update.
7520         (debug_nothing_tree_int): New function.
7521         * langhooks.h (struct lang_hooks_for_decls):
7522         Remove builtin_type_decls field.
7523         * langhooks-def.h (LANG_HOOKS_BUILTIN_TYPE_DECLS): Delete.
7524         (LANG_HOOKS_DECLS): Update.
7525         * toplev.c (rest_of_decl_compilation, rest_of_type_compilation):
7526         Use debug_hooks->type_decl.
7527         * dbxout.c (preinit_symbols): New static.
7528         (dbx_debug_hooks, xcoff_debug_hooks): Update.
7529         (dbxout_init): Don't call DBX_OUTPUT_STANDARD_TYPES or
7530         lang_hooks.decls.builtin_type_decls.  Do scan preinit_symbols
7531         for symbols to output.
7532         (dbxout_type_decl): New function.
7533         (dbxout_symbol): If called before dbxout_init has run, queue
7534         the symbol for later.  Apply DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER
7535         to TYPE_DECLs before emitting them.
7536         * xcoffout.c (assign_type_number): Delete.
7537         (xcoff_type_numbers): New static table.
7538         (xcoff_assign_fundamental_type_number): New function.
7539         * xcoffout.h: Define DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER, not
7540         DBX_OUTPUT_STANDARD_TYPES.  Remove unnecessary #ifdefs.
7541         * sdbout.c: Include varray.h.
7542         (deferred_global_decls): New static.
7543         (sdb_debug_hooks): Update.
7544         (sdbout_global_decl): If we can't emit something right now,
7545         remember it in deferred_global_decls.
7546         (sdbout_finish): Just scan deferred_global_decls; don't call getdecls.
7547         (sdbout_init): Initialize deferred_global_decls.
7548         * Makefile.in: Update dependencies of sdbout.o.
7549         * dwarf2out.c (dwarf2out_type_decl): New function.
7550         (dwarf2_debug_hooks): Update.
7551         * vmsdbgout.c (vmsdbg_debug_hooks): Update.
7552         * c-decl.c (getdecls): Just return 0.
7553         (check_for_loop_decls): Don't use getdecls.
7554         (record_builtin_type): Call debug_hooks->type_decl on the TYPE_DECL.
7555         * c-objc-common.c (c_objc_common_finish_file): Don't use getdecls.
7556
7557 2004-02-12  Ulrich Weigand  <uweigand@de.ibm.com>
7558
7559         * config/s390/s390.c (s390_sched_reorder2): Remove.
7560         (TARGET_SCHED_REORDER2): Do not redefine.
7561
7562 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
7563
7564         * c-parse.in (maybe_type_qual): Delete.
7565         (maybe_volatile, simple_asm_expr, asmdef, asm_stmt)
7566         (asm_argument): New grammar rules.
7567         (extdef_1): Use asmdef.
7568         (maybeasm): Move down with other asm rules; use simple_asm_expr.
7569         (xexpr): Move up with other expression rules.
7570         (stmt): Use asm_stmt.
7571
7572         * c-typeck.c (build_asm_expr): New function - body mostly
7573         pulled from build_asm_stmt.
7574         (build_asm_stmt): Just handle tacking on the volatile qualifier.
7575         * c-tree.h (build_asm_expr, build_asm_stmt): Update prototypes.
7576
7577 2004-02-12  Richard Sandiford  <rsandifo@redhat.com>
7578
7579         PR bootstrap/13617
7580         * config/mips/mips-protos.h (mips_output_aligned_decl_common): Declare.
7581         (mips_declare_object): Make variadic.
7582         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Use
7583         mips_output_aligned_decl_common.
7584         * config/mips/mips.c (mips_output_aligned_decl_common): New function.
7585         (mips_declare_object): Make variadic.
7586
7587 2004-02-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7588
7589         * function.c (update_epilogue_consts): Teach about binary operations.
7590
7591         * emit-rtl.c (set_mem_attributes_minus_bitpos): Don't kill
7592         previous MEM_VOLATILE in REF.
7593         * function.c (fixup_var_refs): Save volatile_ok and set to 1.
7594         * expr.c (emit_block_move_via_movstr): Save and restore volatile_ok.
7595
7596 2004-02-12  Gunther Nikl  <gni@gecko.de>
7597
7598         * config.gcc: Restore support for m68k-openbsd.
7599
7600 2004-02-12  Jan Hubicka  <jh@suse.cz>
7601
7602         * tree-optimize.c (tree_rest_of_compilation): Do not release
7603         DECL_ARGUMENTS.
7604
7605 2004-02-11  Matt Kraai  <kraai@alumni.cmu.edu>
7606
7607         * doc/install.texi: Fix the spelling of "explicitly".
7608
7609 2004-02-11  Eric Christopher  <echristo@redhat.com>
7610
7611         * cppcharset.c (_cpp_interpret_string_notranslate): Rename and
7612         duplicate argument structure of cpp_interpret_string.
7613         * cpphash.h: Move prototype...
7614         * cpplib.h: Here.
7615         * cpplib.c: Fix calls to match new function signature.
7616
7617 2004-02-11  Joseph S. Myers  <jsm@polyomino.org.uk>
7618
7619         PR c/456
7620         * cppexp.c (num_binary_op): Don't allow comma operators in #if
7621         constant expressions at all outside C99 mode if pedantic.
7622
7623 2004-02-11  Uros Bizjak  <uros@kss-loka.si>
7624
7625         * optabs.h (enum optab_index): Add new OTI_log10 and OTI_log2.
7626         (log10_optab, log2_optab): Define corresponding macros.
7627         * optabs.c (init_optabs): Initialize log10_optab and log2_optab.
7628         * genopinit.c (optabs): Implement log10_optab and log2_optab
7629         using log10?f2 and log2?f2 patterns.
7630         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG10{,F,L}
7631         using log10_optab, and BUILT_IN_LOG2{,F,L} using log2_optab.
7632         (expand_builtin): Expand BUILT_IN_LOG10{,F,L} and BUILT_IN_LOG2{,F,L}
7633         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
7634
7635         * config/i386/i386.md (log10sf2, log10df2, log10xf2, log2sf2,
7636         log2df2, log2xf2): New patterns to implement log10, log10f, log10l,
7637         log2, log2f and log2l built-ins as inline x87 intrinsics.
7638
7639 2004-02-11  Richard Henderson  <rth@redhat.com>
7640
7641         PR target/1532
7642         * flow.c (insn_dead_p): A clobber of a dead hard register is a
7643         dead insn after reload.
7644
7645 2004-02-11  Ulrich Weigand  <uweigand@de.ibm.com>
7646
7647         * tree.h (frame_base_decl): Add GTY marker.
7648         * var-tracking.c (frame_base_decl): Likewise.
7649
7650 2004-02-11  Daniel Berlin  <dberlin@dberlin.org>
7651
7652         * dwarf2out.c (output_loc_list): Remove no longer necessary, and now
7653         incorrect, hunk.
7654         (add_location_or_const_value_attribute): Use text_section_label,
7655         not TEXT_SECTION_NAME.
7656
7657 2004-02-11  Per Bothner  <per@bothner.com>
7658
7659         Represent column numbers using line-map's source_location.
7660         The "next available source_location" is now managed internally by
7661         line-maps.c rather than by clients.
7662         * line-map.h (struct line_map):  New field column_bits.
7663         <from_line>:  Rename field to start_location.
7664         (struct line_maps):  New fields highest_location and max_column_hint.
7665         (linemap_check_files_exited):  New declaration.
7666         (linemap_line_start):  New declaration.
7667         (linemap_add):  Remove from_line parameter; use highest_location field.
7668         (SOURCE_LINE, LAST_SOURCE_LINE):  Modify to use column_bits.
7669         (SOURCE_COLUMN, LAST_SOURCE_LINE_LOCATION):  New macros.
7670         (CURRENT_LINE_MAP):  Remove macro.
7671         (linemap_position_for_column):  New inline function.
7672         * line-map.c (linemap_init):  Clear new fields.
7673         (linemap_check_files_exited):  New function, extracted from ...
7674         (linemap_free):  Use linemap_check_files_exited.
7675         (linemap_add):  Remove from_line parameter.  Various updates.
7676         (linemap_line_start):  New function.
7677         (linemap_lookeup):  Update for new field names.
7678         * cpphash.h (struct cpp_reader) <map>:  Field removed.  Because
7679         linemap_position_for_column may unpredictably change the current map,
7680         it is cleaner and simpler for us to not cache it in cpp_reader.
7681         (struct cpp_buffer):  New sysp field.
7682         Changed warned_cplusplus_comments and from_stage3 to bitfields.
7683         * cppinit.c (cpp_read_min_file):  pfile->map no longer exists.
7684         * cpplib.c (do_line, do_linemarker, _cpp_do_file_change):  Get
7685         current map using linemap_lookup.
7686         (do_linemarker):  Also set buffer's sysp field.
7687         (destringize_and_run):  No longer need to decrement current line.
7688         * cppfiles.c (_cpp_stack_file):  Set sysp from and in buffer.
7689         (search_path_head, open_file_failed):  Use buffer's sysp.
7690         (cpp_make_system_header):  Get current map using linemap_lookup.
7691         Also set buffer's sysp flag.
7692         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use linemap_lookup.
7693         * cpphash.h (CPP_INCREMENT_LINE):  New macro.
7694         (struct cpp_buffer):  Moved fields saved_cur, saved_rlimit to ...
7695         (struct cpp_reader):  ... and adding saved_line_base field.
7696         * cpptrad.c (_cpp_overlay_buffer, _cpp_remove_overlay):
7697         Update accordingly.  Don't adjust line.
7698         (_cpp_scan_out_logical_line):  Use CPP_INCREMENT_LINE.
7699         * cpphash.c (CPP_IN_SYSTEM_HEADER):  Replaced macro by ...
7700         (cpp_in_system_header):  ... new inline function, using buffer's sysp.
7701         * cpperror.c (_cpp_begin_message):  Update to use cpp_in_system_header.
7702         * cpplex.c (_cpp_lex_direct):  Likewise.
7703         * cppmacro.c (_cpp_builtin_macro_text):  Likewise.
7704         * cppmacro.c (_cpp_create_definition):  Use buffer's sysp field.
7705         * cpplib.h (struct cpp_token):  Rename line field to src_loc.
7706         Remove col field as it is now subsumed by src_loc.
7707         * cpperror.c:  Update various field, parameter, and macro names.
7708         (print_location):  If col==0, try SOURCE_COLUMN of line.
7709         (cpp_error):  Use cur_token's src_loc field, rather than line+col.
7710         * cpplib.c (do_diagnostic):  Token's src_loc fields replaces line+col.
7711         * cpplex.c (_cpp_process_line_notes, _cpp_lex_direct,
7712         _cpp_skip_block_comment):  Use CPP_INCREMENT_LINE.
7713         (_cpp_temp_token):  Replace cpp_token's line+col fields by src_loc.
7714         (_cpp_get_fresh_line):  Don't need to adjust line for missing newline.
7715         (_cpp_lex_direct):  Use linemap_position_for_column.
7716         * c-ppoutput.c (maybe_print_line, print_line):  Don't take map
7717         parameter.  Instead get it from the line_table global.  Adjust callers.
7718         (print):  Remove map field.  Replace line field to src_line.
7719         (init_pp_output, account_for_newlines, maybe_print_line):  Adjust.
7720         (cb_line_change):  Use SOURCE_COLUMN.  Minor optimizations.
7721         (pp_file_change):  Use MAIN_FILE_P since we cannot checked print.map.
7722         Use LAST_SOURCE_LINE_LOCATION to "catch up" after #include.
7723         * cpptrad.c (copy_comment):  Rename variable.
7724         * c-lex.c (map):  Remove static variable, for same reason we removed
7725         cpp_reader's map field.
7726         (cb_line_change, cb_def_pragma, cb_define, cb_undef):  Hence we need
7727         to call linemap_lookup.
7728         (cb_line_change):  Token's line field replaced by src_loc.
7729         (fe_file_change):  Use MAINFILE_P and LAST_SOURCE_LINE macros.
7730         Don't save new_map.
7731
7732         * cpphash.h, cpperror.c, cpplib.h:  Some renames of fileline to
7733         source_location.
7734
7735 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
7736
7737         * config/rs6000/altivec.md (*movv4si_internal): At least one
7738         operand must be register_operand.
7739         (*movv8hi_internal1): Likewise.
7740         (*movv16qi_internal1): Likewise.
7741         (*movv4sf_internal1): Likewise.
7742
7743 2004-02-10  Aldy Hernandez  <aldyh@redhat.com>
7744
7745         * config/rs6000/spe.md ("*movv2si_internal"): Check for register
7746         operand.
7747         (movv4hi_internal): Same.
7748         (movv2sf_internal): Same.
7749         (movv1di_internal): Same.
7750
7751 2004-02-11  Thiemo Seufer  <seufer@csv.ica.uni-stuttgart.de>
7752
7753         * config/mips/mips.h (TARGET_OLDABI): Define. Use TARGET_NEWABI and
7754         TARGET_OLDABI consistently.
7755         * config/mips/mips.c (function_arg,mips_setup_incoming_varargs,
7756         mips_va_arg,override_options,compute_frame_size,
7757         mips_initial_elimination_offset,mips16_fp_args,build_mips16_call_stub
7758         ,mips_return_in_memory,mips_strict_argument_naming): Use TARGET_NEWABI
7759         and TARGET_OLDABI consistently.
7760         * config/mips/mips.md (exception_receiver): Likewise.
7761         * config/mips/linux64.h: Likewise.
7762
7763 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
7764
7765         * gcc/config/rs6000/rs6000.c (rs6000_override_options)
7766         Set AltiVec ABI and vrsave as default for ppc64 linux.
7767         (init_cumulative_args): Post error, if try to return
7768         value in AltiVec register without enable AltiVec.
7769         (function_arg_advance): Ditto for passing arguments.
7770
7771 2004-02-11  Richard Sandiford  <rsandifo@redhat.com>
7772
7773         * emit-rtl.c (mark_label_nuses): Check that a LABEL_REF refers to
7774         a label before updating its usage count.
7775
7776 2004-02-10  Matt Kraai  <kraai@alumni.cmu.edu>
7777
7778         * doc/install.texi: Remove extra cd.
7779
7780 2004-02-10  Ziemowit Laski  <zlaski@apple.com>
7781
7782         * c-common.c (vector_size_helper): Remove; call
7783         reconstruct_complex_type() instead.
7784         * tree.c (reconstruct_complex_type): New function
7785         (formerly vector_size_helper() in c-common.c).
7786         (make_vector): Make externally visible.
7787         * tree.h (reconstruct_complex_type, make_vector): Add prototypes.
7788
7789 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
7790
7791         * config/h8300/h8300-protos.h: Add a prototype for
7792         h8300_regs_ok_for_stm.
7793         * config/h8300/h8300.c (h8300_regs_ok_for_stm): New.
7794         * config/h8300/h8300.md (stm_h8300s_2_advanced,
7795         stm_h8300s_2_normal, stm_h8300s_2, stm_h8300s_3_advanced,
7796         stm_h8300s_3_normal, stm_h8300s_3, stm_h8300s_4_advanced,
7797         stm_h8300s_4_normal, stm_h8300s_4, ldm_h8300s_2_advanced,
7798         ldm_h8300s_2_normal, ldm_h8300s_2, ldm_h8300s_3_advanced,
7799         ldm_h8300s_3_normal, ldm_h8300s_3, ldm_h8300s_4_advanced,
7800         ldm_h8300s_4_normal, ldm_h8300s_4): Use
7801         h8300_regs_ok_for_stm().
7802
7803 2004-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
7804
7805         PR c/14088
7806         * real.c (real_from_string): Look for 'X' as well as 'x' in
7807         hexfloat strings.
7808
7809 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
7810
7811         * config/h8300/h8300.md: Remove an incorrect comment about
7812         peephole2.  Add comments.
7813
7814 2004-02-10  Josef Zlomek  <zlomekj@suse.cz>
7815
7816         PR/14058
7817         * emit-rtl.c (set_decl_incoming_rtl): New.
7818         * tree.h (set_decl_incoming_rtl): New.
7819         * function.c (assign_parms): Use set_decl_incoming_rtl for setting
7820         DECL_INCOMING_RTL.
7821         * ada/misc.c (adjust_decl_rtl): Likewise.
7822
7823 2004-02-10  Per Bothner  <per@bothner.com>
7824
7825         * c-opts.c (c_common_post_options):   Don't emit working directory
7826         in cpp output if -P was specified.
7827
7828 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
7829
7830         PR c/14092
7831         * fold-const.c (fold) <NEGATE_EXPR>: Convert result of
7832         negate_expr back to the original type.
7833
7834 2004-02-10  Alan Modra  <amodra@bigpond.net.au>
7835
7836         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Don't
7837         bump retaddr here.
7838
7839 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
7840
7841         * rtl.h (schedule_insns, schedule_ebbs, fix_sched_param,
7842         gen_lowpart_SUBREG): Move under the file in which they
7843         are actually declared.
7844
7845 2004-02-10  Arnaud Charlet  <charlet@act-europe.fr>
7846
7847         * doc/sourcebuild.texi: Add libada documentation.
7848
7849         * doc/install.texi: Update documentation on Ada build, now
7850         that the GNAT lib and tools are built automatically.
7851
7852 2004-02-10  Richard Sandiford  <rsandifo@redhat.com>
7853
7854         * config/mips/mips.h (TARGET_GPWORD): Return false for TARGET_NEWABI
7855         && TARGET_IRIX.
7856
7857 2004-02-09  Ziemowit Laski  <zlaski@apple.com>
7858
7859         * objc/objc-act.c (get_super_receiver): Move '#ifdef OBJCPLUS'
7860         boundaries outside build_component_ref() call (a macro in ObjC++).
7861
7862 2004-02-09  Bob Wilson  <bob.wilson@acm.org>
7863
7864         * config/xtensa/xtensa-protos.h (xtensa_copy_incoming_a7): Update.
7865         (init_cumulative_args): Likewise.
7866         (a7_overlap_mentioned_p): Delete prototype.
7867         * config/xtensa/xtensa.c (struct machine_function): Replace
7868         incoming_a7_copied field with need_a7_copy and vararg_a7 flags.
7869         Add set_frame_ptr_insn field.
7870         (xtensa_emit_move_sequence): Update call to xtensa_copy_incoming_a7.
7871         (xtensa_copy_incoming_a7): Rewrite to check need_a7_copy flag and check
7872         if the operand is an argument in a7.  If so, copy a7 to a new pseudo
7873         at the function entry and replace the operand with the pseudo.
7874         (init_cumulative_args): Remove unused arguments.  Add new "incoming"
7875         argument and record this flag in CUMULATIVE_ARGS.
7876         (function_arg): Remove result_mode and special-case code to handle
7877         arguments in a7.  Instead, set need_a7_copy flag when there is an
7878         incoming argument in a7.
7879         (xtensa_expand_prologue): Remove code to search for set_frame_ptr insn
7880         and use the value recorded in cfun->machine->set_frame_ptr_insn.
7881         (xtensa_builtin_saveregs): Check for negative gp_left value.  Set
7882         need_a7_copy and vararg_a7 flags.  Use move_block_from_reg instead of
7883         special-case code.
7884         (a7_overlap_mentioned_p): Delete.
7885         * config/xtensa/xtensa.h (CUMULATIVE_ARGS): Add "incoming" flag.
7886         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Remove useless
7887         arguments to init_cumulative_args and pass "incoming" flag instead.
7888         (BLOCK_REG_PADDING): Delete.
7889         * config/xtensa/xtensa.md (movdi, movsf, movdf): Remove unnecessary
7890         checks for reload_in_progress and reload_completed.  Update calls to
7891         xtensa_copy_incoming_a7.
7892         (ashlsi3): Rename existing insn to ashlsi3_internal.  Add expander
7893         to call xtensa_copy_incoming_a7.
7894
7895 2004-02-09  DJ Delorie  <dj@redhat.com>
7896
7897         * config/i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): No
7898         longer modify standard_exec_prefix, standard_bindir_prefix, or
7899         standard_startfile_prefix.
7900
7901 2004-02-09  James E Wilson  <wilson@specifixinc.com>
7902
7903         PR c++/11295
7904         * c-common.c (c_expand_expr, case STMT_EXPR): Change expand_expr call
7905         to expand_expr_real call, and pass in alt_rtl as last argument.
7906
7907         PR libstdc++/5625
7908         * builtin-types.def (BT_WORD, BT_FN_WORD_PTR): New.
7909         * builtins.c (expand_builtin): Handle BUILT_IN_EXTEND_POINTER.
7910         * builtins.def (BUILT_IN_EXTEND_POINTER): New.
7911         * except.c (expand_builtin_extend_pointer): New.
7912         * except.h (expand_builtin_extend_pointer): Declare.
7913
7914 2004-02-09  David Edelsohn  <edelsohn@gnu.org>
7915
7916         * config/rs6000/rs6000.c (rs6000_emit_move): Remove splitting slow
7917         unaligned loads and stores.
7918
7919 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7920
7921         * config/mips/iris5.h (BSS_SECTION_ASM_OP): Define.
7922         * config/mips/iris6.h (BSS_SECTION_ASM_OP): Undef.
7923
7924         * config/mips/iris6.h (TARGET_ASM_NAMED_SECTION): Moved ...
7925         * config/mips/iris5.h: ... here.
7926         * config/mips/iris5gas.h (TARGET_ASM_NAMED_SECTION): Remove.
7927
7928         * config/mips/iris6.h (EXTRA_SECTION_FUNCTIONS): Move ...
7929         * config/mips/iris5.h: ... here.
7930
7931 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7932
7933         * configure.ac: Remove default executable files before AC_PROG_CC.
7934         * configure: Regenerate.
7935
7936 2004-02-09  Kazu Hirata  <kazu@cs.umass.edu>
7937
7938         PR target/13721
7939         * config/h8300/h8300.c (byte_reg): Call abort() if asked to
7940         print a operand other than a register.
7941
7942 2004-02-09  Roger Sayle  <roger@eyesopen.com>
7943
7944         * fold-const.c (fold) <NOP_EXPR>: Use the original type conversion
7945         tree code rather than call fold_convert, which doesn't specify a
7946         default floating point to integer conversion.
7947
7948 2004-02-08  Bernardo Innocenti  <bernie@develer.com>
7949
7950         * config/m68k/m68k.c, config/m68k/m68k.md (SGS, SGS_CMP_ORDER): Remove
7951         code to support SGS assembler.  Reformat adjacent code where possible.
7952         * config/m68k/m68k.c (switch_table_difference_label_flag): Remove
7953         definition.
7954         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Remove support
7955         for '%#'.
7956         * config/m68k/linux.h, config/m68k/m68k.c,
7957         * config/m68k/math-68881.h: Replace `%#' with `#' in inline asm
7958         macros and asm_printf() format strings.
7959         * config/m68k/m68kelf.h (ASM_OUTPUT_CASE_END): Remove macro definition.
7960         * config/m68k/linux.h: Update copyright.
7961         * config/m68k/linux.h, config/m68k/m68k.c: Remove traling whitespace.
7962
7963 2004-02-08  Andreas Schwab  <schwab@suse.de>
7964             Bernardo Innocenti  <bernie@develer.com>
7965
7966         * config/m68k/m68k.h (REGISTER_NAMES): Prefix each name with
7967         REGISTER_PREFIX.
7968         * (M68K_FP_REG_NAME): New macro to specify an alternate name for the
7969         frame pointer register, overridable by OS targets.
7970         * (M68K_REGNAME): Macro to obtain register name for asm output,
7971         eventually replacing %a6 with M68K_FP_REG_NAME.
7972         * config/m68k/coff.h (REGISTER_NAMES): Don't redefine.
7973         * config/m68k/linux.h (REGISTER_NAMES): Likewise.
7974         * config/m68k/m68kelf.h (REGISTER_NAMES): Likewise.
7975         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Likewise.
7976         * config/m68k/m68k.c: Use M68K_REGNAME(x) in place of reg_names[x].
7977
7978 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
7979
7980         * target-def.h (TARGET_STRUCT_VALUE_RTX): Define as
7981         hook_rtx_tree_int_null.
7982         * targhooks.c (default_struct_value_rtx): Remove.
7983         * targhooks.h: Remove the prototype for
7984         default_struct_value_rtx.
7985         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
7986         config/fr30/fr30.c, config/h8300/h8300.c, config/i386/i386.c,
7987         config/ip2k/ip2k.c, config/iq2000/iq2000.c,
7988         config/m32r/m32r.c, config/mcore/mcore.c, config/mips/mips.c,
7989         config/mn10300/mn10300.c, config/pdp11/pdp11.c,
7990         config/rs6000/rs6000.c, config/s390/s390.c,
7991         config/stormy16/stormy16.c, config/v850/v850.c,
7992         config/xtensa/xtensa.c (TARGET_STRUCT_VALUE_RTX): Remove.
7993         * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document the default.
7994
7995 2004-02-08  Joseph S. Myers  <jsm@polyomino.org.uk>
7996
7997         * README.Portability: Change "ISO C89" to "ISO C90".
7998         * c-parse.in (primary, initelt): Likewise.
7999
8000 2004-02-08  Richard Sandiford  <rsandifo@redhat.com>
8001
8002         * real.c (encode_ibm_extended): Normalize the input value before
8003         converting it to a double.  Handle the case where a normal value
8004         rounds to infinity.
8005
8006 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
8007
8008         * c-objc-common.c (c_cannot_inline_tree_fn): Fix a typo in a
8009         warning.
8010         * cse.c (preferrable): Change to preferable. Update all of its
8011         callers.
8012         * genautomata.c (ainsn): Change
8013         first_ainsn_with_given_equialence_num to
8014         first_ainsn_with_given_equivalence_num.  Update all of its
8015         references.
8016
8017 2004-02-08  Jan Hubicka  <jh@suse.cz>
8018
8019         * schedule-ebb.c (schedule_ebbs): Do not allocate reg life data.
8020
8021 2004-02-07  David Edelsohn  <edelsohn@gnu.org>
8022
8023         * function.c (assign_parms): Fix formatting.
8024
8025 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
8026
8027         * default.h (PROMOTE_PROTOTYPES): Remove.
8028         * system.h (PROMOTE_FUNCTION_RETURN, PROMOTE_PROTOTYPES,
8029         STRUCT_VALUE_REGNUM, SETUP_INCOMING_VARARGS,
8030         EXPAND_BUILTIN_SAVEREGS): Poison.
8031         * target-def.h (TARGET_PROMOTE_FUNCTION_RETURN): Define as
8032         hook_bool_tree_false.
8033         (TARGET_PROMOTE_PROTOTYPES): Likewise.
8034         * target.h: Replace SETUP_INCOMING_VARARGS with
8035         targetm.calls.setup_incoming_varargs().
8036         * targhooks.c (default_promote_function_return): Remove.
8037         (default_promote_prototypes): Likewise.
8038         (default_struct_value_rtx): Always abort().
8039         (default_expand_builtin_saveregs): Always print an error
8040         message.
8041         (default_setup_incoming_varargs): Do nothing.
8042         (default_pretend_outgoing_varargs_named): Don't depend on
8043         SETUP_INCOMING_VARARGS.
8044         * targhooks.h: Remove the prototype for
8045         default_promote_function_return and
8046         default_promote_prototypes.
8047
8048 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
8049
8050         * system.h (SHARED_SECTION_ASM_OP): Poison.
8051         * varasm.c (data_section): Don't use SHARED_SECTION_ASM_OP.
8052         * doc/tm.texi (SHARED_SECTION_ASM_OP): Remove.
8053
8054 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
8055
8056         Bug 13856
8057         * c-decl.c (diagnose_mismatched_decls): Only give special
8058         treatment when olddecl is DECL_BUILT_IN, if C_DECL_INVISIBLE
8059         is also true.
8060         (merge_decls): Don't clear DECL_BUILT_IN_CLASS and
8061         DECL_FUNCTION_CODE when defining a built-in function.
8062         Don't update DECL_ESTIMATED_INSNS.
8063         * dwarf2out.c (dwarf2out_decl): Don't ignore built-in
8064         FUNCTION_DECLs.
8065         * tree.h: Delete DECL_ESTIMATED_INSNS.
8066         * tree-inline.c (struct inline_data): Delete inlined_insns field.
8067         (expand_call_inline, optimize_inline_calls): Don't update
8068         DECL_ESTIMATED_INSNS nor inlined_insns.
8069         * cgraphunit.c (cgraph_analyze_function): Don't update
8070         DECL_ESTIMATED_INSNS.
8071
8072 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
8073
8074         * c-common.c (shadow_warning): Delete.
8075         * c-common.h (free_parser_stacks, shadow_warning, sw_kind): Delete.
8076         * c-decl.c (warn_if_shadowing): Issue shadow warnings directly.
8077         * c-opts.c (c_common_parse_file): Don't call free_parser_stacks.
8078         * c-parse.in (free_parser_stacks): Delete.
8079
8080 2004-02-07  Nathanael Nerode  <neroden@gcc.gnu.org>
8081
8082         * Makefile.in, config/t-slibgcc-darwin, config/t-slibgcc-elf-ver,
8083         config/t-slibgcc-sld, config/mips/t-iris5-6, config/sh/t-linux:
8084         Use the top level mkinstalldirs, not the one in the gcc subdir.
8085         * mkinstalldirs: Remove (from the gcc subdir).
8086
8087 2004-02-07  Roger Sayle  <roger@eyesopen.com>
8088
8089         PR middle-end/13696
8090         * fold-const.c (fold_convert): New function to provide type
8091         conversion to the middle-end without using convert.
8092         (negate_expr, associate_trees, size_diffop, omit_one_operand,
8093         operand_equal_for_comparison_p, pedantic_omit_one_operand,
8094         invert_truthvalue, optimize_bit_field_compare, range_binop,
8095         decode_field_reference, make_range, build_range_check, unextend,
8096         fold_truthop, extract_muldiv_1, fold_mathfn_compare,
8097         fold_binary_op_with_conditional_arg, fold_inf_compare,
8098         fold_single_bit_test, fold, multiple_of_p): Replace all calls to
8099         convert with calls to fold_convert.
8100
8101 2004-02-07  Jan Hubicka  <jh@suse.cz>
8102
8103         * genrecog.c (find_operand): add extra argument stop.
8104         (validate_pattern): Verify that mach_dup is duplicating operand
8105         defined lexically earlier.
8106
8107 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
8108
8109         * config.gcc: Don't mention MAX_LONG_TYPE_SIZE.
8110         * system.h (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
8111         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Poison.
8112         * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
8113         config/ia64/ia64.h, config/ip2k/ip2k.h,
8114         config/iq2000/iq2000.h, config/mips/iris5.h,
8115         config/mips/mips.h, config/pa/pa-64.h, config/pa/pa.h,
8116         config/rs6000/aix51.h, config/rs6000/aix52.h,
8117         config/rs6000/darwin.h, config/rs6000/rs6000.h,
8118         config/s390/s390.h, config/sh/sh.h, config/sparc/freebsd.h,
8119         config/sparc/linux.h, config/sparc/linux64.h,
8120         config/sparc/netbsd-elf.h, config/sparc/sparc.h,
8121         config/xtensa/xtensa.h: Remove the definitions of
8122         MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE, and/or
8123         MAX_WCHAR_TYPE_SIZE.
8124         * doc/tm.texi (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
8125         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Remove.
8126
8127 2004-02-07  Stephane Carrez  <stcarrez@nerim.fr>
8128
8129         PR bootstrap/13990
8130         * config/m68hc11/m68hc11.md ("doloop_end"): Pass dummy arguments to
8131         gen_rtx_NE.
8132
8133 2004-02-07  Josef Zlomek  <zlomekj@suse.cz>
8134
8135         * var-tracking.c (vt_add_function_parameters): Surround checkings by
8136         #ifdef ENABLE_CHECKING and #endif.
8137
8138 2004-02-07  Roger Sayle  <roger@eyesopen.com>
8139
8140         * fold-const.c (negate_expr_p, negate_expr): Optimize -(A+B) into
8141         either (-A)-B or (-B)-A, if A or B is easily negated respectively.
8142         (fold) <MINUS_EXPR>: Optimize (A*C) - (B*C) -> (A-B)*C for both
8143         integer types and floating point with unsafe_math_optimizations.
8144         Add similar optimization for (A*C1) - (A*C2) -> A*(C1-C2).
8145         Optimize A - B as A + (-B), if B is easily negated.
8146
8147 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
8148
8149         * c-ppoutput.c, cfganal.c, diagnostic.h, print-rtl.c,
8150         config/darwin.c, config/darwin.h, config/ia64/ia64-c.c,
8151         config/m32r/linux.h, config/rs6000/ppc64-fp.c,
8152         config/sparc/openbsd.h, doc/makefile.texi, doc/passes.texi:
8153         Update copyright.
8154
8155 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
8156
8157         * c-ppoutput.c, var-tracking.c: Fix comment typos.
8158
8159 2004-02-06  James E Wilson  <wilson@specifixinc.com>
8160
8161         * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Only define for
8162         glibc 2.3 or better.
8163
8164 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
8165
8166         * doc/tm.texi (TARGET_FLOAT_LIB_COMPARE_RETURNS_BOOL): Change
8167         to FLOAT_LIB_COMPARE_RETURNS_BOOL.
8168
8169 2004-02-07  Alan Modra  <amodra@bigpond.net.au>
8170
8171         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Add darwin-ldouble.c.
8172         (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
8173         (SHLIB_MKMAP_OPTS): Delete.
8174         (TARGET_LIBGCC2_CFLAGS): Add -specs.
8175         (bispecs): Add rule.
8176         * config/rs6000/libgcc-ppc64.ver: New file.
8177         * config/rs6000/ppc64-fp.c (__fixtfdi, __floatditf): New functions.
8178         (__floatdidf, __floatdisf): Optimize multiply.
8179         (__fixunstfdi): New function.
8180         * config/rs6000/rs6000.c (rs6000_complex_function_value): Allow for
8181         real and imag parts larger than one register.
8182         (function_arg): Correct type of reg used when fp arg split partially
8183         to stack.
8184         * config/rs6000/darwin-ldouble.c: Protect with #if !_SOFT_FLOAT
8185         and __MACH__ or __powerpc64__.
8186
8187 2004-02-06  Roger Sayle  <roger@eyesopen.com>
8188             Ulrich Weigand  <uweigand@de.ibm.com>
8189
8190         * builtins.c (expand_builtin_signbit): Use extract_bit_field instead
8191         of gen_highpart or gen_lowpart when the floating point format is
8192         wider than the result mode.
8193
8194 2004-02-06  Andrew Pinski  <pinskia@physics.uc.edu>
8195
8196         * dwarf2out.c (loclabel_num): Move into #ifdef
8197         DWARF2_DEBUGGING_INFO.
8198
8199 2004-02-06  Ziemowit Laski  <zlaski@apple.com>
8200
8201         * objc/objc-act.c (build_super_template) the 'class' field of
8202         'struct _objc_super' shall be named 'super_class' #ifdef OBJCPLUS.
8203         (get_super_receiver): Likewise.
8204
8205 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
8206
8207         * reload1.c (check_eliminable_occurrences): Optimize the reset
8208         of can_eliminate.
8209         (eliminate_regs_in_insn): Likewise.
8210
8211 2004-02-06  Daniel Berlin <dberlin@dberlin.org>
8212             Josef Zlomek  <zlomekj@suse.cz>
8213
8214         * dwarf2out.c (struct gcc_debug_hooks): Call dwarf2out_begin_function
8215         at the beginning of function, call dwarf2out_var_location for
8216         NOTE_INSN_VAR_LOCATION note.
8217         (struct var_loc_node, struct var_loc_list_def, loclabel_num,
8218         decl_loc_table): New.
8219         (lookup_decl_loc): New function.
8220         (add_var_loc_to_decl): New function.
8221         (based_loc_descr): Added parameter can_use_fbreg, DW_OP_fbreg is used
8222         only if can_use_fbreg.
8223         (mem_loc_descriptor): Added parameter can_use_fbreg, pass it to other
8224         functions.
8225         (loc_descriptor): Likewise. Process VAR_LOCATION.
8226         (concat_loc_descriptor): Call loc_descriptor with can_use_fbreg == true.
8227         (loc_descriptor_from_tree): Call mem_loc_descriptor with
8228         can_use_fbreg == true.
8229         (add_location_or_const_value_attribute): Added parameter enum
8230         dwarf_attribute attr, generate attribute ATTR.  Create the location list.
8231         (add_bound_info): Call loc_descriptor with can_use_fbreg == true.
8232         (gen_formal_parameter_die): Call add_location_or_const_value_attribute
8233         with attr == DW_AT_location.
8234         (gen_subprogram_die): Generate the location list for DW_AT_frame_base
8235         if frame_base_decl is defined and has a location list.
8236         (gen_variable_die): Call add_location_or_const_value_attribute with
8237         attr == DW_AT_location.
8238         (dwarf2out_var_location): New function.
8239         (dwarf2out_begin_function): New function.
8240         (dwarf2out_init): Create decl_loc_table.
8241
8242 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
8243
8244         * loop.c (force_movables): Transitively increase the priorities of
8245         all insns forces by an insn, not just the first one.
8246
8247 2004-02-06  Josef Zlomek  <zlomekj@suse.cz>
8248             Daniel Berlin <dberlin@dberlin.org>
8249
8250         Josef Zlomek  <zlomekj@suse.cz>
8251         * Makefile.in (var-tracking.o): New.
8252         * common.opt (fvar-tracking): New.
8253         * flags.h (flag_var_tracking): New.
8254         * gengtype.c (adjust_field_rtx_def): NOTE_INSN_VAR_LOCATION was added.
8255         * opts.c (common_handle_option): Add OPT_fvar_tracking.
8256         * print-rtl.c (print_rtx): NOTE_INSN_VAR_LOCATION was added.
8257         * rtl.c (note_insn_name): Likewise.
8258         * rtl.def (VAR_LOCATION): New.
8259         * rtl.h (NOTE_VAR_LOCATION): New.
8260         (NOTE_VAR_LOCATION_DECL): New.
8261         (NOTE_VAR_LOCATION_LOC): New.
8262         (enum insn_note): NOTE_INSN_VAR_LOCATION was added.
8263         (variable_tracking_main): New exported function.
8264         * timevar.def (TV_VAR_TRACKING): New.
8265         * toplev.c (enum dump_file_index): Added DFI_vartrack.
8266         (dump_file): "vartrack" was added (-dV).
8267         (flag_var_tracking): New.
8268         (f_options): "var-tracking" was added.
8269         (rest_of_handle_variable_tracking): New function.
8270         (rest_of_compilation): Run variable tracking.
8271         (process_options): If user has not specified flag_var_tracking set it
8272         according to optimize, debug_info_level and debug_hooks.
8273         * tree.h (frame_base_decl): New.
8274         * var-tracking.c: New file.
8275         * config/ia64/ia64.c (ia64_flag_var_tracking): New variable.
8276         (ia64_override_options): Set flags to run variable tracking in machine
8277         dependent reorg instead of toplev.c.
8278         (ia64_reorg): Run variable tracking if wanted.
8279         * doc/invoke.texi: Mention variable tracking in -dV,
8280         add and -fvar-tracking.
8281         * doc/passes.texi: Added variable tracking pass.
8282
8283         Daniel Berlin <dberlin@dberlin.org>
8284         * debug.h (struct gcc_debug_hooks): Added var_location debug hook.
8285         * dbxout.c (dbx_debug_hooks): Likewise.
8286         (xcoff_debug): Likewise.
8287         * debug.c (do_nothing_debug_hooks): Likewise.
8288         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
8289         * dwarfout.c (dwarf_debug_hooks): Likewise.
8290         * sdbout.c (sdb_debug_hooks): Likewise.
8291         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
8292         * final.c (final_scan_insn): Call var_location debug hook for each
8293         NOTE_INSN_VAR_LOCATION.
8294
8295 2004-02-06  Jan Hubicka  <jh@suse.cz>
8296
8297         * flow.c (update_life_info): Allocate reg_deaths when called from
8298         scheudler.
8299         (attempt_auto_inc):  Update life ranges accordingly.
8300
8301 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
8302
8303         PR debug/11816
8304         * dwarf2out.c (gen_decl_die): Handle anonymous struct members.
8305
8306 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
8307
8308         * cfganal.c (flow_call_edges_add): Never split a libcall block.
8309
8310 2004-02-06  Daniel Berlin  <dberlin@dberlin.org>
8311
8312         * dwarf2out.c (output_loc_list): Don't use deltas if we have
8313         a separate line info table in use.
8314         Use the correct size for terminators.
8315         (output_die): Use offset, not delta.
8316
8317 2004-02-06  H.J. Lu  <hongjiu.lu@intel.com>
8318
8319         * doc/invoke.texi: Remove the pni option from -mfpmath=.
8320
8321 2004-02-06  Jan Hubicka  <jh@suse.cz>
8322
8323         * recog.c (split_all_insns): Do not update reg info.
8324         * regrename.c (regrename_optimize): Likewise.
8325         * toplev.c (rest_of_handle_reorder_blocks): Likewise.
8326         * flow.c (struct propagate_block_info): Add insn_num field.
8327         (reg_deaths): New array.
8328         (life_analysis): Free reg_deaths info.
8329         (allocate_reg_life_data): Allocate reg_deaths array.
8330         (propagate_one_insn): Use new array.
8331         (init_propagate_block): Initialize it.
8332         (free_propagate_block_info): Finish compuation of
8333         REG_LIVE_LENGTH
8334         (attempt_auto_inc): Sanity check that REG_INFO is not
8335         computed at same time.
8336         (mark_used_regs): Update new array.
8337
8338         * reg-stack.c (subst_stack_regs): Unshare clobbers before
8339         substitution.
8340
8341 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
8342
8343         * config/s390/s390.md (*extendsiqi2_short_displ): Change to
8344         *extendqisi2_short_displ.
8345
8346 2004-02-06  Alan Modra  <amodra@bigpond.net.au>
8347
8348         * doc/tm.texi (INIT_CUMULATIVE_ARGS): Update doco.
8349         * calls.c (expand_call): Pass n_named_args to INIT_CUMULATIVE_ARGS.
8350         (emit_library_call_value_1): Likewise pass nargs.
8351         * expr.c (block_move_libcall_safe_for_call_parm): Pass 3 here.
8352         * function.c (assign_parms): Pass -1 to INIT_CUMULATIVE_ARGS.
8353         * config/rs6000/rs6000.c (init_cumulative_args): Use n_named_args
8354         parameter instead of scanning TYPE_ARGS_TYPES to count args.
8355         * config/rs6000/rs6000-protos.h (init_cumulative_args): Update
8356         prototype.
8357         * config/rs6000/rs6000.h (INIT_CUMULATIVE_ARGS): Pass extra arg.
8358         (INIT_CUMULATIVE_INCOMING_ARGS): Set extra arg to 1000.
8359         (INIT_CUMULATIVE_LIBCALL_ARGS): Set extra arg to 0.
8360         * config/sh/sh.c (sh_output_mi_thunk): Pass 1 as n_named_args to
8361         INIT_CUMULATIVE_ARGS.
8362         * config/alpha/alpha.h (INIT_CUMULATIVE_ARGS): Update.
8363         * config/alpha/unicosmk.h, config/alpha/vms.h, config/arc/arc.h,
8364         config/arm/arm.h, config/avr/avr.h, config/c4x/c4x.h,
8365         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.h,
8366         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
8367         config/ia64/ia64.h, config/ip2k/ip2k.h, config/iq2000/iq2000.h,
8368         config/iq2000/iq2000.c, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
8369         config/m68k/m68k.h, config/mcore/mcore.h, config/mips/mips.h,
8370         config/mmix/mmix.h, config/mn10300/mn10300.h, config/ns32k/ns32k.h,
8371         config/pa/pa.h, config/pdp11/pdp11.h, config/s390/s390.h,
8372         config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
8373         config/v850/v850.h, config/vax/vax.h, config/xtensa/xtensa.h: Likewise.
8374
8375 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
8376
8377         * genemit.c (gen_exp) [CONST_INT]: Use const_int_rtx whenever
8378         possible.
8379
8380 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
8381
8382         * reload1.c (eliminate_regs_in_insn): If a set has a REG_EQUAL
8383         note containing (plus (reg) (const_int)), where reg is an
8384         eliminable reg, then perform the register elimination without
8385         depending on eliminate_regs().
8386
8387 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
8388
8389         * config/arc/arc.c (arc_return_in_memory): Check the return
8390         value of int_size_in_bytes against -1.  Don't check
8391         TREE_ADDRESSABLE.
8392         * config/avr/avr.c (avr_return_in_memory): Check the return
8393         value of int_size_in_bytes against -1.
8394         * config/ip2k/ip2k.c (ip2k_return_in_memory): Likewise.
8395         * config/m68hc11/m68hc11.c (m68hc11_return_in_memory):
8396         Likewise.
8397         * config/mcore/mcore.c (mcore_return_in_memory): Likewise.
8398         * config/stormy16/stormy16.c (xstormy16_return_in_memory):
8399         Likewise.
8400
8401 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
8402
8403         * config/frv/frv-protos.h: Remove the prototype for
8404         frv_setup_incoming_varargs.
8405         * config/frv/frv.c (TARGET_SETUP_INCOMING_VARARGS): New.
8406         (frv_setup_incoming_varargs): Make it static.
8407         * config/frv/frv.h (SETUP_INCOMING_VARARGS): Remove.
8408
8409 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
8410
8411         * config/fr30/fr30-protos.h: Remove the prototype for
8412         fr30_setup_incoming_varargs.
8413         Update the prototypes for fr30_num_arg_regs and
8414         fr30_function_arg_partial_nregs.
8415         * config/fr30/fr30.c (TARGET_STRUCT_VALUE_RTX): New.
8416         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
8417         (fr30_setup_incoming_varargs): Make it static.
8418         Add argument second_time.  Don't do anything when second_time
8419         is nonzero.
8420         (fr30_num_arg_regs): Change the type of the first argument to
8421         enum machine_mode.
8422         (fr30_function_arg_partial_nregs): Change the type of the
8423         second argument to enum machine_mode.
8424         * config/fr30/fr30.h (STRUCT_VALUE): Remove.
8425         (SETUP_INCOMING_VARARGS): Remove.
8426
8427 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
8428
8429         * config/arc/arc-protos.h: Remove the prototype for
8430         arc_setup_incoming_varargs.
8431         * config/arc/arc.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
8432         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
8433         (arc_setup_incoming_varargs): Make it static.
8434         (arc_external_libcall): Likewise.
8435         * config/arc/arc.h (SETUP_INCOMING_VARARGS): Remove.
8436         Remove the commented-out definition of
8437         ASM_OUTPUT_EXTERNAL_LIBCALL.
8438
8439 2004-02-05  SUGIOKA Toshinobu  <sugioka@itonet.co.jp>
8440
8441         * config/sh/t-linux (SHLIB_INSTALL): Prepend $$(DESTDIR)
8442         to $$(slibdir) in the installation commands.
8443
8444 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
8445
8446         * reload.c (refers_to_regno_for_reload_p): Index hard_regno_nregs
8447         with inner_regno, not regno.
8448         * rtlanal.c (refers_to_regno_p): Same.
8449
8450 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
8451
8452         * config.gcc: Remove i370 support.
8453
8454 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
8455
8456         * doc/install.texi:  Update automake and autoconf version
8457         requirements.  Note where to find gcj automake version.
8458
8459 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
8460
8461         * Makefile.in (generate-manpages): Move dependencies to ...
8462         (man): here.
8463         * doc/makefile.texi: Document new targets.
8464         * doc/sourcebuild.texi (Make-lang.in): Document new langhooks.
8465
8466 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
8467
8468         PR/13485
8469         Makefile.in (srcextra):  Add a level of indirection to ...
8470         (gcc.srcextra): ... here.
8471         (po-generated): Delete.
8472         (po/$(PACKAGE).pot: Use srcextra instead of po-generated.  Depend on
8473         options.c.
8474         (start.encap): Remove superfluous lang.srcextra dependency.
8475         objc/Make-lang.in (po-generated):  Delete.
8476
8477 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
8478
8479         * config/ia64/ia64.c (REG_GP): Remove.
8480
8481 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8482
8483         * config/mips/iris5gas.h (PREFERRED_DEBUGGING_TYPE): Define.
8484
8485 2004-02-05  Devang Patel  <dpatel@apple.com>
8486
8487         * dwarf2out.c (force_type_die): Look up input type itself
8488         instead of root_type() of type.
8489
8490 2004-02-05  Andreas Krebbel  <krebbel1@de.ibm.com>
8491
8492         * config/s390/s390.md ("*tmqidi_ext"): New insn.
8493         ("*extendqidi2_short_displ", "*extendsiqi2_short_displ"): Old
8494         pre-reload splitters are transformed to post-reload
8495         define_insn_and_split patterns.
8496         ("*tmqisi_ext"): Renamed old "*tmqi_ext".
8497
8498 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
8499
8500         * config/cris/cris.h: Replace PROMOTE_PROTOTYPES with
8501         TARGET_PROMOTE_PROTOTYPES.
8502
8503 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8504
8505         PR middle-end/13750
8506         Revert:
8507         2004-01-15  Geoffrey Keating  <geoffk@apple.com>
8508         PR pch/13361
8509         * c-typeck.c (constructor_asmspec): Delete.
8510         (struct initializer_stack): Delete field 'asmspec'.
8511         (start_init): Delete saving of asmspec.
8512         (finish_init): Don't update constructor_asmspec.
8513         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
8514         * stmt.c (expand_asm): Duplicate strings from tree.
8515         (expand_asm_operands): Likewise.
8516         * tree.c (tree_size): Update computation of size of STRING_CST.
8517         (make_node): Don't make STRING_CST nodes.
8518         (build_string): Allocate string with tree node.
8519         * tree.def (STRING_CST): Update comment.
8520         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
8521         (tree_string): Place contents of string in tree node.
8522         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
8523         from tree.
8524
8525 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
8526
8527         * diagnostic.h (DEFINE_DIAGNOSTIC_KIND): Change parameter M to
8528         msgid.
8529
8530 2004-02-05  Dorit Naishlos  <dorit@il.ibm.com>
8531
8532         * config/rs6000/altivec.md (*movv4si_internal): At least one
8533         operand must be altivec_register_operand.
8534         (*movv8hi_internal1): Likewise.
8535         (*movv16qi_internal1): Likewise.
8536         (*movv4sf_internal1): Likewise.
8537
8538 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
8539
8540         * configure.ac (gcc_cv_as_powerpc_mfcrf): Correct test for mfcr.
8541         * configure: Regenerate.
8542
8543 2004-02-05  Jonathan Wakely  <redi@gcc.gnu.org>
8544
8545         * doc/install.texi: Update description of --gxx-include-dir to
8546         give correct default value.
8547
8548 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
8549
8550         * config/h8300/h8300.h (REG_OK_FOR_BASE_NONSTRICT_P): Replace
8551         8 with MAC_REG.
8552
8553 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
8554
8555         * config/pa/pa.c (emit_hpdiv_const): Replace gen_rtx with
8556         gen_rtx_PARALLEL.
8557
8558 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
8559
8560         * emit-rtl.c: Update the comment about the file.
8561
8562 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
8563
8564         * sourcebuild.texi (Test Idioms): Update testcase naming
8565         conventions.
8566
8567 2004-02-04  Per Bothner  <per@bothner.com>
8568
8569         Partially revert/redo 2003-10-01 change; fix -fworking-directory.
8570         * c-ppoutput.c (pp_dir_change):  New function.
8571         * c-common.h (pp_dir_change):  New declaration.
8572         * cpplib.h (struct cpp_options):  Remove working_directory field.
8573         * cppinit.c (cpp_find_main_file, cpp_push_main_file):  Merge back to
8574         (cpp_read_main_file):  as before 10-01.  Call _cpp_stack_file.
8575         Don't handle -fworking_directory here, but in c_common_post_options.
8576         (read_original_directory): Don't back up when done.
8577         Don't clear no-longer used working_directory flag.
8578         * cpplib.h:  Update declarations to match.
8579         * c-lex.c (cb_dir_change):  Move to c-opts.c.
8580         (init_c_lex):  Don't set dir_change callback here, since we want
8581         to set it even if flag_preprocess_only.
8582         * c-opts.c (cb_dir_change):  Function moved from c-lex.c.
8583         (c_common_post_options):  Set dir_change callback.
8584         Call pp_dir_change if approporiate.
8585         (finish_options):  Don't call cpp_find_main_file here.  Hence remove
8586         unneeded parameter and result. Do LC_RENAME for <built-in>.
8587         (c_common_post_options):  Call cpp_read_main_file here instead.
8588         (c_common_init):  Update accordingly.
8589         (push_command_line_include):  Don't cpp_push_main_file.
8590         Do LC_RENAME rather than LC_LEASE to get back to main file.
8591         Compared to pre-10-01 version, inline cpp_rename_to_main_file.
8592         (c_common_parse_file):  Call cpp_read_main_file for subsequent main
8593         files, but call finish_options for all files.
8594         * c-opts.c (sanitize_cpp_opts):  Don't set cpp_opts->working_directory.
8595         * fix-header.c (read_scan_file):  Call cpp_read_main_file instead of
8596         cpp_find_main_file + cpp_push_main_file.
8597         * c-lex.c (fe_file_change):  Don't set main_input_filename here.
8598         * opts.c (handle_options):  Only set main_input_filename first time.
8599
8600 2004-02-05  Ian Lance Taylor  <ian@wasabisystems.com>
8601
8602         * config/arm/arm.h (REG_CLASS_NAMES): Add missing comma.
8603
8604 2004-02-04  Geoffrey Keating  <geoffk@apple.com>
8605
8606         * reload.c (find_equiv_reg): When checking for register overlap,
8607         don't index hard_regno_nregs with a pseudo-reg.
8608
8609 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
8610
8611         * config/s390/s390.c (s390_trampoline_template): Remove gen_rtx().
8612
8613 2004-02-04  David Edelsohn  <edelsohn@gnu.org>
8614
8615         * reload.c (refers_to_regno_for_reload_p): Test regno, not inner_regno,
8616         against FIRST_PSEUDO_REGISTER.
8617
8618 2004-02-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8619
8620         * Makefile.in: Move target, host overrides after per-language
8621         fragments.
8622
8623         * config/mips/t-iris5-as (FORCE_DEBUG_ADAFLAGS): Clear.
8624         (GNATLIBCFLAGS): Remove -g.
8625
8626 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
8627
8628         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
8629         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
8630         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
8631         config/m32r/m32r.c, config/ns32k/ns32k.c, config/pa/pa.c,
8632         config/pdp11/pdp11.c, config/rs6000/rs6000.c,
8633         config/sparc/sparc.c, config/vax/vax.c: Revert the
8634         replacements of "FALLTHRU" with "Fall through" done in the
8635         previous patch.
8636
8637 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
8638
8639         * config/darwin.c, config/darwin.h, config/freebsd-spec.h,
8640         config/arm/arm.c, config/arm/arm.md,
8641         config/cris/cris-protos.h, config/fr30/fr30.c,
8642         config/fr30/fr30.h, config/h8300/h8300.c, config/i386/i386.h,
8643         config/i860/i860.c, config/i860/i860.h, config/ia64/ia64-c.c,
8644         config/ia64/ia64.c, config/ia64/ia64.h, config/ip2k/ip2k.h,
8645         config/ip2k/ip2k.md, config/ip2k/libgcc.S,
8646         config/m32r/linux.h, config/m32r/m32r.c, config/m32r/m32r.h,
8647         config/m68k/m68k.c, config/m68k/netbsd-elf.h,
8648         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.md,
8649         config/ns32k/netbsd.h, config/ns32k/ns32k.c,
8650         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
8651         config/rs6000/darwin-ldouble.c, config/s390/s390.h,
8652         config/s390/s390.md, config/sparc/netbsd-elf.h,
8653         config/sparc/openbsd.h, config/sparc/sparc.c,
8654         config/xtensa/lib2funcs.S: Fix comment formatting.
8655
8656 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
8657
8658         * config/alpha/alpha.c, config/arc/arc.c,
8659         config/arm/arm-cores.def, config/arm/arm.c, config/arm/arm.h,
8660         config/arm/arm1026ejs.md, config/arm/arm1136jfs.md,
8661         config/arm/arm926ejs.md, config/arm/vfp.md, config/avr/avr.c,
8662         config/c4x/c4x.c, config/cris/cris.c, config/frv/frv.md,
8663         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
8664         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
8665         config/iq2000/iq2000.c, config/m32r/m32r.c,
8666         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.h,
8667         config/ns32k/ns32k.c, config/pa/pa.c, config/pdp11/pdp11.c,
8668         config/rs6000/darwin-ldouble.c, config/rs6000/rs6000.c,
8669         config/rs6000/rs6000.h, config/sparc/sparc.c,
8670         config/vax/vax.c: Fix comment typos.  Follow spelling
8671         conventions.
8672
8673 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
8674
8675         * alloc-pool.h, c-convert.c, c-lang.c, c-tree.h,
8676         caller-save.c, df.h, genconfig.c, global.c, lcm.c,
8677         ra-rewrite.c, ra.c, regclass.c, regs.h, resource.c,
8678         sched-rgn.c, config/arm/aof.h, config/arm/cirrus.md,
8679         config/arm/fpa.md, config/arm/iwmmxt.md,
8680         config/arm/netbsd-elf.h, config/arm/netbsd.h,
8681         config/m68hc11/m68hc11.md, config/mips/iris5.h,
8682         config/mn10300/mn10300.md, config/rs6000/altivec.md,
8683         config/sparc/netbsd-elf.h: Update copyright.
8684
8685 2004-02-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
8686
8687         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
8688         for all modes whose size is greater than 8 bytes if ARCH32.
8689         (sparc_va_arg): Handle all modes whose size is greater than 8 bytes
8690         by reference if ARCH32.
8691
8692 2004-02-04  Aldy Hernandez  <aldyh@redhat.com>
8693
8694         * cgraphunit.c (cgraph_postorder): Fix typo in comment.
8695
8696 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
8697
8698         * config/s390/s390.md ("*la_64" + peepholes, "reload_indi"): Move
8699         to before adddi3 insn patterns.
8700         ("*la_31" + peepholes, "*la_31_and", "*la_31_and_cc", "force_la_31",
8701         "reload_insi"): Move to before addsi3 insn patterns.
8702
8703 2004-02-04  Mark Mitchell  <mark@codesourcery.com>
8704
8705         * calls.c (initialize_argument_information): Add CALL_FROM_THUNK_P
8706         parameter.  Use it instead of current_function_is_thunk.
8707         * function.h (struct function): Update documentation for is_thunk.
8708         * tree.h (CALL_FROM_THUNK_P): New macro.
8709         * config/alpha/alpha.c (alpha_sa_mask): Do not check
8710         no_new_pseudos when testing current_function_is_thunk.
8711         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likeiwse.
8712
8713 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
8714
8715         * doc/tm.texi: Replace SETUP_INCOMING_VARARGS with
8716         TARGET_SETUP_INCOMING_VARARGS.
8717
8718 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
8719
8720         * emit-rtl.c (gen_rtx): Remove.
8721         * genattrtab.c: Don't mention gen_rtx in a comment.
8722         * rtl.h: Remove the prototype for gen_rtx.
8723         * doc/md.texi: Replace gen_rtx with gen_rtx_REG.
8724
8725 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
8726
8727         * config/arc/arc.h, config/fr30/fr30.h
8728         (SETUP_INCOMING_VARARGS): Remove the target-independent
8729         comments.
8730         * doc/tm.texi: Don't mention deprecated target macros.
8731
8732 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
8733
8734         * config/fr30/fr30.h (FUNCTION_VALUE): Remove the
8735         target-independent comment.
8736
8737 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
8738
8739         * doc/interface.texi, doc/tm.texi, doc/trouble.texi: Don't
8740         mention deprecated target macros.
8741
8742 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
8743
8744         * config.gcc: Remove obsolete ports and configurations.
8745         * config/linux-aout.h, config/netware.h,
8746         config/t-linux-gnulibc1, config/d30v/abi,
8747         config/d30v/d30v-protos.h, config/d30v/d30v.c,
8748         config/d30v/d30v.h, config/d30v/d30v.md,
8749         config/d30v/libgcc1.asm, config/d30v/t-d30v,
8750         config/dsp16xx/dsp16xx-modes.def,
8751         config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c,
8752         config/dsp16xx/dsp16xx.h, config/dsp16xx/dsp16xx.md,
8753         config/i370/README, config/i370/i370-c.c,
8754         config/i370/i370-protos.h, config/i370/i370.c,
8755         config/i370/i370.h, config/i370/i370.md, config/i370/linux.h,
8756         config/i370/mvs.h, config/i370/oe.h, config/i370/t-i370,
8757         config/i386/freebsd-aout.h, config/i386/linux-aout.h,
8758         config/i386/moss.h, config/i386/netware.h,
8759         config/i386/svr3.ifile, config/i386/svr3dbx.h,
8760         config/i386/svr3gas.h, config/i386/svr3z.ifile,
8761         config/i386/t-udk, config/i386/udk.h, config/i386/vsta.h,
8762         config/i960/i960-c.c, config/i960/i960-coff.h,
8763         config/i960/i960-modes.def, config/i960/i960-protos.h,
8764         config/i960/i960.c, config/i960/i960.h, config/i960/i960.md,
8765         config/i960/rtems.h, config/i960/t-960bare,
8766         config/m68k/hp310.h, config/m68k/hp320.h,
8767         config/m68k/hp320base.h, config/m68k/m68kv4.h,
8768         config/m68k/netbsd.h, config/m68k/sgs.h, config/m68k/t-hp320:
8769         Remove.
8770         * doc/extend.texi, doc/install.texi, doc/invoke.texi,
8771         doc/md.texi: Remove mentions of obsolete ports.
8772
8773 2004-02-04  Jan Hubicka  <jh@suse.cz>
8774
8775         * alias.c (find_base_term, get_addr):  Do not dereference NULL
8776         pointer when all VALUE's locations has been invalidated.
8777         (rtx_equal_for_memref_p): Simplify checking of VALUEs.
8778
8779 2004-02-03  Wolfgang Bangerth  <bangerth@dealii.org>
8780
8781         * doc/invoke.texi (x86 options): Fix spelling/wording.
8782
8783 2004-02-03  Richard Sandiford  <rsandifo@redhat.com>
8784
8785         * config/mips/iris5.h (ASM_OUTPUT_ASCII): Use mips_output_ascii to
8786         put the original string in a comment.
8787         * config/mips/mips-protos.h (mips_output_ascii): Add prefix argument.
8788         * config/mips/mips.c (mips_output_ascii): Likewise.
8789         * config/mips/mips.h (ASM_OUTPUT_ASCII): Adjust accordingly.
8790
8791 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
8792
8793         * system.h (GIV_SORT_CRITERION): Poison.
8794         * config/avr/avr.h (GIV_SORT_CRITERION): Remove.
8795         * config/ip2k/ip2k.h (GIV_SORT_CRITERION): Likewise.
8796
8797 2004-02-03  Roger Sayle  <roger@eyesopen.com>
8798
8799         PR target/9348
8800         * expr.c (expand_expr_real) <MULT_EXPR>:  When performing widening
8801         multiplies with a multiplication of the wrong signedness, its the
8802         signedness of the multiplication that we've performed that needs to
8803         be passed to expand_mult_highpart_adjust.  Avoid emitting a nop-move
8804         if expand_mult_highpart_adjust places the result in target.
8805
8806 2004-02-03  Richard Henderson  <rth@redhat.com>
8807
8808         * varasm.c (const_desc_rtx_sym_eq): Compare symbol strings.
8809
8810 2004-02-03  J"orn Rennecke <joern.rennecke@superh.com>
8811
8812         * config.gcc (sh[234]l): Use little endian fragments.
8813
8814 2004-02-03  Paul Koning  <pkoning@equallogic.com>
8815
8816         * config/pdp11/pdp11-modes.def: Add RESET_FLOAT_FORMAT calls.
8817         * config/pdp11/pdp11-protos.h (legitimate_const_double_p): Add.
8818         * config/pdp11/pdp11.c (encode_pdp11_f, decode_pdp11_f,
8819         encode_pdp11_d, decode_pdp11_d): New functions to handle PDP11
8820         floating point format.
8821         (pdp11_f_format, pdp11_d_format): New real_format descriptors for
8822         the above functions.
8823         (output_move_quad): Output float values in correct target format.
8824         (legitimate_const_double_p): New function.
8825         * config/pdp11/pdp11.h: Fix typos.
8826         (FLOAT_WORDS_BIG_ENDIAN): Add definition.
8827         (TARGET_FLOAT_FORMAT): Ditto.
8828         (pdp11_f_format, pdp11_d_format): Add external declarations.
8829         (MAX_REGS_PER_ADDRESS): Corrected.
8830         (LEGITIMATE_CONSTANT_P): Use legitimate_const_double_p().
8831         (PRINT_OPERAND): Output float literals in target format.
8832
8833 2004-02-03  Mark Mitchell  <mark@codesourcery.com>
8834
8835         PR c++/13975
8836         * tree.h (enum tree_index): Add TI_PUBLIC, TI_PROTECTED, and
8837         TI_PRIVATE.
8838         (access_public_node): Redefine.
8839         (access_protected_node): Likewise.
8840         (access_private_node): Likewise.
8841         * tree.c (build_common_tree_nodes): Create access_public_node,
8842         access_protected_node, and access_private_node.
8843
8844 2004-02-03  Steve Ellcey  <sje@cup.hp.com>
8845
8846         * config/ia64/ia64.h (MASK_INLINE_INT_DIV_LAT): Change value.
8847         (MASK_INLINE_INT_DIV_THR): Ditto.
8848         (MASK_INLINE_SQRT_LAT): Ditto.
8849         (MASK_INLINE_SQRT_THR): Ditto.
8850         (MASK_DWARF2_ASM): Ditto.
8851         (MASK_EARLY_STOP_BITS): Ditto.
8852
8853 2004-02-02  Paul Brook  <paul@codesourcery.com>
8854
8855         Merge from csl-arm-branch.
8856
8857         2004-01-30  Paul Brook  <paul@codesourcery.com>
8858
8859         * aof.h (REGISTER_NAMES): Add vfp reg names
8860         (ADDITIONAL_REGISTER_NAMES): Ditto.
8861         * aout.h (REGISTER_NAMES): Ditto.
8862         (ADDITIONAL_REGISTER_NAMES): Ditto.
8863         * arm-protos.h: Update/Add Prototypes.
8864         * arm.c (init_fp_table): Rename from init_fpa_table. Update users.
8865         Only allow 0.0 for VFP.
8866         (fp_consts_inited): Rename from fpa_consts_inited.  Update users.
8867         (values_fp): Rename from values_fpa.  Update Users.
8868         (arm_const_double_rtx): Rename from const_double_rtx_ok_for_fpa.
8869         Update users.  Only check valid constants for this hardware.
8870         (arm_float_rhs_operand): Rename from fpa_rhs_operand.  Update Users.
8871         Only allow consts for FPA.
8872         (arm_float_add_operand): Rename from fpa_add_operand.  Update users.
8873         Only allow consts for FPA.
8874         (use_return_insn): Check for saved VFP regs.
8875         (arm_legitimate_address_p): Handle VFP DFmode addressing.
8876         (arm_legitimize_address): Ditto.
8877         (arm_general_register_operand): New function.
8878         (vfp_mem_operand): New function.
8879         (vfp_compare_operand): New function.
8880         (vfp_secondary_reload_class): New function.
8881         (arm_float_compare_operand): New function.
8882         (vfp_print_multi): New function.
8883         (vfp_output_fstmx): New function.
8884         (vfp_emit_fstm): New function.
8885         (arm_output_epilogue): Output VPF reg restore code.
8886         (arm_expand_prologue): Output VFP reg save code.
8887         (arm_print_operand): Add 'P'.
8888         (arm_hard_regno_mode_ok): Return modes for VFP regs.
8889         (arm_regno_class): Return classes for VFP regs.
8890         (arm_compute_initial_elimination_offset): Include space for VFP regs.
8891         (arm_get_frame_size): Ditto.
8892         * arm.h (FIXED_REGISTERS): Add VFP regs.
8893         (CALL_USED_REGISTERS): Ditto.
8894         (CONDITIONAL_REGISTER_USAGE): Enable VFP regs.
8895         (FIRST_VFP_REGNUM): Define.
8896         (LAST_VFP_REGNUM): Define.
8897         (IS_VFP_REGNUM): Define.
8898         (FIRST_PSEUDO_REGISTER): Include VFP regs.
8899         (HARD_REGNO_NREGS): Handle VFP regs.
8900         (REG_ALLOC_ORDER): Add VFP regs.
8901         (enum reg_class): Add VFP_REGS.
8902         (REG_CLASS_NAMES): Ditto.
8903         (REG_CLASS_CONTENTS): Ditto.
8904         (CANNOT_CHANGE_MODE_CLASS) Handle VFP Regs.
8905         (REG_CLASS_FROM_LETTER): Add 'w'.
8906         (EXTRA_CONSTRAINT_ARM): Add 'U'.
8907         (EXTRA_MEMORY_CONSTRAINT): Define.
8908         (SECONDARY_OUTPUT_RELOAD_CLASS): Handle VFP regs.
8909         (SECONDARY_INPUT_RELOAD_CLASS): Ditto.
8910         (REGISTER_MOVE_COST): Ditto.
8911         (PREDICATE_CODES): Add arm_general_register_operand,
8912         arm_float_compare_operand and vfp_compare_operand.
8913         * arm.md (various): Rename as above.
8914         (divsf3): Enable when TARGET_VFP.
8915         (divdf3): Ditto.
8916         (movdfcc): Ditto.
8917         (sqrtsf2): Ditto.
8918         (sqrtdf2): Ditto.
8919         (arm_movdi): Disable when TARGET_VFP.
8920         (arm_movsi_insn): Ditto.
8921         (movsi): Only split with general regs.
8922         (cmpsf): Use arm_float_compare_operand.
8923         (push_fp_multi): Restrict to TARGET_FPA.
8924         (vfp.md): Include.
8925         * vfp.md: New file.
8926         * fpa.md (various): Rename as above.
8927         * doc/md.texi: Document ARM w and U constraints.
8928
8929         2004-01-15  Paul Brook  <paul@codesourcery.com>
8930
8931         * config.gcc: Add with_fpu.  Allow with-float=softfp.
8932         * config/arm/arm.c (arm_override_options): Rename *-s to *s.
8933         Break out of loop when we find a float-abi.  Fix typo.
8934         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "fpu".
8935         Set -mfloat-abi=.
8936         * doc/install.texi: Document --with-fpu.
8937
8938         2003-01-14  Paul Brook  <paul@codesourcery.com>
8939
8940         * config.gcc (with_arch): Add armv6.
8941         * config/arm/arm.h: Rename TARGET_CPU_*_s to TARGET_CPU_*s.
8942         * config/arm/arm.c (arm_overrride_options): Ditto.
8943
8944         2004-01-08  Richard Earnshaw  <rearnsha@arm.com>
8945
8946         * arm.c (FL_ARCH3M): Renamed from FL_FAST_MULT.
8947         (FL_ARCH6): Renamed from FL_ARCH6J.
8948         (arm_arch3m): Renamed from arm_fast_multiply.
8949         (arm_arch6): Renamed from arm_arch6j.
8950         * arm.h: Update all uses of above.
8951         * arm-cores.def: Likewise.
8952         * arm.md: Likewise.
8953
8954         * arm.h (CPP_CPU_ARCH_SPEC): Emit __ARM_ARCH_6J__ define for armV6j,
8955         not arm6j.  Add entry for arch armv6.
8956
8957         2004-01-07  Richard Earnshaw  <rearnsha@arm.com>
8958
8959         * arm.c (arm_emit_extendsi): Delete.
8960         * arm-protos.h (arm_emit_extendsi): Delete.
8961         * arm.md (zero_extendhisi2): Also handle zero-extension of
8962         non-subregs.
8963         (zero_extendqisi2, extendhisi2, extendqisi2): Likewise.
8964         (thumb_zero_extendhisi2): Only match if not v6.
8965         (arm_zero_extendhisi2, thumb_zero_extendqisi2, arm_zero_extendqisi2)
8966         (thumb_extendhisi2, arm_extendhisi2, arm_extendqisi)
8967         (thumb_extendqisi2): Likewise.
8968         (thumb_zero_extendhisi2_v6, arm_zero_extendhisi2_v6): New patterns.
8969         (thumb_zero_extendqisi2_v6, arm_zero_extendqisi2_v6): New patterns.
8970         (thumb_extendhisi2_insn_v6, arm_extendhisi2_v6): New patterns.
8971         (thumb_extendqisi2_v6, arm_extendqisi_v6): New patterns.
8972         (arm_zero_extendhisi2_reg, arm_zero_extendqisi2_reg): Delete.
8973         (arm_extendhisi2_reg, arm_extendqisi2_reg): Delete.
8974         (arm_zero_extendhisi2addsi): Remove subreg.  Add attributes.
8975         (arm_zero_extendqisi2addsi, arm_extendhisi2addsi): Likewise.
8976         (arm_extendqisi2addsi): Likewise.
8977
8978         2003-12-31  Mark Mitchell  <mark@codesourcery.com>
8979
8980         Revert this change:
8981         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
8982         + REG addressing modes.
8983
8984         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
8985         + REG addressing modes.
8986
8987         2003-12-30  Mark Mitchell  <mark@codesourcery.com>
8988
8989         * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept
8990         CONSTANT_P_RTX.
8991
8992         2003-30-12  Paul Brook  <paul@codesourcery.com>
8993
8994         * longlong.h: protect arm inlines with !defined (__thumb__)
8995
8996         2003-30-12  Paul Brook  <paul@codesourcery.com>
8997
8998         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Always define __arm__.
8999
9000         2003-12-30  Nathan Sidwell  <nathan@codesourcery.com>
9001
9002         * builtins.c (expand_builtin_apply_args_1): Fix typo in previous
9003         change.
9004
9005         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
9006
9007         * builtins.c (expand_builtin_apply_args_1): Add pretend args size
9008         to the virtual incoming args pointer for downward stacks.
9009
9010         2003-12-29  Paul Brook  <paul@codesourcery.com>
9011
9012         * config/arm/arm-cores.def: Add cost function.
9013         * config/arm/arm.c (arm_*_rtx_costs): New functions.
9014         (arm_rtx_costs): Remove
9015         (struct processors): Add rtx_costs field.
9016         (all_cores, all_architectures): Ditto.
9017         (arm_override_options): Set targetm.rtx_costs.
9018         (thumb_rtx_costs): New function.
9019         (arm_rtx_costs_1): Remove cases handled elsewhere.
9020         * config/arm/arm.h (processor_type): Add COSTS parameter.
9021
9022         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
9023
9024         * config/arm/arm.md (generic_sched): arm926 has its own scheduler.
9025         (arm926ejs.md): Include it.
9026         * config/arm/arm926ejs.md: New pipeline description.
9027
9028         2003-12-24  Paul Brook  <paul@codesourcery.com>
9029
9030         * config/arm/arm.c (arm_arch6j): New variable.
9031         (arm_override_options): Set it.
9032         (arm_emit_extendsi): New function.
9033         * config/arm/arm-protos.h (arm_emit_extendsi): Add prototype.
9034         * config/arm/arm.h (arm_arch6j): Declare.
9035         * config/arm/arm.md: Add sign/zero extend insns.
9036
9037         2003-12-23  Paul Brook  <paul@codesourcery.com>
9038
9039         * config/arm/arm.c (all_architectures): Add armv6.
9040         * doc/invoke.texi: Document it.
9041
9042         2003-12-19  Paul Brook  <paul@codesourcery.com>
9043
9044         * config/arm/arm.md: Add load1 and load_byte "type" attrs.  Modify
9045         insn patterns to match.
9046         * config/arm/arm-generic.md: Ditto.
9047         * config/arm/cirrus.md: Ditto.
9048         * config/arm/fpa.md: Ditto.
9049         * config/amm/iwmmxt.md: Ditto.
9050         * config/arm/arm1026ejs.md: Ditto.
9051         * config/arm/arm1135jfs.md: Ditto.  Add insn_reservation and bypasses
9052         for 11_loadb.
9053
9054         2003-12-18  Nathan Sidwell  <nathan@codesourcery.com>
9055
9056         * config/arm/arm-protos.h (arm_no_early_alu_shift_value_dep): Declare.
9057         * config/arm/arm.c (arm_adjust_cost): Check shift cost for
9058         TYPE_ALU_SHIFT and TYPE_ALU_SHIFT_REG.
9059         (arm_no_early_store_addr_dep, arm_no_early_alu_shift_dep,
9060         arm_no_early_mul_dep): Correctly deal with conditional execution,
9061         parallels and single shift operations.
9062         (arm_no_early_alu_shift_value_dep): Define.
9063         * arm.md (attr type): Replace 'normal' with 'alu',
9064         'alu_shift' and 'alu_shift_reg'.
9065         (attr core_cycles): Adjust.
9066         (*addsi3_carryin_shift, andsi_not_shiftsi_si, *arm_shiftsi3,
9067         *shiftsi3_compare0, *notsi_shiftsi, *notsi_shiftsi_compare0,
9068         *not_shiftsi_compare0_scratch, *cmpsi_shiftsi, *cmpsi_shiftsi_swp,
9069         *cmpsi_neg_shiftsi, *arith_shiftsi, *arith_shiftsi_compare0,
9070         *arith_shiftsi_compare0_scratch, *sub_shiftsi,
9071         *sub_shiftsi_compare0, *sub_shiftsi_compare0_scratch,
9072         *if_shift_move, *if_move_shift, *if_shift_shift): Set type
9073         attribute appropriately.
9074         * config/arm/arm1026ejs.md (alu_op): Adjust.
9075         (alu_shift_op, alu_shift_reg_op): New.
9076         * config/arm/arm1136.md: Add better bypasses for early
9077         registers. Remove load[234] and store[234] bypasses.
9078         (11_alu_op): Adjust.
9079         (11_alu_shift_op, 11_alu_shift_reg_op): New.
9080
9081         2003-12-15  Nathan Sidwell  <nathan@codesourcery.com>
9082
9083         * config/arm/arm-protos.h (arm_no_early_store_addr_dep,
9084         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Declare.
9085         * config/arm/arm.c (arm_no_early_store_addr_dep,
9086         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Define.
9087         * config/arm/arm1026ejs.md: Add load-store bypass.
9088         * config/arm/arm1136jfs.md (11_alu_op): Take 2 cycles.
9089         Add bypasses between instructions.
9090
9091         2003-12-10  Paul Brook  <paul@codesourcery.com>
9092
9093         * config/arm/arm.c (arm_fpu_model): New variable.
9094         (arm_fload_abi): New variable.
9095         (target_fpe_name): Rename from target_fp_name.
9096         (target_fpu_name): New variable.
9097         (arm_is_cirrus): Remove.
9098         (fpu_desc): New struct.
9099         (all_fpus): Define.
9100         (pf_model_for_fpu): Define.
9101         (all_loat_abis): Define.
9102         (arm_override_options): Set fp arch flags based on -mfpu=
9103         and -float-abi=.
9104         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
9105         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
9106         (*): Use new TARGET_* flags.
9107         * config/arm/arm.h (TARGET_ANY_HARD_FLOAT): Remove.
9108         (TARGET_HARD_FLOAT): No longer implies TARGET_FPA.
9109         (TARGET_SOFT_FLOAT): Ditto.
9110         (TARGET_SOFT_FLOAT_ABI): New.
9111         (TARGET_MAVERICK): Rename from TARGET_CIRRUS.  No longer implies
9112         TARGET_HARD_FLOAT.
9113         (TARGET_VFP): No longer implies TARGET_HARD_FLOAT.
9114         (TARGET_OPTIONS): Add -mfpu=.
9115         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
9116         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
9117         (arm_pf_model): Define.
9118         (arm_float_abi_type): Define.
9119         (fputype): Add FPUTYPE_VFP.  Change SOFT_FPA->NONE
9120         * config/arm/arm.md: Use new TARGET_* flags.
9121         * config/arm/cirrus.md: Ditto.
9122         * config/arm/fpa.md: Ditto.
9123         * config/arm/elf.h (ASM_SPEC): Pass -mfloat-abi= and -mfpu=.
9124         * config/arm/semi.h (ASM_SPEC): Ditto.
9125         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Specify vfp.
9126         (FPUTYPE_DEFAULT): Set to VFP.
9127         * doc/invoke.texi: Document -mfpu= and -mfloat-abi=.
9128
9129         2003-11-22  Phil Edwards  <phil@codesourcery.com>
9130
9131         PR target/12476
9132         * config/arm/arm.c (arm_output_mi_thunk):  In Thumb mode, use
9133         'bx' instead of 'b' to avoid branch range restrictions.  Output
9134         the thunk immediately before the thunked-to function.
9135         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME):  Do not emit
9136         .thumb_func if a thunk is being generated.  Emit .code 16 along
9137         with .thumb_func if a thunk is not being generated.
9138
9139         2003-11-15  Nicolas Pitre <nico@cam.org>
9140
9141         * config/arm/arm.md (ashldi3, arm_ashldi3_1bit, ashrdi3,
9142         arm_ashrdi3_1bit, lshrdi3, arm_lshrdi3_1bit): New patterns.
9143         * config/arm/iwmmxt.md (ashrdi3_iwmmxt): Renamed from ashrdi3.
9144         (lshrdi3_iwmmxt): Renamed from lshrdi3.
9145         * config/arm/arm.c (IWMMXT_BUILTIN2): Renamed argument accordingly.
9146
9147         2003-11-12  Steve Woodford  <scw@wasabisystems.com>
9148             Ian Lance Taylor  <ian@wasabisystems.com>
9149
9150         * config/arm/lib1funcs.asm (ARM_DIV_BODY, ARM_MOD_BODY): Add new
9151         code for __ARM_ARCH__ >= 5 && ! defined (__OPTIMIZE_SIZE__).
9152
9153         2003-11-05  Phil Edwards  <phil@codesourcery.com>
9154
9155         * config/arm/arm.md (insn):  Add new V6 instruction names.
9156         (generic_sched):  New attr.
9157         * config/arm/arm-generic.md:  Use generic_sched here.
9158         * config/arm/arm1026ejs.md:  Do not model fetch/issue/decode
9159         stages of pipeline.  Adjust latency counts accordingly.
9160         * config/arm/arm1136jfs.md:  New file.
9161
9162         2003-10-28  Mark Mitchell  <mark@codesourcery.com>
9163
9164         * config/arm/arm.h (processor_type): New enumeration type.
9165         (CPP_ARCH_DEFAULT_SPEC): Set appropriately for ARM 926EJ-S,
9166         ARM1026EJ-S, ARM1136J-S, and ARM1136JF-S processor cores.
9167         (CPP_CPU_ARCH_SPEC): Likewise.
9168         * config/arm/arm.c (arm_tune): New variable.
9169         (all_cores): Use cores.def.
9170         (all_architectures): Add representative processor.
9171         (arm_override_options): Restructure way in which tuning
9172         information is deduced.
9173         * arm.md: Update "insn" and "type" attributes throughout.
9174         (insn): New attribute.
9175         (type): Compute "mult" from "insn" attribute.  Add load2,
9176         load3, load4 alternatives.
9177         (arm automaton): Move to arm-generic.md.
9178         * config/arm/arm-cores.def: New file.
9179         * config/arm/arm-generic.md: Likewise.
9180         * config/arm/arm1026ejs.md: Likewise.
9181
9182 2004-02-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
9183
9184         * doc/invoke.texi (SPARC options): Remove -mflat and
9185         all -mxxx (xxx:chip) options.
9186         * config/sparc/aout.h (DBX_REGISTER_NUMBER): Delete.
9187         * config/sparc/litecoff.h (DBX_REGISTER_NUMBER): Likewise.
9188         * config/sparc/netbsd-elf.h (DBX_REGISTER_NUMBER): Likewise.
9189         * config/sparc/sol2.h (DBX_REGISTER_NUMBER): Likewise.
9190         * config/sparc/sparc-protos.h: Delete sparc_flat_* prototypes.
9191         * config/sparc/sparc.c: Likewise.
9192         (sparc_output_function_prologue): Remove TARGET_FLAT handling.
9193         (sparc_nonflat_function_prologue): Rename into sparc_function_prologue.
9194         (sparc_output_function_epilogue): Remove TARGET_FLAT handling.
9195         (sparc_nonflat_function_epilogue): Rename into sparc_function_epilogue.
9196         (struct sparc_frame_info, current_frame_info, zero_frame_info): Delete.
9197         (sparc_flat_must_save_register_p): Likewise.
9198         (sparc_flat_compute_frame_size): Likewise.
9199         (sparc_flat_save_restore): Likewise.
9200         (sparc_flat_function_prologue): Likewise.
9201         (sparc_flat_function_epilogue): Likewise.
9202         (sparc_flat_epilogue_delay_slots): Likewise.
9203         (sparc_flat_eligible_for_epilogue_delay): Likewise.
9204         (sparc_function_ok_for_sibcall): Remove TARGET_FLAT handling.
9205         * config/sparc/sparc.h (MASK_FLAT, TARGET_FLAT): Delete.
9206         (TARGET_SWITCHES): Remove -mflat and all -mxxx (xxx:chip) options.
9207         (SPARC_INCOMING_INT_ARG_FIRST): Remove TARGET_FLAT handling.
9208         (CONDITIONAL_REGISTER_USAGE): Likewise.
9209         (FRAME_POINTER_REQUIRED): Likewise.
9210         (INITIAL_ELIMINATION_OFFSET): Likewise.
9211         (BASE_RETURN_VALUE_REG): Likewise.
9212         (BASE_OUTGOING_VALUE_REG): Likewise.
9213         (BASE_PASSING_ARG_REG): Likewise.
9214         (BASE_INCOMING_ARG_REG): Likewise.
9215         (INCOMING_REGNO): Likewise.
9216         (OUTGOING_REGNO): Likewise.
9217         (LOCAL_REGNO): Likewise.
9218         (DELAY_SLOTS_FOR_EPILOGUE): Likewise.
9219         (ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise.
9220         (EPILOGUE_USES): Likewise.
9221         * config/sparc/sparc.md ("isa" attribute): Change "v6" into "v7".
9222         ("flat" attribute): Delete.
9223         (do_builtin_setjmp_setup): Remove TARGET_FLAT and "flat" attribute
9224         handling.
9225         (call followed by jump define_peephole's): Delete.
9226         (exception_receiver): Likewise.
9227         (builtin_setjmp_receiver): Likewise.
9228         * config/sparc/t-sparclite (MULTILIB_OPTIONS): Remove -mflat.
9229
9230 2004-02-03  Paolo Bonzini  <bonzini@gnu.org>
9231
9232         PR c/11658
9233         PR c/13994
9234         * Makefile.in (c-parse.o, c-convert.o, c-typeck.o): Depend
9235         on langhooks.h.
9236         * objc/Make-lang.in (objc-parse.o): Depend on langhooks.h.
9237         * c-parse.in, c-convert.c, c-typeck.c, objc/objc-act.c:
9238         Include langhooks.h.  Replace c_common_truthvalue_conversion
9239         with the truthvalue_conversion language hook throughout.
9240         (expr_no_commas): Call default_conversion before save_expr
9241         for the first term of the production 'x ? : y'.
9242         * c-common.c (c_common_truthvalue_conversion): Remove
9243         obsolete block.  Invoke recursively the hook instead
9244         of this function.
9245         * c-convert.c (convert): handle ERROR_MARK_NODE.
9246         * c-typeck.c (build_binary_op): handle ERROR_MARK_NODE
9247         returned by the truthvalue_conversion language hook.
9248         * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
9249         c_objc_common_truthvalue_conversion.
9250         * c-objc-common.c (c_objc_common_truthvalue_conversion):
9251         New function.
9252         * c-tree.h (c_objc_common_truthvalue_conversion): Declare it.
9253         * objc/objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
9254         c_objc_common_truthvalue_conversion.
9255
9256 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
9257
9258         * config/c4x/c4x.h (FUNCTION_VALUE): Use gen_rtx_REG instead
9259         of gen_rtx.
9260         (LIBCALL_VALUE): Likewise.
9261         * config/ip2k/ip2k.c (mdr_try_propagate_clr_sequence): Use
9262         gen_rtx_CC0 instead of gen_rtx.
9263         * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use
9264         gen_rtx_fmt_e and gen_rtx_fmt_ee instead of gen_rtx.
9265         (m68hc11_expand_compare): Use gen_rtx_fmt_ee instead of
9266         gen_rtx.
9267         (m68hc11_emit_logical): Likewise.
9268
9269 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
9270
9271         * config/alpha/alpha.c, config/arm/arm.c, config/c4x/c4x.c,
9272         config/fr30/fr30.md, config/frv/frv.c, config/frv/frv.md,
9273         config/h8300/h8300.c, config/ia64/ia64.c, config/ip2k/ip2k.md,
9274         config/m32r/m32r.md, config/m68hc11/m68hc11.c,
9275         config/mips/mips.md, config/mmix/mmix.c,
9276         config/mn10300/mn10300.c, config/mn10300/mn10300.md,
9277         config/ns32k/ns32k.c, config/pa/pa.md, config/pdp11/pdp11.c,
9278         config/rs6000/altivec.md, config/s390/s390.c,
9279         config/s390/s390.h, config/s390/s390.md, config/sh/sh.c,
9280         config/sh/sh.h, config/sh/sh.md, config/stormy16/stormy16.c:
9281         Use const0_rtx instead of GEN_INT (0).  Do the same for other
9282         constants that are readily available.
9283
9284 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
9285
9286         * doloop.c, optabs.c, regmove.c, sched-deps.c,
9287         config/i386/i386.c, config/i386/i386.md: Use const0_rtx
9288         instead of GEN_INT (0).  Do the same for other constants that
9289         are readily available.
9290
9291 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
9292
9293         * combine.c (simplify_set): Use gen_rtx_fmt_e instead of
9294         gen_rtx.
9295         * emit-rtl.c (init_emit_once): Use gen_rtx_PC and gen_rtx_CC0
9296         instead of gen_rtx.
9297         * reload1.c (init_elim_table): Use gen_rtx_fmt_e instead of
9298         gen_rtx.
9299         * config/ns32k/ns32k.md (udivmodhi4): Use gen_rtx_IOR and
9300         gen_rtx_ASHIFT instead of gen_rtx.
9301         (udivmodqi4): Likewise.
9302
9303 2004-02-02  Richard Henderson  <rth@redhat.com>
9304
9305         PR target/13789
9306         * expr.c (store_expr): Use force_operand before emit_move_insn.
9307
9308 2004-02-02  Jeff Law  <law@redhat.com>
9309             Roger Sayle  <roger@eyesopen.com>
9310
9311         * tree.c (commutative_tree_code, associative_tree_code): New
9312         functions.
9313         (iterative_hash_expr): Use commutative_tree_code.
9314         * tree.h (commutative_tree_code, associative_tree_code): Declare.
9315         * fold-const.c (operand_equal_p): Use commutative_tree_code
9316         rather than inlining the commutativity check.
9317         (fold): Likewise.
9318
9319 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
9320
9321         * system.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Poison.
9322         * config/frv/frv-protos.h: Remove the prototype for
9323         frv_function_arg_keep_as_reference.
9324         * config/frv/frv.c (frv_function_arg_keep_as_reference):
9325         Remove.
9326         * config/frv/frv.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Likewise.
9327         * config/stormy16/stormy16.h: Remove the commented-out
9328         definition of FUNCTION_ARG_KEEP_AS_REFERENCE.
9329
9330 2004-02-03  Alan Modra  <amodra@bigpond.net.au>
9331
9332         PR target/13914
9333         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Use ap
9334         for retaddr_column.
9335
9336 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
9337
9338         * genemit.c (gen_exp): Generate gen_rtx_fmt_e* instead of
9339         gen_rtx.
9340
9341 2004-02-02  Eric Christopher  <echristo@redhat.com>
9342             Zack Weinberg  <zack@codesourcery.com>
9343
9344         * c-opts.c (c_common_handle_option): Add -finput-charset.
9345         * c.opt: Ditto.
9346         * cppcharset.c (one_iso88591_to_utf8): Remove.
9347         (convert_iso88591_utf8): Ditto.
9348         (conversion_tab): Remove 8859-1 converter.
9349         (_cpp_input_to_utf8): Remove.
9350         (_cpp_init_iconv_buffer): Ditto.
9351         (_cpp_close_iconv_buffer): Ditto.
9352         (_cpp_convert_input): New function.
9353         (_cpp_default_encoding): Ditto.
9354         * cpphash.h: Add/remove prototypes for above.
9355         * cppfiles.c (read_file_guts): Use _cpp_convert_input.
9356         * cppinit.c (cpp_create_reader): Use _cpp_default_encoding
9357         for narrow execution and input character sets.
9358         * cpplib.c (cpp_push_buffer): Delete uses of removed functions.
9359         * doc/cppopts.texi: Document -finput-charset.
9360
9361 2004-02-02  David Edelsohn  <edelsohn@gnu.org>
9362
9363         * rtlanal.c (refers_to_regno_p): Test regno, not inner_regno,
9364         against FIRST_PSEUDO_REGISTER.
9365
9366 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
9367
9368         * doc/invoke.texi (SPARC options): Further improve.
9369
9370 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
9371
9372         * config/arm/arm.md, config/c4x/c4x.md, config/cris/cris.md,
9373         config/h8300/h8300.c, config/ip2k/ip2k.md,
9374         config/iq2000/iq2000.c, config/mips/mips.c,
9375         config/rs6000/rs6000.c, config/rs6000/rs6000.md,
9376         config/sh/sh.c, config/sh/sh.md, config/stormy16/stormy16.c,
9377         config/v850/v850.md: Fix indentation.
9378
9379 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
9380
9381         * config/sparc/sparc.c (function_arg_slotno): Align TImode
9382         arguments on a 16-byte boundary in the parameter array if ARCH64.
9383         Split handling of TFmode.
9384
9385 2004-02-02  Paolo Bonzini  <bonzini@gnu.org>
9386
9387         * rtlanal.c (reg_overlap_mentioned_p) [!ENABLE_CHECKING]:
9388         Don't test CONSTANT_P (x).
9389         (reg_overlap_mentioned_p): Merge check for STRICT_LOWPART,
9390         ZERO_EXTRACT, SIGN_EXTRACT with the switch statement.
9391         Fix misindentation.
9392
9393 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
9394
9395         * doc/invoke.texi (SPARC options): Document that -mflat is deprecated.
9396
9397 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
9398
9399         * config/arc/arc.md, config/arm/arm.c, config/arm/arm.md,
9400         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.md,
9401         config/frv/frv.c, config/h8300/h8300.c, config/ip2k/ip2k.md,
9402         config/iq2000/iq2000.c, config/m32r/m32r.c,
9403         config/mcore/mcore.c, config/mips/mips.c, config/mmix/mmix.md,
9404         config/mn10300/mn10300.c, config/rs6000/rs6000.c,
9405         config/rs6000/rs6000.md, config/sh/sh.c, config/sh/sh.md,
9406         config/stormy16/stormy16.c, config/v850/v850.md,
9407         config/xtensa/xtensa.c: Replace gen_rtx with gen_rtx_fmt_e*.
9408
9409 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
9410
9411         * config/mcore/mcore.c (block_move_sequence): Replace
9412         gen_rtx_CONST_INT with GEN_INT.
9413
9414 2004-02-02  Jan Hubicka  <jh@suse.cz>
9415
9416         * alias.c (record_set): Use hard_regno_nregs.
9417         * bt-load.c (find_btr_reference, note_btr_set): Likewise.
9418         * builtins.c (apply_args_size): Likewise.
9419         * caller-save.c (setup_save_areas, save_call_clobbered_regs,
9420         mark_set_regs, add_stored_regs, mark_referenced_regs,
9421         insert_restore, insert_save, insert_one_insn): Likewise.
9422         * cfgcleanup.c: Include regs.h
9423         (mark_effect, mentions_nonequal_regs): Likewise.
9424         * cfgrtl.c (mark_killed_regs): Likewise
9425         * combine.c (update_table_tick, record_value_for_reg,
9426         record_dead_and_set_regs, get_last_value_validate, use_crosses_set_p,
9427         reg_dead_at_p_1, reg_dead_at_p, mark_used_regs_combine, move_deaths,
9428         reg_bitfield_target_p, distribute_notes): Likewise.
9429         * cse.c (mention_regs, insert, invalidate, invalidate_for_call,
9430         exp_equiv_p, cse_insn): Likewise.
9431         * cselib.c (cselib_lookup): Likewise.
9432         (cselib_invalidate_regno, cselib_record_set): Likewise.
9433         * df.c (df_ref_record): Likewise.
9434         * dwarf2out.c (reg_loc_descriptor, multiple_reg_loc_descriptor):
9435         Likewise.
9436         * flow.c (mark_reg, insn_dead_p, mark_set_1, mark_used_reg,
9437         count_or_remove_death_notes_bb): Likewise.
9438         * function.c (aggregate_value_p, keep_stack_depressed): Likewise.
9439         * gloval.c (global_alloc, find_reg, mark_reg_store, mark_reg_conflicts,
9440         mark_reg_death, set_preference, reg_becomes_live, reg_dies): Likewise.
9441         * integrate.c (mark_stores): Likewise.
9442         * jump.c (delete_prior_computation): Likewise.
9443         * lcm.c (reg_dies, reg_becomes_live): Likewise.
9444         * local-alloc.c (combine_regs, find_free_reg, post_mark_life): Likewise.
9445         * loop.c (LOOP_REGNO_NREGS): Likewise.
9446         * postreload.c (reload_combine, reload_combine_note_store,
9447         reload_combine_note_use, reload_cse_move2add, move2add_note_store): Likewise.
9448         * ra-colorize.c (combine, color_usable_p, get_free_reg,
9449         calculate_dont_begin, calculate_dont_begin, colorize_one_web,
9450         try_recolor_web, insert_coalesced_conflicts, check_colors,
9451         break_precolored_alias): Likewise.
9452         * ra-debug.c: Include regs.h
9453         (ra_print_rtx_object): Likewise.
9454         * ra-rewrite (choose_spill_colors): Likewise.
9455         (spill_same_color_p, update_spill_colors, spill_is_free): Likewise.
9456         * ra.c (init_ra): Likewise.
9457         * recog.c (reg_fits_class_p, peep2_reg_dead_p,
9458         peep2_find_free_register): Likewise.
9459         * reg-stack.c (subst_stack_regs_pat, convert_regs_exit): Likewise.
9460         * regclass.c (hard_regno_nregs): New array.
9461         (init_reg_modes_once): Initialize it.
9462         (choose_hard_reg_mode): Use it.
9463         (record_reg_classes): Likewise.
9464         * regmove.c (mark_flags_life_zones): Likewise.
9465         * regrename.c (note_sets, clear_dead_regs, regrename_optimize,
9466         scan_rtx_reg, dump_def_use_chain, kill_value, set_value_regno,
9467         copy_value, maybe_mode_change, find_oldest_value_reg,
9468         copyprop_hardreg_forward_1):
9469         * regs.h (hard_regno_nregs): Declare.
9470         * realod.c (reload_inner_reg_of_subreg): Use it.
9471         (push_reload, combine_reloads, find_dummy_reload,
9472         hard_reg_set_here_p, operands_match_p, decompose, find_reloads,
9473         refers_to_regno_for_reload_p, find_equiv_reg, regno_clobbered_p,
9474         reload_adjust_reg_for_mode): Likewise.
9475         * reload1.c (compute_use_by_pseudos, count_pseudo,
9476         count_spilled_pseudo, find_reg, find_reload_regs, mark_home_live,
9477         spill_hard_reg, forget_old_reloads_1, mark_reload_reg_in_use,
9478         clear_reload_reg_in_use, reload_reg_free_for_value_p, free_for_value_p
9479         allocate_reload_reg, choose_reload_regs, emit_reload_insns,
9480         delete_output_reload): Likewise.
9481         * resource.c (update_live_status, mark_referenced_resources,
9482         mark_set_resources, mark_target_live_regs): Likewise.
9483         * rtlanal.c:  Include regs.h
9484         (refers_to_regno_p, reg_overlap_mentioned_p, dead_or_set_p,
9485         dead_or_set_regno_p, find_regno_note, find_reg_fusage,
9486         subreg_regno_offset, subreg_offset_representable_p,
9487         hoist_test_store): Likewise.
9488         * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
9489         * sched-rgn.c (check_live_1, update_live_1): Likewise.
9490         * stmt.c: Include regs.h
9491         (decl_conflicts_with_clobbers_p): Likewise.
9492         * varasm.c (make_decl_rtl): Likewise.
9493         * Makefile.in (cfgcleanup.o, rtlanal.o, ra-debug.o): Add regs.h dependnecy.
9494
9495 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
9496
9497         * config/arm/arm.c, config/arm/arm.h, config/arm/arm.md,
9498         config/arm/linux-gas.h, config/arm/netbsd-elf.h,
9499         config/arm/netbsd.h, config/arm/pe.c, config/avr/avr.c,
9500         config/avr/avr.h, config/avr/avr.md, config/c4x/c4x.h,
9501         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
9502         config/frv/frv.h, config/ip2k/ip2k.c, config/iq2000/iq2000.c,
9503         config/iq2000/iq2000.h, config/m32r/m32r.c,
9504         config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
9505         config/m68hc11/m68hc11.md, config/m68k/m68k.md,
9506         config/mcore/mcore.c, config/mcore/mcore.h,
9507         config/mcore/mcore.md, config/mips/mips.c,
9508         config/ns32k/ns32k.h, config/ns32k/ns32k.md,
9509         config/rs6000/rs6000.c, config/s390/s390.c,
9510         config/s390/s390.md, config/sparc/sparc.c, config/v850/v850.c,
9511         config/xtensa/xtensa.h, config/xtensa/xtensa.md: Replace
9512         "gen_rtx (FOO, " with "gen_rtx_FOO (".
9513
9514 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
9515
9516         * config/h8300/h8300.md (two peephole2's): New.
9517
9518 2004-02-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
9519
9520         * config/sparc/sol2-bi.h: Handle TARGET_CPU_ultrasparc3.
9521         (CPP_CPU_SPEC): Handle -mcpu=ultrasparc3.
9522         (ASM_CPU_SPEC): Likewise
9523         * config/sparc/sol2.h: Handle TARGET_CPU_ultrasparc3.
9524         (ASM_CPU_SPEC): Remove -mcpu=v8plus.  Handle -mcpu=ultrasparc3.
9525
9526 2004-02-01  Roger Sayle  <roger@eyesopen.com>
9527
9528         * builtins.c (expand_builtin_pow): If flag_unsafe_math_optimizations
9529         isn't set, don't call expand_builtin_mathfn_2 to use the pow optab.
9530         (expand_builtin): Always call expand_builtin_pow.
9531
9532 2004-02-01  Roger Sayle  <roger@eyesopen.com>
9533
9534         * builtins.def (BUILT_IN_SIGNBIT, BUILT_IN_SIGNBITF,
9535         BUILT_IN_SIGNBITL): New GCC builtins.
9536         * builtins.c (expand_builtin_signbit): New function to RTL expand
9537         calls to signbit, signbitf and signbitl as inline intrinsics.
9538         (expand_builtin): Call expand_builtin_signbit for BUILT_IN_SIGNBIT*.
9539         (fold_builtin_signbit): New function to perform constant folding
9540         of signbit, signbitf and signbitl.
9541         (fold_builtin): Call fold_builtin_signbit for BUILT_IN_SIGNBIT*.
9542
9543         * doc/extend.texi: Document new signbit{,f,l} builtins.
9544
9545 2004-02-01  Richard Sandiford  <rsandifo@redhat.com>
9546
9547         * config/mips/mips.md (adddi3_internal_2): Remove superfluous %s.
9548
9549 2004-02-01  Chris Demetriou  <cgd@broadcom.com>
9550
9551         * config/mips/mips.h (PREDICATE_CODES): Remove entries for
9552         "mips_const_double_ok" and "simple_memory_operand", which were
9553         removed from the MIPS port with the mips-3_4-rewrite branch merge.
9554         * config/mips/mips.c (mips16_lay_out_constants): Update comment
9555         for removal of simple_memory_operand.
9556
9557 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
9558
9559         * config/c4x/c4x.md: Use GEN_INT instead of
9560         gen_rtx (CONST_INT, ...).
9561
9562 2004-01-31  Richard Henderson  <rth@redhat.com>
9563
9564         * varasm.c (output_constant_pool): Don't zap the pool.
9565
9566 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
9567
9568         * genrecog.c (decision_type): Add DT_const_int.
9569         (write_cond) [DT_const_int]: Print a comparison against small
9570         constant.
9571         (write_node): Simplify comparisons against small constants
9572         before printing tests.
9573
9574 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
9575
9576         * config/m32r/m32r.c (m32r_load_pic_register): Use GEN_INT
9577         instead of gen_rtx_CONST_INT.
9578
9579 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
9580
9581         * config/xtensa/xtensa.h (DYNAMIC_CHAIN_ADDRESS): Use GEN_INT
9582         instead of gen_rtx_CONST_INT.
9583
9584 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
9585
9586         * target-def.h (TARGET_STRICT_ARGUMENT_NAMING): Define as
9587         hook_bool_CUMULATIVE_ARGS_false.
9588         * targhooks.c (default_strict_argument_naming): Rename to
9589         hook_bool_CUMULATIVE_ARGS_false.
9590         * targhooks.h: Update the prototype for
9591         default_strict_argument_naming.
9592
9593 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
9594
9595         * config/sh/sh.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
9596         * config/sh/sh.h: Likewise.
9597         * config/sh/sh.md: Likewise.
9598
9599 2004-01-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
9600
9601         * doc/invoke.texi (SPARC options): Restructure and update.
9602
9603 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
9604
9605         * system.h (PROMOTE_FUNCTION_ARGS, STRUCT_VALUE_INCOMING, and
9606         STRICT_ARGUMENT_NAMING): Poison.
9607         * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS): Define as
9608         hook_bool_tree_false.
9609         * targhooks.c (default_promote_function_args): Remove.
9610         (default_struct_value_rtx): Don't use STRUCT_VALUE_INCOMING.
9611         Don't check incoming.
9612         (default_strict_argument_naming): Don't use
9613         STRICT_ARGUMENT_NAMING.
9614         * targhooks.h: Remove the prototype for
9615         default_promote_function_args.
9616
9617 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
9618
9619         * config/i386/i386-protos.h: Remove the prototype for
9620         ix86_setup_incoming_varargs.
9621         * config/i386/i386.c (TARGET_SETUP_INCOMING_VARARGS): New.
9622         (ix86_setup_incoming_varargs): Make it static.
9623         * config/i386/i386.h (SETUP_INCOMING_VARARGS): Remove.
9624
9625 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
9626
9627         * alloc-pool.c: Fix comment typos.
9628         * builtin-types.def: Likewise.
9629         * builtins.def: Likewise.
9630         * c-pretty-print.c: Likewise.
9631         * df.h: Likewise.
9632         * reload1.c: Likewise.
9633
9634 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
9635
9636         * doc/invoke.texi: Follow spelling conventions.
9637         * doc/tm.texi: Likewise.
9638
9639 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
9640
9641         * doc/install.texi: Fix typos.
9642         * doc/invoke.texi: Likewise.
9643
9644 2004-01-31  Ulrich Weigand  <uweigand@de.ibm.com>
9645
9646         * config/s390/s390.c (s390_decompose_address): Do not treat virtual
9647         registers as pointers.
9648         * config/s390/s390.md ("*la_31" second peephole2): Fix incorrect mode.
9649
9650 2004-01-31  Paolo Bonzini  <bonzini@gnu.org>
9651
9652         * combine.c (cse_main): Set gen_lowpart to gen_lowpart_for_combine
9653         and restore it to gen_lowpart_general on exit.
9654         (gen_lowpart_for_combine): Adjust all callers to go through
9655         gen_lowpart.
9656         * cse.c (cse_main): Set gen_lowpart to gen_lowpart_if_possible
9657         and restore it to gen_lowpart_general on exit.
9658         (gen_lowpart_if_possible): Adjust all callers to go through
9659         gen_lowpart.
9660         * emit-rtl.c (gen_lowpart_general): New name of gen_lowpart.
9661         (gen_lowpart): Declare as pointer to function, initialized to
9662         gen_lowpart_general.
9663         * rtl.h (gen_lowpart): Declare as pointer to function.
9664
9665 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
9666
9667         * bt-load.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
9668         * calls.c: Likewise.
9669         * emit-rtl.c: Likewise.
9670         * function.c: Likewise.
9671         * reload1.c: Likewise.
9672         * config/i386/cygming.h: Likewise.
9673         * config/i386/i386.c: Likewise.
9674         * config/i386/winnt.c: Likewise.
9675
9676 2004-01-30  Dara Hazeghi  <dhazeghi@yahoo.com>
9677
9678         PR bootstrap/9249
9679         * doc/install.texi: document --enable-__cxa_atexit option.
9680         * configure.ac: Disable __cxa_atexit if not supported.
9681         * configure: Regenerate.
9682
9683 2003-01-30  Daniel Berlin  <dberlin@dberlin.org>
9684
9685         * ggc-zone.c (ggc_free): New function.
9686
9687 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
9688
9689         alloc-pool.c, c-lex.c, c-pragma.h, c-semantics.c, cfghooks.c,
9690         cfghooks.h, cfglayout.c, cfgloopmanip.c, debug.c, debug.h,
9691         flow.c, genextract.c, ggc-common.c, ggc-page.c, ggc.h,
9692         ifcvt.c, jump.c, loop-unswitch.c, timevar.c, timevar.def,
9693         tree-optimize.c, vmsdbgout.c, config/fp-bit.c,
9694         config/alpha/alpha.c, config/alpha/alpha.h,
9695         config/alpha/alpha.md, config/alpha/unicosmk.h,
9696         config/alpha/vms.h, config/arm/linux-elf.h, config/avr/avr.c,
9697         config/c4x/c4x-protos.h, config/c4x/c4x.md,
9698         config/d30v/d30v.h, config/frv/frv.md, config/frv/frvbegin.c,
9699         config/frv/frvend.c, config/i386/cygming.h,
9700         config/i386/djgpp.h, config/i386/emmintrin.h,
9701         config/i386/gthr-win32.c, config/i386/i386-interix.h,
9702         config/i386/i386-protos.h, config/i386/openbsd.h,
9703         config/i386/winnt.c, config/i386/xm-mingw32.h,
9704         config/i386/xmmintrin.h, config/ia64/ia64.md,
9705         config/iq2000/iq2000.md, config/m32r/m32r.md,
9706         config/m68k/m68k.md, config/mcore/mcore-elf.h,
9707         config/mcore/mcore.md, config/mips/elf.h, config/mips/elf64.h,
9708         config/mips/iris5gas.h, config/mips/iris6.h,
9709         config/mips/iris6gas.h, config/mips/linux.h,
9710         config/mips/mips.md, config/mips/netbsd.h,
9711         config/mips/openbsd.h, config/mips/windiss.h,
9712         config/pa/fptr.c, config/rs6000/aix.h,
9713         config/rs6000/altivec.h, config/rs6000/darwin.h,
9714         config/rs6000/xcoff.h, config/s390/s390-protos.h,
9715         config/s390/s390.c, config/s390/s390.h, config/s390/s390.md,
9716         config/sh/netbsd-elf.h, config/sh/sh.h, config/sh/vxworks.h,
9717         config/sparc/sol2.h: Update copyright.
9718
9719 2004-01-30  Kelley Cook  <kcook@gcc.gnu.org>
9720
9721         * Makefile.in (abs_docdir, abs_srcdir): Define.
9722         (doc/%.dvi, doc/gccinstall.dvi): Use $(abs_docdir).
9723
9724 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
9725
9726         * genconfig.c (main): Have CC0_P check its operand even on a
9727         target without cc0.
9728
9729 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
9730
9731         * config/alpha/alpha.c: Remove mentions of deprecates macros
9732         in comments, remove some target-independent comments about target
9733         macros, and/or add minimal function comments for target hook
9734         implementations.
9735         * config/avr/avr.c: Likewise.
9736         * config/ia64/ia64.h: Likewise.
9737         * config/ip2k/ip2k.c: Likewise.
9738         * config/iq2000/iq2000.c: Likewise.
9739         * config/m32r/m32r.h: Likewise.
9740         * config/m68hc11/m68hc11.c: Likewise.
9741         * config/mcore/mcore.c: Likewise.
9742         * config/mmix/mmix.c: Likewise.
9743         * config/mn10300/mn10300.c: Likewise.
9744         * config/pa/pa.c: Likewise.
9745         * config/pdp11/pdp11.c: Likewise.
9746         * config/rs6000/rs6000.h: Likewise.
9747         * config/sh/sh.c: Likewise.
9748         * config/sh/sh.h: Likewise.
9749         * config/sparc/sparc.c: Likewise.
9750         * config/sparc/sparc.h: Likewise.
9751         * config/stormy16/stormy16.c: Likewise.
9752         * config/xtensa/xtensa.c: Likewise.
9753
9754 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
9755
9756         PR optimization/12147
9757         * reload1.c (reload_reg_free_p): RELOAD_OTHER conflicts with
9758         RELOAD_FOR_OPADDR_ADDR.
9759         (reload_reg_reaches_end_p): RELOAD_FOR_OTHER_ADDRESS register
9760         might be reused as RELOAD_FOR_OPADDR_ADDR register.
9761
9762 2004-01-30  Jan Hubicka  <jh@suse.cz>
9763
9764         * reload.c (get_secondary_mem): Fix updating of
9765         secondary_memlocs_elim_used.
9766
9767 2004-01-30  Richard Henderson  <rth@redhat.com>
9768
9769         * varasm.c (struct rtx_const, struct pool_constant): Remove.
9770         (MAX_RTX_HASH_TABLE): Remove.
9771         (const_rtx_hash_table, const_rtx_sym_hash_table): Remove.
9772         (first_pool, last_pool, pool_offset): Remove.
9773         (struct rtx_constant_pool): Split out from ...
9774         (struct varasm_status): ... here.  Reference one via pointer.
9775         (struct constant_descriptor_rtx): Merge struct pool_constant.
9776         (SYMHASH): Remove.
9777         (decode_rtx_const): Remove.
9778         (const_hash_rtx, compare_constant_rtx): Remove.
9779         (record_constant_rtx): Remove.
9780         (const_desc_rtx_hash, const_desc_rtx_eq): New.
9781         (const_desc_rtx_sym_hash, const_desc_rtx_sym_eq): New.
9782         (const_rtx_hash_1, const_rtx_hash): New.
9783         (init_varasm_status): Allocate a rtx_constant_pool, and its hashes.
9784         (simplify_subtraction): Use simplify_rtx.
9785         (force_const_mem): Rewrite to use new data structures.
9786         (find_pool_constant): Likewise.
9787         (get_pool_constant, get_pool_constant_mark,
9788         get_pool_constant_for_function, get_pool_mode,
9789         get_pool_mode_for_function, get_pool_offset, get_pool_size): Likewise.
9790         (output_constant_pool_2): Split out from output_constant_pool.
9791         (output_constant_pool_1): Likewise.  Use new pool datastructures.
9792         (output_constant_pool): Zap entire pool datastructure.
9793         (mark_constant): Use new pool datastructures.
9794         (mark_constants): Use for_each_rtx.
9795         (mark_constant_pool): Use new pool datastructures.
9796
9797 2004-01-30  Fariborz Jahanian <fjahanian@apple.com>
9798
9799         * config/rs6000/rs6000.c (rs6000_emit_move): Remove #if 0.
9800         Copy operands[1] to pseudo for simplify_gen_subreg.
9801
9802 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
9803
9804         * gcse.c (bypass_block): Fix a typo in the previous check-in
9805         to the file.
9806
9807 2004-01-30  Andrew Pinski <pinskia@physics.uc.edu>
9808
9809         * toplev.c: Include alloc-pool.h.
9810         * Makefile.in (toplev.c): Update dependencies.
9811
9812 2004-01-30  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9813
9814         * combine.c (simplify_shift_const, case XOR): Be careful when
9815         commuting XOR with ASHIFTRT.
9816
9817 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
9818             Eric Botcazou  <ebotcazou@libertysurf.fr>
9819
9820         * config/sparc/sparc-protos.h: Remove the prototype for
9821         sparc_builtin_saveregs.
9822         * config/sparc/sparc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
9823         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
9824         (TARGET_PROMOTE_PROTOTYPES): Likewise.
9825         (TARGET_STRUCT_VALUE_RTX): Likewise.
9826         (TARGET_RETURN_IN_MEMORY): Likewise.
9827         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
9828         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
9829         (sparc_builtin_saveregs): Make it static.
9830         (sparc_promote_prototypes): New.
9831         (sparc_struct_value_rtx): Likewise.
9832         (sparc_return_in_memory): Likewise.
9833         * config/sparc/sparc.h: (PROMOTE_FUNCTION_ARGS): Remove.
9834         (PROMOTE_FUNCTION_RETURN): Likewise.
9835         (RETURN_IN_MEMORY): Likewise.
9836         (STRUCT_VALUE): Likewise.
9837         (STRUCT_VALUE_INCOMING): Likewise.
9838         (EXPAND_BUILTIN_SAVEREGS): Likewise.
9839         (STRICT_ARGUMENT_NAMING): Likewise.
9840         (PROMOTE_PROTOTYPES): Likewise.
9841
9842         * config/sparc/sparc.h (PROMOTE_MODE): Use word_mode.
9843
9844 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
9845
9846         PR c/12818
9847         * varasm.c (const_hash_1) <STRING_CST>: Use the
9848         address to compute the hash value if flag_writable_strings.
9849         (compare_constant) <STRING_CST>: Compare the addresses
9850         if flag_writable_strings.
9851         (build_constant_desc): Do not copy the expression for a
9852         STRING_CST if flag_writable_strings.
9853
9854 2004-01-30  Jan Hubicka  <jh@suse.cz>
9855
9856         * alloc-pool.c: Include hashtab.h
9857         (alloc_pool_descriptor): New structure
9858         (alloc_pool_hash): New global variable.
9859         (hash_descriptor, eq_descriptor, alloc_pool_descriptor): New.
9860         (create_alloc_pool): Update statistics.
9861         (free_alloc_pool): Likewise.
9862         (pool_alloc): Likewise.
9863         (output_info): New structure
9864         (print_statistics, dump_alloc_pool_statistics): New function.
9865         * alloc-pool.h (alloc_pool_def): Turn name to be constant.
9866         (dump_alloc_pool_statistics): Declare.
9867         * toplev.c (finalize):  Dump statistics.
9868
9869         * reload.c (secondary_memlocs_elim_used): New static variable.
9870         (get_secondary_mem): Update it.
9871         (find_reloads): Use it.
9872
9873 2004-01-30  Steven Bosscher <s.bosscher@student.tudelft.nl>
9874
9875         * toplev.c: Fix broken checkin of 2003-12-30, again.
9876
9877 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
9878
9879         * configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for
9880         s390*-*-* targets by specifying a 'nop' insn.
9881         * configure: Regenerate.
9882
9883 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
9884
9885         PR target/11475
9886         * config/sparc/sparc.md (movhi_lo_sum): Tighten predicates.
9887
9888 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
9889
9890         * emit-rtl.c (change_address): Use XEXP (memref, 0) instead
9891         of addr when creating MEM copy.
9892
9893 2004-01-29  Devang Patel  <dpatel@apple.com>
9894
9895         * dwarf2out.c (gen_field_die): Do not equate decl number to die.
9896
9897 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
9898
9899         PR inline-asm/6162
9900         * reload.c (find_reloads): Only support one pair of commutative
9901         operands.
9902
9903 2004-01-29  Roger Sayle  <roger@eyesopen.com>
9904
9905         PR java/13824
9906         * tree.c (unsafe_for_reeval): Handle EXIT_BLOCK_EXPR nodes specially
9907         as their EXIT_BLOCK_LABELED_BLOCK operands can lead to unbounded
9908         recursion.
9909
9910 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
9911
9912         * config/frv/frv.c: Don't mention deprecated macros in
9913         comments.  Remove some target-independent comments about
9914         target macros.
9915         * config/frv/frv.h: Likewise.
9916
9917 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9918
9919         * cfghooks.c (split_block): Set probability and count of the
9920         new edge.
9921
9922 2005-01-29  Josef Zlomek  <zlomekj@suse.cz>
9923
9924         * dwarf2out.c (struct die_struct): Added field decl_id.
9925         (decl_die_table): Changed to hash table.
9926         (decl_die_table_allocated): Deleted.
9927         (decl_die_table_in_use): Deleted.
9928         (DECL_DIE_TABLE_INCREMENT): Deleted.
9929         (decl_die_table_hash): New function.
9930         (decl_die_table_eq): New function.
9931         (lookup_decl_die): Lookup in a hash table.
9932         (equate_decl_number_to_die): Insert into a hash table.
9933         (dwarf2out_init): Init hash table decl_die_table.
9934
9935 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
9936
9937         PR optimization/13424
9938         * expr.c (store_constructor): Revert 2003-12-03 change.
9939
9940         * emit-rtl.c (change_address): Check also if MEM_ATTRS is set as
9941         expected before returning early.  Avoid sharing RTL if they
9942         need to be changed.
9943
9944         * config/i386/i386.c (ix86_expand_movstr): Rework rep_mov and strmov
9945         handling so that memory attributes are preserved.  Don't call
9946         ix86_set_move_mem_attrs.
9947         (ix86_set_move_mem_attrs_1, ix86_set_move_mem_attrs): Removed.
9948         (ix86_expand_clrstr): Rename src argument to
9949         dst.  Rework rep_stos and strset handling so that memory attributes
9950         are preserved.
9951         (ix86_expand_strlen): Pass src argument to
9952         ix86_expand_strlensi_unroll_1.  Rework strlenqi_1 handling so that
9953         memory attributes are preserved.
9954         (ix86_expand_strlensi_unroll_1): Add src argument.  Use
9955         change_address instead of gen_rtx_MEM.
9956         * config/i386/i386.md (strmov, strmov_singleop, rep_mov): New
9957         expanders.
9958         (strmovdi_rex64, strmovsi, strmovsi_rex64, strmovhi, strmovhi_rex64,
9959         strmovqi, strmovqi_rex64): Remove.
9960         (rep_mov*, strmov*): Prefix insn names with *.
9961         (strset, strset_singleop, rep_stos): New expanders.
9962         (strsetdi_rex64, strsetsi, strsetsi_rex64, strsethi, strsethi_rex64,
9963         strsetqi, strsetqi_rex64): Remove.
9964         (rep_stos*, strset*): Prefix insn names with *.
9965         (rep_stosqi_rex64): Likewise.  Fix mode of dirflag reg from DImode
9966         to SImode.
9967         (cmpstrsi): Rework cmpstrqi_1 handling so that memory attributes
9968         are preserved.
9969         (cmpstrqi_nz_1, cmpstrqi_nz_rex_1, cmpstrqi_1, cmpstrqi_rex_1):
9970         Prefix insn names with *.
9971         (cmpstrqi_nz_1, cmpstrqi_1): New expanders.
9972         (strlenqi_1, strlenqi_rex_1): Prefix insn names with *.
9973         (strlenqi_1): New expander.
9974         * config/i386/i386.h (ix86_set_move_mem_attrs): Remove prototype.
9975
9976 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9977
9978         * Makefile.in (cfghooks.o): Add TIMEVAR_H and toplev.h dependency.
9979         * basic-block.h (tidy_fallthru_edge, tidy_fallthru_edges, dump_bb,
9980         verify_flow_info): Declaration removed.
9981         * cfg.c (verify_flow_info, dump_bb): Moved to cfghooks.c.
9982         (debug_bb, debug_bb_n): Add argument to dump_bb call.
9983         * cfgcleanup.c (try_simplify_condjump, try_crossjump_to_edge,
9984         try_optimize_cfg, delete_unreachable_blocks): Use delete_basic_block
9985         instead of delete_block.
9986         * cfghooks.c: Include timevar.h and toplev.h.
9987         (cfg_hooks): Define here.
9988         (verify_flow_info, dump_bb): Moved from cfg.c.
9989         (redirect_edge_and_branch, redirect_edge_and_branch_force,
9990         split_block, split_block_after_labels, move_block_after,
9991         delete_basic_block, split_edge, create_basic_block,
9992         create_empty_bb, can_merge_blocks_p, merge_blocks,
9993         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
9994         New functions.
9995         * cfghooks.h (struct cfg_hooks): Added fields name,
9996         make_forwarder_block, tidy_fallthru_edge and
9997         move_block_after. Changed type of verify_flow_info, dump_bb,
9998         split_block fields. Renamed cfgh_split_edge and delete_block
9999         fields.
10000         (redirect_edge_and_branch, redirect_edge_and_branch_force,
10001         split_block, delete_block, split_edge, create_basic_block,
10002         can_merge_blocks_p, merge_blocks): Macros removed.
10003         (cfg_hooks): Do not export.
10004         (verify_flow_info, dump_bb, redirect_edge_and_branch,
10005         redirect_edge_and_branch_force, split_block, split_block_after_labels,
10006         move_block_after, delete_basic_block, split_edge, create_basic_block,
10007         create_empty_bb, can_merge_blocks_p, merge_blocks,
10008         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
10009         Declare.
10010         (cfg_layout_rtl_cfg_hooks): Declare.
10011         * cfgloop.c (update_latch_info, mfb_keep_just, mfb_keep_nonlatch):
10012         New functions.
10013         (canonicalize_loop_headers): Use new semantics of make_forwarder_block.
10014         (redirect_edge_with_latch_update): Removed.
10015         (make_forwarder_block): Moved to cfghooks.c, semantics changed.
10016         * cfgloopmanip.c (remove_bbs): Do not update dominators here.
10017         * cfgrtl.c (cfg_layout_split_block, rtl_split_block, rtl_dump_bb,
10018         rtl_delete_block, rtl_split_block, rtl_merge_blocks,
10019         tidy_fallthru_edge, rtl_split_edge, cfg_layout_delete_block,
10020         cfg_layout_merge_blocks, cfg_layout_split_edge): Partly moved to
10021         cfghooks.c.
10022         (rtl_create_basic_block): Coding style fix.
10023         (rtl_tidy_fallthru_edge, rtl_move_block_after,
10024         rtl_make_forwarder_block): New functions.
10025         (update_cfg_after_block_merging): Removed.
10026         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hooks): Fill in new entries.
10027         * flow.c (verify_wide_reg, verify_local_live_at_start): Add argument
10028         to dump_bb.
10029         * ifcvt.c (merge_if_block, find_cond_trap, find_if_case_1,
10030         find_if_case_2): Don't update dominators.
10031         * timevar.def (TV_CFG_VERIFY): New.
10032         * loop-unswitch.c (unswitch_loop): Don't call add_to_dominance_info.
10033         * cfglayout.c (copy_bbs): Don't call add_to_dominance_info.
10034         * cfgloopmanip.c (split_loop_bb): Don't update dominators.
10035         (remove_bbs): Don't call remove_bbs.
10036         (create_preheader): Use make_forwarder_block.
10037         (mfb_keep_just, mfb_update_loops): New static functions.
10038
10039 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
10040
10041         * config/avr/avr.h: Remove target-independent comments about
10042         target macros.
10043
10044 2004-01-28  Daniel Berlin  <dberlin@dberlin.org>
10045
10046         * timevar.c (timevar_print): Mention when checking is enabled.
10047
10048 2004-01-28  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
10049
10050         * c-lex.c (c_lex): Rename to...
10051         (c_lex_with_flags): Add new parameter to get CPP flags.
10052         (c_lex): Thunk to c_lex_with_flags while keeping the old interface.
10053         * c-pragma.h (c_lex_with_flags): Declare.
10054
10055 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
10056
10057         * config/mcore/mcore.c (mcore_external_libcall): Add a
10058         comment.
10059         (mcore_return_in_memory): Likewise.
10060
10061 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
10062
10063         * config/mcore/mcore-protos.h: Remove the prototype for
10064         mcore_setup_incoming_varargs.
10065         * config/mcore/mcore.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
10066         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
10067         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
10068         (TARGET_PROMOTE_PROTOTYPES): Likewise.
10069         (TARGET_STRUCT_VALUE_RTX): Likewise.
10070         (TARGET_RETURN_IN_MEMORY): Likewise.
10071         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
10072         (mcore_setup_incoming_varargs): Make it static.  Receive the
10073         first argument by reference.  Add argument second_time.
10074         (mcore_external_libcall): New.
10075         (mcore_return_in_memory): Likewise.
10076         * config/mcore/mcore.h (PROMOTE_FUNCTION_ARGS): New.
10077         (PROMOTE_FUNCTION_RETURN): Likewise.
10078         (STRUCT_VALUE): Likewise.
10079         (RETURN_IN_MEMORY): Likewise.
10080         (SETUP_INCOMING_VARARGS): Likewise.
10081         (PROMOTE_PROTOTYPES): Likewise.
10082         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
10083
10084 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
10085
10086         * config/m32r/m32r-protos.h: Remove the prototype for
10087         m32r_setup_incoming_varargs.
10088         * config/m32r/m32r.c (TARGET_PROMOTE_PROTOTYPES): New.
10089         (TARGET_STRUCT_VALUE_RTX): Likewise.
10090         (TARGET_RETURN_IN_MEMORY): Likewise.
10091         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
10092         (m32r_return_in_memory): New.
10093         (m32r_setup_incoming_varargs): Make it static.
10094         * config/m32r/m32r.h: Remove #undef of
10095         ASM_OUTPUT_EXTERNAL_LIBCALL.  Remove the commented-out
10096         definitions of PROMOTE_FUNCTION_ARGS and
10097         PROMOTE_FUNCTION_RETURN.
10098         (PROMOTE_PROTOTYPES): Remove.
10099         (RETURN_IN_MEMORY): Likewise.
10100         (STRUCT_VALUE): Likewise.
10101
10102 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
10103
10104         * config/m68k/m68k.c (TARGET_PROMOTE_PROTOTYPES): New.
10105         (TARGET_STRUCT_VALUE_RTX): Likewise.
10106         (m68k_struct_value_rtx): Likewise.
10107         * config/m68k/m68k.h (STRUCT_VALUE_REGNUM): Rename to
10108         STRUCT_VALUE_REGNUM.
10109         (PROMOTE_PROTOTYPES): Remove.
10110         * config/m68k/m68kelf.h (STRUCT_VALUE_REGNUM): Rename to
10111         STRUCT_VALUE_REGNUM.
10112         * config/m68k/m68kv4.h (STRUCT_VALUE_REGNUM): Likewise.
10113         * config/m68k/netbsd-elf.h (STRUCT_VALUE_REGNUM): Likewise.
10114
10115 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
10116
10117         * config/stormy16/stormy16.c
10118         (TARGET_BUILD_BUILTIN_VA_LIST_TYPE): Rename to
10119         TARGET_BUILD_BUILTIN_VA_LIST.
10120
10121 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
10122
10123         * config/v850/v850.c (TARGET_PROMOTE_PROTOTYPES): New.
10124         (TARGET_STRUCT_VALUE_RTX): Likewise.
10125         (TARGET_RETURN_IN_MEMORY): Likewise.
10126         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
10127         (v850_return_in_memory): Likewise.
10128         (v850_setup_incoming_varargs): Likewise.
10129         * config/v850/v850.h (PROMOTE_PROTOTYPES): Remove.
10130         (SETUP_INCOMING_VARARGS): Likewise.
10131         (RETURN_IN_MEMORY): Likewise.
10132         (STRUCT_VALUE): Likewise.
10133
10134 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
10135
10136         * config/fr30/fr30.c (TARGET_PROMOTE_PROTOTYPES): New.
10137         (fr30_setup_incoming_varargs): Don't use
10138         STRICT_ARGUMENT_NAMING.
10139         * config/fr30/fr30.h (PROMOTE_PROTOTYPES): Remove.
10140         (STRICT_ARGUMENT_NAMING): Likewise.
10141
10142 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
10143
10144         * config/frv/frv-protos.h: Remove the prototype for
10145         frv_expand_builtin_saveregs.
10146         * config/frv/frv.c (TARGET_STRUCT_VALUE_RTX): Likewise.
10147         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
10148         (frv_stack_info): Use FRV_STRUCT_VALUE_REGNUM instead of
10149         STRUCT_VALUE_REGNUM.
10150         (frv_expand_builtin_saveregs): Make it static.
10151         (frv_struct_value_rtx): New.
10152         * config/frv/frv.h (EXPAND_BUILTIN_SAVEREGS): Remove.
10153
10154 2004-01-29  Jan Hubicka  <jh@suse.cz>
10155
10156         PR c++/12850
10157         * cgraph.c (cgraph_remove_node): Clear out saved/insns/arguments and
10158         initial pointers.
10159         * cgraphunit.c (cgraph_finalize_function): Clear out DECL_SAVED_INSNS
10160         for functions that will be only inlined.
10161         (cgraph_mark_function_to_output): Likewise.
10162         (cgraph_expand_function): Sanity check that DECL_DEFER_OUTPUT is clear;
10163         do not clear function body.
10164         * tree-optimize.c (clear_decl_rtl): Use decl_function_context.
10165         (tree_rest_of_compilation): Reorganize the logic releasing function
10166         body to use callgraph datastructure.
10167
10168 2004-01-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10169
10170         * pa.md: Change predicate of a peephole2 pattern from reg_or_0_operand
10171         to register_operand.
10172
10173 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
10174
10175         * config/ia64/ia64.md (fetchadd_acq_si, fetchadd_acq_di)
10176         (cmpxchg_acq_si, cmpxchg_acq_di): Exchange match_dup and
10177         match_operand expressions so that all match_dups appear
10178         lexically after their corresponding match_operands.
10179
10180 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
10181
10182         * config/h8300/h8300.c (WORD_REG_USED): Use
10183         HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM.
10184         (compute_saved_regs): Likewise.
10185         (h8300_expand_prologue): Likewise.  Allocate locals after
10186         saving registers.
10187         (h8300_expand_epilogue): Use HARD_FRAME_POINTER_REGNUM instead
10188         of FRAME_POINTER_REGNUM.  Deallocate locals before saving
10189         registers.
10190         (h8300_initial_elimination_offset): Adjust for the new frame
10191         layout, which swaps flips the order of locals and saved
10192         registers.
10193         * config/h8300/h8300.h (FIRST_PSEUDO_REGISTER): Change to 12.
10194         (HARD_FRAME_POINTER_REGNUM): New.
10195         (ELIMINABLE_REGS): Add an elimination rule from
10196         FRAME_POINTER_REGNUM to HARD_FRAME_POINTER_REGNUM.
10197         (REGISTER_NAMES): Add fp.
10198         * config/h8300/h8300.md (FP_REG): Change to 11.
10199         (HFP_REG): New.
10200
10201 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
10202
10203         * genrecog.c (write_node): Remove a useless local variable.
10204
10205 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
10206
10207         * Makefile.in (options.c options.h): Use stamp file s-options to
10208         avoid unnecessary rebuilds.
10209         (options.o): New target listing dependencies.
10210         (gtyp-gen.h): Use stamp file s-gtyp-gen.
10211         (STAGESTUFF): Add s-gtyp-gen.
10212
10213 2004-01-28  Richard Henderson  <rth@redhat.com>
10214
10215         * ggc.h (ggc_free): Declare.
10216         * ggc-common.c (ggc_realloc): Use it.
10217         * ggc-page.c: Remove lots of inline markers.
10218         (globals): Add free_object_list.
10219         (ggc_alloc): Tidy.
10220         (ggc_free, validate_free_objects): New.
10221         (poison_pages): Provide default.
10222         (ggc_collect): Call validate_free_objects; emit markers to
10223         the debug file.
10224
10225 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
10226             Jim Wilson  <wilson@specifixinc.com>
10227
10228         * config/ia64/ia64.c (ia64_split_tmode, ia64_split_tmode_move):
10229         Rewrite to use POST_INC/POST_DEC/POST_MODIFY instead of a
10230         scratch pointer.
10231         (ia64_secondary_reload_class): Delete case GR_REGS.
10232         * config/ia64/ia64.md (movti, *movti_internal, movtf, *movtf_internal):
10233         Do not allocate a scratch register.
10234         (reload_inti, reload_outti, reload_intf, reload_outtf): Delete.
10235
10236 2004-01-28  Jan Hubicka  <jh@suse.cz>
10237
10238         * gcse.c (bypass_block): Prevent edges to be unified when we are
10239         about to emit compenstation code.
10240
10241 2004-01-28  Nick Clifton  <nickc@redhat.com>
10242
10243         * config/arm/arm.c (arm_expand_builtin): Force second argument of
10244         the setcwx insn into a register.
10245
10246 2004-01-28  Richard Sandiford  <rsandifo@redhat.com>
10247
10248         * config/fp-bit.c (pack_d): When using paired doubles to implement
10249         a long double, round the high part separately.
10250         (unpack_d): Fix the case in which the high part is a power of two
10251         and the low part is a nonzero value of the opposite sign.
10252
10253 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
10254
10255         * config/c4x/c4x.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
10256         (TARGET_STRUCT_VALUE_RTX): Likewise.
10257         (c4x_external_libcall): Likewise.
10258         (c4x_struct_value_rtx): Likewise.
10259         * config/c4x/c4x.h: Remove.
10260         (STRUCT_VALUE_REGNUM): Likewise.
10261         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
10262
10263 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
10264
10265         * config/i386/i386.c (TARGET_PROMOTE_PROTOTYPES): New.
10266         (TARGET_STRUCT_VALUE_RTX): Likewise.
10267         * config/i386/i386.h (STRUCT_VALUE_INCOMING): Remove.
10268         (STRUCT_VALUE): Likewise.
10269         (PROMOTE_PROTOTYPES): Likewise.
10270
10271 2004-01-27  Roger Sayle  <roger@eyesopen.com>
10272
10273         * config/pa/pa.c (emit_move_sequence): Check that operand1 is a
10274         CONST_INT before using INTVAL.
10275
10276 2004-01-27  Ulrich Weigand  <uweigand@de.ibm.com>
10277
10278         * config/s390/s390.h (TARGET_DEFAULT): Default to !TARGET_BACKCHAIN.
10279         * config/s390/s390.c (s390_return_addr_rtx): Fail for all but current
10280         frame if !TARGET_BACKCHAIN.
10281         * config/s390/s390.md ("allocate_stack"): Use pattern only if
10282         TARGET_BACKCHAIN.
10283         * doc/invoke.texi (-mbackchain/-mno-backchain): Document new default.
10284
10285 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
10286
10287         * ia64.c (ia64_function_arg): When placing HFAs in integer
10288         registers, do not special case the mode used for complex
10289         types.  Do not advance int_regs until the current register
10290         is full.
10291
10292 2004-01-27  Richard Sandiford  <rsandifo@redhat.com>
10293
10294         PR target/7297
10295         * except.c (init_eh): Use a 5-word __jbuf for __builtin_setjmp().
10296
10297 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
10298
10299         * config/rs6000/rs6000.c (rs6000_emit_move): #if 0 splitting
10300         slow, unaligned loads and stores while debugging.  Fix formatting.
10301
10302 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
10303
10304         * config/rs6000/rs6000.md (save_stack_nonlocal): Use Pmode instead
10305         of computing wmode.
10306         (restore_stack_nonlocal): Same.
10307
10308 2004-01-27  Devang Patel <dpatel@apple.com>
10309
10310         * Makefile.in (dwarf2out.o): Depend on input.h
10311         * dbxout.c (dbx_debug_hooks): Add new empty hook for
10312         imported_module_or_decl.
10313         (xcoff_debug_hooks): Same.
10314         * sdbout.c (sdb_debug_hooks): Same.
10315         * vmsdbgout.c (vmsdbg_debug_hooks): Same.
10316         * debug.c (do_nothing_debug_hooks): Same.
10317         (debug_nothing_tree_tree): New function.
10318         * debug.h (gcc_debug_hooks): New hook, imported_module_or_decl.
10319         * dwarf2out.c: Include input.h.
10320         (dwarf2_debug_hooks): Add new hook for imported_module_or_decl.
10321         (remove_child_TAG): New function.
10322         (dwarf_tag_name): Handle DW_TAG_imported_module.
10323         (gen_subprogram_die): Equate decl number to declaration die. Do not
10324         remove all children dies while reusing declaration die for definition.
10325         Instead, selectively remove only formal parameters.
10326         (gen_variable_die): Equate variable decl to declaration die.
10327         (gen_field_die): Equate field decl to line number.
10328         (force_namespace_die): Replace it with ...
10329         (force_decl_die): ... this.
10330         (force_type_die): New function.
10331         (setup_namespace_context): Replace use of force_namespace_die() with
10332         force_decl_die().
10333         (gen_namespace_die): Same.
10334         (dwarf2out_imported_module_or_decl): New function.
10335
10336 2004-01-27  Bob Wilson  <bob.wilson@acm.org>
10337
10338         * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Remove SUBREG
10339         on CQImode and CHImode incoming arguments in register a7.
10340         (function_arg): Wrap BLKmode argument in register a7 in a PARALLEL.
10341         * config/xtensa/xtensa.h (BLOCK_REG_PADDING): Define.
10342         * config/xtensa/xtensa.md (movdi, movdf): Only call force_reg or
10343         xtensa_copy_incoming_a7 before reload.
10344
10345 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
10346
10347         * coverage.c (get_coverage_counts): Give a different message
10348         if flag_guess_branch_prob is set.
10349         * predict.c (counts_to_freqs): Return an int.
10350         (estimate_bb_frequencies): If counts_to_freqs returns zero,
10351         calculate estimates.
10352
10353 2004-01-27  Kazu Hirata  <kazu@cs.umass.edu>
10354
10355         * config/iq2000/iq2000-protos.h: Remove the prototype for
10356         iq2000_setup_incoming_varargs.
10357         * config/iq2000/iq2000.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
10358         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
10359         (TARGET_PROMOTE_PROTOTYPES): Likewise.
10360         (TARGET_STRUCT_VALUE_RTX): Likewise.
10361         (TARGET_RETURN_IN_MEMORY): Likewise.
10362         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
10363         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
10364         (iq2000_return_in_memory): Likewise.
10365         (iq2000_setup_incoming_varargs): Make it static.  Receive the
10366         first argument by reference.
10367         * config/iq2000/iq2000.h (PROMOTE_FUNCTION_ARGS): Remove.
10368         (PROMOTE_FUNCTION_RETURN): Likewise.
10369         (PROMOTE_PROTOTYPES): Likewise.
10370         (RETURN_IN_MEMORY): Likewise.
10371         (STRUCT_VALUE): Likewise.
10372         (SETUP_INCOMING_VARARGS): Likewise.
10373         (STRICT_ARGUMENT_NAMING): Likewise.
10374
10375 2004-01-24  James A. Morrison  <ja2morri@uwaterloo.ca>
10376
10377         * fixinc/fixinc.c (test_test): Initialize res.
10378         (start_flexer): Initialize pz_cmd_save.
10379
10380 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
10381
10382         * doc/rtl.texi (Arithmetic): Rewrite entries for PLUS,
10383         SS_PLUS, US_PLUS, LO_SUM, MINUS, SS_MINUS, US_MINUS.
10384
10385 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
10386
10387         PR 7198
10388         * config/ia64/ia64.md (*nmaddsf4, *nmadddf4, *nmadddf4_alts)
10389         (*nmadddf4_trunc, *nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf)
10390         (*nmaddxf4_alts, *nmaddxf4_truncdf_alts):
10391         Rewrite pattern as (minus (op 3) (mult (op 1) (op 2))).
10392         Possibly rename pattern for consistency.
10393         Remove ??? comments suggesting that this be done.
10394         (*nmaddsf4_alts, *nmadddf4_truncsf_alts, *nmaddxf4_truncsf_alts):
10395         New patterns.
10396         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr)
10397         (divsf3_internal_lat, divsf3_internal_thr, sqrtsf2_internal_thr)
10398         (divdf3_internal_lat, divdf3_internal_thr, sqrtdf2_internal_thr)
10399         (divxf3_internal_lat, divxf3_internal_thr, sqrtxf2_internal_thr):
10400         Update to match.
10401
10402 2004-01-27  Ian Lance Taylor  <ian@wasabisystems.com>
10403
10404         * config/arm/arm.c (output_return_instruction): Only restore IP
10405         into SP if frame_pointer_needed.
10406
10407 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
10408
10409         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
10410         for SCmode and DCmode if ARCH32.
10411         (sparc_va_arg): Handle SCmode and DCmode by reference if ARCH32.
10412         * config/sparc/sparc.h (RETURN_IN_MEMORY): Return 0 for TCmode
10413         if ARCH32.
10414         (BASE_RETURN_VALUE_REG): Return 32 for all FP modes except TFmode
10415         if ARCH32.
10416         (BASE_OUTGOING_VALUE_REG): Likewise.
10417
10418 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
10419
10420         PR target/10904
10421         PR target/13058
10422         * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): New.
10423         Forbid mode changes from SImode for lower FP regs if ARCH64.
10424
10425 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
10426
10427         * Makefile.in (bt-load.o): Depend on except.h.
10428         * bt-load.c (except.h): #include.
10429         (compute_defs_uses_and_gen): If insn at end of BB can throw
10430         within this function, consider registers used by it unavailable for
10431         btr migration.
10432         (move_btr_def): If insn at end of BB can throw, insert before rather
10433         than after.
10434
10435         * flags.h (flag_btr_bb_exclusive): Declare.
10436         * toplev.c (flag_btr_bb_exclusive): New variable.
10437         (f_options): Add btr-bb-exclusive.
10438         * bt-load.c (augment_live_range): Restore old behaviour if
10439         flag_btr_bb_exclusive is set.
10440         * common.opt: Add entry for -fbtr-bb-exclusive.
10441         * opts.c (common_handle_options): Same.
10442         * doc/invoke.texi: Document -fbtr-bb-exclusive.
10443
10444         * bt-load.c (btrs_live_at_end): New variable.
10445         (compute_defs_uses_and_gen): Compute its pointed-to array.
10446         (clear_btr_from_live_range, add_btr_to_live_range): Update it.
10447         (augment_live_range): When augmenting with a new dominator,
10448         use only its btrs_live_at_end set, but also add in the full set
10449         of the old dominator.
10450         (btr_def_live_range): Use btrs_live_at_end.
10451         (move_btr_def): Set other_btr_uses_before_def, and move new set
10452         to the end of the basic block, if appropriate.
10453         (migrate_btr_defs): Allocate and free btrs_live_at_end.
10454
10455         * bt-load.c (basic_block_freq): Remove outdated comment.
10456
10457 2004-01-27  Alan Modra  <amodra@bigpond.net.au>
10458
10459         * config/rs6000/rs6000.h: Correct target_flags free bits comment.
10460         (PREDICATE_CODES): Remove duplicate.
10461         * config/rs6000/linux64.h (CPP_SYSV_SPEC): Don't define.
10462         (SUBSUBTARGET_OVERRIDE_OPTIONS): Disallow 32 bit TARGET_PROFILE_KERNEL.
10463         (MASK_PROFILE_KERNEL): Adjust define.
10464
10465 2004-01-27  Jakub Jelinek  <jakub@redhat.com>
10466
10467         * config/i386/i386.c (ix86_constant_alignment): Decrease alignment
10468         of long string literals from 32 bytes to sizeof (void *) when !-Os
10469         and to 1 with -Os.
10470
10471 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
10472
10473         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Accept
10474         constant addresses in the normal mode.
10475
10476 2004-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10477
10478         * system.h (CHAR_BITFIELD): Delete.
10479         (BOOL_BITFIELD): New.
10480         * c-decl.c (c_scope): Use BOOL_BITFIELD.
10481         * gengtype-lex.l: Recognize BOOL_BITFIELD instead of CHAR_BITFIELD.
10482
10483 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
10484
10485         * config/arc/arc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
10486         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
10487         (TARGET_PROMOTE_PROTOTYPES): Likewise.
10488         (TARGET_STRUCT_VALUE_RTX): Likewise.
10489         (TARGET_RETURN_IN_MEMORY): Likewise.
10490         (arc_return_in_memory): Likewise.
10491         * config/arc/arc.h (PROMOTE_FUNCTION_ARGS): Remove.
10492         (PROMOTE_FUNCTION_RETURN): Likewise.
10493         (RETURN_IN_MEMORY): Likewise.
10494         (STRUCT_VALUE): Likewise.
10495
10496 2004-01-26  Richard Henderson  <rth@redhat.com>
10497
10498         * c-parse.in (extension): Use itype.
10499         (SAVE_EXT_FLAGS): Don't allocate a tree.
10500         (RESTORE_EXT_FLAGS): Don't read a tree.
10501
10502 2004-01-26  Jan Hubicka  <jh@suse.cz>
10503
10504         * cselib.c (discard_useless_values):  Clear out value pointer pointing
10505         to datastructure to be recycled.
10506
10507 2004-01-25  Jan Hubicka  <jh@suse.cz>
10508
10509         * genextract.c (main): Do not output the memset when not checking.
10510
10511 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
10512
10513         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Use a
10514         switch statement instead of a chain of if statements.
10515
10516 2004-01-26  Jeff Law  <law@redhat.com>
10517
10518         * doc/contrib.texi: Minor cleanup for Paolo Carlini's entry.  Add
10519         acute accents for Petur Runolfsson's entry.
10520
10521 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
10522
10523         * config/pdp11/pdp11.c (TARGET_STRUCT_VALUE_RTX): New.
10524         (TARGET_RETURN_IN_MEMORY): Likewise.
10525         * config/pdp11/pdp11.h (STRUCT_VALUE): Remove.
10526         (RETURN_IN_MEMORY): Likewise.
10527
10528 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
10529
10530          * config/rs6000/rs6000.c (rs6000_emit_move): split slow
10531          unaligned load/store into smaller loads and stores.
10532
10533 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
10534
10535         * function.c (assign_parms): Do not assign
10536         long long argument to memory in prologue if
10537         is it loaded into register.
10538
10539 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
10540
10541          PR middle-end/13779
10542          * expr.c (emit_group_load): split constant
10543          correctly into register components of PARALLEL insn.
10544
10545 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
10546
10547         * gcc/config/rs6000/rs6000.md (save_stack_nonlocal):
10548         Use adjust_address_nv directly with appropriate mode.
10549         (restore_stack_nonlocal): Ditto.
10550
10551 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
10552
10553         * config/xtensa/xtensa-protos.h: Remove the prototype for
10554         xtensa_builtin_saveregs.
10555         * config/xtensa/xtensa.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
10556         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
10557         (TARGET_PROMOTE_PROTOTYPES): Likewise.
10558         (TARGET_STRUCT_VALUE_RTX): Likewise.
10559         (TARGET_RETURN_IN_MEMORY): Likewise.
10560         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
10561         (xtensa_builtin_saveregs): Make it static.
10562         (xtensa_return_in_memory): New.
10563         * config/xtensa/xtensa.h (PROMOTE_FUNCTION_ARGS: Remove.
10564         (PROMOTE_FUNCTION_RETURN): Likewise.
10565         (PROMOTE_PROTOTYPES): Likewise.
10566         (STRUCT_VALUE): Likewise.
10567         (RETURN_IN_MEMORY): Likewise.
10568         (EXPAND_BUILTIN_SAVEREGS): Likewise.
10569
10570 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
10571
10572         * config/arm/arm.c (TARGET_SETUP_INCOMING_VARARGS): New.
10573         (arm_setup_incoming_varargs): Likewise.
10574         * config/arm/arm.h (SETUP_INCOMING_VARARGS): Remove.
10575
10576 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
10577
10578         * config/cris/cris.c (TARGET_SETUP_INCOMING_VARARGS): New.
10579         (cris_setup_incoming_varargs): Likewise.
10580         * config/cris/cris.h (SETUP_INCOMING_VARARGS): Remove.
10581
10582 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
10583
10584         * config/ns32k/ns32k.c (TARGET_STRUCT_VALUE_RTX): New.
10585         (ns32k_struct_value_rtx): Likewise.
10586         * config/ns32k/ns32k.h (STRUCT_VALUE_REGNUM): Rename to
10587         NS32K_STRUCT_VALUE_REGNUM.
10588
10589 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
10590
10591         * config/arm/arm.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
10592         (TARGET_PROMOTE_PROTOTYPES): Likewise.
10593         (TARGET_STRUCT_VALUE_RTX): Likewise.
10594         (arm_struct_value_rtx): Likewise.
10595         * config/arm/arm.h (PROMOTE_FUNCTION_ARGS): Remove.
10596         (STRUCT_VALUE): Likewise.
10597         (STRUCT_VALUE_REGNUM): Likewise.
10598         (PROMOTE_PROTOTYPES): Likewise.
10599
10600 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
10601
10602         * config/ia64/ia64-protos.h: Remove the prototype for
10603         ia64_setup_incoming_varargs and ia64_return_in_memory.
10604         * config/ia64/ia64.c (TARGET_STRUCT_VALUE_RTX): New.
10605         (TARGET_RETURN_IN_MEMORY): Likewise.
10606         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
10607         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
10608         (ia64_setup_incoming_varargs): Adjust the arguments to meet
10609         the requirement of TARGET_SETUP_INCOMING_VARARGS.
10610         (ia64_return_in_memory): Make it static.  Change the return
10611         type to bool from int.  Add an argument.
10612         (ia64_struct_value_rtx): New.
10613         * config/ia64/ia64.h: Remove commented-out definitions of
10614         PROMOTE_FUNCTION_ARGS, PROMOTE_FUNCTION_RETURN, and
10615         PROMOTE_PROTOTYPES.
10616         (RETURN_IN_MEMORY): Remove.
10617         (STRUCT_VALUE_REGNUM): Likewise.
10618         (STRICT_ARGUMENT_NAMING): Likewise.
10619
10620 2004-01-26  Eric Botcazou  <ebotcazou@libertysurf.fr>
10621
10622         PR target/13666
10623         * config/sparc/sparc.c (function_arg_union_value): New function.
10624         (function_arg): Use it to deal with unions.
10625         (function_value): Likewise.  Define 'regbase' only for ARCH64.
10626         Replace a conditional statement by a simpler one.
10627
10628 2004-01-26  Richard Sandiford  <rsandifo@redhat.com>
10629
10630         * config/mips/mips.c (mips16_optimize_gp): Delete.
10631         (mips_reorg): Don't call it.
10632
10633 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10634
10635         * config/c4x/c4x.md (addqi3_noclobber): Move up pecking order.
10636         (floatunsqihf2): Remove operand 6.
10637         (fixhfqi_set, fix_trunchfqi2, fixuns_trunchfqi2): Group with other
10638         fix patterns.
10639         (ldi_conditional, ldf_conditional): Validate operands.
10640
10641 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10642
10643         * config/c4x/c4x.h (BCT_CHECK_LOOP_ITERATIONS): Remove.
10644         (HAVE_GAS_HIDDEN): Undefine as interim measure.
10645
10646 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10647
10648         * config/c4x/c4x.c (c4x_legitimate_address_p):  Invalidate direct
10649         memory references if TARGET_EXPOSE_LDP nonzero.
10650
10651 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10652
10653         * config/c4x/c4x.c (legitimize_operands): Truncate invalid shift counts.
10654
10655 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10656
10657         * config/c4x/c4x.c (c4x_valid_operands): More aggressively reject
10658         invalid operand combinations.
10659
10660 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10661
10662         * config/c4x/c4x.c (c4x_check_legit_addr): Rename to
10663         c4x_legitimate_address_p.  Fix post_modify check.
10664
10665         * config/c4x/c4x-protos.h (c4x_check_legit_addr): Adjust.
10666         * config/c4x/c4x.h (c4x_check_legit_addr): Adjust.
10667
10668 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
10669
10670         * config/pa/pa-protos.h: Remove the prototype for
10671         hppa_builtin_saveregs.  Add a prototype for
10672         pa_return_in_memory.
10673         * config/pa/pa.c (TARGET_PROMOTE_FUNCTION_RETURN): New.
10674         (TARGET_PROMOTE_PROTOTYPES): Likewise.
10675         (TARGET_STRUCT_VALUE_RTX): Likewise.
10676         (TARGET_RETURN_IN_MEMORY): Likewise.
10677         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
10678         (pa_struct_value_rtx): Likewise.
10679         (pa_return_in_memory): Likewise.
10680         * config/pa/pa.h (STRUCT_VALUE_REGNUM): Rename to
10681         PA_STRUCT_VALUE_REGNUM.
10682         (INIT_CUMULATIVE_ARGS): Use pa_return_in_memory.
10683         (EXPAND_BUILTIN_SAVEREGS): Remove.
10684         (PROMOTE_PROTOTYPES): Likewise.
10685         (PROMOTE_FUNCTION_RETURN): Likewise.
10686
10687 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
10688
10689         * config/vax/vax.c (TARGET_PROMOTE_PROTOTYPES): New.
10690         (TARGET_STRUCT_VALUE_RTX): Likewise.
10691         (vax_struct_value_rtx): Likewise.
10692         * config/vax/vax.h (STRUCT_VALUE_REGNUM): Rename to
10693         VAX_STRUCT_VALUE_REGNUM.
10694         (PROMOTE_PROTOTYPES): Remove.
10695
10696 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10697
10698         * config/c4x/c4x.h (LEGITIMIZE_RELOAD_ADDRESS):  Handle symref.
10699
10700 2003-04-25  Chris Demetriou  <cgd@broadcom.com>
10701
10702         * config/mips/mips.h (ISA_HAS_HILO_INTERLOCKS): MIPS32, MIPS32r2,
10703         and MIPS64 have HI/LO interlocks.  Update comment.
10704
10705 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
10706
10707         * config/stormy16/stormy16-protos.h: Remove the prototype for
10708         xstormy16_setup_incoming_varargs.
10709         * config/stormy16/stormy16.c
10710         (xstormy16_setup_incoming_varargs): Remove.
10711         (xstormy16_return_in_memory): New.
10712         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
10713         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
10714         (TARGET_PROMOTE_PROTOTYPES): Likewise.
10715         (TARGET_STRUCT_VALUE_RTX): Likewise.
10716         (TARGET_RETURN_IN_MEMORY): Likewise.
10717         * config/stormy16/stormy16.h (PROMOTE_FUNCTION_ARGS): Remove.
10718         (PROMOTE_FUNCTION_RETURN): Likewise
10719         (PROMOTE_PROTOTYPES): Likewise
10720         (RETURN_IN_MEMORY): Likewise
10721         (STRUCT_VALUE): Likewise
10722         (SETUP_INCOMING_VARARGS): Likewise
10723
10724 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
10725
10726         * config/mips/mips.c (mips_offset_within_object_p): New function.
10727         (mips_symbolic_constant_p): Use it in the SYMBOL_SMALL_DATA and
10728         SYMBOL_CONSTANT_POOL cases.  Also use it for SYMBOL_GENERAL if the
10729         ABI has 64-bit pointers and the object file only allows 32-bit symbols.
10730
10731 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
10732
10733         * config/sh/sh.h (PROMOTE_FUNCTION_ARGS): Remove.
10734         (PROMOTE_FUNCTION_RETURN): Likewise.
10735
10736 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
10737
10738         * config/mn10300/mn10300-protos.h: Remove the prototype for
10739         mn10300_builtin_saveregs.
10740         * config/mn10300/mn10300.c (TARGET_PROMOTE_PROTOTYPES): New.
10741         (TARGET_STRUCT_VALUE_RTX): Likewise.
10742         (TARGET_RETURN_IN_MEMORY): Likewise.
10743         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
10744         (mn10300_return_in_memory): Likewise.
10745         (mn10300_builtin_saveregs): Make it static.
10746         * config/mn10300/mn10300.h (PROMOTE_PROTOTYPES): Remove.
10747         (RETURN_IN_MEMORY): Likewise.
10748         (STRUCT_VALUE): Likewise.
10749         (EXPAND_BUILTIN_SAVEREGS): Likewise.
10750
10751 2004-01-25  Eric Botcazou  <ebotcazou@act-europe.fr>
10752
10753         PR bootstrap/13853
10754         * cfgcleanup.c (try_optimize_cfg): Explicitly test against 0.
10755
10756 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
10757
10758         * config/h8300/lib1funcs.asm (divnorm, modnorm): Optimize by
10759         using ccr.
10760
10761 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
10762
10763         * config/i860/i860-protos.h: Remove the prototype for
10764         i860_saveregs.
10765         * config/i860/i860.c (i860_saveregs): Make it static.
10766         (i860_struct_value_rtx): New.
10767         (TARGET_STRUCT_VALUE_RTX): Likewise.
10768         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
10769         * config/i860/i860.h (STRUCT_VALUE_REGNUM): Rename to
10770         I860_STRUCT_VALUE_REGNUM.
10771         (EXPAND_BUILTIN_SAVEREGS): Remove.
10772
10773 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
10774
10775         * config/m68hc11/m68hc11.c (TARGET_STRUCT_VALUE_RTX): New.
10776         (TARGET_RETURN_IN_MEMORY): Likewise.
10777         (m68hc11_struct_value_rtx): Likewise.
10778         (m68hc11_return_in_memory): Likewise.
10779         * config/m68hc11/m68hc11.h: Remove a commented-out definition
10780         of PROMOTE_PROTOTYPES.
10781         (RETURN_IN_MEMORY): Remove.
10782         (STRUCT_VALUE_REGNUM): Likewise.
10783
10784 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
10785
10786         * config/mmix/mmix-protos.h: Remove the prototype for
10787         mmix_setup_incoming_varargs.
10788         * config/mmix/mmix.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
10789         (TARGET_STRUCT_VALUE_RTX): Likewise.
10790         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
10791         (mmix_setup_incoming_varargs): Make it static.
10792         (mmix_struct_value_rtx): New.
10793         * config/mmix/mmix.h (PROMOTE_FUNCTION_ARGS): Remove.
10794         Remove a commented-out definition of PROMOTE_FUNCTION_RETURN.
10795         (STRUCT_VALUE_REGNUM): Remove.
10796         (SETUP_INCOMING_VARARGS): Likewise.
10797
10798 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
10799
10800         * config/mips/mips-protos.h: Remove the prototypes for
10801         mips_setup_incoming_varargs and mips_return_in_memory.
10802         * config/mips/mips.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
10803         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
10804         (TARGET_PROMOTE_PROTOTYPES): Likewise.
10805         (TARGET_STRUCT_VALUE_RTX): Likewise.
10806         (TARGET_RETURN_IN_MEMORY): Likewise.
10807         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
10808         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
10809         (mips_setup_incoming_varargs): Match the prototype for
10810         TARGET_SETUP_INCOMING_VARARGS.
10811         (mips_return_in_memory): Make it static.  Add argument fntype.
10812         (mips_strict_argument_naming): New.
10813         * config/mips/mips.h (PROMOTE_PROTOTYPES): Remove.
10814         (PROMOTE_FUNCTION_ARGS): Likewise.
10815         (PROMOTE_FUNCTION_RETURN): Likewise.
10816         (STRUCT_VALUE): Likewise.
10817         (RETURN_IN_MEMORY): Likewise.
10818         (SETUP_INCOMING_VARARGS): Likewise.
10819         (STRICT_ARGUMENT_NAMING): Likewise.
10820
10821 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
10822
10823         * config/ip2k/ip2k.c (TARGET_STRUCT_VALUE_RTX): New.
10824         (TARGET_RETURN_IN_MEMORY): Likewise.
10825         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
10826         (ip2k_return_in_memory): Likewise.
10827         (ip2k_setup_incoming_varargs): Likewise.
10828         * config/ip2k/ip2k.h (RETURN_IN_MEMORY): Remove.
10829         (STRUCT_VALUE): Likewise.
10830         (STRUCT_VALUE_INCOMING): Likewise.
10831         (SETUP_INCOMING_VARARGS): Likewise.
10832
10833 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
10834
10835         * config/avr/avr.c (TARGET_STRUCT_VALUE_RTX): New.
10836         (TARGET_RETURN_IN_MEMORY): Likewise.
10837         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
10838         (avr_return_in_memory): Remove.
10839         * config/avr/avr.h (RETURN_IN_MEMORY): Remove.
10840         (STRUCT_VALUE): Likewise.
10841         (STRUCT_VALUE_INCOMING): Likewise.
10842         (STRICT_ARGUMENT_NAMING): Likewise.
10843
10844 2004-01-25  Jan Hubicka  <jh@suse.cz>
10845
10846         * combine.c (recog_for_combine): Avoid allocating unnecesary RTX.
10847
10848 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
10849
10850         * config/mips/mips-protos.h (mips_reg_mode_ok_for_base_p): Delete.
10851         (mips_regno_mode_ok_for_base_p): Declare.
10852         * config/mips/mips.h (ARG_POINTER_REGNUM): Renumber to 77.
10853         (FRAME_POINTER_REGNUM): Renumber to 78.
10854         (FIRST_PSEUDO_REGISTER): Update comment accordingly.
10855         (BASE_REG_P, GP_REG_OR_PSEUDO_STRICT_P): Delete.
10856         (GP_REG_OR_PSEUDO_NONSTRICT_P): Delete.
10857         (REGNO_MODE_OK_FOR_BASE_P): Use mips_regno_mode_ok_for_base_p.
10858         (REG_MODE_OK_FOR_BASE_P): Likewise.
10859         * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Change
10860         entry for 77 to "$arg" and entry for 78 to "$frame".
10861         (mips_regno_to_class): Map 77 and 78 to ALL_REGS.
10862         (mips_reg_mode_ok_for_base_p): Remove.
10863         (mips_regno_mode_ok_for_base_p): New function, derived from old
10864         BASE_REG_P macro.  Don't enforce the mips16 stack pointer
10865         restrictions unless we're being strict.
10866         (mips_valid_base_register_p): Use mips_regno_mode_ok_for_base_p.
10867
10868 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
10869
10870         * c-common.h: Fix comment typos.
10871         * c-decl.c: Likewise.
10872         * cgraphunit.c: Likewise.
10873         * combine.c: Likewise.
10874         * et-forest.c: Likewise.
10875         * flow.c: Likewise.
10876         * function.c: Likewise.
10877         * ifcvt.c: Likewise.
10878         * integrate.c: Likewise.
10879         * jump.c: Likewise.
10880         * postreload.c: Likewise.
10881         * varray.c: Likewise.
10882
10883 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
10884
10885         * doc/frontends.texi: Update copyright.
10886         * doc/gcov.texi: Likewise.
10887         * doc/gty.texi: Likewise.
10888         * doc/sourcebuild.texi: Likewise.
10889         * doc/standards.texi: Likewise.
10890
10891 2004-01-24  Herman A.J. ten Brugge  <hermantenbrugge@home.nl>
10892
10893         PR target/12978
10894         * c4x.md: (movstrqi*) Use match_scratch instead of match_dup.
10895         Remove movstrqi_small because it conflicts with movstrqi_large.
10896
10897 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
10898
10899         * config/cris/cris.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
10900         (TARGET_STRUCT_VALUE_RTX): Likewise.
10901         (cris_struct_value_rtx): Likewise.
10902         * config/cris/cris.h (PROMOTE_FUNCTION_ARGS): Remove.
10903         (CRIS_STACKADJ_REG): Use CRIS_STRUCT_VALUE_REGNUM instead of
10904         STRUCT_VALUE_REGNUM.
10905         (STRUCT_VALUE_REGNUM): Rename to CRIS_STRUCT_VALUE_REGNUM.
10906
10907 2004-01-24  Ian Lance Taylor  <ian@wasabisystems.com>
10908
10909         PR bootstrap/13848
10910         * cse.c (cse_cc_succs): Change the mode of the source expression
10911         as soon as decide we need a new mode.  Don't permit changing modes
10912         if we found a match in a successor block.
10913         (cse_condition_code_reg): Save original mode of source expression
10914         so that we know whether we have to change the mode in other
10915         insns.
10916
10917 2004-01-24  Jan Hubicka  <jh@suse.cz>
10918
10919         * emit-rtl.c (change_address, adjust_address_1, offset_address,
10920         widen_memory_access):  Return early when there is nothing to change.
10921
10922 2004-01-24  Jakub Jelinek  <jakub@redhat.com>
10923
10924         * simplify-rtx.c (simplify_relational_operation): Don't
10925         simplify address == constant into address + -constant == 0.
10926
10927 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
10928
10929         * gcc.c (process_command): Don't internationalize the
10930         Copyright message.
10931         * mips-tfile.c (main): Likewise.
10932
10933 2004-01-24  Andreas Tobler  <a.tobler@schweiz.ch>
10934
10935         * cse.c: (cse_cc_succs) Fix comparison warning.
10936
10937 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
10938
10939         * config/h8300/h8300.md: Remove extraneous USE in expanders.
10940
10941 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
10942
10943         * config/h8300/h8300-protos.h: Provide prototypes for
10944         h8300_legitimate_constant_p and h8300_legitimate_address_p.
10945         * config/h8300/h8300.c (h8300_legitimate_constant_p): New.
10946         (h8300_rtx_ok_for_base_p): Likewise.
10947         (h8300_legitimate_address_p): Likewise.
10948         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Use
10949         h8300_legitimate_constant_p.
10950         (RTX_OK_FOR_BASE_P): Remove.
10951         (GO_IF_LEGITIMATE_ADDRESS): Use h8300_legitimate_address_p.
10952
10953 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
10954
10955         * config/h8300/h8300.h (REG_OK_FOR_INDEX_NONSTRICT_P): New.
10956         (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
10957         (REG_OK_FOR_INDEX_STRICT_P): Likewise.
10958         (REG_OK_FOR_BASE_STRICT_P): Likewise.
10959         (REG_OK_FOR_INDEX_STRICT_P): Use REGNO_OK_FOR_INDEX_P.
10960         (REG_OK_FOR_BASE_STRICT_P): Use REGNO_OK_FOR_BASE_P.
10961         (REG_OK_FOR_INDEX_P): Use REG_OK_FOR_INDEX_STRICT_P.
10962         (REG_OK_FOR_BASE_P): Use REG_OK_FOR_BASE_STRICT_P.
10963
10964 2004-01-24  Jan Hubicka  <jh@suse.cz>
10965
10966         * cselib.c (remove_useless_values):  Do not access discarded values.
10967
10968 2004-01-24  Joseph S. Myers  <jsm@polyomino.org.uk>
10969
10970         * c-typeck.c (build_conditional_expr): Do not allow non-lvalue
10971         arrays.
10972
10973 2004-01-23  Kazu Hirata  <kazu@cs.umass.edu>
10974
10975         * recog.c: Fix a typo in copyright.
10976
10977 2004-01-23  Andrew Pinski  <apinski@apple.com>
10978
10979         * config/rs6000/rs6000.md (call): Fix misappiled patch.
10980         (call_value): Likewise.
10981
10982 2004-01-23  Richard Henderson  <rth@redhat.com>
10983
10984         PR opt/12941
10985         * combine.c (SHIFT_COUNT_TRUNCATED): Provide default value.
10986         (simplify_comparison): Don't simplify (eq (zero_extract c 1 r) 0)
10987         if SHIFT_COUNT_TRUNCATED is set.
10988
10989 2004-01-23  Bob Wilson  <bob.wilson@acm.org>
10990
10991         * config/xtensa/xtensa.c (xtensa_va_arg): Handle complex values as
10992         separate real and imaginary parts.
10993         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Define.
10994
10995 2004-01-23  Hartmut Penner <hpenner@de.ibm.com>
10996
10997         PR target/13674
10998         * config/rs6000/rs6000.md (movdf_hardfloat64): Do not disparage
10999         loading into GPR.
11000
11001 2004-01-23  Jan Hubicka  <jh@suse.cz>
11002
11003         * emit-rtl.c (change_address_1):  Do not re-generate the RTX if nothing
11004         change.
11005
11006         * alloc-pool.c (align_four): Kill.
11007         (create_alloc_pool): Align size to eight.
11008         (free_alloc_pool, free_pool): Invalidate deallocated data.
11009
11010 2004-01-23  Ian Lance Taylor  <ian@wasabisystems.com>
11011
11012         PR gcc/1532
11013         * cse.c (cse_change_cc_mode): New static function.
11014         (cse_change_cc_mode_insns, cse_cc_succs): Likewise.
11015         (cse_condition_code_reg): New function.
11016         * rtl.h (cse_condition_code_reg): Declare.
11017         * toplev.c (rest_of_handle_cse2): Call cse_condition_code_reg.
11018         * target.h (struct gcc_target): Add fixed_condition_code_regs and
11019         cc_modes_compatible.
11020         * target-def.h (TARGET_FIXED_CONDITION_CODE_REGS): Define.
11021         (TARGET_CC_MODES_COMPATIBLE): Define.
11022         (TARGET_INITIALIZER): Add new initializers.
11023         * targhooks.c (default_cc_modes_compatible): New function.
11024         * targhooks.c (default_cc_modes_compatible): Declare.
11025         * hooks.c (hook_bool_intp_intp_false): New function.
11026         * hooks.h (hook_bool_intp_intp_false): Declare.
11027         * config/i386/i386.c (TARGET_FIXED_CONDITION_CODE_REGS): Define.
11028         (TARGET_CC_MODES_COMPATIBLE): Define.
11029         (ix86_fixed_condition_code_regs): New static function.
11030         (ix86_cc_modes_compatible): Likewise.
11031         * doc/tm.texi (Condition Code): Document new hooks.
11032
11033 2004-01-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
11034
11035         * fixinc/inclhack.def (bad_lval): Renamed to ...
11036         (alpha_bad_lval): ... this.
11037         Removed file list.
11038         Restrict to alpha*-dec-osf*.
11039         * fixinc/fixincl.x: Regenerate.
11040         * fixinc/tests/base/dirent.h: Remove, moving test ...
11041         * fixinc/tests/base/testing.h: ... here, reflecting new name.
11042
11043 2004-01-23  Zack Weinberg  <zack@codesourcery.com>
11044
11045         PR c/13814
11046         * c-decl.c (diagnose_mismatched_decls): Also discard a
11047         built-in if we encounter an old-style definition with the
11048         same name.
11049
11050 2004-01-23  Jakub Jelinek  <jakub@redhat.com>
11051
11052         * config.gcc (powerpc*-*): Clear $with_cpu or $with_tune if it was
11053         set to default{32,64}.
11054
11055 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
11056
11057         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR)
11058         [!__powerpc64__]: Corrected to handle kernels with changed ucontext.
11059
11060 2004-01-23  Eric Botcazou  <ebotcazou@act-europe.fr>
11061             Olivier Hainque  <hainque@act-europe.fr>
11062
11063         * fold-const.c (fold_binary_op_with_conditional_arg): Only
11064         build a COMPOUND_EXPR if 'arg' is really a SAVE_EXPR.
11065
11066 2004-01-23  Daniel Jacobowitz  <drow@mvista.com>
11067
11068         * config/arm/arm.c (arm_legitimate_address_p): Don't check the mode
11069         size for minipool references.
11070
11071 2004-01-23  Roger Sayle  <roger@eyesopen.com>
11072
11073         * real.c (real_floor, real_ceil): Tweak to allow input and output
11074         arguments to overlap.
11075         (real_round): New function to implement round(3m) semantics.
11076         * real.h (real_round): Prototype here.
11077         * builtins.c (fold_builtin_round): New function to constant fold
11078         round, roundf and roundl.
11079         (fold_builtin): Call fold_builtin_round for BUILT_IN_ROUND{,F,L}.
11080
11081 2004-01-23  Alexandre Oliva  <aoliva@redhat.com>
11082
11083         PR optimization/13819
11084         * config/sh/sh.c (sh_reorg): Compensate for sharing of CLOBBERs
11085         introduced by 2004-01-20's Jan Hubicka's copy_insn change.
11086         (sh_handle_sp_switch_attribute): Remove warning.
11087
11088 2003-11-30  Jan Hubicka  <jh@suse.cz>
11089
11090         * i386.c (ix86_emit_restore_regs_using_mov):  Deal with large offsets.
11091
11092 2004-01-23  J"orn Rennecke <joern.rennecke@superh.com>
11093
11094         * doc/tm.texi: Insert some weasel words when LOAD_EXTEND_OP
11095         may or may not return non-NIL.
11096         * postreload.c (reload_cse_simplify_operands): In LOAD_EXTEND_OP code,
11097         check CANNOT_CHANGE_MODE_CLASS
11098
11099 2004-01-23  Jan Hubicka  <jh@suse.cz>
11100
11101         * basic-block.h (PROP_POSTRELOAD): New macro.
11102         (CLEANUP_LOG_LINKS): New.
11103         * cfgcleanup.c (cleanup_cfg): Only PROP_LOG_LINKS when asked to.
11104         * toplev.c (rest_of_handle_life):  Preserve LOG_LINKS trought cleanup_cfg.
11105
11106         * cselib.c (value_pool): New.
11107         (new_cselib_val): Use pool.
11108         (cselib_init): Initialize value_pool
11109         (cselib_finish): Free pool.
11110
11111 2004-01-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
11112
11113         * config/sparc/sparc.c (scan_record_type): New function.
11114         (function_arg_slotno): Use it to determine which kinds of
11115         registers the record can be passed in.
11116
11117 2004-01-22  James A. Mmorrison  <ja2morri@uwaterloo.ca>
11118
11119         * config/pa/fptr.c: Fix old-style definition.
11120
11121 2004-01-22  Paolo Bonzini  <bonzini@gnu.org>
11122
11123         PR optimization/13724
11124         * cse.c (fold_rtx) <SUBREG>:  Fold a SUBREG to zero if it
11125         represents the zero bits produced by a ZERO_EXTEND operation.
11126
11127 2004-01-22  Roger Sayle  <roger@eyesopen.com>
11128
11129         PR optimization/13821
11130         * simplify-rtx.c (simplify_subreg): Use subreg_lowpart_offset to
11131         correctly calculate the lowpart offset of the contracted subreg.
11132
11133 2004-01-22  Ian Lance Taylor  <ian@wasabisystems.com>
11134
11135         * doc/invoke.texi (Optimize Options): Note that --param arguments
11136         are subject to change without notice.
11137
11138 2004-01-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
11139
11140         * config.gcc (mips-sgi-irix6*o32): Removed.
11141         * config/mips/iris6-o32-as.h: Likewise.
11142         * config/mips/iris6-o32-gas.h: Likewise.
11143         * config/mips/iris6-o32.h: Likewise.
11144
11145 2004-01-22  Jan Hubicka  <jh@suse.cz>
11146
11147         * cfgcleanup.c (first_pass): New static variable.
11148         (try_forward_edges):  Add work limiting check for threading.
11149         (try_crossjump_bb):  Add work limiting check for crossjumping.
11150         (try_optimize_cfg):  Maintain first pass variable.
11151
11152 2004-01-22  Bob Wilson  <bob.wilson@acm.org>
11153
11154         * config/xtensa/xtensa.c (function_arg): Generalize logic so that it
11155         handles complex and vector modes.
11156
11157 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
11158
11159         * config/h8300/h8300.h (REG_OK_FOR_INDEX_P_STRICT): Remove.
11160         (REG_OK_FOR_BASE_P_STRICT): Likewise.
11161         (STRICT): Likewise.
11162
11163 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
11164
11165         * c-semantics.c (genrtl_while_stmt, genrtl_do_stmt_1)
11166         (genrtl_for_stmt): Remove emit_nop calls.
11167
11168 2004-01-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11169
11170         PR target/13713
11171         PR target/13324
11172         * pa.md (movstrsi_prereload, movstrsi_postreload, movstrdi_prereload,
11173         movstrdi_postreload, clrstrsi_prereload, clrstrsi_postreload,
11174         clrstrdi_prereload, clrstrdi_postreload): Fix constraints.
11175
11176 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
11177
11178         * config/arm/arm.c: Include "debug.h".
11179         (thumb_pushpop): Take two new arguments.  Add some commentary.
11180         Output frame information when pushing.
11181         (thumb_exit, thumb_unexpanded_epilogue): Update calls to
11182         thumb_pushpop.
11183         (thumb_output_function_prologue): Likewise.  Accumulate a CFA
11184         offset, and pass it to thumb_pushpop.  Output CFI information.
11185         (thumb_expand_prologue): Add some frame-related markers and notes.
11186
11187 2004-01-22  Ulrich Weigand  <uweigand@de.ibm.com>
11188
11189         * config/s390/s390.c (s390_frame_info): Allow large frame sizes
11190         for TARGET_64BIT.
11191         (s390_arg_frame_offset): Change return type to HOST_WIDE_INT.
11192         * config/s390/s390-protos.h (s390_arg_frame_offset): Likewise.
11193
11194 2004-01-22  Roger Sayle  <roger@eyesopen.com>
11195             Paolo Bonzini  <bonzini@gnu.org>
11196
11197         * rtlanal.c (subreg_lsb_1): New function split out from subreg_lsb.
11198         (subreg_lsb): Change to call new subreg_lsb_1 helper function.
11199         * rtl.h (subreg_lsb_1): Prototype here.
11200         * simplify-rtx.c (simplify_subreg): Optimize subregs of zero and
11201         sign extensions.
11202
11203 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
11204
11205         * doc/tm.texi (CASE_VECTOR_PC_RELATIVE): Mention that the
11206         macro need not be defined if jump-tables should contain
11207         relative addresses only when -fPIC or -fPIC is in effect.
11208
11209 2004-01-22  Jan Hubicka  <jh@suse.cz>
11210
11211         * alias.c (reg_base_value): Turn into varray.
11212         (reg_base_value_size): Kill.
11213         (old_reg_base_value): New deletable varray.
11214         (alias_invariant_size): New variable.
11215         (REG_BASE_VALUE): Update to use varray.
11216         (find_base_value): Likewise.
11217         (record_set): Likewise.
11218         (record_base_value): Likewise.
11219         (memrefs_conflict_p): Likewise.
11220         (record_set): Likewise
11221         (record_base_value): Likewise.
11222         (memrefs_conflict_p): Use alias_invariant_size.
11223         (init_alias_analysis): Use varray; set alias_invariant_size;
11224         rescale other arrays to be sized by maxreg.
11225         (end_alias_analysis): Save reg_base_value; clear alias_invariant_size.
11226
11227 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
11228
11229         * config/sparc/sparc.c (function_arg_slotno): Use
11230         FLOAT_TYPE_P to detect FP fields in structures.
11231         (function_arg_record_value_1): Likewise.
11232         (function_arg_record_value_2): Likewise.
11233
11234 2004-01-22  Jan Hubicka  <jh@suse.cz>
11235
11236         * function.c (allocate_struct_function): Do not initialize expr, emit
11237         and varasm.
11238         (prepare_function_start): Do it here.
11239         * c-parse.in (maybe_type_qual): Do not produce line number notes.
11240
11241 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
11242
11243         PR target/13559
11244         * config/sparc/sparc.c (function_arg_record_value_3): Revert
11245         to 'word_mode' once the first slot has been filled.
11246
11247 2004-01-22  Olivier Hainque  <hainque@act-europe.fr>
11248
11249         * config/sparc/sparc.c (function_arg_record_value_1): Fix
11250         computation of the number of integer registers required.
11251
11252 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
11253
11254         * config/i386/i386.md: Simplify certain comparisons of
11255         const_int.
11256
11257 2004-01-21  Andrew Pinski  <apinski@apple.com>
11258
11259         PR target/13785
11260         * config/rs6000/rs6000.md (call_value): Force operand
11261         1 not operand 0 into a register.
11262
11263 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
11264
11265         * cpperror.c, cpptrad.c, longlong.h, params.def, rtl.def,
11266         unwind-dw2-fde.h: Update copyright.
11267
11268 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11269
11270         * pa-protos.h: Update copyright.
11271         * pa.h: Likewise.
11272         * pa.md: Likewise.
11273
11274 2004-01-21  Caroline Tice  <ctice@apple.com>
11275
11276         PR target/12308
11277         * config/i386/i386.md (fix_truncxfdi2): Add clause to clobber
11278         flags register.
11279         (fix_truncdfdi2): Likewise.
11280         (fix_truncsfdi2): Likewise.
11281         (*fix_truncdi_1): Likewise.
11282         (fix_truncxfsi2): Likewise.
11283         (fix_truncdfsi2): Likewise.
11284         (fix_truncsfsi2): Likewise.
11285         (*fix_truncsi_1): Likewise.
11286         (fix_truncxfhi2): Likewise.
11287         (fix_truncdfhi2): Likewise.
11288         (fix_truncsfhi2): Likewise.
11289         (*fix_trunchi_1): Likewise.
11290
11291 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
11292
11293         * alias.c, basic-block.h, c-common.c, c-common.h,
11294         c-cppbuiltin.c, c-opts.c, c-pragma.c, c-pretty-print.c,
11295         calls.c, cfg.c, cfgcleanup.c, cfgrtl.c, cgraph.h, collect2.c,
11296         combine.c, cppcharset.c, cpphash.h, cppinit.c, cpplib.c,
11297         cpplib.h, cppmacro.c, crtstuff.c, cselib.c, cselib.h,
11298         defaults.h, df.c, dominance.c, et-forest.c, expmed.c, expr.c,
11299         expr.h, fix-header.c, function.h, gcc.c, gcse.c, genattrtab.c,
11300         genautomata.c, genconditions.c, genemit.c, genflags.c,
11301         gengtype.c, gengtype.h, genopinit.c, genrecog.c, gensupport.c,
11302         ggc-zone.c, graph.c, haifa-sched.c, input.h, integrate.c,
11303         langhooks-def.h, langhooks.c, langhooks.h, line-map.c,
11304         line-map.h, local-alloc.c, optabs.c, optabs.h, postreload.c,
11305         ra.h, recog.c, reg-stack.c, regmove.c, reload.c, reorg.c,
11306         rtl.c, sched-deps.c, sched-ebb.c, sdbout.c, system.h,
11307         target.h, targhooks.c, toplev.h, tree-inline.c, unwind-pe.h,
11308         unwind.h, varray.c, varray.h: Update copyright.
11309
11310 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
11311
11312         * config/h8300/coff.h: Update copyright.
11313         * config/h8300/elf.h: Likewise.
11314         * config/h8300/h8300-protos.h: Likewise.
11315         * config/h8300/h8300.c: Likewise.
11316         * config/h8300/h8300.h: Likewise.
11317         * config/h8300/h8300.md: Likewise.
11318
11319 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11320
11321         * fixinc/inclhack.def (hpux10_stdio_declarations, ultrix_const3,
11322         ultrix_locale, ultrix_stdlib, ultrix_strings, ultrix_sys_time,
11323         ultrix_unistd): New hacks.
11324         * fixinc/tests/base/stdio.h (HPUX10_STDIO_DECLARATIONS_CHECK,
11325         ULTRIX_CONST2_CHECK): Add checks.
11326         * fixinc/tests/base/stdlib.h (ULTRIX_STDLIB_CHECK): Likewise.
11327         * fixinc/tests/base/strings.h (ULTRIX_STRINGS2_CHECK): Likewise.
11328         * fixinc/tests/base/unistd.h (ULTRIX_UNISTD_CHECK): Likewise.
11329         * fixinc/tests/base/sys/time.h (ULTRIX_SYS_TIME_CHECK): Likewise.
11330         * fixinc/tests/base/locale.h: New file.
11331         * fixinc/fixincl.x: Rebuilt.
11332
11333 2004-01-21  Andreas Jaeger  <aj@suse.de>
11334             Michael Matz  <matz@suse.de>
11335
11336         * doc/extend.texi (Extended Asm): Clarify memory clobber.
11337
11338 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
11339
11340         * crtstuff.c (frame_dummy, __do_global_ctors_1): Call
11341         _Jv_RegisterClasses through a function pointer.
11342
11343 2004-01-21  Falk Hueffner  <falk@debian.org>
11344
11345         PR target/12898
11346         * config/alpha/alpha.c (alpha_emit_set_const_1): If
11347         no_new_pseudos, use gen_rtx_SET directly for SImode constants
11348         which need multiple instructions to emit.
11349
11350 2004-01-21  Inaoka Kazuhiro  <inaoka.kazuhiro@renesas.com>
11351
11352         * config/m32r/m32r.h (CPP_SPEC): Define.
11353
11354 2004-01-21  Zack Weinberg  <zack@codesourcery.com>
11355
11356         * c-decl.c (merge_decls): Kill different_binding_level and
11357         different_tu arguments; simplify throughout.
11358         (duplicate_decls): Likewise.
11359         (pushdecl, merge_translation_unit_decls): Update calls to
11360         duplicate_decls.
11361
11362 2004-01-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11363
11364         * Makefile.in (pretty-print.o): Depend on $(CONFIG_H) and
11365         $(SYSTEM_H).
11366         (print-rtl1.o): Depend on $(SYSTEM_H).
11367
11368 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
11369
11370         PR bootstrap/12730
11371         * configure.ac: Delete definition and subsitution of docdir.
11372         Add info, man, srcman and srcinfo to target hooks. Create doc/
11373         directory.
11374         * configure: Regenerate.
11375         * Makefile.in: Don't substitute docdir and delete all references
11376         throughout.
11377         (MAKEINFOFLAGS): Define.
11378         (stmp-docobjdir): Delete.
11379         (INFOFILES, MANFILES): Define.
11380         (info): Call lang.info, srcinfo and lang.srcinfo.
11381         (generated-manpages): Call lang.man, srcman and lang.srcman.
11382         (srcinfo, srcman): New rules to copy back files to source directory.
11383         (doc/%.info, doc/%.dvi, doc/%.1, doc/%.7): New implict rule.
11384         (install-man): Revamp rule.
11385         (clean): Update dvi directory.
11386         (distclean): Delete TAGS from front end directorys.
11387         (maintainer-clean): Delete all document files in source directory.
11388
11389         objc/Make-lang.in (objc.man, objc.info): Dummy entries.
11390         (objc.srcman, objc.srcinfo): Likewise.
11391
11392 2004-01-20  Bruce Korb  <bkorb@gnu.org>
11393
11394         * fixinc/inclhack.def(math_exception): bypass only for glibc.
11395         (matherr_decl): rename & relocate as exception_structure.
11396         This fix must precede the math_exception fix.
11397
11398 2004-01-20  Roger Sayle  <roger@eyesopen.com>
11399
11400         * fold-const.c (fold_convert): Rename to fold_convert_const.
11401         (fold_convert_const): Change arguments to take a tree_code,
11402         a type and the operand/expression to be converted.  Return
11403         NULL_TREE if no simplification is possible.  Add support for
11404         FIX_CEIL_EXPR and FIX_FLOOR_EXPR in addition to FIX_TRUNC_EXPR.
11405         (fold): Handle FIX_CEIL_EXPR and FIX_FLOOR_EXPR.
11406         Adjust call to fold_convert to match new fold_convert_const.
11407         Avoid modifying the tree passed to fold in-place.
11408
11409 2004-01-21  Alan Modra  <amodra@bigpond.net.au>
11410
11411         * config/rs6000/sysv4.h (DWARF2_FRAME_REG_OUT): Define.
11412         * dwarf2out.c (output_cfi): Map regs using DWARF2_FRAME_REG_OUT.
11413         * doc/tm.texi (DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Document.
11414
11415 2004-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11416
11417         * pa-protos.h (compute_frame_size): Use HOST_WIDE_INT for frame sizes.
11418         * pa.c (store_reg, store_reg_modify, load_reg, set_reg_plus_d):
11419         Likewise.  Handle frames larger than 0x7fffffff on 64-bit ports.
11420         (emit_move_sequence): Check scratch_reg first in various if statements.
11421         Extend source simplification to handle all 64-bit CONST_INTs.
11422         (pa_output_function_prologue): Use HOST_WIDE_INT_PRINT_DEC for printing
11423         frame size.
11424         (hppa_expand_prologue, hppa_expand_epilogue): Use HOST_WIDE_INT for
11425         frame offset calculations.
11426         * pa.h (NEW_HP_ASSEMBLER): Add comment.
11427         (MAX_LEGIT_64BIT_CONST_INT, MIN_LEGIT_64BIT_CONST_INT,
11428         LEGITIMATE_64BIT_CONST_INT_P): Define.
11429         (LEGITIMATE_CONSTANT_P): Use LEGITIMATE_64BIT_CONST_INT_P.  Treat
11430         any CONST_INT as legitimate during and after reload.
11431         (VAL_32_BITS_P, INT_32_BITS): Define.
11432         (LEGITIMIZE_RELOAD_ADDRESS): Handle large frame offsets.
11433
11434 2004-01-20  Jan Hubicka  <jh@suse.cz>
11435
11436         * emit-rtl.c (verify_rtx_sharing, copy_insn_1,
11437         emit_copy_of_insn_after, emit_copy_of_insn_after): Clobbers
11438         containing hard regs are shared.
11439         (gen_hard_reg_clobber): New function.
11440         (hard_reg_clobbers): New array.
11441         * genemit.c (gen_exp): Use gen_hard_reg_clobber.
11442         (copy_rtx): Do not copy clobbers containing hard regs.
11443         * rtl.h (gen_hard_reg_clobber): Declare.
11444
11445 2004-01-20  Jan Hubicka  <jh@suse.cz>
11446
11447         * varray.c:  Include hashtab.h
11448         (varray_descriptor): New structure.
11449         (hash_descriptor, eq_descriptor, varray_descriptor,
11450         print_statistics): New static functions
11451         (varray_init, varray_grow): Update statistics
11452         (dump_varray_statistics): New function.
11453         * varray.h (dump_varray_statistics): Declare.
11454         * toplev.c (finalize): Call it.
11455         * Makefile.in (varray.o): Add dependency.
11456
11457 2004-01-20  Jan Hubicka  <jh@suse.cz>
11458
11459         * cselib.c: Include alloc-pool.h
11460         (empty_vals, empty_elt_lists, empty_elt_loc_lists): Kill.
11461         (elt_loc_list_pool, elt_list_pool, cselib_val_pool): Declare.
11462         (new_elt_list, new_elt_loc_list, unchain_one_elt_list,
11463         unchain_one_elt_loc_list_pool, unchain_one_value,
11464         new_cselib_val): Simplify using allocpool.
11465         (cselib_init): Initialize allocpools.
11466         (cselib_finish): Finish allocpools.
11467         * Makefile.in (cselib.o): Depend on alloc-pool.h
11468
11469 2004-01-20  Richard Sandiford  <rsandifo@redhat.com>
11470
11471         * config/mips/mips.c (mips_load_call_address): Make the call insn
11472         use $gp if it could be calling a lazy binding stub.
11473
11474 2004-01-20  Kazu Hirata  <kazu@cs.umass.edu>
11475
11476         * config/s390/s390.c (TARGET_PROMOTE_FUNCTION_ARGS): Define.
11477         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
11478         (TARGET_STRUCT_VALUE_RTX): Likewise.
11479         * config/s390/s390.h (PROMOTE_FUNCTION_ARGS): Remove.
11480         (PROMOTE_FUNCTION_RETURN): Remove.
11481         (STRUCT_VALUE): Remove.
11482
11483 2004-01-20  Denis Chertykov  <denisc@overta.ru>
11484
11485         PR bootstrap/13735
11486         * config/avr/avr.h (BASE_REG_CLASS): Don't permit to use X
11487         register as pointer after reload.
11488
11489 2004-01-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11490
11491         PR optimization/12440
11492         * loop.c: Include ggc.h.
11493         (loop_optimize): Run garbage collector between optimization of loops.
11494         * Makefile.in (loop.o): Add GGC_H dependency.
11495
11496 2004-01-20  Hartmut Penner  <hpenner@de.ibm.com>
11497
11498         * gcc/config/rs6000/rs6000.c (function_arg) Handle
11499         vector register special in function without prototype.
11500         (function_arg_advance): Vector parameters get always
11501         GPRs allocated for the linux64 target.
11502
11503 2004-01-20  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
11504
11505         * config/m32r/m32r.h (TARGET_M32R2). Test for TARGET_M32R2_MASK
11506         not TARGET_M32RX_MASK.
11507
11508 2004-01-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
11509
11510         PR target/13557
11511         * config/sparc/sparc.c (function_arg): Reorder the cases.
11512
11513 2004-01-19  Per Bothner  <per@bothner.com>
11514
11515         Move cpp_reader's line_maps field to a shared global.
11516         * cpphash.h (cpp_reader):  Rename line_maps field to line_table
11517         and change the type to a pointer rather than a struct.
11518         * cppinit.c (cpp_push_main_field):  Adjust accordingly.
11519         * cpplib.c (do_include_common, _cpp_do_file_change, cpp_get_callbacks):
11520         Likewise.
11521         * cppfiles.c (validate_pch):  Likewise.
11522         * cppmacro.c (_cpp_warn_if_unused_macro, _cpp_builtin_macro_text):
11523         Likewise.
11524         * cpperror.c (print_location):  Likewise.
11525         * cpplib.h (cpp_create_reader):  New line_maps pointer parameter.
11526         * cppinit.c (cpp_create_reader):  Handle new parameter.
11527         (cpp_destroy):  Don't free line_maps - that's no longer our job.
11528         * input.h (line_table):  New variable.
11529         * toplev.c (line_table):  Declare variable.
11530         (general_init):  Initialize line_table.
11531         * c-opts.c (c_common_init_options):  Pass line_table to
11532         cpp_create_reader.
11533         * fix-header.c (read_scan_file):  New local variable line_table.
11534         Initialize, and pass it to cpp_create_reader.
11535         * Makefile.in (LIBS, LIBDEPS):  Add libcpp.a.
11536         (C_AND_OBJC_OBJS, fix-header):  Remove redundant libcpp.a.
11537
11538 2004-01-19  Per Bothner  <per@bothner.com>
11539
11540         Implement a cache for linemap_lookup.
11541         * line-map.h (struct_line_maps):  Add cache field.
11542         * line-map.c (linemap_init):  Zero cache field.
11543         (linemap_add):  Set cache field to offset of newly allocated map.
11544         (linemap_lookup):  Use and set cache field.
11545
11546 2004-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
11547
11548         PR optimization/13567
11549         * cse.c (cse_basic_block): Call cse_insn with a non-null
11550         libcall_insn for the last SET insn of a no-confilict block.
11551
11552 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
11553
11554         * Makefile.in (target_noncanonical, program_transform_name): Use
11555         immediate define instead of deferred.
11556         (GCC_INSTALL_NAME, GCC_TARGET_INSTALL_NAME, CPP_INSTALL_NAME,
11557         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, GCOV_INSTALL_NAME,
11558         GCCBUG_INSTALL_NAME): Define via a immediate $(shell) instead of
11559         deferred backquote.
11560
11561 2004-01-20  Joseph S. Myers  <jsm@polyomino.org.uk>
11562
11563         * c-decl.c (c_init_decl_processing): Set pedantic_lvalues to
11564         true unconditionally.
11565         * c-typeck.c (unary_complex_lvalue, pedantic_lvalue_warning):
11566         Remove.
11567         (build_unary_op, build_modify_expr): Don't handle extended
11568         lvalues.
11569         (build_component_ref, build_conditional_expr): Call non_lvalue
11570         instead of pedantic_non_lvalue.
11571         (build_c_cast): Don't condition use of non_lvalue on pedantic.
11572         * fold-const.c (fold): Don't check pedantic directly for
11573         COMPOUND_EXPR.  Ensure that results for COMPOUND_EXPR are
11574         passed to pedantic_non_lvalue.
11575         * doc/extend.texi: Remove documentation of extended lvalues.
11576
11577 2004-01-19  Roger Sayle  <roger@eyesopen.com>
11578
11579         PR optimization/5263
11580         * simplify-rtx.c (associative_constant_p): Delete.
11581         (simplify_associative_operation): Rewrite to linearize terms, and
11582         attempt to simplify new term against both left and right subterms.
11583         (simplify_binary_operation): Call swap_commutative_operands_p on
11584         op0 and op1, not trueop0 and trueop1.  Move the initialization of
11585         trueop0 and trueop1 down to where first needed.
11586         (simplify_relational_operation): Likewise.
11587         * rtlanal.c (commutative_operand_precedence): Also order constant
11588         operands using avoid_constant_pool_reference.
11589
11590 2004-01-19  Richard Henderson  <rth@redhat.com>
11591
11592         * config/alpha/alpha.c (aligned_memory_operand): Check MEM_ALIGN,
11593         don't check memory mode.
11594         (unaligned_memory_operand): Likewise.
11595         (reload_inqi, reload_inhi, reload_outqi, reload_outhi): Don't
11596         abort for op0 not MEM.
11597
11598         * config/alpha/alpha.c (alpha_expand_mov_nobwx): If the destination
11599         is not a reg, copy to a scratch first.
11600         (aligned_loadqi, aligned_loadhi, unaligned_loadqi, unaligned_loadhi,
11601         unaligned_loadqi_le, unaligned_loadqi_be, unaligned_loadhi_le,
11602         unaligned_loadhi_be): Expect op0 in DImode; don't SUBREG.
11603         (reload_inqi, reload_inhi): Fix mode of op0.
11604         (reload_inqi_help, reload_inhi_help, reload_outqi_help,
11605         reload_outhi_help): Likewise.  Use define_insn_and_split.
11606
11607         * config/alpha/alpha.md (call peepholes): Check for REG_NORETURN
11608         as well as $29 dead.
11609
11610 2004-01-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
11611
11612         * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): New.  Emit
11613         "tls_object" for thread-local objects.
11614         * config/sparc/sparc.c (sparc_elf_asm_named_section): Emit
11615         "#tls" for thread-local sections.
11616         * configure.ac (thread-local checks): Specify --fatal-warnings in
11617         every binutils-specific checks.  For sparc*-*-*, test whether the
11618         OS is Solaris and the tools are native and act accordingly.
11619         * configure: Rebuild.
11620
11621 2004-01-19  Jeff Law  <law@redhat.com>
11622
11623         * contrib.texi: Update Paolo Carlini's entry.  New entries for
11624         Jerry Quinn and Petur Runolfsson.
11625
11626 2004-01-19  Roger Sayle  <roger@eyesopen.com>
11627
11628         * config/i386/i386.md (*movhi_1, *movqi_1): When optimizing for
11629         size, don't use the larger zero-extending loads.
11630
11631 2004-01-19  Richard Henderson  <rth@redhat.com>
11632
11633         * alpha.h (HARD_REGNO_MODE_OK): Disallow SImode in FP regs.
11634         * alpha.md (UNSPEC_NT_LDA): Remove.
11635         (UNSPEC_CVTLQ, cvtlq): New.
11636         (extendsidi2_1): Rename from extendsidi2_nofix; remove f/f.
11637         (extendsidi2_fix): Remove.
11638         (extendsidi2 splitter): Use cvtlq.
11639         (extendsidi2 fp peepholes): Remove.
11640         (cvtql): Use SFmode instead of SImode.
11641         (fix_trunc?fsi): Update to match.
11642         (floatsisf2_ieee, floatsisf2, floatsidf2_ieee, floatsidf2): New.
11643         (movsi): Rename from movsi_nofix, remove f alternatives.
11644         (movsi_nt_vms): Similarly.
11645         (movsi_fix, movsi_nt_vms_fix): Remove.
11646         (nt_lda): Remove.
11647         * alpha.c (alpha_expand_prologue): Use adddi3, not nt_lda.
11648
11649 2004-01-19  Jan Hubicka  <jh@suse.cz>
11650
11651         * cgraph.c (cgraph_remove_node): Fix removal from linked list.
11652         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear next_needed
11653         list.
11654         (cgraph_remove_unreachable_nodes): New function
11655         (cgraph_decide_inlining_of_small_function): Fix pasto.
11656         (cgraph_decide_inlining_incrementally): Fix pasto.
11657         (cgrpah_decide_inlining): Likewise; remove unreachable nodes.
11658
11659 2004-01-19  Steven Bosscher  <stevenb@suse.de>
11660
11661         * gengtype.c (header_file): Make it static.
11662         (write_types_process_field, write_enum_defn): Minor whitespace fixes.
11663         * gengtype.h (header_file): No longer extern.
11664
11665 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
11666
11667         * defaults.h (CASE_VECTOR_PC_RELATIVE): Provide the default.
11668         * expr.c (CASE_VECTOR_PC_RELATIVE): Remove.
11669         * stmt.c (CASE_VECTOR_PC_RELATIVE): Likewise.
11670
11671 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
11672
11673         * stmt.c (HAVE_casesi): Define it not already defined.
11674         (HAVE_tablejump): Likewise.
11675         (expand_end_case_type): Resort to the binary tree method if
11676         neither casesi or tablejump is available.
11677
11678 2004-01-18  Daniel Jacobowitz  <drow@mvista.com>
11679
11680         * final.c (final_scan_insn): Make non-static again.
11681         * output.h (final_scan_insn): Re-add prototype.
11682         * config/arc/arc.c (arc_output_function_epilogue): Add NULL
11683         to final_scan_insn call.
11684         * config/cris/cris.c (cris_target_asm_function_epilogue): Likewise.
11685         * config/mips/mips.c (mips_output_conditional_branch): Likewise.
11686         * config/pa/pa.c (output_lbranch, output_call): Likewise.
11687         * config/sh/sh.c (print_slot): Likewise.
11688         * config/sparc/sparc.c (sparc_nonflat_function_epilogue): Likewise.
11689         (output_sibcall, sparc_flat_function_epilogue): Likewise.
11690
11691 2004-01-18  Jan Hubicka  <jh@suse.cz>
11692
11693         * basic-block.h (try_redirect_by_replacing_jump): Declare.
11694         * cfgcleanup.c (try_optimize_cfg): Use it.
11695         * cfgrtl.c (try_redirect_by_replacing_jump): Export.
11696         (rtl_redirect_edge_and_branch, cfg_layout_redirect_edge_and_branch):
11697         Kill hack.
11698         (cfg_layout_merge_blocks): Use try_redirect_by_replacing_jump.
11699
11700         Revert:
11701         2004-01-16  Geoffrey Keating  <geoffk@apple.com>
11702
11703                 * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
11704                 even after reload, just don't remove the actual jump tables.
11705
11706 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
11707
11708         * config/rs6000/rs6000.h (STRICT_ARGUMENT_NAMING): Remove.
11709
11710 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
11711
11712         * defaults.h (ASM_OUTPUT_ADDR_VEC_ELT): Fix the computation of
11713         the size of a pointer in bytes.
11714
11715 2004-01-18  Roger Sayle  <roger@eyesopen.com>
11716
11717         * builtins.c (expand_builtin_expect_jump): Fix thinko of reusing
11718         live "next" variable, which could lead to an infinite loop.
11719
11720 2004-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
11721
11722         * config/rs6000/altivec.h: Wrap C++ functions in extern "C++"
11723         block.
11724
11725         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
11726         Check for NULL in the chain and remove repeated code.
11727
11728 2004-01-18  Jan Hubicka  <jh@suse.cz>
11729
11730         * coverage.c (checksum_string): Rename to ...
11731         (coverage_checksum_string): ... this one, Use crc32_string; recognize
11732         names containing random number and zero the number out in order to get
11733         match.
11734
11735 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
11736
11737         * config/mips/mips.c (mips_got_alias_set): Mark for PCH.
11738
11739 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
11740
11741         * doc/c-tree.texi, doc/cpp.texi, doc/extend.texi,
11742         doc/frontends.texi, doc/gcov.texi, doc/gty.texi, doc/install.texi,
11743         doc/invoke.texi, doc/libgcc.texi, doc/md.texi, doc/rtl.texi,
11744         doc/sourcebuild.texi, doc/standards.texi, doc/tm.texi,
11745         doc/trouble.texi: Remove trailing whitespace.
11746
11747 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
11748
11749         PR target/7618
11750         * config/mips/mips.c: Include cfglayout.h.
11751         (TARGET_ASM_OUTPUT_MI_THUNK, TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
11752         (mips_unspec_offset_high): Add temporary register argument.
11753         (mips_load_call_address): New function, split out from...
11754         (mips_expand_call): ...here.
11755         (mips_output_cplocal): New function.
11756         (mips_output_function_prologue, mips_output_function_epilogue): Use it.
11757         (mips_emit_loadgp): New function, split out from...
11758         (mips_expand_prologue): ...here.
11759         (mips_output_mi_thunk): New function.
11760
11761 2004-01-17  Bernardo Innocenti  <bernie@develer.com>
11762
11763         * longlong.h (mc68020, __mc68030__, mc68030, __mc68040__, mc68040,
11764         mcpu32): Remove redundant checks for implied target predefines.
11765
11766 2004-1-17  Andrew Pinski  <pinskia@physics.uc.edu>
11767
11768         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
11769         Return type is unsigned int not int.
11770         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
11771         Likewise.
11772
11773 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
11774
11775         * doc/contrib.texi, doc/cppenv.texi, doc/extend.texi,
11776         doc/install.texi, doc/invoke.texi, doc/tm.texi: Consistently use
11777         "GNU/Linux" and "Microsoft Windows" terminology.
11778
11779 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
11780
11781         * doc/c-tree.texi, doc/compat.texi, doc/cpp.texi,
11782         doc/cppopts.texi, doc/extend.texi, doc/install.texi,
11783         doc/interface.texi, doc/invoke.texi, doc/libgcc.texi, doc/md.texi,
11784         doc/objc.texi, doc/rtl.texi, doc/tm.texi, doc/trouble.texi: Use
11785         @smallexample instead of @example.
11786
11787 2004-01-17  Ziemowit Laski  <zlaski@apple.com>
11788
11789         * objc/objc-act.c (build_objc_method_call): Use target
11790         hooks instead of macros to determine if ..._stret
11791         dispatchers should be used (NeXT runtime only).
11792
11793 2004-01-17  Roger Sayle  <roger@eyesopen.com>
11794
11795         * builtins.c (expand_builtin_expect_jump): Fix mistake in my
11796         last patch.  Use XEXP (x, 0) to get a LABEL_REF's CODE_LABEL.
11797
11798 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
11799
11800         * rtl.h (emit_insn_before_sameloc, emit_jump_insn_before_sameloc)
11801         (emit_call_insn_before_sameloc, emit_insn_after_sameloc)
11802         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): New
11803         macros.
11804         * reload1.c (emit_reload_insns): Use them.
11805         * emit-rtl.c (emit_insn_before_sameloc, emit_insn_after_sameloc)
11806         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): Check
11807         for NULL PATTERN.
11808
11809 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
11810
11811         * final.c (SEEN_BB, SEEN_NOTE, SEEN_EMITTED): Define.
11812         (final_scan_insn): Update to take an additional SEEN argument.  Emit
11813         a line note after the prologue.  Make static.
11814         (line_note_exists): Remove.
11815         (final): Don't initialize line_note_exists.  Update call to
11816         final_scan_insn.
11817         * output.h (final_scan_insn): Remove prologue.
11818         * function.c (set_insn_locators): Update comment.
11819         (thread_prologue_and_epilogue_insns): Add a comment.
11820
11821 2004-01-17  Andrew Pinski  <pinskia@physics.uc.edu>
11822
11823         PR target/10781
11824         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
11825         Prototype.
11826         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
11827         New function.
11828         * config/rs6000/linux64.h (ROUND_TYPE_ALIGN): Use it.
11829         * config/rs6000/aix.h (ROUND_TYPE_ALIGN): Likewise.
11830         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Likewise.
11831
11832 2004-01-17  Jan Hubicka  <jh@suse.cz>
11833
11834         * toplev.c (rest_of_handle_reorder_blocks): Fix pasto in previous
11835         commit.
11836
11837         * toplev.c (HAVE_conditional_execution): Provide default.
11838         (rest_of_handle_reorder_blocks): For conditional_execution target
11839         update liveness once after all transformations
11840         (rest_of_compilation): Do crossjumping before ce3.
11841
11842 2004-01-17  Geoffrey Keating  <geoffk@apple.com>
11843
11844         * alias.c (new_alias_set): Mark last_alias_set for PCH.
11845         (get_varargs_alias_set): Rename 'set' to 'varargs_set' and mark it
11846         for PCH.
11847         (get_frame_alias_set): Likewise, except rename it to 'frame_set'.
11848         * config/rs6000/rs6000.c (rs6000_sr_alias_set): Mark for PCH.
11849         (get_TOC_alias_set): Mark 'set' for PCH.
11850
11851 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
11852
11853         * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
11854         even after reload, just don't remove the actual jump tables.
11855
11856 2004-01-17  J. Brobecker  <brobecker@gnat.com>
11857
11858         * dwarf2out.c (is_subrange_type): Renamed from is_ada_subrange_type().
11859         Remove checks for is_ada() and TREE_UNSIGNED.
11860         (subrange_type_die): Emit a byte_size attribute if the subrange
11861         type size is different from the base type size.
11862         (modified_type_die): Replace call to is_ada_subrange_type() by
11863         call to is_subrange_type().
11864
11865 2004-01-16  Andrew Pinski  <pinskia@physics.uc.edu>
11866
11867         * config/sh/sh.c: Include ggc.h.
11868
11869 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
11870
11871         * Makefile.in (MD5_H): New.
11872         (fold-const.o): Depend on md5.h.
11873         (dwarf2out.o): Likewise.
11874         (cppfiles.o): Likewise.
11875         * cppfiles.c: Include md5.h.
11876         (should_stack_file): Check against list read from PCH file.
11877         (struct pchf_data): New.
11878         (pchf): New variable.
11879         (struct pchf_adder_info): New.
11880         (pchf_adder): New.
11881         (pchf_save_compare): New.
11882         (_cpp_save_file_entries): New.
11883         (_cpp_read_file_entries): New.
11884         (struct pchf_compare_data): New.
11885         (pchf_compare): New.
11886         (check_file_against_entries): New.
11887         * cpphash.h (_cpp_save_file_entries): Prototype.
11888         (_cpp_read_file_entries): Prototype.
11889         * cpppch.c (cpp_write_pch_state): Write the list of headers.
11890         (cpp_read_state): Read the list of headers.
11891
11892 2004-01-17  Jan Hubicka  <jh@suse.cz>
11893
11894         * c-common.c (c_estimate_num_insns_1): Handle builtin_constant_p and
11895         builtin_expect specially.
11896         * params.def (PARAM_MAX_INLINE_INSNS_AUTO): Set to 100.
11897         (PARAM_LARGE_FUNCTION_INSNS): Set to 3000.
11898         * invoke.texi (max-inline-insns-single): Set to 100.
11899         (large-function-insns): Set to 3000.
11900
11901 2004-01-16  Eric Christopher  <echristo@redhat.com>
11902             Chandrakala Chavva <cchavva@redhat.com>
11903
11904         * cppcharset.c (one_iso88591_to_utf8): New function.
11905         (convert_iso88591_utf8): Ditto. Use.
11906         (conversion_tab): Use.
11907         (_cpp_input_to_utf8): New function.
11908         (_cpp_init_iconv_buffer): Ditto.
11909         (_cpp_close_iconv_buffer): Ditto.
11910         * cpphash.h: Prototype new functions.
11911         (cpp_buffer): Add input_cset_desc.
11912         * cppinit.c: Add input_charset default.
11913         * cpplib.c (cpp_push_buffer): Support init and
11914         close of iconv.
11915         * cpplib.h (cpp_options): Add input_charset.
11916
11917 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
11918
11919         * system.h (ASM_OUTPUT_SECTION_NAME): Poison.
11920         * config/alpha/unicosmk.h: Remove a commented-out definition
11921         of ASM_OUTPUT_SECTION_NAME.
11922         * config/stormy16/stormy16.h: Likewise.
11923
11924 2004-01-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
11925
11926         * fixinc/inclhack.def (alpha___extern_prefix): Renamed to ...
11927         (alpha___extern_prefix_sys_stat): ... this.
11928         Apply to <sys/mount.h>, too.
11929         Tweak to match more variations.
11930         * fixinc/tests/base/sys/stat.h: Adapt for new hackname.
11931
11932         * fixinc/inclhack.def (alpha___extern_prefix,
11933         alpha___extern_prefix_standards): New hacks to obey
11934         __PRAGMA_EXTERN_PREFIX.
11935         * fixinc/tests/base/testing.h [ALPHA___EXTERN_PREFIX_CHECK]: New
11936         test.
11937         * fixinc/tests/base/standards.h: Likewise.
11938
11939         * fixincl/inclhack.def (alpha_pthread): Tweak to match more
11940         variations.
11941         New testcase.
11942         * fixinc/tests/base/pthread.h: Handle it.
11943
11944         * fixincl/inclhack.def (bad_lval): Sort file list.
11945         Add many missing files up to Tru64 UNIX V5.1B.
11946         * gcc/fixinc/tests/base/libgen.h: Renamed to ...
11947         * gcc/fixinc/tests/base/dirent.h: ... this to match new file list
11948         order.
11949
11950         * fixinc/fixincl.x: Regenerate.
11951
11952 2004-01-16  Mark Mitchell  <mark@codesourcery.com>
11953
11954         * version.c (version_string): Change to 3.5.0.
11955         * doc/include/gcc-common.texi (version-GCC): Likewise.
11956
11957 2004-01-16  Jan Hubicka  <jh@suse.cz>
11958
11959         * i386.md (load_tp_di): Fix pasto.
11960
11961         PR opt/13608
11962         * i386.c (ix86_compute_frame_layout): Fix for alloca on leaf function.
11963
11964         * c-pretty-print.c (pp_c_type_cast, pp_c_abstract_declarator,
11965         pp_c_character_constant, pp_c_floating_constant,
11966         pp_c_additive_expression, pp_c_shift_expression,
11967         pp_c_equality_expression, pp_c_and_expression,
11968         pp_c_exclusive_or_expression, pp_c_inclusive_or_expression,
11969         pp_c_logical_and_expression): Remove inline modifier.
11970         * dwarf2out.c (get_AT): Likewise.
11971         * et-forest.c (et_splay): Likewise.
11972         * ra.h (ra_alloc, ra_calloc): Likewise
11973
11974 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
11975
11976         * config/frv/frv-protos.h: Fix comment formatting.
11977         * config/frv/frv.c: Likewise.
11978         * config/frv/frv.h: Likewise.
11979         * config/frv/frv.md: Likewise.
11980         * config/frv/frvbegin.c: Likewise.
11981         * config/frv/frvend.c: Likewise.
11982
11983 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
11984
11985         * system.h (LINKER_DOES_NOT_WORK_WITH_DWARF2): Poison.
11986         * doc/tm.texi (PREFERRED_DEBUGGING_TYPE): Don't mention
11987         LINKER_DOES_NOT_WORK_WITH_DWARF2.
11988         (LINKER_DOES_NOT_WORK_WITH_DWARF2): Remove.
11989
11990 2004-01-16  J"orn Rennecke <joern.rennecke@superh.com>
11991
11992         PR 11864
11993         * postreload.c (reload_cse_simplify_operands): Don't remove
11994         implicit extension from LOAD_EXTEND_OP.
11995
11996 2004-01-16  Jan Hubicka  <jh@suse.cz>
11997
11998         PR opt/11350
11999         * cfgcleanup.c (try_optimize_cfg): Suppress tablejump removal
12000         after reload.
12001         * cfgrtl.c (rtl_can_merge_blocks, cfglayout_can_merge_blocks,
12002         rtl_try_redirect_by_replacing_branch): Likewise.
12003
12004 2004-01-15  Geoffrey Keating  <geoffk@apple.com>
12005
12006         PR pch/13689
12007         * alias.c (struct alias_set_entry): Mark for GC.
12008         (alias_sets): Make static, mark for GC.
12009         (record_alias_subset): Use GC to allocate alias structures.
12010         * varray.c (element): Make generic varrays GCed.
12011
12012         PR pch/13361
12013         * c-typeck.c (constructor_asmspec): Delete.
12014         (struct initializer_stack): Delete field 'asmspec'.
12015         (start_init): Delete saving of asmspec.
12016         (finish_init): Don't update constructor_asmspec.
12017         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
12018         * stmt.c (expand_asm): Duplicate strings from tree.
12019         (expand_asm_operands): Likewise.
12020         * tree.c (tree_size): Update computation of size of STRING_CST.
12021         (make_node): Don't make STRING_CST nodes.
12022         (build_string): Allocate string with tree node.
12023         * tree.def (STRING_CST): Update comment.
12024         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
12025         (tree_string): Place contents of string in tree node.
12026         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
12027         from tree.
12028
12029         * config/rs6000/rs6000.c (rs6000_va_arg): No need to special-case
12030         altivec operands.
12031
12032 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
12033
12034         * c-common.h: Fix comment formatting.
12035         * c-cppbuiltin.c: Likewise.
12036         * c-pragma.c: Likewise.
12037         * calls.c: Likewise.
12038         * collect2.c: Likewise.
12039         * cppcharset.c: Likewise.
12040         * cpptrad.c: Likewise.
12041         * dbxout.c: Likewise.
12042         * defaults.h: Likewise.
12043         * dwarf2out.c: Likewise.
12044         * fold-const.c: Likewise.
12045         * genautomata.c: Likewise.
12046         * genconditions.c: Likewise.
12047         * genflags.c: Likewise.
12048         * gengtype.c: Likewise.
12049         * integrate.c: Likewise.
12050         * loop.c: Likewise.
12051         * predict.c: Likewise.
12052         * sdbout.c: Likewise.
12053
12054 2004-01-15  Zack Weinberg  <zack@codesourcery.com>
12055
12056         * config/ia64/ia64.md (*movti_internal): C output template
12057         extracted to ia64.c.
12058         (*movti_internal_reg): Delete.
12059         (reload_inti, reload_outti): Use the correct mode on operand 2
12060         in the first place, don't fix it up in the output template.
12061         (movtf, reload_ointf, reload_outtf): New expanders.
12062         (*movtf_internal): New define_insn_and_split.
12063         * config/ia64/ia64.c (ia64_split_timode): Rename to ia64_split_tmode;
12064         make static; do not hand TFmode CONST_DOUBLEs to split_double.
12065         (ia64_split_tmode_move): New function, body mostly pulled
12066         from ia64.md:*movti_internal.
12067         (ia64_function_arg_words): New function, extracted common
12068         logic from ia64_function_arg et seq.
12069         (ia64_function_arg_offset): Likewise.  Handle correctly the
12070         case of a scalar quantity 16 bytes wide with only 8-byte alignment.
12071         (ia64_function_arg, ia64_function_arg_partial_nregs)
12072         (ia64_function_arg_advance): Use ia64_function_arg_words and
12073         ia64_function_arg_offset.
12074         (ia64_function_value): TCmode does not go in float regs.
12075         (ia64_secondary_reload_class): Also handle TFmode.
12076         * config/ia64/ia64-protos.h: Remove prototype for
12077         ia64_split_timode; add prototype for ia64_split_tmode_move.
12078
12079 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
12080
12081         * Makefile.in (MAINT): Make it an immediate assignment.
12082
12083 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
12084
12085         * config/m32r/m32r.md: Remove useless calls to gen_lowpart.
12086
12087 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
12088
12089         * config/h8300/coff.h: Replace Hitachi with Renesas.
12090         * config/h8300/elf.h: Likewise.
12091         * config/h8300/h8300-protos.h: Likewise.
12092         * config/h8300/h8300.c: Likewise.
12093         * config/h8300/h8300.h: Likewise.
12094         * config/h8300/h8300.md: Likewise.
12095         * config/h8300/lib1funcs.asm: Likewise.
12096
12097 2004-01-15  Andrew Pinski  <apinski@apple.com>
12098
12099         * config/rs6000/rs6000.c (uses_TOC): Wrap #if TARGET_ELF
12100         around it.
12101
12102 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
12103
12104         * config/h8300/h8300.c (h8300_return_in_memory): New.
12105         (TARGET_STRUCT_VALUE_RTX): Likewise.
12106         (TARGET_RETURN_IN_MEMORY): Likewise.
12107         * config/h8300/h8300.h (STRUCT_VALUE): Remove.
12108         (RETURN_IN_MEMORY): Likewise.
12109
12110 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
12111
12112         PR optimization/13375
12113         * gcse.c (handle_avail_expr): Just return if the source is not a
12114         single set.
12115
12116 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
12117             Daniel Jacobowitz  <drow@mvista.com>
12118
12119         * arm/lib1funcs.asm (ARM_FUNC_START): Correct interworking case.
12120         (EQUIV): Define.
12121         (ARM_FUNC_ALIAS): New macro.
12122         * arm/ieee754-df.S (gedf2, ledf2, nedf2, eqdf2): Use it.
12123         * arm/ieee754-sf.S (gesf2, lesf2, nesf2, eqsf2): Use it.
12124
12125 2004-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12126
12127         PR optimization/12372
12128         * calls.c (expand_call): Add call_fusage data for stack arguments in
12129         constant calls.
12130
12131 2004-01-15  Alan Modra  <amodra@bigpond.net.au>
12132
12133         * config/rs6000/rs6000.c (uses_TOC): Correct comment.  Make static.
12134         (rs6000_elf_declare_function_name): Formatting.
12135         * config/rs6000/rs6000-protos.h (uses_TOC): Remove declaration.
12136
12137 2004-01-15  Jan Hubicka  <jh@suse.cz>
12138
12139         PR bootstrap/13692
12140         * sched-deps.c (sched_analyze_1, sched_analyze_2): Fix thinko in
12141         previous patch.
12142
12143 2004-01-15  Richard Henderson  <rth@redhat.com>
12144
12145         * config/alpha/alpha.h (REG_ALLOC_ORDER): Reorder fp regs after
12146         integer regs of the same call-savedness.
12147
12148 2004-01-15  Andreas Schwab  <schwab@suse.de>
12149
12150         PR bootstrap/13562
12151         * config/m68k/m68k.c (output_move_const_into_data_reg): Clear cc
12152         status for NOTB/NOTW/NEGW methods.
12153
12154 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
12155
12156         * doc/invoke.texi: Update dump file names.  Fix a typo.
12157
12158 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
12159
12160         * builtins.c (expand_builtin_va_end): Don't use
12161         EXPAND_BUILTIN_VA_END.
12162         * system.h (EXPAND_BUILTIN_VA_END): Poison.
12163         * config/d30v/d30v.h: Remove a commented-out definition of
12164         EXPAND_BUILTIN_VA_END.
12165         * config/stormy16/stormy16.h: Likewise.
12166
12167 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
12168
12169         * system.h (STRUCT_VALUE_INCOMING_REGNUM): Poison.
12170         * targhooks.c (default_struct_value_rtx): Don't use
12171         STRUCT_VALUE_INCOMING_REGNUM.
12172
12173 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
12174
12175         PR bootstrap/12744
12176         * configure.in: Revamp enable-generated-files-in-srcdir rule to define
12177         GENINSRC and not parsedir.  Define srcextra as a langhook.
12178         * configure: Regenerate.
12179         * Makefile.in: Suppress default .l.c rule.  Don't substitute
12180         parsedir and delete all references throughout.  Conditionally define
12181         rule for srcextra dependent on GENINSRC.
12182         (stmp-docobjdir): Delete.
12183         (c-parse.o, gengtype-lex.o, gengtype-yacc.o): Use implicit build rule.
12184         (srcextra): Copy c-parse.y, c-parse.c, gengtype-lex.c, gengtype-yacc.c,
12185         and gengtype-yacc.h back to source directory.
12186         (maintainer-clean): Delete all parse files in source directory.
12187         (distclean): Delete generated files.
12188
12189         * objc/Make-lang.in (objc-parse.o): Use implicit build rule.
12190         (objc-parse.c, objc-parse.y): Don't use parsedir.
12191         (objc.srcextra): Copy objc-parse.y and objc-parse.c back to source
12192         directory if requested.
12193         (po-generated): Don't use parsedir.
12194         (objc.maintainer-clean): Delete above files from source directory.
12195
12196 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
12197
12198         * doc/tm.texi (FUNCTION_VALUE): Fix a typo.
12199
12200 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
12201
12202         * doc/tm.texi: Replace RETURN_IN_MEMORY with
12203         TARGET_RETURN_IN_MEMORY.
12204
12205 2004-01-15  Jan Hubicka  <jh@suse.cz>
12206
12207         * builtins.c (std_expand_builtin_va_arg): Align operand when needed.
12208         * i386.c (init_cumulative_args): Set warn_sse; fix handling of variadic
12209         functions accepting SSE arguments
12210         (function_arg): Warn only when asked to warn.
12211         * i386.h (ix86_args): Add warn_sse/warn_mmx fiels.
12212
12213 2004-01-14  Joseph S. Myers  <jsm@polyomino.org.uk>
12214
12215         * c-parse.in (stmts_and_decls): Make label at end of compound
12216         statement a hard error.
12217
12218 2004-01-14  Jan Hubicka  <jh@suse.cz>
12219
12220         * cgraph.c (create_edge): Use local.redefined_extern_inline.
12221         * cgraph.h (cgraph_local_info): Sort fields by size; add
12222         redefined_extern_inline
12223         (cgraph_global_info): Sort fields by size.
12224         (cgraph_node): Likewise.
12225         * cgraphunit.c (cgraph_finalize_function): Se
12226         local.redefined_extern_inline on redefinition.
12227         (cgraph_analyze_function): Use it; fix formating.
12228
12229 2004-01-14  Jan Hubicka  <jh@suse.cz>
12230
12231         PR c++/10776
12232         * sched-deps.c (trye_dependency_cache, anti_dependency_cache,
12233         outptu_dependency_cache, forward_dependency_cahe): Trun to vectors of
12234         bitmaps
12235         (cache_size): New variable
12236         (add_dependence): Update use; canonize early memory locations
12237         (sched_analyze_1): Likewise.
12238         (sched_analyze_2): Likewise.
12239         (init_dependency_caches): Initialize bitmaps.
12240         (free_dependency_caches): Free bitmaps
12241
12242 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
12243
12244         * calls.c: Replace STRICT_ARGUMENT_NAMING in comments with
12245         targetm.calls.strict_argument_naming().
12246         * target.h: Likewise.
12247
12248 2004-01-14  Richard Henderson  <rth@redhat.com>
12249
12250         PR debug/13231
12251         * dwarf2out.c (dwarf2out_stack_adjust): Skip prologue and epilogue
12252         instructions.
12253
12254 2004-01-14  Richard Henderson  <rth@redhat.com>
12255
12256         PR c++/12491
12257         * except.c (struct eh_region): Add u.fixup.resolved.
12258         (resolve_one_fixup_region): Split out from ...
12259         (resolve_fixup_regions): ... here.
12260
12261 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
12262
12263         * config/mn10300/mn10300.h (STRUCT_VALUE): Change to 0.
12264
12265 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
12266
12267         * config/alpha/alpha.h (STRUCT_VALUE): Remove.
12268         * config/alpha/vms.h (STRUCT_VALUE_REGNUM): Remove #undef.
12269         (STRUCT_VALUE): Remove.
12270
12271 2004-01-14  Steven Bosscher  <stevenb@suse.de>
12272
12273         * system.h: Poison PROMOTED_MODE
12274         * integrate.c (expand_inline_function): Don't mention the
12275         PROMOTED_MODE.
12276         * loop.c (update_giv_derive): Same.
12277         * tree.h (DECL_RTL): Same.
12278
12279 2004-01-14  J"orn Rennecke <joern.rennecke@superh.com>
12280
12281         PR target/9365
12282         * sh.c (gen_block_redirect): Add special handling of RETURN.
12283         (gen_far_branch) Don't call gen_stuff_delay_slot if there is no
12284         far branch target (i.e. it's a return).
12285
12286 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
12287
12288         * regrename.c (find_oldest_value_reg): Fix a warning.
12289
12290 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
12291
12292         PR bootstrap/12527
12293         * config.gcc (arm*-*-linux*): Don't include unknown-elf.h in tm_file.
12294         Move linux-gas.h and linux-elf.h before aout.h.
12295         * arm/arm.h (INITIALIZE_TRAMPOLINE): Only define if not already.
12296         * arm/linux-elf.h (SUBTARGET_CPU_DEFAULT): Define.
12297
12298 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
12299
12300         * config/m32r/m32r.md: Use GEN_INT instead of gen_rtx
12301         (CONST_INT, VOIDmode, ...).
12302
12303 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
12304
12305         * regrename.c (find_oldest_value_reg): If the replacement uses
12306         multiple hard registers, check that all of them are in CLASS.
12307
12308 2004-01-14  Jan Hubicka  <jh@suse.cz>
12309
12310         * alias.c (get_alias_set):  Initialize alias set to 0 when subset is
12311         impossible.
12312
12313 2004-01-14  Kelley Cook  <kcook@gcc.gnu.org>
12314
12315         * Makefile.in: Define MAINT from --enable-maintainer-mode.
12316
12317 2004-01-14  Hartmut Penner  <hpenner@de.ibm.com>
12318
12319         * gcc/config/rs6000/rs6000.c (rs6000_stack_info)
12320         Calculate always vrsave_mask if TARGET_ALTIVEC.
12321         (rs6000_emit_prologue): Emit code for vrsave
12322         only if TARGET_ALTIVEC_VRSAVE.
12323         (rs6000_emit_epilogue): Likewise.
12324
12325 2004-01-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
12326
12327         * config/sparc/sparc.md (tie_add32): Fix pasto.
12328         (tie_add64): Likewise.
12329
12330 2004-01-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12331
12332         * config/i386/i386.md (*addqi_1_slp): Do not access operands[2].
12333
12334 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
12335
12336         * config/iq2000/iq2000-protos.h: Fix comment formatting.
12337         * config/iq2000/iq2000.c: Likewise.
12338         * config/iq2000/iq2000.md: Likewise.
12339
12340 2004-01-14  J. Brobecker  <brobecker@gnat.com>
12341
12342         * dwarf2out.c (is_ada_subrange_type): No longer check the TYPE_NAME.
12343         (subrange_type_die): Add handle for nameless subrange types.
12344
12345 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
12346
12347         * config/h8300/h8300-protos.h: Replace do_movsi with
12348         h8300_expand_movsi.
12349         * config/h8300/h8300.c (do_movsi): Change to
12350         h8300_expand_movsi.
12351         * config/h8300/h8300.md (movsi): Replace do_movsi with
12352         h8300_expand_movsi.
12353         (movsf): Likewise.
12354
12355 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
12356
12357         * config/h8300/h8300.c (dosize): Change to
12358         h8300_emit_stack_adjustment.  Update callers.
12359
12360 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
12361
12362         * config/h8300/h8300.md (movstrictqi): Add an alternative with
12363         the source being post_inc.  Tighten the predicate for the
12364         destination to register_operand.
12365         (movstricthi): Likewise.
12366
12367 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
12368
12369         * system.h (SHARED_BSS_SECTION_ASM_OP): Poison.
12370         * varasm.c (bss_section): Don't use SHARED_BSS_SECTION_ASM_OP.
12371         * doc/tm.texi (SHARED_BSS_SECTION_ASM_OP): Remove.
12372
12373 2004-01-14  Jan Hubicka  <jh@suse.cz>
12374
12375         Partial fix PR c++/12850
12376         * cgraphunit.c (cgraph_finalize_function): Always ggc_collect when
12377         at zero nest level.
12378
12379 2004-01-13  Bernardo Innocenti  <bernie@develer.com>
12380
12381         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Add missing "argptr"
12382         pseudo-register.
12383
12384 2004-01-13  Devang Patel <dpatel@apple.com
12385
12386         PR debug/7078
12387         * dbxout.c (dbxout_symbol_name): Emit mangled names for
12388         NAMESPACE_DECL memebers.
12389
12390 2004-01-13  Andrew Pinski  <pinskia@physics.uc.edu>
12391
12392         PR c++/12709
12393         * c-common.c (finish_fname_decls): Use the chain only if the
12394         tree is an expr_stmt.
12395
12396 2004-01-13  Vladimir Makarov  <vmakarov@redhat.com>
12397
12398         * rtl.def: Add comment about new option in automata_option.
12399
12400         * genautomata.c (PROGRESS_OPTION): New macro.
12401         (progress_flag): New global variable.
12402         (gen_automata_option): Process `progress'.
12403         (transform_insn_regexps, check_unit_distributions_to_automata,
12404         make_automaton, NDFA_to_DFA, build_automaton, create_automata,
12405         expand_automata, write_automata): Print about the progress only if
12406         progress_flag.  Remove fflush.
12407         (initiate_automaton_gen): Process command line flag `-progress'.
12408
12409         * doc/md.texi: Describe the new option.
12410
12411 2004-01-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12412
12413         * cfg.c (dump_bb): Dump entry edges.
12414
12415 2004-01-13  Richard Earnshaw  <rearnsha@arm.com>
12416
12417         * arm.c (thumb_legitimate_address_p): Only allow constant pool
12418         references from SImode.
12419         * arm.md (thumb_movhi_insn): Don't allow minipool references.
12420
12421 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
12422
12423         * system.h (TEXT_SECTION): Poison.
12424         * varasm.c (text_section): Don't use TEXT_SECTION.
12425         * config/sh/sh.c (sh_file_start): Fix a comment typo.
12426         * doc/tm.texi (TEXT_SECTION): Remove.
12427
12428 2004-01-13  Ben Elliston  <bje@wasabisystems.com>
12429
12430         * doc/rtl.texi (Vector Operations): Remove defunct vec_const item.
12431
12432 2004-01-12  James E Wilson  <wilson@specifixinc.com>
12433
12434         * unwind-libunwind.c: Delete.
12435
12436 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
12437
12438         PR 13656
12439         * c-decl.c (diagnose_mismatched_decls): Whenever newtype or
12440         oldtype is set, set *newtypep or *oldtypep too.  Do not set
12441         them at the very end.
12442         (validate_proto_after_old_defn): Restructure for comprehensibility;
12443         make error messages clearer.
12444
12445 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
12446
12447         * varray.h (VARRAY_POP): Add checking variant, aborts on underflow.
12448         (VARRAY_TOP): Use VARRAY_CHECK so the access is bounds-checked.
12449         * varray.c: No need to prototype error.
12450         (varray_check_failed): Wrap long string onto two lines.
12451         (varray_underflow): New function.
12452
12453 2004-01-13  Steven Bosscher  <stevenb@suse.de>
12454
12455         PR c++/13376
12456         * function.h (struct function): Kill `name' field.
12457         (current_function_name): Make it an extern function.
12458         * function.c (current_function_name): New function.
12459         * graph.c: Update all uses of current_function_name.
12460         * gcse.c: Likewise.
12461         * config/alpha/alpha.c, config/avr/avr.c, config/c4x/c4x.c,
12462         config/mips/mips.c, config/pdp11/pdp11.c: Likewise.
12463         * config/ip2k/ip2k.c (function_prologue): Use MAIN_NAME_P
12464         instead of a strcmp with "main".
12465
12466 2004-01-13  Jan Hubicka  <jh@suse.cz>
12467
12468         * c-decl.c (diagnose_mismatched_decls):  Fix warning calls.
12469
12470         * cgraphunit.c (cgraph_optimize_function):  Always do
12471         optimize_inline_calls when there is always_inline callee.
12472         (cgraph_decide_inlining): Fix formating.
12473         * tree-inline.c (inlinable_function_p): Do sorry for alwaysinline
12474         functions.
12475         (expand_call_inline): Likewise.
12476         * toplev.h (sorry): Fix prototype.
12477
12478 2004-01-12  Roger Sayle  <roger@eyesopen.com>
12479
12480         * builtins.c (expand_builtin_expect_jump): Simplify logic. Handle
12481         conditional jumps that drop through to unconditional jumps or the
12482         end of the sequence.
12483
12484 2004-01-13  Jan Hubicka  <jh@suse.cz>
12485
12486         * alias.c (new_alias_set): Construct the alias_set varray.
12487         (init_alias_once): Don't do it here.
12488
12489 2004-01-12  Marc Espie <espie@openbsd.org>
12490
12491         * system.h: handle YYBYACC like YYBISON.
12492
12493 2004-01-12  Jonathan Merriman <jonm@dualitymedia.com>
12494
12495         PR target/10847
12496         * config.gcc: No longer includes conflicting header sparc/sol2.h when
12497         building on sparc64-*-openbsd*.
12498
12499 2004-01-12  Andrew Pinski  <pinskia@physics.uc.edu>
12500
12501         PR debug/13539
12502         * dbxout.c (dbxout_type): Protected inheritance is not
12503         private but protected.
12504
12505 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
12506
12507         * config/mips/mips.c (mips_symbolic_constant_p): Revert last patch.
12508
12509 2004-01-12  Kazu Hirata  <kazu@cs.umass.edu>
12510
12511         PR optimization/12508.
12512         * combine.c (try_combine): Remove a dead set in a parallel
12513         even if its destination is a subreg.
12514
12515         Revert:
12516         2003-06-03  Kazu Hirata  <kazu@cs.umass.edu>
12517         * combine.c (simplify_set): Don't move a subreg in SET_SRC to
12518         SET_DEST if WORD_REGISTER_OPERATIONS is not defined.
12519
12520 2004-01-12  Geoffrey Keating  <geoffk@apple.com>
12521
12522         * real.c: Update copyright date.
12523         * emit-rtl.c: Likewise.
12524         * rtl.h: Likewise.
12525         * dwarf2out.c: Likewise.
12526         * config/rs6000/darwin-ldouble.c: Likewise.
12527         * config/rs6000/rs6000.md: Likewise.
12528
12529 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
12530
12531         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Add AIX
12532         TFmode to SImode libfuncs.
12533
12534 2004-01-12  Roger Sayle  <roger@eyesopen.com>
12535
12536         PR middle-end/11397
12537         * varasm.c (assemble_alias): Remove weak aliases from weak_decls.
12538
12539 2004-01-12  Jan Hubicka  <jh@suse.cz>
12540
12541         PR opt/12826
12542         * loop.c (insert_loop_mem): Preffer VOLATILE memory references to be
12543         stored.
12544
12545         PR opt/12863
12546         * cfgcleanup.c (label_is_jump_target_p): Move to...
12547         * rtlanal.c (label_is_jump_target_p): ... here.
12548         * cfgrtl.c (cfg_layout_redirect_edge_and_branch):  Fix redirecting of fallthru
12549         edges unified with branch edges.
12550
12551 2004-01-12  Richard Earnshaw  <rearnsha@arm.com>
12552
12553         * simplify-rtx.c (simplify_immed_subreg): Correctly extract the
12554         high word of an integral CONST_DOUBLE.
12555
12556 2004-01-12  Paul Brook  <paul@codesourcery.com>
12557
12558         * simplify-rtx.c (simplify_plus_minus): Always generate canonical form.
12559
12560 2004-01-12  J"orn Rennecke <joern.rennecke@superh.com>
12561
12562         PR target/13585
12563         * sh-protos.h (check_use_sfunc_addr): Declare.
12564         * sh.c (extract_sfunc_addr, check_use_sfunc_addr): New functions.
12565         * sh.md (use_sfunc_addr): Use check_use_sfunc_addr in insn predicate.
12566
12567 2004-01-12  Jan Hubicka  <jh@suse.cz>
12568
12569         * alias.c:  Invlude varray.h
12570         (alias_sets): Turn into varray.
12571         (get_alias_set_entry): Use VARRAY; mark inline.
12572         (mems_in_disjoint_alias_sets_p): Mark inline.
12573         (record_alias_subset): Use varray.
12574         (init_alias_once): Initialize varray.
12575         (new_alias_set): Grow array.
12576         * varray.c: Make VARRAY_GENERIC_PTR non GTYized.
12577
12578 2004-01-12  Jan Hubicka  <jh@suse.cz>
12579
12580         Partial fix for PR opt/10776 II
12581         * cselib.c: Include params.h
12582         (cselib_invalidate_mem):  Limit amount of nonconflicting memory
12583         locations.
12584         * params.def (PARAM_MAX_CSELIB_MEMORY_LOCATIONS): New.
12585         * Makefile.in (cselib.o): Depend on params.h
12586
12587 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
12588
12589         * combine.c (combine_simplify_rtx): Don't pass VOIDmode to
12590         simplify_unary_operation if the operand has a known mode.
12591
12592 2004-01-12  Hartmut Penner  <hpenner@de.ibm.com>
12593
12594         PR target/13534
12595         * gcc/config/rs6000/rs6000.c (word_offset_memref_operand): New
12596         predicate to handle 'ld' conform addresses.
12597         * gcc/config/rs6000/rs6000.h (EXTRA_CONSTRAINT): New 'Y'
12598         contraint.
12599         (EXTRA_MEMORY_CONSTRAINT): Tell reload which constraint
12600         are memory contraints.
12601         * gcc/config/rs6000/rs6000-protos.h (word_offset_memref_operand):
12602         New prototype.
12603         * gcc/config/rs6000/rs6000.md (*movdf_hardfloat64):
12604         Change 'o' to 'Y' constraint.
12605         (*movdf_softfloat64): Ditto.
12606
12607 2004-01-12  Bernardo Innocenti  <bernie@develer.com>
12608
12609         * gcc/config/m68k/m68k.md: Switch from the "*..." syntax to the
12610         brace-enclosed syntax in all C output statements.
12611
12612 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
12613
12614         PR target/13401
12615         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
12616         Objective-C language type value is 14.
12617
12618 2004-01-12  Markus F.X.J. Oberhumer  <markus@oberhumer.com>
12619
12620         PR c/12148
12621         * config/m68k/fpgnulib.c: Fix `-mshort' bugs: Use `long' instead of
12622         `int' in a number of places to make sure we always have a SImode
12623         and not a HImode.  Add a 'L' suffix to a number of constants.
12624
12625 2004-01-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12626
12627         * pa.c: Don't include obstack.h.
12628
12629         * pa.md: Correct constraint in pattern for loading PIC label address.
12630
12631 2004-01-11  Kaz Kojima  <kkojima@gcc.gnu.org>
12632
12633         * config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine
12634          before defining.
12635
12636 2004-01-11  Steven Bosscher  <stevenb@suse.de>
12637
12638         PR fortran/9972
12639         * toplev.c (rest_of_handle_inline): Also consider functions
12640         for deferral if the language is GNU F77.
12641
12642 2004-01-11  Zack Weinberg  <zack@codesourcery.com>
12643
12644         * c-decl.c (diagnose_arglist_conflict): Add missing space to
12645         diagnostic messages.
12646
12647 2004-01-11  Jakub Jelinek  <jakub@redhat.com>
12648
12649         PR middle-end/13392
12650         * builtins.c (expand_builtin_expect_jump): Handle conditional jumps
12651         to drop through label.  Don't fall back to SCC even when conditional
12652         jump has not been found.
12653
12654 2004-01-11  Jan Hubicka  <jh@suse.cz>
12655
12656         * invoke.texi: Fix syntax error in previous patch.
12657
12658         Partial fix for PR opt/10776
12659         * Makefile.in (reload.o): Include param.h
12660         * params.def (PARAM_MAX_RELOAD_SEARCH_INSNS): New parameter.
12661         * reload.c: Include params.h.
12662         (find_equiv_reg): Work limiting check.
12663         * invoke.texi: Document.
12664
12665 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
12666
12667         * config/mips/mips.c (mips_symbolic_constant_p): Don't allow
12668         out-of-bounds accesses to string constants.  Simplify mips16
12669         case accordingly.
12670
12671 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
12672
12673         PR optimization/13469
12674         * toplev.c (rest_of_compilation): Call purge_all_dead_edges after
12675         reload_cse_regs (-fnon-call-exceptions only).
12676
12677 2004-01-11  Kazu Hirata  <kazu@cs.umass.edu>
12678
12679         * config/mcore/lib1.asm: Fix comment formatting.
12680         * config/mcore/mcore-elf.h: Likewise.
12681         * config/mcore/mcore.c: Likewise.
12682         * config/mcore/mcore.h: Likewise.
12683         * config/mcore/mcore.md: Likewise.
12684
12685 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
12686
12687         * c-decl.c (duplicate_decls): Break apart into...
12688         (diagnose_arglist_conflict, validate_proto_after_old_defn)
12689         (locate_old_defn, diagnose_mismatched_decls, merge_decls):
12690         ... these new functions.  Restructure for comprehensibility.
12691         Remove various archaic special cases.  Always report the
12692         location of the previous declaration when a diagnostic is issued.
12693         (redeclaration_error_message): Fold into diagnose_mismatched_decls.
12694         (match_builtin_function_types): Delete unnecessary forward declaration.
12695
12696 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
12697
12698         * genautomata.c (make_automaton, NDFA_to_DFA):
12699         Print progress bars with '.' characters instead of '*'.
12700         (build_automaton): Change notes to match.
12701
12702 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
12703
12704         * config/m32r/m32r.md: Use define_constants for unspec and
12705         unspec_volatile.
12706
12707 2004-01-10  Jan Hubicka  <jh@suse.cz>
12708
12709         PR opt/11635
12710         * expr.c (expand_expr_real):  More curefully expand union casts.
12711
12712 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
12713
12714         * config/m32r/m32r.md (flush_icache): Use 1 for
12715         unspec_volatile.
12716
12717 2004-01-10  David Edelsohn  <edelsohn@gnu.org>
12718             James E Wilson  <wilson@specifixinc.com>
12719
12720         PR debug/12860
12721         * dbxout.c (dbxout_symbol): Remove initialization of
12722         current_sym_code, current_sym_value, and current_sym_addr.
12723         (dbxout_symbol_location): Same.
12724         (dbxout_prepare_symbol): Zero current_sym_code,
12725         current_sym_value, and current_sym_addr.
12726
12727 2004-01-10  Richard Sandiford  <rsandifo@redhat.com>
12728
12729         * tree.c (get_unwidened): Reorder conditions so that the null pointer
12730         check is done first.
12731
12732 2004-01-09  Eric Christopher  <echristo@redhat.com>
12733
12734         * toplev.c (rest_of_handle_cfg): Add reg_scan pass
12735         if we're running mark_constant_function.
12736
12737 2004-01-09  Jeff Bailey  <jbailey@nisa.net>
12738
12739         PR target/12561
12740         * config/t-gnu: Rename SYSTEM_HEADER_DIR to NATIVE_SYSTEM_HEADER_DIR.
12741
12742 2004-01-09  Andrew Pinski <pinskia@physics.uc.edu>
12743
12744         PR debug/11231
12745         * dbxout.c (dbxout_type_fields): Return if any item is
12746         error_mark_node or the type is error_mark_node.
12747
12748 2004-01-09  Geoffrey Keating  <geoffk@apple.com>
12749
12750         * config/rs6000/darwin-ldouble.c: Add big comment explaining
12751         exactly what is expected as a 'long double'.
12752         (_xlqadd): When a value to be returned is representable as a
12753         'double', just return it directly, do not construct it using a union.
12754         Also, correct final fixup.
12755         (_xlqmul): Likewise.
12756         (_xlqdiv): Likewise.
12757         * real.c (encode_ibm_extended): Make consistent with darwin-ldouble.c.
12758
12759         * config/rs6000/rs6000.md (fix_trunctfdi2): Delete.
12760
12761 2004-01-09  Richard Henderson  <rth@redhat.com>
12762
12763         * recog.c (constrain_operands): Validate mem operands.
12764
12765 2004-01-09   James E Wilson  <wilson@specifixinc.com>
12766
12767         * gcc.c (init_spec): Remove -lunwind from shared case.
12768         * conifg/ia64/t-hpux (SHLIB_LINK): Add -lunwind.
12769
12770 2004-01-09  Steve Ellcey  <sje@cup.hp.com>
12771
12772         * configure.ac: (gcc_cv_ld_hidden) Set to true for ia64*-*-hpux*.
12773         * configure: Regenerate
12774
12775 2004-01-09  Joseph S. Myers  <jsm@polyomino.org.uk>
12776
12777         PR c/11234
12778         * c-typeck.c (build_c_cast): If pedantic, warn for conversions
12779         between function and object pointers.
12780         (digest_init): When comparing a pointer to function type to the
12781         target type, only apply TREE_TYPE once to the pointer to function
12782         type.
12783         * except.c (for_each_eh_label_1): Treat data as a pointer to a
12784         function pointer rather than casting it to a function pointer.
12785         (for_each_eh_label): Update caller.
12786         * recog.h (struct insn_data): Use a struct or union for output.
12787         * genoutput.c (output_insn_data): Update.
12788         * final.c (get_insn_template): Update.
12789
12790 2004-01-09  Mark Mitchell  <mark@codesourcery.com>
12791
12792         * expr.h (expand_expr): Make it a macro, not a function.
12793         (expand_expr_real): New function.
12794         * expr.c (store_expr): Adjust logic for deciding whether or not to
12795         copy the value returned by expand_expr.
12796         (expand_expr): Rename to ...
12797         (expand_expr_real): ... this.  Add alt_rtl parameter.  Adjust
12798         calls to language hooks.
12799         * c-common.h (c_expand_expr): Adjust prototype.
12800         * c-common.c (c_expand_expr): Add alt_rtl parameter.
12801         * langhooks-def.h (lhd_expand_expr): Change prototype.
12802         * langhooks.c (lhd_expand_expr): Add all_rtl parameter.
12803         * langhooks.h (lang_hooks): Change type of expand_expr.
12804         * stmt.c (stmt_status): Add x_last_expr_alt_rtl.
12805         (last_expr_alt_rtl): Likewise.
12806         (expand_expr_stmt_value): Set last_expr_alt_rtl.
12807         (clear_last_expr): Clear it.
12808         (expand_end_stmt_expr): Set RTL_EXPR_ATL_RTL.
12809         (expand_end_bindings): Save and restor last_expr_alt_rtl.
12810         * tree.def (RTL_EXPR): Give it an additional operand.
12811         * tree.h (RTL_EXPR_ALT_RTL): New macro.
12812
12813 2004-01-09  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
12814
12815         * config/m32r/m32r.h (TARGET_CPU_CPP_BUILTINS): Add __m32r__.
12816         * config/m32r/m32r.c (call26_operand): Allow in PIC mode.
12817
12818 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
12819
12820         PR target/13380.
12821         * config/m32r/m32r.md: Replace (reg:SI 17) with (reg:CC 17)
12822         or (ne:SI (reg:CC 17) (const_int 0)).
12823         Be specific about modes wherever possible.
12824
12825 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
12826
12827         * config/m32r/m32r.c (m32r_expand_block_move): Call
12828         gen_movestrsi_internal with two more arguments.
12829         (m32r_output_block_move): Adjust operand numbers.
12830         Properly update the source and destination pointers.
12831         * config/m32r/m32r.md (movstrsi_internal): Use 'r' instead of
12832         'r+'.  Change the set detinations to match_operand.
12833
12834 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
12835
12836         * final.c (FIRST_INSN_ADDRESS): Remove.
12837         (shorten_branches): Don't use FIRST_INSN_ADDRESS.
12838         * system.h (FIRST_INSN_ADDRESS): Poison.
12839         * config/avr/avr.h: Remove a comment about FIRST_INSN_ADDRESS.
12840         * config/m32r/m32r-protos.h: Remove the prototype for
12841         m32r_first_insn_address.
12842         * config/m32r/m32r.c (m32r_first_insn_address): Remove.
12843         * config/m32r/m32r.h (FIRST_INSN_ADDRESS): Likewise.
12844         * doc/md.texi (FIRST_INSN_ADDRESS): Likewise.
12845
12846 2004-01-09  J. Brobecker  <brobecker@gnat.com>
12847
12848         * dwarf2out.c (gen_enumeration_type_die): Return the DIE that
12849         we just created.
12850         (is_ada_subrange_type): DIEs for enumeration subtypes should be
12851         emitted as subrange types too.
12852         (subrange_type_die): Add handling of enumeration subtypes.
12853
12854 2004-01-08  Richard Henderson  <rth@redhat.com>
12855
12856         PR opt/12441
12857         Revert: Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>
12858         * i386.c (aligned_operand): Be prepared for SUBREGed registers.
12859         (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
12860         (ix86_address_cost): Be prepared for SUBREGed registers.
12861         (legitimate_address_p): Accept SUBREGed registers.
12862
12863 2004-01-08  Kelley Cook  <kcook@gcc.gnu.org>
12864
12865         * Makefile.in: Rename configure.in to configure.ac
12866         * doc/sourcebuild.texi: Likewise.
12867         * configure: Regenerate.
12868         * config.in: Regenerate.
12869
12870 2004-01-08  Stuart Hastings  <stuart@apple.com>
12871
12872         * config/i386/i386.md: Typos in MMX/SSE immediate shifts.
12873
12874 2004-01-08  Jan Hubicka  <jh@suse.cz>
12875
12876         * cgraphunit.c (cgraph_decide_inlining):  Fix typo.
12877
12878 2004-01-08  Geoffrey Keating  <geoffk@apple.com>
12879
12880         * config/rs6000/rs6000.md (cmptf_internal1): Correct branch offset.
12881         (UNSPEC_FIX_TRUNC_TF): New constant.
12882         (movtf_internal): Make splitter active only when insn is active.
12883         (extenddftf2): Rewrite to properly load zero into low part.
12884         (extenddftf2_internal): New.
12885         (extendsftf2): Rewrite.
12886         (truncdftf2): Correct length.
12887         (floatditf2): Delete.
12888         (fix_trunc_helper): New.
12889         (fix_trunctfdi2): Use fix_trunc_helper.
12890         (fix_trunctfsi2): Likewise.fix_trunc
12891         (fix_trunctfsi2_internal): New.
12892
12893         * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): lo_sum
12894         addresses are legitimate on Darwin even when flag_pic.
12895         (rs6000_legitimize_reload_address) [TARGET_MACHO]: Don't create
12896         non-offsettable addresses for loads of TFmode constants.
12897
12898 2004-01-08  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
12899
12900         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Actually emit
12901         variables in the appropriate bss section.
12902
12903 2004-01-09  Alan Modra  <amodra@bigpond.net.au>
12904
12905         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Ensure
12906         target_flags has MASK_POWERPC64 when -m64.
12907         * config/rs6000/rs6000.c (processor_target_table): Add MASK_POWERPC64
12908         to 620, 630, power3, power4 and rs64a entries.
12909         * config/rs6000/rs6000.h (MASK_64BIT): Expand comment.
12910
12911 2004-01-08  Richard Sandiford  <rsandifo@redhat.com>
12912
12913         * simplify-rtx.c (simplify_immed_subreg): Fix construction of
12914         floating-point constants.
12915
12916 2004-01-08  J. Brobecker  <brobecker@gnat.com>
12917
12918         * dwarf2out.c (subrange_type_die): Add context_die parameter.
12919         Create the subrange_type DIE using the given context DIE.
12920         (modified_type_die): Update call to subrange_type_die.
12921
12922 2004-01-08  Zack Weinberg  <zack@codesourcery.com>
12923
12924         * dwarf2.h, unwind-dw2-fde.h, unwind-pe.h, unwind.h:
12925         Add multiple-include guard.
12926
12927 2004-01-08  Hartmut Penner  <hpenner@de.ibm.com>
12928
12929         * gcc/config/rs6000/rs6000.c (easy_vector_constant): Accept
12930         all vector constant loadable by vsplt*.
12931         (output_vec_const_move): Likewise.
12932
12933 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
12934
12935         PR c/6024
12936         * c-typeck.c (comptypes): Only treat enumerated types in the same
12937         translation unit as compatible with each other when they are the
12938         same type.
12939         * doc/extend.texi: Update.
12940
12941 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
12942
12943         PR c/12165
12944         * c-decl.c (grokdeclarator): Take type qualifiers of typedefed
12945         array type from the array element type.
12946
12947 2004-01-07  Alan Modra  <amodra@bigpond.net.au>
12948
12949         * config/rs6000/rs6000.c (rs6000_dbx_register_number): New function.
12950         * config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Declare.
12951         * config/rs6000/rs6000.h (DWARF_FRAME_REGNUM): Define.
12952         (DWARF_REG_TO_UNWIND_COLUMN): Correct column adjustment and comment.
12953         * config/rs6000/sysv4.h (DBX_REGISTER_NUMBER): Define.
12954
12955 2004-01-06  Eric Christopher  <echristo@redhat.com>
12956
12957         * config/mips/mips.h (MDEBUG_ASM_SPEC): Change for dwarf2 default.
12958         (DWARF2_DEBUGGING_INFO): Define.
12959         (PREFERRED_DEBUGGING_TYPE): Set to dwarf2.
12960         * config/mips/openbsd.h (PREFERRED_DEBUGGING_TYPE): Remove.
12961         * config/mips/iris6.h (SUBTARGET_ASM_DEBUGGING_SPEC): Only pass -g0
12962         for irix as.
12963         (SUBTARGET_ASM_OPTIMIZING_SPEC): Only pass O0 for irix as.
12964         * config/mips/iris6gas.h (MDEBUG_ASM_SPEC): Remove.
12965         * config/mips/iris5gas.h: Ditto.
12966         (DBX_DEBUGGING_INFO): Remove.
12967         (DWARF2_DEBUGGING_INFO): Ditto.
12968         (MIPS_DEBUGGING_INFO): Ditto.
12969         (PREFERRED_DEBUGGING_TYPE): Ditto.
12970         * config/mips/elf.h (DWARF2_DEBUGGING_INFO): Remove.
12971         (PREFERRED_DEBUGGING_TYPE): Ditto.
12972         (SUBTARGET_ASM_DEBUGGING_SPEC): Ditto.
12973         * config/mips/elf64.h: Ditto.
12974
12975 2004-01-06  Jan Hubicka  <jh@suse.cz>
12976
12977         * Makefile.in (STAGEPROFILE_FLAGS_TO_PASS): Use -fprofile-generate.
12978         (STAGEFEEDBACK_FLAGS_TO_PASS): Use -fprofile-use.
12979
12980 2004-01-06  Geoffrey Keating  <geoffk@apple.com>
12981
12982         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Compile darwin-ldouble.c.
12983         (TARGET_LIBGCC2_CFLAGS): Use -mlong-double-128.
12984         * config/rs6000/darwin-ldouble.c: New.
12985
12986         * emit-rtl.c (gen_lowpart_common): Use simplify_gen_subreg
12987         for constants.
12988         (constant_subword): Delete.
12989         * rtl.h (constant_subword): Delete prototype.
12990         (immed_double_const): Is not in varasm.c.
12991         * simplify-rtx.c (simplify_immed_subreg): New.
12992         (simplify_subreg): Use simplify_immed_subreg.
12993
12994         * config/rs6000/rs6000.md (floatsitf2): Use expand_float rather
12995         than trying to generate RTL directly.
12996         (fix_trunctfsi2): Use expand_fix rather than trying to generate
12997         RTL directly.
12998
12999         * dwarf2out.c (add_const_value_attribute): Remove incorrect comment.
13000
13001 2004-01-06  David Edelsohn  <edelsohn@gnu.org>
13002
13003         * config/rs6000/xcoff.h (EXTRA_SECTION_FUNCTIONS): Split each
13004         function into a separate macro.
13005         (read_only_data_section): Add void argument.
13006         (private_data_section): Same.
13007         (read_only_private_data_section): Same.
13008         (toc_section): Same.
13009
13010 2004-01-06  Jan Hubicka  <jh@suse.cz>
13011
13012         * invoke.texi:  Remove typo in last change.
13013
13014         PR target/10301
13015         * config.gcc: Accept opteron and athlon-64 as variants
13016         of k8.
13017         * i386.c (override_options): Likewise.
13018         * invoke.texi (i386 -mtune): Expand documentation.
13019
13020 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
13021
13022         * alias.c: Fix comment typos.
13023         * builtins.c: Likewise.
13024         * cfg.c: Likewise.
13025         * df.c: Likewise.
13026         * dominance.c: Likewise.
13027         * dwarf2out.c: Likewise.
13028         * emit-rtl.c: Likewise.
13029         * expr.c: Likewise.
13030         * final.c: Likewise.
13031         * fold-const.c: Likewise.
13032         * gcse.c: Likewise.
13033         * genattrtab.c: Likewise.
13034         * genrecog.c: Likewise.
13035         * gensupport.c: Likewise.
13036         * ggc-zone.c: Likewise.
13037         * integrate.c: Likewise.
13038         * local-alloc.c: Likewise.
13039         * loop.c: Likewise.
13040         * recog.c: Likewise.
13041         * regmove.c: Likewise.
13042         * reg-stack.c: Likewise.
13043         * reorg.c: Likewise.
13044         * rtlanal.c: Likewise.
13045         * rtl.h: Likewise.
13046         * sched-ebb.c: Likewise.
13047         * simplify-rtx.c: Likewise.
13048         * toplev.c: Likewise.
13049         * varasm.c: Likewise.
13050
13051 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
13052
13053         * doc/install.texi: Fix typos.
13054         * doc/invoke.texi: Likewise.
13055         * doc/md.texi: Likewise.
13056
13057 2004-01-06  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
13058
13059         * config/m32r/m32r.h (TRAMPOLINE_LINE_SIZE): Changed
13060
13061 2004-01-06  Jan Hubicka  <jh@suse.cz>
13062
13063         * i386.c (init_cumulative_args):  Add handling of MMX_REGPARM.
13064         (function_arg_advance):  Do not pass aggregates in SSE; deal handling
13065         of MMX_REGPARM.
13066         (function_arg): Add new warnings about ABI changes;  fix SSE_REGPARM;
13067         add MMX_REGPARM.
13068         * i386.h (ix86_args): Add mmx_words/mmx_regs/mmx_regno fields.
13069         (SSE_REGPARM_MAX): Default to 3 on i386 -msse ABI.
13070         (MMX_REGPARM_MAX): Similarly for -mmmx.
13071
13072 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
13073
13074         * config/sh/linux.h: Fix comment formatting.
13075         * config/sh/netbsd-elf.h: Likewise.
13076         * config/sh/sh.c: Likewise.
13077         * config/sh/sh.h: Likewise.
13078         * config/sh/vxworks.h: Likewise.
13079
13080 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
13081
13082         * system.h (ASM_OUTPUT_MAIN_SOURCE_FILENAME): Poison.
13083         * toplev.c (output_file_directive): Don't use
13084         ASM_OUTPUT_MAIN_SOURCE_FILENAME.
13085
13086 2004-01-05  Steven Bosscher <s.bosscher@student.tudelft.nl>
13087
13088         * toplev.c: Fix broken checkin of 2003-12-30.
13089
13090 2004-01-05  Daniel Berlin  <dberlin@dberlin.org>
13091
13092         * ggc-zone.c: Remove everything in #ifdef USING_MALLOC_PAGE_GROUPS
13093         (USING_MMAP): We don't support non-mmap.
13094         (struct alloc_chunk): Steal 1 bit from typecode, use it to mark
13095         large objects.
13096         (struct page_entry): Remove bytes_free.
13097         (struct page_table_chain): Remove.
13098         (struct globals): Remove page_table member.
13099         (loookup_page_table_entry): Function deleted.
13100         (set_page_table_entry): Ditto.
13101         (ggc_allocated_p): No longer need page table lookups.
13102         (ggc_marked_p): Ditto.
13103         (alloc_small_page): Don't care about bytes_free anymore.
13104         (alloc_large_page): Round up size.
13105         (ggc_alloc_zone_1): Mark large objects as such, and calculate
13106         their size the new way.
13107         Remove page table lookups and setting.
13108         (ggc_get_size): Calculate large object size the new way.
13109         (sweep_pages): Redo to account for fact that we no longer have
13110         bytes_free.
13111         (ggc_collect): No longer need to reincrement bytes_free.
13112         (ggc_pch_alloc_object): Handle new large objects properly.
13113         (ggc_pch_read): Put PCH stuff into it's own uncollected zone.
13114
13115 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
13116
13117         * doc/invoke.texi: Remove a page break.
13118
13119 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
13120
13121         * config/avr/avr.c (avr_output_function_prologue): Remove an
13122         extra pair of curly braces.
13123
13124 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
13125
13126         * config/mn10300/mn10300.c: Fix comment formatting.
13127         * config/mn10300/mn10300.h: Likewise.
13128
13129 2004-01-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13130
13131         * tree.h: Update documentation on nothrow_flag.
13132         * print-tree.c (print_node): Print TREE_NOTHROW as "align-ok" for
13133         types.
13134
13135 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
13136
13137         * doc/invoke.texi: Remove traces of dead ports.
13138
13139 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
13140
13141         * doc/invoke.texi: Add documentation for the MIPS -mexplicit-relocs
13142         option.
13143
13144 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
13145
13146         PR target/12945
13147         * coverage.c (coverage_counter_alloc): Set SYMBOL_FLAG_LOCAL for
13148         counter labels.
13149         * config/mips/mips.c (INTERNAL_SYMBOL_P): Delete.
13150         (mips_classify_symbol): Always treat SYMBOL_REF_FLAG as indicating
13151         string constants if TARGET_MIPS16.  Use SYMBOL_REF_DECL to check
13152         the binding of decl symbols, otherwise check SYMBOL_REF_LOCAL_P.
13153         (mips_symbol_insns): Don't trust the local/global classification.
13154         (m16_usym8_4, m16_usym5_4): Same mips16 change as mips_classify_symbol.
13155         (override_options): Make -mabicalls -fno-unit-at-a-time imply
13156         -mno-explicit-relocs.
13157         (mips_encode_section_info): Don't use SYMBOL_REF_FLAG to distinguish
13158         between local and global symbols.
13159
13160 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
13161
13162         * config/mips/mips-protos.h (mips_dangerous_for_la25_p): Declare.
13163         (mips_preferred_reload_class): Declare.
13164         * config/mips/mips.h (DANGEROUS_FOR_LA25_P): Replace with function.
13165         (EXTRA_CONSTRAINT): Update accordingly.
13166         (PREFERRED_RELOAD_CLASS): Use mips_preferred_reload_class.
13167         * config/mips/mips.c (mips_dangerous_for_la25_p): New function.
13168         (mips_preferred_reload_class): New function.  Prefer LEA_REGS if
13169         mips_dangerous_for_la25_p.
13170         (mips_secondary_reload_class): Use LEA_REGS rather than GR_REGS
13171         if mips_dangerous_for_la25_p.
13172
13173 2004-01-05  Bernardo Innocenti  <bernie@develer.com>
13174
13175         * config/m68k/m68k.c (output_andsi3): Fix signed/unsigned comparison
13176         warning.
13177
13178 2004-01-04  Nathanael Nerode  <neroden@gcc.gnu.org>
13179
13180         * configure.ac: Use AC_PROG_CPP_WERROR.
13181         * configure: Regenerate.
13182
13183 2004-01-04  Zack Weinberg  <zack@codesourcery.com>
13184
13185         * .cvsignore: Add autom4te.cache.
13186
13187 2004-01-04  Richard Sandiford  <rsandifo@redhat.com>
13188
13189         * doc/invoke.texi: Revamp documentation of MIPS options.  Remove
13190         -mabi=meabi, -mabi-fake-default, -mmips-as, -mgas, -mmips-tfile,
13191         -m4650, -mfix7000 and -(m)no-crt0.  Put endianness options first,
13192         then architecture options, then ABI options.  General rewording.
13193
13194 2004-01-04  Joseph S. Myers  <jsm@polyomino.org.uk>
13195
13196         PR c/3414
13197         * doc/extend.texi: Clarify definition of malloc attribute.
13198
13199 2004-01-04  Jan Hubicka  <jh@suse.cz>
13200
13201         * Makefile.in (cgraph.o, cgraphunit.o): Add intl.h dependency.
13202         * cgraph.c (create_edge, dump_cgraph): Update to use inline_failed
13203         * cgraph.h (cgraph_edge): Replace inline_call by inline_failed
13204         (cgraph_inline_p): Add extra argument reason.
13205         * cgraphunit.c: Minor formating fixes.
13206         cgraph_first_inlined_callee): New functions.
13207         (record_call_1): Record builtins too.
13208         (cgraph_analyze_function): Update inline_failed messages.
13209         (cgraph_mark_functions_to_output, cgraph_expand_function, cgraph_inlined_into,
13210         cgraph_inlined_callees, cgraph_estimate_growth): Update to use inline_failed.
13211         (cgraph_check_inline_limits): Likewise; Add argument reason.
13212         (cgraph_set_inline_failed): New static function.
13213         (cgraph_decide_inlining_of_small_function, cgraph_decide_inlining): Set
13214         reasons.
13215         (cgraph_inline_p): Add new argument reason.
13216         * tree-inline.c (expand_call_inline):  Update warning.
13217
13218 2004-01-03  Nathanael Nerode  <neroden@gcc.gnu.org>
13219
13220         * configure.ac: Replace AC_INIT, AC_OUTPUT, AC_CANONICAL_SYSTEM
13221         with modern equivalents.
13222         * configure: Regenerate.
13223
13224         * configure.ac: Replace gcc_AC_CHECK_TYPE with AC_CHECK_TYPE.
13225         * aclocal.m4 (gcc_AC_CHECK_TYPE): Remove.
13226         * configure: Regenerate.
13227
13228         * doc/install.texi: Note that 'gcc' is now a 2.57 directory.
13229
13230         * configure.in: Rename to configure.ac.
13231         * configure.ac: Renamed from configure.in; make minimum necessary
13232         changes for autoconf 2.5x.
13233         * aclocal.m4: Make minimum necessary changes for autoconf 2.5x.
13234         * configure: Regenerate with autoconf 2.57.
13235
13236 2004-01-03  Kazu Hirata  <kazu@cs.umass.edu>
13237
13238         * config/mips/linux.h: Fix comment formatting.
13239         * config/mips/mips.c: Likewise.
13240         * config/mips/mips.h: Likewise.
13241         * config/mips/mips.md: Likewise.
13242         * config/mips/netbsd.h: Likewise.
13243         * config/mips/windiss.h: Likewise.
13244
13245 2004-01-02  Richard Henderson  <rth@redhat.com>
13246
13247         * config/i386/i386.md (fp constant pool splitter): Reorg suppression
13248         for sse and 387; add suppression for mmx.
13249
13250 2004-01-02  Andrew Pinski  <pinskia@physics.uc.edu>
13251
13252         * loop.c (loop_optimize): Free all loops_info's mems.
13253
13254         * c-typeck.c (finish_init): Free spelling_base before
13255         setting it again.
13256
13257         * cfgloop.c (flow_loops_find): Always free the sbitmap
13258         headers.
13259
13260         * predict.c (estimate_probability): Free bbs after being
13261         done with it.
13262
13263 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
13264
13265         * config/mn10300/mn10300.h (PREDICATE_CODES): Add
13266         const_8bit_operand and call_address_operand.
13267
13268 2004-01-02  Jan Hubicka  <jh@suse.cz>
13269
13270         * cgraphunit.c (cgraph_optimize_function):  Call optimize_inline_calls
13271         when there is nothing to inline but warnings are requested.
13272         (cgraph_decide_inlining):  Fix memory leak.
13273
13274 2004-01-02  Jan Hubicka  <jh@suse.cz>
13275
13276         * expr.c (store_constructor):  Fix pasto in previous patch.
13277
13278 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
13279
13280         * config/i386/cygming.h: Fix comment formatting.
13281         * config/i386/djgpp.h: Likewise.
13282         * config/i386/gthr-win32.c: Likewise.
13283         * config/i386/i386-interix.h: Likewise.
13284         * config/i386/i386.c: Likewise.
13285         * config/i386/i386.h: Likewise.
13286         * config/i386/openbsd.h: Likewise.
13287         * config/i386/winnt.c: Likewise.
13288         * config/i386/xm-mingw32.h: Likewise.
13289
13290 2004-01-02  Joseph S. Myers  <jsm@polyomino.org.uk>
13291
13292         * doc/gcc.texi, doc/invoke.texi, doc/install.texi: Update
13293         copyright and last modification dates.
13294
13295 2004-01-02  Andreas Jaeger  <aj@suse.de>, Gerald Pfeifer  <gp@suse.de>
13296
13297         * doc/install.texi (Specific): Mention x86_64.
13298
13299 2004-01-01  Hans-Peter Nilsson  <hp@bitrange.com>
13300
13301         * builtins.c (expand_builtin_apply_args_1) [STACK_GROWS_DOWNWARD]:
13302         Call force_operand on plus_constant result.
13303
13304 2004-01-01  Jan Hubicka  <jh@suse.cz>
13305
13306         * expmed.c (store_bit_field, extract_bit_field): Use new named patterns
13307         * expr.c (store_constructor): Use vec_init pattern.
13308         * genopinit.c (optabs): Initailize vec_set/vec_extract/vec_init.
13309         * optabs.h (optab_index): ADD OTI_vec_set/OTI_vec_extract/OTI_vec_init
13310         (vec_set_optab, vec_extract_optab, vec_init_optab): New.
13311         * i386.md (vec_setv2df, vec_extractv2df, vec_setv4sf, vec_extractv4sf):
13312         New patterns.
13313         (sse2_unpc?pd): Fix pattern.
13314         (sse2_movlpd): Kill.
13315         (sse2_movsd): Deal with movlpd too.
13316         * i386.c (ix86_expand_builtin): Use sse2_movsd instead of sse2_movlpd.
13317         (ix86_expand_vector_init): New.
13318         * emmintrin.h (__mm_set_pd, __mm_set_ps): Use vector extensions.
13319         * md.texi (vec_set, vec_extract): Document
13320
13321 2003-12-31  Jan Hubicka  <jh@suse.cz>
13322
13323         PR opt/13473
13324         * recog.c (validate_replace_rtx_1):  Take care for RTL sharing inside
13325         ASM input operands
13326
13327         PR opt/12617
13328         * toplev.c (dump_file_index): Reorder ce3 and bbro.
13329         (dump_file): Likewise.
13330         (rest_of_compilation): Likewise.
13331
13332         PR debug/13367
13333         * cgraph.c (cgraph_function_possibly_inlined):  Even with
13334         flag_really_no_inline we inline always_inline functions.
13335         * cgraphunit.c (cgraph_analyze_function): Clear inlinable flag
13336         for non-always_inline functions when there is flag_really_no_inline.
13337         (cgraph_decide_inlining): Limit work done when not inlining.
13338         (cgraph_decide_inlining_incrementally): Likewise.
13339         (cgraph_optimize_function): Check whether something got inlined.
13340         * c-objc-common.c (c_disregard_inline_limits): Do not always inline
13341         extern inline functions when not inlining.
13342
13343         * opts.c (decode_options):  Disable crossjumping at -O1
13344         * invoke.texi (-O1): Document change.
13345
13346 See ChangeLog.10 for earlier changes.