OSDN Git Service

* fold-const.c (fold_div_compare): New function to optimize X/C1 op C2
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2004-05-08  Roger Sayle  <roger@eyesopen.com>
2
3         * fold-const.c (fold_div_compare): New function to optimize X/C1 op C2
4         where op is a comparison operator and C1 and C2 are integer constants
5         into a range check.
6         (fold): Call fold_div_compare.
7
8 2004-05-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
9
10         * doc/install.texi (sparc-sun-solaris2*): Document bootstrap
11         problems with earlier versions of the GNU compiler.
12
13 2004-05-07  Aldy Hernandez  <aldyh@redhat.com>
14
15         * config/rs6000/rs6000-protos.h (rs6000_hard_regno_mode_ok_p):
16         Declare.
17
18         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok_p): New.
19         (rs6000_hard_regno_mode_ok): New.
20         (rs6000_init_hard_regno_mode_ok): New.
21         (rs6000_override_options): Call rs6000_init_hard_regno_mode_ok.
22
23         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Use precomputed
24         result.
25
26 2004-05-07  Ziemowit Laski  <zlaski@apple.com>
27
28         * config/rs6000/altivec.h (vector, pixel, bool): Do not
29         define as macros #ifdef __APPLE_ALTIVEC__.
30
31 2004-05-07  Fariborz Jahanian  <fjahanian@apple.com>
32
33         * config/rs6000/rs6000.c (rs6000_mixed_function_arg):
34         Generate appropriate parallels for vector arguments
35         passed to vararg functions. (function_arg): make the call
36         to rs6000_mixed_function_arg for vector args as needed.
37         
38 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
39
40         * config/mips/mips.c (mips_va_arg): Fix calculation of osize for
41         EABI_FLOAT_VARARGS_P.
42
43 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
44
45         * config/mips/mips.h (ISA_HAS_BRANCHLIKELY): Remove TARGET_MIPS5500.
46         * config/mips/mips.c (override_options): Disable branch likely
47         instructions if TUNE_MIPS5500.
48
49 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
50
51         * config/mips/mips.c (override_options): Allow the hi and lo registers
52         to store any integral mode, not just MODE_INTs.
53
54 2004-05-07  Paul Brook  <paul@codesourcery.com>
55
56         * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
57         * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
58         (TARGET_DOUBLEWORD_ALIGN): Use it.
59         (WCHAR_TYPE): Define.
60         (WCHAR_SIZE_TYPE): Define.
61         (SIZE_TYPE): Define.
62
63 2004-05-07  Uros Bizjak  <uros@kss-loka.si>
64
65         * config/i386/i386.c (ix86_emit_fp_unordered_jump): Use
66         testb $4, %ah insn instead of sahf insn if !TARGET_USE_SAHF.
67
68 2004-05-07  Andrew Pinski  <pinskia@physics.uc.edu>
69
70         * loop-doloop.c (doloop_valid_p): Make sure that body
71         gets freed.
72
73 2004-05-07  Eric Botcazou  <ebotcazou@act-europe.fr>
74
75         * config/sparc/sparc-protos.h (sparc_skip_caller_unimp): New
76         declaration.
77         * config/sparc/sparc.c (SKIP_CALLERS_UNIMP_P): Delete.
78         (sparc_skip_caller_unimp): New global variable.
79         (sparc_function_epilogue): Set 'sparc_skip_caller_unimp'.
80         Use it instead of SKIP_CALLERS_UNIMP_P.
81         * config/sparc/sparc.md (call expander): Add sanity check.
82         (call_address_struct_value_sp32): Re-sync with expander.
83         (call_symbolic_struct_value_sp32): Likewise.
84         (return peepholes): Use 'sparc_skip_caller_unimp' instead
85         of custom predicate.
86
87 2004-05-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
88
89         PR c++/14962
90         * c-pragma.c (handle_pragma_redefine_extname): Only change
91         the assembler name of FUNCTION_DECLs and VAR_DECLs.
92
93 2004-05-07  Uros Bizjak  <uros@kss-loka.si>
94
95         * optabs.h (enum optab_index): Add new OTI_log1p.
96         (log1p_optab): Define corresponding macro.
97         * optabs.c (init_optabs): Initialize log1p_optab.
98         * genopinit.c (optabs): Implement log1p_optab using log1p?f2
99         patterns.
100         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG1P{,F,L}
101         using log1p_optab.
102         (expand_builtin): Expand BUILT_IN_LOG1P{,F,L} using
103         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
104
105         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FYL2XP1.
106
107         * config/i386/i386.c (ix86_emit_i387_log1p): New function.
108         * config/i386/i386-protos.h (ix86_emit_i387_log1p):
109         Prototype here.
110         * config/i386/i386.md (UNSPEC_FYL2XP1): New unspec to represent
111         x87's fyl2xp1 instruction.
112         (*fyl2x_xf3): Rename insn definition to fyl2x_xf3.
113         (fyl2xp1_xf3): New pattern to implement fyl2xp1 x87 instruction.
114         (log1psf2, log1pdf2, log1pxf2): New expanders to implement log1pf,
115         log1p  and log1pl built-ins as inline x87 intrinsics.
116
117 2004-05-07  Loren James Rittle  <ljrittle@acm.org>
118
119         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Proper redefinition.
120         * config/arm/freebsd.h: Likewise.
121         * config/ia64/freebsd.h: Likewise.
122         * config/sparc/freebsd.h: Likewise.
123
124 2004-05-07  Hans-Peter Nilsson  <hp@axis.com>
125
126         PR optimization/15296
127         * reorg.c (fill_simple_delay_slots): Use next_real_insn when
128         getting last consecutive label at a branch.
129         (relax_delay_slots): Similar, near top of loop.
130
131 2004-05-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
132
133         PR target/15202
134         * pa.md (movdi, movsi, movhi, movqi): Support move from shift amount
135         register to general register.
136
137 2004-05-07  Alan Modra  <amodra@bigpond.net.au>
138
139         * config/rs6000/rs6000.h (STACK_BOUNDARY): Use 128 bit for either
140         TARGET_ALTIVEC or TARGET_ALTIVEC_ABI.
141         * config/rs6000/sysv4.h (ABI_STACK_BOUNDARY): Likewise.
142         (STACK_BOUNDARY): Delete.
143
144 2004-05-06  Stuart Hastings  <stuart@apple.com>
145
146         * gcc/doc/invoke.texi: Restore -fgcse-after-reload doc from 1.421,
147         mistakenly clobbered by 1.423.
148
149 2004-05-06  Richard Sandiford  <rsandifo@redhat.com>
150
151         * doc/invoke.texi: Document -mvr4130-align.
152         * config/mips/mips.h (MASK_VR4130_ALIGN, TARGET_VR4130_ALIGN)
153         (TUNE_MIPS4120, TUNE_MIPS4130): New macros.
154         (TUNE_MACC_CHAINS): Include TUNE_MIPS4120 and TUNE_MIPS4130.
155         (TARGET_SWITCHES): Add -mvr4130-align and -mno-vr4130-align.
156         * config/mips/mips.md: Include sched-int.h.
157         (USEFUL_INSN_P, SEQ_BEGIN, SEQ_END, FOR_EACH_SUBINSN): New macros.
158         (mips_rtx_costs): Set integer multiplication costs for TUNE_MIPS4130.
159         (override_options): Enable -mvr4130-align at -O3 and above.
160         (mips_sim_insn): New variable.
161         (mips_sim): New structure.
162         (mips_sim_reset, mips_sim_init, mips_sim_next_cycle, mips_sim_wait_reg)
163         (mips_sim_wait_regs_2, mips_sim_wait_regs_1, mips_sim_wait_regs)
164         (mips_sim_wait_units, mips_sim_wait_insn, mips_sim_record_set)
165         (mips_sim_issue_insn, mips_sim_issue_nop, mips_sim_finish_insn)
166         (vr4130_avoid_branch_rt_conflict, vr4130_align_insns): New functions.
167         (mips_reorg): Call vr4130_align_insns.
168         (vr4130_last_insn): New variable.
169         (vr4130_true_reg_dependence_p_1, vr4130_true_reg_dependence_p)
170         (vr4130_swap_insns_p, vr4130_reorder): New functions.
171         (mips_sched_reorder, mips_variable_issue): Hook in vr4130 code.
172         (mips_issue_rate): Return 2 for PROCESSOR_R4130.
173         (mips_use_dfa_pipeline_interface): Return true for the same.
174         * config/mips/4130.md: New file.
175         * config/mips/mips.md: Include it.  Add a peephole2 to convert
176         "mult;mflo" into "mtlo;macc".
177         (*macc, *umul_acc_di, *smul_acc_di): Use $1 rather than $0 as the
178         target of maccs.
179         (*msac_using_macc): New pattern.
180
181 2004-05-06  Richard Sandiford  <rsandifo@redhat.com>
182
183         * config/mips/5500.md (ir_vr55_store): Set latency to 0.
184         (ir_vr55_hilo): Split into...
185         (ir_vr55_mfhilo, ir_vr55_mthilo): ...these new reservations.
186         (ir_vr55_imul_si, ir_vr55_imadd): Change latency to 5.
187         (ir_vr55_imul_di): Change latency to 9.  Reserve vr55_mac for 4 cycles.
188         Add various multiplication bypasses.
189         * config/mips/mips.c (mips_rtx_costs): Adjust VR5500 costs for integer
190         multiplication.
191
192 2004-05-06  Uros Bizjak  <uros@kss-loka.si>
193
194         * config/i386/i386.md (*fscalexf4): Correct insn "mode"
195         attribute to "XF".
196
197 2004-05-05  Uros Bizjak  <uros@kss-loka.si>
198
199         * optabs.h (enum optab_index): Add new OTI_fmod and OTI_drem.
200         (fmod_optab, drem_optab): Define corresponding macros.
201         * optabs.c (init_optabs): Initialize fmod_optab and drem_optab.
202         * genopinit.c (optabs): Implement fmod_optab and drem_optab
203         using fmod?f3 and drem?f3 patterns.
204         * builtins.c (expand_builtin_mathfn_2): Handle BUILT_IN_FMOD{,F,L}
205         using fmod_optab and BUILT_IN_DREM{,F,L} using drem_optab.
206         (expand_builtin): Expand BUILT_IN_FMOD{,F,L} and
207         BUILT_IN_DREM{,F,L} using expand_builtin_mathfn_2 if
208         flag_unsafe_math_optimizations is set.
209
210         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FPREM_F,
211         UNSPEC_FPREM_U, UNSPEC_FPREM1_F and UNSPEC_FPREM1_U.
212
213         * config/i386/i386.c (ix86_emit_fp_unordered_jump): New function.
214         * config/i386/i386-protos.h (ix86_emit_fp_unordered_jump):
215         Prototype here.
216         * config/i386/i386.md (UNSPEC_FPREM_F, UNSPEC_FPREM_U,
217         UNSPEC_FPREM1_F, UNSPEC_FPREM1_U): New unspecs to represent x87's
218         fprem and fprem1 instructions.
219         (*x86_fnstsw_1): Change input parameter to (reg:CCFP 18).
220         Rename insn definition to x86_fnstsw_1.
221         (fpremxf4, fprem1xf4): New patterns to implement fprem and fprem1
222         x87 instructions.
223         (fmodsf3, fmoddf3, fmodxf3): New expanders to implement fmodf, fmod
224         and fmodl built-ins as inline x87 intrinsics.
225         (dremsf3, dremdf3, dremxf3): New expanders to implement dremf, drem
226         and dreml built-ins as inline x87 intrinsics.
227
228 2004-05-05  Roger Sayle  <roger@eyesopen.com>
229
230         * reload1.c (inherit_piecemeal_p): Mark parameters potentially unused.
231
232 2004-05-05  Ian Lance Taylor  <ian@wasabisystems.com>
233
234         PR driver/9822
235         * doc/invoke.texi (Spec Files): Remove documentation of %c.
236
237 2004-05-05  Chris Demetriou  <cgd@broadcom.com>
238
239         * config/mips/mips.md: Update the msub define_split for new mflo/mfhi
240         representation.
241
242 2004-05-06  Paul Brook  <paul@codesourcery.com>
243
244         * config/arm/arm-protots.h (vfp_mem_operand): Rename ...
245         (arm_coproc_mem_operand): ... To this.
246         * config/arm/arm.c (arm_legitimate_address_p): Allow ldrd modes.
247         (arm_legitimate_index_p): Ditto.
248         (vfp_mem_operand): Rename ...
249         (arm_coproc_mem_operand): ... To this.  Handle writeback modes.
250         (vfp_secondary_reload_class): Use it.
251         (output_move_double): Use doubleword load/store instructions.
252         (arm_hard_regno_mode_ok): Only allow even reg pairs for ldrd.
253         * config/arm/arm.h (TARGET_LDRD): Define.
254         (EXTRA_CONSTRAINT_STR_ARM): Add 'Uy'.
255         * config/gcc/arm/arm.md (arm_movdi): Allow all valid memory operands.
256         New splitter for invalid doubleword loads.
257         * config/arm/iwmmxt.md (iwmmxt_arm_movdi): Use Uy constraint.
258         * config/arm/vfp.md (arm_movdi_vfp): Allow all valid memory operands.
259         * doc/md.texi: Document Uy constraint.
260
261 2004-05-05  Jan Hubicka  <jh@suse.cz>
262
263         PR opt/14980
264         * cgraphunit.c (cgraph_remove_unreachable_nodes): Deal properly with
265         inline clones.
266
267 2004-05-05  H.J. Lu  <hongjiu.lu@intel.com>
268
269         PR target/15290
270         * config/i386/i386.c (ix86_split_to_parts): Use real_to_target
271         instead of REAL_VALUE_TO_TARGET_LONG_DOUBLE.
272
273 2004-05-05  Mike Stump  <mrs@apple.com>
274
275         * config/darwin-c.c (add_framework): Copy the directory name as it
276         can be freed later.  Also, ensure we always allocate enough room
277         for the cached framework information.
278         (find_subframework_header): Keep track of the directory where the
279         subframework header was found.
280         (framework_construct_pathname): Speed up by not trying to re-add a
281         framework.
282         * cppfiles.c (search_path_exhausted): Arrange for the missing
283         header callback to be able to set the directory where the header
284         was found.
285         (cpp_get_dir): Add.
286         * cpplib.h (missing_header_cb): Add a parameter.
287         (cpp_get_dir): Add.
288
289 2004-05-03  Mike Stump  <mrs@apple.com>
290
291         * doc/invoke.texi (Directory Options): Document -iquote.
292         * doc/cpp.texi: Likewise.
293         * doc/cppopts.texi: Likewise.
294         * c-opts.c (c_common_missing_argument): Add -iquote processing.
295         (c_common_handle_option): Likewise.
296         * c.opt (iquote): Add.
297         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add -iquote.
298         * c-incpath.c (merge_include_chains): Update comment to use -iquote.
299
300         * c-opts.c (case OPT_I): Deprecate -I- support.
301         * doc/invoke.texi: Likewise.
302         * doc/cpp.texi: Likewise.
303         * doc/cppopts.texi: Likewise.
304
305 2004-05-05  Steven Bosscher  <stevenb@suse.de>
306
307         * basic-block.h (free_basic_block_vars): Update prototype.
308         * flow.c (free_basic_block_vars): Remove the keep_head_end_p
309         argument.
310         (life_analysis): Update call.
311         * ifcvt.c (if_convert): Likewise.
312         * sibcall.c (optimize_sibling_and_tail_recursive_call): Likewise.
313         * passes.c (rest_of_handle_final): Likewise.
314         (rest_of_compilation): Likewise.
315         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
316
317         * emit-rtl.c (next_real_insn): Use INSN_P.
318         (prev_real_insn): Likewise.
319
320 2004-05-05  Eric Christopher  <echristo@redhat.com>
321
322         * config/mips/mips.md: Update the madd define_split for new mflo/mfhi
323         representation.
324
325 2004-05-05  Paolo Bonzini  <bonzini@gnu.org>
326
327         * config/rs6000/rs6000.c (build_opaque_vector_type):
328         New function.
329         (rs6000_init_builtins): Use it.
330
331 2004-05-04  Bernard Giroud  <bgiroud2@free.fr>
332
333         * gcc/gcc/vmsdbgout.c (vms_func_node, vms_func_ref): New.
334         (func_table): Change type from char ** to vms_func_ref.
335         (write_rtnbeg):  Update to reflect func_table change.  Use
336         fde->funcdef_number instead of rtnnum in output.
337         (write_rtnend, vmxdbgout_begin_function, vmsdbgout_init): Likewise.
338
339 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
340             Richard Henderson  <rth@redhat.com>
341
342         PR target/14899
343
344         * c-common.c (vector_types_convertible_p): New function.
345         * c-typeck.c (comptypes): Recurse on vector types.
346         (convert_for_assignment): Use vector_types_convertible_p.
347         (digest_init): Use vector_types_convertible_p to check
348         validness of constant vector initializers; otherwise treat
349         them as scalars.
350         * tree.c (make_or_reuse_type): New.
351         (build_common_tree_nodes): Use it.
352         * cp/call.c (standard_conversion): Likewise.
353         * cp/typeck.c (comptypes): Recurse on vector types.
354         (convert_for_assignment): Use vector_types_convertible_p.
355
356 2004-05-04  Chris Demetriou  <cgd@broadcom.com>
357
358         * config/mips/mips.c (override_options): Default to no
359         generation of branch-likely operations when tuning for
360         CPUs where they tend to have a negative performance impact
361         (e.g., SB-1).
362
363 2004-05-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
364
365         * expr.c (store_constructor_field): Don't call store_constructor
366         if bitsize is not a multiple of a byte.
367
368 2004-05-04  Richard Sandiford  <rsandifo@redhat.com>
369
370         * reload1.c (inherit_piecemeal_p): New function.
371         (emit_reload_insns): When reloading a group of hard registers, use
372         inherit_piecemeal_p to decide whether the values of individual hard
373         registers can be inherited.
374
375 2004-05-04  H.J. Lu  <hongjiu.lu@intel.com>
376
377         * config/ia64/t-ia64 (LIB2ADDEH): Remove gthr-gnat.c.
378         * config/s390/t-tpf (LIB2ADDEHDEP): Likewise.
379         * config/t-linux (LIB2ADDEHDEP): Likewise.
380
381 2004-05-04  Paul Brook  <paul@codesourcery.com>
382
383         * config/arm/crti.asm: Push an even number of registers.
384         * config/arm/crtn.asm: And restore them.  Load via sp.
385
386 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
387
388         * ggc-zone.c (ggc_alloc_zone_1): Add MEM_STAT_DECL parameter.
389         Collect overhead information.
390         (ggc_alloc_stat): New name of ggc_alloc.  Add MEM_STAT_DECL
391         parameter and pass it through.
392         (ggc_alloc_typed_stat): New name of ggc_alloc_typed.  Add
393         MEM_STAT_DECL parameter and pass it through.
394         (ggc_alloc_zone_stat): New name of ggc_alloc_zone.  Add
395         MEM_STAT_DECL parameter and pass it through.
396
397 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
398
399         * config/rs6000/rs6000-protos.h: Protoize rs6000_hard_regno_nregs.
400
401         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs): New.
402
403         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Call
404         rs6000_hard_regno_nregs.
405
406 2004-05-03  Eric Christopher  <echristo@redhat.com>
407
408         * config/s390/s390.c (s390_emit_prologue): Call unspec tpf
409         prologue insn instead of setting up call.
410         (s390_emit_epilogue): Ditto.
411         * config/s390/s390.md (prologue_tpf, epilogue_tpf): New patterns.
412         (define_constants): Add numbers for above patterns.
413
414 2004-05-03  Eric Christopher  <echristo@redhat.com>
415
416         * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Move body...
417         * config/s390/s390.c (s390_conditional_register_usage): ...here.
418         * config/s390/s390-protos.h: Prototype.
419
420 2004-05-03  Joe Buck <jbuck@welsh-buck.org>
421
422         * cppfiles.c (pchf_adder): Eliminate use of |= in d->have_once_only
423         assignment.
424
425 2004-05-03  Eric Christopher  <echristo@redhat.com>
426
427         * config/mips/mips.md: Fix branch length attribute definition.
428
429 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
430
431         * config.gcc: Remove --enable-altivec support.
432
433         * config/rs6000/altivec-defs.h: Remove.
434
435 2004-05-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
436
437         * fixinc/inclhack.def (svr4_profil): Don't apply on IRIX 5/6.
438         * fixinc/fixincl.x: Regenerate.
439
440 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
441
442         * config/i386/i386.md (*fyl2x_sfxf3, *fyl2x_dfxf3): Remove insn
443         definition.
444         (log?f2, log10?f2, log2?f2): Reimplement expanders with
445         float_truncate insn.
446         (*fxtractsf3, *fxtractdf3): Remove insn definition.
447         (logb?f2): Reimplement expanders with float_truncate insn.
448
449 2004-05-03  Graham Stott  <graham.stott@btinternet.com>
450
451         PR 14718
452         * dwarf2out.c (dwarf2out_imported_module_or_decl): Use
453         force_type_die for CONST_DECL.
454
455 2004-05-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
456             Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
457
458         * config.gcc (sparc64-*-solaris2*, sparcv9-*-solaris2*): Add
459         tm-dwarf2.h to tm_file.
460         (sparc-*-solaris2*): Add tm-dwarf2.h to tm_file for Solaris 7+.
461         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Delete.
462         (ASM_DEBUG_SPEC): Delete.
463
464 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
465
466         * optabs.h (enum optab_index): Add new OTI_expm1.
467         (expm1_optab): Define corresponding macro.
468         * optabs.c (init_optabs): Initialize expm1_optab.
469         * genopinit.c (optabs): Implement expm1_optab using expm1?f2
470         patterns.
471         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXPM1{,F,L}
472         using expm1_optab.
473         (expand_builtin): Expand BUILT_IN_EXPM1{,F,L} using
474         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
475
476         * config/i386/i386.md (expm1df2, expm1sf2, expm1xf2): New expanders
477         to implement expm1, expm1f and expm1l built-ins as inline x87
478         intrinsics.
479
480 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
481
482         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
483         * config/frv/frv.md (*return_true, *return_false): New patterns.
484
485 2004-05-02  Kazu Hirata  <kazu@cs.umass.edu>
486
487         * rtl.h (PHI_NODE_P): Remove.
488
489 2004-05-02  Eric Botcazou  <ebotcazou@act-europe.fr>
490
491         PR middle-end/14988
492         * function.c (assign_stack_local_1): Use BITS_PER_UNIT alignment
493         when passed -2 as 'align'.
494         (put_var_into_stack): Use 'bool' as the type for the three local
495         predicates.  Adjust calls to put_reg_into_stack.
496         When passed a CONCAT, instruct put_reg_into_stack to use
497         a consecutive stack slot for the second part.
498         (put_reg_into_stack): Remove 'promoted_mode' parameter, add
499         'consecutive_p' parameter.  Turn the three predicates into 'bool'
500         parameters.  Retrieve the register mode from 'reg'.
501         When consecutive_p is true, instruct assign_stack_local_1 to use
502         BITS_PER_UNIT alignment.
503         (put_addressof_into_stack): Use 'bool' as the type for the two
504         local predicates. Adjust call to put_reg_into_stack.
505
506 2004-05-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
507
508         * fold-const.c (fold_convert_const, fold): Add missing
509         FIX_ROUND_EXPR case.
510
511 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
512
513         * configure.ac (FLEX, BISON): Only use tools from the build tree
514         if build equals host.
515         * configure: Rebuilt.
516
517         * config/frv/frv-protos.h (frv_expand_epilogue,
518         frv_expand_fdpic_call): Add bool argument.
519         * config/frv/frv.c (frv_function_ok_for_sibcall): New.
520         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to it.
521         (frv_expand_epilogue): Use new argument to decide whether to emit
522         return instruction or copy the return address to LR.
523         (frv_expand_fdpic_call): Inline PLT entry when emitting direct
524         sibcalls.
525         (sibcall_operand): New.
526         * config/frv/frv.h (PREDICATE_CODES): call_operand doesn't match
527         PLUS nor LABEL_REF.  Add sibcall_operand.
528         * config/frv/frv.md (call, call_value): Pass false to
529         frv_expand_fdpic_call.
530         (call_fdpicdi, call_value_fdpicdi): Insert %i0 in calll.
531         (sibcall, sibcall_internal, sibcall_fdpicdi, sibcall_value,
532         sibcall_value_internal, sibcall_value_fdpicdi): New.
533         (return_unsigned_true, return_unsigned_false): New.
534         (epilogue): Adjust call to frv_expand_epilogue.
535         (sibcall_epilogue): New.
536
537         * config/frv/frv.h (ASM_SPEC): Pass -mno-fdpic as -mnopic.
538         (CPP_SPEC, CPP_SIMPLE_SPEC): Undefine __FRV_ACC__ and __FRV_FPR__
539         before redefining them.
540
541 2004-05-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
542
543         * builtins.c (fold_fixed_mathfn): New function.
544         (fold_builtin_lround, fold_builtin): Use it.
545
546 2004-05-01  Jakub Jelinek  <jakub@redhat.com>
547
548         * config/sparc/linux64.h (TARGET_DEFAULT): Make 64-bit by default
549         also for TARGET_CPU_DEFAULT == TARGET_CPU_ultrasparc3.
550
551 2004-05-01  Kazu Hirata  <kazu@cs.umass.edu>
552
553         * config/cris/cris.h: Revert my "fix comment typos" patch.
554
555 2004-05-01  Richard Sandiford  <rsandifo@redhat.com>
556
557         * config/mips/mips.h (TUNE_MACC_CHAINS): Fix comment.
558
559 2004-05-01  Falk Hueffner  <falk@debian.org>
560
561         * config/alpha/alpha.md (builtin_insbl, builtin_inswl,
562         builtin_insll): Disallow 0 as first input operand.
563
564 2004-05-01  Falk Hueffner  <falk@debian.org>
565
566         * config/alpha/alpha.c (alpha_rtx_costs): Fix shiftadd costs.
567
568 2004-05-01  Ulrich Weigand  <uweigand@de.ibm.com>
569
570         PR middle-end/15054
571         * expr.c (expand_expr_real): Do not call preserve_temp_slots
572         on a TARGET_EXPR temp.
573         * function.c (assign_stack_temp_for_type): Set 'keep' flag for
574         TARGET_EXPR temp slots.
575
576 2004-05-01  Paolo Bonzini  <bonzini@gnu.org>
577
578         * simplify-rtx.c (simplify_ternary_operation): When
579         converting an IF_THEN_ELSE to a relational op, return
580         correct mode.
581
582 2004-04-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
583
584         * builtins.c (fold_builtin_round): Fix comment typo.
585         (fold_builtin_lround): New function.
586         (fold_builtin): Use it.
587
588 2004-04-20  Andrew Pinski  <pinskia@physics.uc.edu>
589
590         PR target/11608
591         * config/sh/elf.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Update and make it
592         more like the one in config/dbxelf.h.
593
594 2004-04-30  Zack Weinberg  <zack@codesourcery.com>
595
596         * tree.h (SET_ARRAY_OR_VECTOR_CHECK): Rename to SET_OR_ARRAY_CHECK
597         and adjust definition accordingly.
598         (TYPE_DOMAIN): Allow only SET_TYPE and ARRAY_TYPE.
599         (TYPE_DEBUG_REPRESENTATION_TYPE): Allow only VECTOR_TYPE.
600         * expr.c (store_constructor): Do not access TYPE_DOMAIN of a
601         VECTOR_TYPE.
602
603 2004-04-30  Jason Merrill  <jason@redhat.com>
604
605         PR c++/14587
606         * config/i386/winnt.c (associated_type): Look for attributes on
607         the TYPE_MAIN_VARIANT of *this.
608         * attribs.c (decl_attributes): If ATTR_FLAG_TYPE_IN_PLACE, also
609         apply the attributes to the variants.
610
611 2004-04-30  Paul Brook  <paul@codesourcery.com>
612
613         * config.gcc: Simplify arm --with-{cpu,tune} test.
614         * config/arm/arm-cores.def: Document whitespace restrictions.
615
616 2004-04-30  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
617
618         PR other/1963
619         * config/alpha/osf.h (SWITCHES_NEED_SPACES): Define.
620
621 2004-04-30  Brian Ford  <ford@vss.fsi.com>
622             DJ Delorie  <dj@redhat.com>
623
624         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
625         (DWARF2_DEBUGGING_INFO): Define to enable.
626         (DBX_REGISTER_NUMBER): Define to use the svr4 register map for
627         DWARF2.
628         * configure.ac (Target-specific assembler checks)
629         <i[34567]86-*-[cygwin*|pe|mingw32*]>: New test for .secrel32
630         relocs.
631         * configure: Regenerate.
632         * config.in: Likewise.
633
634         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
635         (ASM_OUPUT_DWARF_OFFSET): Define.
636
637 2004-04-29  Andreas Krebbel  <krebbel1@de.ibm.com>
638
639         * config/s390/s390-protos.h (s390_emit_epilogue): Parameter added.
640         (s390_emit_call): New function prototype added.
641         (s390_tls_get_offset): Function removed.
642         * config/s390/s390.c (s390_function_ok_for_sibcall,
643         s390_call_saved_register_used_p): New functions.
644         (TARGET_FUNCTION_OK_FOR_SIBCALL): Definition of target macro added.
645         (s390_tls_get_offset): Function merged into s390_emit_tls_call_insn.
646         (s390_emit_tls_call_insn): New function.
647         (legitimize_tls_address): Call s390_emit_tls_call_insn instead of
648         emit_call_insn.
649         (s390_emit_prologue): Use s390_emit_call instead of emit_call_insn.
650         (s390_emit_epilogue): Like s390_emit_prologue. Parameter for sibcalls
651         added.
652         * config/s390/s390.h (SIBCALL_REGNUM): New macro representing the
653         register number used to hold the target address for sibcalls.
654         * config/s390/s390.md ("sibcall", "sibcall_value", "sibcall_epilogue"):
655         New expanders.
656         ("*sibcall_br", "*sibcall_brc", "*sibcall_brcl", "*sibcall_value_br",
657         "*sibcall_value_brc", "*sibcall_value_brcl"): New insns.
658         ("call_exp", "call_value_exp", "call_value_tls", "call_value_tls_exp"):
659         Expanders removed.
660         ("call", "call_value"): Call s390_emit_call to emit the call patterns.
661         ("*bras", "*brasl", "*bras_r", "*brasl_r", "*bras_tls", "*brasl_tls",
662         "*basr", "*basr_r", "*basr_tls"): Added constraint: !SIBLING_CALL_P.
663         ("epilogue"): Changed the call to s390_emit_epilogue to use the
664         new parameter.
665
666 2004-04-30  Kazu Hirata  <kazu@cs.umass.edu>
667
668         * bb-reorder.c, c-opts.c, cfglayout.c, cgraph.c, cgraphunit.c,
669         cppfiles.c, fold-const.c, ggc-zone.c, loop-doloop.c, optabs.c,
670         reg-stack.c, varasm.c, config/alpha/ev4.md,
671         config/alpha/ev5.md, config/alpha/ev6.md, config/arm/arm.c,
672         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.c,
673         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
674         config/frv/frv.h, config/frv/frv.md, config/h8300/h8300.c,
675         config/i386/i386.c, config/i386/i386.md, config/i386/winnt.c,
676         config/ia64/itanium2.md, config/ip2k/ip2k.c,
677         config/mips/mips.c, config/mips/mips.h, config/mips/sr71k.md,
678         config/pa/pa.c, config/s390/s390.c, config/sh/sh.c: Fix
679         comment typos.
680
681 2004-04-30  Paul Brook  <paul@codesourcery.com>
682
683         * config.gcc: Default ep9312 to hard-float.
684         * config/arm/arm-cores.def: Add ARCH field.
685         * config/arm/arm.c (FL_FOR_ARCH*): Define.
686         (arm_arch_cirrus): New variable.
687         (all_cores): Set and use arch.
688         (all_architectures): Ditto.
689         (arm_arch_name): New variable.
690         (arm_override_options): Set it. Use [SUB]TARGET_CPU_DEFAULT.
691         Set and use arm_arch_cirrus.
692         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set arch defines.
693         (enum processor_type): Update ARM_CORE define.
694         (enum target_cpus): Add.  Replaces TARGET_CPU_* defines.
695         (CPP_SPEC): Remove %(cpp_cpu_arch).
696         (CPP_ARCH_DEFAULT_SPEC): Remove.
697         (CPP_CPU_ARCH_SPEC): Remove.
698         (EXTRA_SPECS): Don't use CPP_*ARCH*_SPEC.
699         (FPUTYPE_DEFAULT): Don't define here.
700
701 2004-04-30  J"orn Rennecke <joern.rennecke@superh.com>
702
703         * flow.c (propagate_one_insn): Call mark_set_regs for stack pointer
704         updates too.
705
706 2004-04-30  Paul Brook  <paul@codesourcery.com>
707
708         * arm.c (arm_needs_doubleword_align): Use mode alignment.
709
710 2004-04-30  Paolo Bonzini  <bonzini@gnu.org>
711
712         * config/altivec/altivec.h [__cplusplus] (vec_subsubs): Rename to
713         vec_sububs.
714         [__cplusplus] (vec_subsuhs): Rename to vec_subuhs, without
715         duplicates.
716
717 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
718
719         * config/i386/i386.md (atansf2, atandf2, atanxf2): Move near
720         atan2?f3 expanders.
721
722 2004-04-29  Nick Clifton  <nickc@redhat.com>
723
724         Bug 14093
725         * config/sh/sh-protos.h (sh_promote_prototypes): Declare.
726         * config/sh/sh.c (sh_promote_prototypes): Remove declaration.
727         Delete static from definition.
728         * config/sh/sh.h (FUNCTION_VALUE): Add sh_promote_prototypes call.
729
730 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
731
732         * reg-stack.c (subst_stack_regs_pat): <UNSPEC_SIN, UNSPEC_COS,
733         UNSPEC_FRNDINT, UNSPEC_F2XM1>: abort() if src1 dies.
734         <UNSPEC_SINCOS_COS, UNSPEC_TAN_ONE, UNSPEC_XTRACT_FRACT>: Same.
735         <UNSPEC_SINCOS_SIN, UNSPEC_TAN_TAN, UNSPEC_XTRACT_EXP>: Same.
736
737 2004-04-29  Richard Guenther  <richard.guenther@uni-tuebingen.de>
738
739         * commom.opt (Wfatal-errors): Add it.
740         * diagnostic.c (flag_fatal_errors): Define it.
741         (diagnostic_action_after_output): Check for flag_fatal_errors.
742         * flags.h (flag_fatal_errors): Declare it.
743         * opts.c (common_handle_option): Add OPT_Wfatal_errors.
744         * doc/invoke.texi (Warning Options): Document -Wfatal-errors.
745
746 2004-04-30  Josef Zlomek  <zlomekj@suse.cz>
747
748         * gcse.c (remove_reachable_equiv_notes): Delete notes also in
749         blocks which have kill flag set.
750
751 2004-04-29  Ben Elliston  <bje@au.ibm.com>
752
753         * configure.ac (--with-as): Abort if user-supplied assembler
754         cannot be executed.
755         (--with-ld): Likewise for the linker.
756         * configure: Regenerate.
757
758 2004-04-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
759
760         * convert.c (convert_to_integer): Ensure `long_integer_type_node'
761         isn't NULL before using it.
762
763 2004-04-29  Richard Sandiford  <rsandifo@redhat.com>
764
765         PR target/15189
766         * config/mips/mips.md (load_df_low): Use default length.
767         (load_df_high, store_df_high): Likewise.
768
769 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
770
771         * config/mips/mips.md, config/mips/sb1.md,
772         config/rs6000/rs6000.c: Fix comment typos.
773
774 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
775
776         * builtins.c, cgraph.c, cgraphunit.c, final.c, fold-const.c:
777         Fix comment typos.
778
779 2004-04-29  Douglas B Rupp  <rupp@gnat.com>
780
781         * gcc.c (DELETE_IF_ORDINARY): New macro default definition.
782         (delete_if_ordinary): Use above macro.
783         * config/alpha/xm-vms.h (DELETE_IF_ORDINARY): New macro VMS definition.
784         Update copyright.
785         * doc/hostconfig.texi (DELETE_IF_ORDINARY): Document new macro.
786
787 2004-04-29  Richard Earnshaw  <rearnsha@arm.com>
788
789         * c-decl.c (get_parm_info): Use the correct tag keywords when
790         warning about type declarations in prototypes.
791
792 2004-04-29  Paul Brook  <paul@codesourcery.com>
793
794         * config.gcc: Pull list of cores from arm-cores.def.
795
796 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
797
798         * combine.c (combine_simplify_rtx): Adjust call to use
799         simplify_relational_operation.  Do not use SELECT_CC_MODE
800         when a comparison already has a MODE_CC mode.
801
802 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
803
804         (simplify_set): simplify_relational_operation may now
805         return another relational expression.
806         * cse.c (fold_rtx): simplify_relational_operation now
807         takes of computing the comparison mode.
808         * dojump.c (compare_from_rtx): Use simplify_relational_operation,
809         remove dead code.
810         (do_compare_rtx_and_jump): Likewise.
811         * integrate.c (subst_constants): simplify_relational_operation
812         may now return another relational expression.
813         * simplify-rtx.c (simplify_gen_relational): Move most code to
814         the new simplify_relational_operation and
815         simplify_relational_operation_1 functions.
816         (simplify_relational_operation): Rewritten.
817         (simplify_relational_operation_1): New function.
818         (simplify_ternary_operation): simplify_relational_operation
819         may now return another relational expression.
820         (simplify_rtx): Remove unnecessary temp variable.
821
822 2004-04-29  Uros Bizjak  <uros@kss-loka.si>
823
824         * reg-stack.c (swap_to_top): New function.
825         (subst_stack_regs_pat): UNSPEC_FPATAN, UNSPEC_FYL2X: Use
826         swap_to_top().
827         (subst_stack_regs_pat): UNSPEC_FSCALE: Remove.
828         (subst_stack_regs_pat): Handle UNSPEC_FSCALE_FRACT and
829         UNSPEC_FSCALE_EXP.
830
831         * config/i386/i386.md (UNSPEC_FSCALE): Remove.
832         (*fscale_sfxf3, *fscale_dfxf3, *fscale_xf3): Remove insn pattern.
833         (UNSPEC_FSCALE_FRACT, UNSPEC_FSCALE_EXP): New unspecs to represent
834         x87's fscale insn.
835         (*fscalexf4: Define new insn pattern to implement x87 fscale insn.
836         (exp?f2, exp10?f2, exp2?f2): Use *fscalexf4 and float_truncate
837         patterns.
838
839 2004-04-28  Serge Belyshev  <1319@bot.ru>
840
841         PR 14944
842         * coverage.c (read_counts_file): Fix usage of warning () call.
843         * pretty-print.c (pp_base_format_text): Fix typo in the comment.
844
845 2004-04-28  Ben Elliston  <bje@au.ibm.com>
846
847         * doc/invoke.texi (Objective-C Dialect Options): Don't prefix
848         options with "-" in the option index.
849         (SPARC Options): Likewise.
850         (M32R/D Options): Likewise.
851
852 2004-04-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
853
854         * convert.c (convert_to_integer): Convert (long)round -> lround,
855         etc.
856
857 2004-04-28  Andrew Pinski  <pinskia@physics.uc.edu>
858
859         * config/rs6000/rs6000.c (registers_ok_for_quad_peep):
860         Return false if we do not have fp register.
861         (addrs_ok_for_quad_peep): Rename to ...
862         (mems_ok_for_quad_peep): this.
863         Add check for volatile memory.
864         * config/rs6000/rs6000-protos.h (addrs_ok_for_quad_peep):
865         Rename to ...
866         (mems_ok_for_quad_peep): this.
867         * config/rs6000/rs6000.md: Change peephole's for lfq/stq
868         to peephole2's.
869         (lfq_power2): New instruction.
870         (stfq_power2): Likewise.
871
872 2004-04-28  Jan Hubicka  <jh@suse.cz>
873
874         PR c/15004
875         * function.c (do_warn_unused_parameter): Break out form ...
876         (expand_function_end): ... here; warn only when not using cgraphunit.
877         * function.h (do_warn_unused_parameter): Declare.
878         * cgraphunit.c: Include function.h.
879         (cgraph_finalize_function): Do unused parameter warning.
880         * Makefile.in (cgraphunit.o): Depend on function.h
881
882 2004-04-28  Joseph S. Myers  <jsm@polyomino.org.uk>
883
884         * Makefile.in ($(DESTDIR)$(infodir)/%.info): Don't condition
885         calling install-info on $(DESTDIR)$(infodir)/dir already being
886         present.
887
888 2004-04-28  Paul Brook  <paul@codesourcery.com>
889
890         * dwarf2out.c (mem_loc_descriptor): Handle shifts.
891
892 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
893
894         * gcse.c (find_moveable_store): Do not accept store insns with
895         REG_EH_REGION note.
896
897 2004-04-28  Paul Brook  <paul@codesourcery.com>
898
899         * calls.c (precompute_arguments): Remove PROMOTE_FOR_CALL_ONLY.
900         * function.c (assign_temp): Ditto.
901         * system.h (PROMOTE_FOR_CALL_ONLY): Poison.
902
903 2004-04-28  Paul Brook  <paul@codesourcery.com>
904
905         * config/arm/lib1funcs.asm: Recognize armv5tej and armv6.
906
907 2004-04-28  Josef Zlomek  <zlomekj@suse.cz>
908
909         * var-tracking.c (variable_different_p): Add a parameter
910         compare_current_location, compare current location of variable parts
911         if it is true.
912         (dataflow_set_different_1): Pass compare_current_location == false.
913         (dataflow_set_different_2): Pass compare_current_location == false.
914         (emit_notes_for_differences_1): Pass compare_current_location == true.
915
916 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
917
918         * config/s390/s390.md ("casesi"): Mark jump table access as
919         non-trapping and unchanging.
920
921 2004-04-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
922
923         PR debug/14829
924         * dwarf2out.c (reg_number): Rename to dbx_reg_number.  Adjust all
925         callers.
926         (multiple_reg_loc_descriptor, reg_loc_descriptor): Use gcc register
927         number for indexing hard_regno_nregs array.
928
929 2004-04-27  Geoffrey Keating  <geoffk@apple.com>
930
931         * config/darwin.h (STARTFILE_SPEC): Use %s to find crt2.o.
932         * config/darwin-crt2.c: Only have contents on __ppc__.
933
934 2004-04-27  Bob Wilson  <bob.wilson@acm.org>
935
936         * config/xtensa/xtensa.c (call_insn_operand): Check
937         SYMBOL_REF_EXTERNAL_P in addition to SYMBOL_REF_LOCAL_P.
938         * config/xtensa/xtensa.h (LEGITIMATE_PIC_OPERAND): Likewise.
939         * config/xtensa/xtensa.md (call, call_value): Likewise.
940
941 2004-04-27  Wu Yongwei  <adah@sh163.net>
942
943         * gthr-win32.h (__gthread_mutex_t): Change typedef to new structure.
944         (__GTHREAD_MUTEX_INIT_DEFAULT): Adjust.
945         (__gthread_mutex_init_function): Replace CreateMutex with
946         initialization of custom mutex using CreateSemaphore.
947         (__gthread_mutex_lock): Use InterlockedIncrement.
948         (__gthread_mutex_trylock): Use InterlockedCompareExchange.
949         (__gthread_mutex_unlock): Use InterlockedDecrement and
950         ReleaseSemaphore to unlock
951         * config/i386/gthr-win32.c (__gthread_mutex_init_function,
952         __gthread_mutex_lock, __gthread_mutex_trylock,
953         __gthread_mutex_unlock): Adjust to match inline versions in
954         gthr-win32.h.
955
956 2004-04-27  Paul Brook  <paul@codesourcery.com>
957
958         * config/arm/arm.c (arm_promote_prototypes): New function.
959         (TARGET_PROMOTE_PROTOTYPES): Use it.
960
961 2004-04-27  Paul Brook  <paul@codesourcery.com>
962
963         * config/arm/arm.c (arm_expand_epilogue): Count blocks of 4 regs.
964
965 2004-04-26  Bernard Giroud  <bgiroud@free.fr>
966
967         * config/alpha.c (alpha_end_function): For OpenVMS gas,
968         correctly output .pdesc directive before .end.
969
970 2004-04-26  James E Wilson  <wilson@specifixinc.com>
971
972         Bug 14927
973         * config/ia64/ia64.md (movxf): New local op0.  Handle case where
974         operands[0] is a SUBREG.  Handle case where operands[1] is a GR reg.
975
976 2004-04-26  Zack Weinberg  <zack@codesourcery.com>
977
978         * config/ia64/hpux.h: Predefine __STDCPP__ when compiling C++.
979         * config/pa/pa-hpux10.h: Likewise.
980         * config/pa/pa-hpux11.h: Likewise.
981
982 2004-04-26  Geoffrey Keating  <geoffk@apple.com>
983
984         * doc/invoke.texi (Overall Options): Document default for -o
985         for PCH files.
986
987 2004-04-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
988
989         * builtins.c (expand_builtin_update_setjmp_buf): New function.
990         (expand_builtin, case BUILT_IN_UPDATE_SETJMP_BUF): New case.
991         * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): New code.
992
993 2004-04-26  Paul Brook  <paul@codesourcery.com>
994
995         * config/arm/arm.c (arm_legitimate_index_p): Correct iwmmxt offsets.
996
997 2004-04-26  Paul Brook  <paul@codesourcery.com>
998
999         * config/arm/arm.c (arm_legitimate_index_p): Correct maverick offsets.
1000
1001 2004-04-25  Roger Sayle  <roger@eyesopen.com>
1002
1003         * fold-const.c (fold): Prefer fold_convert (negate_expr (...)) to
1004         fold (build1 (NEGATE_EXPR, ...)).  Optimize X / -1 as -X and
1005         X % -1 as 0.
1006
1007 2004-04-26  Hans-Peter Nilsson  <hp@bitrange.com>
1008
1009         PR bootstrap/15141
1010         * except.c (connect_post_landing_pads): Delete insns after the
1011         barrier when generating a unwind_resume_libfunc call.
1012
1013 2004-04-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1014
1015         PR/c++ 15119
1016         * tree.c (substitute_placeholder_in_expr, case 4): New case,
1017         for TARGET_EXPR.
1018
1019 2004-04-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1020
1021         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
1022         __gcov_execv, __gcov_execvp, __gcov_execve): Do not declare when
1023         inhibit_libc is defined.
1024
1025 2004-04-25  Richard Sandiford  <rsandifo@redhat.com>
1026
1027         * config/mips/mips-protos.h (mips_linked_macc_p): Declare.
1028         * config/mips/mips.h (TUNE_MACC_CHAINS): New macro.
1029         * config/mips/mips.c (TARGET_SCHED_REORDER): Define.
1030         (TARGET_SCHED_VARIABLE_ISSUE): Define.
1031         (mips_adjust_cost): Move later in file, next to other sched hooks.
1032         (mips_macc_chains_last_hilo): New variable.
1033         (mips_linked_madd_p, mips_macc_chains_record, mips_macc_chains_reorder)
1034         (mips_promote_ready, mips_sched_reorder, mips_variable_issue): New.
1035         * config/mips/mips.md (may_clobber_hilo): New attribute.
1036
1037 2004-04-24  Roger Sayle  <roger@eyesopen.com>
1038             Bruce Korb  <bkorb@gnu.org>
1039
1040         * fixinc/inclhack.def (aix_syswait_2): New fix.
1041         * fixinc/fixincl.x: Regenerate.
1042         * fixinc/tests/base/sys/wait.h: Update for new test.
1043
1044 2004-04-24  Alan Modra  <amodra@bigpond.net.au>
1045
1046         PR target/14960
1047         * config/rs6000/rs6000.c (rs6000_stack_info): Rename total_raw_size
1048         to non_fixed_size, and leave out fixed_size from the sum.
1049         (generate_set_vrsave): Correct clobbers.
1050         (rs6000_emit_epilogue): Test TARGET_ALTIVEC with TARGET_ALTIVEC_SAVE.
1051         (rs6000_function_value): Test TARGET_ALTIVEC and TARGET_ALTIVEC_ABI.
1052         (rs6000_libcall_value): Likewise.
1053         * config/rs6000/rs6000.h (FUNCTION_VALUE_REGNO_P): Likewise.
1054         (FUNCTION_ARG_REGNO_P): Likewise.
1055
1056 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
1057
1058         * expmed.c (expand_mult_highpart_adjust): Do not assume OP1
1059         is a CONST_INT.
1060         (expand_mult_highpart_optab): Call expand_mult_highpart_adjust
1061         with NARROW_OP1 instead of OP1.
1062
1063 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
1064
1065         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __s390__
1066         and __s390x__ hosts.
1067
1068 2004-03-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1069
1070         * Makefile.in (LIBGCOV): Add _gcov_fork, _gcov_execl, _gcov_execlp,
1071         _gcov_execle, _gcov_execv, _gcov_execvp, _gcov_execve.
1072         * builtin-types.def (BT_PID, BT_PTR_CONST_STRING, BT_FN_PID,
1073         BT_FN_INT_CONST_STRING_PTR_CONST_STRING,
1074         BT_FN_INT_CONST_STRING_PTR_CONST_STRING_PTR_CONST_STRING): New.
1075         * builtins.c (expand_builtin_fork_or_exec): New.
1076         (expand_builtin): Call it.
1077         * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP,BUILT_IN_EXECLE,
1078         BUILT_IN_EXECV, BUILT_IN_EXECVP, BUILT_IN_EXECVE, BUILT_IN_FORK): New.
1079         * c-common.c (PID_TYPE): New macro.
1080         (c_common_nodes_and_builtins): Initialize pid_type_node.
1081         * calls.c (special_function_p): Do not handle fork and exec.
1082         (expand_call): Do not handle ECF_FORK_OR_EXEC.
1083         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
1084         __gcov_execv, __gcov_execvp, __gcov_execve): Declare.
1085         * libgcov.c (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
1086         __gcov_execv, __gcov_execvp, __gcov_execve): New.
1087         * tree.h (enum tree_index): Add TI_PID_TYPE.
1088         (pid_type_node): New macro.
1089         (ECF_FORK_OR_EXEC): Removed.
1090
1091 2004-04-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
1092
1093         PR optimization/13985
1094         * cfgloopmanip.c (fix_loop_placements): New prototype.
1095         Call fix_bb_placements on the preheader of loops that have
1096         been reparented.
1097         (remove_path): Adjust call to fix_loop_placements.
1098
1099 2004-04-23  Andrew Pinski  <pinskia@physics.uc.edu>
1100
1101         * config/darwin7.h: New file.
1102         * config.gcc (*-*-darwin*): Add darwin7.h if the
1103         version is greater than 6.
1104         * config/darwin.h (TARGET_C99_FUNCTIONS): Define.
1105         (MATH_LIBRARY): Wrap in ifdefs.
1106
1107 2004-04-23  Daniel Jacobowitz  <drow@mvista.com>
1108
1109         * config/arm/arm.c (arm_output_epilogue): Reverse the order of
1110         loading iWMMXt registers with a frame pointer.  Use post-increment
1111         without a frame pointer.
1112         (arm_expand_prologue): Reverse the order of saving iWMMXt registers.
1113
1114 2004-04-23  Paolo Bonzini  <bonzini@gnu.org>
1115
1116         * doc/invoke.texi (Optimize Options): Refer to "unit-at-a-time
1117         mode" rather than "-funit-at-a-time" since -O2 enables it
1118         without requiring -f* options.  Refer to -fprofile-generate and
1119         -fprofile-use correctly.  Move -funit-at-a-time among options
1120         enabled by -O.  Add information about unit-at-a-time caveats.
1121
1122 2004-04-22  Per Bothner  <per@bothner.com>
1123
1124         * line-map.h (struct line_maps):  New field highest_line.
1125         (linemap_position_for_column):  Make non-inline function.
1126         (LINEMAP_POSITION_FOR_COLUMN):  New macro.
1127         * line-map.c (linemap_init):  Clear highest_line field.
1128         (linemap_add):  Set highest_line field.
1129         (linemap_line_start):  Minor optimization - use highest_line field.
1130         Reduce maximum column hint to 10000.  Update highest_line field.
1131         (linemap_position_for_column):  Moved from line-map.h.  Optimize a bit.
1132         * cpphash.h (struct cpp_reader):  Remove line field - instead use
1133         line_table->highest_line.
1134         (saved_line):  Remove unused field.
1135         (CPP_INCREMENT_FILE):  Don't do linemap_lookup - just use newest map.
1136         Use  line_table's highest_line field instead of cpp_reader's line.
1137         * cpplib.c (start_directive):  Likewise use highest_line field.
1138         (do_line, do_linemarker):  Likewise just use newest map.
1139         (_cpp_do_file_change):  Don't need to set cpp_reader's line field.
1140         * cpperror.c (cpp_error):  Likewise use highest_line field.
1141         * cppfiles.c (open_file_failed:  Likewise.
1142         (cpp_make_system_header):  Likewise use newest map and highest_line.
1143         * cppinit.c (cpp_create_reader):  Don't initialize removed field.
1144         * cpplex.c (_cpp_process_line_notes, _cpp_skip_block_comment,
1145         skip_line_comment, skip_whitespace, _cpp_get_fresh_line,
1146         _cpp_lex_direct):  Likewise use highest_line.
1147         (_cpp_lex_direct):  Use new LINEMAP_POSITION_FOR_COLUMN macro.
1148         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use highest_line,
1149         and use newest map.
1150         * cpppch.c (cpp_read_state):  Don't save+restore cpp_reader's line.
1151         * cpptrad.c (_cpp_overlay_buffer):  Don't save cpp_reader's line.
1152         (copy_comment, _cpp_scan_out_logical_line):  Likewise use highest_line.
1153
1154 2004-04-23  Alan Modra  <amodra@bigpond.net.au>
1155
1156         PR bootstrap/14992
1157         * gcc.c (init_gcc_specs): Test USE_LD_AS_NEEDED, not HAVE_LD_AS_NEEDED.
1158         * config/linux.h (USE_LD_AS_NEEDED): Define.
1159         * gcc/config/alpha/linux.h (USE_LD_AS_NEEDED): Define.
1160         * gcc/config/arm/linux-elf.h (USE_LD_AS_NEEDED): Define.
1161         * gcc/config/rs6000/linux.h (USE_LD_AS_NEEDED): Define.
1162         * gcc/config/rs6000/linux64.h (USE_LD_AS_NEEDED): Define.
1163         * gcc/config/sh/linux.h (USE_LD_AS_NEEDED): Define.
1164         * gcc/config/sparc/linux.h (USE_LD_AS_NEEDED): Define.
1165         * gcc/config/sparc/linux64.h (USE_LD_AS_NEEDED): Define.
1166
1167 2004-04-22  Per Bothner  <per@bothner.com>
1168
1169         * cppinit.c (cpp_read_main_file):  Return NULL rather than false.
1170         Fixes PR preprocessor/15067.
1171
1172 2004-04-23  Andreas Schwab  <schwab@suse.de>
1173
1174         * config/ia64/ia64intrin.h: Add intermediate cast to void * to
1175         avoid aliasing warning.
1176
1177 2004-04-22  Jan Hubicka  <jh@suse.cz>
1178             Mostafa Hagog <mustafa@il.ibm.com>
1179
1180       * cfgloopmanip.c (scale_bbs_frequencies): Use RDIV macro
1181       * cfgloopanal.c (expected_loop_iterations): Change the return value
1182
1183 2004-04-22  Jakub Jelinek  <jakub@redhat.com>
1184
1185         * cselib.h (struct elt_loc_list): Remove canon_loc field.
1186         * cselib.c (new_elt_loc_list): Remove canon_loc initialization.
1187         (cselib_invalidate_mem): Remove all canon_loc and canon_x
1188         traces.
1189
1190 2004-04-22  Josef Zlomek  <zlomekj@suse.cz>
1191
1192         Revert
1193         2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
1194
1195                 * var-tracking.c (variable_part_different_p): Variable parts
1196                 differ when the most recent locations differ.
1197
1198 2004-04-22  Richard Sandiford  <rsandifo@redhat.com>
1199
1200         * doc/invoke.texi: Remove the MIPS -membedded-pic option.
1201         * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): Delete.
1202         (embedded_pic_offset): Delete.
1203         * config/mips/mips.h (MASK_EMBEDDED_PIC): Delete.  Shuffle other
1204         MASK_* constants.
1205         (TARGET_EMBEDDED_PIC): Delete.
1206         (TARGET_SWITCHES): Remove -m{no-,}embedded-pic.
1207         (ASM_SPEC): Remove -membedded-pic.
1208         (ASM_OUTPUT_ADDR_DIFF_ELT): Remove embedded-pic handling.
1209         (ASM_OUTPUT_CASE_LABEL): Likewise.
1210         * config/mips/vxworks.h (ASM_SPEC): Remove -membedded-pic.
1211         * config/mips/windiss.h (ASM_SPEC): Likewise.
1212         * config/mips/mips.c (struct machine_function): Remove
1213         embedded_pic_fnaddr_rtx.
1214         (TARGET_ENCODE_SECTION_INFO): Remove override.
1215         (embedded_pic_fnaddr_reg, embedded_pic_offset): Delete.
1216         (override_options): Remove -membedded-pic handling.
1217         (print_operand): Remove handling of '%S'.
1218         (mips_select_section: Remove -membedded-pic handling.
1219         (mips_encode_section_info): Delete.
1220         (mips_output_conditional_branch): Remove mention of -membedded-pic.
1221         * config/mips/mips.md (define_attr length, movsi, movdi, jump): Remove
1222         -membedded-pic handling.
1223         (casesi, casesi_internal, casesi_internal_di, get_fnaddr): Delete.
1224
1225 2004-04-22  Alan Modra  <amodra@bigpond.net.au>
1226
1227         * var-tracking.c (frame_base_decl): Remove useless GTY.
1228
1229 2004-04-21  Aldy Hernandez  <aldyh@redhat.com>
1230
1231         * config/rs6000/rs6000.c (rs6000_override_options): Error when
1232         user wants altivec and e500 instructions.
1233
1234 2004-04-21  H.J. Lu  <hongjiu.lu@intel.com>
1235
1236         PR target/14813
1237         * config/ia64/crtend.asm: Move pointer to __do_global_ctors_aux
1238         in .init_array section to ...
1239         * config/ia64/crtbegin.asm: Here.
1240
1241         * config/ia64/crtend.asm: Mark __do_global_ctors_aux global
1242         and hidden if HAVE_INITFINI_ARRAY is defined.
1243
1244 2004-04-21  James E Wilson  <wilson@specifixinc.com>
1245
1246         * config/mips/mips-protos.h (fp_register_operand, lo_operand): Declare.
1247         * config/mips/mips.c (mips_multipass_dfa_lookahead): Declare.
1248         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): New.
1249         (fp_register_operand, lo_operand): New.
1250         (mips_rtx_costs): Add TUNE_SB1 support.
1251         (mips_issue_rate): Add comment.  Add PROCESSOR_SB1 support.
1252         (mips_use_dfa_pipeline_interface): Add PROCESSOR_SB1 support.
1253         (mips_multipass_dfa_lookahead): New.
1254         * config/mips/mips.h (MASK_FP_EXCEPTIONS, TARGET_FP_EXCEPTIONS,
1255         TUNE_SB1): New.
1256         (TARGET_SWITCHES): Add -mfp-exceptions support.
1257         (TARGET_FP_EXCEPTIONS_DEFAULT): New.
1258         (BRANCH_COST): Fix whitespace.
1259         * config/mips/mips.md: Include sb1.md.
1260         * config/mips/sb1.md: New file.
1261         * doc/invoke.texi: Document -mfp-exceptions.
1262
1263         * Makefile.in (fixinc.sh): Don't set or export WARN_CFLAGS.  Fix
1264         comment.
1265         * fixinc/Makefile.in (FL_LIST): Don't mention WARN_CFLAGS.
1266         (fixincl.o-warn): Delete.
1267
1268 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
1269
1270         * config/rs6000/rs6000 (print_operand) ['z']:
1271         Change ifdef of TARGET_MACHO to if TARGET_MACHO.
1272
1273 2004-04-21 Daniel Jacobowitz  <drow@mvista.com>
1274
1275         * config.gcc: Support --with-arch=iwmmxt for ARM.
1276
1277 2004-04-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1278
1279         * expmed.c (expand_mult_highpart_optab): Use narrower version of OP1
1280         in two more places; remove unneeded force_reg
1281
1282 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
1283
1284         * config/rs6000/rs6000.c (symbol_ref_operand): Remove hack
1285         for TARGET_MACHO.
1286         (print_operand): For TARGET_MACHO check to see if we need a stub
1287         and output one if we need it.
1288
1289         PR debug/15033
1290         * dwarf2out.c (rtl_for_decl_location): Check for NULL
1291         rtl.
1292
1293 2004-04-20  James E Wilson  <wilson@specifixinc.com>
1294
1295         * config/ia64/ia64.md (call_value_nogp): Add constraints for op0.
1296         (vall_value_gp): Likewise.
1297
1298 2004-04-20  DJ Delorie  <dj@redhat.com>
1299
1300         * dwarf2out.c (rtl_for_decl_location): Adjust rtl for byte
1301         variables stored in word registers, then in memory.
1302
1303 2004-04-20  Eric Christopher  <echristo@redhat.com>
1304
1305         * cp/parser.c (cp_parser_declaration): Move translate
1306         up before tokens are lexed.
1307
1308 2004-04-20  Uros Bizjak  <uros@kss-loka.si>
1309
1310         * optabs.h (enum optab_index): Add new OTI_asin and OTI_acos.
1311         (asin_optab, acos_optab): Define corresponding macros.
1312         * optabs.c (init_optabs): Initialize asin_optab and acos_optab.
1313         * genopinit.c (optabs): Implement asin_optab and acos_optab
1314         using asin?f2 and acos?f2 patterns.
1315         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_ASIN{,F,L}
1316         using asin_optab, and BUILT_IN_ACOS{,F,L} using acos_optab.
1317         (expand_builtin): Expand BUILT_IN_ASIN{,F,L} and BUILT_IN_ACOS{,F,L}
1318         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
1319
1320         * config/i386/i386.md (asindf2, asinsf2, asinxf2, acosdf2,
1321         acossf2, acosxf2): New expanders to implement asin, asinf, asinl,
1322         acos, acosf and acosl built-ins as inline x87 intrinsics.
1323
1324 2004-04-20  Paul Brook  <paul@codesourcery.com>
1325
1326         * config/arm/arm.c (arm_legitimate_address_p): Use rtx_equal_p.
1327
1328 2004-04-20  Paul Brook  <paul@codesourcery.com>
1329
1330         * config/arm/arm.c (arm_expand_prologue): Fix size calculation.
1331
1332 2004-04-20  Paolo Bonzini  <bonzini@gnu.org>
1333
1334         Revert part of 2004-04-17 change that moved -frename-registers
1335         to -O1.  -frename-registers is buggy.
1336
1337         * toplev.c (flag_rename_registers): Initialize to 0.
1338         * doc/invoke.texi (Optimize options): Move -frename-registers
1339         to "Not triggered by any -O level" section.  Adjust commentary
1340         accordingly.
1341
1342 2004-04-20  Anil Paranjpe <anilp1@kpitcummins.com>
1343
1344         * toplev.c (compile_file): Move targetm.asm_out.file_end call to end.
1345
1346 2004-04-20  Richard Sandiford  <rsandifo@redhat.com>
1347
1348         * config/mips/mips.c (mips_legitimize_move): Generate special patterns
1349         for mflo and mfhi instructions.
1350         (mips_output_move): Remove mflo and mfhi handling.
1351         * config/mips/mips.md (UNSPEC_MFHILO): New unspec.
1352         (*mulsidi3_64bit): Update for new mfhi/mflo representation.
1353         Likewise various define_peephole2s.
1354         (*movdi_32bit, *movdi_64bit, *movsi_internal): Merge x<-J and x<-d
1355         alternatives.
1356         (*movdi_64bit, *movdi_64bit_mips16, *mov[shq]i_internal)
1357         (*mov[shq]i_mips16): Remove mflo and mfhi alternatives.
1358         (mfhilo_di, mfhilo_si): New patterns.
1359
1360 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
1361
1362         * function.c (assign_parms): Force
1363         MEM_EXPR (DECL_INCOMING_RTL (parm)) == parm.
1364
1365 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
1366
1367         * var-tracking.c (variable_part_different_p): Variable parts differ
1368         when the most recent locations differ.
1369
1370 2004-04-19  James E Wilson  <wilson@specifixinc.com>
1371
1372         * rtl.h (reg_set_last): Delete declaration.
1373         * rtlanal.c (reg_set_last): Delete.
1374
1375 2004-04-19  Roger Sayle  <roger@eyesopen.com>
1376
1377         * fold-const.c (fold_convert): Make function extern/public.
1378         * tree.h (fold_convert): Prototype here.
1379         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
1380         expand_builtin_strrchr, expand_builtin_strpbrk,
1381         expand_builtin_mempcpy, expand_builtin_bcopy,
1382         expand_builtin_bzero, expand_builtin_memcmp,
1383         expand_builtin_strcmp, expand_builtin_strncmp,
1384         stabilize_va_list, expand_builtin_sprintf,
1385         fold_trunc_transparent_mathfn, fold_builtin_logarithm,
1386         fold_builtin_exponent, fold_builtin_mempcpy,
1387         fold_builtin_strcpy, fold_builtin_strcmp, fold_builtin_strncmp,
1388         fold_builtin_signbit, fold_builtin_isdigit, fold_builtin): Prefer
1389         fold_convert to "convert" or "fold (build1 (NOP_EXPR, ...))".
1390
1391 2004-04-19  Aldy Hernandez  <aldyh@redhat.com>
1392
1393         * config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): New constant.
1394         (move_from_CR_gt_bit): New.
1395         (cceq_ior_compare): Name previously unnamed pattern.  Disable for
1396         E500.
1397         (cceq_rev_compare): Name previously unnamed pattern.  Allow for
1398         E500.
1399
1400         * config/rs6000/spe.md (cmpsfeq_gpr): Rewrite as unspec.
1401         (tstsfeq_gpr): Same.
1402         (cmpsfgt_gpr): Same.
1403         (tstsfgt_gpr): Same.
1404         (cmpsflt_gpr): Same.
1405         (tstsflt_gpr): Same.
1406         (e500_cceq_ior_compare): New.
1407         (e500_flip_gt_bit): New.
1408
1409         * config/rs6000/rs6000.c (ccr_bit): Remove E500 specific code.
1410         (print_operand): Add 'c' and 'D'.
1411         (rs6000_generate_compare): Rewrite to generate correct rtl.
1412         (rs6000_emit_sCOND): Handle E500.
1413         (output_cbranch): Adjust for changes in rs6000_generate_compare.
1414         (output_e500_flip_gt_bit): New.
1415
1416         * config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit):
1417         Protoize.
1418
1419 2004-04-19  Eric Christopher  <echristo@redhat.com>
1420
1421         * config/mips/mips.h (DWARF2_ADDR_SIZE): New.
1422
1423 2004-04-19  David Edelsohn  <edelsohn@gnu.org>
1424
1425         * doc/install.texi (*-ibm-aix*): Add AIX 5.1 assembler and archiver
1426         fix information.
1427
1428 2004-04-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1429
1430         * doc/install.texi (Specific, mips-sgi-irix5): Fix IRIX 5.3 IDO
1431         download URL.
1432
1433 2004-04-19  Daniel Jacobowitz  <drow@mvista.com>
1434
1435         * stor-layout.c (layout_decl): Check DECL_PACKED before calling
1436         ADJUST_FIELD_ALIGN.  Check maximum_field_alignment after.
1437
1438 2004-04-19  Andrew PInski  <pinskia@physics.uc.edu>
1439
1440         * builtins.c (fold_builtin_cabs): Remove fndecl parameter.
1441         (fold_builtin): Update caller to match.
1442
1443         PR bootstrap/15009
1444         * bb-reorder.c (fix_up_fall_thru_edges): Init cond_jump.
1445
1446         PR bootstrap/14999
1447         * builtins.c (fold_builtin_cabs): Mark fndecl as unused.
1448
1449 2004-04-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1450
1451         * varasm.c (compare_constant, case VIEW_CONVERT_EXPR): Add case.
1452
1453         * expmed.c (expand_mult_highpart_adjust): Make OP1 valid for MODE.
1454         (expand_mult_highpart_optab): Likewise.
1455         (expand_mult_highpart): Make OP1 valid for WIDER_MODE, not MODE.
1456
1457 2004-04-19  Paul Brook  <paul@codesourcery.com>
1458
1459         * config/arm/arm.md (fixuns_truncsfsi2, fixuns_truncdfsi2,
1460         floatunssisf2, floatunssidf2): New patterns.
1461
1462 2004-04-18  Mark Mitchell  <mark@codesourcery.com>
1463
1464         PR other/14918
1465         * doc/invoke.texi (-fprofile-generate): Document requirement to
1466         use -fprofile-generate when linking.
1467
1468         * doc/extend.texi (Strong Using): Warn users against using this
1469         feature.
1470
1471 2004-04-18  Richard Sandiford  <rsandifo@redhat.com>
1472
1473         * config/mips/mips-protos.h (m16_usym8_4, m16_usym5_4): Delete.
1474         * config/mips/mips.h (mips_entry, mips_string_length): Delete.
1475         (CONSTANT_POOL_BEFORE_FUNCTION, ASM_OUTPUT_POOL_EPILOGUE): Undefine.
1476         * config/mips/mips.c (struct mips16_constant): Renamed from struct
1477         constant.  Propogate change throughout file.
1478         (struct machine_function): Remove insns_len.
1479         (mips_string_length, mips16_strings, string_constants): Delete.
1480         (mips_classify_symbol): Return SYMBOL_CONSTANT_POOL for LABEL_REFs
1481         when generating mips16 code.  Remove special mips16 treatment of
1482         string constants.
1483         (mips_symbolic_constant_p): Allow mips16 constant pool accesses
1484         to have the form LABEL+CONSTANT.
1485         (mips_symbolic_address_p): Fix comment.
1486         (m16_usym8_4, m16_usym5_4): Delete.
1487         (mips_output_function_epilogue): Remove mips16 string handling.
1488         (mips_output_mi_thunk): Call mips16_lay_out_constants.
1489         (mips_select_section, mips_encode_section_info): Remove mips16
1490         string handling.
1491         (struct mips16_constant_pool): New.
1492         (add_constant): Take a mips16_constant_pool structure.  Keep pool
1493         sorted into order of ascending mode size.  Keep track of the highest
1494         possible start address, taking padding and the masking of the base PC
1495         value into account.
1496         (dump_constants_1): New function, split out from dump_constants.
1497         Handle vector constants.  Use gen_consttable_{int,float} rather than
1498         separate functions for each mode.
1499         (dump_constants): Simplify.  Use GET_MODE_ALIGNMENT.  Use gen_align
1500         rather than separate functions for each alignment.
1501         (mips_find_symbol): Delete.
1502         (mips16_insn_length): New function, split out from
1503         mips16_lay_out_constants.
1504         (mips16_rewrite_pool_refs): New function.
1505         (mips16_lay_out_constants): Rework. Remove string handling.
1506         Always create an inline constant pool.
1507         * config/mips/mips.md (UNSPEC_CONSTTABLE_INT, UNSPEC_CONSTTABLE_FLOAT)
1508         (UNSPEC_ALIGN): New constants.
1509         (UNSPEC_CONSTTABLE_[QHSD]I, UNSPEC_CONSTTABLE_[SD]F): Delete.
1510         (UNSPEC_ALIGN_[248]): Delete.
1511         (consttable_int, consttable_float, align): New patterns.
1512         (consttable_[qhsd]i, consttable_[sd]f, align_[248]): Delete.
1513
1514 2004-04-17  Aldy Hernandez  <aldyh@redhat.com>
1515
1516         * config/rs6000/altivec.h (vec_any_numeric): Correct typo in
1517         __unn_args_eq.
1518
1519 2004-04-17  Alan Modra  <amodra@bigpond.net.au>
1520
1521         PR target/14715
1522         * config/rs6000/rs6000.c (rs6000_stack_info): Make parm_size agree
1523         with STARTING_FRAME_OFFSET.
1524
1525 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
1526
1527         * config/mips/mips.h (PREDICATE_CODES): Add macc_msac_operand.
1528         * config/mips/mips.c (macc_msac_operand): New function.
1529         * config/mips/mips.md (*msac): Move after *macc.
1530         (*msac2): New.  Generalize macc-related peepholes so that they apply
1531         to msac too.
1532
1533 2004-04-17  Paolo Bonzini  <bonzini@gnu.org>
1534
1535         * opts.c (decode_options): Do not enable flag_rename_registers
1536         and flag_web at -O3.
1537         * toplev.c (flag_rename_registers): Initialize
1538         flag_rename_registers and flag_web to
1539         AUTODETECT_FLAG_VAR_TRACKING.
1540         (default_debug_hooks): New global.
1541         (process_options): Initialize default_debug_hooks.  Warn if
1542         -fvar-tracking specified but not supported by the current
1543         debug format.  Do not run var tracking at -O0 or if not
1544         supported by the current debug format, even if
1545         -fvar-tracking was given.  If -fno-rename-registers
1546         is not specified, always run register renaming if var
1547         tracking is supported by the default debugging information
1548         format for the target, and we are at -O1 or higher; similarly
1549         for -fweb, but only at -O2 or higher.
1550         * doc/invoke.texi (Optimize Options): Document this.
1551
1552 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
1553
1554         * configure.ac (gcc_cv_ld_as_needed): Use AC_CACHE_CHECK.
1555         * configure: Regenerate.
1556
1557 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
1558
1559         * gcc.c (used_arg): Check whether an option has been removed.
1560
1561 2004-04-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1562
1563         * config.gcc (i[34567]86-*-solaris2*): Default to DWARF-2
1564         debugging on Solaris 7 and up.
1565
1566 2004-04-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1567
1568         * doc/install.texi (Specific, mips-sgi-irix5): Reflect working
1569         IRIX 5 port.
1570         Remove -save-temps workaround, handled automatically.
1571         Require GNU binutils 2.15 for debugging.
1572         Remove SGI make warnings since GNU make is now required.
1573         (Specific, mips-sgi-irix6): Some markup fixes.
1574         Describe MIPSpro C problems and workarounds.
1575         Mention working O32 ABI support.
1576         Recommend GNU as 2.15 for O32 with debugging.
1577         Remove description of fixed structure pass/return bug.
1578
1579 2004-04-16  DJ Delorie  <dj@redhat.com>
1580
1581         * sdbout.c (sdbout_one_type): Use TYPE_VALUES for enums, not
1582         TYPE_FIELDS.
1583         (sdbout_finish): Don't free deferred_global_decls; it's GC'd.
1584
1585 2004-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1586
1587         * pa.md: Remove unnecessary declarations for asm_out_file.
1588
1589         * pa64-regs.h (DBX_REGISTER_NUMBER): Simplify and correct mapping of
1590         SAR register.  Fix comment.
1591         (ADDITIONAL_REGISTER_NAMES): Correct register number of SAR register
1592         (%cr11).
1593
1594         * pa64-hpux.h (LIB_SPEC): Fix library specification used with GNU ld.
1595
1596 2004-04-16  Nick Clifton  <nickc@redhat.com>
1597
1598         * config/arm/arm.c (arm_override_options): Revert previous patch.
1599         * config/arm/t-xscale-elf: Disable iwmmxt multilibs until they can
1600         be safely built.
1601
1602 2004-04-16  Kazuhiro Inaoka <inaoka dot kazuhiro at renesas dot com>
1603
1604         * config/m32r/m32r.h (BIG_ENDIAN_BIT): Deleted to fix endian
1605         bug.
1606         (TARGET_LITTLE_ENDIAN, TARGET_BIG_ENDIAN,
1607         TARGET_DEFAULT): Changed. Ditto.
1608         (LITTLE_ENDIAN_BIT, TARGET_CPU_DEFAULT,
1609         TARGET_ENDIAN_DEFAULT): Added. Ditto.
1610         * config/m32r/little.h (TARGET_LITTLE_ENDIAN): Deleted.
1611         (TARGET_ENDIAN_DEFAULT): Added.
1612
1613 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1614
1615         * builtins.def (BUILT_IN_ISDIGIT, BUILT_IN_ISXDIGIT): Mark with
1616         ATTR_CONST_NOTHROW_LIST.
1617
1618 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1619
1620         PR/middle-end 14915
1621         * builtins.c (expand_builtin_signbit): Test BYTES_BIG_ENDIAN, not
1622         BITS_BIG_ENDIAN.
1623
1624 2004-04-15  Pat Haugen  <pthaugen@us.ibm.com>
1625
1626         * ra-debug.c (ra_print_rtx): Add break's to case legs.
1627
1628 2004-04-14  James E Wilson  <wilson@specifixinc.com>
1629
1630         * Makefile.in (fixinc.sh): Set WARN_CFLAGS to empty string.
1631
1632 2004-04-14  Nathanael Nerode  <neroden@gcc.gnu.org>
1633
1634         * libada-mk.in: New file.
1635         * configure.ac: Create libada-mk from libada-mk.in.
1636         * configure: Regenerate.
1637
1638 2004-04-14  Uros Bizjak  <uros@kss-loka.si>
1639
1640         * optabs.h (enum optab_index): Add new OTI_logb and OTI_ilogb.
1641         (logb_optab, ilogb_optab): Define corresponding macros.
1642         * optabs.c (init_optabs): Initialize logb_optab and ilogb_optab.
1643         * genopinit.c (optabs): Implement logb_optab and ilogb_optab
1644         using logb?f2 and ilogb?i2 patterns.
1645         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOGB{,F,L}
1646         using logb_optab, and BUILT_IN_ILOGB{,F,L} using ilogb_optab.
1647         (expand_builtin): Expand BUILT_IN_LOGB{,F,L} and BUILT_IN_ILOGB{,F,L}
1648         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
1649
1650         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_XTRACT_FRACT
1651         and UNSPEC_XTRACT_EXP.
1652
1653         * config/i386/i386.md (*fxtractdf3, *fxtractsf3, *fxtractxf3): New
1654         patterns to implement fxtract x87 instruction.
1655         (logbdf2, logbsf2, logbxf2, ilogbsi2): New expanders to implement
1656         logb, logbf, logbl, ilogb, ilogbf and ilogbl built-ins as inline x87
1657         intrinsics.
1658         (UNSPEC_XTRACT_FRACT, UNSPEC_XTRACT_EXP): New unspecs to represent
1659         x87's fxtract insn.
1660
1661 2004-04-14  Eric Christopher  <echristo@redhat.com>
1662
1663         * config/mips/t-elf: Enable multilibs by default.
1664
1665 2004-04-14  Andreas Tobler  <a.tobler@schweiz.ch>
1666
1667         * bb-reorder.c (fix_crossing_conditional_branches): Adjust the
1668         previous fix to check HAVE_return at runtime too.
1669
1670 2004-04-14  Nick Clifton  <nickc@redhat.com>
1671
1672         * config/arm/arm.c (arm_override_options): If the user has not
1673         specified an ABI, then default to AAPCS for the iWMMXt processor.
1674         * config/arm/t-xscale-elf: Remove redundant multilib specifications.
1675         * config/arm/t-xscale-coff: Likewise.
1676
1677 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1678
1679         * builtins.c (fold_builtin_isdigit): New.
1680         (fold_builtin): Handle BUILT_IN_ISDIGIT.
1681         * defaults.h: Add TARGET_DIGIT0 and sort.
1682         * doc/tm.texi: Add TARGET_BS and TARGET_DIGIT0.
1683
1684 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1685
1686         * builtins.c (fold_builtin_cabs, fold_builtin): Use
1687         `mathfn_built_in' to determine the new builtin.
1688         * fold-const.c (fold): Likewise.
1689
1690 2004-04-14  Richard Sandiford  <rsandifo@redhat.com>
1691
1692         * doc/invoke.texi: Rename MIPS's -mfix-vr4122-bugs to -mfix-vr4120.
1693         * config/mips/mips.h (MASK_FIX_VR4120): Renamed from MASK_FIX_VR4122.
1694         (TARGET_FIX_VR4120): Likewise TARGET_FIX_VR4122.
1695         (TARGET_SWITCHES): Replace -mfix-vr4122-bugs with -mfix-vr4120.
1696         (ASM_SPEC): Update accordingly.
1697         * config/mips/mips.c: Update after above renaming.
1698         * config/mips/mips.md, config/mips/t-vr, config/mips/vr.h: Likewise.
1699         * config/mips/vr4120-div.S: Renamed from vr4122-div.S.
1700
1701 2004-04-13  James E Wilson  <wilson@specifixinc.com>
1702
1703         * c-opt.c (c_common_post_options): If this_input_filename is NULL,
1704         increment errorcount and return false instead of true.
1705
1706 2004-04-13  Uros Bizjak  <uros@kss-loka.si>:
1707
1708         * optabs.c (expand_twoval_unop): Reorder function arguments.
1709         * builtins.c (expand_builtin_mathfn_3): Update calls to
1710         expand_twoval_unop.
1711
1712         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_TAN_ONE
1713         and UNSPEC_TAN_TAN. Add missing comment.
1714
1715         * config/i386/i386.md (*tandf3_1, *tansf3_1, *tanxf3_1): New
1716         patterns to implement fptan x87 instruction.
1717         (tandf2, tansf2, tanxf2): New expanders to implement tan, tanf
1718         and tanl built-ins as inline x87 intrinsics. Define corresponding
1719         peephole2 optimizers for 'fptan; fstp %st(0); fld1' sequence.
1720         (UNSPEC_TAN_ONE, UNSPEC_TAN_TAN): New unspecs to represent
1721         x87's fptan insn.
1722
1723 2004-03-13  Richard Henderson  <rth@redhat.com>
1724
1725         * bb-reorder.c (fix_crossing_unconditional_branches): Use Pmode
1726         for LABEL_REFs.
1727
1728         * defaults.h (HOT_TEXT_SECTION_NAME): Add leading dot.
1729         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Likewise.
1730         * doc/invoke.texi: Update to match.
1731
1732         * varasm.c (unlikely_text_section): Use assemble_align instead of
1733         ASM_OUTPUT_ALIGN.  Use it in the correct place with an approximately
1734         correct alignment argument.
1735
1736 2004-04-13  Ulrich Weigand  <uweigand@de.ibm.com>
1737
1738         * reload1.c (emit_reload_insns): Set reg_has_output_reload to one
1739         after setting reg_last_reload_reg for optional output reloads.
1740
1741 2004-04-12  Fariborz Jahanian <fjahanian@apple.com>
1742
1743         * config/rs6000/altivec.h (vec_mergeh, vec_mergel):
1744         Definition of these two macros are corrected by adding
1745         matchine right paren.
1746
1747 2004-04-12  Jonathan Larmour  <jifl@eCosCentric.com>
1748
1749         * fix-header.c: kill(), putenv() and tzset() are POSIX not ANSI.
1750
1751 2004-04-12  Roger Sayle  <roger@eyesopen.com>
1752
1753         * config/i386/i386.c (output_387_reg_move): New function.
1754         * config/i386/i386-protos.h (output_387_reg_move): Prototype here.
1755         * config/i386/i386.md (*movsf_1, *movsf1_nointerunit,
1756         *movdf_nointeger, *movdf_integer, *movxf_nointeger, *movxf_integer,
1757         *extendsfdf2_1,  *extendsfxf2_1, *extenddfxf2_1, truncdfsf2_noop,
1758         truncxfsf2_noop, truncxfdf2_noop): Call output_387_reg_move.
1759
1760 2004-04-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1761
1762         * c-decl.c (finish_decl): Make a decl_stmt for a variable-sized
1763         TYPE_DECL.
1764         * c-semantics.c (genrtl_decl_stmt): Handle TYPE_DECL.
1765         * stmt.c (expand_decl): Remove redundant expansion of TYPE_DOMAIN.
1766         * stor-layout.c (variable_size): Don't check for MINUS_EXPR.
1767         Use skip_simple_arithmetic to find SAVE_EXPR.
1768         (force_type_save_exprs, force_type_save_exprs_1): New functions.
1769         * tree-inline.c (remap_type, case POINTER_TYPE, case REFERENCE_TYPE):
1770         Properly chain multiple pointers.
1771         (copy_tree_r): Copy a TYPE_DECL.
1772         * tree.c (variably_modified_type_p): Add some missing tests and
1773         make some other minor changes.
1774         * tree.h (force_type_save_exprs): New declaration.
1775
1776 2004-04-12  Roger Sayle  <roger@eyesopen.com>
1777
1778         * simplify-rtx.c (simplify_binary_operation) <UDIV, DIV, UMOD, MOD>:
1779         Remove fall throughs.  Convert 0/x and 0%x into x&0 when x has
1780         side-effects.  Don't convert x/1.0 into x if we honor signaling NaNs.
1781         Convert x/-1.0 into -x if we don't honor signaling NaNs.  Convert
1782         x/-1 into -x.  Optimize x%1 into x&0 if x has side-effects.  Optimize
1783         x%-1 into 0 (or x&0 if x has side-effects).
1784
1785 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
1786
1787         * config/rs6000/rs6000.md: Document why a pattern is not
1788         available.
1789
1790         * config/rs6000/rs6000.c (rs6000_emit_cmove): Disable comparisons
1791         of floats on the E500.
1792         (branch_positive_comparison_operator): Do not allow NE even on the
1793         E500.
1794
1795 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
1796
1797         * config/rs6000/rs6000.c (rs6000_assemble_integer): Change
1798         in_text_unlikely_section to in_unlikely_text_section.
1799
1800 2004-04-11  Roger Sayle  <roger@eyesopen.com>
1801
1802         * fold-const.c (fold_binary_op_with_conditional_arg):  Tweak
1803         calling convention to allow a NULL_TREE to be returned.  Factor
1804         sanity checks from callers, return NULL_TREE when appropriate.
1805         (fold): Handle COMPOUND_EXPR operands of binary expressions
1806         before COND_EXPR operands.  Use reorder_operands_p(a,b) to check
1807         whether a op (b,c) can be rewritten as (b, a op c).  Simplify
1808         calls to fold_binary_op_with_conditional_arg.
1809
1810 2004-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1811
1812         * config/mips/iris5.h (current_section_flags):  Add
1813         in_unlikely_executed_text and default case.
1814
1815 2004-04-11  Andreas Tobler  <a.tobler@schweiz.ch>
1816
1817         * bb-reorder.c (fix_crossing_conditional_branches): Fix bootstrap
1818         failure on solaris. Place ifdef HAVE_return around gen_ret call.
1819         * cfgrtl.c (force_nonfallthru_and_redirect): Remove ifdef
1820         HAVE_return and place it around the place where it is needed.
1821
1822 2004-04-11  Andrew Pinski  <pinskia@physics.uc.edu>
1823
1824         * varasm.c (text_section): Use TEXT_SECTION_ASM_OP and
1825         ASM_OUTPUT_ALIGN instead of SECTION_FORMAT_STRING
1826         and NORMAL_TEXT_SECTION_NAME.
1827         (unlikely_text_section): Check targetm.have_named_sections
1828         instead of TARGET_ASM_NAMED_SECTION and use TEXT_SECTION_ASM_OP
1829         instead of SECTION_FORMAT_STRING.
1830         * config/mips/iris5.h (current_section_name): Add
1831         in_unlikely_executed_text case and move the abort into the switch.
1832         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME): Remove.
1833         (NORMAL_TEXT_SECTION_NAME): Remove.
1834         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
1835         (SECTION_FORMAT_STRING): Remove.
1836         * defaults.h (SECTION_FORMAT_STRING): Remove.
1837         * tm.texi (NORMAL_TEXT_SECTION_NAME): Remove.
1838         (SECTION_FORMAT_STRING): Remove.
1839
1840 2004-04-10  Joseph S. Myers  <jsm@polyomino.org.uk>
1841
1842         * c-typeck.c (common_type): Prefer long long to long when same
1843         precision.
1844
1845 2004-04-09  Zack Weinberg  <zack@codesourcery.com>
1846
1847         PR 14887
1848         * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Look only at
1849         mode argument.
1850         * config/ia64/ia64.c (ia64_hpux_file_end): Check
1851         TREE_SYMBOL_REFERENCED on DECL_ASSEMBLER_NAME, not DECL_NAME.
1852
1853 2004-04-09  Roger Sayle  <roger@eyesopen.com>
1854
1855         * simplify-rtx.c (mode_signbit_p): New function to check whether
1856         an RTX is an immediate constant that represents the most significant
1857         bit of a given machine mode.
1858         (simplify_unary_operation) <NOT>: Optimize ~(X+C) as X ^ ~C, where
1859         C is the sign bit.
1860         (simplify_binary_operation) <PLUS>: Optimize (X^C1) + C2 as X^(C1^C2)
1861         when C2 is the sign bit.
1862         (simplify_binary_operation) <XOR>: Canonicalize X^C as X+C when C
1863         is the sign bit.  Optimize (X+C1) ^ C2 as X^(C1^C2) when C1 is the
1864         sign bit.
1865
1866 2004-04-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1867
1868         * builtins.c (mathfn_built_in): Check TYPE_MAIN_VARIANT, not
1869         TYPE_MODE.
1870
1871 2004-04-09  Andrew Pinski  <pinskia@physics.uc.edu>
1872
1873         * c-common.c (handle_noreturn_attribute): Use TYPE_READONLY instead
1874         of TREE_READONLY for types.
1875
1876 2004-04-09  Caroline Tice  <ctice@apple.com>
1877
1878         * basic-block.h (struct edge_def):  Add new field, crossing_edge.
1879         (struct basic_block_def):  Add new field, partition.
1880         (UNPARTITIONED, HOT_PARTITION, COLD_PARTITION):  New constant macro
1881         definitions.
1882         (partition_hot_cold_basic_blocks): Add extern function
1883         declaration.
1884         * bb-reorder.c (function.h, obstack.h, expr.h, regs.h):  Add four new
1885         include statements.
1886         (N_ROUNDS): Increase the maximum number of rounds by 1.
1887         (branch_threshold): Add array value for new round.
1888         (exec_threshold): Add array value for new round.
1889         (push_to_next_round_p): New function.
1890         (add_unlikely_executed_notes): New function.
1891         (find_rarely_executed_basic_blocks_and_crossing_edges): New function.
1892         (mark_bb_for_unlikely_executed_section): New function.
1893         (add_labels_and_missing_jumps): New function.
1894         (add_reg_crossing_jump_notes): New function.
1895         (fix_up_fall_thru_edges): New function.
1896         (find_jump_block): New function.
1897         (fix_crossing_conditional_branches): New function.
1898         (fix_crossing_unconditional_branches): New function.
1899         (fix_edges_for_rarely_executed_code): New function.
1900         (partition_hot_cold_basic_blocks): New function.
1901         (find_traces):  Add an extra round for partitioning hot/cold
1902         basic blocks.
1903         (find_traces_1_round): Add a parameter.  Modify to push all cold blocks,
1904         and only cold blocks, into the last (extra) round of collecting traces.
1905         (better_edge_p): Add a parameter.  Modify to favor non-crossing edges
1906         over crossing edges.
1907         (bb_to_key):  Add code to correctly identify cold blocks when
1908         doing partitioning.
1909         (connect_traces): Modify to connect all the non-cold traces first, then
1910         go back and connect up all the cold traces.
1911         (reorder_basic_blocks):  Add call to add_unlikely_executed_notes.
1912         * cfg.c (entry_exit_blocks): Add initialization for partition field in
1913         entry and exit blocks.
1914         * cfgbuild.c (make_edges): Update current_function_has_computed_jump
1915         if we are doing hot/cold partitioning.
1916         * cfgcleanup.c (cfglayout.h): Add new include statement.
1917         (try_simplify_condjump): Modify to not attempt on blocks with jumps
1918         that cross section boundaries.
1919         (try_forward_edges): Likewise.
1920         (merge_blocks_move_predecessor_nojumps): Likewise.
1921         (merge_blocks_move_successor_nojumps): Likewise.
1922         (merge_blocks_move): Likewise.
1923         (try_crossjump_to_edge): Modify to not attempt after we have done
1924         the block partitioning.
1925         (try_crossjump_bb): Modify to not attempt on blocks with jumps that
1926         cross section boundaries.
1927         (try_optimize_cfg): Likewise.
1928         * cfghooks.c (tidy_fallthru_edges): Modify to not remove indirect
1929         jumps that cross section boundaries.
1930         * cfglayout.c (flags.h): Add new include statement.
1931         (update_unlikely_executed_notes):  New function.
1932         (fixup_reorder_chain):  Add code so when a new jumping basic block is
1933         added, it's UNLIKELY_EXECUTED_CODE and REG_CROSSING_JUMP notes are
1934         updated appropriately.
1935         (duplicate_insn_chain):  Add code to duplicate the new NOTE insn
1936         introduced by this optimization.
1937         * cfglayout.h (scan_ahead_for_unlikely_executed_note):  Add new
1938         extern function declaration.
1939         * cfgrtl.c (can_delete_note_p):  Add NOTE_INSN_UNLIKELY_EXECUTED_CODE to
1940         list of notes that can be deleted.
1941         (create_basic_block_structure):  Add initialization for partition field.
1942         (rtl_can_merge_blocks):  Modify to test blocks for jumps that cross
1943         section boundaries.
1944         (try_redirect_by_replacing_jump):  Modify to not attempt on jumps that
1945         cross section boundaries.
1946         (commit_one_edge_insertion): Add code so newly created basic block
1947         ends up in correct (hot or cold) section.  Modify to disallow
1948         insertions before NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
1949         (rtl_verify_flow_info_1):  Add code to verify that no fall_thru edge
1950         crosses section boundaries.
1951         (cfg_layout_can_merge_blocks_p): Modify to test blocks for jumps that
1952         cross section boundaries.
1953         (force_nonfallthru_and_redirect): Modify to make sure new basic block
1954         ends up in correct section, with correct notes attached.
1955         * common.opt (freorder-blocks-and-partition):  Add new flag for this
1956         optimization.
1957         * dbxout.c (dbx_function_end):  Add code to make sure scope labels at
1958         the end of functions are written into the correct (hot or cold)
1959         section.
1960         (dbx_source_file): Add code so writing debug file information
1961         doesn't incorrectly change sections.
1962         * defaults.h (NORMAL_TEXT_SECTION_NAME): New constant macro, for use
1963         in partitioning hot/cold basic blocks into separate sections.
1964         (SECTION_FORMAT_STRING): New constant macro, for linux/i386 hot/cold
1965         section partitioning.
1966         (HAS_LONG_COND_BRANCH): New constant macro, indicating whether or not
1967         conditional branches can span all of memory.
1968         (HAS_LONG_UNCOND_BRANCH): New constant macro, indicationg whether or not
1969         unconditional branches can span all of memory.
1970         * final.c (scan_ahead_for_unlikely_executed_note):  New function.
1971         (final_scan_insn):  Add code to check for NOTE instruction indicating
1972         whether basic block belongs in hot or cold section, and to make sure
1973         the current basic block is being written to the appropriate section.
1974         Also added code to ensure that jump table basic blocks end up in the
1975         correct section.
1976         * flags.h (flag_reorder_blocks_and_partition):  New flag.
1977         * ifcvt.c (find_if_case_1):  Modify to not attempt if conversion if
1978         one of the branches has a jump that crosses between sections.
1979         (find_if_case_2): Likewise.
1980         (ifcvt): Modify to not attempt to mark loop exit edges after
1981         hot/cold partitioning has occurred.
1982         * opts.c (decode_options): Code to handle new flag,
1983         flag_reorder_blocks_and_partition; also to turn it off if
1984         flag_exceptions is on.
1985         (common_handle_option): Code to handle new flag,
1986         flag_reorder_blocks_and_partition.
1987         * output.h (unlikely_text_section): New extern function declaration.
1988         (in_unlikely_text_section): New extern function declaration.
1989         * passes.c (rest_of_handle_stack_regs):  Add
1990         flag_reorder_blocks_and_partition as an 'or' condition for calling
1991         reorder_basic_blocks.
1992         (rest_of_handle_reorder_blocks):  Add flag_reorder_blocks_and_partition
1993         as an 'or' condition for calling reorder_basic_blocks.
1994         (rest_of_compilation):  Add call to partition_hot_cold_basic_blocks.
1995         * print-rtl.c (print_rtx): Add code for handling new note,
1996         NOTE_INSN_UNLIKELY_EXECUTED_CODE
1997         * rtl.c  (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note insn (see below).
1998         (REG_CROSSING_JUMP): New kind of reg_note, to mark jumps that
1999         cross between section boundaries.
2000         * rtl.h (NOTE_INSN_UNLIKELY_EXECUTED_CODE):  New note instruction,
2001         indicating the basic block containing it belongs in the cold section.
2002         (REG_CROSSING_JUMP): New type of reg_note, to mark jumps that cross
2003         between hot and cold sections.
2004         * toplev.c (flag_reorder_blocks_and_partition):  Add code to
2005         initialize this flag, and to tie it to the command-line option
2006         freorder-blocks-and-partition.
2007         * varasm.c (cfglayout.h):  Add new include statement.
2008         (unlikely_section_label_printed):  New global variable, used for
2009         determining when to output section name labels for cold sections.
2010         (in_section):  Add in_unlikely_executed_text to enum data structure.
2011         (text_section):  Modify code to use SECTION_FORMAT_STRING and
2012         NORMAL_TEXT_SECTION_NAME macros.
2013         (unlikely_text_section):  New function.
2014         (in_unlikely_text_section):  New function.
2015         (function_section):  Add code to make sure beginning of function is
2016         written into correct section (hot or cold).
2017         (assemble_start_function):  Add code to make sure stuff is written to
2018         the correct section.
2019         (assemble_zeros):  Add in_unlikely_text_section as an 'or' condition
2020         to an if statement that was checking 'in_text_section'.
2021         (assemble_variable):  Add 'in_unlikely_text_section' as an 'or'
2022         condition to an if statement that was checking 'in_text_section'.
2023         (default_section_type_flags_1):  Add check: if in cold section
2024         flags = SECTION_CODE.
2025         * config/darwin.c (darwin_asm_named_section):  Modify to use
2026         SECTION_FORMAT_STRING if we are partitioning hot/cold blocks.
2027         * config/i386/i386.h (HAS_LONG_COND_BRANCH): Defined this macro
2028         specifically for the i386.
2029         (HAS_LONG_UNCOND_BRANCH):  Defined this macro specifically for the i386.
2030         * config/rs6000/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Change
2031         text string to something more informative.
2032         (NORMAL_TEXT_SECTION_NAME): Add new definition.
2033         (SECTION_FORMAT_STRING):  Add new definition.
2034         * config/rs6000/rs6000.c (rs6000_assemble_integer):  Add
2035         '!in_unlikely_text_section' as an 'and' condition to an if statement
2036         that was already checking '!in_text_section'.
2037         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME,NORMAL_TEXT_SECTION_NAME,
2038         UNLIKELY_EXECUTED_TEXT_SECTION_NAME,SECTION_FORMAT_STRING): Make
2039         sure these are properly defined for linux on ppc.
2040         * doc/invoke.texi  (freorder-blocks-and-partition): Add documentation
2041         for this new flag.
2042         * doc/rtl.texi (REG_CROSSING_JUMP):  Add documentation for new
2043         reg_note.
2044         * doc/tm.texi (NORMAL_TEXT_SECTION_NAME, SECTION_FORMAT_STRING,
2045         HAS_LONG_COND_BRANCH, HAS_LONG_UNCOND_BRANCH): Add documentation for
2046         these new macros.
2047
2048 2004-04-08  Roger Sayle  <roger@eyesopen.com>
2049
2050         * function.c (gen_mem_addressof): When changing the RTX from a REG
2051         to a MEM, clear MEM_VOLATILE_P which was formerly REG_USERVAR_P.
2052
2053 2004-04-08  Roger Sayle  <roger@eyesopen.com>
2054
2055         PR target/14888
2056         * config/i386/i386.md (truncdfsf2_noop, truncxfsf2_noop,
2057         truncxfdf2_noop): Provide dummy "fmov" implementations.
2058
2059 2004-04-08  Ian Lance Taylor  <ian@wasabisystems.com>
2060
2061         * gcc.c (default_compilers): Add missing initializers.
2062
2063         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
2064         Return 1 if file was successfully mapped.
2065
2066 2004-04-08  Geoffrey Keating  <geoffk@apple.com>
2067
2068         PR pch/13419
2069         PR pch/14137
2070         Radar #: 3315288
2071         * doc/invoke.texi (Precompiled Headers): Suggest -o
2072         to put an output file in a particular place.  Be more detailed
2073         about which options affect PCH validity and which options
2074         might not work.
2075         * c-pch.c (pch_matching): New.
2076         (MATCH_SIZE): New.
2077         (struct c_pch_validity): New field 'match'.
2078         (pch_init): Handle pch_matching.
2079         (c_common_valid_pch): Check pch_matching.
2080
2081         * explow.c: Fix typo defining default of PROMOTE_FUNCTION_MODE.
2082
2083 2004-04-08  Mark Mitchell  <mark@codesourcery.com>
2084
2085         * doc/invoke.texi (Precompiled Headers): Warn about known
2086         problems.
2087
2088 2004-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
2089
2090         PR c++/14808
2091         * defaults.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): New macro. Default
2092         to 1 if ASM_OUTPUT_DEF is defined.
2093         * doc/tm.texi (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document.
2094         * config/i386/cygming.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): Define.
2095         Set to non-zero iff not a one_only decl.
2096
2097 2004-04-08  Paul Brook  <paul@codesourcery.com>
2098
2099         * arm.h (CLASS_LIKELY_SPILLED_P): Define.
2100
2101 2004-04-08  Paul Brook  <paul@codesourcery.com>
2102
2103         * explow.c (promote_mode): Use PROMOTE_FUNCTION_MODE instead of
2104         PROMOTE_FOR_CALL_ONLY.
2105         * config/arm/arm-protos.h (arm_function_value): Declare.
2106         * config/arm/arm.h (TARGET_PROMOTE_FUNCTION_ARGS): Define.
2107         (TARGET_PROMOTE_PROTOTYPES): Return false.
2108         (arm_function_value): New function.
2109         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Define.
2110         (FUNCTION_VALUE): Call arm_function_value.
2111         * config/cris/cris.h (PROMOTE_MODE): Rename ...
2112         (PROMOTE_FUNCTION_MODE): ... to this.
2113         (PROMOTE_FOR_CALL_ONLY): Remove.
2114         * config/mmix/mmix.h: Likewise.
2115         * config/s390/s390.h: Likewise.
2116         * config/sparc/sparc.h: Likewise.
2117         * config/sparc/sparc.c: Update comments about PROMOTE_MODE.
2118         * doc/tm.texi (PROMOTE_FUNCTION_MODE): Document.
2119         (TARGET_PROMOTE_FUNCTION_MODE, TARGET_PROMOTE_FUNCTION_RETURN): Update.
2120         (PROMOTE_FOR_CALL_ONLY): Remove.
2121
2122 2004-04-08  Joel Sherrill <joel@oarcorp.com>
2123
2124         PR ada/14538
2125         * ada/5rosinte.adb: Remove fake mprotect() body.
2126         * ada/5rosinte.ads: Add SA_SIGINFO.
2127         * ada/5rtpopsp.adb: Rewrite to use new interface.
2128         * ada/init.c: Reorder so the simple single OS conditional __rtems__
2129         is tested before more complex ones which mix UNIX and embedded
2130         systems in the conditional.
2131
2132 2004-04-08  Joel Sherrill  <joel@oarcorp.com>
2133
2134         PR ada/14665
2135         * ada/osint.adb (Find_Program_Name): Rework to properly handle
2136         filenames which end in .exe or have versioning suffixes like VMS.
2137
2138 2004-04-08  Andrew Pinski  <pinskia@physics.uc.edu>
2139
2140         PR target/10129
2141         * config/darwin.c (darwin_encode_section_info): When the decl has
2142         a DECL_INITIAL, it is only defined also when it is not a common.
2143
2144 2004-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2145
2146         * builtins.c (fold_builtin_isascii, fold_builtin_toascii): New.
2147         (fold_builtin): Handle BUILT_IN_ISASCII and BUILT_IN_TOASCII.
2148
2149 2004-04-07  H.J. Lu  <hongjiu.lu@intel.com>
2150
2151         * config/ia64/ia64.c (ia64_encode_section_info): Don't prod
2152         global register variables.
2153
2154 2004-04-07  Joseph S. Myers  <jsm@polyomino.org.uk>
2155
2156         * fixinc/inclhack.def (rpc_xdr_lvalue_cast_a,
2157         rpc_xdr_lvalue_cast_b): New fixes.
2158         * fixinc/fixincl.x: Regenerate.
2159         * fixinc/tests/base/rpc/xdr.h: Add new tests.
2160
2161 2004-04-07  David Edelsohn  <edelsohn@gnu.org>
2162
2163         * config/rs6000/rs6000.c (processor_target_table): Add MASK_MFCRF
2164         to power4 and power5 entries.
2165
2166 2004-04-06  Geoffrey Keating  <geoffk@apple.com>
2167
2168         * c-common.h (pending_lang_change): Mark for PCH.
2169
2170 2004-04-07  Caroline Tice  <ctice@apple.com>
2171
2172         * gcc.c (main): Move 'break' in main loops (on an error)
2173         to wait until error processing has occurred.
2174
2175 2004-04-06  Nathanael Nerode  <neroden@gcc.gnu.org>
2176
2177         * config.gcc: Stop changing enable_threads midstream.
2178         Replace uses of enable_threads_flag with enable_threads.
2179         * configure.ac: Replace uses of enable_threads_flag with
2180         enable_threads.  Improve autoconf quotation in one place.
2181         * configure: Regenerate.
2182
2183 2004-04-06  Uros Bizjak  <uros@kss-loka.si>
2184
2185         * builtins.c: Implement support for sincos function.
2186         (expand_builtin_mathfn): Remove BUILT_IN_SIN{,F,L} and
2187         BUILT_IN_COS{,F,L}.
2188         (expand_builtin_mathfn_3): New function.
2189         (expand_builtin): Expand BUILT_IN_SIN{,F,L} and
2190         BUILT_IN_COS{,F,L} using expand_builtin_mathfn_3 if
2191         flag_unsafe_math_optimization is set.
2192
2193         * optabs.h (enum optab_index): Add new OTI_sincos.
2194         (sincos_optab): Define corresponding macro.
2195
2196         * optabs.c (init_optabs): Initialize sincos_optab.
2197         (expand_twoval_unop): New function.
2198
2199         * genopinit.c (optabs): Implement sincos_optab using sincos?f3
2200         patterns.
2201
2202         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_SINCOS_COS
2203         and UNSPEC_SINCOS_SIN.
2204
2205         * config/i386/i386.md (sincosdf3, sincossf3, *sincosextendsfdf3,
2206         sincosxf3): New patterns to implement sincos, sincosf and sincosl
2207         built-ins as inline x87 intrinsics. Define splits for
2208         sindf2, sinsf2, *sinextendsfdf2, sinxf2, cosdf2,
2209         cossf2, *cosextendsfdf2 and cosxf2 patterns from corresponding
2210         sincos patterns.
2211         (sindf2, sinsf2, sinxf2): Rename to *sindf2, *sinsf2, *sinxf2.
2212         (cosdf2, cossf2, cosxf2): Rename to *cosdf2, *cossf2, *cosxf2.
2213
2214         (UNSPEC_SINCOS_SIN, UNSPEC_SINCOS_COS): New unspecs to represent
2215         x87's fsincos insn.
2216
2217 2004-04-06  Devang Patel  <dpatel@apple.com>
2218
2219         PR 14467
2220         * config/darwin.h (LINK_COMMAND_SPEC): Use c++filt instead of c++filt3.
2221
2222 2004-04-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2223
2224         * doc/install.texi: Update HP-UX 11 installation procedure.
2225
2226 2004-04-06  Paul Brook  <paul@codesourcery.com>
2227
2228         * doc/sourcebuild.texi: Remove obsolete contraint on testcases.
2229
2230 2004-04-05  Kaz Kojima  <kkojima@gcc.gnu.org>
2231
2232         * config/sh/sh.c (prepare_move_operands): Use emit_call_insn
2233         when the TLS address is generated by a function call.
2234         * config/sh/sh.md (tls_global_dynamic): Use a call expression.
2235         (tls_local_dynamic): Likewise.
2236
2237 2004-04-05  Andrew Pinski  <pinskia@physics.uc.edu>
2238
2239         * tree.c (reconstruct_complex_type): Use TYPE_READONLY
2240         and TYPE_VOLATILE.
2241
2242 2004-04-05  Caroline Tice  <ctice@apple.com>
2243
2244         * gcc.c (combine_flag): New global variable, for new driver option.
2245         (struct compiler): Add two new fields, to be used when
2246         combining multiple input files in a single pass (IMA).
2247         (default_compilers):  Add values for the new fields to all
2248         compiler entries. Modify the "@c" compiler entry for doing IMA
2249         properly with "-save-temps" and the "combine" flag.
2250         (option_map):  Add new driver option, "--combine", to tell driver
2251         to pass multiple input files to compiler at one time.
2252         (have_o_argbuf_index): New global variable.
2253         (store_arg): Modify to assign value to have_o_argbuf_index.
2254         (struct infile):  Add three new fields, to help with IMA.
2255         (display_help): Add help for new "combine" option.
2256         (process_command): Remove local variable have_o; add code to check
2257         for new "combine" option; remove assignment to combine_inputs.
2258         (do_spec_1):  Modify to deal with IMA better.
2259         (main): Make variable 'lang_n_infiles' local to entire function
2260         rather than to a single block.  Use flag combine_flag to
2261         determine whether to do IMA or not; Modify loop initializing
2262         infiles to deal properly with linker files.
2263         Add code for doing preprocessing in presence of
2264         IMA with "-save-temps" flag.  Modify "main" loop to handle
2265         multiple input files, in multiple languages, with or without
2266         preprocessing,  gracefully.
2267         * toplev.c (set_src_pwd): Modify to not complain if attempting to
2268         re-set it to same directory it's previously been set to (avoid
2269         irritating, meaningless warning messages when doing IMA with
2270         save-temps).
2271         * doc/invoke.texi: Add "-combine" to list of Overall Options;
2272         remove documentation about IMA that is no longer accurate; Add
2273         documentation explaining what "-combine" does.
2274         * ada/lang-specs.h: Add initialization values for new fields in
2275         "struct compiler".
2276         * cp/lang-specs.h: Likewise.
2277         * f/lang-specs.h: Likewise.
2278         * java/lang-specs.h: Likewise.
2279         * objc/lang-specs.h: Likewise.
2280         * treelang/lang-specs.h: Likewise.
2281
2282 2004-04-05  David Edelsohn
2283
2284         * config/rs6000/rs6000.c (VTABLE_NAME_P): Add _ZTI to special
2285         symbol handling.
2286
2287 2004-04-05  Jakub Jelinek  <jakub@redhat.com>
2288             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2289
2290         PR optimization/13424 (hppa), bootstrap/14462, c/14828
2291         * pa.md: Use replace_equiv_address to retain the attributes of the
2292         memory operands used in the split and peephole2 patterns for optimizing
2293         the pre-reload movstrsi, movstrdi, clrstrsi and clrstrdi patterns.
2294
2295 2004-04-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2296
2297         * c-decl.c (build_compound_literal): Use TYPE_READONLY.
2298         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
2299         * objc/objc-act.c (adorn_decl, gen_declspecs): Likewise.
2300         * c-typeck.c (decl_constant_value): Don't access DECL_INITIAL of a
2301         PARM_DECL.
2302         * calls.c (flags_from_decl_or_type): Use TYPE_READONLY and do so only
2303         for a type.
2304         * print-tree.c (print_node): Properly handle side-effects, readonly,
2305         and constant flags.
2306         * tree.c (build1_stat, build_expr_wfl): Only look at TREE_SIDE_EFFECTS
2307         and TREE_CONSTANT if not a type.
2308         * tree.h (IS_NON_TYPE_CODE_CLASS): New macro.
2309         (IS_EXPR_CODE_CLASS): Write 'E', not 'e'.
2310         (NON_TYPE_CHECK): New macro.
2311         (TREE_SIDE_EFFECT, TREE_READONLY, TREE_CONSTANT: Add check.
2312
2313 2004-04-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
2314
2315         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Set
2316         to DWARF2_DEBUG unconditionally.
2317         (ASM_DEBUG_SPEC): Set the default to --gdwarf2 unconditionally.
2318
2319 2004-04-04  Ian Lance Taylor  <ian@wasabisystems.com>
2320             Nathanael Nerode  <neroden@gcc.gnu.org>
2321
2322         PR target/14548
2323         * config.host: Set the shell variable host_can_use_collect2.
2324         Set it to yes by default, and to no for alpha*-dec-*vms*,
2325         i[34567]86-*-mingw32*, and powerpc-*-beos*.
2326         * configure.ac: Set and substitute the shell variable collect2.
2327         Give an error if use_collect2 is yes and host_can_use_collect2 is
2328         no.
2329         * Makefile.in (COLLECT2): Rename from USE_COLLECT2.  Change all
2330         uses.  Initialize to @collect2@.
2331         (STAGESTUFF): Remove $(USE_COLLECT2).
2332         * config/alpha/x-vms (USE_COLLECT2): Don't set.
2333         * config/i386/t-mingw32 (USE_COLLECT2): Likewise.
2334         * config/rs6000/t-beos (USE_COLLECT2): Likewise.
2335         * config/pa/t-pa64: Remove commented out USE_COLLECT2.
2336         * configure: Regenerate.
2337
2338 2004-04-04  Roger Sayle  <roger@eyesopen.com>
2339
2340         * simplify-rtx.c (simplify_binary_operation): Constant fold
2341         DIV, MOD, UDIV and UMOD using div_and_round_double.
2342
2343 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
2344
2345         PR c++/14804
2346         * varasm.c (initializer_constant_valid_p): Allow NOP_EXPRs to
2347         RECORD_TYPEs.
2348
2349 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
2350
2351         * doc/invoke.texi (-mabi=o64): Create link to O64 ABI
2352         documentation.
2353
2354 2004-04-04  Roger Sayle  <roger@eyesopen.com>
2355
2356         * cse.c (cse_insn): Correct usage of simplify_replace_rtx when
2357         updating the REG_EQUAL note on an insn's libcall_insn.
2358
2359 2004-04-04  Roger Sayle  <roger@eyesopen.com>
2360
2361         * df.h: Tidy up whitespace in the definitions of the DF_ flags.
2362
2363 2004-04-03  Roger Sayle  <roger@eyesopen.com>
2364
2365         * fold-const.c (fold) <PLUS_EXPR>: Guard (-A)+B -> B-A transformation
2366         with reorder_operands_p.
2367
2368 2004-04-03  Jan Hubicka  <jh@suse.cz>
2369
2370         * md.texi (vec_set, vec_extract, vec_init): Document.
2371
2372 2004-04-02  Gabor Loki <loki@inf.u-szeged.hu>
2373
2374        * opts.c (decode_options): Do function inlining with very small
2375        max-inline-insns-* parameters when optimizing for size.
2376
2377 2004-04-02  Vladimir Makarov  <vmakarov@redhat.com>
2378
2379         * config/i386/i386.h (TARGET_NOCONA): New macro.
2380         (TARGET_CPU_CPP_BUILTINS): Add code for Nocona.
2381         (processor_type): Add PROCESSOR_NOCONA.
2382
2383         * config/i386/i386.md (cpu): Add nocona to the attribute values.
2384
2385         * config/i386/i386.c (nocona_cost): New variable.
2386         (m_NOCONA): New macro.
2387         (x86_push_memory, x86_movx, x86_cmove, x86_deep_branch,
2388         x86_branch_hints, x86_use_sahf, x86_single_stringop,
2389         x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8,
2390         x86_integer_DFmode_moves, x86_partial_reg_dependency,
2391         x86_memory_mismatch_stall, x86_accumulate_outgoing_args,
2392         x86_decompose_lea, x86_arch_always_fancy_math_387,
2393         x86_sse_partial_reg_dependency, x86_sse_load0_by_pxor,
2394         x86_ext_80387_constants, x86_four_jump_limit):
2395         (override_options): Add nocona_cost to processor_target_table.
2396         Set up PROCESSOR_NOCONA for Nocona entry in processor_alias_table.
2397         (incdec_operand): Prevent inc/dec generation for Nocona too.
2398         (ix86_issue_rate): Add PROCESSOR_NOCONA.
2399
2400 2004-04-01  Andrew Pinski  <pinskia@physics.uc.edu>
2401
2402         * rtlanal.c (find_reg_note): Manually
2403         unswitch the loop.
2404
2405 2004-04-01  Mark Mitchell  <mark@codesourcery.com>
2406
2407         * genemit.c (gen_split): Change prototype of generated code.
2408         * genrecog.c (write_action): Adjust prototype for and calls to
2409         gen_split_*.
2410         * gensupport.c (struct queue_elem): Add split field.
2411         (queue_pattern): Return a value.  Clear the split field.
2412         (process_rtx): Maintain an association between an insn and the
2413         split generated from it for a define_insn_and_split.
2414         (process_one_cond_exec): Generate a new split for a
2415         define_insn_and_split.
2416         * config/arm/arm-protos.h (arm_split_constant): Add insn
2417         parameter.
2418         (emit_constant_insn): New function.
2419         (arm_gen_constant): Use it.
2420         * config/arm/arm.md: Adjust calls to arm_split_constant.
2421
2422 2004-04-02  Jan Hubicka  <jh@suse.cz>
2423
2424         * cgraph.c: Add overall comment.
2425         (cgraph_inline_hash): New global variable.
2426         (cgraph_create_node): Break out from ...
2427         (cgraph_node): ... here.
2428         (cgraph_edge): New function.
2429         (cgraph_create_edge): New CALL_EXPR argument; some sanity checking.
2430         (cgraph_remove_edge): Accept edge, intead of source and destination.
2431         (cgraph_redirect_edge_callee): New.
2432         (cgraph_remove_node): Update all new datastructures.
2433         (cgraph_record_call, cgraph_remove_call): Kill.
2434         (dump_cgraph_node): Break out from ... ; dump new datastructures.
2435         (dump_cgraph): ... here.
2436         (cgraph_function_possibly_inlined_p): Use new hashtable.
2437         (cgraph_clone_edge, cgraph_clone_node): New.
2438         * cgraph.h: Include hashtab.h
2439         (struct cgraph_global_info): Kill cloned_times, inline_once, will_be_output
2440         fields, add inlined_to pointer.
2441         (cgraph_node): Add pointer to next_clone.
2442         (cgraph_remove_edge, cgraph_create_edge): Update prototype.
2443         (cgraph_remove_call, cgraph_record_call): Kill.
2444         (cgraph_inline_hash): Declare.
2445         (dump_cgraph_node, cgraph_edge, cg4raph_clone_edge, cgraph_clone_node,
2446         cgraph_redirect_edge_callee): Declare.
2447         (cgraph_create_edges, cgraph_inline_p): Update prorotype.
2448         (cgraph_preserve_function_body_p, verify_cgraph, verify_cgraph_node,
2449         cgraph_mark_inline_edge, cgraph_clone_inlined_nodes): Declare.
2450         * cgraphunit.c: Add overall comment.
2451         (cgraph_optimize_function): Kill.
2452         (cgraph_assemble_pending_functions): Do not assemble inline clones.
2453         (cgraph_finalize_function): Update call of cgraph_remove_node
2454         (record_call_1): Record call sites.
2455         (cgraph_create_edges): Accept node instead of decl argument.
2456         (error_found): New static variable.
2457         (verify_cgraph_node_1, verify_cgraph_node, verify_cgraph): New functions.
2458         (cgraph_analyze_function): Update for new datastructures.
2459         (cgraph_finalize_compilation_unit): Plug memory leak.
2460         (cgraph_optimize_function): Kill.
2461         (cgraph_expand_function): Do not use cgraph_optimize_function.
2462         (INLINED_TIMES, SET_INLINED_TIMES, cgraph_inlined_into,
2463         cgraph_inlined_callees): Kill.
2464         (cgraph_remove_unreachable_nodes): Verify cgraph; update handling of
2465         clones.
2466         (estimate_growth): Simplify.
2467         (cgraph_clone_inlined_nodes): New function.
2468         (cgraph_mark_inline_edge): Re-implement.
2469         (cgraph_mark_inline): Likewise.
2470         (cgraph_check_inline_limits): Simplify.
2471         (cgraph_recursive_inlining_p): New.
2472         (update_callee_keys): Break out from ...
2473         (cgraph_decide_inlining_of_small_functions): ... here; simplify.
2474         (cgraph_decide_inlining, cgraph_decide_inlining_incrementally):
2475         Likewise.
2476         (cgraph_expand_all_functions):  Remove inline clones from the ordered
2477         list.
2478         (cgraph_preserve_function_body_p): New predicate.
2479         (cgraph_optimize): Verify cgraph.
2480         * function.h (struct function): Add fields saved_tree/saved_args.
2481         * timevar.def (TV_CGRAPH_VERIFY): Use verifier.
2482         * toplev.c (rest_of_compilation): Do not free cfun.
2483         * tree-inline.c: Include function.h
2484         (struct inline_data): Add saving_p field; replace decl/current_decl by
2485         node/current_node.
2486         (insert_decl_map): New function.
2487         (copy_body_r): Handle saving; update cgraph datastructure.
2488         (copy_body): Handle recursive inlining.
2489         (initialize_inlined_parameters): Likewise.
2490         (expand_call_inline): Propagate node attributes; update cgraph.
2491         (optimize_inline_calls): Verify that datastructure still match.
2492         (save_body): New function.
2493         * tree-inline.h (save_body): New.
2494         * tree-optimize.c (tree_rest_of_compilation): preserve function body; do inlining.
2495         * langhooks-def.c (LANG_HOOKS_UPDATE_DECL_AFTER_SAVING): New.
2496         * langhooks.c (lang_hooks): Add update_decl_after_saving.
2497
2498 2004-04-01  Serge Belyshev  <1319@bot.ru>
2499
2500         PR target/14702
2501         * config/i386/i386.md: fix source operand constraints in
2502         mmx_pshufw, sse2_pshufd, sse2_pshuflw, sse2_pshufhw
2503
2504 2004-04-01  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
2505
2506         * fold-const.c (folda): Preserve types of comparisons.
2507
2508 2004-04-01  Richard Henderson  <rth@redhat.com>
2509
2510         * toplev.c (backend_init): Move init_optimization_passes call ...
2511         (lang_dependent_init): ... here.
2512
2513 2004-04-01  Alan Modra  <amodra@bigpond.net.au>
2514             Jakub Jelinek  <jakub@redhat.com>
2515
2516         * gcc.c (init_gcc_specs): If HAVE_LD_AS_NEEDED, link with
2517         -lgcc --as-needed -lgcc_s --no-as-needed by default.
2518         * configure.ac (HAVE_LD_AS_NEEDED): Check for ld --as-needed.
2519         * configure: Rebuilt.
2520         * config.in: Rebuilt.
2521         * Makefile.in (stage1-start): Copy also libgcc_s*$(SHLIB_EXT).
2522         (stage2-start, stage3-start, stage4-start): Likewise.
2523         (stageprofile-start, stagefeedback-start): Likewise.
2524
2525 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
2526
2527         * config/sparc/sparc.h (DITF_CONVERSION_LIBFUNCS): Define to 0.
2528         * config/sparc/linux.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
2529         * config/sparc/linux64.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
2530         * config/sparc/sol2.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
2531         (SOLARIS_CONVERSION_LIBFUNCS): Rename to SUN_CONVERSION_LIBFUNCS.
2532         * config/sparc/sparc.c (sparc_init_libfuncs): Initialize optabs
2533         with _Q_qtoll, _Q_qtoull and _Q_lltoq if DITF_CONVERSION_LIBFUNCS.
2534         * config.gcc (sparc-*-linux*): Revert 2004-03-23 change.
2535         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Likewise.
2536         * config/sparc/t-linux: Removed.
2537
2538 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
2539
2540         PR c++/14755
2541         * fold-const.c (fold) <EQ_EXPR>: Properly compute newconst in
2542         "bitfld++ == const" to "++bitfld == const + incr" transformations.
2543
2544 2004-04-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2545
2546         * expr.c (get_inner_reference): Use DECL_UNSIGNED, not TREE_UNSIGNED.
2547         * stor-layout.c (layout_decl): Likewise.
2548         * tree.c (get_narrower): Likewise and also use BIT_FIELD_REF_UNSIGNED.
2549         * fold-const.c (make_bit_field_ref): Use BIT_FIELD_REF_UNSIGNED.
2550         * print-tree.c (print_node): Handle various used of unsigned_flag.
2551         * tree.def (BIT_FIELD_REF): Update comment.
2552         * tree.h (TREE_UNSIGNED): Deleted.
2553         (DECL_UNSIGNED, BIT_FIELD_REF_UNSIGNED): New macros.
2554
2555 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2556
2557         * builtins.c, c-aux-info.c, c-common.c, c-cppbuiltin.c, c-decl.c:
2558         Change most occurrences of TREE_UNSIGNED to TYPE_UNSIGNED.
2559         * c-format.c, c-opts.c, c-pretty-print.c, c-typeck.c: Likewise.
2560         * calls.c, convert.c, dbxout.c, dojump.c, dwarf2out.c: Likewise.
2561         * expmed.c, expr.c, fold-const.c, function.c, integrate.c: Likewise.
2562         * optabs.c, sdbout.c, stmt.c, stor-layout.c, tree-dump.c: Likewise.
2563         * tree.c, config/iq2000/iq2000.c, config/m32r/m32r.c: Likewise.
2564         * config/mips/mips.c, config/rs6000/rs6000.c: Likewise.
2565         * config/s390/s390.c, config/sparc/sparc.c, objc/objc-act.c: Likewise.
2566         * stor-layout.c (layout_type, case COMPLEX_TYPE): Test for
2567         REAL_TYPE, not INTEGER_TYPE.
2568         (layout_type, case VECTOR_TYPE): Simplify code.
2569         * tree.c (build_vector_type_for_mode): Remove dup unsigned setting.
2570         * tree.h: Update comments.
2571         (STRIP_NOPS): Use TYPE_UNSIGNED.
2572         (TYPE_UNSIGNED): New macro.
2573         (TYPE_TRAP_SIGNED): Remove now redundant check.
2574         (SAVE_EXPR_NOPLACEHOLDER): Don't use TREE_UNSIGNED.
2575
2576 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2577
2578         * function.c (put_var_into_stack): Properly set orig_reg for indirect.
2579
2580 2004-03-31  Andrew Pinski  <pinskia@physics.uc.edu>
2581
2582         * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA):
2583         Add darwin-fpsave.asm, darwin-vecsave.asm,
2584         and darwin-world.asm.
2585         (TARGET_LIBGCC2_CFLAGS): Add -Wa,-force_cpusubtype_ALL
2586         as the asm files contain altivec instructions.
2587         * config/rs6000/darwin-fpsave.asm: New file.
2588         * config/rs6000/darwin-vecsave.asm: New file.
2589         * config/rs6000/darwin-world.asm: New file.
2590
2591 2004-03-31  Zack Weinberg  <zack@codesourcery.com>
2592
2593         * gengtype-yacc.y (option, stringseq): Add missing
2594         terminating semicolon.
2595
2596 2004-03-30  David Edelsohn  <edelsohn@gnu.org>
2597
2598         * config/rs6000/rs6000.md (tls_gd_32, tls_gd_64,
2599         tls_ld_32, tls_ld_64, tls_dtprel_32, tls_dtprel_64,
2600         tls_dtprel_ha_32, tls_dtprel_ha_64,
2601         tls_dtprel_lo_32, tls_dtprel_lo_64,
2602         tls_got_dtprel_64, tls_tprel_32, tls_tprel_64,
2603         tls_tprel_ha_32, tls_tprel_ha_64,
2604         tls_tprel_lo_32, tls_tprel_lo_64,
2605         tls_got_tprel_32, tls_got_tprel_64,
2606         tls_tls_32, tls_tls_64): Replace register_operand with
2607         gpc_reg_operand.
2608
2609 2004-03-30  Mostafa Hagog  <mustafa@il.ibm.com>
2610
2611         * config/rs6000/rs6000.md (*ctrsi_internal1, *ctrsi_internal2,
2612         *ctrdi_internal1, *ctrdi_internal2, *ctrsi_internal3,
2613         *ctrsi_internal4, *ctrdi_internal3, *ctrdi_internal4,
2614         *ctrsi_internal5, *ctrsi_internal6, *ctrdi_internal5,
2615         *ctrdi_internal6): Replace register_operand with
2616         nonimmediate_operand.
2617
2618 2004-03-29  Fariborz Jahanian <fjahanian@apple.com>
2619
2620         * fold-const.c (fold): Reassociate multiply expression
2621         with an adjacent non-multiply expression to use
2622         architecture's multiply-add instruction.
2623
2624 2004-03-30  Zack Weinberg  <zack@codesourcery.com>
2625
2626         * gengtype.c (create_option): New function.
2627         * gengtype.h: Prototype it.
2628         * gengtype-yacc.y (stringseq): New rule.
2629         (option): Use create_option.  Add new bare ID production.  Use
2630         stringseq, not STRING directly.
2631
2632         * alias.c, bitmap.c, c-decl.c, cgraph.h, cpplib.h, cselib.h
2633         * dwarf2out.c, emit-rtl.c, function.h, lists.c, tree.h
2634         * varray.h, config/alpha/alpha.c:
2635         Use new shorter form of GTY markers.
2636
2637         * doc/gty.texi: Rewrite.
2638
2639 2004-03-30  Andrew Pinski  <pinskia@physics.uc.edu>
2640
2641         * config/darwin.c (machopic_function_base_name):
2642         Remove current_name and getting the name of the
2643         current function.
2644
2645 2004-03-30  Nick Clifton  <nickc@redhat.com>
2646
2647         * config/arm/arm.md (thumb_jump): Reduce the backward branch
2648         range, and increase the forward branch range, to allow for
2649         the fact that the PC will be off by 4.
2650
2651 2004-03-30  Alan Modra  <amodra@bigpond.net.au>
2652
2653         * .cvsignore: Add GPATH, GRTAGS, GSYMS and GTAGS (GNU GLOBAL)
2654
2655 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
2656
2657         * config/rs6000/rs6000.c (output_vec_const_move):
2658         Find all cases of EASY_VECTOR_15_ADD_SELF.
2659         (easy_vector_constant_add_self): Accept
2660         all vector constant loadable by vsplt* and vadd*.
2661         (easy_vector_same): Use easy_vector_splat_const.
2662         (easy_vector_const): Use easy_vector_splat_const.
2663         (easy_vector_splat_const): New function.
2664         (gen_easy_vector_constant_add_self): New function.
2665
2666         * config/rs6000/rs6000-protos.c (gen_easy_vector_constant_add_self):
2667         New prototype.
2668
2669         * config/rs6000/altivec.md (movv4si splitter): Change to
2670         emit move insn with halfed vector constant.
2671         (*movv8hi splitter): Likewise.
2672         (*movv16qi splitter): Likewise.
2673
2674 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
2675
2676         PR 11591
2677         * config/rs6000/rs6000.c (rs6000_legitimate_address):
2678         Allow any offset to argument pointer in no-strict case.
2679
2680 2004-03-30  Jan Hubicka  <jh@suse.cz>
2681
2682         * toplev.c (backend_init): Add missing call to inint_optimization_passes.
2683         * passes.c (init_optimization_passes, finish_optimization_passes): Output cgraph
2684         dump file in non-unit-at-a-time mode.
2685
2686 2004-03-29  Hans-Peter Nilsson  <hp@axis.com>
2687
2688         * config/cris/cris.h: Correct #ifdef to test for
2689         HAVE_AS_NO_MUL_BUG_ABORT_OPTION, not
2690         HAVE_AS_MUL_BUG_ABORT_OPTION.
2691
2692 2004-03-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2693
2694         * function.c (put_var_into_stack): If old RTL was ADDRESSOF, update
2695         the address inside the old RTL.
2696
2697 2004-03-28  Zack Weinberg  <zack@codesourcery.com>
2698
2699         * c-decl.c: Verify that C_SIZEOF_STRUCT_LANG_IDENTIFIER is correct.
2700         (struct c_binding, struct c_scope): Add chain_next
2701         attributes to GTY markers.
2702         (struct lang_identifier, struct lang_tree_node): Define
2703         here...
2704         * c-tree.h: ... not here.  No longer need to declare struct
2705         c_binding either.  Do define C_SIZEOF_STRUCT_LANG_IDENTIFIER.
2706         * c-lang.c, objc/objc-lang.c: Set LANG_HOOKS_IDENTIFIER_SIZE
2707         to C_SIZEOF_STRUCT_LANG_IDENTIFIER.
2708
2709         PR 14734, 11944
2710         * c-decl.c (get_parm_info): If error_mark_node is encountered
2711         in the bindings chain, unbind and discard it; don't abort.
2712
2713 2004-03-28  Olga Golovonevsky <olga@il.ibm.com>
2714             Dorit Naishlos <dorit@il.ibm.com>
2715
2716         * config/rs6000/altivec.md: (andvv16qi3, andv8hi3, one_cmplv16qi2,
2717         one_cmplv8hi2, one_cmplv4si2, iorv16qi3, iorv8hi3,): New modelling.
2718
2719 2004-03-28  Stephane Carrez  <stcarrez@nerim.fr>
2720
2721         * config/m68hc11/m68hc11-protos.h (m68hc11_page0_symbol_p): Declare.
2722
2723         * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute): New.
2724         (m68hc11_attribute_table): New attribute "page0" to mark a global
2725         variable as being allocated from within page0 section.
2726         (m68hc11_encode_label): New function.
2727         (m68hc11_strip_name_encoding): New function.
2728         (m68hc11_page0_symbol_p): New function.
2729         (m68hc11_indirect_p): Accept global variables marked in page0.
2730         (m68hc11_encode_section_info): Lookup "page0" attribute.
2731
2732         * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): 'R' constraint also
2733         represents access to page0 variables.
2734
2735         * config/m68hc11/m68hc11.md ("*logicalsi3_zexthi"): Use gen_rtx_REG.
2736         ("*logicalsi3_silshl16_zext"): Likewise.
2737         ("*ashldi3_const32"): Likewise.
2738         (peephole2 ashift): Likewise.
2739
2740 2004-03-28  Joseph S. Myers  <jsm@polyomino.org.uk>
2741
2742         * c-tree.h (C_DECL_REGISTER): New.
2743         * c-aux-info.c (gen_decl), c-decl.c (objc_mark_locals_volatile,
2744         finish_decl, grokdeclarator, get_parm_info), c-typeck.c
2745         (build_array_ref, c_mark_addressable): Set and use it.
2746         * c-decl.c (grokdeclarator), c-typeck.c (c_mark_addressable):
2747         Allow structures with volatile fields to be declared register.
2748         Don't check TREE_ADDRESSABLE before warning about taking address
2749         of register.
2750         * c-decl.c (finish_decl): Don't allow structures with volatile
2751         fields to be placed in named register.
2752         * doc/trouble.texi: Remove reference to structures with volatile
2753         fields in registers.
2754
2755 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
2756
2757         * function.c (thread_prologue_and_epilogue): Move
2758         NOTE_INSN_FUNCTION_END and NOTE_INSN_FUNCTION_BEG notes
2759         before the epilogue.
2760
2761 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
2762
2763         * expr.c (store_constructor): Use gen_int_mode to correctly
2764         sign-extend CONST_INT value.
2765
2766 2004-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2767
2768         * builtin-types.def (BT_WINT, BT_FN_INT_WINT, BT_FN_WINT_WINT): New.
2769         * builtins.def (DEF_C94_BUILTIN): New.  Add wctype builtins.
2770         * doc/extend.texi: Likewise.
2771
2772 2004-03-26  Diego Novillo  <dnovillo@redhat.com>
2773
2774         * c-typeck.c (comptypes): Replace calls to TYPE_DOMAIN
2775           with TYPE_ORIG_SIZE_TYPE.
2776
2777 2004-03-25  Aldy Hernandez  <aldyh@redhat.com>
2778
2779         PR 14219
2780         * c-typeck.c (build_binary_op): Do not allow comparisons of
2781         vectors.
2782
2783 2004-03-26  James A. Morrison  <ja2morri@uwaterloo.ca>
2784
2785         * config.gcc: Remove sparc-tti-*.
2786         * config/sparc/pbd.h: Delete.
2787
2788         * config/sparc/sol2.h: Remove note about Sun OS 4.x.
2789         * config/sparc/aout.h: Likewise.
2790
2791         * config/sparc/sparc.h: Remove if 0'd code.
2792         * config/sparc/sparc.md (call): Remove if 0'd code.
2793         (call_value): Likewise.
2794         (nonlocal_goto): Likewise.
2795         (unimp_insn): Delete.
2796
2797 2004-03-25  Roger Sayle  <roger@eyesopen.com>
2798
2799         * fold-const.c (tree_expr_nonnegative_p): Handle BIT_XOR_EXPR like
2800         BIT_IOR_EXPR; A^B is nonnegative when A and B are nonnegative.
2801
2802 2004-03-25  Richard Henderson  <rth@redhat.com>
2803
2804         PR 11527
2805         * c-typeck.c (pop_init_level): Emit pending init elements earlier
2806         rather than later.
2807
2808 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2809
2810         * builtins.c (fold_builtin): Fix error in last change.
2811
2812 2004-03-25  Richard Sandiford  <rsandifo@redhat.com>
2813
2814         * config/mips/mips.h: Formatting fix.
2815
2816 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2817
2818         * builtins.def: Add ctype builtins.
2819         * doc/extend.texi: Likewise.
2820
2821 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2822
2823         * builtins.c (fold_builtin): Add new builtin optimizations for
2824         sqrt and/or cbrt.
2825         * fold-const.c (fold): Likewise.
2826
2827 2004-03-25  David Edelsohn  <edelsohn@gnu.org>
2828
2829         * config/rs6000/rs6000.c (rs6000_always_hint): New variable.
2830         (rs6000_sched_groups): New variable.
2831         (processor_target_table): Add power5.
2832         (rs6000_override_options): Set rs6000_sched_insert_nops,
2833         rs6000_sched_costly_dep and rs6000_sched_restricted_insns_priority
2834         from rs6000_sched_groups.
2835         (output_cbranch): Use rs6000_always_hint.
2836         (rs6000_variable_issue): Use rs6000_sched_groups.
2837         (rs6000_adjust_cost): Add CPU_POWER5.
2838         (is_microcoded_insn): Use rs6000_sched_groups.
2839         (is_dispatch_slot_restricted): Use rs6000_sched_groups.
2840         Return 2 for POWER5 cracked instructions.
2841         (is_cracked_insn): Use rs6000_sched_groups.
2842         (is_branch_slot_insn): Use rs6000_sched_groups.
2843         (rs6000_issue_rate): Add CPU_POWER5.
2844         (rs6000_sched_finish): Use rs6000_sched_groups.
2845         (rs6000_rtx_costs): Add PROCESSOR_POWER5.
2846         * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER5.
2847         (DEFAULT_SCHED_COSTLY_DEP): Delete.
2848         (DEFAULT_RESTRICTED_INSNS_PRIORITY): Delete.
2849         (DEFAULT_SCHED_FINISH_NOP_INSERTION_SCHEME): Delete.
2850         * config/rs6000/rs6000.md (define_attr "cpu"): Add power5.
2851         * config/rs6000/power5.md: New file.
2852         * doc/invoke.texi: Add power5 option.
2853
2854 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
2855
2856         * cfgrtl.c, dbxout.c, tree.def, config/darwin.h,
2857         config/arm/arm.c, objc/objc-act.c: Fix comment typos.
2858         * doc/invoke.texi: Fix a typo.
2859
2860 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
2861
2862         PR optimization/9707.
2863         * stmt.c (emit_case_nodes): Emit equality comparisons instead
2864         of recursing if both children are single-valued cases with no
2865         children.
2866
2867 2004-03-25  Paul Brook  <paul@codesourcery.com>
2868
2869         * config/arm/arm.c (vfp_print_multi): Remove.
2870         (arm_output_fldmx): New function.
2871         (vfp_emit_fstmx): Return block size, not insn. Add ARM10 VFPr1 bugfix.
2872         (arm_expand_prologue): Update to match.
2873         (arm_get_vfp_saved_size): New Function.
2874         (arm_get_frame_offsets): Use it.
2875         (arm_output_epilogue): Use new functions.
2876
2877 2004-03-24  Richard Henderson  <rth@redhat.com>
2878
2879         * alias.c (alias_invariant, alias_invariant_size): Mark GTY.
2880         (reg_known_value, reg_known_value_size): Likewise; make static.
2881         (reg_known_equiv_p): Make static.
2882         (clear_reg_alias_info): Update for new indexing.
2883         (get_reg_known_value, set_reg_known_value): New.
2884         (get_reg_known_equiv_p, set_reg_known_equiv_p): New.
2885         (canon_rtx): Use them.
2886         (init_alias_analysis): Likewise.  Allocate reg_known_value with gc.
2887         Don't play queer offsetting games with reg_known_value and
2888         reg_known_equiv_p.
2889         (end_alias_analysis): Free reg_known_value with gc.
2890         * rtl.h (get_reg_known_value, get_reg_known_equiv_p): Declare.
2891         * sched-deps.c (reg_known_equiv_p, reg_known_value): Remove.
2892         (deps_may_trap_p, sched_analyze_1, sched_analyze_2): Use the new
2893         functions instead.
2894
2895 2004-03-24  Kazu Hirata  <kazu@cs.umass.edu>
2896
2897         * dwarf2asm.c, loop.h, pretty-print.c, pretty-print.h,
2898         config/i386/mmintrin.h: Update copyright.
2899
2900 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
2901
2902         * configure.ac: Add --enable-werror-always (for top level bootstrap
2903         support).
2904         * configure: Regenerate.
2905
2906 2004-03-24  Ziemowit Laski  <zlaski@apple.com>
2907
2908         * objc/objc-act.c (objc_comptypes): Treat comparisons
2909         between 'Class' and '<class> *' as explicitly invalid.
2910
2911 2004-03-24  David Edelsohn  <edelsohn@gnu.org>
2912
2913         * doc/invoke.texi (-frename-registers: Add enabled at -O3.
2914         (-fprofile-values): Add enabled with profile-{generate,use}.
2915         (-fvpt): Same.
2916         (-ftracer): Add enabled with profile-use.
2917         (-funit-at-a-time): Add enabled at -O2,-O3.
2918         (-funroll-loops): Add enabled with profile-use.
2919         (-funswitch-loops): Add enabled with profile-use.  Remove duplicates.
2920         (max-gcse-passes): Mention default.
2921         (max-cse-path-length): Mention default.
2922
2923 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
2924
2925         * Makefile.in (STRICT2_WARN): Reorder.
2926         * configure.ac: Check for -Wold-style-definition, and use it
2927         in strict1_warn if it's available.
2928         * configure: Regnerate.
2929
2930 2004-03-24  Paul Brook  <paul@nowt.org>
2931
2932         * config.gcc <arm>: Add --with-abi=
2933         * config/arm/arm-protos.h (arm_get_frame_size, thumb_get_frame_size,
2934         thumb_far_jump_used): Remove prototypes.
2935         (arm_needs_doubleword_align): Add prototype.
2936         (thumb_compute_initial_elimination_offset): Ditto.
2937         * config/arm/arm.c (arm_get_frame_offsets): New function.
2938         (use_return_insn, output_return_instruction, arm_output_epilogue,
2939         arm_output_function_epilogue, arm_compute_initial_elimination_offset,
2940         arm_expand_prologue, thumb_expand_epilogue): Use it.
2941         (arm_abi, target_abi_name, all_arm_abis): New variables.
2942         (arm_override_options): Set them.  Set structure padding for AAPCS.
2943         (arm_return_in_memory): Update ABI check.
2944         (arm_init_cumulative_args): Initialize can_split.
2945         (arm_needs_doubleword_align): New function.
2946         (arm_function_arg): Don't split args after pushing to stack. Handle
2947         doubleword/even reg alignment.
2948         (arm_va_arg): Handle all doubleword aligned args.
2949         (add_minpoolforward ref, dump_minpool, push_minpool_fix): Align based
2950         on ABI, not CPU.
2951         (arm_compute_save_reg0_reg12_mask): Fix comment.
2952         (thumb_get_frame_size, thumb_get_frame_size): Remove.
2953         (thumb_jump_far_used_p): Remove superfluous argument.  Return save
2954         value for alignment.
2955         (thumb_unexpanded_epilogue, thumb_output_function_prologue): Change
2956         to match.
2957         (thumb_compute_initial_elimination_offset): New function.
2958         (thumb_expand_prologue): Use arm_get_frame_offsets.  Remove
2959         unneccessary rounding.
2960         * config/arm/arm.h (target_abi_name): Declare.
2961         (ARM_DOUBLEWORD_ALIGN, DOUBLEWORD_ALIGNMENT, TARGET_IWMMXT_ABI,
2962         arm_abi_type, ARM_DEFAULT_ABI): Define.
2963         (ARM_FLAG_ATPCS): Remove.
2964         (TARGET_OPTIONS, OPTION_DEFAULT_SPECS): Add -mabi=.
2965         (BIGGEST_ALIGNMENT, PREFERRED_STACK_BOUNDARY, STACK_BOUNDARY): Use it.
2966         (ADJUST_FIELD_ALIGN, DATA_ALIGNMENT, LOCAL_ALIGNMENT,
2967         TYPE_NEEDS_IWMMXT_ALIGNMENT): Remove.
2968         (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P, FUNCTION_ARG_REGNO_P):
2969         Contitionalize on ABI, not CPU.
2970         (struct arm_stack_offsets): Define.
2971         (struct machine_function): Add stack_offsets.  Remove frame_size.
2972         (FUNCTION_ARG_PARTIAL_NREGS): Don't split if previous args have been
2973         pushed.
2974         (FUNCTION_ARG_ADVANCE, FUNCTION_ARG_BOUNDARY): Handle general
2975         doubleword alignment.
2976         (THUMB_INITIAL_ELIMINATION_OFFSET,
2977         ARM_INITIAL_ELIMINATION_OFFSET): Remove.
2978         (INITIAL_ELIMINATION_OFFSET): Call functions directly.
2979         * config/arm/arm.md (align_8): Enable for all targets.
2980         * config/arm/netbsd-elf.h (TARGET_DEFAULT): Remove TARGET_ATPCS.
2981         (ARM_DEFAULT_ABI): Define.
2982         * doc/invoke.texi <ARM>: Document -mabi=. Update documentation for
2983         -mstructure-size-boundary.
2984
2985 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
2986
2987         * configure.ac: Check for -Wno-variadic-macros; don't use
2988         -pedantic (in stage 1 or a simple 'make all') unless it's available,
2989         and if it's available, use it.  Also, clean up check for
2990         -Wno-long-long.
2991         * configure: Regenerate.
2992
2993 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
2994
2995         * config.gcc (mips64vr-*-elf*, mips64vrel-*-elf*): Remove tm_defines.
2996         * config/mips/vr.h (DEFAULT_VR_ARCH): New macro, defined to vr4130.
2997         (MULTILIB_DEFAULTS): Use it.
2998         (MIPS_CPU_STRING_DEFAULT): Remove.
2999         (MIPS_ABI_DEFAULT, MIPS_MARCH_CONTROLS_SOFT_FLOAT): Define.
3000         (DRIVER_SELF_SPECS): Make -mfix-vr4122-bugs imply -march=vr4120.  Make
3001         EABI64 -mlong32 the default ABI.  Enforce the default architecture.
3002         * config/mips/t-vr (MULTILIB_OPTIONS): Add mfix-vr4122-bugs,
3003         march=vr4130, march=vr4300, march=vr5000 and march=vr5500.
3004         (MULTILIB_MATCHES): Use -mfix-vr4122-bugs multilibs for -march=vr4120.
3005         (MULTILIB_EXCEPTIONS): Change choice of multilibs.  Update comments
3006         accordingly.
3007
3008 2004-03-24  DJ Delorie  <dj@redhat.com>
3009             Richard Sandiford  <rsandifo@redhat.com>
3010
3011         * config/mips/mips.h (MASK_FIX_VR4122, TARGET_FIX_VR4122): New macros.
3012         (TARGET_SWITCHES): Add -mfix-vr4122-bugs and -mno-fix-vr4122-bugs.
3013         (ASM_SPEC): Pass down -mfix-vr4122-bugs.
3014         * config/mips/mips.c (mips_avoid_hazards): Don't emit whole functions
3015         in .set noreorder and .set nomacro if TARGET_FIX_VR4122.
3016         (mips_init_libfuncs): Use special functions for divsi3 and modsi3
3017         if TARGET_FIX_VR4122.
3018         * config/mips/mips.md (define_attr length): Account for nops inserted
3019         after macc and dmult when using -mfix-vr4122-bugs.
3020         (umuldi3_highpart, divmodsi4, divmoddi4): Disable if TARGET_FIX_VR4122.
3021         * config/mips/t-vr (LIB2FUNCS_STATIC_EXTRA): Define instead of
3022         LIB2FUNCS_EXTRA.  Add config/mips/vr4122-div.S.
3023         * config/mips/vr4122-div.S: New file.
3024         * doc/invoke.texi: Document -mfix-vr4122-bugs.
3025
3026 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
3027
3028         * config/mips/mips.h (PROCESSOR_R4130): New processor_type.
3029         (TARGET_MIPS4130): New macro.
3030         (ISA_HAS_MACC): Return true if TARGET_MIPS4130 && !TARGET_MIPS16.
3031         * config/mips/mips.c (mips_cpu_info_table): Add a vr4130 entry.
3032         (override_options): Extend MIPS_MARCH_CONTROLS_SOFT_FLOAT to deal
3033         with PROCESSOR_R4130.
3034         * config/mips/mips.md (define_attr cpu): Add r4130.
3035         * doc/invoke.texi: Document vr4130 as a supported MIPS architecture.
3036
3037 2004-03-24  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
3038             Richard Sandiford  <rsandifo@redhat.com>
3039
3040         * doc/invoke.texi: Apply missed hunk from 2004-03-03 change.
3041
3042 2004-03-24  Alexandre Oliva  <aoliva@redhat.com>
3043
3044         PR preprocessor/14438
3045         * cpplib.c (do_pragma): Remove line_change call after pragma
3046         handler.
3047
3048 2004-03-23  Ian Lance Taylor  <ian@wasabisystems.com>
3049
3050         * doc/extend.texi (ARM Built-in Functions): Replace with correct
3051         declarations.
3052
3053 2004-03-23  Roger Sayle  <roger@eyesopen.com>
3054
3055         * reg-stack.c (get_true_reg): Handle FLOAT_TRUNCATE like FLOAT_EXTEND
3056         if flag_unsafe_math_optimizations.
3057         * config/i386/i386.md (truncdfsf2): If flag_unsafe_math_optimizations
3058         and TARGET_80387 expand using truncdfsf2_noop pattern.
3059         (truncxfsf2): Likewise using truncxfsf2_noop.
3060         (truncxfdf2): Likewise using truncxfdf2_noop.
3061         (truncdfsf2_noop, truncxfsf2_noop, truncxfdf2_noop): New patterns.
3062
3063 2004-03-23  Ziemowit Laski  <zlaski@apple.com>
3064
3065         * hooks.c (hook_constcharptr_tree_null): New hook.
3066         * hooks.h (hook_constcharptr_tree_null): New prototype.
3067         * target-def.h (TARGET_MANGLE_FUNDAMENTAL_TYPE): New target hook.
3068         * target.h (mangle_fundamental_type): New target hook.
3069         * config/rs6000/rs6000.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Point
3070         target hook at rs6000_mangle_fundamental_type.
3071         (rs6000_mangle_fundamental_type): New function.
3072         * doc/tm.texi (TARGET_MANGLE_FUNDAMENTAL_TYPE): Document.
3073
3074 2004-03-23  Zack Weinberg  <zack@codesourcery.com>
3075
3076         PR 12267, 12391, 12560, 13129, 14114, 14133
3077         * c-tree.h: Forward declare struct c_binding.  Declare
3078         c_override_bindings_to_false.  Update prototypes.
3079         (struct lang_identifier): Update comments.  Change fields to be
3080         struct c_binding *.
3081         (IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE)
3082         (IDENTIFIER_LABEL_VALUE, C_DECL_INVISIBLE)
3083         (KEEP_NO, KEEP_YES, KEEP_MAYBE): Delete.
3084         (C_DECL_IN_EXTERNAL_SCOPE, C_DECL_DECLARED_BUILTIN): New.
3085         * c-common.h: Update prototypes.
3086         * c-decl.c (struct c_scope): Update commentary.  Remove names,
3087         names_last, parms, parms_last, tags, and shadowed fields.  Add
3088         bindings and depth fields.
3089         (scope_freelist): Move to more appropriate location.
3090         (c_print_identifier): Update for changes to struct lang_identifier.
3091         (objc_mark_locals_volatile): Update for new bindings structures.
3092         (global_bindings_p): Honor c_override_global_bindings_to_false.
3093         (pushlevel): Rename to push_scope; take no arguments; use the
3094         scope_freelist; initialize scope->depth and check for overflow.
3095         (poplevel): Rename to pop_scope; totally rewritten for new bindings
3096         structures.
3097         (diagnose_mismatched_decls): Use C_DECL_DECLARED_BUILTIN, not
3098         C_DECL_INVISIBLE, for certain decisions.  Adjust some diagnostics.
3099         Improve some commentary.  Adjust handling of forward parm decls.
3100         (merge_decls): Set C_DECL_DECLARED_BUILTIN when appropriate.
3101         Preserve C_DECL_IN_EXTERNAL_SCOPE.
3102         (warn_if_shadowing): Correct indentation.  Improve diagnostics.
3103         (pushdecl): Remove unnecessary assertion.  Short-circuit anonymous
3104         decls.  Rewrite for new bindings structures.  Improve commentary.
3105         Eliminate the copy_node call.
3106         (implicit_decl_warning): Use the "diag" idiom (as seen in
3107         locate_old_decl) to reduce code duplication; call locate_old_decl
3108         if appropriate.  Relocate to remove need for forward declaration.
3109         (implicitly_declare): Adjust for new bindings structures.  Kludge
3110         around Objective-C not-really-builtin functions.
3111         (undeclared_variable): Improve diagnostics.  If current_function_decl
3112         is nonnull but current_function_scope is null, use current_scope.
3113         Use bind.
3114         (lookup_tag): Adjust for new bindings structures.  Kludge around
3115         Objective-C's tag declarations that wind up in the external scope.
3116         (lookup_name): Adjust for new bindings structures.  Kludge around
3117         c-common.c's pseudo-typedefs that wind up in the external scope.
3118         (lookup_name_current_level): Rename lookup_name_in_scope; take a
3119         second argument indicating the scope to examine; rewrite for
3120         new bindings structures.
3121         (c_init_decl_processing): Adjust for renamed functions.  Do not
3122         initialize current_file_decl, first_builtin_decl, last_builtin_decl.
3123         First scope pushed is the external scope, not the global scope.
3124         (builtin_function): Use bind, not pushdecl.  Adjust other bits
3125         for new data structures.  Keep track of builtins that should be
3126         made visible automatically.
3127         (start_decl): Adjust diagnostics.  Remove unnecessary call to
3128         expand_decl.
3129         (grokparms): Return 0 if arg_types is error_mark_node.
3130         (get_parm_info): Rename "void_at_end" argument to "ellipsis", with
3131         reversed sense.  Rewrite for new bindings structures.  Do not
3132         leave any decls in the scope, to prevent pop_scope from doing
3133         contradictory things with them.
3134         (finish_struct, finish_enum): Remove redundant diagnostics.
3135         (build_enumerator): Don't cascade diagnostics for error_mark_node.
3136         Mark location where -pedantic changes the meaning of the program.
3137         (store_parm_decls_newstyle, store_parm_decls_oldstyle): Load the
3138         parameter decls into the function's scope structure using bind.
3139         Warn here about function definitions in the wrong style.
3140         Adjust diagnostics.
3141         (store_parm_decls): Correct the determination of whether a
3142         function was defined with a prototype.
3143         (c_write_global_declarations): Operate on all file decls and on
3144         the external scope.  Split body of the loop to...
3145         (c_write_global_declarations_1): ... this new function, to avoid
3146         code duplication.
3147         (truly_local_externals, first_builtin_decl, last_builtin_decl)
3148         (make_scope, pop_scope, in_parm_level_p, set_block)
3149         (any_external_decl, record_external_decl, bind_label, getdecls)
3150         (link_hash_hash, link_hash_eq, merge_translation_unit_decls)
3151         (c_reset_state): Delete.
3152         (visible_builtins, c_override_global_bindings_to_false)
3153         (c_binding, I_SYMBOL_BINDING, I_SYMBOL_DECL, I_TAG_BINDING)
3154         (I_TAG_DECL, I_LABEL_BINDING, I_LABEL_DECL, file_scope)
3155         (external_scope, binding_freelist, bind, free_binding_and_advance)
3156         (push_file_scope, pop_file_scope): New.
3157         (pushtag, pushdecl_top_level, lookup_label, declare_label)
3158         (define_label, c_make_fname_decl, finish_decl)
3159         (mark_forward_parm_decls, build_compound_literal)
3160         (grokdeclarator, start_function, check_for_loop_decls)
3161         (identifier_global_value, record_builtin_type): Minor adjustments
3162         for new bindings structures.  Improve diagnostics and commentary.
3163         * c-objc-common.c (start_cdtor, finish_cdtor): Adjust calls to
3164         pushlevel/poplevel respectively.
3165         (c_objc_common_finish_file): Don't call merge_translation_unit_decls.
3166         * c-opts.c (c_common_parse_file): Remove spurious ATTRIBUTE_UNUSED.
3167         Warn about YYDEBUG not being defined only if -dy.  Remove no-longer-
3168         correct loop over multiple translation units; call fatal_error if
3169         requested to compile more than one file at once.  (This disables
3170         IMA temporarily - an up-front error being preferable to a crash.)
3171         * c-parse.in (pushlevel, poplevel rules): Rename push_scope, pop_scope.
3172         (all actions): Adjust calls to pushlevel/poplevel.
3173         (parsing_iso_function_signature): Delete.
3174         (extdef_1): Fold into extdef.
3175         (old_style_parm_decls_1): Fold into old_style_parm_decls.  Don't
3176         warn here about function definitions in the wrong style.
3177         (after_tyle_declarator, parm_declarator_starttypename)
3178         (parm_declarator_nostarttypename, notype_declarator): Remove
3179         commented-out productions.
3180         (parmlist_1, parmlist_2): Use make_node, not tree_cons, to create
3181         an empty TREE_LIST node.  Adjust calls to get_parm_info.
3182         (parmlist_2 : ELLIPSIS): Tag the arg-info block with error_mark_node
3183         to suppress -Wold-style-definition after this error.
3184         (c_parse_file): Don't clear the binding stack or call
3185         finish_fname_decls here.  Correct comment.
3186         * c-typeck.c (same_translation_unit_p): Export.
3187         (common_type): Use c_override_global_bindings_to_false, not
3188         pushlevel/poplevel/declare_parm_level.
3189         * c-lang.c: Override LANG_HOOKS_CLEAR_BINDING_STACK,
3190         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK,
3191         and LANG_HOOKS_GETDECLS with do-nothing stubs.
3192         * objc/objc-lang.c: Likewise.
3193         * objc/objc-act.c: Adjust all calls to pushlevel, poplevel,
3194         get_parm_info.
3195         (OBJC_VOID_AT_END): Delete; replace all uses
3196         with void_list_node.
3197         (generate_forward_declaration_to_string_table): Delete.
3198         * objc/objc-act.h (OCTI_STRG_DECL, UOBJC_STRINGS_decl): Delete.
3199
3200         * coverage.c (create_coverage): Don't pushdecl anything.
3201         * langhooks.c (lhd_clear_binding_stack): Call
3202         lang_hooks.decls.poplevel, not poplevel.
3203         * tree.c (list_length): If ENABLE_TREE_CHECKING, abort on a
3204         circular list rather than going into an infinite loop.
3205
3206 2004-03-23  Olivier Hainque  <hainque@act-europe.fr>
3207
3208         * optabs.c (expand_binop): When synthesizing double word rotates
3209         from single word shifts, use a new register target if the provided
3210         target is not a REG already.
3211
3212 2004-03-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3213
3214         * alias.c (get_alias_set): Add support for TYPE_REF_CAN_ALIAS_ALL.
3215         * c-common.c (handle_mode_attribute): Add extra arg to
3216         build_pointer_type_for_mode and build_reference_type_for_mode.
3217         * c-typeck.c (build_c_cast): Only look at TREE_CONSTANT_OVERFLOW
3218         for INTEGER_CST.
3219         * tree.c (build_pointer_type_for_mode): Add arg CAN_ALIAS_ALL.
3220         Chain pointers via TYPE_NEXT_PTR_TO.
3221         (build_reference_type_for_mode): Similarly.
3222         (build_type_no_quals): Add extra arg to build_pointer_type_for_mode
3223         and build_reference_type_for_mode.
3224         (tree_check4_failed): New function.
3225         * tree.h (TREE_CHECK4, PTR_OR_REF_CHECK): New macros.
3226         (TYPE_REF_CAN_ALIAS_ALL, TYPE_NEXT_PTR_TO, TYPE_NEXT_REF_TO): Likewise.
3227         (TREE_NO_UNSUED_WARNING, TREE_VIA_VIRTUAL, TREE_CONSTANT_OVERFLOW):
3228         Add check.
3229
3230 2004-03-23  Roger Sayle  <roger@eyesopen.com>
3231
3232         * fold-const.c (tree_expr_nonnegative_p): A&B is nonnegative when
3233         A is nonnegative or B is nonnegative.  Similarly A|B is nonnegative
3234         when both A and B are nonnegative.
3235         (tree_expr_nonzero_p): A|B is nonzero when A is nonzero or B is
3236         nonzero.
3237
3238 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
3239
3240         * fold-const.c (fold): Remove cases for INTEGER_CST, REAL_CST,
3241         VECTOR_CST, STRING_CST, COMPLEX_CST, and CONSTRUCTOR.
3242
3243 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
3244
3245         PR optimization/14669
3246         * fold-const.c (fold): Only unwiden integer comparisons for equality
3247         and inequality operators, or when the signedness doesn't change.
3248
3249 2004-03-23  Jakub Jelinek  <jakub@redhat.com>
3250
3251         * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
3252         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Set.
3253         * config/sparc/t-linux: New file.
3254
3255 2004-03-23  Richard Sandiford  <rsandifo@redhat.com>
3256
3257         * gcse.c (can_assign_to_reg_p): New function, split out from...
3258         (want_to_gcse_p): ...here.
3259         (compute_ld_motion_mems): Use can_assign_to_reg_p to validate
3260         the rhs of a store.
3261
3262 2004-03-22  Diego Novillo  <dnovillo@redhat.com>
3263
3264         * c-typeck.c (same_translation_unit_p): Fix pasto.
3265
3266 2004-03-22  David Edelsohn  <edelsohn@gnu.org>
3267
3268         * params.def (PARAM_MAX_SCHED_REGION_BLOCKS): New.
3269         (PARAM_MAX_SCHED_REGION_INSNS): New.
3270         * sched-rgn.c: Include params.h
3271         (MAX_RGN_BLOCKS): Delete.
3272         (MAX_RGN_INSNS): Delete.
3273         (too_large): Return bool.  Convert to PARAM_VALUE.
3274         * Makefile.in (sched-rgn.o): Depend on $(PARAMS_H).
3275         * doc/invoke.texi (param): Document max-sched-region-blocks and
3276         max-sched-region-insns.
3277
3278 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
3279
3280         * dwarf2out.c (is_subrange_type): Do not emit a subrange_type DIE
3281         for base types.
3282
3283 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
3284
3285         * dwarf2out.c (is_subrange_type): Minor code rework. No behavior
3286         change.
3287
3288 2004-03-22  Jakub Jelinek  <jakub@redhat.com>
3289
3290         PR c/14069
3291         * c-decl.c (finish_struct): Change type of incorrect flexible array
3292         field into error_mark_node.
3293
3294 2004-03-22  Andrew Pinski  <pinskia@physics.uc.edu>
3295
3296         PR target/14580
3297         * config/rs6000/rs6000.c (symbol_ref_operand): Reject symbols
3298         who are not local for Darwin PIC.
3299
3300 2004-03-22  Ulrich Weigand  <uweigand@de.ibm.com>
3301
3302         * regrename.c (regrename_optimize): Set regs_ever_live for all
3303         registers introduced as replacement.
3304
3305 2004-03-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
3306
3307         PR middle-end/14470
3308         * expr.c (mark_queue): New function.
3309         (emit_insns_enqueued_after_mark): New function replacing
3310         emit_queue.  Clear the body of emitted queued insns.
3311         (emit_queue): Call emit_insns_enqueued_after_mark.
3312         (store_expr): Mark the increment queue on entry.  Emit
3313         only the incrementations queued when expanding the source.
3314
3315 2004-03-22  Nathanael Nerode  <neroden@gcc.gnu.org>
3316
3317         * configure.ac: Allow --disable-coverage-flags (for the future benefit
3318         of top level bootstrap, and consistency).  Reindent.
3319         * configure: Regenerate.
3320
3321 2004-03-21  Kazu Hirata  <kazu@cs.umass.edu>
3322
3323         * bt-load.c, builtins.c, cfghooks.c, cfgrtl.c, gcse.c,
3324         ggc-page.c, integrate.c, var-tracking.c, web.c: Remove
3325         unnecessary casts.
3326
3327 2004-03-22  Danny Smith  <dannysmith@users.sourceforge.net>
3328
3329         PR target/14291
3330         * gcov-io.h (gcov_truncate): Define ftruncate as _chsize for
3331         __MINGW32__.
3332
3333 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
3334
3335         * config/s390/s390.md ("*doloop_si"): Change predicate for operand 2
3336         to nonimmediate_operand.
3337         ("*doloop_di"): Likewise.
3338
3339 2004-03-21  Alexandre Oliva  <aoliva@redhat.com>
3340
3341         * real.h (struct real_value): Use the same type for all
3342         bitfields.  Rename exp to uexp.
3343         (REAL_EXP, SET_REAL_EXP): New accessor macros for uexp.
3344         Adjust all uses of exp...
3345         * builtins.c: ... here, ...
3346         * emit-rtl.c: ... here, and ...
3347         * real.c: ... and here.
3348
3349 2004-03-21  Gabriel Dos Reis  <gdr@integrable-solutions.net>
3350
3351         * pretty-print.c (pp_base_maybe_space): New function.
3352         * pretty-print.h (pp_base_maybe_space): Declare.
3353         (pp_maybe_space): New macro.
3354
3355 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
3356
3357         * config/s390/s390.md ("addti3", "subti3"): New insns and splitters.
3358
3359 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
3360
3361         * expmed.c (choose_mult_variant): Pass MULT_COST as argument instead
3362         of using register multiplication cost.
3363         (expand_mult): Adapt choose_mult_variant call.
3364         (expand_mult_highpart): Call choose_mult_variant with WIDER_MODE
3365         of MODE; pass appropriate cost bound.  Adjust result when
3366         performing signed multiplication by a negative constant.
3367         Don't use intermediate modes larger than word_mode.
3368
3369 2004-03-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3370
3371         * alias.c (get_alias_set): Remove handling of PLACEHOLDER_EXPR.
3372         * emit-rtl.c (component_ref_for_mem_expr): Likewise.
3373         (set_mem_attributes_minus_bitpos): Call SUBSTITUTE_PLACEHOLDER_IN_EXPR.
3374         * explow.c (expr_size): Likewise.
3375         * expr.h (placeholder_list, find_placeholder): Deleted.
3376         * expr.c (store_constructor): Likewise.
3377         (get_inner_reference): Likewise.  Also don't call find_placeholder.
3378         (placeholder_list, find_placeholder): Deleted.
3379         (is_aligning_offset): Don't handle WITH_RECORD_EXPR, PLACEHOLDER_EXPR.
3380         (expand_expr_real, cases PLACEHOLDER_EXPR, WITH_RECORD_EXPR): Likewise.
3381         (highest_pow2_factor, case WITH_RECORD_EXPR): Remove.
3382         * dojump.c (do_jump, case WITH_RECORD_EXPR): Likewise.
3383         * dwarf2out.c (loc_descriptor_from_tree, case WITH_RECORD_EXPR):
3384         Likewise.
3385         * fold-const.c (invert_truthvalue, case WITH_RECORD_EXPR): Likewise.
3386         (extract_muldiv, case WITH_RECORD_EXPR): Likewise.
3387         * tree.c (expr_align, case WITH_RECORD_EXPR): Likewise.
3388         (contains_placeholder_p): Don't handle WITH_RECORD_EXPR.
3389         Clean up by using first_rtl_op.
3390         (substitute_in_expr): Use SUBSTITUTE_IN_EXPR for recursive call.
3391         (substitute_placeholder_in_expr): New function.
3392         * tree.def (WITH_RECORD_EXPR): Deleted.
3393         * tree.h (SUBSTITUTE_IN_EXPR, SUBSTITUTE_PLACEHOLDER_IN_EXPR): New.
3394         (substitute_placeholder_in_expr): New.
3395
3396 2004-03-21  Andrew Pinski  <pinskia@gcc.gnu.org>
3397
3398         * dojump.c (prefer_and_bit_test): Fix which part of
3399         the and_test is replaced.
3400
3401 2004-03-21  Joseph S. Myers  <jsm@polyomino.org.uk>
3402
3403         * frontends.texi: Add missing line.
3404
3405 2004-03-21  Zack Weinberg  <zack@codesourcery.com>
3406             Chris Devers  <cdevers@pobox.com>
3407             Joseph S. Myers  <jsm@polyomino.org.uk>
3408
3409         * doc/frontends.texi: Rewrite.
3410         * doc/gcc.texi: Update last modification date.
3411
3412 2004-03-21  Josef Zlomek  <zlomekj@suse.cz>
3413
3414         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Print the debug
3415         message before redirecting the edge.
3416
3417 2004-03-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3418
3419         * emit-rtl.c (set_mem_attributes_minus_bitpos): Set MEM_POINTER
3420         flag.
3421         * explow.c (force_not_mem): Set REG_POINTER flag according to
3422         MEM_POINTER one.
3423         * rtl.h (MEM_POINTER): New macro.
3424         (struct rtx_def): Use integrated for MEM_SCALAR_P and frame_related
3425         for MEM_POINTER.
3426
3427 2004-03-20  Roger Sayle  <roger@eyesopen.com>
3428
3429         PR target/13889
3430         * cse.c (fold_rtx): Avoid substituting constants into unary
3431         conversion operations.
3432
3433 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
3434
3435         * fold-const.c (fold): Replace "expr" with "t".
3436
3437 2004-03-20  Ian Lance Taylor  <ian@wasabisystems.com>
3438
3439         PR c/12373
3440         * c-typeck.c (tagged_types_tu_compatible_p): Don't use
3441         DECL_ORIGINAL_TYPE if there isn't one.
3442
3443 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
3444
3445         * fold-const.c (fold): Replace "final_type" with "type".
3446         Remove variable "final_type".
3447
3448 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
3449
3450         * fold-const.c (fold): Constify "type".
3451         Replace "TREE_TYPE (t)" with "type".
3452
3453 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
3454
3455         * bb-reorder.c, bt-load.c, c-decl.c, cfgcleanup.c, coverage.c,
3456         dwarf2asm.c, ifcvt.c, stor-layout.c, varasm.c: Replace calls
3457         via (*targetm.foo) () with targetm.foo ().
3458
3459 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
3460
3461         PR other/14630
3462         * doc/install.texi: Add info directory category and entry.
3463
3464 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
3465
3466         * fold-const.c (fold): Replace "t" with "tem" where it is used
3467         as a temporary variable.  Remove "orig_t" and all of its uses.
3468
3469 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
3470
3471         * fold-const.c (fold): Remove variable "invert".
3472         Move the handling of relational expressions that can be folded
3473         to a constant ...
3474         (fold_relational_const): ... here.
3475         (tree_expr_nonzero_p): New.
3476
3477 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
3478
3479         PR c/14635
3480         * builtins.def (nan, nanf, nanl, nans, nansf, nansl): Change to
3481         DEF_GCC_BUILTIN.
3482
3483 2004-03-20  Richard Sandiford  <rsandifo@redhat.com>
3484
3485         * Makefile.in (dojump.o): Depend on $(GGC_H) and dojump.h.
3486         (GTFILES): Add $(srcdir)/dojump.h.
3487         (gt-dojump.h): New dependency.
3488         * dojump.c (and_reg, and_test, shift_test): New static variables.
3489         (prefer_and_bit_test): New function.
3490         (do_jump): Use it to choose between (X & (1 << C)) and (X >> C) & 1.
3491
3492 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
3493
3494         * c-common.c, cfgcleanup.c, cgraphunit.c, c-pretty-print.c,
3495         expmed.c, ggc-common.c, jump.c, passes.c, recog.c, regmove.c,
3496         reorg.c, tree.h: Fix comment typos.
3497
3498 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
3499
3500         * alias.c, attribs.c, bt-load.c, builtins.c, c-common.c,
3501         c-decl.c, c-objc-common.c, c-typeck.c, calls.c, cfglayout.c,
3502         cse.c, dbxout.c, dwarf2out.c, except.c, final.c,
3503         haifa-sched.c, integrate.c, passes.c, rtlanal.c, sched-rgn.c,
3504         sched-vis.c, simplify-rtx.c, stor-layout.c, tree.c, varasm.c,
3505         vmsdbgout.c: Replace calls via (*targetm.foo) () with
3506         targetm.foo ().
3507
3508 2004-03-19  Ziemowit Laski  <zlaski@apple.com>
3509
3510         * config/rs6000/altivec.h (vec_dst, vec_dstst, vec_dststt,
3511         vec_dstt, vec_sld, vec_splat): Add prototypes, marked with
3512         always_inline attribute.
3513         * config/rs6000/rs6000.c (altivec_expand_dst_builtin):
3514         Treat expansion as completed even if literal argument is
3515         invalid (so that other expansions are not tried in vain).
3516
3517 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
3518
3519         * loop-doloop.c (add_test): Replace GEN_INT (0) with
3520         const0_rtx.
3521
3522 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
3523
3524         * fold-const.c (fold) <ABS_EXPR>: Move the handling of constants
3525         ...
3526         (fold_abs_const): ... here.
3527
3528 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3529
3530         * tree.h (TYPE_ARRAY_MAX_SIZE): Use type.maxval directly.
3531
3532 2004-03-19  Denis Chertykov  <denisc@overta.ru>
3533
3534         PR target/11520
3535         * config/avr/avr.md ("call_insn"): Handle explicit integer
3536         specially.
3537         (call_value_insn): Likewise.
3538
3539 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3540
3541         * tree.c (substitute_in_expr): Rewrite to simplify and be more generic.
3542
3543 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
3544
3545         * fold-const.c (negate_expr): Move the handling of constants
3546         ...
3547         (fold_negate_const): ... here.
3548
3549 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3550
3551         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): New macro and hook.
3552         * langhooks.h (struct lang_hooks_for_types): New field hash_types.
3553         * tree.c (debug_no_type_hash): Deleted.
3554         (type_hash_canon): Abort if passed a variant.
3555         Check lang_hooks.types.hash_types.
3556         (build_type_no_quals): Copy mode of POINTER_TYPE and REFERENCE_TYPE.
3557         (build_array_type): Remove unnecessary allocation of pointer type.
3558         (build_complex_type): Properly qualify resulting type.
3559
3560 2004-03-19  Paolo Bonzini  <bonzini@gnu.org>
3561
3562         * config/rs6000/rs6000.c (rs6000_init_builtins): Fix typo.
3563
3564 2004-03-19  Richard Sandiford  <rsandifo@redhat.com>
3565
3566         * expmed.c (choose_mult_variant, expand_mult_const): New, split from...
3567         (expand_mult): ...here.
3568         (extract_high_half): New, split out from expand_mult_highpart.
3569         (expand_highpart_optab): Likewise.  Don't clobber target prematurely.
3570         (expand_highpart): Evaluate the cost of a shift/add sequence,
3571         then see if any of the specialized optabs are cheaper.
3572
3573 2004-03-18  Ian Lance Taylor  <ian@wasabisystems.com>
3574
3575         * mklibgcc.in: Remove obsolete MAYBE_USE_COLLECT2.
3576
3577 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3578
3579         * convert.c (convert_to_real): Add more math builtins.
3580
3581 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3582
3583         * convert.c (convert_to_real): Reformat using switch stmt.
3584
3585 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
3586
3587         * c-common.c (pointer_int_sum): Do not complain about using
3588         pointers to pointers-to-members.
3589
3590 2004-03-18  Kazu Hirata  <kazu@cs.umass.edu>
3591
3592         * system.h (MD_ASM_CLOBBERS): Move to "Old target macros that
3593         have moved to the target hooks structure".
3594
3595 2004-03-18  James E Wilson  <wilson@specifixinc.com>
3596
3597         * config/mips/mips.md (type): Split move into arith and fmove.  Split
3598         hilo into mthilo and mfhilo.  Add trap.  Delete icmp.  Fix all uses.
3599         * config/mips/5400.md (ir_vr54_hilo, ir_vr54_arith, ir_vr54_fabs):
3600         Likewise.
3601         * config/mips/5500.md (ir_vr55_hilo, ir_vr55_arith, ir_vr55_fabs):
3602         Likewise.
3603         * config/mips/7000.md (rm7_int_other, rm7_mthilo, rm7_mfhilo,
3604         rm7_fp_quick): Likewise.
3605         * config/mips/9000.md (rm9k_int, rm9k_mfhilo, rm9k_mthilo,
3606         rm9k_fquick): Likewise.
3607         * config/mips/sr71k.md (ir_sr70_hilo, ir_sr70_arith, ir_sr70_fabs):
3608         Likewise.
3609         (ir_sr70_icmp): Delete.
3610
3611 2004-03-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3612
3613         * tree.h (TREE_CHECK2, TREE_CHECK3, TREE_CHECK5): New macros.
3614         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New decl.
3615         (FUNC_OR_METHOD_CHECK, SET_ARRAY_OR_VECTOR_CHECK): New macros.
3616         (REC_OR_UNION_CHECK, NUMERICAL_TYPE_CHECK): Likewise.
3617         (TYPE_VALUES, TYPE_DOMAIN, TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD):
3618         Protect with proper check.
3619         (TYPE_ARG_TYPES, TYPE_METHOD_BASETYPE, TYPE_OFFSET_BASETYPE): Likewise.
3620         (TYPE_MIN_VALUE, TYPE_MAX_VALUE): Likewise.
3621         * tree.c (type_hash_eq): Rewrite to access proper fields for each type.
3622         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New.
3623         * c-typeck.c (build_array_ref): Use TYPE_DOMAIN, not TYPE_VALUES.
3624         * dwarf2out.c (gen_enumeration_type_die): Use TYPE_VALUES,
3625         not TYPE_FIELDS.
3626         * stor-layout.c (set_sizetype): Use TYPE_ORIG_SIZE_TYPE.
3627
3628 2004-03-18  Mostafa Hagog  <mustafa@il.ibm.com>
3629
3630         * gcse.c (eliminate_partially_redundant_loads): Reject change if
3631         dest is set between beginning and current insn.
3632
3633 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
3634
3635         * c-decl.c (grokdeclarator): Do not complain about redeclaring
3636         visible "static" identifiers "extern" in a local scope.
3637         * dwarf2out.c (loc_descriptor_from_tree): Handle pre- and
3638         post-increments/decrements.
3639
3640 2004-03-18  Bob Wilson  <bob.wilson@acm.org>
3641
3642         * config/xtensa/xtensa.c (current_function_arg_words): Delete.
3643         (xtensa_builtin_saveregs): Use current_function_args_info.arg_words.
3644         (xtensa_va_start): Remove assignment to current_function_arg_words.
3645
3646 2004-03-18  Richard Sandiford  <rsandifo@redhat.com>
3647
3648         * alias.c (record_set): Detect the case where a register is assigned
3649         a new value that has the same base term as the old one.
3650
3651 2004-03-18  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3652
3653         * doloop.c: Removed.
3654         * loop-doloop.c: New file.
3655         * Makefile.in (doloop.o): Remove.
3656         (loop-doloop.o): New.
3657         * cfgloop.h (get_loop_level, doloop_optimize_loops): Declare.
3658         * cfgloopanal.c (get_loop_level): New function.
3659         * loop-iv.c (iv_number_of_iterations): Handle case when loop
3660         is leaved immediatelly.
3661         * loop.c (strength_reduce): Do not call doloop optimization.
3662         * loop.h (LOOP_BCT): Removed.
3663         * passes.c (rest_of_handle_loop_optimize): Do not use LOOP_BCT.
3664         (rest_of_handle_loop2): Call doloop_optimize_loops.
3665         (rest_of_compilation): Test for optimizations moved to
3666         rest_of_handle_loop2.
3667
3668 2004-03-17  Fariborz Jahanian <fjahanian@apple.com>
3669
3670         * config/rs6000/rs6000.c (rs6000_stack_info): correct reg_size
3671         for mixed mode.
3672         (rs6000_emit_prologue): Ditto.
3673         (rs6000_emit_epilogue): Ditto.
3674         * config/rs6000/rs6000.h: Definition of DWARF_CIE_DATA_ALIGNMENT
3675         macro for mixed mode.
3676
3677 2004-03-18  Jan Hubicka  <jh@suse.cz>
3678
3679         * predict.c (propagate_freq): Compute correctly frequency of
3680         EXIT_BLOCK.
3681
3682 2004-03-17  Eric Christopher  <echristo@redhat.com>
3683
3684         * builtins.c (apply_args_size): Use reg_raw_mode.
3685         (apply_result_size): Ditto.
3686
3687 2004-03-17  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
3688
3689         PR target/14620
3690         * config/rtems.h: Add STD_LIB_SPEC and LIB_SPEC.
3691
3692 2004-03-17  Jakub Jelinek  <jakub@redhat.com>
3693
3694         * config/rs6000/t-linux64 (bispecs): Don't add -mlong-double-128 for
3695         32-bit builds when defaulting to 32-bit.
3696
3697 2004-03-17  Jan Hubicka  <jh@suse.cz>
3698
3699         * cfgrtl.c (rtl_create_basic_block): Pre-allocate basic_block_info
3700         array.
3701
3702 2004-03-17  James E Wilson  <wilson@specifixinc.com>
3703
3704         * config/mips/mips.md (zero_extendsidi2): Add length attribute.
3705         (hazard_nop): Change type to nop.
3706         (type): Split arith into arith, shift, slt, clz.  Delete darith.
3707         Fix all uses.  Change arith to multi if more than one insn emitted.
3708         * config/mips/5400.md (ir_vr54_arith): Likewise.
3709         * config/mips/5500.md (ir_vr55_arith): Likewise.
3710         * config/mips/7000.md (rm7_int_other): Likewise.
3711         * config/mips/9000.md (rm9k_int): Likewise.
3712         * config/mips/sr71k.md (ir_sr70_arith): Likewise.
3713
3714 2004-03-17  Joel Brobecker  <brobecker@gnat.com>
3715
3716         * dwarf2out.c (subrange_type_die): Define new variable "subtype"
3717         to hold the subtype tree instead of recomputing it several times.
3718
3719 2004-03-17  Kazu Hirata  <kazu@cs.umass.edu>
3720
3721         * config/mn10300/mn10300.c (notice_update_cc): Don't handle
3722         CC_INVERT.
3723         * config/mn10300/mn10300.md (cc): Remove "invert".
3724
3725 2004-03-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3726
3727         * builtins.c (integer_valued_real_p): Add builtin rint.
3728         (fold_builtin): Likewise.
3729         * convert.c (convert_to_real): Likewise.
3730
3731         * convert.c (convert_to_real): Fix typos in `long double'
3732         builtins.
3733
3734 2004-03-16  Mark Mitchell  <mark@codesourcery.com>
3735
3736         PR c++/14481
3737         * fold-const.c (fold): Set TREE_NO_UNUSED_WARNING on implicitly
3738         generated COMPOUND_EXPRs.
3739
3740 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
3741
3742         * config/h8300/t-rtems (h8300-*-rtems*): New.
3743
3744 2004-03-16  Eric Christopher  <echristo@redhat.com>
3745
3746         * doc/cppopts.texi(fwide-exec-charset): Fix typo.
3747
3748 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
3749
3750         * config/i386/i386-protos.h: Add a prototype for
3751         ix86_reverse_condition.
3752         * config/i386/i386.c (ix86_reverse_condition): New.
3753         * config/i386/i386.h (REVERSE_CONDITION): Use
3754         ix86_reverse_condition.
3755         * config/i386/i386.md: Use ix86_reverse_condition instead of
3756         REVERSE_CONDITION.
3757
3758 2004-03-16  J. Brobecker  <brobecker@gnat.com>
3759
3760         * dwarf2out.c (loc_descriptor_from_tree): Add handling for MIN_EXPR.
3761
3762 2004-03-16  Nathanael Nerode  <neroden@gcc.gnu.org>
3763
3764         PR bootstrap/12974
3765         * Makefile.in: Pass $(INCLUDES) down to libgcc.mk explicitly.
3766
3767 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
3768
3769         * c-common.c (c_common_type_for_mode): Build vector types on
3770         demand.
3771         (handle_mode_attribute): Deprecate using the mode attribute
3772         to create vector types.  Fix indentation.
3773         (vector_type_node_list): Remove.
3774         (handle_vector_size_attribute): Create vector types on demand.
3775         Strip a NON_LVALUE_EXPR from the attribute if there is one.
3776         * c-typeck.c (comptypes): Make vector types compatible if they
3777         have the same underlying mode.
3778         (convert_for_assignment): Use comptypes to convert between
3779         vector types.
3780         * tree.c (build_common_tree_nodes_2): Do not create vector types.
3781         * config/arm/arm.c (arm_init_iwmmxt_builtins): Create necessary
3782         vector types.
3783         * tree.h: Remove vector types.
3784         * config/i386/i386.c (i386_init_mmx_sse_builtins): Likewise.
3785         * config/rs6000/rs6000.c (rs6000_init_builtins): Likewise.
3786         (V16QI_type_node, V2SI_type_node, V2SF_type_node, V4HI_type_node,
3787         V4SI_type_node, V4SF_type_node, V8HI_type_node): New globals.
3788         * doc/extend.texi (Vector Types): Document how to use the
3789         vector_size attribute to create vectors, rather than mode.
3790
3791         * config/arm/mmintrin.h: Use vector_size attribute, not mode.
3792         * config/i386/emmintrin.h: Likewise.
3793         * config/i386/mmintrin.h: Likewise.
3794         * config/i386/xmmintrin.h: Likewise.
3795         * config/sh/ushmedia.h: Likewise.
3796
3797 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
3798
3799         * config/freebsd-spec.h, config/arc/arc-protos.h,
3800         config/arm/aout.h, config/arm/elf.h, config/arm/freebsd.h,
3801         config/arm/linux-gas.h, config/arm/semi.h,
3802         config/cris/cris-protos.h, config/i386/xm-djgpp.h,
3803         config/ia64/freebsd.h, config/mips/7000.md,
3804         config/mips/9000.md, config/ns32k/ns32k-protos.h,
3805         config/sparc/pbd.h: Update copyright.
3806
3807 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
3808
3809         PR target/14577
3810         * config.gcc: Switch sh-*-rtems* to ELF.  Add sh-*-rtemscoff.
3811
3812 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
3813
3814         * combine.c (combine_simplify_rtx): Remove the "last"
3815         parameter and its documentation.  Adjust recursive calls.
3816         (simplify_logical): Always perform the only simplification
3817         controlled by "last", if the simplified expression is
3818         actually different.
3819         (try_combine): Do not pass the "last" parameter to
3820         combine_simplify_rtx.
3821
3822 2004-03-16  Richard Sandiford  <rsandifo@redhat.com>
3823
3824         PR target/14599
3825         * config/mips/mips.md (UNSPEC_GP): New constant.
3826         * config/mips/mips.c (CONST_GP_P): Expect the CONST to contain
3827         an UNSPEC instead of (reg $gp).
3828         (mips16_gp_pseudo_reg): Change accordingly.
3829         (print_operand): Print $gp directly when handling CONST_GP_P.
3830
3831 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
3832
3833         * config.gcc, config/m68k/linux.h: Implement with-cpu for m68k-linux.
3834         * longlong.h: Make code 68060 clean when compiling for m68060.
3835
3836 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
3837
3838         * config/m68k/m68k.md: Fix constraints for bitfield instructions.
3839         * doc/md.texi: Clarify description of "i" constraint.
3840
3841 2004-03-15  James E Wilson  <wilson@specifixinc.com>
3842
3843         * config/mips/mips.md (type): Split load into load, fpload, fpidxload.
3844         Split store into store, fpstore, fpidxstore.  Fix all uses.
3845         * config/mips/5400.md (ir_vr54_load, ir_vr54_store, ir_vr54_fstore):
3846         Likewise.
3847         * config/mips/5500.md (ir_vr55_load, i5_vr55_store): Likewise.
3848         * config/mips/7000.md (rm7_ld, rm7_st): Likewise.
3849         * config/mips/9000.md (rm9k_load, rm9k_store): Likewise.
3850         * config/mips/sr71k.md (ir_sr70_load, ir_sr70_store, ir_sr70_fload,
3851         ir_sr70_fstore): Likewise.
3852
3853 2004-03-15  Richard Henderson  <rth@redhat.com>
3854
3855         PR middle-end/14535
3856         * except.c (collect_one_action_chain): Record action for cleanup
3857         outer of exception spec.
3858
3859 2004-03-15  Ian Lance Taylor  <ian@wasabisystems.com>
3860
3861         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
3862         Fix the check for abort and only do the mmap if we can.
3863
3864 2004-03-15  Eric Botcazou  <ebotcazou@act-europe.fr>
3865
3866         * config/sparc/sparc.h: Rework comments about the code model
3867         in 64-bit environment and the mode 'Pmode'.
3868         * doc/invoke.texi (SPARC options): Rework description of the
3869         different code models supported in 64-bit environment.
3870
3871 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
3872
3873         * defaults.h (REVERSIBLE_CC_MODE): Define.
3874         * jump.c (reversed_comparison_code_parts): Don't check if
3875         REVERSIBLE_CC_MODE is defined.
3876
3877 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
3878
3879         * c-incpath.c, c-incpath.h, c-pch.c, c.opt, cppexp.c,
3880         et-forest.h, genattr.c, ggc-none.c, hosthooks-def.h,
3881         hosthooks.h, params.h, ra-colorize.c, web.c,
3882         config/darwin-c.c, config/alpha/freebsd.h, config/arm/pe.c,
3883         config/avr/avr-protos.h, config/avr/avr.md,
3884         config/fr30/fr30-protos.h, config/fr30/fr30.md,
3885         config/h8300/fixunssfsi.c, config/i386/darwin.h,
3886         config/i386/freebsd.h, config/i386/freebsd64.h,
3887         config/ia64/hpux.h, config/ia64/unwind-ia64.c,
3888         config/ip2k/libgcc.S, config/m32r/xm-m32r.h,
3889         config/mmix/mmix-modes.def, config/ns32k/netbsd.h,
3890         config/ns32k/ns32k.md, config/pa/pa64-hpux.h,
3891         config/pa/pa64-regs.h, config/rs6000/aix41.h,
3892         config/rs6000/aix43.h, config/rs6000/host-darwin.c,
3893         config/sparc/aout.h, config/sparc/freebsd.h,
3894         config/sparc/litecoff.h, config/vax/vax-protos.h,
3895         doc/hostconfig.texi, doc/include/gcc-common.texi: Update
3896         copyright.
3897
3898 2004-03-15  Paul Brook  <paul@codesourcery.com>
3899
3900         * config/arm/arm.c (thumb_expand_prologue): Tie prologue insns to fp.
3901
3902 2004-03-15  Gabriel Dos Reis  <gdr@integrable-solutions.net>
3903
3904         * c-pretty-print.c (pp_c_semicolon): Fix formatting.
3905         (pp_c_cv_qualifier): Document.
3906         (pp_c_space_for_pointer_operator): Likewise.
3907         (pp_c_integer_constant): Likewise.
3908         (pp_c_identifier): Likewise.
3909         (pp_c_init_declarator): Don't print function body.
3910
3911 2004-03-14  Joseph S. Myers  <jsm@polyomino.org.uk>
3912
3913         * doc/contrib.texi, doc/extend.texi, doc/gcov.texi,
3914         doc/install.texi, doc/invoke.texi, doc/makefile.texi,
3915         doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi: Capitalize
3916         "gcc", "g++" and "g77" or mark up with appropriate markup.  Adjust
3917         wording and grammar.
3918
3919 2004-03-14  Roger Sayle  <roger@eyesopen.com>
3920
3921         * alias.c (get_alias_set): Replace calls via (*lang_hooks.foo) ()
3922         with lang_hooks.foo ().
3923         * builtins.c (expand_builtin_va_arg): Likewise.
3924         * c-common.c (fname_as_string, c_common_truthvalue_conversion,
3925         c_common_type_for_mode, c_common_nodes_and_builtins,
3926         handle_mode_attribute, handle_vector_size_attribute): Likewise.
3927         * c-convert.c (convert): Likewise.
3928         * c-format.c (check_format_types): Likewise.
3929         * c-objc-common.c (c_tree_printer): Likewise.
3930         * c-typeck.c (build_unary_op, build_conditional_expr,
3931         build_binary_op): Likewise.
3932         * calls.c (try_to_integrate, expand_call,
3933         emit_library_call_value_1): Likewise.
3934         * cgraph.c (cgraph_node_name, cgraph_function_possibly_inlined_p):
3935         Likewise.
3936         * cgraphunit.c (record_call_1, cgraph_analyze_function,
3937         cgraph_expand_function): Likewise.
3938         * convert.c (convert_to_pointer, convert_to_integer): Likewise.
3939         * coverage.c (build_fn_info_type, build_ctr_info_type,
3940         build_gcov_info, create_coverage): Likewise.
3941         * dbxout.c (dbxout_init): Likewise.
3942         * diagnostic.c (diagnostic_report_current_function): Likewise.
3943         * dojump.c (do_jump): Likewise.
3944         * dwarf2out.c (dwarf2_name): Likewise.
3945         * except.c (init_eh): Likewise.
3946         * explow.c (expr_size, int_expr_size): Likewise.
3947         * expmed.c (make_tree, const_mult_add_overflow_p, expand_mult_add):
3948         Likewise.
3949         * expr.c (store_expr, store_constructor, safe_from_p,
3950         expand_expr_real, do_store_flag, try_casesi): Likewise.
3951         * function.c (push_function_context_to, pop_function_context_from,
3952         free_after_parsing, assign_stack_local_1, assign_stack_temp_for_type,
3953         put_var_into_stack, allocate_struct_function, current_function_name):
3954         Likewise.
3955         * integrate.c (copy_decl_for_inlining, expand_inline_function):
3956         Likewise.
3957         * langhooks.c (lhd_clear_binding_stack, write_global_declarations,
3958         lhd_print_error_function): Likewise.
3959         * opts.c (handle_option, decode_options): Likewise.
3960         * passes.c (open_dump_file): Likewise.
3961         * print-tree.c (print_node): Likewise.
3962         * stmt.c (expand_fixup, fixup_gotos, expand_asm_operands,
3963         expand_decl_cleanup, emit_case_nodes): Likewise.
3964         * stor-layout.c (variable_size): Likewise.
3965         * toplev.c (announce_function, wrapup_global_declarations,
3966         check_global_declarations, compile_file, default_tree_printer,
3967         process_options, lang_dependent_init, finalize): Likewise.
3968         * tree-dump.c (dequeue_and_dump): Likewise.
3969         * tree-inline.c (remap_decl, remap_block, copy_body_r,
3970         initialize_inlined_parameters, declare_return_variable,
3971         inlinable_function_p, expand_call_inline, optimize_inline_calls,
3972         walk_tree, copy_tree_r): Likewise.
3973         * tree-optimize.c (tree_rest_of_compilation): Likewise.
3974         * tree.c (decl_assembler_name, tree_size, size_in_bytes, staticp,
3975         unsafe_for_reeval, get_unwidened, get_narrower, get_callee_fndecl,
3976         variably_modified_type_p, dump_tree_statistics): Likewise.
3977         * varasm.c (assemble_variable, compare_constant, copy_constant,
3978         force_const_mem, compute_reloc_for_constant, output_constant,
3979         output_addressed_constants, initializer_constant_valid_p): Likewise.
3980
3981 2004-03-14  Kelley Cook  <kcook@gcc.gnu.org>
3982
3983         * doc/install.texi: Make autoconf 2.13 the exception, not the rule.
3984
3985 2004-03-14  Andreas Tobler  <a.tobler@schweiz.ch>
3986
3987         * doc/install.texi: Reflect autoconf and automake version for
3988         libffi. Update autoconf version to 2.59.
3989
3990 2004-03-13  Roger Sayle  <roger@eyesopen.com>
3991
3992         * fold-const.c (negate_expr, operand_equal_for_comparison_p,
3993         optimize_bit_field_compare, decode_field_reference, all_ones_mask_p,
3994         make_range, build_range_check, fold_range_test, unextend,
3995         constant_boolean_node, fold_binary_op_with_conditional_arg,
3996         fold_truthop, fold_mathfn_compare, fold_inf_compare,
3997         fold_single_bit_test, fold): Replace calls via (*lang_hooks.foo) ()
3998         with lang_hooks.foo ().
3999
4000 2004-03-14  Richard Earnshaw  <rearnsha@arm.com>
4001
4002         * arm.h (EXTRA_CONSTRAINT_STR_ARM): Update comment.
4003
4004 2004-03-13  Dara Hazeghi  <dhazeghi@yahoo.com>
4005
4006         * doc/install.texi: Note status of -fnew-ra.
4007
4008 2004-03-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
4009
4010         PR middle-end/14470
4011         * expr.c (store_expr): Call emit_queue before generating the move
4012         from the temporary to the original target.  Protect the temporary
4013         from emit_queue.
4014
4015 2004-03-13  Jakub Jelinek  <jakub@redhat.com>
4016
4017         PR target/14533
4018         * config/s390/s390.c (legitimize_pic_address): Don't abort on UNSPEC
4019         other than UNSPEC_GOTOFF.
4020
4021 2004-03-13  Richard Earnshaw  <rearnsha@arm.com>
4022
4023         * arm.c (arm_legitimate_address_p): New argument, OUTER.  Pass through
4024         to arm_legitimate_index_p.  Update all callers with SET as default
4025         value.
4026         (arm_legitimate_index_p): New argument, OUTER.  Restrict the index
4027         range if OUTER is a sign-extend operation on QImode.  Correctly
4028         reject shift operations on sign-extended QImode addresses.
4029         (bad_signed_byte_operand): Delete.
4030         (arm_extendqisi_mem_op): New function.
4031         * arm.h (EXTRA_CONSTRAINT_ARM): Delete.  Replace with...
4032         (EXTRA_CONSTRAINT_STR_ARM): ... this.  Handle extended address
4033         constraints.
4034         (CONSTRAINT_LEN): New.
4035         (EXTRA_CONSTRAINT): Delete.  Replace with...
4036         (EXTRA_CONSTRAINT_STR): ... this.
4037         (PREDICATE_CODES): Remove bad_signed_byte_operand.
4038         * arm.md (extendqihi_insn): Use new constraint Uq.  Rework.  Length
4039         is now always default.
4040         (define_splits for bad sign-extend loads): Delete.
4041         (arm_extendqisi, arm_extendqisi_v5): Likewise.
4042         * arm/vfp.md (arm_movsi_vfp, arm_movdi_vfp, movsf_vfp, movdf_vfp):
4043         Rework 'U' constraint to 'Uv'.
4044         * arm-protos.h: Remove bad_signed_byte_operand.  Add
4045         arm_extendqisi_mem_op.
4046         * doc/md.texi (ARM constraints): Rename VFP constraint (now Uv).
4047         Add Uq constraint.
4048
4049 2004-03-13  Alan Modra  <amodra@bigpond.net.au>
4050
4051         * config/rs6000/rs6000.c (rs6000_va_arg): Replace SPLIT_COMPLEX_ARGS
4052         with targetm version.
4053
4054         PR target/14567
4055         * config/rs6000/rs6000.h (UNITS_PER_ARG, RS6000_ARG_SIZE): Delete.
4056         (HARD_REGNO_MODE_OK): Disallow TFmode for fp31.
4057         * config/rs6000/rs6000.c (rs6000_arg_size): New function.
4058         Update all users of RS6000_ARG_SIZE.
4059         (function_arg_advance): Count fregno using mode size.
4060         (function_arg): Handle long double split over regs and memory.
4061         (function_arg_partial_nregs): Likewise.
4062         (rs6000_va_arg): Repackage complex args.
4063
4064 2004-03-13  Dean Ferreyra <dferreyra@igc.org>
4065
4066         PR target/14047
4067         * config/avr/avr.c (avr_progmem_p): Add "attributes" parameter.
4068         (avr_insert_attributes): Pass "attributes" to avr_progmem_p.
4069         * config/avr/avr-protos.h (avr_progmem_p): Change prototype.
4070
4071 2004-03-12  Jakub Jelinek  <jakub@redhat.com>
4072
4073         * config/rs6000/rs6000-protos.h (rs6000_output_dwarf_dtprel): Add
4074         prototype.
4075         * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): New.
4076         * config/rs6000/rs6000.h (ASM_OUTPUT_DWARF_DTPREL): Define.
4077
4078 2003-03-12  Andrew Pinski  <apinski@apple.com>
4079
4080         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
4081         Use ret instead of result. Use addr instead of base.
4082
4083 2004-03-12  David Edelsohn  <edelsohn@gnu.org>
4084
4085         * doc/install.texi (*-ibm-aix*): Document assembler and achiver
4086         fixes required by libstdc++ and update installation instructions
4087         for libstdc++.a.
4088
4089 2004-03-12  Danny Smith  <dannysmith@users.sourceforge.net>
4090
4091         * config/i386/winnt.c (i386_pe_strip_name_encoding_full): Strip
4092         leading '@' on fastcall symbols before stripping suffix.
4093
4094 2004-03-12  Roger Sayle  <roger@eyesopen.com>
4095
4096         * combine.c (unmentioned_reg_p): New function to check whether an
4097         expression is a "specialization" of another, i.e. that there are
4098         no registers or memory references mentioned in the first that don't
4099         appear in the second.
4100         (unmentioned_reg_p_1): New helper subroutine of unmentioned_reg_p.
4101         (combine_instructions): Also try combining instructions using the
4102         REG_EQUAL note from a preceding log-linked instruction.
4103
4104 2004-03-12  Roger Sayle  <roger@eyesopen.com>
4105
4106         * config/i386/i386.c (ix86_split_ashrdi): Optimize shift by 63.
4107
4108 2004-03-12  Matt Austern  <austern@apple.com>
4109
4110         * target.h (struct gcc_target): New target hook, unwind_label.
4111         * target-def.h (TARGET_ASM_EMIT_UNWIND_LABEL): New hook.
4112         * output.h (default_emit_unwind_label): New function.
4113         * default.h (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): New macro.
4114         (TARGET_USES_WEAK_UNWIND_INFO): New target macro.
4115         (TARGET_SUPPORTS_HIDDEN): New target macro.
4116         * dwarf2out.c (struct dw_fde_struct): Add field for function decl
4117         that corresponds to this FDE.
4118         (FRAME_BEGIN_LABEL): Allow target to override default label.
4119         (output_call_frame_info): If FDEs are linknonce, then use extra
4120         indirection for FDE encoding, output a label for each FDE, and
4121         output an empty label for each function without an FDE.
4122         (dwarf2out_begin_prologue): Set up decl field when creating an FDE.
4123         * varasm.c (globalize_decl): Call ASM_MAKE_LABEL_LINKONCE for
4124         decls with DECL_ONE_ONLY set, if that macro is defined.
4125         (make_decl_one_only): Don't use DECL_COMMON if we're compiling
4126         for a SUPPORTS_ONE_ONLY target.
4127         * config/darwin-protos.h (darwin_unique_section): Declare.
4128         (darwin_asm_named_section): Likewise.
4129         (darwin_section_type_flags): Likewise.
4130         (darwin_non_lazy_pcrel): Likewise.
4131         (darwin_emit_unwind_label): Likewise.
4132         (darwin_make_decl_one_only): Likewise.
4133         * config/darwin.c (machopic_finish): Get rid of tweak that
4134         eliminate stubs for symbols that are defined.
4135         (darwin_encode_section_info): Don't treat weak functions as defined.
4136         (darwin_make_decl_one_only): Define.
4137         (darwin_asm_named_section): Likewise.
4138         (darwin_section_type_flags): Likewise.
4139         (darwin_unique_section): Likewise.
4140         (darwin_emit_unwind_label): Likewise.
4141         (darwin_non_lazy_pcrel): Likewise.
4142         (darwin_asm_output_dwarf_delta): Difference between two labels is
4143         local only if both labels are local.
4144         * config/darwin.h (MAKE_DECL_ONE_ONLY): Define.
4145         (ASM_MAKE_LABEL_LINKONCE): Likewise.
4146         (TARGET_SUPPORTS_HIDDEN): Likewise.
4147         (TARGET_USES_WEAK_UNWIND_INFO): Likewise.
4148         (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): Likewise.
4149         (FRAME_BEGIN_LABEL): Likewise.
4150         (ASM_DECLARE_OBJECT_NAME): Make references to weak symbols indirect.
4151         (ASM_DECLARE_FUNCTION_NAME): Likewise.
4152         (darwin_eh_frame_section): Give __eh_frame section the coalesced flag.
4153         (TARGET_ASM_UNIQUE_SECTION): Define.
4154         (EH_FRAME_SECTION_NAME): Define.
4155         (EH_FRAME_SECTION_ATTR): Likewise.
4156         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
4157         (TARGET_ASM_NAMED_SECTION): Likewise.
4158         (TARGET_SECTION_TYPE_FLAGS): Likewise.
4159         * doc/tm.texi: Document TARGET_USES_WEAK_UNWIND_INFO,
4160         TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, TARGET_SUPPORTS_HIDDEN,
4161         TARGET_ASM_EMIT_UNWIND_LABEL.
4162
4163 2004-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4164
4165         * builtins.c (expand_builtin_mathfn): Add pow10* to the
4166         existing exp10* case.
4167         (expand_builtin): Likewise.
4168
4169 2004-03-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
4170
4171         * doc/tm.texi (registers) <Values in Registers>: Add
4172         entry for REGMODE_NATURAL_SIZE.
4173
4174 2004-03-12  Richard Henderson  <rth@redhat.com>
4175
4176         PR target/14547
4177         * target.h (struct gcc_target): Move calls substructure before
4178         booleans.  Add split_complex_arg.
4179         * function.c (assign_parms, split_complex_args): Use it.
4180         * calls.c (expand_call): Likewise.
4181         (split_complex_values): Likewise.  Check for splittable types
4182         before allocating memory.
4183         (split_complex_types): Likewise.
4184         * system.h (SPLIT_COMPLEX_ARGS): Poison.
4185         * expr.h (SPLIT_COMPLEX_ARGS): Remove.
4186         * target-def.h (TARGET_SPLIT_COMPLEX_ARG): New.
4187         * config/alpha/alpha.c (alpha_split_complex_arg): New.
4188         (TARGET_SPLIT_COMPLEX_ARG): New.
4189         * config/alpha/alpha.h (SPLIT_COMPLEX_ARGS): Remove.
4190         * config/rs6000/rs6000.c (TARGET_SPLIT_COMPLEX_ARG): New.
4191         (rs6000_override_options): Zap it for non-AIX.
4192         (rs6000_function_value): Use targetm.calls.split_complex_arg.
4193         * config/rs6000/rs6000.h (SPLIT_COMPLEX_ARGS): Remove.
4194         * config/xtensa/xtensa.c (TARGET_SPLIT_COMPLEX_ARG): New.
4195         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Remove.
4196         * doc/tm.texi (TARGET_SPLIT_COMPLEX_ARG): Modify from old
4197         SPLIT_COMPLEX_ARGS entry.
4198
4199 2004-03-11  Richard Henderson  <rth@redhat.com>
4200
4201         * config/alpha/alpha.c (xfloating_ops, vax_cvt_ops): New.
4202         (alpha_lookup_xfloating_lib_func): Use them, return rtx.
4203         (alpha_emit_xfloating_arith): Update to match.
4204         (alpha_emit_xfloating_compare): Likewise.
4205         (alpha_emit_xfloating_cvt): Likewise.
4206         (alpha_emit_xfloating_libcall): Take already built symbol,
4207         mark call const.
4208         * config/alpha/alpha.md (extendsftf2, extenddftf2): Take
4209         op1 in a register.
4210
4211 2004-03-11  Richard Henderson  <rth@redhat.com>
4212
4213         PR target/14539
4214         * config/alpha/alpha.h (STACK_BOUNDARY): Set to 128.
4215
4216         * simplify-rtx.c (simplify_relational_operation): Fix typo.
4217
4218 2004-03-11  Richard Henderson  <rth@redhat.com>
4219
4220         PR middle-end/14477
4221         * except.c (remove_unreachable_regions): Look thru CALL_PLACEHOLDER.
4222
4223 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
4224
4225         PR target/14262
4226         * calls.c (load_register_parameters): If BLOCK_REG_PADDING is not
4227         defined, pass small BLKmode values in registers in the low-order part.
4228
4229 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
4230
4231         * combine.c (if_then_else_cond): Check for NULL return value of
4232         simplify_gen_subreg.
4233
4234 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
4235
4236         PR target/14496
4237         * config/mips/mips.h (UNITS_PER_FPVALUE): Fix value for
4238         TARGET_SINGLE_FLOAT.
4239
4240 2004-03-11  Steve Ellcey  <sje@cup.hp.com>
4241
4242         * config/ia64/hpux.h (TARGET_INIT_LIBFUNCS): Add undef.
4243         * config/ia64/ia64.h (TARGET_INIT_LIBFUNCS): Add define.
4244         * config/ia64/ia64.c (ia64_init_libfuncs): New.
4245         (ia64_hpux_init_libfuncs): Add call to ia64_init_libfuncs.
4246
4247 2004-03-11  Roger Sayle  <roger@eyesopen.com>
4248
4249         * fold-const.c (negate_expr_p) <RSHIFT_EXPR>: We can optimize
4250         -((int)X>>C) where C is an integer constant one bit less than the
4251         size of X into (unsigned)X>>C.  Similarly for unsigned->signed.
4252         (negate_expr) <RSHIFT_EXPR>: Implement the above transformations.
4253
4254         * simplify-rtx.c (simplify_unary_operation): Also implement the
4255         above transformations at the RTL level.
4256
4257 2004-03-11  Alan Modra  <amodra@bigpond.net.au>
4258
4259         * real.c (encode_ibm_extended): Do round low word.
4260
4261 2004-03-11  Ben Elliston  <bje@wasabisystems.com>
4262
4263         * config/arm/arm.md (is_xscale): Comment this attribute and move
4264         it a bit further up in the file, closer to related attributes.
4265
4266 2004-03-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
4267
4268         * config/host-solaris.c (sol_gt_pch_use_address): Add
4269         missing terminating marker to comment.
4270
4271 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
4272
4273         * config/mips/mips.md: Use move_operand in splitters for 64-bit moves.
4274         (movdi, movsi, movhi, movqi, movsf, movdf): Remove predicates.
4275         (*movdi_32bit_mips16, *movsi_mips16, *movhi_mips16, *movqi_mips16)
4276         (*movsf_mips16, *movdf_mips16):  Name unnamed patterns.  Use
4277         move_operand as source predicate in all cases.
4278         (*movdi_32bit): Renamed from movdi_internal.  Remove 'F' constraint.
4279         Test reg_or_0_operand.  Use move_operand as source predicate.
4280         (*movdi_64bit): Renamed from movdi_internal2.  Test reg_or_0_operand.
4281         (*movdi_64bit_mips16): Renamed from movdi_internal2_mips16.
4282         (*movsi_internal): Renamed from movsi_internal.  Test reg_or_0_operand.
4283         (movhi, movqi, movsf, movdf): Use mips_legitimize_move.
4284         (*movhi_internal): Renamed from movhi_internal.  Test reg_or_0_operand.
4285         Use move_operand as source predicate.  Remove 'K' constraint.
4286         (*movqi_internal): Likewise movqi_internal.
4287         (*movsf_hardfloat): Renamed from movsf_internal1.  Test
4288         reg_or_0_operand.  Use move_operand as source predicate.
4289         (*movsf_softfloat): Likewise movsf_internal2.
4290         (*movdf_hardfloat_64bit): Likewise movsf_internal1a.
4291         (*movdf_hardfloat_32bit): Likewise movsf_internal1b.
4292         (*movdf_softfloat): Likewise movdf_internal2.
4293         * config/mips/mips.c (move_operand): Match arbitrary CONST_INTs
4294         for DImode if !TARGET_64BIT.
4295         (mips_legitimize_move): Simplify accordingly.
4296
4297 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
4298
4299         PR/14362
4300         * var-tracking.c (struct variable_def): Added field refcount.
4301         (variable_htab_free): Decrease the refcount and delete variable
4302         only if there are no more references.
4303         (unshare_variable): New function.
4304         (vars_copy_1): Increase refcount instead of copying the variable.
4305         (variable_union): Share the variables where possible, unshare
4306         the variables if needed.
4307         (variable_different_p): Return false if var1 and var2 are
4308         the same structure.
4309         (variable_was_changed): Init the refcount of new variable.
4310         (set_frame_base_location): Unshare variable if needed.
4311         (set_variable_part): Init the refcount of new variable.
4312         Unshare the variables if needed.
4313         (delete_variable_part): Unshare the variables if needed.
4314         (emit_notes_for_differences_1): Init the refcount of new variable.
4315         (vt_add_function_parameters): Do not add function parameters to
4316         IN set of ENTRY_BLOCK_PTR because it is unused anyway.
4317         (vt_initialize): Do not add frame_base_decl to IN set of
4318         ENTRY_BLOCK_PTR because it is unused anyway.
4319
4320 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
4321
4322         * var-tracking.c (vars_copy_1): Cleanup and speedup chain operations.
4323         (vars_copy): Likewise.
4324         (variable_union): Likewise.
4325         (set_variable_part): Likewise.
4326         (delete_variable_part): Likewise.
4327
4328 2004-03-11  Kazu Hirata  <kazu@cs.umass.edu>
4329
4330         * c-typeck.c, combine.c, cse.c, dominance.c, et-forest.h,
4331         ggc-page.c, var-tracking.c, config/fp-bit.c, config/c4x/c4x.c,
4332         config/cris/cris.c, config/i386/ppro.md, config/i860/i860.c,
4333         config/i860/i860.h, config/m32r/m32r.h, config/m32r/xm-m32r.h,
4334         config/m68hc11/m68hc11.h, config/m68hc11/m68hc11.md,
4335         config/mips/mips.c, config/mmix/mmix.c, config/ns32k/ns32k.h,
4336         config/pa/pa.c, config/pa/pa32-regs.h, config/pa/pa64-regs.h,
4337         config/pdp11/pdp11.h, config/rs6000/rs6000.c,
4338         config/stormy16/stormy16.c: Fix comment typos and formatting.
4339
4340 2004-03-11  Nathanael Nerode  <neroden@gcc.gnu.org>
4341
4342         * configure: Regenerate, since I forgot to while committing Paolo's
4343         changes.
4344
4345 2004-03-08  Paolo Bonzini  <bonzini@gnu.org>
4346
4347         PR ada/14131
4348         Move language detection to the top level.
4349         * configure.ac: Remove code to detect languages,
4350         it now lives exclusively in the top level.
4351         * aclocal.m4 (gcc_AC_PROG_GNAT): Moved to the
4352         top level, renamed to ACX_PROG_GNAT.
4353
4354 2004-03-10  Richard Henderson  <rth@redhat.com>
4355
4356         * c-pch.c (c_common_no_more_pch): Update for gt_pch_use_address
4357         extra arguments.
4358         * config.host (*-*-solaris2*, *-*-linux*): Add out_host_hook_obj
4359         and host_xmake_file fragments.
4360         * ggc-common.c (gt_pch_save): Update for gt_pch_get_address change.
4361         (gt_pch_restore): Similarly for gt_pch_use_address.
4362         (default_gt_pch_get_address): New.
4363         (mmap_gt_pch_get_address): Split out of gt_pch_save.
4364         (default_gt_pch_use_address): Split out of gt_pch_restore.
4365         (mmap_gt_pch_use_address): Likewise.
4366         * hooks.c (hook_voidp_size_t_null): Remove.
4367         (hook_bool_voidp_size_t_false): Remove.
4368         * hooks.h: Likewise.
4369         * hosthooks-def.h (HOST_HOOKS_GT_PCH_GET_ADDRESS): Use one of the
4370         default_ or mmap_ definitions.
4371         (HOST_HOOKS_GT_PCH_USE_ADDRESS): Likewise.
4372         * hosthooks.h (struct host_hooks): Update gt_pch_get_address
4373         and gt_pch_use_address.
4374         * config/host-linux.c, config/host-solaris.c: New files.
4375         * config/x-linux, config/x-solaris: New files.
4376         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_get_address):
4377         Update for changed definition.
4378         (darwin_rs6000_gt_pch_use_address): Likewise.
4379         * doc/hostconfig.texi: Update docs.
4380
4381 2004-03-10  Richard Henderson  <rth@redhat.com>
4382
4383         PR c/14517
4384         * c-decl.c (grokdeclarator): Don't warn for duplicate qualifiers
4385         except for pedantic c90 mode.
4386
4387 2004-03-10  Kelley Cook  <kcook@gcc.gnu.org>
4388
4389         * configure.ac: Bump AC_PREREQ to 2.59.
4390         * configure: Regenerate.
4391
4392 2004-03-10  Uros Bizjak  <uros@kss-loka.si>
4393
4394         * optabs.h (enum optab_index): Add new OTI_exp10 and OTI_exp2.
4395         (exp10_optab, exp2_optab): Define corresponding macros.
4396         * optabs.c (init_optabs): Initialize exp10_optab and exp2_optab.
4397         * genopinit.c (optabs): Implement exp10_optab and exp2_optab
4398         using exp10?f2 and exp2?f2 patterns.
4399         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXP10{,F,L}
4400         using exp10_optab, and BUILT_IN_EXP2{,F,L} using exp2_optab.
4401         (expand_builtin): Expand BUILT_IN_EXP10{,F,L} and BUILT_IN_EXP2{,F,L}
4402         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
4403
4404         * config/i386/i386.md (exp10sf2, exp10df2, exp10xf2, exp2sf2,
4405         exp2df2, exp2xf2): New patterns to implement exp10, exp10f, exp10l,
4406         exp2, exp2f and exp2l built-ins as inline x87 intrinsics.
4407
4408 2004-03-10  Anthony Green  <green@redhat.com>
4409
4410         * doc/invoke.texi (ARM Options): Fix -mpfu typo.
4411
4412 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
4413
4414         * config/rs6000/aix.h (TARGET_OS_CPP_BUILTINS): Rename to ...
4415         (TARGET_OS_AIX_CPP_BUILTINS): this.  Conditionally define
4416         __LONGDOUBLE128.
4417         * config/rs6000/aix41.h (TARGET_OS_CPP_BUILTINS): Use
4418         TARGET_OS_AIX_CPP_BUILTINS.
4419         * config/rs6000/aix43.h (TARGET_OS_CPP_BUILTINS): Same.
4420         * config/rs6000/aix51.h (TARGET_OS_CPP_BUILTINS): Same.
4421         * config/rs6000/aix52.h (TARGET_OS_CPP_BUILTINS): Same.
4422         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Revert
4423         previous change.
4424
4425 2004-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4426
4427         * fold-const.c (tree_expr_nonnegative_p): Add more builtin cases.
4428
4429 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
4430
4431         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
4432         __LONGDOUBLE128 on AIX.
4433
4434 2004-03-10  Andrew Haley  <aph@redhat.com>
4435
4436         PR optimization/14381
4437         * function.c (expand_function_end): Emit a blockage insn before
4438         the epilogue when -fnon-call-exceptions is used.
4439
4440         * except.c (expand_start_all_catch): Make comment more accurate.
4441
4442 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
4443
4444         PR target/14480
4445         * config/rs6000/t-rtems: Add missing file on branch.
4446
4447 2004-03-10  Ulrich Weigand  <uweigand@de.ibm.com>
4448
4449         * dbxout.c (dbxout_symbol_location): Do not output references
4450         to optimized-out constant pool symbols.
4451
4452 2004-03-10  Andreas Schwab  <schwab@suse.de>
4453
4454         * config/ia64/ia64.md (divsi3, udivsi3): Remove unused variable
4455         twon34_r.
4456
4457 2004-03-09  James E Wilson  <wilson@specifixinc.com>
4458
4459         * alias.c (alias_sets_might_conflict_p): New.
4460         * c-typeck.c (build_c_cast): Call it if warn_strict_aliasing > 1.
4461         * common.opt (Wstrict-aliasing=): New.
4462         * flags.h (warn_strict_aliasing): Change type to int.
4463         * opts.c (warn_strict_aliasing): Change type to int.
4464         (common_handle_option): Handle OPT_Wstrict_aliasing_.
4465         * tree.h (alias_sets_might_conflict_p): Declare it.
4466         * doc/invoke.tex (-Wstrict-aliasing=2): Document it.
4467
4468 2004-03-10  Roman Zippel  <zippel@linux-m68k.org>
4469
4470         PR bootstrap/12371
4471         * config/m68k/m68k.h (FIXED_REGISTERS): Add arg pointer.
4472         (CALL_USED_REGISTERS): Likewise.
4473         (REG_CLASS_CONTENTS): Likewise.
4474         (REG_ALLOC_ORDER): New.
4475         (REGNO_REG_CLASS): Use regno_reg_class.
4476         * config/m68k/m68k.c: Add regno_reg_class array.
4477
4478 2004-03-09  Steve Ellcey  <sje@cup.hp.com>
4479
4480         * config/ia64/ia64.md (divsi3): Fix algorithm.
4481           (udivsi3): Ditto.
4482           (setf_exp_xf): Remove '*' from name.
4483         * testsuite/gcc.dg/20040309-1.c: New test.
4484
4485 2004-03-09  Ian Lance Taylor  <ian@wasabisystems.com>
4486
4487         * system.h (SUNOS4_SHARED_LIBRARIES): Poison.
4488         * collect2.c: Remove SUNOS4_SHARED_LIBRARIES code.
4489         * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): Don't define.
4490         * config/sparc/sparc.c (sparc_aout_select_section): Remove.
4491         (sparc_aout_select_rtx_section): Don't check
4492         SUNOS4_SHARED_LIBRARIES.
4493         * config/sparc/sparc.h (SUNOS4_SHARED_LIBRARIES): Don't define.
4494
4495 2004-03-10  Hans-Peter Nilsson  <hp@axis.com>
4496
4497         PR other/14474
4498         * doc/md.texi (Pattern Ordering, Dependent Patterns)
4499         (Jump Patterns, Looping Patterns): Wrap in separate "@ifset
4500         INTERNALS".
4501
4502 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
4503
4504         * config/ia64/hpux.h (MULTILIB_DEFAULTS): Define.
4505         (LIBGCC_SPEC): Update to match.
4506
4507 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
4508
4509         * c-decl.c (last_function_parms, last_function_parm_tags)
4510         (last_function_parm_others, current_function_parms)
4511         (current_function_parm_tags, current_function_parm_others):
4512         Delete.
4513         (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES, ARG_INFO_OTHERS):
4514         New macros.
4515         (grokdeclarator): For function definitions, save the arg-info
4516         block from the declarator in DECL_ARGUMENTS.
4517         (grokparms): Do not write to last_function_parm*.  Use ARG_INFO_*
4518         macros to operate on arg-info block.  Can assume ARG_INFO_PARMS
4519         contains only PARM_DECLs.  Improve diagnostics.
4520         (get_parm_info): Use ARG_INFO_* macros.  Improve comments and
4521         diagnostics.  Disable some expensive checks if not ENABLE_CHECKING.
4522         (store_parm_decls_newstyle): Take the function to operate on,
4523         and an arg-info block, as arguments; don't get anything from
4524         current_function_* globals.
4525         (store_parm_decls_oldstyle): Likewise.
4526         (store_parm_decls): Pass fndecl and its arg-info block down to
4527         store_parm_decls_newstyle/oldstyle.  Send functions with empty
4528         argument lists through store_parm_decls_newstyle to reduce
4529         overhead.
4530         (pushdecl): Comment on the problems with the call to copy_node.
4531         Clear DECL_ARGUMENTS of the old node after copying it, if it
4532         is an arg-info block instead of a chain of decls.
4533         (start_function): Do not manipulate current_function_parm* or
4534         last_function_parm*.
4535
4536 2004-03-09  Roger Sayle  <roger@eyesopen.com>
4537             Andrew Pinski  <pinskia@physics.uc.edu>
4538
4539         * ifcvt.c (noce_try_sign_mask): New function to transform
4540         "x = (y < 0) ? z : 0" into the equivalent "x = (y >> C) & z".
4541         (noce_process_if_block): Call noce_try_sign_mask.
4542
4543 2004-03-09  Andrew Pinski  <apinski@apple.com>
4544
4545         * c-typeck.c (tagged_types_tu_compatible_p):
4546         Fix typo.
4547
4548 2004-03-09  Roger Sayle  <roger@eyesopen.com>
4549
4550         * simplify-rtx.c (simplify_const_relational_operation): New function
4551         renamed from simplify_relational_operation.
4552         (simplify_relational_operation): Change prototype to accept an
4553         additional mode argument.  Call simplify_const_relational_operation.
4554         (simplify_gen_relational): Update simplify_relational_operation call.
4555         (simplify_ternary_operation): Update simplify_relational_operation
4556         subroutine call to use simplify_const_relational_operation instead.
4557
4558         * rtl.h (simplify_const_relational_operation): Prototype here.
4559         (simplify_relational_operation): Add addtional mode argument.
4560
4561         * combine.c (combine_simplify_rtx): Update calls to
4562         simplify_relational_operation.
4563         (simplify_set): Likewise.
4564         (gen_binary): Likewise.
4565         * cse.c (fold_rtx): Likewise.
4566         * dojump.c (compare_from_rtx): Likewise.
4567         (do_compare_rtx_and_jump): Likewise.
4568         * integrate.c (subst_constants): Likewise.
4569         * unroll.c (simplify_cmp_and_jump_insns): Likewise.
4570
4571 2004-03-09  Kazu Hirata  <kazu@cs.umass.edu>
4572
4573         * config/m32r/m32r.md: Remove all define_peephole's.
4574
4575 2004-03-09  Alan Modra  <amodra@bigpond.net.au>
4576
4577         * config/rs6000/rs6000.md: Remove trailing whitespace.
4578
4579 2004-03-08  Eric Christopher  <echristo@redhat.com>
4580
4581         * Makefile.in (site.exp): Add libiconv variable definition.
4582
4583 2004-03-09  Hans-Peter Nilsson  <hp@axis.com>
4584
4585         * configure: Regenerate for config/accross.m4 correction.
4586
4587 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
4588
4589         PR target/14480
4590         * config/rs6000/t-rtems: Add missing file on branch.
4591
4592 2004-03-08  Roger Sayle  <roger@eyesopen.com>
4593
4594         PR middle-end/14289
4595         * c-typeck.c (c_mark_addressable): A register variable should
4596         be considered global if its not automatic, i.e. TREE_PUBLIC,
4597         TREE_STATIC or DECL_EXTERNAL.
4598         * function.c (put_var_into_stack): Call abort when placing a
4599         hard register into the stack, if x_parm_reg_stack_loc is NULL.
4600
4601 2004-03-08  Ulrich Weigand  <uweigand@de.ibm.com>
4602
4603         * config/s390/s390.md ("*extendqidi2_short_displ"): Add CC clobber.
4604         ("*extendqisi2_short_displ"): Likewise.
4605
4606 2004-03-08  Kazu Hirata  <kazu@cs.umass.edu>
4607
4608         * config/pdp11/pdp11.c (comparison_operator_index): Remove.
4609         (comp_operator): Likewise.
4610         * config/pdp11/pdp11-protos.h: Remove corresponding
4611         prototypes.
4612
4613 2004-03-08  Eric Botcazou  <ebotcazou@act-europe.fr>
4614
4615         * expr.c (highest_pow2_factor_for_type): Rename into
4616         highest_pow2_factor_for_target.  Use DECL_ALIGN instead of
4617         TYPE_ALIGN when the target is a COMPONENT_REF.
4618         (expand_assignment): Ajust call to highest_pow2_factor_for_type.
4619
4620 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
4621
4622         * config/rs6000/rs6000.c: Formatting fix.
4623         (legitimate_offset_address_p): Correct offset range check.
4624
4625         * config/rs6000/rs6000.c (rs6000_override_options): Don't override
4626         -msoft-float by -mcpu.  Consolidate similar code for MASK_MULTIPLE
4627         and MASK_STRING.
4628
4629 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
4630
4631         * config/rs6000/rs6000.md (ashrdi3): Do not call ashrdi3_no_power
4632         for little endian.
4633         ("ashrdi3_no_power"): Disable for little endian.
4634         (ashrdi3): Same.
4635
4636 2004-03-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4637
4638         * fold-const.c (tree_expr_nonnegative_p): Reformat checks for
4639         builtins.
4640
4641 2004-03-08  Hans-Peter Nilsson  <hp@axis.com>
4642
4643         PR target/14471
4644         * configure.ac (Target-specific assembler checks) <cris-*-*>: New
4645         case, checking for -no-mul-bug-abort option.
4646         * configure, config.in: Regenerate.
4647         * doc/invoke.texi (CRIS Options): Document -mmul-bug-workaround
4648         and -mno-mul-bug-workaround.
4649         * config/cris/cris.md ("smulsi3_highpart", "umulsi3_highpart")
4650         ("mulsidi3", "umulsidi3"): Prefix output template with "%!".
4651         ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3"):
4652         Ditto.  Make attribute "slottable" dependent on TARGET_MUL_BUG.
4653         * config/cris/mulsi3.asm (__Mul) [__CRIS_arch_version >= 10]: Make
4654         sure mulu.d is not last on cache-line.
4655         * config/cris/cris.h (ASM_SPEC): Translate -mno-mul-bug-workaround
4656         into -no-mul-bug-abort depending on HAVE_AS_MUL_BUG_ABORT_OPTION.
4657         (TARGET_MASK_MUL_BUG, TARGET_MUL_BUG): New macros.
4658         (TARGET_SWITCHES): New options -mmul-bug-workaround and
4659         -mno-mul-bug-workaround.
4660         (TARGET_DEFAULT): Include TARGET_MASK_MUL_BUG.
4661         (PRINT_OPERAND_PUNCT_VALID_P): Include '!'.
4662         * config/cris/cris.c (cris_operand_extend_operator): Clarify
4663         relation to MULT in head comment.
4664         (cris_op_str): Abort for MULT.
4665         (cris_print_operand) <case '!'>: New case.
4666
4667 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
4668
4669         PR debug/11983
4670         * dwarf2out.c (enum dw_val_class): Rename dw_val_class_float to
4671         dw_val_class_vec.  Replace use throughout file.
4672         (dw_float_const): Delete.
4673         (dw_vec_const): New.
4674         (dw_val_struct_union): Rename val_float to val_vec.  Replace use
4675         throughout file.
4676         (add_AT_vec): Rename from add_AT_float.  Add elt_size param.
4677         (same_dw_val_p): Adjust vec comparison.  Use memcmp.
4678         (size_of_die): Adjust dw_val_class_vec sizing.
4679         (output_die): Output dw_val_class_vec.
4680         (insert_int, extract_int, insert_float): New functions.
4681         (add_const_value_attribute): Use insert_float for CONST_DOUBLE.
4682         Handle CONST_VECTOR.
4683         (add_location_or_const_value_attribute): Handle CONST_VECTOR.
4684
4685 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
4686
4687         * config/rs6000/rs6000.c (rs6000_parse_abi_options): SPE and
4688         AltiVec abi cannot co-exist.
4689
4690         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Same.
4691
4692 2004-03-07  Jan Hubicka  <jh@suse.cz>
4693
4694         * except.c (emit_to_new_bb_before):  Break fallthru edges.
4695
4696 2004-03-07  Stephane Carrez  <stcarrez@nerim.fr>
4697
4698         * config/m68hc11/m68hc11.md ("*lshrsi3_const"): Disable for 68HC12.
4699         ("*lshrsi3"): Also accept an immediate for 68HC12.
4700         ("*ashrsi3_const"): Likewise.
4701         ("*ashrsi3"): Likewise.
4702         ("*ashlsi3_const"): Likewise.
4703         ("*ashlsi3"): Likewise.
4704         ("cmphi_1_hc12"): Compare two hard register by pushing them and
4705         comparing with a pop; don't use a split for that.
4706         ("cmphi split"): Disable compare split for 68HC12.
4707
4708         * config/m68hc11/m68hc11.c (m68hc11_notice_update_cc): Invalidate
4709         the status operands if they have side effects.
4710
4711 2004-03-07  Kazu Hirata  <kazu@cs.umass.edu>
4712
4713         * defaults.h (LEGITIMIZE_ADDRESS): Provide a default
4714         definition.
4715         * config/arc/arc.h, config/fr30/fr30.h, config/frv/frv.h,
4716         config/h8300/h8300.h, config/ia64/ia64.h,
4717         config/mcore/mcore.h, config/mmix/mmix.h,
4718         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
4719         config/stormy16/stormy16.h, config/v850/v850.h,
4720         config/vax/vax.h (LEGITIMIZE_ADDRESS): Remove.
4721         * doc/tm.texi (LEGITIMIZE_ADDRESS): Mention the default
4722         definition.
4723
4724 2004-03-07  Roger Sayle  <roger@eyesopen.com>
4725
4726         * fold-const.c (fold) <IOR_EXPR>: Fold x | x as x.
4727         <XOR_EXPR>: Fold x ^ x as zero.
4728         <AND_EXPR>: Fold x & x as x.
4729
4730 2004-03-07  Roger Sayle  <roger@eyesopen.com>
4731
4732         * fold-const.c (fold) <EQ_EXPR>: Rewrite optimization to transform
4733         "foo++ == const" into "++foo == const+incr".
4734
4735 2004-03-07  Richard Sandiford  <rsandifo@redhat.com>
4736
4737         * config/mips/mips.c (mips_in_small_data_p): Return false if
4738         TARGET_ABICALLS.
4739
4740 2004-03-06  Stephane Carrez  <stcarrez@nerim.fr>
4741
4742         * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Use 2,-sp to push
4743         the stack register.
4744         (expand_prologue): Don't make an interrupt or a trap handler a far
4745         symbol.
4746         (m68hc11_initial_elimination_offset): Likewise.
4747
4748 2004-03-06  Richard Henderson  <rth@redhat.com>
4749
4750         * config/alpha/alpha.c (alpha_in_small_data_p): False for functions.
4751
4752 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
4753
4754         * config/ns32k/ns32k-protos.h: Add a prototype for
4755         ns32k_notice_update_cc.
4756         * config/ns32k/ns32k.c (ns32k_notice_update_cc): New.
4757         * config/ns32k/ns32k.h (NOTICE_UPDATE_CC): Call
4758         ns32k_notice_update_cc.
4759
4760 2004-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
4761
4762         * config/s390/s390.md ("load_multiple", "*load_multiple_di",
4763         "*load_multiple_si"): Allow only if reload_completed.
4764         ("store_multiple", "*store_multiple_di", "*store_multiple_si"):
4765         Likewise.
4766
4767 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
4768
4769         * config/vax/vax-protos.h: Add a prototype for
4770         vax_notice_update_cc.
4771         * config/vax/vax.c (vax_notice_update_cc): New.
4772         * config/vax/vax.h (NOTICE_UPDATE_CC): Call
4773         vax_notice_update_cc.
4774
4775 2004-03-06  David Edelsohn  <edelsohn@gnu.org>
4776
4777         * collect2.c (main): Only export initfunc and finifunc if
4778         LD_INIT_SWITCH not defined.
4779         (scan_prog_file): Only export constructors and destructors if
4780         LD_INIT_SWITCH not defined.  Only export symbols not found in
4781         shared objects.
4782
4783 2004-03-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4784
4785         * pa.md (icacheflush): Reorder operands to make match_scratch operand
4786         last.
4787         * pa.h (INITIALIZE_TRAMPOLINE): Remove unnecessary scratch argument
4788         from calls to gen_icacheflush.
4789
4790 2004-03-06  Richard Henderson  <rth@redhat.com>
4791
4792         * config/alpha/alpha.h (MASK_LONG_DOUBLE_128): New.
4793         (TARGET_LONG_DOUBLE_128): New.
4794         (TARGET_SWITCHES): Add long-double-{128,64}.
4795         (TARGET_HAS_XFLOATING_LIBS): Default to TARGET_LONG_DOUBLE_128.
4796         (LONG_DOUBLE_TYPE_SIZE): Honor TARGET_LONG_DOUBLE_128.
4797         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): New.
4798         (WIDEST_HARDWARE_FP_SIZE): New.
4799         (TARGET_CPU_CPP_BUILTINS): Define __LONG_DOUBLE_128__.
4800         * config/alpha/alpha.c (override_options): Clear MASK_LONG_DOUBLE_128
4801         if TARGET_VAX_FLOAT.
4802         * config/alpha/osf5.h (LONG_DOUBLE_TYPE_SIZE): Remove.
4803         (TARGET_DEFAULT): Set MASK_LONG_DOUBLE_128.
4804
4805 2004-03-06  Richard Henderson  <rth@redhat.com>
4806
4807         * config/alpha/alpha.c (alpha_swapped_comparison_operator): Fix
4808         botched rtx class conversion.
4809
4810 2004-03-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4811
4812         * tree.h (BUILTIN_EXP10_P, BUILTIN_EXPONENT_P, BUILTIN_SQRT_P,
4813         BUILTIN_CBRT_P, BUILTIN_ROOT_P): New macros.
4814
4815         * builtins.c (fold_builtin_logarithm, fold_builtin): Use new
4816         macros.
4817         * fold-const.c (fold_mathfn_compare, fold): Likewise.
4818
4819 2004-03-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
4820
4821         PR target/14343
4822         * config/i386/i386.md (movv2di_internal): Conditionalize on
4823         TARGET_SSE, not TARGET_SSE2.
4824
4825 2004-03-05  Chris Demetriou  <cgd@broadcom.com>
4826
4827         * config.gcc (mips64orion-*-elf*, mips64orionel-*-elf*): Delete
4828         duplicated line.
4829
4830 2004-03-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4831
4832         * builtins.c: Consistently use logN not log* in comments.
4833
4834 2004-03-05  Andreas Krebbel  <krebbel1@de.ibm.com>
4835
4836         * rtl.h (mem_expr_equal_p): Function prototype added.
4837         * cfgcleanup.c (merge_memattrs): New function.
4838         (flow_find_cross_jump): Call merge_memattrs for matching insns.
4839         * emit-rtl.c (mem_expr_equal_p): New function.
4840
4841 2004-03-05  Ziemowit Laski  <zlaski@apple.com>
4842
4843         * objc/objc-act.c (synth_module_prologue): Const-qualify
4844         objc_selector type if using the GNU runtime; fix generated
4845         signatures for objc_msg_lookup and objc_msg_lookup_super
4846         to match what GNU ObjC headers provide; reformat and clean up.
4847         (synth_self_and_ucmd_args): Use previously constructed (and
4848         hence possibly const-qualified) objc_selector type.
4849
4850 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
4851
4852         * doc/tm.texi (HARD_REGNO_RENAME_OK): Document.
4853
4854 2004-03-05  Jason Merrill  <jason@redhat.com>
4855
4856         * tree.h (TYPE_HASH): Use TYPE_UID.
4857         (TREE_HASH): New macro with old definition of TYPE_HASH.
4858         * tree.c (build_type_attribute_variant): Use iterative_hash_object.
4859         (build_array_type, build_function_type): Likewise.
4860         (build_method_type_directly): Likewise.
4861         (build_offset_type, build_complex_type): Likewise.
4862         (type_hash_list, attribute_hash_list): Likewise. Now static.
4863         * except.c: s/TYPE_HASH/TREE_HASH/.
4864
4865 2004-03-05  Bob Wilson  <bob.wilson@acm.org>
4866
4867         * config/xtensa/xtensa.c (function_arg): Handle 16-byte aligned args.
4868         (xtensa_va_start): Initialize __va_stk to ($arg_ptr - 32).  Adjust
4869         __va_ndx by 2 words when referencing an argument on the stack.
4870         (xtensa_va_arg): Handle 16-byte aligned args.  Adjust __va_ndx by 2
4871         words when an arg on the stack is first seen.
4872
4873 2004-03-05  Paul Brook  <paul@codesourcery.com>
4874
4875         * arm.h (ARM_FLAG_VFP): Remove.
4876         (ARM_FLAG_ATPCS, CIRRUS_FIX_INVALID_INSNS): Renumber.
4877         * netbsd-elf.h (ARM_FLAG_VFP): Remove.
4878
4879 2004-03-05  Paul Brook  <paul@codesourcery.com>
4880
4881         * function.c (assign_parms): Include pretend alignment offset.
4882
4883 2004-03-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4884
4885         * stor-layout.c (layout_type, case FUNCTION_TYPE): Make size
4886         FUNCTION_BOUNDARY, not POINTER_SIZE * 2.
4887
4888 2004-03-05  Ian Lance Taylor  <ian@wasabisystems.com>
4889
4890         * configure.ac: When passing --enable-languages to subdir
4891         configure when host != build, make sure we don't pass an empty
4892         value.
4893         * configure: Regenerate.
4894
4895 2004-03-05  Nathan Sidwell  <nathan@codesourcery.com>
4896
4897         PR 13577
4898         * gcc.c (cc1_options): Robustify -auxbase-strip from multiple -o
4899         options.
4900
4901 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
4902
4903         * simplify-rtx.c (simplify_relational_operation): If
4904         flag_wrapv is set, do not move terms between the two
4905         side of a relational operator.
4906
4907 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
4908
4909         * rtlanal.c: Include target.h and output.h
4910         (rtx_cost, address_cost, default_address_cost): Move from...
4911         * cse.c (rtx_cost, address_cost, default_address_cost):
4912         ... this file.
4913         * rtl.h (rtx_cost, address_cost): Move under rtlanal.c.
4914         * Makefile.in: Adjust dependencies.
4915
4916 2004-03-05  Paolo Bonzini <bonzini@gnu.org>
4917
4918         * cse.c (cse_end_of_basic_block): Make static.
4919         * local-alloc.c (function_invariant_p): Move to
4920         reload1.c.
4921         * loop.c (libcall_other_reg, record_excess_regs):
4922         Make static.
4923         * reload1.c (function_invariant_p): Moved here
4924         from local-alloc.c, made static.
4925         * rtl.h (cse_end_of_basic_block, function_invariant_p,
4926         libcall_other_reg, record_excess_regs): Remove
4927         declarations.
4928
4929 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
4930
4931         * config/m32r/m32r.c (signed_comparison_operator): Add a
4932         missing parenthesis.
4933
4934 2004-03-04  Ian Lance Taylor  <ian@wasabisystems.com>
4935
4936         * ggc-common.c (gt_pch_restore): Don't unmap addr unless we are
4937         going to call mmap again.  Read the file into the right place.
4938         Give a fatal error if we have to relocate.
4939
4940 2004-03-04  Bob Wilson  <bob.wilson@acm.org>
4941
4942         * config/xtensa/xtensa.c (xtensa_return_in_msb): New function.
4943         (TARGET_RETURN_IN_MSB): Define to xtensa_return_in_msb.
4944
4945 2004-03-05  Hans-Peter Nilsson  <hp@axis.com>
4946
4947         PR other/14354
4948         * config/fp-bit.c (_fpdiv_parts): Do not round when pack_d would
4949         round the same.  When rounding, clear bits that would cause a
4950         second rounding in pack_d.
4951         (_fpmul_parts): Ditto.  Remove #if 0:d code.
4952
4953 2004-03-04  Ziemowit Laski  <zlaski@apple.com>
4954
4955         PR c++/14425, c++/14426
4956         * config/rs6000/altivec.h (vec_splat_s8, vec_splat_s16,
4957         vec_splat_s32, vec_splat_u8, vec_splat_u16, vec_splat_u32):
4958         Change C++ definitions to accept a 'const int' argument;
4959         the prototypes already do.
4960         * config/rs6000/rs6000.c (rs6000_common_init_builtins):
4961         Rename v4si_ftype_char, v8hi_ftype_char, v16qi_ftype_char,
4962         v4sf_ftype_v4si_char, v4si_ftype_v4sf_char, v4si_ftype_v4si_char,
4963         v8hi_ftype_v8hi_char, v16qi_ftype_v16qi_char,
4964         v16qi_ftype_v16qi_v16qi_char, v8hi_ftype_v8hi_v8hi_char,
4965         v4si_ftype_v4si_v4si_char and v4sf_ftype_v4sf_v4sf_char to
4966         end in ..._int; change them to accept an int instead of a char
4967         as the last parameter.
4968
4969 2004-03-04  Phil Edwards  <phil@codesourcery.com>
4970
4971         * genmultilib:  Change '=' to '-' when translating option names
4972         to directory names.
4973
4974 2004-03-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4975
4976         * expr.c (expand_expr_real, case COMPONENT_REF): Get proper type of
4977         stack slot for temp used for result of BLKmode but in integral mode.
4978
4979 2004-03-04  Jan Hubicka  <jh@suse.cz>
4980
4981         * reload.c (find_reloads): Reorganize if seqeunce to switch.
4982
4983         * cfgrtl.c (rtl_redirect_edge_and_branch):  Set the source BB as dirty.
4984         (cfglayout_redirect_edge_and_branch):  Set the source BB as dirty.
4985
4986 2004-03-04  Steve Ellcey  <sje@cup.hp.com>
4987
4988         * config/ia64/ia64.md (divdf3_internal_thr): Fix algorithm.
4989         * testsuite/gcc.dg/20040303-1.c: New test.
4990
4991 2004-03-04  Steven Bosscher  <stevenb@suse.de>
4992
4993         * ppro.md: Rewrite as a DFA pipeline description.
4994         * i386.md: Remove all uses of the ppro_uops attribute.
4995         * i386.c: (ix86_safe_ppro_uops, ix86_dump_ppro_packet,
4996         ix86_reorder_insn, ix86_sched_reorder_ppro, ix86_sched_init,
4997         ix86_sched_reorder, ix86_variable_issue,
4998         struct ix86_sched_data, TARGET_SCHED_VARIABLE_ISSUE,
4999         TARGET_SCHED_INIT, TARGET_SCHED_REORDER): Remove.
5000         (ia32_use_dfa_pipeline_interface): Add TARGET_PENTIUMPRO.
5001         (ia32_multipass_dfa_lookahead): Add TARGET_PENTIUMPRO.
5002         * athlon.md (athlon_ssecmp_load): Fix comment
5003
5004 2004-03-04  Stuart Hastings  <stuart@apple.com>
5005
5006         * gcc/doc/invoke.texi: Document -mlongcall for Darwin/PPC.
5007
5008 2004-03-04  Stuart Hastings  <stuart@apple.com>
5009
5010         * gcc/config/i386/darwin.h: Darwin/x86 doesn't support CPUs before
5011         686, tell Darwin assembler to allow prefetch insns, non-empty def
5012         of SUBTARGET_OPTION_TRANSLATE_TABLE.
5013
5014 2004-03-04  DJ Delorie  <dj@redhat.com>
5015
5016         PR optimization/14282
5017         * sched-deps.c (sched_analyze_insn): Allow a stack adjustment
5018         between a call and the assignment of its return value.
5019
5020 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
5021
5022         * config/h8300/h8300.c: Put a comment for every function.
5023
5024 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
5025
5026         * config/h8300/h8300.md: Add comments about peephole2's.
5027
5028 2004-03-04  Steven Bosscher  <stevenb@suse.de>
5029
5030         * i386.h (TARGET_CPU_DEFAULT_nocona): Fix value.
5031
5032 2004-03-04  Jan Hubicka  <jh@suse.cz>
5033
5034         * cfgcleanup.c (thread_jump): Update call of cselib_init.
5035         * cselib.c (cselib_record_memory): New static variable.
5036         (cselib_lookup_mem, cselib_record_set, cselib_record_sets):
5037         Give up on memories when asked for.
5038         (cselib_init): Accept new argument.
5039         * cselib.h (cselib_init): Update prototype.
5040         * gcse.c (local_cprop_pass): Update call of cselib_init.
5041         * loop.c (load_mems): Update call of cselib_init.
5042         * postreload.c (reload_cse_regs_1): Update call of cselib_init.
5043         * sched-deps.c (sched_analyze): Update call of cselib_init.
5044
5045 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
5046             GP <gp@qnx.com>
5047
5048         * config/rs6000/rs6000.c (output_function_profiler): Append @plt
5049         when compiling PIC.
5050
5051 2004-03-04  Josef Zlomek  <zlomekj@suse.cz>
5052
5053         PR/14362
5054         * var-tracking.c (track_expr_p): Do not track variables which
5055         should be ignored for debugging purposes.
5056
5057 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
5058
5059         * real.c (encode_ibm_extended): Don't bother rounding low double.
5060         * c-cppbuiltin.c (builtin_define_float_constants): Tweak MAX
5061         when fmt->pnan < fmt->p.
5062
5063 2004-03-04  Eric Christopher  <echristo@redhat.com>
5064
5065         * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Fix to check
5066         only range of valid arg registers and fixed_regs.
5067
5068 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
5069
5070         PR target/14406
5071         * config/rs6000/rs6000.md (abstf2, abstf2+1): Delete define_insn.
5072         (abstf2, abstf2_internal): New define_expand.
5073
5074 2004-03-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
5075
5076         PR optimization/14235
5077         * expr.c (convert_move): Copy the source to a new pseudo
5078         when converting from a sub-word source to a larger-than-word
5079         register which conflicts with the source.
5080
5081 2004-03-03  Zack Weinberg  <zack@codesourcery.com>
5082
5083         PR 13728
5084         * c-decl.c (diagnose_mismatched_decls): Issue an error for two
5085         parameters with the same name, unless one is a forward decl.
5086         Do not issue a redundant-redeclaration warning for forward
5087         decls of parameters.
5088
5089 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
5090
5091         * doc/install.texi (*-ibm-aix*): Document use of Bash to speed up
5092         configuration.
5093
5094 2004-03-03  Ian Lance Taylor  <ian@wasabisystems.com>
5095
5096         * ggc-zone.c (ggc_pch_write_object): Don't align file pointer.
5097
5098 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
5099
5100         * target-def.h (TARGET_OPTF): Delete.
5101         * c-opts.c (TARGET_OPTF): Define.
5102
5103 2004-03-04  Jan Hubicka  <jh@suse.cz>
5104
5105         * cselib.c (cselib_finish): Fix another miss-application of my previous
5106         patch.
5107
5108 2004-03-03  Mike Stump  <mrs@apple.com>
5109
5110         Add framework support for darwin.
5111
5112         * c-incpath.c: Include target.h and machmode.h.
5113         (add_path): Use a consistent style for cpp_dir.  Initialize
5114         p->construct to 0.
5115         (add_cpp_dir_path): New.
5116         (register_include_chains): Add use of extra_includes callback.
5117         (hook_void_int): Add.
5118         (target_c_incpath): Add.
5119         * c-incpath.h (add_cpp_dir_path): New.
5120         (target_c_incpath_s): Add.
5121         (target_c_incpath): Add.
5122         (C_INCPATH_INIT): Add.
5123         * c-opts.c (c_common_missing_argument,
5124         c_common_handle_option): Add -F argument processing.
5125         * c.opt: Add -F argument processing.
5126         * gcc.c (trad_capable_cpp): Add -F argument processing.
5127         * cppfiles.c (find_file_in_dir): Update to use construct
5128         callback.
5129         (search_path_exhausted, cpp_get_path, cpp_get_buffer,
5130         cpp_get_prev): New.
5131         (_cpp_find_file): Use search_path_exhausted.
5132         (make_cpp_dir): Initialize construct to 0.
5133         * cpplib.h (missing_header_cb
5134         cpp_get_path, cpp_get_buffer, cpp_get_file, cpp_get_prev): New.
5135         (cpp_callbacks): Add missing_header
5136         (cpp_dir): Add construct.
5137         * target-def.h: (TARGET_OPTF): New.
5138         * hooks.c (hook_void_int, hook_void_charptr): Add.
5139         * hooks.h (hook_void_int, hook_void_charptr): Add.
5140         * Makefile.in (c-incpath.o) : Add $(TARGET_H) and
5141         $(MACHMODE_H) dependencies.
5142         * doc/invoke.texi (Darwin Options): Document -F.
5143         * doc/tm.texi (TARGET_EXTRA_INCLUDES): Add.
5144         (TARGET_OPTF): Add.
5145         * fix-header.c (target_c_incpath): Add.
5146
5147         * config/darwin-c.c: Add c-incpath.h include.
5148         (using_frameworks, find_subframework_file,
5149         find_subframework_header, add_system_framework_path,
5150         frameworks_in_use, num_frameworks, max_frameworks,
5151         add_framework, find_framework, struct framework_header,
5152         framework_header_dirs, framework_construct_pathname,
5153         find_subframework_file, add_system_framework_path,
5154         add_framework_path, framework_defaults,
5155         darwin_register_frameworks, find_subframework_header): Add.
5156         * config/darwin.h (TARGET_EXTRA_INCLUDES, TARGET_OPTF): New.
5157         (TARGET_OPTION_TRANSLATE_TABLE): Add -framework support.
5158         (CPP_SPEC): Add __APPLE_CC__ support.
5159         * t-darwin (darwin-c.o): Add c-incpath.h dependency.
5160
5161 2004-03-04  Jan Hubicka  <jh@suse.cz>
5162
5163         * cselib.c (cselib_finish): Fix miss-application of my previous
5164         patch.
5165
5166 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
5167
5168         * hooks.c (hook_tree_tree_identity): New.
5169         * hooks.h: Add a prototype for hook_tree_tree_identity.
5170         * stmt.c (expand_asm_operands): Use targetm.md_asm_clobbers
5171         instead of MD_ASM_CLOBBERS.
5172         * system.h (MD_ASM_CLOBBERS): Poison.
5173         * target-def.h (TARGET_MD_ASM_CLOBBERS): New.
5174         (TARGET_INITIALIZER): Add TARGET_MD_ASM_CLOBBERS.
5175         * target.h (gcc_target): Add md_asm_clobbers.
5176         * config/i386/i386.c (TARGET_MD_ASM_CLOBBERS): New.
5177         (ix86_md_asm_clobbers): New.
5178         * config/i386/i386.h (MD_ASM_CLOBBERS): Remove.
5179         * doc/tm.texi (MD_ASM_CLOBBERS): Change to
5180         TARGET_MD_ASM_CLOBBERS.
5181
5182 2004-03-03  Stuart Hastings  <stuart@apple.com>
5183
5184         * gcc/config.gcc: Arrange for Darwin/x86 to build libgcc_eh.a.
5185
5186 2004-03-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
5187
5188         * config/sparc/sparc.c (noov_compare64_op): Fix typo.
5189
5190         * config/sparc/sparc.h (ASM_FLOAT): Delete.
5191         (ASM_DOUBLE): Likewise.
5192         (ASM_LONGDOUBLE): Likewise.
5193         * config/sparc/pbd.h (ASM_INT_OP): Delete.
5194
5195 2003-03-03  Richard Henderson  <rth@redhat.com>
5196
5197         PR opt/13862
5198         * cselib.c (cselib_record_sets): Don't record multiple sets in
5199         asm insns.
5200
5201 2004-03-03  Mostafa Hagog  <mustafa@il.ibm.com>
5202
5203         * common.opt: Add description of the new -fgcse-after-reload flag.
5204
5205         * flags.h (flag_gcse_after_reload): Declaration of global variable.
5206
5207         * gcse.c (reg_used_on_edge ,reg_set_between_after_reload_p,
5208         reg_used_between_after_reload_p, rtx get_avail_load_store_reg,
5209         is_jump_table_basic_block, bb_has_well_behaved_predecessors,
5210         get_bb_avail_insn, hash_scan_set_after_reload,
5211         compute_hash_table_after_reload, eliminate_partially_redundant_loads,
5212         gcse_after_reload, get_bb_avail_insn): New functions to implement
5213         gcse-after-reload.
5214         (gcse_after_reload_main): New function, the main entry point to
5215         gcse-after-reload.
5216
5217         * rtl.h (gcse_after_reload_main): Declaration of the new function.
5218
5219         * opts.c (common_handle_option): Handle the -fgcse-after-reload flag.
5220
5221         * toplev.c (flag_gcse_after_reload): Initialization.
5222
5223         * passes.c (rest_of_handl_gcse2): Call gcse_after_reload_main.
5224
5225         * params.def (PARAM_GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
5226         PARAM_GCSE_AFTER_RELOAD_CRITICAL_FRACTION): New parameters for tuning
5227         the gcse after reload optimization.
5228
5229         * params.h (GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
5230         GCSE_AFTER_RELOAD_CRITICAL_FRACTION): Two macros to access the tuning
5231         parameters.
5232
5233         * doc/invoke.texi: Documentation for the new flag gcse-after-reload.
5234
5235 2004-03-03  Nicolas Pitre <nico@cam.org>
5236
5237         * config/arm/ieee754-df.S (muldf3, divdf3): Fix denormalization of
5238         small negative values.
5239
5240 2004-03-03  Jan Hubicka  <jh@suse.cz>
5241
5242         * cselib.c (hash_table):  Remove GTY marker.
5243         (reg_values): Turn into array.
5244         (used_regs): Likewise.
5245         (n_used_regs): New static variable.
5246         (reg_values_old): Kill.
5247         (clear_table): Update uses of arrays.
5248         (cselib_lookup): Likewise.
5249         (cselib_record_set): Likewise.
5250         (cselib_init): Likewise.
5251         (cselib_finish): Likewise.
5252         (cselib_udpate_varray_sizes): Kill.
5253         * cselib.h (cselib_update_varray_sizes): Kill.
5254
5255 2004-03-03  Paul Brook  <paul@codesourcery.com>
5256
5257         * flow.c (ior_reg_cond, and_reg_cond): Remove stray ")".
5258
5259 2004-03-03  Jan Hubicka  <jh@suse.cz>
5260
5261         * ggc-common.c (ggc_alloc_cleared_stat, ggc_realloc_stat):
5262         Rename from ...; make statistics transparent.
5263         (ggc_alloc_cleared, ggc_realloc_stat): ... these.
5264         (loc_descriptor): New structure.
5265         (hash_descriptor, eq_descriptor, loc_descriptor, cmp_statistics,
5266         add_statistics):
5267         New static function.
5268         (ggc_record_overhead, dump_statistics): New global function.
5269         * ggc-none.c (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
5270         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Rename
5271         from ...; accept locations
5272         (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
5273         ggc_realloc, ggc_alloc_typed):  ... this one.
5274         from ...; accept locations
5275         * ggc-page.c (ggc_alloc_typed_stat, ggc_alloc_zone_stat,
5276         ggc_alloc_stat): Rename from ... ; pass locations
5277         * ggc-page.c (ggc_alloc_typed, ggc_alloc_zone, ggc_alloc):
5278         ... this one.
5279         (ggc_alloc_stat): Record overehead.
5280         * ggc.h (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
5281         ggc_realloc, ggc_alloc_typed):  Turn to macros
5282         (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
5283         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Declare.
5284         (dump_ggc_loc_satistics, ggc_record_overehead): Declare.
5285         * langhooks.h (lhd_make_node): Declare.
5286         (LANG_HOOKS_MAKE_TYPE): Default to new function,
5287         * langhooks.c (lhd_make_node): New.
5288         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Rename from ... ; pass
5289         locations.
5290         (rtx_alloc, swallow_copy_rtx): ... this one.
5291         * rtl.h (rtx_alloc, swallow_copy_rtx): Turn to macros.
5292         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Declare.
5293         * toplpev.c (finalize): Dump stats.
5294         * tree.c (make_node_stat, copy_node_stat, make_tree_vec_stat,
5295         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
5296         Rename from ... ; pass locators.
5297         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
5298         build?,  build_decl): Declare.
5299         * tree.h (make_node_stat, copy_node_stat, make_tree_vec_stat,
5300         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
5301         Declare.
5302         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
5303         build?,  build_decl): New macros.
5304         * Makefile.in (RTL_H, TREE_H): Add statistics.h dependency.
5305         * statistics.h: New file.
5306
5307 2004-03-03  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
5308             Richard Sandiford  <rsandifo@redhat.com>
5309
5310         * config/mips/mips.h (MASK_FIX_SB1): Bump.
5311         (MASK_FIX_R4400, TARGET_FIX_R4400): New macros.
5312         (TARGET_SWITCHES): Add -mfix-r4400 and -mno-fix-r4400.
5313         * config/mips/mips.c (mips_output_division): Fill the branch delay
5314         slot with a nop if TARGET_FIX_R4000.  Extend R4000 workarounds to
5315         TARGET_FIX_R4400.
5316         (mips_output_division): Adjust accordingly.
5317         (override_options): Make -march=r4400 imply -mfix-r4400 by default.
5318         * doc/invoke.texi: Document -mfix-r4400 and new errata workarounds.
5319
5320 2004-03-03  Paolo Bonzini  <bonzini@gnu.org>
5321
5322         * alias.c (rtx_equal_for_memref_p): Use predicates
5323         to test rtx classes and new rtx class codes, possibly
5324         splitting conditionals that tested against '<' and 'o'.
5325         * caller-save.c (save_call_clobbered_regs): Likewise.
5326         * combine.c (contains_muldiv, find_split_point, subst,
5327         combine_simplify_rtx, simplify_if_then_else,
5328         simplify_set, simplify_logical, expand_compound_operation,
5329         make_compound_operation, if_then_else_cond, known_cond,
5330         apply_distributive_law, cached_nonzero_bits,
5331         cached_num_sign_bit_copies, simplify_shift_const,
5332         gen_binary, simplify_comparison, update_table_tick,
5333         record_value_for_reg, get_lsat_value_validate): Likewise.
5334         * cse.c (mention_regs, find_best_addr, find_comparison_args,
5335         fold_rtx, cse_insn, invalidate_memory, cse_basic_block):
5336         Likewise.
5337         * emit-rtl.c (copy_insn_1): Likewise.
5338         * expr.c (force_operand): Likewise.
5339         * final.c (final_scan_insn, get_mem_expr_from_op): Likewise.
5340         * flow.c (notice_stack_pointer_modification_1,
5341         invalidate_mems_from_autoinc, ior_reg_cond, not_reg_cond,
5342         and_reg_cond, elim_reg_cond): Likewise.
5343         * function.c (update_epilogue_consts): Likewise.
5344         * genattrtab.c (attr_rtx_1): Likewise.
5345         * genopinit.c (gen_insn): Likewise.
5346         * integrate.c (subst_constants): Likewise.
5347         * jump.c (reversed_comparison_code_parts,
5348         reversed_comparison_code, delete_related_insns,
5349         rtx_renumbered_equal_p): Likewise.
5350         * local-alloc.c (block_alloc): Likewise.
5351         * loop.c (rtx_equal_for_prefetch_p, maybe_eliminate_biv,
5352         canonicalize_condition): Likewise.
5353         * loop-iv.c (simplify_using_conditions, iv_number_of_iterations):
5354         Likewise.
5355         * optabs.c (add_equal_node, expand_binop): Likewise.
5356         * predict.c (estimate_probability): Likewise.
5357         * ra-debug.c (ra_print_rtx_2op, ra_print_rtx): Likewise.
5358         * recog.c (validate_replace_rtx_1, comparison_operator,
5359         offsettable_address_p, constrain_operands): Likewise.
5360         * reg-stack.c (swap_rtx_condition_1, subst_stack_regs_pat):
5361         Likewise.
5362         * regclass.c (scan_one_insn): Likewise.
5363         * regmove.c (stable_and_no_regs_but_for_p): Likewise.
5364         * regrename.c (kill_autoinc_value): Likewise.
5365         * reload.c (find_reusable_reload, find_reloads,
5366         reg_overlap_mentioned_for_reload_p): Likewise.
5367         * reload1.c (gen_reload, delete_address_reloads_1): Likewise.
5368         * rtl.c (copy_rtx): Likewise.
5369         * rtl.h (CONSTANT_P, INSN_P): Likewise.
5370         * rtlanal.c (commutative_operand_precedence): Likewise.
5371         * sched-deps.c (conditions_mutex_p): Likewise.
5372         * sched-rgn.c (is_cfg_nonregular): Likewise.
5373         * simplify-rtx.c (simplify_gen_binary,
5374         simplify_gen_relational, simplify_replace_rtx,
5375         simplify_unary_operation, simplify_binary_operation,
5376         simplify_ternary_operation, simplify_rtx): Likewise.
5377         * unroll.c (reg_dead_after_loop): Likewise.
5378         * config/alpha/alpha.c (alpha_swapped_comparison_operator,
5379         print_operand): Likewise.
5380         * config/arc/arc.c (proper_comparison_operator): Likewise.
5381         * config/arm/arm.c (arm_arm_address_cost, arm_select_cc_mode):
5382         Likewise.
5383         * config/avr/avr.c (_reg_unused_after): Likewise.
5384         * config/frv/frv.c (frv_ifcvt_modify_tests,
5385         frv_ifcvt_modify_insn, frv_pack_insn): Likewise.
5386         * config/i386/i386.c (ix86_comparison_operator,
5387         ix86_carry_flag_operator, fcmov_comparison_operator,
5388         arith_or_logical_operator, print_operand,
5389         ix86_expand_binary_operator, ix86_binary_operator_ok):
5390         Likewise.
5391         * config/i386/i386.md: Likewise.
5392         * config/ia64/ia64.c (not_postinc_memory_operand,
5393         ia64_print_operand, update_set_flags, errata_emit_nops):
5394         Likewise.
5395         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS,
5396         CONSTRAINT_OK_FOR_S): Likewise.
5397         * config/ip2k/ip2k.c (mdr_resequence_xy_yx,
5398         mdr_try_move_dp_reload, ip2k_check_can_adjust_stack_ref,
5399         ip2k_xexp_not_uses_reg_for_mem, ip2k_xexp_not_uses_reg_p,
5400         ip2k_composite_xexp_not_uses_reg_p, ip2k_unary_operator):
5401         Likewise.
5402         * config/iq2000/iq2000.c (cmp_op, symbolic_expression_p,
5403         eqne_comparison_operator, signed_comparison_operator):
5404         Likewise.
5405         * config/mips/mips.c (cmp_op, symbolic_expression_p):
5406         Likewise.
5407         * config/mmix/mmix (mmix_foldable_comparison_operator,
5408         mmix_comparison_operator): Likewise.
5409         * config/pa/pa.c (hppa_legitimize_address): Likewise.
5410         * config/rs6000/rs6000.c (stmw_operation,
5411         branch_comparison_operator, trap_comparison_operator,
5412         ccr_bit): Likewise.
5413         * config/rs6000/rs6000.h (SELECT_CC_MODE): Likewise.
5414         * config/s390/s390.c (s390_alc_comparison,
5415         s390_slb_comparison):L Likewise.
5416         * config/sh/sh.c (gen_block_redirect, reg_unused_after):
5417         Likewise.
5418         * config/sparc/sparc.c (eq_or_neq, normal_comp_operator,
5419         noov_compare_op, noov_compare64_op, v9_regcmp_op,
5420         emit_hard_tfmode_operation, reg_unused_after)
5421         * doc/md.texi, doc/rtl.texi: Likewise.
5422
5423         * ra-debug.c: Add 2004 to list of copyright years.
5424         * unroll.c: Likewise.
5425
5426         * combine.c (simplify_logical): Remove dummy test,
5427         (apply_distributive_law): Fix typo in comment.
5428         GET_CODE (x) == AND so x is a commutative binary op.
5429         * jump.c (delete_related_insns): simplify loop
5430         condition, move testing of RTX codes inside the loop.
5431         (rtx_renumbered_equal_p): do not use RTX_CODE.
5432         * rtl.c (rtx_class): Declare as enum rtx_class.
5433         * rtl.def (EQ, NE, UNEQ, LTGT, UNORDERED, ORDERED):
5434         Move to RTX_COMM_COMPARE class.
5435         (HIGH, SYMBOL_REF, LABEL_REF, CONST, CONST_INT, CONST_DOUBLE):
5436         Move to RTX_CONST_OBJ class.
5437         * rtl.h (enum rtx_class): New declaration,
5438         (RTX_OBJ_MASK, RTX_OBJ_RESULT, RTX_COMPARE_MASK,
5439         RTX_COMPARE_RESULT, RTX_ARITHMETIC_MASK, RTX_ARITHMETIC_RESULT,
5440         RTX_BINARY_MASK, RTX_BINARY_RESULT, RTX_COMMUTATIVE_MASK,
5441         RTX_COMMUTATIVE_RESULT, RTX_NON_COMMUTATIVE_RESULT,
5442         RTX_EXPR_FIRST, RTX_EXPR_LAST, UNARY_P, BINARY_P,
5443         ARITHMETIC_P, COMMUTATIVE_ARITHMETIC_P, COMPARISON_P,
5444         SWAPPABLE_OPERANDS_P, NON_COMMUTATIVE_P, COMMUTATIVE_P,
5445         OBJECT_P): New macros.
5446         * config/sparc/sparc.c (noov_compare_op): Remove register
5447         from parameter.
5448
5449 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
5450
5451         * target.h: Remove texi jargons in comments.
5452
5453 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
5454
5455         * config/h8300/lib1funcs.asm (___fixunssfsi): Change the
5456         threshold to 0x4f.
5457
5458         Revert:
5459         2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
5460         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
5461         as well.
5462         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
5463         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
5464
5465 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
5466
5467         * doc/md.texi (cbranchmode4): New.
5468
5469 2004-03-02  Eric Christopher  <echristo@redhat.com>
5470
5471         * config/mips/mips16.S: Change fixsfsi and fixdfsi to
5472         fix_trunc.
5473         * config/mips/mips.c (mips_init_libfuncs): Change accordingly.
5474         * config/mips/t-elf (LIB1ASMFUNCS): Ditto.
5475         * config/mips/t-isa3264 (LIB1ASMFUNCS): Ditto.
5476         * config/mips/t-r3900 (LIB1ASMFUNCS): Ditto.
5477
5478 2004-03-02  Richard Henderson  <rth@redhat.com>
5479
5480         PR middle-end/11767
5481         * coverage.c (coverage_counter_ref): Set MEM_NOTRAP_P.
5482         * optabs.c (prepare_cmp_insn): Force trapping memories to registers
5483         before the compare, if flag_non_call_exceptions.
5484
5485 2004-03-02  Richard Henderson  <rth@redhat.com>
5486
5487         PR middle-end/14327
5488         * stmt.c (expand_computed_goto): Do do_pending_stack_adjust before
5489         emitting the label, not after.
5490
5491 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
5492
5493         * config/m68hc11/m68hc11.c (m68hc11_addr_mode): New variable.
5494         (m68hc11_mov_addr_mode): Likewise.
5495         (m68hc11_override_options): Initialize them based on target.
5496         (register_indirect_p): Allow a MEM for indirect addressing modes and
5497         use flags to control what is allowed.
5498         (m68hc11_small_indexed_indirect_p): Use m68hc11_mov_addr_mode for
5499         supported addressing modes.
5500         (m68hc11_register_indirect_p): Use m68hc11_addr_mode.
5501         (go_if_legitimate_address_internal): Likewise.
5502         (m68hc11_indirect_p): Likewise and check the mode.
5503         (print_operand): Allow a (MEM (MEM)) and generate indirect addressing.
5504
5505 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
5506
5507         * builtins.c (BUILTIN_SETJMP_FRAME_VALUE): Remove.
5508         (expand_builtin_setjmp_setup): Use
5509         targetm.builtin_setjmp_frame_value instead of
5510         BUILTIN_SETJMP_FRAME_VALUE.
5511         * system.h (BUILTIN_SETJMP_FRAME_VALUE): Poison.
5512         * target-def.h (TARGET_BUILTIN_SETJMP_FRAME_VALUE): New.
5513         (TARGET_INITIALIZER): Add TARGET_BUILTIN_SETJMP_FRAME_VALUE.
5514         * target.h (gcc_target): Add builtin_setjmp_frame_value.
5515         * targhooks.c (default_builtin_setjmp_frame_value): New.
5516         * targhooks.h: Add a prototype for
5517         default_builtin_setjmp_frame_value.
5518         * doc/tm.texi (BUILTIN_SETJMP_FRAME_VALUE): Change to
5519         TARGET_BUILTIN_SETJMP_FRAME_VALUE.
5520
5521 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
5522
5523         * config/m68hc11/m68hc11.md (move peephole2): New peepholes to optimize
5524         sequences of moves.
5525         (add peepholes): New peepholes to optimize sequences adding small
5526         constants.
5527         (bset peepholes): New peepholes to transform an OR in a bset form
5528         (bclr peepholes): Likewise for bclr form.
5529         (cmp peepholes): New peepholes to avoid register copies when comparing.
5530
5531 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
5532
5533         * config/m68hc11/m68hc11.md ("*pushdi_internal"): New insn and split
5534         to separate push from moves.
5535         ("*pushdf_internal"): Likewise.
5536         ("*pushsf_internal"): Likewise.
5537         ("*pushsi_internal"): Likewise.
5538         ("movdi_internal"): Use define_insn_and_split; non push operand.
5539         ("movdf_internal"): Likewise.
5540         ("movsf_internal"): Likewise.
5541         ("movsi_internal"): Likewise.
5542         ("*movhi_68hc12", "*addhi3_68hc12"): Fix and tune constraints
5543         ("*addhi3", "*subhi3", "*andhi3_mem", "*iorhi3_mem"): Likewise.
5544         ("*ashlsi3_const1", "*lshrsi3_const1"): Likewise.
5545
5546 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
5547
5548         * config/m68hc11/m68hc11.md ("tstqi_z_used"): Use define_insn_and_split.
5549         ("cmphi_z_used", "cmpqi_z_used"): Likewise.
5550         ("movstrictsi", "movstricthi", "movstrictqi"): Likewise.
5551         ("anddi3", "andsi3", "iordi3", "iorsi3"): Likewise.
5552         ("xordi3", "xorsi3", "*logicalsi3_zexthi"): Likewise.
5553         ("*logicalsi3_zextqi", "*logicalhi3_zexthi_ashift8"): Likewise.
5554         ("logicalhi3_zexthi", "*logicalsi3_silshr16"): Likewise.
5555         ("*logicalsi3_silshl16", "*logicalsi3_silshl16_zext"): Likewise.
5556         ("*ashldi3_const32", "*ashldi3_const1", "addsi_silshr16"): Likewise.
5557         ("addsi_andshr16", "*ashlsi3_const16_zexthi"): Likewise.
5558         ("*lshrdi3_const32", "*lshrdi_const1"): Likewise.
5559
5560 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
5561
5562         * config/m68hc11/m68hc11.md (SOFT_TMP_REGNUM): Define.
5563         (SOFT_XY_REGNUM): Define.
5564         (cmp split): Use the above instead of hard coded numbers.
5565         (8-bit op split): No need to check the mode; allow Q_REG.
5566         (ashift split): Adjust the first operand if it uses the SP and we
5567         are pushing the shifted value.
5568         (plus shift split): Fix when a source is in register D+X.
5569         ("doloop_end"): Pass dummy arguments to gen_rtx_NE.
5570
5571 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
5572
5573         * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Fix when
5574         comparing with Z register.
5575
5576 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5577
5578         * cfgloop.h (struct loop_desc): Removed.
5579         (struct loop): Fields simple, desc and has_desc removed.
5580         (simple_loop_p, count_loop_iterations): Declaration removed.
5581         * cfgloopanal.c (struct unmark_altered_insn_data): Removed.
5582         (unmark_altered, blocks_invariant_registers, unmark_altered_insn
5583         blocks_single_set_registers, invariant_rtx_wrto_regs_p_helper,
5584         invariant_rtx_wrto_regs_p, test_for_iteration, constant_iterations,
5585         simple_loop_exit_p, variable_initial_value, variable_initial_values,
5586         simple_condition_p, simple_increment, count_strange_loop_iterations,
5587         inverse, fits_in_mode_p, simple_loop_p, count_loop_iterations):
5588         Removed.
5589         * loop-iv.c (check_simple_exit, find_simple_exit): Update comments.
5590
5591 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
5592
5593         * genattrtab.c: Don't handle MATCH_INSN.
5594         * genrecog.c: Likewise.
5595         * gensupport.c: Likewise.
5596         * rtl.def (match_insn): Remove.
5597         * doc/md.texi (match_insn, match_insn2): Remove.
5598
5599 2004-03-02  Mark Mitchell  <mark@codesourcery.com>
5600
5601         * doc/c-tree.texi (DECL_ASSEMBLER_NAME): Mention that using this
5602         macro results in memory allocation.
5603
5604 2004-03-02  David O'Brien  <obrien@FreeBSD.org>
5605
5606         * config/freebsd-spec.h (FBSD_DYNAMIC_LINKER): Add.
5607         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Define
5608         %(fbsd_dynamic_linker),
5609         (LINK_SPEC): Use %(fbsd_dynamic_linker), and sync style with
5610         config/i386/freebsd.h
5611         * config/arm/freebsd.h: Ditto.
5612         * config/i386/freebsd.h: Ditto.
5613         * config/i386/freebsd64.h: Ditto.
5614         * config/ia64/freebsd.h: Ditto.
5615         * config/rs6000/sysv4.h: Ditto.
5616         * config/sparc/freebsd.h: Ditto.
5617
5618 2004-03-02  Loren James Rittle  <ljrittle@acm.org>
5619
5620         * gcc/doc/install.texi (*-*-freebsd*): Update target information.
5621
5622 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
5623
5624         * rtl.def (define_combine): Remove.
5625
5626 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
5627
5628         * config/h8300/h8300.md: Tweak formatting.
5629
5630 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
5631
5632         * config/h8300/h8300.md (*cmphi_h8300): Rename to
5633         *cmphi_h8300_znvc.
5634         (*cmphi_h8300hs): Rename to *cmphi_h8300hs_znvc.
5635
5636 2004-03-01  Mark Mitchell  <mark@codesourcery.com>
5637
5638         PR bootstrap/14356
5639         * gcc.c (process_command): Remove const-qualification from argv.
5640         (main): Likewise.
5641
5642 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
5643
5644         * config/h8300/h8300.md (pushqi1_h8300hs): Rename to
5645         pushqi1_h8300hs_advanced.  Adjust its caller.
5646         (pushhi1_h8300hs): Rename to pushhi1_h8300hs_advanced.
5647         Adjust its caller.
5648
5649 2004-03-02  Nicolas Roche  <roche@act-europe.fr>
5650
5651         * Makefile.in (install-libgcc, install-multilib): Pass
5652         mkinstalldirs var to libgcc.mk.
5653
5654 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
5655
5656         * system.h (DBX_OUTPUT_STANDARD_TYPES): Poison.
5657         * doc/tm.texi (DBX_OUTPUT_STANDARD_TYPES): Remove.
5658
5659 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
5660
5661         * config/h8300/h8300.c (gtle_operator): Accept GT and LE.
5662         * config/h8300/h8300.md: Split several peephole2's, each into
5663         two.
5664
5665 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5666
5667         * dominance.c (recount_dominator): Handle postdominators.
5668
5669 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
5670
5671         * config/mips/mips-protos.h (enum mips_symbol_type): Move from mips.h.
5672         (NUM_SYMBOL_TYPES): Likewise.
5673         (SYMBOL_64_HIGH, SYMBOL_64_MID, SYMBOL_64_LOW): New symbol types.
5674         (mips_unspec_address): Declare.
5675         (mips_gotoff_page, mips_gotoff_global): Delete.
5676         * config/mips/mips.h (PREDICATE_CODES): Add general_symbolic_operand.
5677         * config/mips/mips.c (enum mips_symbol_type, NUM_SYMBOL_TYPES): Delete.
5678         (mips_symbolic_constant_p, mips_symbolic_address_p)
5679         (mips_symbol_insns): Handle new symbol types.
5680         (general_symbolic_operand): New predicate.
5681         (mips_unspec_address): Make extern.
5682         (mips_gotoff_page, mips_gotoff_global): Delete.
5683         (override_options): Allow -mabi=64 -mno-abicalls -mexplicit-relocs.
5684         Handle new symbol types.
5685         * config/mips/mips.md (*lea_high64, *lea64): New patterns.
5686         (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_disp[sd]i): Call
5687         mips_unspec_address directly.
5688         * doc/invoke.texi: Remove the -mabi=64 -mno-abicalls exception from
5689         the documentation of -mexplicit-relocs.
5690
5691 2004-03-01  Jeff Law  <law@redhat.com>
5692
5693         * fold-const.c (fold): An equality comparison of a non-weak object
5694         against zero has a known result.  Similarly an equality comparison
5695         of the address of two non-weak, unaliased symbols has a known result.
5696
5697         * ggc-page.c (struct page_entry): New field PREV.
5698         (ggc_alloc): Update PREV field appropriately.
5699         (sweep_pages): Likewise.
5700         (ggc_free): Likewise.  Use PREV field rather than loop to
5701         improve ggc_free performance.
5702
5703 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
5704
5705         * config/mips/mips.c (mips_output_division): Use the division
5706         instruction to fill the delay slot of a zero check.
5707         (mips_idiv_insns): Adjust accordingly.
5708
5709 2004-03-01  Nathanael Nerode  <neroden@gcc.gnu.org>
5710
5711         * config.gcc: Create a default tmake_file for linux, and use
5712         it in all but two linux clauses.  Comment those two.
5713
5714 2004-03-01  Paolo Bonzini  <bonzini@gnu.org>
5715
5716         * combine.c (try_combine):  Do not refer to is_replaced.
5717         (gen_lowpart_for_combine):  Perverse subregs now have a
5718         more politically correct name.
5719         * cse.c (cse_insn): Likewise.
5720         * jump.c: Fix bogus reference to delete_insn.
5721
5722 2004-02-29  Mark Mitchell  <mark@codesourcery.com>
5723
5724         PR debug/14328
5725         * dwarf2out.c (gen_enumeration_type_die): Output all enumeration
5726         constants as signed values.
5727
5728         PR middle-end/13448
5729         * c-tree.h (readonly_warning): Rename to ...
5730         (readonly_error): ... this.
5731         * c-typeck.c (build_unary_op): Adjust accordingly.
5732         (readonly_warning): Rename to ...
5733         (readonly_error): ... this and issue errors, not warnings.
5734         (build_modify_expr): Call readonly_error, not readonly_warning.
5735         (c_expand_asm_operands): Likewise.
5736         * tree-inline.c (optimize_inline_calls): Do not inline functions
5737         after errors have occurred.
5738
5739 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
5740
5741         * configure.ac: Rearrange some threading code for clarity;
5742         add section comment.
5743         * configure: Regenerate.
5744
5745 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
5746
5747         * passes.c, config/frv/frv.c, config/sh/sh.c: Fix comment
5748         typos.
5749         * doc/cppopts.texi: Fix a typo.
5750
5751 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
5752
5753         * config/i386/i386.md: Fix formatting.
5754
5755 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
5756
5757         * configure.ac: Add some comments delineating sections of code.
5758
5759         * doc/install.texi: Note that libada uses autoconf 2.57 also.
5760
5761         * doc/install.texi: Fix idiot typo in previous commit.
5762
5763         * doc/install.texi: Update for conversion of intl to autoconf 2.57.
5764
5765 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
5766
5767         * config/h8300/h8300.md: Add comments about peephole2's.
5768
5769 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
5770
5771         * config/h8300/h8300.md: Tweak operand numbers of some
5772         peephole2's.
5773
5774 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
5775
5776         * config/h8300/h8300.md: Tweak comments about peephole2's.
5777
5778 2004-02-29  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
5779
5780         PR middle-end/14203
5781         * function.c (uninitialized_vars_warning): Use DECL_RTL_SET_P
5782         instead of testing whether DECL_RTL is not NULL.
5783
5784 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
5785
5786         * config/sh/sh.c: Fix formatting.
5787
5788 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
5789
5790         * config/sh/sh.c: Convert to ISO-C.
5791
5792 2004-02-28  Andrew Pinski  <pinskia@physics.uc.edu>
5793
5794         * c-typeck.c (tagged_types_tu_compatible_p): Fix pasto in
5795         my previous patch.
5796
5797         * config/darwin.h (machopic_finish): Output stub even if the
5798         symbol is already defined.
5799
5800 2004-02-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5801
5802         * pa64-hpux.h (LIB_SPEC): Fix linking under HP-UX 11.00 with -p and -pg.
5803
5804 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
5805
5806         * genattr.c (main): Don't define
5807         TRADITIONAL_PIPELINE_INTERFACE or DFA_PIPELINE_INTERFACE.
5808         * system.h (TRADITIONAL_PIPELINE_INTERFACE): Poison.
5809         (DFA_PIPELINE_INTERFACE): Likewise.
5810         * doc/tm.texi (TRADITIONAL_PIPELINE_INTERFACE): Remove.
5811         (DFA_PIPELINE_INTERFACE): Likewise.
5812
5813 2004-02-28  Richard Sandiford  <rsandifo@redhat.com>
5814
5815         * config/mips/mips.md (tstsi, tstdi): Delete.
5816
5817 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
5818
5819         * config/mips/mips.c (override_options): Remove an obsolete
5820         duplicate definition of the "e" constraint.
5821         * config/mips/mips.h: Update a comment accordingly.
5822
5823 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
5824
5825         * config/mips/mips.md: Complete the unfinished R4000
5826         multiply/shift errata workaround.  Improve documentation.
5827         (hazard): Use TARGET_FIX_R4000 to decide whether an "imul" instruction
5828         has a hilo hazard.
5829         (mulsi3, mulsi3_internal, mulsi3_r4000): Use TARGET_FIX_R4000.
5830         (muldi3, muldi3_internal): Likewise.
5831         (muldi3_internal2): Remove, replacing with...
5832         (muldi3_mult3, muldi3_r4000): ...these new patterns.
5833         (mulsidi3): Take the errata into account.
5834         (mulsidi3_32bit): Remove, replacing with...
5835         (mulsidi3_32bit_internal, mulsidi3_32bit_r4000): ...these new patterns.
5836         (mulsidi3_64bit, mulsidi3_64bit_parts): Disable if TARGET_FIX_R4000.
5837         (umulsidi3): Take the errata into account.
5838         (umulsidi3_32bit): Remove, replacing with..
5839         (umulsidi3_32bit_internal, umulsidi3_32bit_r4000): ...these patterns.
5840         (umulsi3_highpart, umulsi3_highpart_internal): Disable if
5841         TARGET_FIX_R4000.
5842         (smulsi3_highpart, smulsi3_highpart_internal): Likewise.
5843         (smuldi3_highpart, umuldi3_highpart): Likewise.
5844         * doc/invoke.texi: Document the errata workaround.
5845
5846 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
5847
5848         * config/mips/mips-protos.h (mips_idiv_insns): Declare.
5849         * config/mips/mips.h (MASK_FIX_SB1): Bump.
5850         (MASK_FIX_R4000, TARGET_FIX_R4000): New macros.
5851         (TARGET_SWITCHES): Add -mfix-r4000 and -mno-fix-r4000.
5852         * config/mips/mips.c (mips_idiv_insns): New function.
5853         (override_options): Make -march=r4000 imply -mfix-r4000 by default.
5854         (mips_output_division): Add a workaround for the R4000 divide/shift
5855         errata.
5856         * config/mips/mips.md (length): Use mips_idiv_insns() to calculate
5857         the length of an "idiv" instruction.
5858         * doc/invoke.texi: Document the new switches.
5859
5860 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
5861
5862         * doc/tm.texi (IS_COSTLY_DEPENDENCE): Change to
5863         TARGET_SCHED_IS_COSTLY_DEPENDENCE.
5864
5865 2004-02-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5866
5867         PR optimization/14229
5868         * cfgrtl.c (rtl_tidy_fallthru_edge): Do not fail for !onlyjump jump.
5869
5870 2004-02-28  Eric Botcazou  <ebotcazou@act-europe.fr>
5871
5872         * fold-const.c (fold): Strip NOPs that change the signedness
5873         for RSHIFT too.  Expand comment.
5874
5875 2004-02-27  Ian Lance Taylor  <ian@wasabisystems.com>
5876
5877         PR optimization/7871
5878         * flow.c (mark_set_1): Don't add LOG_LINKS for global registers
5879         from or to call insns.
5880
5881 2004-02-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
5882
5883         PR optimization/7871
5884         * flow.c (propagate_one_insn): Interpret calls as setting global
5885         registers, not merely clobbering them.
5886
5887 2004-02-27  Dale Johannesen  <dalej@apple.com>
5888
5889         * config/darwin.c (machopic_output_possible_stub_label):  Remove.
5890         config/darwin-protos.h:  Ditto.
5891         config/darwin.h:  Remove call to it.
5892         * combine.c (distribute_notes): Do not place a REG_DEAD note
5893         when value is both set and used.
5894
5895 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
5896
5897         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
5898         as well.
5899         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
5900         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
5901
5902 2004-02-27  Andrew Pinski  <apinski@apple.com>
5903
5904         * c-typeck.c (tagged_types_tu_compatible_p) <ENUMERAL_TYPE>:
5905         Speedup common case of the type values being in the same order.
5906
5907 2004-02-27  Steve Ellcey  <sje@cup.hp.com>
5908
5909         * config/ia64/ia64.h (no-inline-float-divide): New option.
5910         * config/ia64/ia64.h (no-inline-int-divide): New option.
5911         * config/ia64/ia64.h (no-inline-sqrt): New option.
5912         (TARGET_DEFAULT): Add MASK_INLINE_FLOAT_DIV_THR to define.
5913         * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
5914         * config/ia64/ia64.c (ia64_override_options): Modify error
5915         checking for inlined division/sqrt.
5916
5917 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
5918
5919         * bb-reorder.c, cfgbuild.c, diagnostic.c, explow.c, profile.c,
5920         ra-build.c, read-rtl.c, tracer.c, unwind-dw2-fde-glibc.c,
5921         value-prof.c, config/darwin-protos.h, config/frv/frv-abi.h,
5922         config/i386/pmmintrin.h, config/pa/pa-hpux.h: Update
5923         copyright.
5924
5925 2004-02-27  Paul Brook  <paul@codesourcery.com>
5926
5927         * function.c (assign_parms): Don't count pretend args for alignment.
5928
5929 2004-02-27  Richard Henderson  <rth@redhat.com>
5930
5931         * passes.c: New file.
5932         * Makefile.in (OBJS-common): Add it.
5933         * diagnostic.c (rtl_dump_and_exit): Move decl ...
5934         * flags.h (rtl_dump_and_exit): ... here.
5935         * output.h (size_directive_output, last_assemble_variable_decl):
5936         Move from toplev.c.
5937         * rtl.h (reg_alloc): Move from toplev.c.
5938         * toplev.c (HAVE_conditional_execution, DUMPFILE_FORMAT,
5939         struct dump_file_info, enum dump_file_index, dump_file_tbl,
5940         open_dump_file, close_dump_file, rest_of_decl_compilation,
5941         rest_of_type_compilation, rest_of_handle_final,
5942         rest_of_handle_delay_slots, rest_of_handle_stack_regs,
5943         rest_of_handle_variable_tracking, rest_of_handle_machine_reorg,
5944         rest_of_handle_new_regalloc, rest_of_handle_old_regalloc,
5945         rest_of_handle_regrename, rest_of_handle_reorder_blocks,
5946         rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_regmove,
5947         rest_of_handle_tracer, rest_of_handle_if_conversion,
5948         rest_of_handle_if_after_combine, rest_of_handle_web,
5949         rest_of_handle_branch_prob,
5950         rest_of_handle_value_profile_transformations, rest_of_handle_cfg,
5951         rest_of_handle_addressof, rest_of_handle_sibling_calls,
5952         rest_of_handle_jump_bypass, rest_of_handle_inlining,
5953         rest_of_handle_null_pointer, rest_of_handle_combine,
5954         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
5955         rest_of_handle_gcse, rest_of_handle_loop_optimize,
5956         rest_of_handle_loop2, rest_of_compilation): Move to passes.c.
5957         (decode_d_option): Use enable_rtl_dump_file.
5958         (compile_file, finalize, do_compile): Move profile+combine+graph
5959         cleanup to finish_optimization_passes.
5960         * toplev.h (init_optimization_passes, finish_optimization_passes,
5961         enable_rtl_dump_file): Declare.
5962
5963 2004-02-27  Eric Botcazou  <ebotcazou@act-europe.fr>
5964             Roger Sayle  <roger@eyesopen.com>
5965
5966         * fold-const.c (fold): Revert 2004-02-25 change.  Use the original
5967         operands to build a tree with swapped operands.
5968         * expr.c (expand_expr_real) <MAX_EXPR>: Consistently use the
5969         'unsignedp' predicate to specify the signedness.
5970
5971 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
5972
5973         * c-decl.c, c-ppoutput.c, combine.c, cppfiles.c, dwarf2out.c,
5974         expr.c, fold-const.c, gcc.c, haifa-sched.c, loop-iv.c,
5975         params.def, read-rtl.c, rtl.c, rtlanal.c, toplev.c: Fix
5976         comment typos and formatting.  Follow spelling conventions.
5977
5978 2004-02-26  Aldy Hernandez  <aldyh@redhat.com>
5979
5980         * config/rs6000/rs6000.md: Add fixuns_truncsfsi2 and
5981         fix_truncsfsi2.
5982
5983         * config/rs6000/spe.md: Delete spe_efsctuiz.
5984         Add spe_fixuns_truncsfsi2.
5985         Add spe_fix_truncsfsi2.
5986
5987 2004-02-26  Eric Christopher  <echristo@redhat.com>
5988
5989         * c-lex.c (c_lex_string_translate): New variable.
5990         (lex_string): Use to determine string translation.
5991         * c-pragma.h: Prototype.
5992         * c-parse.in (start_string_translation): New. Set above.
5993         (stop_string_translation): Ditto.
5994         (attribute, attribute_list, asm_def, asm_stmt,
5995         asm_operand): Use above functions.
5996         * cp/parser.c (cp_parser_declaration): Translate strings
5997         unless token is RID_EXTERN. Set c_lex_string_translate
5998         for recursive use.
5999         (cp_parser_asm_definition): Only translate argument strings
6000         to asms.
6001         (cp_parser_asm_operand_list): Ditto.
6002         (cp_parser_attribute_list): Do not translate attribute strings.
6003
6004 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
6005
6006         * stmt.c (expand_start_case_dummy): Remove.
6007         * tree.h: Remove the corresponding prototype.
6008
6009 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
6010
6011         * builtins.c (apply_args_register_offset): Remove.
6012         * tree.h: Remove the corresponding prototype.
6013
6014 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
6015
6016         * stor-layout.c (is_pending_size): Remove.
6017         * tree.h: Remove the corresponding prototype.
6018
6019 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
6020
6021         * recog.c (validate_replace_src): Remove.
6022         * recog.h: Remove the corresponding prototype.
6023
6024 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
6025
6026         * calls.c: Don't reference FINAL_REG_PARM_STACK_SPACE or
6027         MAYBE_REG_PARM_STACK_SPACE.
6028         * function.c: Likewise.
6029         * system.h (FINAL_REG_PARM_STACK_SPACE): Poison.
6030         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
6031         * doc/tm.texi (FINAL_REG_PARM_STACK_SPACE): Remove.
6032         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
6033
6034 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
6035
6036         * c-decl.c (c_expand_deferred_function): Remove.
6037         * c-tree.h: Remove the corresponding prototype.
6038
6039 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
6040
6041         * postreload.c (reload_cse_move2add): Generate just a PLUS
6042         instead of an entire SET.
6043
6044 2004-02-26  Jan Hubicka  <jh@suse.cz>
6045
6046         * config.gcc: Add support for nocoma/prescott/pentium-m/pentium3m
6047         /pentium4m.
6048         * i386.c (override_options): Add support for new CPUs.
6049         * i386.h (TARGET_CPU_DEFAULT_NAMES): New names.
6050         (TARGET_CPU_DEFAULT_pentium_m, TARGET_CPU_DEFAULT_pentium4e): New
6051         constants.
6052         * invoke.texi: Extend documentation of -mtune/-march for new CPUs.
6053
6054 2004-02-26  Bob Wilson  <bob.wilson@acm.org>
6055
6056         * config/xtensa/xtensa.h (TARGET_CPU_CPP_BUILTINS): Define __xtensa__.
6057
6058 2004-02-26  Eric Botcazou  <ebotcazou@act-europe.fr>
6059
6060         * config/sparc/sparc-protos.h (sparc_emit_floatunsdi): Add 'mode'.
6061         (sparc_emit_fixunsdi): New prototype.
6062         * config/sparc/sparc.c (sparc_emit_floatunsdi): Use 'mode' argument.
6063         (sparc_emit_fixunsdi): New function.
6064         * config/sparc/sparc.md (floatunsdisf2): Use 'general_operand' for
6065         operand 1.  Pass SFmode to sparc_emit_floatunsdi.
6066         (floatunsdidf2): Use 'general_operand' for operand 1.  Pass DFmode
6067         to sparc_emit_floatunsdi.
6068         (fixuns_truncsfdi2): New expander.
6069         (fixuns_truncdfdi2): Likewise.
6070
6071 2004-02-26  Alan Modra  <amodra@bigpond.net.au>
6072
6073         * gcse.c (delete_null_pointer_checks_1): Do not delete CC setter
6074         unless HAVE_cc0.
6075
6076 2004-02-25  Richard Henderson  <rth@redhat.com>
6077
6078         * explow.c (force_reg): Call mark_reg_pointer as appropriate.
6079         * config/alpha/alpha.c (alpha_emit_conditional_branch): Don't
6080         use (op0-op1) == 0 if op0 is a pointer.
6081         * config/alpha/alpha.md (cmpdi): Use some_operand.
6082         (three comparison combine splits): Remove.
6083
6084 2004-02-25  Richard Henderson  <rth@redhat.com>
6085
6086         PR c/12794
6087         * c-common.c (handle_alias_attribute): Reject the attribute if
6088         current_function_decl is set.
6089
6090 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
6091
6092         * config.gcc: Add comment describing extra_gcc_objs.
6093         i[34567]86-*-cygwin*): Replace host_extra_gcc_objs with extra_gcc_objs.
6094         * configure.ac (extra_gcc_objs): New substitution variable.
6095         (host_extra_gcc_objs): Don't substitute.
6096         * configure: Regenerate.
6097         * Makefile.in: Use extra_gcc_objs.
6098
6099 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
6100
6101         * doc/contrib.texi: Add an entry for myself.
6102
6103 2004-02-25  Jan Hubicka  <jh@suse.cz>
6104
6105         * basic-block.h (make_eh_edge, break_superblocks): Declare.
6106         * cfgbuild.c (make_eh_edge):  Make global.
6107         * cfglayout.c (break_superblocks): Likewise; fix memory leak.
6108         * except.c (build_post_landing_pads, connect_post_landing_pads,
6109         dw2_build_landing_pads, sjlj_emit_function_enter,
6110         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
6111         sjlj_build_landing_pads): Update CFG.
6112         (emit_to_new_bb_before): New function.
6113         (finish_eh_generation): Do not rebuild the CFG.
6114
6115 2004-02-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6116
6117         * config.gcc (hppa*-*-*, parisc*-*-*): Add MASK_BIG_SWITCH to all
6118         target_cpu_default defines.
6119         * pa-hpux.h (TARGET_DEFAULT): Add MASK_BIG_SWITCH to define.
6120         * pa.h (TARGET_DEFAULT): Likewise.
6121
6122 2004-02-25  Eric Botcazou  <ebotcazou@act-europe.fr>
6123
6124         * fold-const.c (fold): Treat MAX_EXPR and MIN_EXPR like
6125         comparisons with regard to signedness.
6126
6127 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
6128
6129         * arm.c (thumb_legitimize_address): New function.
6130         * arm-protos.h: Prototype it.
6131         * arm.h (THUMB_LEGITIMIZE_ADDRESS): Define.
6132         (LEGITIMIZE_ADDRESS): Use it.
6133
6134 2004-02-25  J"orn Rennecke <joern.rennecke@superh.com>
6135
6136         * reload1.c (reload): Only spill eliminable register with multiple
6137         adjacent elimination alternatives if all alternatives fail.
6138
6139 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
6140
6141         * arm.c (arm_legitimate_index_p): For QImode the range of an offset
6142         is -4095...+4095 inclusive.
6143
6144 2004-02-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
6145
6146         * doc/install.texi (sparc-sun-solaris2* specific notes): Document
6147         the bootstrap failure with Sun CC 5.4 and 5.5.
6148
6149 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
6150
6151         * cse.c (cse_change_cc_mode_insns): Stop at any instruction
6152         which modifies NEWREG.
6153         (cse_condition_code_reg): Update the mode of CC_REG in
6154         CC_SRC_INSN on our own.
6155
6156 2004-02-24  Michael Matz  <matz@suse.de>
6157
6158         * config/i386/i386.c (ix86_comp_type_attributes): Check for
6159         regparm attributes.
6160
6161 2004-02-24  Richard Henderson  <rth@redhat.com>
6162
6163         * toplev.c (dump_file_tbl): Rename from dump_file.
6164         * bb-reorder.c, bt-load.c, cfgcleanup.c, cfglayout.c, cfgloopanal.c,
6165         cfgloopmanip.c, cfgrtl.c, config/arm/arm.c, config/frv/frv.c,
6166         config/i386/i386.c, config/ia64/ia64.c, config/mips/mips.c,
6167         config/sh/sh.c, cse.c, flow.c, ifcvt.c, loop-iv.c, loop-unroll.c,
6168         loop-unswitch.c, output.h, predict.c, profile.c, ra-build.c,
6169         ra-colorize.c, ra-debug.c, ra-rewrite.c, ra.c, regrename.c, reload1.c,
6170         toplev.c, tracer.c, value-prof.c, var-tracking.c, web.c:
6171         s/rtl_dump_file/dump_file/g.
6172
6173 2004-02-24  Aldy Hernandez  <aldyh@redhat.com>
6174
6175         * config/rs6000/spe.md (spe_fix_truncsfsi2): Delete.
6176         (spe_fixuns_truncsfsi2): Delete.
6177
6178         * config/rs6000/rs6000.md (fix_truncsfsi2): Delete.
6179         (fixuns_truncsfsi2): Delete.
6180
6181 2004-02-24  Josef Zlomek  <zlomekj@suse.cz>
6182
6183         PR/14240
6184         * rtlanal.c (replace_label): Fix replacing labels in constant pool.
6185
6186 2004-02-24  Geoffrey Keating  <geoffk@apple.com>
6187
6188         * config/darwin.h (TARGET_HAS_F_SETLKW): Define.
6189
6190 2004-02-24  Jason Merrill  <jason@redhat.com>
6191
6192         * tree.c (check_qualified_type): New fn.
6193         (get_qualified_type): Use it.  If type already has the desired
6194         quals, just return it.
6195         * tree.h: Declare it.
6196
6197 2003-02-24  Sanjiv Kumar Gupta  <sanjivg@noida.hcltech.com>
6198
6199         * target-def.h (TARGET_SCHED_INIT_GLOBAL,
6200         TARGET_SCHED_FINISH_GLOBAL): New macros.
6201
6202         * target.h (md_init_global, md_finish_global): Function
6203         declarations corresponding to new target macros.
6204
6205         * haifa-sched.c (sched_init, sched_finish): Allow target to
6206         call the new schedular hooks.
6207
6208         * flow.c (recompute_reg_usage): Add PROP_DEATH_NOTES flag in
6209         call to update_life_info.
6210
6211         * config/sh/sh.h (OVERRIDE_OPTIONS): Re-enable
6212         flag_schedule_insns for SH4.
6213
6214         * config/sh/sh.c (sh_md_init_global, sh_md_finish_global,
6215         find_set_regmode_weight, find_insn_regmode_weight,
6216         find_regmode_weight), sh_md_init, sh_dfa_new_cycle,
6217         sh_variable_issue, high_pressure, ready_reorder,
6218         rank_for_reorder, swap_reorder, sh_reorder, sh_reorder2): New
6219         functions used to throttle the insn movement in first
6220         scheduling pass for SH.
6221
6222         * gcc/doc/tm.texi: Document TARGET_SCHED_INIT_GLOBAL and
6223         TARGET_SCHED_FINISH_GLOBAL.
6224
6225 2004-02-24  Alexandre Oliva  <aoliva@redhat.com>
6226
6227         Implement FR-V FDPIC ABI support for frv-uclinux and frv-linux.
6228         2004-02-05  Alexandre Oliva  <aoliva@redhat.com>
6229         * config/frv/frv.c (frv_emit_movsi): Use GOT relocations for
6230         symbols in sections named by the user.
6231         2004-01-30  Alexandre Oliva  <aoliva@redhat.com>
6232         * config/frv/linux.h (TARGET_OS_CPP_BUILTINS): New.
6233         2004-01-27  Alexandre Oliva  <aoliva@redhat.com>
6234         * config.gcc (frv-*-*linux*): Handle like *-*-linux*.
6235         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Remove, obviated by
6236         the above.
6237         2004-01-20  Alexandre Oliva  <aoliva@redhat.com>
6238         * config/frv/frv.md (symGOT2reg_hilo, symGOTOFF2reg_hilo): Add
6239         one more pseudo to further improve code generation.
6240         2004-01-19  Alexandre Oliva  <aoliva@redhat.com>
6241         * config/frv/frv.md (movdi_ldd): Introduce explicit indirection
6242         inside UNSPEC.
6243         2004-01-16  Alexandre Oliva  <aoliva@redhat.com>
6244         * config/frv/frv.c (frv_legitimate_address_p): Added
6245         allow_double_reg_p argument.  Adjust all callers.  Use it to
6246         decide whether to enable double-register indirect addressing.
6247         (frv_funcdesc_alias_set): Remove.
6248         (frv_expand_fdpic_call): Force non-SYMBOL_REF operand into
6249         register.  Emit movdi_ldd.
6250         (ldd_address_operand): New.
6251         * config/frv/frv-protos.h (frv_legitimate_address_p): Adjust.
6252         * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Likewise.
6253         (PREDICATE_CODES): Add ldd_address_operand.
6254         * config/frv/frv.md (movdi_ldd): New.
6255         (symGOT2reg_hilo, symGOTOFF2reg_hilo): Use separate pseudo for
6256         intermediate computations if possible.
6257         (symGOTOFF2reg_i): Fix harmless typo.
6258         2003-12-18  Alexandre Oliva  <aoliva@redhat.com>
6259         * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Cast
6260         relocated p_vaddr to vaddr type.
6261         * config/frv/frv-protos.h (frv_expand_fdpic_call): Return void.
6262         * config/frv/frv.c (frv_get_funcdesc_alias_set): New.
6263         (frv_expand_fdpic_call): Propagate incoming MEM's expr to funcdesc
6264         MEM, or use a funcdesc alias set.  Use regular move instead of
6265         ldd.
6266         (dbl_memory_one_insn_operand): Recognize function descriptors by
6267         type or by alias set, and don't split them.
6268         * config/frv/frv.md (call, call_value): Never use call_internal
6269         for fdpic.
6270         (call_internal, call_value_internal): Never match for FDPIC.
6271         (call_fdpicdi, call_fdpicsi, call_value_fdpicdi,
6272         call_value_fdpicsi): Require FDPIC.
6273         (ldd): Removed.
6274         2003-12-17  Alexandre Oliva  <aoliva@redhat.com>
6275         * config/frv/frv.h (CRT_GET_RFIB_DATA): Define for __FRV_FDPIC__.
6276         * unwind-dw2-fde-glibc.c: Don't include elf-fdpic.h any more.
6277         (_Unwind_IteratePhdrCallback): Adjust type of load_base for FRV
6278         FDPIC.  Compute data base address.
6279         * config/frv/linux.h (SUBTARGET_DRIVER_SELF_SPECS): Enable -mfdpic
6280         before the other self-specs are processed.
6281         * config/frv/t-linux (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS):
6282         Build with -fPIC.
6283         2003-12-15  Alexandre Oliva  <aoliva@redhat.com>
6284         * unwind-dw2-fde-glibc.c: Don't include bits/elf-fdpic.h if
6285         inhibit_libc is defined.
6286         2003-12-12  Alexandre Oliva  <aoliva@redhat.com>
6287         * unwind-dw2-fde-glibc.c: Include bits/elf-fdpic.h for
6288         __FRV_FDPIC__.
6289         (__RELOC_POINTER): Define.
6290         (_Unwind_IteratePhdrCallback): Use it.
6291         * config/frv/frv.h (Twrite): Define.
6292         (TRANSFER_FROM_TRAMPOLINE): Use it.
6293         * config/frv/linux.h (INVOKE__main): Undefine.
6294         (Twrite): Override.
6295         2003-12-05  Richard Sandiford  <rsandifo@redhat.com>
6296         * doc/invoke.texi (-mlong-calls, -mlinked-fp): Document FRV options.
6297         (-mlibrary-pic): Emphasize that this option generates EABI code.
6298         (-mcpu): Add fr550.
6299         (-mpack): Remove.
6300         2003-11-30  Alexandre Oliva  <aoliva@redhat.com>
6301         * config/frv/frv.c (int_2word_operand): Reject LABELs, SYMBOL_REFs
6302         and CONSTs in FDPIC mode.
6303         * gcc/config.gcc (with_cpu): Default to fr400 on frv-*-*linux*.
6304         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
6305         * config/frv/frv.c (move_source_operand): Don't accept symbolic
6306         constants.
6307         * config/frv/frv.md (*movhi_internal, *movsi_internal): Use an 'n'
6308         rather than 'i' constraint for the 2-instruction alternative.
6309         (*movsi_2word): New, incorporating existing int_2word_operand splitter.
6310         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
6311         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Q): Renamed from
6312         EXTRA_CONSTRAINT_FOR_Y.
6313         (EXTRA_CONSTRAINT): Remove handling of 'Y'.
6314         * config/frv/frv.md (*movsi_internal): Remove 'Q' constraint.
6315         (addsi3): Change 'Y' constraint to 'Q'.
6316         2003-11-27  Richard Sandiford  <rsandifo@redhat.com>
6317         * reload.c (CONST_POOL_OK_P): New macro.
6318         (find_reloads): Use it to decide whether a constant can be forced
6319         into memory.
6320         * config/frv/frv.h (LEGITIMATE_PIC_OPERAND_P): Return true if the
6321         constant satisfies got12_operand.
6322         (frv_cannot_force_const_mem): Always return true for TARGET_FDPIC.
6323         (frv_legitimate_address_p): Check for valid unspec offsets using
6324         got12_operand rather than frv_legitimate_fdpic_operand_p.
6325         (frv_legitimate_fdpic_operand_p): Delete.
6326         (frv_emit_movsi): Abort if we try to use the FDPIC register during
6327         or after reload.
6328         (frv_legitimate_constant_p): Return LEGITIMATE_PIC_OPERAND_P if
6329         TARGET_FDPIC.
6330         * config/frv/frv.md (*movdf_double): Add alternatives for CONST_DOUBLE.
6331         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
6332         * config/frv/frv-protos.h (fdpic_operand, fdpic_got12_operand)
6333         (frv_fdpic_fptr_operand): Don't declare here.
6334         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Y): Call got12_operand
6335         rather than fdpic_got12_operand.
6336         (PREDICATE_CODES): Remove symbolic_operand entry.  Add entries for
6337         got12_operand and const_unspec_operand.
6338         * config/frv/frv.c (got12_operand): Renamed from fdpic_got12_operand.
6339         (gpr_or_int12_operand, dbl_memory_one_insn_operand): Update calls.
6340         (symbolic_operand): Remove.
6341         (const_unspec_operand): New predicate.
6342         * config/frv/frv.md (*movsi_got): Use got12_operand.
6343         (*movsi_high_got, *movsi_lo_sum_got): Use const_unspec_operand.
6344         2003-11-18  Richard Sandiford  <rsandifo@redhat.com>
6345         * config/frv/frv-protos.h (frv_output_addr_const_extra): Remove.
6346         * config/frv/frv.h (OUTPUT_ADDR_CONST_EXTRA): Remove definition.
6347         * config/frv/frv.c (frv_unspec): New structure.
6348         (frv_small_data_reloc_p, frv_const_unspec_p): New functions.
6349         (frv_print_operand_memory_reference): Use frv_const_unspec_p to
6350         validate CONST indices.  Use frv_output_const_unspec to print them.
6351         (frv_print_operand): Update call to unspec_got_name.  Use
6352         frv_output_const_unspec to print constant unspecs.
6353         (frv_legitimate_fdpic_operand_p): Return true if frv_const_unspec_p.
6354         Reject UNSPECs otherwise.
6355         (unspec_got_name): Take the relocation number as argument, not an
6356         rtx containing it.
6357         (frv_output_addr_const_extra): Remove, replacing with...
6358         (frv_output_const_unspec): ...this new function.
6359         (frv_find_base_term): Use frv_const_unspec_p & frv_small_data_reloc_p.
6360         (gpr_or_int12_operand): Use fdpic_got12_operand.
6361         (dbl_memory_one_insn_operand): Likewise.
6362         (fdpic_got12_operand): Use frv_const_unspec_p.
6363         (frv_emit_movsi): Use frv_const_unspec_p to check for CONSTs that
6364         are already legitimate.  Use frv_small_data_reloc_p when deciding
6365         whether to use HIGH/LO_SUM for R_FRV_GOTOFF12 and R_FRV_GPREL12.
6366         2003-11-18  Alexandre Oliva  <aoliva@redhat.com>
6367         * config/frv/t-linux (SHLIB_MAPFILES): Override so as to export...
6368         * config/frv/libgcc-frv.ver: ... frv-specific symbols.  New file.
6369         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
6370         label, for real this time.
6371         * config/frv/frv.c (frv_local_funcdesc_p): Update to new
6372         representation of visibility.
6373         (fdpic_got12_operand, symbolic_operand): Mark unused arguments as
6374         such.
6375         2003-11-17  Richard Sandiford  <rsandifo@redhat.com>
6376         * config/frv/frv.h (MASK_LINKED_FP, TARGET_LINKED_FP): New macros.
6377         (TARGET_SWITCHES): Add -mlinked-fp and -mno-linked-fp.
6378         * config/frv/frv.c (frv_override_options): Set MASK_LINKED_FP unless
6379         it was explicitly disabled.
6380         (frv_stack_info): There is no need to save the link register in every
6381         frame unless TARGET_LINKED_FP is true.
6382         (frv_frame_pointer_required): If !TARGET_LINKED_FP, only require a
6383         frame pointer if the stack pointer might change value.
6384         (frv_return_addr_rtx): Check and process "count" argument.
6385         2003-11-14  Richard Sandiford  <rsandifo@redhat.com>
6386         * config/frv/frv-protos.h (frv_legitimize_address): Remove.
6387         (frv_find_base_term): Declare.
6388         * config/frv/frv.h (LEGITIMIZE_ADDRESS): Do nothing.
6389         (FIND_BASE_TERM): Define.
6390         (PREDICATE_CODES): Remove pic_register_operand, pic_symbolic_operand,
6391         small_data_register_operand, small_data_symbolic_operand.  Add
6392         symbolic_operand.
6393         * config/frv/frv.c (const_small_data_p, plus_small_data_p): Delete.
6394         (frv_print_operand_memory_reference, output_move_single): Remove
6395         special handling for unlegitimized sdata addresses.
6396         (frv_legitimate_address_p): Don't allow sums of SDA_BASE_REG
6397         and symbolic addresses.
6398         (frv_legitimize_address, frv_legitimize_fdpic_address): Delete.
6399         (frv_find_base_term): New function.
6400         (int_2word_operand): Check specifically for symbolic address constants.
6401         (pic_register_operand, pic_symbolic_operand): Delete.
6402         (small_data_register_operand, small_data_symbolic_operand): Delete.
6403         (dbl_memory_one_insn_operand): Don't call plus_small_data_p.
6404         Allow UNSPEC_GOT constants if !TARGET_FDPIC.
6405         (move_source_operand): Only accept CONSTs if they're a two-insn
6406         symbolic constant.
6407         (fdpic_got12_operand): Don't require TARGET_FDPIC.
6408         (frv_emit_movsi): Legitimize sdata and -mlibrary-pic addresses
6409         using gen_symGOTOFF2reg*.
6410         (frv_ifcvt_rewrite_mem): Remove (plus gr16 ...) special cases.
6411         (frv_rtx_costs): Give all MEM addresses a cost of 0.  Give MEMs
6412         themselves a cost of 3 insns.
6413         * config/mips/mips.md (*movsi_got): Allow for !TARGET_FDPIC too.
6414         Change predicate to symbolic_operand.
6415         (*movsi_high_got, *movsi_lo_sum_got): Likewise.
6416         (*movsi_lda_sdata): Delete.
6417         (*movsi_pic, movsi_high_pic, movsi_lo_sum_pic): Delete.
6418         2003-11-05  Alexandre Oliva  <aoliva@redhat.com>
6419         * config.gcc: Add t-slibgcc-elf-ver and support --with-cpu for
6420         frv-*-*linux*.
6421         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
6422         label.
6423         * config/frv/frv.h (DRIVER_SELF_SPECS): Add blank before
6424         -multilib-library-pic.
6425         (LINK_SPEC): Add -z text for -mfdpic.
6426         * config/frv/frvbegin.c (__ROFIXUP_LIST__): Don't define on FDPIC.
6427         * config/frv/frvend.c (__ROFIXUP_END__): Likewise.
6428         * config/frv/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, LINK_SPEC):
6429         Override.
6430         (OPTION_DEFAULT_SPECS, HAS_INIT_SECTION, INIT_SECTION_ASM_OP,
6431         FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION): Define.
6432         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Use
6433         crtstuff-generated files.
6434         2003-10-31  Alexandre Oliva  <aoliva@redhat.com>
6435         * config.gcc: Add frv-*-*linux*.
6436         * config/frv/linux.h, config/frv/t-linux: New.
6437         2003-10-06  Alexandre Oliva  <aoliva@redhat.com>
6438         * config/frv/frv.h (LINK_SPEC): Pass -melf32frvfd to the linker
6439         when -mfdpic even if a linker script is explicitly listed.
6440         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
6441         * config/frv/frv.c (frv_override_options): Clear asm_out
6442         unaligned_op for SImode on FDPIC.
6443         (frv_emit_movsi): Use compute_reloc_for_constant to compute the
6444         argument passed to decl_readonly_section.
6445         (frv_assemble_integer): Revert 2003-09-30's change, but make the
6446         whole block run with FDPIC even with -fno-PIC.
6447         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
6448         * config/frv/frv.c (frv_cannot_force_const_mem): Don't force
6449         symbol or label plus offset to memory.
6450         (frv_emit_movsi): Emit GPREL only if -mgprel-ro.  Emit 32-bit
6451         GOTOFF and GPREL for LABEL_REF.
6452         * config/frv/frv.h (DRIVER_SELF_SPECS): Add -mgprel-ro with
6453         -mfdpic unless -mno-gprel-ro, -fpic or -fpie.
6454         (MASK_GPREL_RO, TARGET_GPREL_RO): New.
6455         (TARGET_SWITCHES): Added gprel-ro and no-gprel-ro.
6456         * doc/invoke.texi: Document them.
6457         2003-09-30  Alexandre Oliva  <aoliva@redhat.com>
6458         * config/frv/frv-protos.h (frv_gen_GPsym2reg): Declare.
6459         (frv_splittable_got_operand): Removed.
6460         * config/frv/frv.c (frv_cannot_force_const_mem): Reject HIGH and
6461         LO_SUM.  Add comments.
6462         (frv_override_options): Moved enabling of FDPIC to
6463         DRIVER_SELF_SPECS.  Don't enable MASK_DWORD.
6464         (frv_local_funcdesc_p): Remove unnecessary heck for flag_pie.
6465         (frv_legitimize_fdpic_address): Don't duplicate logic in
6466         frv_emit_movsi.
6467         (frv_gen_GPsym2reg): New.
6468         (unspec_got_name): Added gprel.
6469         (frv_expand_fdpic_call): Add support for inlining PLTs.
6470         (fdpic_fptr_operand): Renamed from frv_fdpic_fptr_operand.
6471         (gpr_or_int12_operand): Added GPREL12.
6472         (pic_symbolic_operand): Match even if !flag_pic for FDPIC.
6473         (small_data_symbolic_operand): Fail if FDPIC.
6474         (fdpic_splittable_got_operand): Removed.
6475         (fdpic_got12_operand): Added GPREL12.
6476         (frv_emit_movsi): Reorganize to avoid duplication.  Emit GPREL
6477         when appropriate.  Fix sdata GOTOFF.
6478         (frv_legitimate_constant_p): Require legitimate PIC operand for
6479         FDPIC with pic, but only a legitimate fdpic operand for non-pic.
6480         (frv_assemble_integer): Move FDPIC funcdesc handling out of
6481         flag_pic case.
6482         (frv_asm_out_constructor, frv_asm_out_destructor): Abort if
6483         frv_assemble_integer fails.
6484         * config/frv/frv.h (DRIVER_SELF_SPECS): New.
6485         (SUBTARGET_DRIVER_SELF_SPECS): New.
6486         (ASM_SPEC): Don't pass -mno-fdpic.
6487         (LINK_SPEC): Pass -melf32frvfd for FDPIC.
6488         (MASK_INLINE_PLT, TARGET_INLINE_PLT): New.
6489         (TARGET_SWITCHES): Add -minline-plt, -mno-inline-plt and
6490         -multilib-library-pic.
6491         (PREDICATE_CODES): Added fdpic_operand, fdpic_fptr_operand,
6492         condexec_si_media_operator, condexec_sf_add_operator and
6493         condexec_sf_conv_operator.  Removed condexec_sf_binary_operator
6494         and condexec_sf_unary_operator.
6495         * config/frv/frv.md (R_FRV_GPREL12, R_FRV_GPRELHI, R_FRV_GPRELLO):
6496         New.
6497         (movsi_got, movsi_high_got, movsi_lo_sum_got): Move before
6498         movsi_internal.  Give them internal names.  movsi_got has type
6499         int.
6500         (fdpic got splitters): Remove.
6501         (symGPREL2reg, symGPREL2reg_hilo): New.
6502         * config/frv/t-frv (MULTILIB_MATCHES): Don't map -fpic and -fPIC
6503         to -mlibrary-pic.  Map -multilib-library-pic to it.
6504         * doc/invoke.texi: -mfdpic, -minline-plt, -multilib-library-pic:
6505         Document.
6506         2003-09-28  Alexandre Oliva  <aoliva@redhat.com>
6507         * config/frv/frv.c (frv_function_symbol_referenced_p): Declare.
6508         (TARGET_CANNOT_FORCE_CONST_MEM): Define to...
6509         (frv_cannot_force_const_mem): New function.
6510         (const_small_data_p, plus_small_data_p): Update comments on sdata
6511         on FDPIC.
6512         (frv_override_options): Set flag_pie for FDPIC too.
6513         (frv_conditional_register_usage): Mark gr16 and gr17 as non-fixed,
6514         call-saved registers on FDPIC.
6515         (frv_stack_info): Don't preserve the PIC register on FDPIC, and
6516         don't force LR to be preserved.
6517         (frv_expand_prologue): Likewise.
6518         (frv_asm_output_mi_thunk): Use 12-bit funcdesc gotoff for -fpic.
6519         (frv_frame_pointer_required): Don't force it just because the
6520         FDPIC register is used.
6521         (frv_legitimate_address_p) <CONST>: Accept a legitimate FDPIC
6522         operand only if !condexec_p.
6523         (frv_legitimize_address): Return the FDPIC-legitimized address.
6524         Don't match small data here on FDPIC.
6525         (frv_legitimate_fdpic_operand_p): Don't accept unadorned function
6526         symbols.  Use TRUE/FALSE instead of 1/0.
6527         (frv_local_funcdesc_p): New.
6528         (frv_legitimize_fdpic_address): Rewrite to use GOTOFF and 12-bit
6529         immediates when possible.
6530         (pic_symbolic_operand): Accept SYMBOL_REFs and CONSTs in FDPIC.
6531         (dbl_memory_one_insn_operand): Accept addresses that add a REG and
6532         an UNSPEC_GOT.
6533         (frv_emit_movsi): Handle FDPIC before small data.  Use GOTOFF and
6534         12-bit immediates when possible.
6535         (frv_legitimate_constant_p): In FDPIC, reject SImode operands that
6536         are not legitimate pic operands.
6537         (frv_in_small_data_p): Re-enable for FDPIC.
6538         * config/frv/frv.h (SDA_BASE_REG): Remove comment about FDPIC.
6539         (FRV_GLOBAL_P): Removed.
6540         * config/frv/frv.md: Add modes to CONSTs.
6541         (movsi_got): New.
6542         (movsi_lo_sum_got): Use separate matches instead of match_dup.
6543         (movsi_high_pic, movsi_lo_sum_pic): Match on non-FDPIC only.
6544         (fdpic splittable operations): Match on flag_pic != 1.
6545         2003-09-22  Alexandre Oliva  <aoliva@redhat.com>
6546         * config/frv/frv.c (frv_asm_out_constructor,
6547         frv_asm_out_destructor): Pass to frv_assemble_integer the size in
6548         bytes, not bits.
6549         2003-09-19  Alexandre Oliva  <aoliva@redhat.com>
6550         * config/frv/frv.c (frv_assemble_integer): Reject complex
6551         expressions referencing function SYMBOL_REFs.
6552         * config/frv/frv.c (frv_function_symbol_referenced_p): New.
6553         (move_source_operand): Reject CONSTs that reference function
6554         SYMBOL_REFs on FDPIC.
6555         (frv_emit_movsi): If we get such a CONST, break it up.
6556         * config/frv/frv.h (CPP_SPEC): Define __FRV_FDPIC__ for -mfdpic.
6557         (TRANSFER_FROM_TRAMPOLINE): Use different definitions for FDPIC.
6558         * config/frv/frv.c (frv_print_operand) <I>: Recognize PLUS without
6559         MEM.
6560         (frv_assemble_integer): Don't use funcdesc for LABEL_REFs.
6561         (frv_trampoline_size): Increase for FDPIC.
6562         * config/frv/frv.h (TRAMPOLINE_ALIGNMENT): Bump to 64 for FDPIC.
6563         (TRANSFER_FROM_TRAMPOLINE): Handle FDPIC trampolines.
6564         * config/frv/frv.c (frv_legitimize_fdpic_address, frv_emit_movsi):
6565         Disable use of GOTOFF for now.
6566         (const_small_data_p, plus_small_data_p, frv_in_small_data_p):
6567         Disable use of small data in FDPIC for now.
6568         (frv_asm_output_mi_thunk): Implement for FDPIC.
6569         * config/frv/frv.h (SDA_BASE_REG): Set to -1 with FDPIC.
6570         * config/frv/frv.c (frv_asm_out_constructor): Use
6571         frv_assemble_integer for FDPIC pointers.
6572         (frv_asm_out_destructor): Likewise.
6573         * config/frv/frv.md (ldd): Fix order of operands.  Use
6574         address_operand for input.
6575         2003-09-18  DJ Delorie  <dj@redhat.com>
6576         * config/frv/frv.c (frv_legitimate_fdpic_operand_p): Remove UNSPEC_PIC.
6577         (unspec_got_name): Correct typo.
6578         (frv_emit_movsi): Pre-expand splittable GOTs.
6579         (frv_expand_fdpic_call): Rename gen_lddi to gen_ldd.
6580         * config/frv/frv.md (lddi): Fix syntax error, rename to ldd.
6581         (symGOT2reg_hilo, symGOTOFF2reg_hilo): New.
6582         * config/frv/t-frv: Add -mfdpic multilibs.
6583         * config/frv/frv.h (ASM_SPEC): Pass -mfdpic/-mno-fdpic.
6584         (TARGET_SWITCHES): Add -mno-fdpic, fix documentation.
6585         * config/frv/frv.c (frv_override_options): -mfdpic assumes
6586         flag_pic, default to 32-bit pics, require DWORD ops.
6587         (frv_override_options): Add W and Z constraints.
6588         (frv_expand_prologue): No pic prologue for -mfdpic.
6589         (frv_asm_output_mi_thunk): Support -mfdpic (soon).
6590         (frv_print_operand_memory_reference): Handle GOT constants.
6591         (frv_legitimate_address_p): Allow GOT constants.
6592         (frv_legitimize_address): Handle GOT addresses too.
6593         (frv_legitimate_fdpic_operand_p): New.
6594         (frv_legitimize_fdpic_address): New.
6595         (unspec_got_name): New.
6596         (frv_output_addr_const_extra): New.
6597         (frv_expand_fdpic_call): New.
6598         (frv_fdpic_fptr_operand): New.
6599         (gpr_or_int12_operand): Handle GOT operands.
6600         (int_2word_operand): Handle GOT operands.
6601         (fdpic_operand): New.
6602         (fdpic_splittable_got_operand): New.
6603         (fdpic_got12_operand): New.
6604         (frv_emit_movsi): Handle GOT operands.
6605         (frv_assemble_integer): -mfdpic doesn't use rofixups.
6606         (frv_print_operand): Support 'g' code for GOT operands.
6607         * config/frv/frv-protos.h: Add prototypes as needed.
6608         * config/frv/frv.md (R_FRV_GOT12, R_FRV_GOTHI, R_FRV_GOTLO,
6609         R_FRV_FUNCDESC, R_FRV_FUNCDESC_GOT12, R_FRV_FUNCDESC_GOTHI,
6610         R_FRV_FUNCDESC_GOTLO, R_FRV_FUNCDESC_VALUE,
6611         R_FRV_FUNCDESC_GOTOFF12, R_FRV_FUNCDESC_GOTOFFHI,
6612         R_FRV_FUNCDESC_GOTOFFLO, R_FRV_GOTOFF12, R_FRV_GOTOFFHI,
6613         R_FRV_GOTOFFLO): New.
6614         (movsi_high_got, movsi_lo_sum_got): New.
6615         (*movsi_pic): Don't use this splitter for -mfdpic.
6616         (addsi3): Allow GOT references also.
6617         (call, call_value): Handle -mfdpic separately.
6618         (call_fdpicdi, call_fdpicsi, lddi, call_value_fdpicdi,
6619         call_value_fdpicsi): New.
6620         (symGOT2reg, symGOT2reg_i, got splitters, symGOTOFF2reg,
6621         symGOTOFF2reg_i): New.
6622         * config/frv/frv.h (MASK_FDPIC): New.
6623         (TARGET_FDPIC): New.
6624         (TARGET_SWITCHES): Add -mfdpic.
6625         (FDPIC_FPTR_REGNO): New.
6626         (FDPIC_REGNO): New.
6627         (OUR_FDPIC_REG): New.
6628         (enum reg_class): Add FDPIC_REGS, FDPIC_FPTR_REGS, and
6629         FDPIC_CALL_REGS.
6630         (REG_CLASS_NAMES): Likewise.
6631         (REG_CLASS_CONTENTS): Likewise.
6632         (EXTRA_CONSTRAINT_FOR_Y): New, for 12-bit GOTs.
6633         (EXTRA_CONSTRAINT): Add it here.
6634         (FRV_GLOBAL_P): New.
6635         (OUTPUT_ADDR_CONST_EXTRA): New.
6636
6637 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
6638
6639         * config/sparc/sparc.h: Remove commented-out definitions of
6640         TARGET_EDOM and GEN_ERRNO_RTX.
6641
6642 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
6643
6644         * df.c, df.h, ra-build.c, ra-rewrite.c, ra.c, web.c: Replace
6645         df_analyse with df_analyze.
6646
6647 2004-02-24  Alan Modra  <amodra@bigpond.net.au>
6648
6649         * gcse.c (delete_null_pointer_checks_1): Set stop_insn to end, not
6650         beginning of block.
6651
6652 2004-02-23  James E Wilson  <wilson@specifixinc.com>
6653
6654         * calls.c (precompute_arguments): Update comment.
6655
6656 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
6657
6658         * et-forest.c: Replace et_occurences with et_occurrences.
6659
6660 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
6661
6662         * cfgloop.h, loop-iv.c, loop-unswitch.c: Replace iv_analyse
6663         with iv_analyze.
6664
6665 2004-02-23  Kelley Cook  <kcook@gcc.gnu.org>
6666
6667         * config/i386/i386.c: Rename pni to sse3.
6668         * config/i386/i386.h: Likewise.
6669         * config/i386/i386.md: Likewise.
6670         * config/i386/pmmintrin.h: Likewise.
6671         * doc/extend.texi: Likewise.
6672         * doc/invoke.texi: Likewise.
6673
6674 2004-02-23  Zack Weinberg  <zack@codesourcery.com>
6675             Kazu Hirata  <kazu@cs.umass.edu>
6676
6677         Remove -fwritable-strings.
6678         * c-common.c (fix_string_type): Don't check
6679         flag_writable_strings.
6680         (fix_string_type): Likewise.
6681         * c-opts.c (set_std_c89): Don't initialize
6682         flag_writable_strings.
6683         (set_std_c99): Likewise.
6684         * common.opt (fwritable-strings): Remove.
6685         * flags.h: Remove the external declaration of
6686         flag_writable_strings.
6687         * opts.c (common_handle_option) <OPT_fwritable_strings>:
6688         Remove.
6689         * toplev.c (flag_writable_strings): Remove.
6690         (f_options): Remove an entry for writable-strings.
6691         * varasm.c (const_hash_1) <STRING_CST>: Don't check
6692         flag_writable_strings.
6693         (compare_constant) <STRING_CST>: Likewise.
6694         (build_constant_desc): Likewise.
6695         * config/darwin.c (machopic_select_section): Likewise.
6696         * config/arm/arm.c (AOF_ASSEMBLER): Likewise.
6697         * config/arm/pe.c (arm_pe_encode_section_info): Likewise.
6698         * config/iq2000/iq2000.c (iq2000_select_section): Likewise.
6699         * config/mips/mips.c (mips_select_section): Likewise.
6700         (mips_encode_section_info): Likewise.
6701         * config/pa/pa.c (pa_select_section): Likewise.
6702         * config/pa/pa.h (TEXT_SPACE_P): Likewise.
6703         * config/v850/v850.c (v850_select_section): Likewise.
6704         * doc/invoke.texi (-fwritable-strings): Remove.
6705         (-fno-const-strings): Don't mention -fwritable-strings.
6706         * doc/trouble.texi: Don't mention -fwritable-strings.
6707
6708 2003-02-23  Nathanael Nerode  <neroden@gcc.gnu.org>
6709
6710         * doc/install.texi: Update for switch of boehm-gc to autoconf 2.57.
6711
6712 2004-02-23  Dale Johannesen  <dalej@apple.com>
6713
6714         * config/rs6000.md (movsf_hardfloat): Add POWER form of nop.
6715         (movdf_hardfloat64):  Ditto.
6716         (movdf_softfloat64):  Ditto.
6717
6718 2004-02-23  Fariborz Jahanian <fjahanian@apple.com>
6719         * config/rs6000/rs6000.c (function_arg): call to
6720         rs6000_mixed_function_arg for DFmode moved to allow
6721         normal DFmode incoming register assignment.
6722
6723 2004-02-23  Dale Johannesen  <dalej@apple.com>
6724
6725         * config/rs6000.md (movsf_hardfloat): Accept CTR-to-CTR copy.
6726         (movdf_hardfloat64):  Ditto.
6727
6728 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
6729
6730         * convert.c, gcov-io.c, libgcov.c, sched-int.h, sibcall.c,
6731         config/rs6000/linux.h, config/rs6000/rs6000-c.c: Update
6732         copyright.
6733
6734 2004-02-23  Andrew Pinski  <pinskia@physics.uc.edu>
6735
6736         PR c/14156
6737         * c-typeck.c (c_expand_return): Change check for VAR_DECL
6738         to use DECL_P instead.
6739
6740         * config/rs6000/linux.h (OS_MISSING_POWERPC64): Define.
6741         * config/rs6000/linux64.h (OS_MISSING_POWERPC64): Define.
6742
6743 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
6744
6745         * Makefile.in (opts.o): Depend on target.h.
6746         * opts.c (decode_options): Use targetm.default_short_enums
6747         instead of DEFAULT_SHORT_ENUMS.
6748         * system.h (DEFAULT_SHORT_ENUMS): Poison.
6749         * target-def.h (TARGET_DEFAULT_SHORT_ENUMS): New.
6750         (TARGET_INITIALIZER): Add TARGET_DEFAULT_SHORT_ENUMS.
6751         * target.h (gcc_target): Add default_short_enums.
6752         * config/cris/cris.h: Remove a comment about
6753         DEFAULT_SHORT_ENUMS.
6754         * config/ip2k/ip2k.h: Likewise.
6755         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Change to
6756         TARGET_DEFAULT_SHORT_ENUMS.  Update the description.
6757
6758 2004-02-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
6759             Falk Hueffner  <falk@debian.org>
6760
6761         PR c/14188
6762         * builtins.c (expand_builtin_va_arg): Emit an informative message
6763         if a trap is generated.
6764         * c-typeck.c (build_function_call): Likewise.
6765
6766 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
6767
6768         * gcov-io.c (gcov_open) [GCOV_LOCKED]: Use open + fdopen instead of
6769         fopen.
6770         * libgcov.c: Include sys/stat.h.
6771         * config/rs6000/linux.h (TARGET_HAS_F_SETLKW): Define.
6772         * config/rs6000/linux64.h (TARGET_HAS_F_SETLKW): Define.
6773         * config/sparc/linux.h (TARGET_HAS_F_SETLKW): Define.
6774         * config/sparc/linux64.h (TARGET_HAS_F_SETLKW): Define.
6775
6776 2004-02-22  Kazu Hirata  <kazu@cs.umass.edu>
6777
6778         * reorg.c: Remove comments about dead ports.
6779
6780 2004-02-22  Christopher Faylor  <cgf@redhat.com>
6781
6782         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): *Really* specify
6783         extra host object file when targetting cygwin rather than generic
6784         object files.
6785
6786 2004-02-22  Josef Zlomek  <zlomekj@suse.cz>
6787
6788         Merge from tree-ssa:
6789         2003-11-20  Richard Henderson  <rth@redhat.com>
6790
6791                 * tree-inline.c (insert_decl_map): New.
6792                 (remap_decl, remap_type, remap_block, copy_body_r,
6793                 initialize_inlined_parameters, declare_return_variable,
6794                 remap_save_expr): Use it.
6795
6796         * function.c (copy_body_r): Add mapping from id->ret_label to
6797         id->ret_label.  Revert test for ret_label.
6798
6799 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
6800
6801         * genoutput.c (process_template): Strip trailing whitespace in @
6802         templates and issue a warning if there was any.
6803
6804 2004-02-21  Christopher Faylor  <cgf@redhat.com>
6805
6806         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): Specify extra host
6807         object file when targetting cygwin.
6808         * config/i386/t-cygwin (EXTRA_GCC_OBJS): Remove definition since it is
6809         overridden by top-level Makefile.
6810
6811 2004-02-21  Roger Sayle  <roger@eyesopen.com>
6812
6813         * config/i386/i386.c (standard_80387_constant_p): Also prefer
6814         the x87's load constant instructions when optimizing for size.
6815
6816 2004-02-21  Kazu Hirata  <kazu@cs.umass.edu>
6817
6818         * combine.c (SHIFT_COUNT_TRUNCATED): Remove.
6819         * defaults.h (SHIFT_COUNT_TRUNCATED): Provide the default.
6820         * expmed.c: Assume SHIFT_COUNT_TRUNCATED is always defined.
6821         * fold-const.c: Likewise.
6822         * simplify-rtx.c: Likewise.
6823
6824 2004-02-21  Alan Modra  <amodra@bigpond.net.au>
6825
6826         * combine.c (can_combine_p): Don't ignore SETs marked with
6827         REG_EH_REGION notes.
6828         (try_combine): When attemting to fix unrecognized insns, don't
6829         split a PARALLEL that contains the original i2.
6830
6831 2004-02-21  Ziemowit Laski  <zlaski@apple.com>
6832
6833         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Refer to
6834         SUBTARGET_OPTION_TRANSLATE_TABLE for architecture-specific options.
6835         * config/i386/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): Define it.
6836         * config/rs6000/altivec.h: #error out if '-maltivec' not specified.
6837         (vector, pixel, bool): #define to __vector, __pixel and __bool.
6838         (__un_args_eq, __bin_args_eq, __tern_args_eq): Move to C-specific
6839         portion of header.
6840         (__altivec_link_error_invalid_argument): Remove prototype; will use
6841         __builtin_altivec_compiletime_error("vec_*") instead.
6842         (vec_*): Fix/complete set of available operation overloads given the
6843         existence of distinct 'vector bool ...' and 'vector pixel' types; tighten
6844         cv-correctness of pointer arguments; in C, always check for correct
6845         argument types before macro expansion.
6846         * config/rs6000/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): New macro
6847         defining Darwin/PowerPC-specific '-f[no-]altivec' and
6848         '-W[no-]altivec-long-deprecated' switches.
6849         * config/rs6000/rs6000-c (rs6000_cpu_cpp_builtins): Pre-define
6850         '__vector', '__pixel' and '__bool' macros using
6851         '__attribute__((altivec(...)))' types.
6852         * config/rs6000/rs6000.c (bool_char_type_node, bool_short_type_node,
6853         bool_int_type_node, pixel_type_node, bool_V16QI_type_node,
6854         bool_V8HI_type_node, bool_V4SI_type_node, pixel_V8HI_type_node):
6855         New type nodes.
6856         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): New, for
6857         handling '-W[no-]altivec-long-deprecated'.
6858         (rs6000_override_options): Handle '-W[no-]altivec-long-deprecated'.
6859         (rs6000_expand_binop_builtin, rs6000_expand_ternop_builtin,
6860         altivec_expand_dst_builtin): Remove casts from integer literals.
6861         (altivec_expand_builtin): Likewise; handle expansion of new
6862         '__builtin_altivec_compiletime_error' function.
6863         (rs6000_init_builtins): Initialize 'vector bool ...' and 'vector pixel'
6864         types, and make them distinct from other vector types; register
6865         '__builtin_altivec_compiletime_error' function.
6866         (print_operand): For 'P', print a full target register name instead of
6867         merely its number.
6868         (rs6000_attribute_table): Add "altivec" attribute.
6869         (rs6000_handle_altivec_attribute): New function.
6870         * config/rs6000/rs6000.h (TARGET_OPTIONS): Describe
6871         '-m[no-]-warn-altivec-long' (which '-W[no-]altivec-long-deprecated'
6872         maps to).
6873         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): Forward
6874         declare.
6875         (ALTIVEC_BUILTIN_COMPILETIME_ERROR): New built-in enumeration.
6876
6877 2004-02-20  James E Wilson  <wilson@specifixinc.com>
6878
6879         * config/ia64/ia64.md (shift_mix4left+1): Delete reload_completed
6880         check.
6881         (shift_mix4left+2): Delete redundant pattern.
6882
6883 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
6884
6885         * alias.c (OUTGOING_REGNO): Don't define the default.
6886         * builtins.c (OUTGOING_REGNO): Likewise.
6887         (INCOMING_REGNO): Likewise.
6888         (apply_args_register_offset): Always use OUTGOING_REGNO.
6889         * combine.c (OUTGOING_REGNO): Likewise.
6890         * sibcall.c (OUTGOING_REGNO): Likewise.
6891         * defaults.h (INCOMING_REGNO): Provide the default.
6892         (OUTGOING_REGNO): Likewise.
6893
6894 2004-02-21  Jan Hubicka  <jh@suse.cz>
6895
6896         * params.def (max-peeled-insns, max-completely-peeled-insns,
6897         max-once-peeled-insns): Set to 400.
6898
6899 2004-02-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6900
6901         PR c++/12007
6902         * dbxout.c (dbxout_parms): Check that DECL_RTL and DECL_INCOMING_RTL
6903         are set for parameters before outputing debugging information.
6904
6905 2004-02-20  Falk Hueffner  <falk@debian.org>
6906
6907         PR target/14201
6908         * config/alpha/alpha.md (*fix_truncsfsi_ieee): Fix typoed operand
6909         numbers.
6910
6911 2004-02-20  Per Bothner  <per@bothner.com>
6912
6913         * input.h:  Don't #include line-map.h.  It may cause link problems
6914         with undefined linemap_line_start when line-map.h is included but
6915         line-map.o is not linked, as currently happens with gengtype on
6916         compilers that don't support inline.
6917         * toplev.c:  So we do have to explicitly #include line-map.h here.
6918
6919 2004-02-20  Richard Henderson  <rth@redhat.com>
6920
6921         * doc/invoke.texi: Add -Wvariadic-macros.
6922
6923 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
6924
6925         * haifa-sched.c (sched_emit_insn): Remove.
6926         * sched-int.h: Remove the corresponding prototype.
6927
6928 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
6929
6930         Revert:
6931         2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
6932         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
6933         * system.h (DEFAULT_SHORT_ENUMS): Poison.
6934         * config/cris/cris.h: Remove a comment about
6935         DEFAULT_SHORT_ENUMS.
6936         * config/ip2k/ip2k.h: Likewise.
6937         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
6938
6939 2004-02-20  Mohan Embar  <gnustuff@thisiscool.com>
6940             Tom Tromey  <tromey@redhat.com>
6941
6942         * doc/install.texi: Moved --disable-libgcj and
6943         --with-system-zlib documentation to new section for
6944         Java-specific options.
6945         Added explicit Cross-Compiler-Specific Options subheading.
6946         Added section for Java-specific options.
6947
6948 2004-02-20  Matt Kraai  <kraai@alumni.cmu.edu>
6949
6950         * doc/install.texi (Building the Ada compiler): Remove
6951         example.
6952
6953 2004-02-20  James E Wilson  <wilson@specifixinc.com>
6954
6955         * toplev.c (dump_file_index, dump_file): Put ce3 before rnreg.
6956
6957 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
6958
6959         * gcc.c (process_command): Allow translation of the copyright
6960         symbol but not the rest of the copyright message.
6961         * gcov.c (print_version): Likewise.  Allow translation of the
6962         message about warranty.
6963
6964 2004-02-20  Hans-Peter Nilsson  <hp@axis.com>
6965
6966         * config/cris/cris.md ("*andsi_movu"): Correct parentheses in
6967         predicate.
6968         ("*andsi_clear"): Tweak constraints to not match postincrement.
6969         Adjust the predicate to exclude a volatile memory reference.
6970         ("*andhi_clear"): Ditto.  Rename from "*andhi_clear_signed".
6971         ("*andhi_clear_unsigned"): Remove, non-matching pattern.
6972
6973 2004-02-19  Matt Kraai  <kraai@alumni.cmu.edu>
6974
6975         * move-if-change: Remove.
6976         * Makefile.in (s-mlib, c-parse.y, s-check, s-gencheck)
6977         (s-specs, s-options, s-config, s-conditions, s-flags, s-codes)
6978         (s-constants, s-emit, s-recog, s-opinit, s-extract, s-peep)
6979         (s-attr, s-attrtab, s-output, s-genrtl, s-modes, s-preds)
6980         (s-gtyp-gen, s-iov): Use the top level move-if-change.
6981         * objc/Make-lang.in (objc/objc-parse.y): Likewise.
6982
6983 2004-02-19  James E Wilson  <wilson@specifixinc.com>
6984
6985         * config/i386/i386.md (doloop_end_internal): Use nonimmediate_operand
6986         for operand2.  Add condition that requires register_operand operand2
6987         before reload.
6988
6989 2004-02-19  Richard Sandiford  <rsandifo@redhat.com>
6990             Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
6991
6992         * config/mips/mips.c (mips_address_insns): Treat BLKmode specially.
6993         * config/mips/mips.md: Expand comment above unaligned loads and stores.
6994
6995 2004-02-19  Richard Henderson  <rth@redhat.com>
6996
6997         * Makefile.in (STRICT2_WARN): Add -Wno-variadic-macros.
6998         * tree.c (build0, build1, build2, build3, build4): Split out from...
6999         (build): ... here.  Call them.
7000         * tree.h (build, _buildN1, _buildN2, _buildC1, _buildC2): New.
7001
7002         * convert.c (convert_to_integer): Remove extra build argument.
7003         * tree-inline.c (expand_call_inline): Likewise.
7004
7005 2004-02-19  Richard Henderson  <rth@redhat.com>
7006
7007         * c-opts.c (warn_variadic_macros): New.
7008         (c_common_handle_option): Set it.
7009         (sanitize_cpp_opts): Copy it to cpp_opts.
7010         * c.opt (Wvariadic-macros): New.
7011         * cpplib.h (struct cpp_options): Add warn_variadic_macros.
7012         * cppinit.c (cpp_create_reader): Initialize it.
7013         * cppmacro.c (parse_params): Check it.
7014
7015 2004-02-19  David Daney <ddaney@avtrex.com>
7016
7017         PR preprocessor/14198
7018         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Add
7019         builtin_assert ("machine=mips")
7020
7021 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
7022
7023         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
7024         * system.h (DEFAULT_SHORT_ENUMS): Poison.
7025         * config/cris/cris.h: Remove a comment about
7026         DEFAULT_SHORT_ENUMS.
7027         * config/ip2k/ip2k.h: Likewise.
7028         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
7029
7030 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
7031
7032         * config/ia64/ia64.c (ia64_function_arg): In big-endian mode,
7033         when passing single SFmode quantities in general registers,
7034         put them in the high half.
7035
7036 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
7037
7038         * doc/md.texi (Standard Names): Document additional dependency on
7039         fix pattern.
7040
7041         * optabs.c (ftruncify): Remove.
7042         (expand_fix): Manually inline ftruncify above.
7043         (can_fix_p): Add FIXME note.
7044
7045 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
7046
7047         * config/rs6000/spe.md (spe_fixunssfsi2): Rename to
7048         spe_fixuns_truncsfsi2.
7049
7050         * config/rs6000/rs6000.md (fixunssfsi2): Rename to
7051         fixuns_truncsfsi2.
7052
7053 2004-02-19  Steve Ellcey  <sje@cup.hp.com>
7054
7055         * config/ia64/ia64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
7056         * testsuite/gcc.dg/20040219-1.c: New test.
7057
7058 2004-02-19  Ulrich Weigand  <uweigand@de.ibm.com>
7059
7060         * config/s390/s390.md ("*subdf3_cc", "*subdf3_cconly", "*subsf3_cc",
7061         "*subsf3_cconly"): Subtraction is not commutative.
7062
7063 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
7064
7065         * sdbout.c (preinit_symbols, sdbout_initialized): New statics.
7066         (sdbout_symbol): If called before sdbout_init, queue DECL for
7067         later and return.
7068         (sdbout_init): Set sdbout_initialized true, process decls
7069         queued earlier by sdbout_symbol.
7070         (sdbout_finish): Use size_t for index variable.
7071
7072 2004-02-19  Jeff Law  <law@redhat.com>
7073
7074         * fold-const.c (invert_truthvalue): Do not call invert_tree_comparison
7075         for unordered comparison codes.
7076
7077 2004-02-19  Ian Lance Taylor  <ian@wasabisystems.com>
7078
7079         * reload1.c (reload): Correct comment.
7080         (scan_paradoxical_subregs): Remove #if 0 and old comment.
7081         * doc/extend.texi (Local Reg Vars): Remove obsolete comment that
7082         register variables are not used by reload.
7083
7084 2004-02-19  Hans-Peter Nilsson  <hp@axis.com>
7085
7086         PR target/14209
7087         * config/cris/cris.md ("*andsi_movu", "*andhi_movu"): Tweak
7088         constraints to not match postincrement.  Adjust the predicate to
7089         exclude a volatile memory reference.
7090
7091 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
7092
7093         * config/mcore/mcore.h (ASM_OUTPUT_EXTERNAL): Remove.
7094
7095 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
7096
7097         * hooks.c (hook_void_tree_int): Remove.
7098         (hook_void_constcharptr): Likewise.
7099         (hook_int_void_0): Likewise.
7100         * hooks.h: Remove the prototypes for the above three
7101         functions.
7102         * targhooks.c (hook_bool_machine_mode_true): Remove.
7103         * targhooks.h: Remove the prototype for
7104         hook_bool_machine_mode_true.
7105
7106 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
7107
7108         * emit-rtl.c (subreg_realpart_p): Remove.
7109         (reorder_insns_with_line_notes): Likewise.
7110         (end_full_sequence): Likewise.
7111         * rtl.h: Remove the prototype for the above functions.
7112
7113 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
7114
7115         * config/arc/arc.h, config/arm/arm.h, config/frv/frv.h,
7116         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
7117         config/iq2000/iq2000.h, config/m32r/m32r.h,
7118         config/pdp11/pdp11.h, config/sparc/sparc.h,
7119         config/xtensa/xtensa.h: Remove commented-out or useless
7120         definitions of CASE_VECTOR_PC_RELATIVE.
7121
7122 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
7123
7124         * loop.c (all_sets_invariant_p): Remove.
7125
7126 2004-02-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
7127
7128         PR target/12916
7129         * config/sparc/sparc.h (NPARM_REGS): Delete.
7130         (BASE_RETURN_VALUE_REG): Likewise.
7131         (BASE_OUTGOING_VALUE_REG): Likewise.
7132         (BASE_PASSING_ARG_REG): Likewise.
7133         (BASE_INCOMING_ARG_REG): Likewise.
7134         * config/sparc/sparc.c (sparc_strict_argument_naming): Test
7135         TARGET_ARCH64, not TARGET_V9.
7136         (function_arg_slotno): Dispatch based on the mode class.
7137         Handle vector modes like floating-point modes.
7138         (function_arg_record_value_1): Handle vector types like
7139         floating-point types.
7140         (function_arg_record_value_2): Likewise.
7141         Calculate regno after mode transformation.
7142         (function_arg): Handle vector modes like floating-point modes.
7143         (function_arg_partial_nregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX.
7144         If ARCH64, do not recheck alignment.
7145         (function_arg_pass_by_reference): Reorder the conditions.
7146         (sparc_return_in_memory): Move after function_arg_padding.
7147         Implement calling conventions for vector modes.
7148         (sparc_struct_value_rtx): Move after sparc_return_in_memory.
7149         (function_value): Move scope of 'regbase'.
7150         Implement calling conventions for vector modes.
7151         (sparc_builtin_saveregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX
7152         and BASE_INCOMING_ARG_REG by SPARC_INCOMING_INT_ARG_FIRST.
7153         (sparc_va_arg): Use function_arg_pass_by_reference to test whether
7154         the argument is passed by reference.
7155         (sparc_type_code): Handle vector types.
7156
7157 2004-02-19  Alan Modra  <amodra@bigpond.net.au>
7158
7159         * function.c (assign_parms): When building decl_rtl for
7160         SPLIT_COMPLEX_ARGS, ensure inner modes of concat match outer.
7161
7162 2004-02-19  Olivier Hainque  <hainque@act-europe.fr>
7163
7164         * expr.c (is_aligning_offset): Check if we are aligning the
7165         expressions's address over BIGGEST_ALIGNMENT in bytes, not
7166         in bits.
7167
7168 2003-02-18  Matt Austern  <austern@apple.com>
7169
7170         * gcc.c (LIBGCC_SPEC): If REAL_LIBGCC_SPEC is defined, and
7171         LIBGCC_SPEC isn't, set LIBGCC_SPEC to REAL_LIBGCC_SPEC.
7172         (init_gcc_spec): Don't define or call if REAL_LIBGCC_SPEC is
7173         defined.  Instead use REAL_LIBGCC_SPEC, unmodifed, as the libgcc
7174         spec string.
7175         * doc/tm.texi (REAL_LIBGCC_SPEC): Document.
7176
7177 2004-02-18  Zack Weinberg  <zack@codesourcery.com>
7178
7179         * dwarf2out.c (loclabel_num): Move outside #ifdef
7180         DWARF2_DEBUGGING_INFO and mark with GTY(()).
7181         * config/ia64/ia64.c (struct extern_func_list,extern_func_head):
7182         Mark with GTY(()).
7183         (ia64_hpux_add_extern_decl): Save the decl, not the name string.
7184         Allocate memory with ggc_alloc.  No need to copy anything.
7185         (ia64_hpux_file_end): Update to match.
7186
7187 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
7188
7189         * config/i386/i386.c (override_options): Don't imply 3DNow! for -m64
7190         by default.
7191
7192 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
7193
7194         * config/s390/s390.md ("divmodtidi3"): Use canonical RTL.
7195         ("divmodtisi3"): Likewise.
7196         ("udivmoddi4", "udivmodtidi3"): Likewise.
7197         ("divmodsi4", "divmoddisi3"): Likewise.
7198         ("udivmodsi4", "udivmoddisi3"): Likewise.
7199         ("udivsi3", "umodsi3"): Likewise.
7200
7201 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
7202
7203         * config/s390/s390.c (s390_mainpool_start): Delete the main pool
7204         placeholder insn when chunkifying the pool.
7205
7206 2004-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7207
7208         * pa.h (PIC_OFFSET_TABLE_REGNUM): Define to INVALID_REGNUM when not
7209         generating PIC code.
7210
7211 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
7212
7213         * config/h8300/h8300-protos.h: Add a prototype for
7214         h8300_expand_branch.
7215         * config/h8300/h8300.c (h8300_expand_branch): New.
7216         * config/h8300/h8300.md (ble, bleu, bge, bgeu, blt, bltu, bgt,
7217         bgtu, beq, bne): Call h8300_expand_branch().
7218
7219 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
7220
7221         * config/h8300/h8300-protos.h: Add prototypes for
7222         h8300_hard_regno_nregs and h8300_hard_regno_mode_ok.
7223         * config/h8300/h8300.c (h8300_hard_regno_nregs): New.
7224         (h8300_hard_regno_mode_ok): Likewise.
7225         * config/h8300/h8300.h (HARD_REGNO_NREGS): Call
7226         h8300_hard_regno_nregs().
7227         (HARD_REGNO_MODE_OK): Call h8300_hard_regno_mode_ok().
7228
7229 2004-02-18  Per Bothner  <per@bothner.com>
7230
7231         * cpphash.h (struct cpp_buffer):  Restore return_at_eof field.  This
7232         partly reverts my 2003-10-01 change, because we're back to logically
7233         including <command line> inside the main line.
7234         * cpplex.c (_cpp_get_fresh_line):  Check return_at_eof field.
7235         * cppmacro.c (cpp_scan_nooutput):  Set return_at_eof of current buffer.
7236         Fixes PR preprocessor/14103.
7237
7238         * cppfiles.c (_cpp_stack_include):  When appropriate decrement
7239         line_table's highest_location, fixing LAST_SOURCE_LINE_LOCATION.
7240         (cpp_push_include):  Don't need to increment pfile's line field.
7241         * line-map.h (LAST_SOURCE_LINE_LOCATION):  Only decrement by 1.
7242
7243         * c-ppoutput.c (print struct):  New first_time field.
7244         (init_pp_output):  Set print.first_time.
7245         (pp_file_change):  Use print.first_time, rather than MAIN_FILE_P,
7246         which is set also for (say) <command line>.  Clear print.first_time.
7247
7248         * cppfiles.c (struct _cpp_file):  Comment and type for pch field
7249         does not match the code, so fix both.
7250         (should_stack_file):  Inline include_pch_p function.
7251         (include_pch_p):  Remove pointless function.
7252
7253         * cpphash.h (struct cpp_buffer):  Remove unused search_cached field.
7254
7255 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
7256
7257         * config/h8300/h8300.md (four define_peephole2's): Use
7258         h8300_regs_ok_for_stm().
7259
7260 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
7261
7262         * config/h8300/h8300-protos.h: Update the prototype for
7263         expand_a_rotate().
7264         * config/h8300/h8300.c (expand_a_rotate): Remove the first
7265         argument.
7266         * config/h8300/h8300.md: Update all callers.
7267
7268 2004-02-18  Jan Hubicka  <jh@suse.cz>
7269
7270         * simplify-rtx.c (simplify_unary_operation): Deal with logicals on
7271         floats.
7272         (simplify_binary_operation): Deal with logicals on floats.
7273
7274         * i386.md (SSE fabs splitters): Emit new patterns.
7275         (SSE cmov splitters): Likewise.
7276         (sse_andv4sf3, sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3
7277         (sse_andv2df3, sse_nandv2df3, sse_iorv2df3, sse_xorv2df3): Do not use
7278         subregs.
7279         (sse_andsf3, sse_nandsf3, sse_xorsf3): Kill.
7280         (sse_anddf3, sse_nanddf3, sse_xordf3): Kill.
7281
7282 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
7283
7284         * config/h8300/h8300.c (expand_a_rotate): Don't generate insns
7285         by hand.
7286         (output_a_rotate): Tweak a comment.
7287         * config/h8300/h8300.md (*rotlqi3_1): Change to rotlqi3_1.
7288         (*rotlhi3_1): Change to rotlhi3_1.
7289         (*rotlsi3_1): Change to rotlsi3_1.
7290
7291 2004-02-18  Richard Earnshaw  <rearnsha@arm.com>
7292
7293         PR target/13866
7294         * arm.c (load_multiple_operation): Don't insist that the source reg
7295         of a post-increment component is the same as the destination.
7296         (store_multiple_operation): Likewise.
7297
7298 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
7299
7300         * config/h8300/h8300.md: Move movsf patterns into one section
7301         of the file.
7302
7303 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
7304
7305         * cfgloop.h, cfgloopanal.c, cpplex.c, except.h, loop-init.c,
7306         loop-unroll.c, scan-decls.c, scan.h, stor-layout.c,
7307         xcoffout.c, xcoffout.h, config/arm/mmintrin.h,
7308         config/mips/linux64.h, config/pa/pa-64.h,
7309         config/rs6000/aix51.h, config/rs6000/aix52.h,
7310         config/rs6000/spe.md, config/sparc/linux.h,
7311         config/sparc/linux64.h: Update copyright.
7312
7313 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
7314
7315         * config/h8300/h8300.md: Move push patterns into one
7316         section of the file.
7317
7318 2004-02-18  Mark Mitchell <mark@codesourcery.com>
7319
7320         PR c++/11326
7321         * config/ia64/ia64.c (ia64_struct_value_rtx): Cope with NULL
7322         fntype.
7323
7324 2004-02-18  Paul Brook  <paul@codesourcery.com>
7325
7326         * rtlanal.c (rtx_varies_p): Return 0 for NULL_RTX
7327
7328 2004-02-18  Paul Brook  <paul@codesourcery.com>
7329
7330         PR debug/12934
7331         * dwarf2out.c (loc_descriptor_from_tree): Handle
7332         EXPR_WITH_FILE_LOCATION.
7333
7334 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
7335
7336         * config/i386/i386.md (zero_extendqidi2, zero_extendqidi2,
7337         testdi_1_rex64, anddi_2, xordi_1_rex64, xordi_2_rex64): Remove
7338         trailing whitespace from instructions.
7339
7340 2004-02-17  Geoffrey Keating  <geoffk@apple.com>
7341
7342         * configure.ac: When generating auto-build.h, pass
7343         --enable-languages to the sub-configure.
7344         Put quotes around ${program_transform_name} when generating
7345         name of as, ld, nm, objdump.
7346         * configure: Regenerate.
7347
7348 2004-02-17  Matt Kraai  <kraai@alumni.cmu.edu>
7349
7350         * Makefile.in (s-check, s-config, s-conditions, s-flags)
7351         (s-codes, s-constants, s-emit, s-recog, s-opinit, s-extract)
7352         (s-peep, s-attr, s-attrtab, s-output, s-genrtl, s-modes)
7353         (s-preds, s-iov): Do not depend on move-if-change.
7354
7355 2004-02-17  James E Wilson  <wilson@specifixinc.com>
7356
7357         * caller-save.c (insert_restore): Pass mem through copy_rtx.
7358         (insert_save): Likewise.
7359
7360 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
7361
7362         * config/h8300/h8300.c (h8300_emit_stack_adjustment): Fix a
7363         warning.
7364
7365 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
7366
7367         * config/h8300/h8300.md (*one_complsi2_h8300): Change to
7368         *one_cmplsi2_h8300.
7369         (*one_complsi2_h8300hs): Change to *one_cmplsi2_h8300hs.
7370
7371 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
7372
7373         * config/h8300/h8300-protos.h: Update the prototype of
7374         fix_bit_operand().
7375         * config/h8300/h8300.c (fix_bit_operand): Remove the second
7376         argument "what".
7377         * config/h8300/h8300.md: Update all callers.
7378
7379 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
7380
7381         * config/h8300/h8300.c (fix_bit_operand): Change the name of
7382         the last argument to "code" from "type".
7383
7384 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
7385
7386         * config/h8300/h8300.c: Remove an extern declaration of
7387         rtx_equal_function_value_matters.
7388
7389 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
7390
7391         * config/h8300/h8300.c (fix_bit_operand): Don't generate insns
7392         by hand.
7393         * config/h8300/h8300.md (*andqi3_1): Change to andqi3_1.
7394         (*iorqi3_1): Change to iorqi3_1.
7395         (*xorqi3_1): Change to xorqi3_1.
7396
7397 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
7398
7399         * c-common.c, cfghooks.c, rtlanal.c, varasm.c: Fix comment
7400         typos.
7401
7402 2004-02-17  Jan Hubicka  <jh@suse.cz>
7403
7404         * i386.c (x86_prologue_using_move, x86_epilogue_using_move): Disable for P4.
7405
7406 2004-02-18  Alan Modra  <amodra@bigpond.net.au>
7407
7408         PR optimization/14119
7409         * combine.c (try_combine): When attemting to fix unrecognized insns,
7410         don't delete SETs marked with REG_EH_REGION notes.
7411
7412 2004-02-17  Ulrich Weigand  <uweigand@de.ibm.com>
7413
7414         * combine.c (simplify_if_then_else): Do not replace
7415         (if_then_else (ne reg 0) (0) (const_int)) by (reg) if the
7416         modes differ.
7417
7418 2004-02017  Steven Bosscher  <stevenb@suse.de>
7419
7420         * (c-decl.c, c-semantics.c, calls.c, cgraph.c, cgraphunit.c,
7421         function.c, integrate.c, print-tree.c, toplev.c, tree-optimize.c,
7422         tree.h): Replace DECL_SAVED_INSNS with DECL_STRUCT_FUNCTION.
7423         * ada/utils.c: Likewise.
7424         * cp/decl.c: Likewise.
7425         * f/com.c: Likewise.
7426         * java/class.c: Likewise.
7427
7428 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
7429
7430         * config/h8300/h8300.md: Fix comment typos.
7431
7432 2004-02-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7433
7434         * config/mips/t-iris6gld: Renamed to ...
7435         * config/mips/t-irix-gld: ... this.
7436         * config.gcc (mips-sgi-irix6*): Reflect this
7437         (mips-sgi-irix5*): Use it with GNU ld.
7438
7439         * config/mips/irix6-crti.asm, config/mips/irix6-crtn.asm: Renamed
7440         to ...
7441         * config/mips/irix-crti.asm, config/mips/irix-crtn.asm: ... this.
7442         * config/mips/t-irix-gld: Reflect this.
7443         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
7444
7445         * config/mips/iris5gld.h: New file.
7446         * config.gcc (mips-sgi-irix5*): Use it with GNU ld.
7447         Only use collect2 without gas.
7448
7449         * config/mips/iris6.h (IRIX6_STARTFILE_SPEC, IRIX6_ENDFILE_SPEC):
7450         Renamed to IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
7451         (STARTFILE_SPEC, ENDFILE_SPEC, SUBTARGET_EXTRA_SPECS): Reflect this.
7452         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
7453
7454         * config/mips/iris6.h (SUBTARGET_EXTRA_SPECS): Moved ...
7455         * config/mips/iris5.h: ... here.
7456
7457         * config/mips/iris5.h (STARTFILE_SPEC, ENDFILE_SPEC): Renamed to
7458         IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
7459         (STARTFILE_SPEC, ENDFILE_SPEC): Define.
7460
7461         * config/mips/iris5gas.h (STARTFILE_SPEC, ENDFILE_SPEC): Simplify
7462         using irix_startfile_spec, irix_endfile_spec.
7463
7464 2004-02-16  Gunther Nikl  <gni@gecko.de>
7465
7466         * config/m68k/m68k.c: Remove obsolete support for HPUX_ASM.
7467
7468 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
7469
7470         * config/h8300/h8300.c (h8300_expand_prologue): Don't generate
7471         insns by hand.
7472
7473 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7474
7475         * cfghooks.c (split_edge): Speed up updating of dominators.
7476
7477 2004-02-17  Mark Mitchell  <mark@codesourcery.com>
7478
7479         PR c++/11326
7480         * c-common.c (flag_abi_version): Remove.
7481         * c-common.h (flag_abi_version): Likewise.
7482         * c-opts.c (c_common_handle_option): Remove OPT_fabi_version case.
7483         * c.opt (fabi-version): Remove.
7484         * calls.c (expand_call): Always pass a function type to
7485         struct_value_rtx.  Use convert_memory_address.
7486         * common.opt (fabi-version): Add it.
7487         * flags.h (flag_abi_version): Likewise.
7488         (abi_version_at_least): New macro.
7489         * opts.c (common_handle_option): Add OPT_fabi_version.
7490         * toplev.c (flag_abi_version): Define it.
7491         * config/ia64/ia64.c (ia64_struct_retval_addr_is_first_parm_p):
7492         New function.
7493         (ia64_output_mi_thunk): Use it.
7494         (ia64_struct_value_rtx): Likewise.
7495
7496 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
7497
7498         * config/h8300/h8300.c (h8300_emit_stack_adjustment):
7499         Don't generate insns by hand.
7500
7501 2004-02-17  Andrew Pinski  <pinskia@physics.uc.edu>
7502
7503         PR c++/14178
7504         * doc/invoke.texi (fabi-version): The default is 2 now.
7505
7506 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7507
7508         * loop-iv.c: New file.
7509         * Makefile.in (loop-iv.o): New.
7510         * basic_block.h (FOR_BB_INSNS, FOR_BB_INSNS_REVERSE): New macros.
7511         * cfgloop.c (fill_sons_in_loop, get_loop_body_in_dom_order,
7512         num_loop_branches): New functions.
7513         * cfgloop.h (get_loop_body_in_dom_order, num_loop_branches,
7514         iv_analysis_loop_init, iv_get_reaching_def, iv_analyse, get_iv_value,
7515         find_simple_exit, iv_number_of_iterations, iv_analysis_done,
7516         get_simple_loop_desc, free_simple_loop_desc): Declare.
7517         (simple_loop_desc): New inline function.
7518         (struct rtx_iv, struct niter_desc): New.
7519         * cfgloopmanip.c (loopify): Specify semantics more precisely.
7520         * expr.c (force_operand): Handle subregs of expressions created by
7521         loop unroller.
7522         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Move
7523         parts of the initialization to toplev.c
7524         * loop-unroll.c (loop_exit_at_end_p): New.
7525         (unroll_and_peel_loops): Call iv_analysis_done.
7526         (decide_peel_once_rolling, decide_peel_completely,
7527         decide_unroll_stupid, decide_unroll_constant_iterations,
7528         decide_unroll_runtime_iterations, decide_peel_simple,
7529         peel_loop_simple, unroll_loop_stupid, unroll_loop_constant_iterations,
7530         unroll_loop_runtime_iterations): Use new simple loop analysis.
7531         * loop-unswitch.c (compare_and_jump_seq): New.
7532         (may_unswitch_on_p): Renamed to ...
7533         (may_unswitch_on): Use new iv analysis.
7534         (reversed_condition): Export.
7535         (unswitch_single_loop, unswitch_loop): Use new iv analysis.
7536         * predict.c (estimate_probability): Use new simple loop analysis.
7537         * rtl.h (get_mode_bounds, reversed_condition,compare_and_jump_seq,
7538         canon_condition, simplify_using_condition): Declare.
7539         * stor-layout.c (get_mode_bounds): New.
7540         * toplev.c (rest_of_handle_loop2): Some parts of
7541         initialization/finalization moved here from loop-init.c.
7542
7543 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
7544
7545         * config/h8300/h8300.h (FIXED_REGISTERS): Add the soft frame
7546         pointer.
7547         (CALL_USED_REGISTERS): Likewise.
7548         (REG_ALLOC_ORDER): Likewise.
7549         (REG_CLASS) <GENERAL_REGS>: Likewise.
7550
7551 2004-02-16  Geoffrey Keating  <geoffk@apple.com>
7552
7553         * doc/md.texi (Insn Canonicalizations): Document left-chaining
7554         in associative operators.
7555         * rtlanal.c (commutative_operand_precedence): Create some new
7556         variables.  Prefer a commutative operand on the left, then
7557         binary expressions, then NEG and NOT.
7558
7559 2004-02-16  Matthias Klose  <doko@debian.org>
7560
7561         * config/t-slibgcc-elf-ver: Define SHLIB_NAME and SHLIB_SONAME
7562         in terms of SHLIB_SOVERSION.
7563         * config/m68k/t-slibgcc-elf-ver: New file.
7564         * config/pa/t-slibgcc-elf-ver: New file.
7565         * config.gcc (m68k-linux, parisc-linux): Use them when not
7566         sjlj exceptions are not configured.
7567
7568 2004-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
7569
7570         * config/sparc/sparc.c (get_pc_symbol_name): Mark with GTY(()).
7571
7572 2004-02-16  Zack Weinberg  <zack@codesourcery.com>
7573
7574         * sdbout.c (sdb_debug_hooks): Correct the type_decl entry.
7575
7576 2004-02-16  Joseph S. Myers  <jsm@polyomino.org.uk>
7577
7578         * doc/sourcebuild.texi: Mention backends.html.
7579
7580 2004-02-16  Kazu Hirata  <kazu@cs.umass.edu>
7581
7582         * c-decl.c, c-ppoutput.c, cpphash.h, cpplib.h, dbxout.c,
7583         line-map.c, line-map.h, var-tracking.c: Fix comment
7584         formatting.
7585
7586 2004-02-16  Richard Henderson  <rth@redhat.com>
7587
7588         * cse.c (cse_insn): Don't lose REG_NON_LOCAL_GOTO note.
7589
7590         * fold-const.c (operand_equal_p): Fix VECTOR_CST comparison.
7591
7592 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
7593
7594         * config/h8300/h8300.md: Remove unnecessary parallels from
7595         all define_insn and define_split patterns.
7596
7597 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
7598
7599         * config/h8300/h8300.md: Remove explicit (set_attr "cc"
7600         "clobber").
7601
7602 2004-02-15  Bernardo Innocenti  <bernie@develer.com>
7603
7604         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Restore support for
7605         '%#'.
7606
7607 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
7608
7609         * config/ia64/ia64.c, config/mips/mips.c,
7610         config/mmix/mmix-modes.def: Fix comment typos.
7611
7612 2004-02-15  Roger Sayle  <roger@eyesopen.com>
7613
7614         * c-common.h (GET_DIRECTIVE_LINE): Remove unused macro.
7615         (get_directive_line): Remove unused function prototype.
7616
7617 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
7618
7619         * tree-inline.c (copy_body_r): Do not replace ret_label.
7620
7621 2004-02-14  Jan Hubicka  <jh@suse.cz>
7622
7623         * i386.c (x86_four_jump_limit): New variable.
7624         (k8_avoid_jump_misspredicts): Rename to ...
7625         (ix86_avoid_jump_misspredicts): .. this one.
7626         (ix86_pad_returns): Break out from ...
7627         (ix86_reorg): ... this one; do ix86_avoid_jump_misspredicts when asked
7628         to.
7629         * i386.h (TARGET_FOUR_JUMP_LIMIT): New macro.
7630
7631 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
7632
7633         * emit-rtl.c (set_decl_incoming_rtl): Check whether the 0th element of
7634         PARALLEL is NULL.
7635
7636 2004-02-14  Per Bothner  <per@bothner.com>
7637
7638         * fix-header.c (line_table):  Move local variable in main to global.
7639         * scan.h (line_table):  Use it.
7640         * scan-decls.c (scan_decls):  Need to call linemap_lookup on token's
7641         line (recently renamed to src_loc) before calling recognized_function.
7642
7643 2004-02-14  Matt Kraai  <kraai@alumni.cmu.edu>
7644
7645         * Makefile.in: Fix comment typos.
7646
7647 2004-02-14  Olivier Hainque  <hainque@act-europe.fr>
7648
7649         * loop.c (check_dbra_loop): Use gen_int_mode instead of GEN_INT
7650         for start_value when it is directly moved into reg, and factorize
7651         the retrieval of GET_MODE (reg).
7652
7653 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
7654
7655         * config/mips/mips-protos.h (mips_load_got_page): Delete.
7656         (mips_load_got_global): Delete.
7657         (mips_gotoff_page): Declare.
7658         * config/mips/mips.md (UNSPEC_LOAD_GOT): New constant.
7659         (*xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i): Build an
7660         UNSPEC_LOAD_GOT pattern rather than a MEM.
7661         (*load_got[sd]i): New patterns.
7662         * config/mips/mips.c (mips_got_alias_set, mips_load_got): Delete.
7663         (mips_load_got_page, mips_load_got_global): Delete.
7664         (mips_gotoff_page): New function.
7665         (override_options): Don't initialize mips_got_alias_set.
7666
7667 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
7668
7669         * config/mips/mips.h (MASK_DEBUG_[ABEFI], TARGET_DEBUG_[ABEFI]_MODE)
7670         (TARGET_MIPS4100, TARGET_MIPS4300, TARGET_MIPS4KC, TARGET_MIPS5KC)
7671         (TARGET_SB1, TUNE_SB1, TUNE_SR71K, BIGGEST_MAX_ARGS_IN_REGISTERS)
7672         (GO_PRINTF, GO_PRINTF2, GO_DEBUG_RTX, DFMODE_NAN, SFMODE_NAN): Delete.
7673         (TARGET_SWITCHES): Remove MASK_DEBUG_[ABEFI].
7674         * config/mips/mips.c: Fix some overly-long lines.
7675         (SINGLE_WORD_MODE_P, PIC_OFFSET_TABLE_MASK): Delete.
7676         (init_cumulative_args): Remove TARGET_DEBUG_E_MODE handling.
7677
7678 2004-02-13  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7679
7680         * configure.ac: Search for as, ld below libexec/gcc.
7681         * configure: Regenerate.
7682
7683 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
7684
7685         * config/arm/mmintrin.h (_mm_setwcx): Reverse arguments in call to
7686         __builtin_arm_setwcx ().
7687         * config/arm/arm.c (arm_expand_builtin): Generate operands
7688         correctly and reverse their order in call to gen_iwmmxt_tmcr ().
7689
7690 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
7691
7692         * config/arm/arm.c (bdesc_2arg): Correct builtin names "wmulsh"
7693         and "wmuluh" to "wmulsm" and "wmulum", respectively.
7694         * config/arm/arm.h (enum arm_builtins): Rename enumerators to
7695         ARM_BUILTIN_WMULSM and ARM_BUILTIN_WMULUM.
7696         * config/arm/mmintrin.h (_mm_mulhi_pi16): Update intrinsic call.
7697         (_mm_mulhi_pu16): Likewise.
7698
7699 2004-02-13  Zack Weinberg  <zack@codesourcery.com>
7700
7701         * xcoffout.c (xcoff_assign_fundamental_type_number): Check
7702         DECL_NAME != 0 before dereferencing.
7703
7704 2004-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
7705
7706         * config/s390/s390-protos.h (s390_output_symbolic_const): Remove.
7707         (s390_output_addr_const_extra): Declare.
7708         (s390_output_pool_entry): Remove FILE * argument.
7709         * config/s390/s390.c (s390_output_symbolic_const): Remove.
7710         (s390_output_addr_const_extra): New function.
7711         (print_operand_address): Call output_addr_const instead of
7712         s390_output_symbolic_const.
7713         (print_operand): Likewise.
7714         (s390_output_pool_entry): Use assemble_integer for symbolic constants.
7715         Remove FILE * argument.
7716         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Define.
7717         * config/s390/s390.md ("*pool_entry"): Adapt s390_output_pool_entry
7718         call.
7719
7720 2004-02-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7721
7722         * cfgloopanal.c (mark_irreducible_loops): Rewriten.
7723         (struct edge, struct vertex, struct graph): New.
7724         (dump_graph, new_graph, add_edge, dfs, check_irred, for_each_edge,
7725         free_graph): New functions.
7726
7727 2004-02-12  Chris Demetriou  <cgd@broadcom.com>
7728
7729         * config/mips/mips.md (casesi_internal, casesi_internal_di):
7730         Use ".set macro" to avoid warnings about multi-instruction
7731         macros, since they're intentional.
7732
7733 2004-02-12  Geoffrey Keating  <geoffk@apple.com>
7734
7735         * config/darwin.h: Add include guards.  Remove old, now incorrect,
7736         comment about STANDARD_EXEC_PREFIX.
7737
7738         * Makefile.in (install-man): Use $(CPP_INSTALL_NAME) and
7739         $(GCOV_INSTALL_NAME) to install manpages.  Remove generic rule
7740         for installing .1 manpages.  Add rules for installing cpp
7741         and gcov manpages under their installed names.
7742
7743 2004-02-12  Alexandre Oliva  <aoliva@redhat.com>
7744
7745         * configure.ac (gcc_cv_ld): Don't set to LD if target is not
7746         host, but try LD_FOR_TARGET first.
7747         * configure: Rebuilt.
7748
7749 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
7750
7751         * dbxout.c: Move declaration of dbxout_type_decl outside
7752         #ifdef DBX_DEBUGGING_INFO.
7753         * c-parse.in: Don't give the asmdef production a type.
7754
7755 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
7756
7757         * debug.h (struct gcc_debug_hooks): Add type_decl field.
7758         (debug_nothing_tree_int): Prototype.
7759         (dwarf_debug_hooks): Delete, unused.
7760         * debug.c (do_nothing_debug_hooks): Update.
7761         (debug_nothing_tree_int): New function.
7762         * langhooks.h (struct lang_hooks_for_decls):
7763         Remove builtin_type_decls field.
7764         * langhooks-def.h (LANG_HOOKS_BUILTIN_TYPE_DECLS): Delete.
7765         (LANG_HOOKS_DECLS): Update.
7766         * toplev.c (rest_of_decl_compilation, rest_of_type_compilation):
7767         Use debug_hooks->type_decl.
7768         * dbxout.c (preinit_symbols): New static.
7769         (dbx_debug_hooks, xcoff_debug_hooks): Update.
7770         (dbxout_init): Don't call DBX_OUTPUT_STANDARD_TYPES or
7771         lang_hooks.decls.builtin_type_decls.  Do scan preinit_symbols
7772         for symbols to output.
7773         (dbxout_type_decl): New function.
7774         (dbxout_symbol): If called before dbxout_init has run, queue
7775         the symbol for later.  Apply DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER
7776         to TYPE_DECLs before emitting them.
7777         * xcoffout.c (assign_type_number): Delete.
7778         (xcoff_type_numbers): New static table.
7779         (xcoff_assign_fundamental_type_number): New function.
7780         * xcoffout.h: Define DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER, not
7781         DBX_OUTPUT_STANDARD_TYPES.  Remove unnecessary #ifdefs.
7782         * sdbout.c: Include varray.h.
7783         (deferred_global_decls): New static.
7784         (sdb_debug_hooks): Update.
7785         (sdbout_global_decl): If we can't emit something right now,
7786         remember it in deferred_global_decls.
7787         (sdbout_finish): Just scan deferred_global_decls; don't call getdecls.
7788         (sdbout_init): Initialize deferred_global_decls.
7789         * Makefile.in: Update dependencies of sdbout.o.
7790         * dwarf2out.c (dwarf2out_type_decl): New function.
7791         (dwarf2_debug_hooks): Update.
7792         * vmsdbgout.c (vmsdbg_debug_hooks): Update.
7793         * c-decl.c (getdecls): Just return 0.
7794         (check_for_loop_decls): Don't use getdecls.
7795         (record_builtin_type): Call debug_hooks->type_decl on the TYPE_DECL.
7796         * c-objc-common.c (c_objc_common_finish_file): Don't use getdecls.
7797
7798 2004-02-12  Ulrich Weigand  <uweigand@de.ibm.com>
7799
7800         * config/s390/s390.c (s390_sched_reorder2): Remove.
7801         (TARGET_SCHED_REORDER2): Do not redefine.
7802
7803 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
7804
7805         * c-parse.in (maybe_type_qual): Delete.
7806         (maybe_volatile, simple_asm_expr, asmdef, asm_stmt)
7807         (asm_argument): New grammar rules.
7808         (extdef_1): Use asmdef.
7809         (maybeasm): Move down with other asm rules; use simple_asm_expr.
7810         (xexpr): Move up with other expression rules.
7811         (stmt): Use asm_stmt.
7812
7813         * c-typeck.c (build_asm_expr): New function - body mostly
7814         pulled from build_asm_stmt.
7815         (build_asm_stmt): Just handle tacking on the volatile qualifier.
7816         * c-tree.h (build_asm_expr, build_asm_stmt): Update prototypes.
7817
7818 2004-02-12  Richard Sandiford  <rsandifo@redhat.com>
7819
7820         PR bootstrap/13617
7821         * config/mips/mips-protos.h (mips_output_aligned_decl_common): Declare.
7822         (mips_declare_object): Make variadic.
7823         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Use
7824         mips_output_aligned_decl_common.
7825         * config/mips/mips.c (mips_output_aligned_decl_common): New function.
7826         (mips_declare_object): Make variadic.
7827
7828 2004-02-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7829
7830         * function.c (update_epilogue_consts): Teach about binary operations.
7831
7832         * emit-rtl.c (set_mem_attributes_minus_bitpos): Don't kill
7833         previous MEM_VOLATILE in REF.
7834         * function.c (fixup_var_refs): Save volatile_ok and set to 1.
7835         * expr.c (emit_block_move_via_movstr): Save and restore volatile_ok.
7836
7837 2004-02-12  Gunther Nikl  <gni@gecko.de>
7838
7839         * config.gcc: Restore support for m68k-openbsd.
7840
7841 2004-02-12  Jan Hubicka  <jh@suse.cz>
7842
7843         * tree-optimize.c (tree_rest_of_compilation): Do not release
7844         DECL_ARGUMENTS.
7845
7846 2004-02-11  Matt Kraai  <kraai@alumni.cmu.edu>
7847
7848         * doc/install.texi: Fix the spelling of "explicitly".
7849
7850 2004-02-11  Eric Christopher  <echristo@redhat.com>
7851
7852         * cppcharset.c (_cpp_interpret_string_notranslate): Rename and
7853         duplicate argument structure of cpp_interpret_string.
7854         * cpphash.h: Move prototype...
7855         * cpplib.h: Here.
7856         * cpplib.c: Fix calls to match new function signature.
7857
7858 2004-02-11  Joseph S. Myers  <jsm@polyomino.org.uk>
7859
7860         PR c/456
7861         * cppexp.c (num_binary_op): Don't allow comma operators in #if
7862         constant expressions at all outside C99 mode if pedantic.
7863
7864 2004-02-11  Uros Bizjak  <uros@kss-loka.si>
7865
7866         * optabs.h (enum optab_index): Add new OTI_log10 and OTI_log2.
7867         (log10_optab, log2_optab): Define corresponding macros.
7868         * optabs.c (init_optabs): Initialize log10_optab and log2_optab.
7869         * genopinit.c (optabs): Implement log10_optab and log2_optab
7870         using log10?f2 and log2?f2 patterns.
7871         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG10{,F,L}
7872         using log10_optab, and BUILT_IN_LOG2{,F,L} using log2_optab.
7873         (expand_builtin): Expand BUILT_IN_LOG10{,F,L} and BUILT_IN_LOG2{,F,L}
7874         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
7875
7876         * config/i386/i386.md (log10sf2, log10df2, log10xf2, log2sf2,
7877         log2df2, log2xf2): New patterns to implement log10, log10f, log10l,
7878         log2, log2f and log2l built-ins as inline x87 intrinsics.
7879
7880 2004-02-11  Richard Henderson  <rth@redhat.com>
7881
7882         PR target/1532
7883         * flow.c (insn_dead_p): A clobber of a dead hard register is a
7884         dead insn after reload.
7885
7886 2004-02-11  Ulrich Weigand  <uweigand@de.ibm.com>
7887
7888         * tree.h (frame_base_decl): Add GTY marker.
7889         * var-tracking.c (frame_base_decl): Likewise.
7890
7891 2004-02-11  Daniel Berlin  <dberlin@dberlin.org>
7892
7893         * dwarf2out.c (output_loc_list): Remove no longer necessary, and now
7894         incorrect, hunk.
7895         (add_location_or_const_value_attribute): Use text_section_label,
7896         not TEXT_SECTION_NAME.
7897
7898 2004-02-11  Per Bothner  <per@bothner.com>
7899
7900         Represent column numbers using line-map's source_location.
7901         The "next available source_location" is now managed internally by
7902         line-maps.c rather than by clients.
7903         * line-map.h (struct line_map):  New field column_bits.
7904         <from_line>:  Rename field to start_location.
7905         (struct line_maps):  New fields highest_location and max_column_hint.
7906         (linemap_check_files_exited):  New declaration.
7907         (linemap_line_start):  New declaration.
7908         (linemap_add):  Remove from_line parameter; use highest_location field.
7909         (SOURCE_LINE, LAST_SOURCE_LINE):  Modify to use column_bits.
7910         (SOURCE_COLUMN, LAST_SOURCE_LINE_LOCATION):  New macros.
7911         (CURRENT_LINE_MAP):  Remove macro.
7912         (linemap_position_for_column):  New inline function.
7913         * line-map.c (linemap_init):  Clear new fields.
7914         (linemap_check_files_exited):  New function, extracted from ...
7915         (linemap_free):  Use linemap_check_files_exited.
7916         (linemap_add):  Remove from_line parameter.  Various updates.
7917         (linemap_line_start):  New function.
7918         (linemap_lookeup):  Update for new field names.
7919         * cpphash.h (struct cpp_reader) <map>:  Field removed.  Because
7920         linemap_position_for_column may unpredictably change the current map,
7921         it is cleaner and simpler for us to not cache it in cpp_reader.
7922         (struct cpp_buffer):  New sysp field.
7923         Changed warned_cplusplus_comments and from_stage3 to bitfields.
7924         * cppinit.c (cpp_read_min_file):  pfile->map no longer exists.
7925         * cpplib.c (do_line, do_linemarker, _cpp_do_file_change):  Get
7926         current map using linemap_lookup.
7927         (do_linemarker):  Also set buffer's sysp field.
7928         (destringize_and_run):  No longer need to decrement current line.
7929         * cppfiles.c (_cpp_stack_file):  Set sysp from and in buffer.
7930         (search_path_head, open_file_failed):  Use buffer's sysp.
7931         (cpp_make_system_header):  Get current map using linemap_lookup.
7932         Also set buffer's sysp flag.
7933         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use linemap_lookup.
7934         * cpphash.h (CPP_INCREMENT_LINE):  New macro.
7935         (struct cpp_buffer):  Moved fields saved_cur, saved_rlimit to ...
7936         (struct cpp_reader):  ... and adding saved_line_base field.
7937         * cpptrad.c (_cpp_overlay_buffer, _cpp_remove_overlay):
7938         Update accordingly.  Don't adjust line.
7939         (_cpp_scan_out_logical_line):  Use CPP_INCREMENT_LINE.
7940         * cpphash.c (CPP_IN_SYSTEM_HEADER):  Replaced macro by ...
7941         (cpp_in_system_header):  ... new inline function, using buffer's sysp.
7942         * cpperror.c (_cpp_begin_message):  Update to use cpp_in_system_header.
7943         * cpplex.c (_cpp_lex_direct):  Likewise.
7944         * cppmacro.c (_cpp_builtin_macro_text):  Likewise.
7945         * cppmacro.c (_cpp_create_definition):  Use buffer's sysp field.
7946         * cpplib.h (struct cpp_token):  Rename line field to src_loc.
7947         Remove col field as it is now subsumed by src_loc.
7948         * cpperror.c:  Update various field, parameter, and macro names.
7949         (print_location):  If col==0, try SOURCE_COLUMN of line.
7950         (cpp_error):  Use cur_token's src_loc field, rather than line+col.
7951         * cpplib.c (do_diagnostic):  Token's src_loc fields replaces line+col.
7952         * cpplex.c (_cpp_process_line_notes, _cpp_lex_direct,
7953         _cpp_skip_block_comment):  Use CPP_INCREMENT_LINE.
7954         (_cpp_temp_token):  Replace cpp_token's line+col fields by src_loc.
7955         (_cpp_get_fresh_line):  Don't need to adjust line for missing newline.
7956         (_cpp_lex_direct):  Use linemap_position_for_column.
7957         * c-ppoutput.c (maybe_print_line, print_line):  Don't take map
7958         parameter.  Instead get it from the line_table global.  Adjust callers.
7959         (print):  Remove map field.  Replace line field to src_line.
7960         (init_pp_output, account_for_newlines, maybe_print_line):  Adjust.
7961         (cb_line_change):  Use SOURCE_COLUMN.  Minor optimizations.
7962         (pp_file_change):  Use MAIN_FILE_P since we cannot checked print.map.
7963         Use LAST_SOURCE_LINE_LOCATION to "catch up" after #include.
7964         * cpptrad.c (copy_comment):  Rename variable.
7965         * c-lex.c (map):  Remove static variable, for same reason we removed
7966         cpp_reader's map field.
7967         (cb_line_change, cb_def_pragma, cb_define, cb_undef):  Hence we need
7968         to call linemap_lookup.
7969         (cb_line_change):  Token's line field replaced by src_loc.
7970         (fe_file_change):  Use MAINFILE_P and LAST_SOURCE_LINE macros.
7971         Don't save new_map.
7972
7973         * cpphash.h, cpperror.c, cpplib.h:  Some renames of fileline to
7974         source_location.
7975
7976 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
7977
7978         * config/rs6000/altivec.md (*movv4si_internal): At least one
7979         operand must be register_operand.
7980         (*movv8hi_internal1): Likewise.
7981         (*movv16qi_internal1): Likewise.
7982         (*movv4sf_internal1): Likewise.
7983
7984 2004-02-10  Aldy Hernandez  <aldyh@redhat.com>
7985
7986         * config/rs6000/spe.md ("*movv2si_internal"): Check for register
7987         operand.
7988         (movv4hi_internal): Same.
7989         (movv2sf_internal): Same.
7990         (movv1di_internal): Same.
7991
7992 2004-02-11  Thiemo Seufer  <seufer@csv.ica.uni-stuttgart.de>
7993
7994         * config/mips/mips.h (TARGET_OLDABI): Define. Use TARGET_NEWABI and
7995         TARGET_OLDABI consistently.
7996         * config/mips/mips.c (function_arg,mips_setup_incoming_varargs,
7997         mips_va_arg,override_options,compute_frame_size,
7998         mips_initial_elimination_offset,mips16_fp_args,build_mips16_call_stub
7999         ,mips_return_in_memory,mips_strict_argument_naming): Use TARGET_NEWABI
8000         and TARGET_OLDABI consistently.
8001         * config/mips/mips.md (exception_receiver): Likewise.
8002         * config/mips/linux64.h: Likewise.
8003
8004 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
8005
8006         * gcc/config/rs6000/rs6000.c (rs6000_override_options)
8007         Set AltiVec ABI and vrsave as default for ppc64 linux.
8008         (init_cumulative_args): Post error, if try to return
8009         value in AltiVec register without enable AltiVec.
8010         (function_arg_advance): Ditto for passing arguments.
8011
8012 2004-02-11  Richard Sandiford  <rsandifo@redhat.com>
8013
8014         * emit-rtl.c (mark_label_nuses): Check that a LABEL_REF refers to
8015         a label before updating its usage count.
8016
8017 2004-02-10  Matt Kraai  <kraai@alumni.cmu.edu>
8018
8019         * doc/install.texi: Remove extra cd.
8020
8021 2004-02-10  Ziemowit Laski  <zlaski@apple.com>
8022
8023         * c-common.c (vector_size_helper): Remove; call
8024         reconstruct_complex_type() instead.
8025         * tree.c (reconstruct_complex_type): New function
8026         (formerly vector_size_helper() in c-common.c).
8027         (make_vector): Make externally visible.
8028         * tree.h (reconstruct_complex_type, make_vector): Add prototypes.
8029
8030 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
8031
8032         * config/h8300/h8300-protos.h: Add a prototype for
8033         h8300_regs_ok_for_stm.
8034         * config/h8300/h8300.c (h8300_regs_ok_for_stm): New.
8035         * config/h8300/h8300.md (stm_h8300s_2_advanced,
8036         stm_h8300s_2_normal, stm_h8300s_2, stm_h8300s_3_advanced,
8037         stm_h8300s_3_normal, stm_h8300s_3, stm_h8300s_4_advanced,
8038         stm_h8300s_4_normal, stm_h8300s_4, ldm_h8300s_2_advanced,
8039         ldm_h8300s_2_normal, ldm_h8300s_2, ldm_h8300s_3_advanced,
8040         ldm_h8300s_3_normal, ldm_h8300s_3, ldm_h8300s_4_advanced,
8041         ldm_h8300s_4_normal, ldm_h8300s_4): Use
8042         h8300_regs_ok_for_stm().
8043
8044 2004-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
8045
8046         PR c/14088
8047         * real.c (real_from_string): Look for 'X' as well as 'x' in
8048         hexfloat strings.
8049
8050 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
8051
8052         * config/h8300/h8300.md: Remove an incorrect comment about
8053         peephole2.  Add comments.
8054
8055 2004-02-10  Josef Zlomek  <zlomekj@suse.cz>
8056
8057         PR/14058
8058         * emit-rtl.c (set_decl_incoming_rtl): New.
8059         * tree.h (set_decl_incoming_rtl): New.
8060         * function.c (assign_parms): Use set_decl_incoming_rtl for setting
8061         DECL_INCOMING_RTL.
8062         * ada/misc.c (adjust_decl_rtl): Likewise.
8063
8064 2004-02-10  Per Bothner  <per@bothner.com>
8065
8066         * c-opts.c (c_common_post_options):   Don't emit working directory
8067         in cpp output if -P was specified.
8068
8069 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
8070
8071         PR c/14092
8072         * fold-const.c (fold) <NEGATE_EXPR>: Convert result of
8073         negate_expr back to the original type.
8074
8075 2004-02-10  Alan Modra  <amodra@bigpond.net.au>
8076
8077         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Don't
8078         bump retaddr here.
8079
8080 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
8081
8082         * rtl.h (schedule_insns, schedule_ebbs, fix_sched_param,
8083         gen_lowpart_SUBREG): Move under the file in which they
8084         are actually declared.
8085
8086 2004-02-10  Arnaud Charlet  <charlet@act-europe.fr>
8087
8088         * doc/sourcebuild.texi: Add libada documentation.
8089
8090         * doc/install.texi: Update documentation on Ada build, now
8091         that the GNAT lib and tools are built automatically.
8092
8093 2004-02-10  Richard Sandiford  <rsandifo@redhat.com>
8094
8095         * config/mips/mips.h (TARGET_GPWORD): Return false for TARGET_NEWABI
8096         && TARGET_IRIX.
8097
8098 2004-02-09  Ziemowit Laski  <zlaski@apple.com>
8099
8100         * objc/objc-act.c (get_super_receiver): Move '#ifdef OBJCPLUS'
8101         boundaries outside build_component_ref() call (a macro in ObjC++).
8102
8103 2004-02-09  Bob Wilson  <bob.wilson@acm.org>
8104
8105         * config/xtensa/xtensa-protos.h (xtensa_copy_incoming_a7): Update.
8106         (init_cumulative_args): Likewise.
8107         (a7_overlap_mentioned_p): Delete prototype.
8108         * config/xtensa/xtensa.c (struct machine_function): Replace
8109         incoming_a7_copied field with need_a7_copy and vararg_a7 flags.
8110         Add set_frame_ptr_insn field.
8111         (xtensa_emit_move_sequence): Update call to xtensa_copy_incoming_a7.
8112         (xtensa_copy_incoming_a7): Rewrite to check need_a7_copy flag and check
8113         if the operand is an argument in a7.  If so, copy a7 to a new pseudo
8114         at the function entry and replace the operand with the pseudo.
8115         (init_cumulative_args): Remove unused arguments.  Add new "incoming"
8116         argument and record this flag in CUMULATIVE_ARGS.
8117         (function_arg): Remove result_mode and special-case code to handle
8118         arguments in a7.  Instead, set need_a7_copy flag when there is an
8119         incoming argument in a7.
8120         (xtensa_expand_prologue): Remove code to search for set_frame_ptr insn
8121         and use the value recorded in cfun->machine->set_frame_ptr_insn.
8122         (xtensa_builtin_saveregs): Check for negative gp_left value.  Set
8123         need_a7_copy and vararg_a7 flags.  Use move_block_from_reg instead of
8124         special-case code.
8125         (a7_overlap_mentioned_p): Delete.
8126         * config/xtensa/xtensa.h (CUMULATIVE_ARGS): Add "incoming" flag.
8127         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Remove useless
8128         arguments to init_cumulative_args and pass "incoming" flag instead.
8129         (BLOCK_REG_PADDING): Delete.
8130         * config/xtensa/xtensa.md (movdi, movsf, movdf): Remove unnecessary
8131         checks for reload_in_progress and reload_completed.  Update calls to
8132         xtensa_copy_incoming_a7.
8133         (ashlsi3): Rename existing insn to ashlsi3_internal.  Add expander
8134         to call xtensa_copy_incoming_a7.
8135
8136 2004-02-09  DJ Delorie  <dj@redhat.com>
8137
8138         * config/i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): No
8139         longer modify standard_exec_prefix, standard_bindir_prefix, or
8140         standard_startfile_prefix.
8141
8142 2004-02-09  James E Wilson  <wilson@specifixinc.com>
8143
8144         PR c++/11295
8145         * c-common.c (c_expand_expr, case STMT_EXPR): Change expand_expr call
8146         to expand_expr_real call, and pass in alt_rtl as last argument.
8147
8148         PR libstdc++/5625
8149         * builtin-types.def (BT_WORD, BT_FN_WORD_PTR): New.
8150         * builtins.c (expand_builtin): Handle BUILT_IN_EXTEND_POINTER.
8151         * builtins.def (BUILT_IN_EXTEND_POINTER): New.
8152         * except.c (expand_builtin_extend_pointer): New.
8153         * except.h (expand_builtin_extend_pointer): Declare.
8154
8155 2004-02-09  David Edelsohn  <edelsohn@gnu.org>
8156
8157         * config/rs6000/rs6000.c (rs6000_emit_move): Remove splitting slow
8158         unaligned loads and stores.
8159
8160 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8161
8162         * config/mips/iris5.h (BSS_SECTION_ASM_OP): Define.
8163         * config/mips/iris6.h (BSS_SECTION_ASM_OP): Undef.
8164
8165         * config/mips/iris6.h (TARGET_ASM_NAMED_SECTION): Moved ...
8166         * config/mips/iris5.h: ... here.
8167         * config/mips/iris5gas.h (TARGET_ASM_NAMED_SECTION): Remove.
8168
8169         * config/mips/iris6.h (EXTRA_SECTION_FUNCTIONS): Move ...
8170         * config/mips/iris5.h: ... here.
8171
8172 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8173
8174         * configure.ac: Remove default executable files before AC_PROG_CC.
8175         * configure: Regenerate.
8176
8177 2004-02-09  Kazu Hirata  <kazu@cs.umass.edu>
8178
8179         PR target/13721
8180         * config/h8300/h8300.c (byte_reg): Call abort() if asked to
8181         print a operand other than a register.
8182
8183 2004-02-09  Roger Sayle  <roger@eyesopen.com>
8184
8185         * fold-const.c (fold) <NOP_EXPR>: Use the original type conversion
8186         tree code rather than call fold_convert, which doesn't specify a
8187         default floating point to integer conversion.
8188
8189 2004-02-08  Bernardo Innocenti  <bernie@develer.com>
8190
8191         * config/m68k/m68k.c, config/m68k/m68k.md (SGS, SGS_CMP_ORDER): Remove
8192         code to support SGS assembler.  Reformat adjacent code where possible.
8193         * config/m68k/m68k.c (switch_table_difference_label_flag): Remove
8194         definition.
8195         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Remove support
8196         for '%#'.
8197         * config/m68k/linux.h, config/m68k/m68k.c,
8198         * config/m68k/math-68881.h: Replace `%#' with `#' in inline asm
8199         macros and asm_printf() format strings.
8200         * config/m68k/m68kelf.h (ASM_OUTPUT_CASE_END): Remove macro definition.
8201         * config/m68k/linux.h: Update copyright.
8202         * config/m68k/linux.h, config/m68k/m68k.c: Remove traling whitespace.
8203
8204 2004-02-08  Andreas Schwab  <schwab@suse.de>
8205             Bernardo Innocenti  <bernie@develer.com>
8206
8207         * config/m68k/m68k.h (REGISTER_NAMES): Prefix each name with
8208         REGISTER_PREFIX.
8209         * (M68K_FP_REG_NAME): New macro to specify an alternate name for the
8210         frame pointer register, overridable by OS targets.
8211         * (M68K_REGNAME): Macro to obtain register name for asm output,
8212         eventually replacing %a6 with M68K_FP_REG_NAME.
8213         * config/m68k/coff.h (REGISTER_NAMES): Don't redefine.
8214         * config/m68k/linux.h (REGISTER_NAMES): Likewise.
8215         * config/m68k/m68kelf.h (REGISTER_NAMES): Likewise.
8216         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Likewise.
8217         * config/m68k/m68k.c: Use M68K_REGNAME(x) in place of reg_names[x].
8218
8219 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
8220
8221         * target-def.h (TARGET_STRUCT_VALUE_RTX): Define as
8222         hook_rtx_tree_int_null.
8223         * targhooks.c (default_struct_value_rtx): Remove.
8224         * targhooks.h: Remove the prototype for
8225         default_struct_value_rtx.
8226         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
8227         config/fr30/fr30.c, config/h8300/h8300.c, config/i386/i386.c,
8228         config/ip2k/ip2k.c, config/iq2000/iq2000.c,
8229         config/m32r/m32r.c, config/mcore/mcore.c, config/mips/mips.c,
8230         config/mn10300/mn10300.c, config/pdp11/pdp11.c,
8231         config/rs6000/rs6000.c, config/s390/s390.c,
8232         config/stormy16/stormy16.c, config/v850/v850.c,
8233         config/xtensa/xtensa.c (TARGET_STRUCT_VALUE_RTX): Remove.
8234         * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document the default.
8235
8236 2004-02-08  Joseph S. Myers  <jsm@polyomino.org.uk>
8237
8238         * README.Portability: Change "ISO C89" to "ISO C90".
8239         * c-parse.in (primary, initelt): Likewise.
8240
8241 2004-02-08  Richard Sandiford  <rsandifo@redhat.com>
8242
8243         * real.c (encode_ibm_extended): Normalize the input value before
8244         converting it to a double.  Handle the case where a normal value
8245         rounds to infinity.
8246
8247 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
8248
8249         * c-objc-common.c (c_cannot_inline_tree_fn): Fix a typo in a
8250         warning.
8251         * cse.c (preferrable): Change to preferable. Update all of its
8252         callers.
8253         * genautomata.c (ainsn): Change
8254         first_ainsn_with_given_equialence_num to
8255         first_ainsn_with_given_equivalence_num.  Update all of its
8256         references.
8257
8258 2004-02-08  Jan Hubicka  <jh@suse.cz>
8259
8260         * schedule-ebb.c (schedule_ebbs): Do not allocate reg life data.
8261
8262 2004-02-07  David Edelsohn  <edelsohn@gnu.org>
8263
8264         * function.c (assign_parms): Fix formatting.
8265
8266 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
8267
8268         * default.h (PROMOTE_PROTOTYPES): Remove.
8269         * system.h (PROMOTE_FUNCTION_RETURN, PROMOTE_PROTOTYPES,
8270         STRUCT_VALUE_REGNUM, SETUP_INCOMING_VARARGS,
8271         EXPAND_BUILTIN_SAVEREGS): Poison.
8272         * target-def.h (TARGET_PROMOTE_FUNCTION_RETURN): Define as
8273         hook_bool_tree_false.
8274         (TARGET_PROMOTE_PROTOTYPES): Likewise.
8275         * target.h: Replace SETUP_INCOMING_VARARGS with
8276         targetm.calls.setup_incoming_varargs().
8277         * targhooks.c (default_promote_function_return): Remove.
8278         (default_promote_prototypes): Likewise.
8279         (default_struct_value_rtx): Always abort().
8280         (default_expand_builtin_saveregs): Always print an error
8281         message.
8282         (default_setup_incoming_varargs): Do nothing.
8283         (default_pretend_outgoing_varargs_named): Don't depend on
8284         SETUP_INCOMING_VARARGS.
8285         * targhooks.h: Remove the prototype for
8286         default_promote_function_return and
8287         default_promote_prototypes.
8288
8289 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
8290
8291         * system.h (SHARED_SECTION_ASM_OP): Poison.
8292         * varasm.c (data_section): Don't use SHARED_SECTION_ASM_OP.
8293         * doc/tm.texi (SHARED_SECTION_ASM_OP): Remove.
8294
8295 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
8296
8297         Bug 13856
8298         * c-decl.c (diagnose_mismatched_decls): Only give special
8299         treatment when olddecl is DECL_BUILT_IN, if C_DECL_INVISIBLE
8300         is also true.
8301         (merge_decls): Don't clear DECL_BUILT_IN_CLASS and
8302         DECL_FUNCTION_CODE when defining a built-in function.
8303         Don't update DECL_ESTIMATED_INSNS.
8304         * dwarf2out.c (dwarf2out_decl): Don't ignore built-in
8305         FUNCTION_DECLs.
8306         * tree.h: Delete DECL_ESTIMATED_INSNS.
8307         * tree-inline.c (struct inline_data): Delete inlined_insns field.
8308         (expand_call_inline, optimize_inline_calls): Don't update
8309         DECL_ESTIMATED_INSNS nor inlined_insns.
8310         * cgraphunit.c (cgraph_analyze_function): Don't update
8311         DECL_ESTIMATED_INSNS.
8312
8313 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
8314
8315         * c-common.c (shadow_warning): Delete.
8316         * c-common.h (free_parser_stacks, shadow_warning, sw_kind): Delete.
8317         * c-decl.c (warn_if_shadowing): Issue shadow warnings directly.
8318         * c-opts.c (c_common_parse_file): Don't call free_parser_stacks.
8319         * c-parse.in (free_parser_stacks): Delete.
8320
8321 2004-02-07  Nathanael Nerode  <neroden@gcc.gnu.org>
8322
8323         * Makefile.in, config/t-slibgcc-darwin, config/t-slibgcc-elf-ver,
8324         config/t-slibgcc-sld, config/mips/t-iris5-6, config/sh/t-linux:
8325         Use the top level mkinstalldirs, not the one in the gcc subdir.
8326         * mkinstalldirs: Remove (from the gcc subdir).
8327
8328 2004-02-07  Roger Sayle  <roger@eyesopen.com>
8329
8330         PR middle-end/13696
8331         * fold-const.c (fold_convert): New function to provide type
8332         conversion to the middle-end without using convert.
8333         (negate_expr, associate_trees, size_diffop, omit_one_operand,
8334         operand_equal_for_comparison_p, pedantic_omit_one_operand,
8335         invert_truthvalue, optimize_bit_field_compare, range_binop,
8336         decode_field_reference, make_range, build_range_check, unextend,
8337         fold_truthop, extract_muldiv_1, fold_mathfn_compare,
8338         fold_binary_op_with_conditional_arg, fold_inf_compare,
8339         fold_single_bit_test, fold, multiple_of_p): Replace all calls to
8340         convert with calls to fold_convert.
8341
8342 2004-02-07  Jan Hubicka  <jh@suse.cz>
8343
8344         * genrecog.c (find_operand): add extra argument stop.
8345         (validate_pattern): Verify that mach_dup is duplicating operand
8346         defined lexically earlier.
8347
8348 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
8349
8350         * config.gcc: Don't mention MAX_LONG_TYPE_SIZE.
8351         * system.h (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
8352         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Poison.
8353         * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
8354         config/ia64/ia64.h, config/ip2k/ip2k.h,
8355         config/iq2000/iq2000.h, config/mips/iris5.h,
8356         config/mips/mips.h, config/pa/pa-64.h, config/pa/pa.h,
8357         config/rs6000/aix51.h, config/rs6000/aix52.h,
8358         config/rs6000/darwin.h, config/rs6000/rs6000.h,
8359         config/s390/s390.h, config/sh/sh.h, config/sparc/freebsd.h,
8360         config/sparc/linux.h, config/sparc/linux64.h,
8361         config/sparc/netbsd-elf.h, config/sparc/sparc.h,
8362         config/xtensa/xtensa.h: Remove the definitions of
8363         MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE, and/or
8364         MAX_WCHAR_TYPE_SIZE.
8365         * doc/tm.texi (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
8366         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Remove.
8367
8368 2004-02-07  Stephane Carrez  <stcarrez@nerim.fr>
8369
8370         PR bootstrap/13990
8371         * config/m68hc11/m68hc11.md ("doloop_end"): Pass dummy arguments to
8372         gen_rtx_NE.
8373
8374 2004-02-07  Josef Zlomek  <zlomekj@suse.cz>
8375
8376         * var-tracking.c (vt_add_function_parameters): Surround checkings by
8377         #ifdef ENABLE_CHECKING and #endif.
8378
8379 2004-02-07  Roger Sayle  <roger@eyesopen.com>
8380
8381         * fold-const.c (negate_expr_p, negate_expr): Optimize -(A+B) into
8382         either (-A)-B or (-B)-A, if A or B is easily negated respectively.
8383         (fold) <MINUS_EXPR>: Optimize (A*C) - (B*C) -> (A-B)*C for both
8384         integer types and floating point with unsafe_math_optimizations.
8385         Add similar optimization for (A*C1) - (A*C2) -> A*(C1-C2).
8386         Optimize A - B as A + (-B), if B is easily negated.
8387
8388 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
8389
8390         * c-ppoutput.c, cfganal.c, diagnostic.h, print-rtl.c,
8391         config/darwin.c, config/darwin.h, config/ia64/ia64-c.c,
8392         config/m32r/linux.h, config/rs6000/ppc64-fp.c,
8393         config/sparc/openbsd.h, doc/makefile.texi, doc/passes.texi:
8394         Update copyright.
8395
8396 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
8397
8398         * c-ppoutput.c, var-tracking.c: Fix comment typos.
8399
8400 2004-02-06  James E Wilson  <wilson@specifixinc.com>
8401
8402         * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Only define for
8403         glibc 2.3 or better.
8404
8405 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
8406
8407         * doc/tm.texi (TARGET_FLOAT_LIB_COMPARE_RETURNS_BOOL): Change
8408         to FLOAT_LIB_COMPARE_RETURNS_BOOL.
8409
8410 2004-02-07  Alan Modra  <amodra@bigpond.net.au>
8411
8412         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Add darwin-ldouble.c.
8413         (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
8414         (SHLIB_MKMAP_OPTS): Delete.
8415         (TARGET_LIBGCC2_CFLAGS): Add -specs.
8416         (bispecs): Add rule.
8417         * config/rs6000/libgcc-ppc64.ver: New file.
8418         * config/rs6000/ppc64-fp.c (__fixtfdi, __floatditf): New functions.
8419         (__floatdidf, __floatdisf): Optimize multiply.
8420         (__fixunstfdi): New function.
8421         * config/rs6000/rs6000.c (rs6000_complex_function_value): Allow for
8422         real and imag parts larger than one register.
8423         (function_arg): Correct type of reg used when fp arg split partially
8424         to stack.
8425         * config/rs6000/darwin-ldouble.c: Protect with #if !_SOFT_FLOAT
8426         and __MACH__ or __powerpc64__.
8427
8428 2004-02-06  Roger Sayle  <roger@eyesopen.com>
8429             Ulrich Weigand  <uweigand@de.ibm.com>
8430
8431         * builtins.c (expand_builtin_signbit): Use extract_bit_field instead
8432         of gen_highpart or gen_lowpart when the floating point format is
8433         wider than the result mode.
8434
8435 2004-02-06  Andrew Pinski  <pinskia@physics.uc.edu>
8436
8437         * dwarf2out.c (loclabel_num): Move into #ifdef
8438         DWARF2_DEBUGGING_INFO.
8439
8440 2004-02-06  Ziemowit Laski  <zlaski@apple.com>
8441
8442         * objc/objc-act.c (build_super_template) the 'class' field of
8443         'struct _objc_super' shall be named 'super_class' #ifdef OBJCPLUS.
8444         (get_super_receiver): Likewise.
8445
8446 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
8447
8448         * reload1.c (check_eliminable_occurrences): Optimize the reset
8449         of can_eliminate.
8450         (eliminate_regs_in_insn): Likewise.
8451
8452 2004-02-06  Daniel Berlin <dberlin@dberlin.org>
8453             Josef Zlomek  <zlomekj@suse.cz>
8454
8455         * dwarf2out.c (struct gcc_debug_hooks): Call dwarf2out_begin_function
8456         at the beginning of function, call dwarf2out_var_location for
8457         NOTE_INSN_VAR_LOCATION note.
8458         (struct var_loc_node, struct var_loc_list_def, loclabel_num,
8459         decl_loc_table): New.
8460         (lookup_decl_loc): New function.
8461         (add_var_loc_to_decl): New function.
8462         (based_loc_descr): Added parameter can_use_fbreg, DW_OP_fbreg is used
8463         only if can_use_fbreg.
8464         (mem_loc_descriptor): Added parameter can_use_fbreg, pass it to other
8465         functions.
8466         (loc_descriptor): Likewise. Process VAR_LOCATION.
8467         (concat_loc_descriptor): Call loc_descriptor with can_use_fbreg == true.
8468         (loc_descriptor_from_tree): Call mem_loc_descriptor with
8469         can_use_fbreg == true.
8470         (add_location_or_const_value_attribute): Added parameter enum
8471         dwarf_attribute attr, generate attribute ATTR.  Create the location list.
8472         (add_bound_info): Call loc_descriptor with can_use_fbreg == true.
8473         (gen_formal_parameter_die): Call add_location_or_const_value_attribute
8474         with attr == DW_AT_location.
8475         (gen_subprogram_die): Generate the location list for DW_AT_frame_base
8476         if frame_base_decl is defined and has a location list.
8477         (gen_variable_die): Call add_location_or_const_value_attribute with
8478         attr == DW_AT_location.
8479         (dwarf2out_var_location): New function.
8480         (dwarf2out_begin_function): New function.
8481         (dwarf2out_init): Create decl_loc_table.
8482
8483 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
8484
8485         * loop.c (force_movables): Transitively increase the priorities of
8486         all insns forces by an insn, not just the first one.
8487
8488 2004-02-06  Josef Zlomek  <zlomekj@suse.cz>
8489             Daniel Berlin <dberlin@dberlin.org>
8490
8491         Josef Zlomek  <zlomekj@suse.cz>
8492         * Makefile.in (var-tracking.o): New.
8493         * common.opt (fvar-tracking): New.
8494         * flags.h (flag_var_tracking): New.
8495         * gengtype.c (adjust_field_rtx_def): NOTE_INSN_VAR_LOCATION was added.
8496         * opts.c (common_handle_option): Add OPT_fvar_tracking.
8497         * print-rtl.c (print_rtx): NOTE_INSN_VAR_LOCATION was added.
8498         * rtl.c (note_insn_name): Likewise.
8499         * rtl.def (VAR_LOCATION): New.
8500         * rtl.h (NOTE_VAR_LOCATION): New.
8501         (NOTE_VAR_LOCATION_DECL): New.
8502         (NOTE_VAR_LOCATION_LOC): New.
8503         (enum insn_note): NOTE_INSN_VAR_LOCATION was added.
8504         (variable_tracking_main): New exported function.
8505         * timevar.def (TV_VAR_TRACKING): New.
8506         * toplev.c (enum dump_file_index): Added DFI_vartrack.
8507         (dump_file): "vartrack" was added (-dV).
8508         (flag_var_tracking): New.
8509         (f_options): "var-tracking" was added.
8510         (rest_of_handle_variable_tracking): New function.
8511         (rest_of_compilation): Run variable tracking.
8512         (process_options): If user has not specified flag_var_tracking set it
8513         according to optimize, debug_info_level and debug_hooks.
8514         * tree.h (frame_base_decl): New.
8515         * var-tracking.c: New file.
8516         * config/ia64/ia64.c (ia64_flag_var_tracking): New variable.
8517         (ia64_override_options): Set flags to run variable tracking in machine
8518         dependent reorg instead of toplev.c.
8519         (ia64_reorg): Run variable tracking if wanted.
8520         * doc/invoke.texi: Mention variable tracking in -dV,
8521         add and -fvar-tracking.
8522         * doc/passes.texi: Added variable tracking pass.
8523
8524         Daniel Berlin <dberlin@dberlin.org>
8525         * debug.h (struct gcc_debug_hooks): Added var_location debug hook.
8526         * dbxout.c (dbx_debug_hooks): Likewise.
8527         (xcoff_debug): Likewise.
8528         * debug.c (do_nothing_debug_hooks): Likewise.
8529         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
8530         * dwarfout.c (dwarf_debug_hooks): Likewise.
8531         * sdbout.c (sdb_debug_hooks): Likewise.
8532         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
8533         * final.c (final_scan_insn): Call var_location debug hook for each
8534         NOTE_INSN_VAR_LOCATION.
8535
8536 2004-02-06  Jan Hubicka  <jh@suse.cz>
8537
8538         * flow.c (update_life_info): Allocate reg_deaths when called from
8539         scheudler.
8540         (attempt_auto_inc):  Update life ranges accordingly.
8541
8542 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
8543
8544         PR debug/11816
8545         * dwarf2out.c (gen_decl_die): Handle anonymous struct members.
8546
8547 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
8548
8549         * cfganal.c (flow_call_edges_add): Never split a libcall block.
8550
8551 2004-02-06  Daniel Berlin  <dberlin@dberlin.org>
8552
8553         * dwarf2out.c (output_loc_list): Don't use deltas if we have
8554         a separate line info table in use.
8555         Use the correct size for terminators.
8556         (output_die): Use offset, not delta.
8557
8558 2004-02-06  H.J. Lu  <hongjiu.lu@intel.com>
8559
8560         * doc/invoke.texi: Remove the pni option from -mfpmath=.
8561
8562 2004-02-06  Jan Hubicka  <jh@suse.cz>
8563
8564         * recog.c (split_all_insns): Do not update reg info.
8565         * regrename.c (regrename_optimize): Likewise.
8566         * toplev.c (rest_of_handle_reorder_blocks): Likewise.
8567         * flow.c (struct propagate_block_info): Add insn_num field.
8568         (reg_deaths): New array.
8569         (life_analysis): Free reg_deaths info.
8570         (allocate_reg_life_data): Allocate reg_deaths array.
8571         (propagate_one_insn): Use new array.
8572         (init_propagate_block): Initialize it.
8573         (free_propagate_block_info): Finish compuation of
8574         REG_LIVE_LENGTH
8575         (attempt_auto_inc): Sanity check that REG_INFO is not
8576         computed at same time.
8577         (mark_used_regs): Update new array.
8578
8579         * reg-stack.c (subst_stack_regs): Unshare clobbers before
8580         substitution.
8581
8582 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
8583
8584         * config/s390/s390.md (*extendsiqi2_short_displ): Change to
8585         *extendqisi2_short_displ.
8586
8587 2004-02-06  Alan Modra  <amodra@bigpond.net.au>
8588
8589         * doc/tm.texi (INIT_CUMULATIVE_ARGS): Update doco.
8590         * calls.c (expand_call): Pass n_named_args to INIT_CUMULATIVE_ARGS.
8591         (emit_library_call_value_1): Likewise pass nargs.
8592         * expr.c (block_move_libcall_safe_for_call_parm): Pass 3 here.
8593         * function.c (assign_parms): Pass -1 to INIT_CUMULATIVE_ARGS.
8594         * config/rs6000/rs6000.c (init_cumulative_args): Use n_named_args
8595         parameter instead of scanning TYPE_ARGS_TYPES to count args.
8596         * config/rs6000/rs6000-protos.h (init_cumulative_args): Update
8597         prototype.
8598         * config/rs6000/rs6000.h (INIT_CUMULATIVE_ARGS): Pass extra arg.
8599         (INIT_CUMULATIVE_INCOMING_ARGS): Set extra arg to 1000.
8600         (INIT_CUMULATIVE_LIBCALL_ARGS): Set extra arg to 0.
8601         * config/sh/sh.c (sh_output_mi_thunk): Pass 1 as n_named_args to
8602         INIT_CUMULATIVE_ARGS.
8603         * config/alpha/alpha.h (INIT_CUMULATIVE_ARGS): Update.
8604         * config/alpha/unicosmk.h, config/alpha/vms.h, config/arc/arc.h,
8605         config/arm/arm.h, config/avr/avr.h, config/c4x/c4x.h,
8606         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.h,
8607         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
8608         config/ia64/ia64.h, config/ip2k/ip2k.h, config/iq2000/iq2000.h,
8609         config/iq2000/iq2000.c, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
8610         config/m68k/m68k.h, config/mcore/mcore.h, config/mips/mips.h,
8611         config/mmix/mmix.h, config/mn10300/mn10300.h, config/ns32k/ns32k.h,
8612         config/pa/pa.h, config/pdp11/pdp11.h, config/s390/s390.h,
8613         config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
8614         config/v850/v850.h, config/vax/vax.h, config/xtensa/xtensa.h: Likewise.
8615
8616 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
8617
8618         * genemit.c (gen_exp) [CONST_INT]: Use const_int_rtx whenever
8619         possible.
8620
8621 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
8622
8623         * reload1.c (eliminate_regs_in_insn): If a set has a REG_EQUAL
8624         note containing (plus (reg) (const_int)), where reg is an
8625         eliminable reg, then perform the register elimination without
8626         depending on eliminate_regs().
8627
8628 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
8629
8630         * config/arc/arc.c (arc_return_in_memory): Check the return
8631         value of int_size_in_bytes against -1.  Don't check
8632         TREE_ADDRESSABLE.
8633         * config/avr/avr.c (avr_return_in_memory): Check the return
8634         value of int_size_in_bytes against -1.
8635         * config/ip2k/ip2k.c (ip2k_return_in_memory): Likewise.
8636         * config/m68hc11/m68hc11.c (m68hc11_return_in_memory):
8637         Likewise.
8638         * config/mcore/mcore.c (mcore_return_in_memory): Likewise.
8639         * config/stormy16/stormy16.c (xstormy16_return_in_memory):
8640         Likewise.
8641
8642 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
8643
8644         * config/frv/frv-protos.h: Remove the prototype for
8645         frv_setup_incoming_varargs.
8646         * config/frv/frv.c (TARGET_SETUP_INCOMING_VARARGS): New.
8647         (frv_setup_incoming_varargs): Make it static.
8648         * config/frv/frv.h (SETUP_INCOMING_VARARGS): Remove.
8649
8650 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
8651
8652         * config/fr30/fr30-protos.h: Remove the prototype for
8653         fr30_setup_incoming_varargs.
8654         Update the prototypes for fr30_num_arg_regs and
8655         fr30_function_arg_partial_nregs.
8656         * config/fr30/fr30.c (TARGET_STRUCT_VALUE_RTX): New.
8657         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
8658         (fr30_setup_incoming_varargs): Make it static.
8659         Add argument second_time.  Don't do anything when second_time
8660         is nonzero.
8661         (fr30_num_arg_regs): Change the type of the first argument to
8662         enum machine_mode.
8663         (fr30_function_arg_partial_nregs): Change the type of the
8664         second argument to enum machine_mode.
8665         * config/fr30/fr30.h (STRUCT_VALUE): Remove.
8666         (SETUP_INCOMING_VARARGS): Remove.
8667
8668 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
8669
8670         * config/arc/arc-protos.h: Remove the prototype for
8671         arc_setup_incoming_varargs.
8672         * config/arc/arc.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
8673         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
8674         (arc_setup_incoming_varargs): Make it static.
8675         (arc_external_libcall): Likewise.
8676         * config/arc/arc.h (SETUP_INCOMING_VARARGS): Remove.
8677         Remove the commented-out definition of
8678         ASM_OUTPUT_EXTERNAL_LIBCALL.
8679
8680 2004-02-05  SUGIOKA Toshinobu  <sugioka@itonet.co.jp>
8681
8682         * config/sh/t-linux (SHLIB_INSTALL): Prepend $$(DESTDIR)
8683         to $$(slibdir) in the installation commands.
8684
8685 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
8686
8687         * reload.c (refers_to_regno_for_reload_p): Index hard_regno_nregs
8688         with inner_regno, not regno.
8689         * rtlanal.c (refers_to_regno_p): Same.
8690
8691 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
8692
8693         * config.gcc: Remove i370 support.
8694
8695 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
8696
8697         * doc/install.texi:  Update automake and autoconf version
8698         requirements.  Note where to find gcj automake version.
8699
8700 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
8701
8702         * Makefile.in (generate-manpages): Move dependencies to ...
8703         (man): here.
8704         * doc/makefile.texi: Document new targets.
8705         * doc/sourcebuild.texi (Make-lang.in): Document new langhooks.
8706
8707 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
8708
8709         PR/13485
8710         Makefile.in (srcextra):  Add a level of indirection to ...
8711         (gcc.srcextra): ... here.
8712         (po-generated): Delete.
8713         (po/$(PACKAGE).pot: Use srcextra instead of po-generated.  Depend on
8714         options.c.
8715         (start.encap): Remove superfluous lang.srcextra dependency.
8716         objc/Make-lang.in (po-generated):  Delete.
8717
8718 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
8719
8720         * config/ia64/ia64.c (REG_GP): Remove.
8721
8722 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8723
8724         * config/mips/iris5gas.h (PREFERRED_DEBUGGING_TYPE): Define.
8725
8726 2004-02-05  Devang Patel  <dpatel@apple.com>
8727
8728         * dwarf2out.c (force_type_die): Look up input type itself
8729         instead of root_type() of type.
8730
8731 2004-02-05  Andreas Krebbel  <krebbel1@de.ibm.com>
8732
8733         * config/s390/s390.md ("*tmqidi_ext"): New insn.
8734         ("*extendqidi2_short_displ", "*extendsiqi2_short_displ"): Old
8735         pre-reload splitters are transformed to post-reload
8736         define_insn_and_split patterns.
8737         ("*tmqisi_ext"): Renamed old "*tmqi_ext".
8738
8739 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
8740
8741         * config/cris/cris.h: Replace PROMOTE_PROTOTYPES with
8742         TARGET_PROMOTE_PROTOTYPES.
8743
8744 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8745
8746         PR middle-end/13750
8747         Revert:
8748         2004-01-15  Geoffrey Keating  <geoffk@apple.com>
8749         PR pch/13361
8750         * c-typeck.c (constructor_asmspec): Delete.
8751         (struct initializer_stack): Delete field 'asmspec'.
8752         (start_init): Delete saving of asmspec.
8753         (finish_init): Don't update constructor_asmspec.
8754         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
8755         * stmt.c (expand_asm): Duplicate strings from tree.
8756         (expand_asm_operands): Likewise.
8757         * tree.c (tree_size): Update computation of size of STRING_CST.
8758         (make_node): Don't make STRING_CST nodes.
8759         (build_string): Allocate string with tree node.
8760         * tree.def (STRING_CST): Update comment.
8761         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
8762         (tree_string): Place contents of string in tree node.
8763         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
8764         from tree.
8765
8766 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
8767
8768         * diagnostic.h (DEFINE_DIAGNOSTIC_KIND): Change parameter M to
8769         msgid.
8770
8771 2004-02-05  Dorit Naishlos  <dorit@il.ibm.com>
8772
8773         * config/rs6000/altivec.md (*movv4si_internal): At least one
8774         operand must be altivec_register_operand.
8775         (*movv8hi_internal1): Likewise.
8776         (*movv16qi_internal1): Likewise.
8777         (*movv4sf_internal1): Likewise.
8778
8779 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
8780
8781         * configure.ac (gcc_cv_as_powerpc_mfcrf): Correct test for mfcr.
8782         * configure: Regenerate.
8783
8784 2004-02-05  Jonathan Wakely  <redi@gcc.gnu.org>
8785
8786         * doc/install.texi: Update description of --gxx-include-dir to
8787         give correct default value.
8788
8789 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
8790
8791         * config/h8300/h8300.h (REG_OK_FOR_BASE_NONSTRICT_P): Replace
8792         8 with MAC_REG.
8793
8794 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
8795
8796         * config/pa/pa.c (emit_hpdiv_const): Replace gen_rtx with
8797         gen_rtx_PARALLEL.
8798
8799 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
8800
8801         * emit-rtl.c: Update the comment about the file.
8802
8803 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
8804
8805         * sourcebuild.texi (Test Idioms): Update testcase naming
8806         conventions.
8807
8808 2004-02-04  Per Bothner  <per@bothner.com>
8809
8810         Partially revert/redo 2003-10-01 change; fix -fworking-directory.
8811         * c-ppoutput.c (pp_dir_change):  New function.
8812         * c-common.h (pp_dir_change):  New declaration.
8813         * cpplib.h (struct cpp_options):  Remove working_directory field.
8814         * cppinit.c (cpp_find_main_file, cpp_push_main_file):  Merge back to
8815         (cpp_read_main_file):  as before 10-01.  Call _cpp_stack_file.
8816         Don't handle -fworking_directory here, but in c_common_post_options.
8817         (read_original_directory): Don't back up when done.
8818         Don't clear no-longer used working_directory flag.
8819         * cpplib.h:  Update declarations to match.
8820         * c-lex.c (cb_dir_change):  Move to c-opts.c.
8821         (init_c_lex):  Don't set dir_change callback here, since we want
8822         to set it even if flag_preprocess_only.
8823         * c-opts.c (cb_dir_change):  Function moved from c-lex.c.
8824         (c_common_post_options):  Set dir_change callback.
8825         Call pp_dir_change if approporiate.
8826         (finish_options):  Don't call cpp_find_main_file here.  Hence remove
8827         unneeded parameter and result. Do LC_RENAME for <built-in>.
8828         (c_common_post_options):  Call cpp_read_main_file here instead.
8829         (c_common_init):  Update accordingly.
8830         (push_command_line_include):  Don't cpp_push_main_file.
8831         Do LC_RENAME rather than LC_LEASE to get back to main file.
8832         Compared to pre-10-01 version, inline cpp_rename_to_main_file.
8833         (c_common_parse_file):  Call cpp_read_main_file for subsequent main
8834         files, but call finish_options for all files.
8835         * c-opts.c (sanitize_cpp_opts):  Don't set cpp_opts->working_directory.
8836         * fix-header.c (read_scan_file):  Call cpp_read_main_file instead of
8837         cpp_find_main_file + cpp_push_main_file.
8838         * c-lex.c (fe_file_change):  Don't set main_input_filename here.
8839         * opts.c (handle_options):  Only set main_input_filename first time.
8840
8841 2004-02-05  Ian Lance Taylor  <ian@wasabisystems.com>
8842
8843         * config/arm/arm.h (REG_CLASS_NAMES): Add missing comma.
8844
8845 2004-02-04  Geoffrey Keating  <geoffk@apple.com>
8846
8847         * reload.c (find_equiv_reg): When checking for register overlap,
8848         don't index hard_regno_nregs with a pseudo-reg.
8849
8850 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
8851
8852         * config/s390/s390.c (s390_trampoline_template): Remove gen_rtx().
8853
8854 2004-02-04  David Edelsohn  <edelsohn@gnu.org>
8855
8856         * reload.c (refers_to_regno_for_reload_p): Test regno, not inner_regno,
8857         against FIRST_PSEUDO_REGISTER.
8858
8859 2004-02-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8860
8861         * Makefile.in: Move target, host overrides after per-language
8862         fragments.
8863
8864         * config/mips/t-iris5-as (FORCE_DEBUG_ADAFLAGS): Clear.
8865         (GNATLIBCFLAGS): Remove -g.
8866
8867 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
8868
8869         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
8870         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
8871         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
8872         config/m32r/m32r.c, config/ns32k/ns32k.c, config/pa/pa.c,
8873         config/pdp11/pdp11.c, config/rs6000/rs6000.c,
8874         config/sparc/sparc.c, config/vax/vax.c: Revert the
8875         replacements of "FALLTHRU" with "Fall through" done in the
8876         previous patch.
8877
8878 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
8879
8880         * config/darwin.c, config/darwin.h, config/freebsd-spec.h,
8881         config/arm/arm.c, config/arm/arm.md,
8882         config/cris/cris-protos.h, config/fr30/fr30.c,
8883         config/fr30/fr30.h, config/h8300/h8300.c, config/i386/i386.h,
8884         config/i860/i860.c, config/i860/i860.h, config/ia64/ia64-c.c,
8885         config/ia64/ia64.c, config/ia64/ia64.h, config/ip2k/ip2k.h,
8886         config/ip2k/ip2k.md, config/ip2k/libgcc.S,
8887         config/m32r/linux.h, config/m32r/m32r.c, config/m32r/m32r.h,
8888         config/m68k/m68k.c, config/m68k/netbsd-elf.h,
8889         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.md,
8890         config/ns32k/netbsd.h, config/ns32k/ns32k.c,
8891         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
8892         config/rs6000/darwin-ldouble.c, config/s390/s390.h,
8893         config/s390/s390.md, config/sparc/netbsd-elf.h,
8894         config/sparc/openbsd.h, config/sparc/sparc.c,
8895         config/xtensa/lib2funcs.S: Fix comment formatting.
8896
8897 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
8898
8899         * config/alpha/alpha.c, config/arc/arc.c,
8900         config/arm/arm-cores.def, config/arm/arm.c, config/arm/arm.h,
8901         config/arm/arm1026ejs.md, config/arm/arm1136jfs.md,
8902         config/arm/arm926ejs.md, config/arm/vfp.md, config/avr/avr.c,
8903         config/c4x/c4x.c, config/cris/cris.c, config/frv/frv.md,
8904         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
8905         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
8906         config/iq2000/iq2000.c, config/m32r/m32r.c,
8907         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.h,
8908         config/ns32k/ns32k.c, config/pa/pa.c, config/pdp11/pdp11.c,
8909         config/rs6000/darwin-ldouble.c, config/rs6000/rs6000.c,
8910         config/rs6000/rs6000.h, config/sparc/sparc.c,
8911         config/vax/vax.c: Fix comment typos.  Follow spelling
8912         conventions.
8913
8914 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
8915
8916         * alloc-pool.h, c-convert.c, c-lang.c, c-tree.h,
8917         caller-save.c, df.h, genconfig.c, global.c, lcm.c,
8918         ra-rewrite.c, ra.c, regclass.c, regs.h, resource.c,
8919         sched-rgn.c, config/arm/aof.h, config/arm/cirrus.md,
8920         config/arm/fpa.md, config/arm/iwmmxt.md,
8921         config/arm/netbsd-elf.h, config/arm/netbsd.h,
8922         config/m68hc11/m68hc11.md, config/mips/iris5.h,
8923         config/mn10300/mn10300.md, config/rs6000/altivec.md,
8924         config/sparc/netbsd-elf.h: Update copyright.
8925
8926 2004-02-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
8927
8928         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
8929         for all modes whose size is greater than 8 bytes if ARCH32.
8930         (sparc_va_arg): Handle all modes whose size is greater than 8 bytes
8931         by reference if ARCH32.
8932
8933 2004-02-04  Aldy Hernandez  <aldyh@redhat.com>
8934
8935         * cgraphunit.c (cgraph_postorder): Fix typo in comment.
8936
8937 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
8938
8939         * config/s390/s390.md ("*la_64" + peepholes, "reload_indi"): Move
8940         to before adddi3 insn patterns.
8941         ("*la_31" + peepholes, "*la_31_and", "*la_31_and_cc", "force_la_31",
8942         "reload_insi"): Move to before addsi3 insn patterns.
8943
8944 2004-02-04  Mark Mitchell  <mark@codesourcery.com>
8945
8946         * calls.c (initialize_argument_information): Add CALL_FROM_THUNK_P
8947         parameter.  Use it instead of current_function_is_thunk.
8948         * function.h (struct function): Update documentation for is_thunk.
8949         * tree.h (CALL_FROM_THUNK_P): New macro.
8950         * config/alpha/alpha.c (alpha_sa_mask): Do not check
8951         no_new_pseudos when testing current_function_is_thunk.
8952         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likeiwse.
8953
8954 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
8955
8956         * doc/tm.texi: Replace SETUP_INCOMING_VARARGS with
8957         TARGET_SETUP_INCOMING_VARARGS.
8958
8959 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
8960
8961         * emit-rtl.c (gen_rtx): Remove.
8962         * genattrtab.c: Don't mention gen_rtx in a comment.
8963         * rtl.h: Remove the prototype for gen_rtx.
8964         * doc/md.texi: Replace gen_rtx with gen_rtx_REG.
8965
8966 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
8967
8968         * config/arc/arc.h, config/fr30/fr30.h
8969         (SETUP_INCOMING_VARARGS): Remove the target-independent
8970         comments.
8971         * doc/tm.texi: Don't mention deprecated target macros.
8972
8973 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
8974
8975         * config/fr30/fr30.h (FUNCTION_VALUE): Remove the
8976         target-independent comment.
8977
8978 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
8979
8980         * doc/interface.texi, doc/tm.texi, doc/trouble.texi: Don't
8981         mention deprecated target macros.
8982
8983 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
8984
8985         * config.gcc: Remove obsolete ports and configurations.
8986         * config/linux-aout.h, config/netware.h,
8987         config/t-linux-gnulibc1, config/d30v/abi,
8988         config/d30v/d30v-protos.h, config/d30v/d30v.c,
8989         config/d30v/d30v.h, config/d30v/d30v.md,
8990         config/d30v/libgcc1.asm, config/d30v/t-d30v,
8991         config/dsp16xx/dsp16xx-modes.def,
8992         config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c,
8993         config/dsp16xx/dsp16xx.h, config/dsp16xx/dsp16xx.md,
8994         config/i370/README, config/i370/i370-c.c,
8995         config/i370/i370-protos.h, config/i370/i370.c,
8996         config/i370/i370.h, config/i370/i370.md, config/i370/linux.h,
8997         config/i370/mvs.h, config/i370/oe.h, config/i370/t-i370,
8998         config/i386/freebsd-aout.h, config/i386/linux-aout.h,
8999         config/i386/moss.h, config/i386/netware.h,
9000         config/i386/svr3.ifile, config/i386/svr3dbx.h,
9001         config/i386/svr3gas.h, config/i386/svr3z.ifile,
9002         config/i386/t-udk, config/i386/udk.h, config/i386/vsta.h,
9003         config/i960/i960-c.c, config/i960/i960-coff.h,
9004         config/i960/i960-modes.def, config/i960/i960-protos.h,
9005         config/i960/i960.c, config/i960/i960.h, config/i960/i960.md,
9006         config/i960/rtems.h, config/i960/t-960bare,
9007         config/m68k/hp310.h, config/m68k/hp320.h,
9008         config/m68k/hp320base.h, config/m68k/m68kv4.h,
9009         config/m68k/netbsd.h, config/m68k/sgs.h, config/m68k/t-hp320:
9010         Remove.
9011         * doc/extend.texi, doc/install.texi, doc/invoke.texi,
9012         doc/md.texi: Remove mentions of obsolete ports.
9013
9014 2004-02-04  Jan Hubicka  <jh@suse.cz>
9015
9016         * alias.c (find_base_term, get_addr):  Do not dereference NULL
9017         pointer when all VALUE's locations has been invalidated.
9018         (rtx_equal_for_memref_p): Simplify checking of VALUEs.
9019
9020 2004-02-03  Wolfgang Bangerth  <bangerth@dealii.org>
9021
9022         * doc/invoke.texi (x86 options): Fix spelling/wording.
9023
9024 2004-02-03  Richard Sandiford  <rsandifo@redhat.com>
9025
9026         * config/mips/iris5.h (ASM_OUTPUT_ASCII): Use mips_output_ascii to
9027         put the original string in a comment.
9028         * config/mips/mips-protos.h (mips_output_ascii): Add prefix argument.
9029         * config/mips/mips.c (mips_output_ascii): Likewise.
9030         * config/mips/mips.h (ASM_OUTPUT_ASCII): Adjust accordingly.
9031
9032 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
9033
9034         * system.h (GIV_SORT_CRITERION): Poison.
9035         * config/avr/avr.h (GIV_SORT_CRITERION): Remove.
9036         * config/ip2k/ip2k.h (GIV_SORT_CRITERION): Likewise.
9037
9038 2004-02-03  Roger Sayle  <roger@eyesopen.com>
9039
9040         PR target/9348
9041         * expr.c (expand_expr_real) <MULT_EXPR>:  When performing widening
9042         multiplies with a multiplication of the wrong signedness, its the
9043         signedness of the multiplication that we've performed that needs to
9044         be passed to expand_mult_highpart_adjust.  Avoid emitting a nop-move
9045         if expand_mult_highpart_adjust places the result in target.
9046
9047 2004-02-03  Richard Henderson  <rth@redhat.com>
9048
9049         * varasm.c (const_desc_rtx_sym_eq): Compare symbol strings.
9050
9051 2004-02-03  J"orn Rennecke <joern.rennecke@superh.com>
9052
9053         * config.gcc (sh[234]l): Use little endian fragments.
9054
9055 2004-02-03  Paul Koning  <pkoning@equallogic.com>
9056
9057         * config/pdp11/pdp11-modes.def: Add RESET_FLOAT_FORMAT calls.
9058         * config/pdp11/pdp11-protos.h (legitimate_const_double_p): Add.
9059         * config/pdp11/pdp11.c (encode_pdp11_f, decode_pdp11_f,
9060         encode_pdp11_d, decode_pdp11_d): New functions to handle PDP11
9061         floating point format.
9062         (pdp11_f_format, pdp11_d_format): New real_format descriptors for
9063         the above functions.
9064         (output_move_quad): Output float values in correct target format.
9065         (legitimate_const_double_p): New function.
9066         * config/pdp11/pdp11.h: Fix typos.
9067         (FLOAT_WORDS_BIG_ENDIAN): Add definition.
9068         (TARGET_FLOAT_FORMAT): Ditto.
9069         (pdp11_f_format, pdp11_d_format): Add external declarations.
9070         (MAX_REGS_PER_ADDRESS): Corrected.
9071         (LEGITIMATE_CONSTANT_P): Use legitimate_const_double_p().
9072         (PRINT_OPERAND): Output float literals in target format.
9073
9074 2004-02-03  Mark Mitchell  <mark@codesourcery.com>
9075
9076         PR c++/13975
9077         * tree.h (enum tree_index): Add TI_PUBLIC, TI_PROTECTED, and
9078         TI_PRIVATE.
9079         (access_public_node): Redefine.
9080         (access_protected_node): Likewise.
9081         (access_private_node): Likewise.
9082         * tree.c (build_common_tree_nodes): Create access_public_node,
9083         access_protected_node, and access_private_node.
9084
9085 2004-02-03  Steve Ellcey  <sje@cup.hp.com>
9086
9087         * config/ia64/ia64.h (MASK_INLINE_INT_DIV_LAT): Change value.
9088         (MASK_INLINE_INT_DIV_THR): Ditto.
9089         (MASK_INLINE_SQRT_LAT): Ditto.
9090         (MASK_INLINE_SQRT_THR): Ditto.
9091         (MASK_DWARF2_ASM): Ditto.
9092         (MASK_EARLY_STOP_BITS): Ditto.
9093
9094 2004-02-02  Paul Brook  <paul@codesourcery.com>
9095
9096         Merge from csl-arm-branch.
9097
9098         2004-01-30  Paul Brook  <paul@codesourcery.com>
9099
9100         * aof.h (REGISTER_NAMES): Add vfp reg names
9101         (ADDITIONAL_REGISTER_NAMES): Ditto.
9102         * aout.h (REGISTER_NAMES): Ditto.
9103         (ADDITIONAL_REGISTER_NAMES): Ditto.
9104         * arm-protos.h: Update/Add Prototypes.
9105         * arm.c (init_fp_table): Rename from init_fpa_table. Update users.
9106         Only allow 0.0 for VFP.
9107         (fp_consts_inited): Rename from fpa_consts_inited.  Update users.
9108         (values_fp): Rename from values_fpa.  Update Users.
9109         (arm_const_double_rtx): Rename from const_double_rtx_ok_for_fpa.
9110         Update users.  Only check valid constants for this hardware.
9111         (arm_float_rhs_operand): Rename from fpa_rhs_operand.  Update Users.
9112         Only allow consts for FPA.
9113         (arm_float_add_operand): Rename from fpa_add_operand.  Update users.
9114         Only allow consts for FPA.
9115         (use_return_insn): Check for saved VFP regs.
9116         (arm_legitimate_address_p): Handle VFP DFmode addressing.
9117         (arm_legitimize_address): Ditto.
9118         (arm_general_register_operand): New function.
9119         (vfp_mem_operand): New function.
9120         (vfp_compare_operand): New function.
9121         (vfp_secondary_reload_class): New function.
9122         (arm_float_compare_operand): New function.
9123         (vfp_print_multi): New function.
9124         (vfp_output_fstmx): New function.
9125         (vfp_emit_fstm): New function.
9126         (arm_output_epilogue): Output VPF reg restore code.
9127         (arm_expand_prologue): Output VFP reg save code.
9128         (arm_print_operand): Add 'P'.
9129         (arm_hard_regno_mode_ok): Return modes for VFP regs.
9130         (arm_regno_class): Return classes for VFP regs.
9131         (arm_compute_initial_elimination_offset): Include space for VFP regs.
9132         (arm_get_frame_size): Ditto.
9133         * arm.h (FIXED_REGISTERS): Add VFP regs.
9134         (CALL_USED_REGISTERS): Ditto.
9135         (CONDITIONAL_REGISTER_USAGE): Enable VFP regs.
9136         (FIRST_VFP_REGNUM): Define.
9137         (LAST_VFP_REGNUM): Define.
9138         (IS_VFP_REGNUM): Define.
9139         (FIRST_PSEUDO_REGISTER): Include VFP regs.
9140         (HARD_REGNO_NREGS): Handle VFP regs.
9141         (REG_ALLOC_ORDER): Add VFP regs.
9142         (enum reg_class): Add VFP_REGS.
9143         (REG_CLASS_NAMES): Ditto.
9144         (REG_CLASS_CONTENTS): Ditto.
9145         (CANNOT_CHANGE_MODE_CLASS) Handle VFP Regs.
9146         (REG_CLASS_FROM_LETTER): Add 'w'.
9147         (EXTRA_CONSTRAINT_ARM): Add 'U'.
9148         (EXTRA_MEMORY_CONSTRAINT): Define.
9149         (SECONDARY_OUTPUT_RELOAD_CLASS): Handle VFP regs.
9150         (SECONDARY_INPUT_RELOAD_CLASS): Ditto.
9151         (REGISTER_MOVE_COST): Ditto.
9152         (PREDICATE_CODES): Add arm_general_register_operand,
9153         arm_float_compare_operand and vfp_compare_operand.
9154         * arm.md (various): Rename as above.
9155         (divsf3): Enable when TARGET_VFP.
9156         (divdf3): Ditto.
9157         (movdfcc): Ditto.
9158         (sqrtsf2): Ditto.
9159         (sqrtdf2): Ditto.
9160         (arm_movdi): Disable when TARGET_VFP.
9161         (arm_movsi_insn): Ditto.
9162         (movsi): Only split with general regs.
9163         (cmpsf): Use arm_float_compare_operand.
9164         (push_fp_multi): Restrict to TARGET_FPA.
9165         (vfp.md): Include.
9166         * vfp.md: New file.
9167         * fpa.md (various): Rename as above.
9168         * doc/md.texi: Document ARM w and U constraints.
9169
9170         2004-01-15  Paul Brook  <paul@codesourcery.com>
9171
9172         * config.gcc: Add with_fpu.  Allow with-float=softfp.
9173         * config/arm/arm.c (arm_override_options): Rename *-s to *s.
9174         Break out of loop when we find a float-abi.  Fix typo.
9175         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "fpu".
9176         Set -mfloat-abi=.
9177         * doc/install.texi: Document --with-fpu.
9178
9179         2003-01-14  Paul Brook  <paul@codesourcery.com>
9180
9181         * config.gcc (with_arch): Add armv6.
9182         * config/arm/arm.h: Rename TARGET_CPU_*_s to TARGET_CPU_*s.
9183         * config/arm/arm.c (arm_overrride_options): Ditto.
9184
9185         2004-01-08  Richard Earnshaw  <rearnsha@arm.com>
9186
9187         * arm.c (FL_ARCH3M): Renamed from FL_FAST_MULT.
9188         (FL_ARCH6): Renamed from FL_ARCH6J.
9189         (arm_arch3m): Renamed from arm_fast_multiply.
9190         (arm_arch6): Renamed from arm_arch6j.
9191         * arm.h: Update all uses of above.
9192         * arm-cores.def: Likewise.
9193         * arm.md: Likewise.
9194
9195         * arm.h (CPP_CPU_ARCH_SPEC): Emit __ARM_ARCH_6J__ define for armV6j,
9196         not arm6j.  Add entry for arch armv6.
9197
9198         2004-01-07  Richard Earnshaw  <rearnsha@arm.com>
9199
9200         * arm.c (arm_emit_extendsi): Delete.
9201         * arm-protos.h (arm_emit_extendsi): Delete.
9202         * arm.md (zero_extendhisi2): Also handle zero-extension of
9203         non-subregs.
9204         (zero_extendqisi2, extendhisi2, extendqisi2): Likewise.
9205         (thumb_zero_extendhisi2): Only match if not v6.
9206         (arm_zero_extendhisi2, thumb_zero_extendqisi2, arm_zero_extendqisi2)
9207         (thumb_extendhisi2, arm_extendhisi2, arm_extendqisi)
9208         (thumb_extendqisi2): Likewise.
9209         (thumb_zero_extendhisi2_v6, arm_zero_extendhisi2_v6): New patterns.
9210         (thumb_zero_extendqisi2_v6, arm_zero_extendqisi2_v6): New patterns.
9211         (thumb_extendhisi2_insn_v6, arm_extendhisi2_v6): New patterns.
9212         (thumb_extendqisi2_v6, arm_extendqisi_v6): New patterns.
9213         (arm_zero_extendhisi2_reg, arm_zero_extendqisi2_reg): Delete.
9214         (arm_extendhisi2_reg, arm_extendqisi2_reg): Delete.
9215         (arm_zero_extendhisi2addsi): Remove subreg.  Add attributes.
9216         (arm_zero_extendqisi2addsi, arm_extendhisi2addsi): Likewise.
9217         (arm_extendqisi2addsi): Likewise.
9218
9219         2003-12-31  Mark Mitchell  <mark@codesourcery.com>
9220
9221         Revert this change:
9222         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
9223         + REG addressing modes.
9224
9225         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
9226         + REG addressing modes.
9227
9228         2003-12-30  Mark Mitchell  <mark@codesourcery.com>
9229
9230         * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept
9231         CONSTANT_P_RTX.
9232
9233         2003-30-12  Paul Brook  <paul@codesourcery.com>
9234
9235         * longlong.h: protect arm inlines with !defined (__thumb__)
9236
9237         2003-30-12  Paul Brook  <paul@codesourcery.com>
9238
9239         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Always define __arm__.
9240
9241         2003-12-30  Nathan Sidwell  <nathan@codesourcery.com>
9242
9243         * builtins.c (expand_builtin_apply_args_1): Fix typo in previous
9244         change.
9245
9246         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
9247
9248         * builtins.c (expand_builtin_apply_args_1): Add pretend args size
9249         to the virtual incoming args pointer for downward stacks.
9250
9251         2003-12-29  Paul Brook  <paul@codesourcery.com>
9252
9253         * config/arm/arm-cores.def: Add cost function.
9254         * config/arm/arm.c (arm_*_rtx_costs): New functions.
9255         (arm_rtx_costs): Remove
9256         (struct processors): Add rtx_costs field.
9257         (all_cores, all_architectures): Ditto.
9258         (arm_override_options): Set targetm.rtx_costs.
9259         (thumb_rtx_costs): New function.
9260         (arm_rtx_costs_1): Remove cases handled elsewhere.
9261         * config/arm/arm.h (processor_type): Add COSTS parameter.
9262
9263         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
9264
9265         * config/arm/arm.md (generic_sched): arm926 has its own scheduler.
9266         (arm926ejs.md): Include it.
9267         * config/arm/arm926ejs.md: New pipeline description.
9268
9269         2003-12-24  Paul Brook  <paul@codesourcery.com>
9270
9271         * config/arm/arm.c (arm_arch6j): New variable.
9272         (arm_override_options): Set it.
9273         (arm_emit_extendsi): New function.
9274         * config/arm/arm-protos.h (arm_emit_extendsi): Add prototype.
9275         * config/arm/arm.h (arm_arch6j): Declare.
9276         * config/arm/arm.md: Add sign/zero extend insns.
9277
9278         2003-12-23  Paul Brook  <paul@codesourcery.com>
9279
9280         * config/arm/arm.c (all_architectures): Add armv6.
9281         * doc/invoke.texi: Document it.
9282
9283         2003-12-19  Paul Brook  <paul@codesourcery.com>
9284
9285         * config/arm/arm.md: Add load1 and load_byte "type" attrs.  Modify
9286         insn patterns to match.
9287         * config/arm/arm-generic.md: Ditto.
9288         * config/arm/cirrus.md: Ditto.
9289         * config/arm/fpa.md: Ditto.
9290         * config/amm/iwmmxt.md: Ditto.
9291         * config/arm/arm1026ejs.md: Ditto.
9292         * config/arm/arm1135jfs.md: Ditto.  Add insn_reservation and bypasses
9293         for 11_loadb.
9294
9295         2003-12-18  Nathan Sidwell  <nathan@codesourcery.com>
9296
9297         * config/arm/arm-protos.h (arm_no_early_alu_shift_value_dep): Declare.
9298         * config/arm/arm.c (arm_adjust_cost): Check shift cost for
9299         TYPE_ALU_SHIFT and TYPE_ALU_SHIFT_REG.
9300         (arm_no_early_store_addr_dep, arm_no_early_alu_shift_dep,
9301         arm_no_early_mul_dep): Correctly deal with conditional execution,
9302         parallels and single shift operations.
9303         (arm_no_early_alu_shift_value_dep): Define.
9304         * arm.md (attr type): Replace 'normal' with 'alu',
9305         'alu_shift' and 'alu_shift_reg'.
9306         (attr core_cycles): Adjust.
9307         (*addsi3_carryin_shift, andsi_not_shiftsi_si, *arm_shiftsi3,
9308         *shiftsi3_compare0, *notsi_shiftsi, *notsi_shiftsi_compare0,
9309         *not_shiftsi_compare0_scratch, *cmpsi_shiftsi, *cmpsi_shiftsi_swp,
9310         *cmpsi_neg_shiftsi, *arith_shiftsi, *arith_shiftsi_compare0,
9311         *arith_shiftsi_compare0_scratch, *sub_shiftsi,
9312         *sub_shiftsi_compare0, *sub_shiftsi_compare0_scratch,
9313         *if_shift_move, *if_move_shift, *if_shift_shift): Set type
9314         attribute appropriately.
9315         * config/arm/arm1026ejs.md (alu_op): Adjust.
9316         (alu_shift_op, alu_shift_reg_op): New.
9317         * config/arm/arm1136.md: Add better bypasses for early
9318         registers. Remove load[234] and store[234] bypasses.
9319         (11_alu_op): Adjust.
9320         (11_alu_shift_op, 11_alu_shift_reg_op): New.
9321
9322         2003-12-15  Nathan Sidwell  <nathan@codesourcery.com>
9323
9324         * config/arm/arm-protos.h (arm_no_early_store_addr_dep,
9325         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Declare.
9326         * config/arm/arm.c (arm_no_early_store_addr_dep,
9327         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Define.
9328         * config/arm/arm1026ejs.md: Add load-store bypass.
9329         * config/arm/arm1136jfs.md (11_alu_op): Take 2 cycles.
9330         Add bypasses between instructions.
9331
9332         2003-12-10  Paul Brook  <paul@codesourcery.com>
9333
9334         * config/arm/arm.c (arm_fpu_model): New variable.
9335         (arm_fload_abi): New variable.
9336         (target_fpe_name): Rename from target_fp_name.
9337         (target_fpu_name): New variable.
9338         (arm_is_cirrus): Remove.
9339         (fpu_desc): New struct.
9340         (all_fpus): Define.
9341         (pf_model_for_fpu): Define.
9342         (all_loat_abis): Define.
9343         (arm_override_options): Set fp arch flags based on -mfpu=
9344         and -float-abi=.
9345         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
9346         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
9347         (*): Use new TARGET_* flags.
9348         * config/arm/arm.h (TARGET_ANY_HARD_FLOAT): Remove.
9349         (TARGET_HARD_FLOAT): No longer implies TARGET_FPA.
9350         (TARGET_SOFT_FLOAT): Ditto.
9351         (TARGET_SOFT_FLOAT_ABI): New.
9352         (TARGET_MAVERICK): Rename from TARGET_CIRRUS.  No longer implies
9353         TARGET_HARD_FLOAT.
9354         (TARGET_VFP): No longer implies TARGET_HARD_FLOAT.
9355         (TARGET_OPTIONS): Add -mfpu=.
9356         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
9357         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
9358         (arm_pf_model): Define.
9359         (arm_float_abi_type): Define.
9360         (fputype): Add FPUTYPE_VFP.  Change SOFT_FPA->NONE
9361         * config/arm/arm.md: Use new TARGET_* flags.
9362         * config/arm/cirrus.md: Ditto.
9363         * config/arm/fpa.md: Ditto.
9364         * config/arm/elf.h (ASM_SPEC): Pass -mfloat-abi= and -mfpu=.
9365         * config/arm/semi.h (ASM_SPEC): Ditto.
9366         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Specify vfp.
9367         (FPUTYPE_DEFAULT): Set to VFP.
9368         * doc/invoke.texi: Document -mfpu= and -mfloat-abi=.
9369
9370         2003-11-22  Phil Edwards  <phil@codesourcery.com>
9371
9372         PR target/12476
9373         * config/arm/arm.c (arm_output_mi_thunk):  In Thumb mode, use
9374         'bx' instead of 'b' to avoid branch range restrictions.  Output
9375         the thunk immediately before the thunked-to function.
9376         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME):  Do not emit
9377         .thumb_func if a thunk is being generated.  Emit .code 16 along
9378         with .thumb_func if a thunk is not being generated.
9379
9380         2003-11-15  Nicolas Pitre <nico@cam.org>
9381
9382         * config/arm/arm.md (ashldi3, arm_ashldi3_1bit, ashrdi3,
9383         arm_ashrdi3_1bit, lshrdi3, arm_lshrdi3_1bit): New patterns.
9384         * config/arm/iwmmxt.md (ashrdi3_iwmmxt): Renamed from ashrdi3.
9385         (lshrdi3_iwmmxt): Renamed from lshrdi3.
9386         * config/arm/arm.c (IWMMXT_BUILTIN2): Renamed argument accordingly.
9387
9388         2003-11-12  Steve Woodford  <scw@wasabisystems.com>
9389             Ian Lance Taylor  <ian@wasabisystems.com>
9390
9391         * config/arm/lib1funcs.asm (ARM_DIV_BODY, ARM_MOD_BODY): Add new
9392         code for __ARM_ARCH__ >= 5 && ! defined (__OPTIMIZE_SIZE__).
9393
9394         2003-11-05  Phil Edwards  <phil@codesourcery.com>
9395
9396         * config/arm/arm.md (insn):  Add new V6 instruction names.
9397         (generic_sched):  New attr.
9398         * config/arm/arm-generic.md:  Use generic_sched here.
9399         * config/arm/arm1026ejs.md:  Do not model fetch/issue/decode
9400         stages of pipeline.  Adjust latency counts accordingly.
9401         * config/arm/arm1136jfs.md:  New file.
9402
9403         2003-10-28  Mark Mitchell  <mark@codesourcery.com>
9404
9405         * config/arm/arm.h (processor_type): New enumeration type.
9406         (CPP_ARCH_DEFAULT_SPEC): Set appropriately for ARM 926EJ-S,
9407         ARM1026EJ-S, ARM1136J-S, and ARM1136JF-S processor cores.
9408         (CPP_CPU_ARCH_SPEC): Likewise.
9409         * config/arm/arm.c (arm_tune): New variable.
9410         (all_cores): Use cores.def.
9411         (all_architectures): Add representative processor.
9412         (arm_override_options): Restructure way in which tuning
9413         information is deduced.
9414         * arm.md: Update "insn" and "type" attributes throughout.
9415         (insn): New attribute.
9416         (type): Compute "mult" from "insn" attribute.  Add load2,
9417         load3, load4 alternatives.
9418         (arm automaton): Move to arm-generic.md.
9419         * config/arm/arm-cores.def: New file.
9420         * config/arm/arm-generic.md: Likewise.
9421         * config/arm/arm1026ejs.md: Likewise.
9422
9423 2004-02-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
9424
9425         * doc/invoke.texi (SPARC options): Remove -mflat and
9426         all -mxxx (xxx:chip) options.
9427         * config/sparc/aout.h (DBX_REGISTER_NUMBER): Delete.
9428         * config/sparc/litecoff.h (DBX_REGISTER_NUMBER): Likewise.
9429         * config/sparc/netbsd-elf.h (DBX_REGISTER_NUMBER): Likewise.
9430         * config/sparc/sol2.h (DBX_REGISTER_NUMBER): Likewise.
9431         * config/sparc/sparc-protos.h: Delete sparc_flat_* prototypes.
9432         * config/sparc/sparc.c: Likewise.
9433         (sparc_output_function_prologue): Remove TARGET_FLAT handling.
9434         (sparc_nonflat_function_prologue): Rename into sparc_function_prologue.
9435         (sparc_output_function_epilogue): Remove TARGET_FLAT handling.
9436         (sparc_nonflat_function_epilogue): Rename into sparc_function_epilogue.
9437         (struct sparc_frame_info, current_frame_info, zero_frame_info): Delete.
9438         (sparc_flat_must_save_register_p): Likewise.
9439         (sparc_flat_compute_frame_size): Likewise.
9440         (sparc_flat_save_restore): Likewise.
9441         (sparc_flat_function_prologue): Likewise.
9442         (sparc_flat_function_epilogue): Likewise.
9443         (sparc_flat_epilogue_delay_slots): Likewise.
9444         (sparc_flat_eligible_for_epilogue_delay): Likewise.
9445         (sparc_function_ok_for_sibcall): Remove TARGET_FLAT handling.
9446         * config/sparc/sparc.h (MASK_FLAT, TARGET_FLAT): Delete.
9447         (TARGET_SWITCHES): Remove -mflat and all -mxxx (xxx:chip) options.
9448         (SPARC_INCOMING_INT_ARG_FIRST): Remove TARGET_FLAT handling.
9449         (CONDITIONAL_REGISTER_USAGE): Likewise.
9450         (FRAME_POINTER_REQUIRED): Likewise.
9451         (INITIAL_ELIMINATION_OFFSET): Likewise.
9452         (BASE_RETURN_VALUE_REG): Likewise.
9453         (BASE_OUTGOING_VALUE_REG): Likewise.
9454         (BASE_PASSING_ARG_REG): Likewise.
9455         (BASE_INCOMING_ARG_REG): Likewise.
9456         (INCOMING_REGNO): Likewise.
9457         (OUTGOING_REGNO): Likewise.
9458         (LOCAL_REGNO): Likewise.
9459         (DELAY_SLOTS_FOR_EPILOGUE): Likewise.
9460         (ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise.
9461         (EPILOGUE_USES): Likewise.
9462         * config/sparc/sparc.md ("isa" attribute): Change "v6" into "v7".
9463         ("flat" attribute): Delete.
9464         (do_builtin_setjmp_setup): Remove TARGET_FLAT and "flat" attribute
9465         handling.
9466         (call followed by jump define_peephole's): Delete.
9467         (exception_receiver): Likewise.
9468         (builtin_setjmp_receiver): Likewise.
9469         * config/sparc/t-sparclite (MULTILIB_OPTIONS): Remove -mflat.
9470
9471 2004-02-03  Paolo Bonzini  <bonzini@gnu.org>
9472
9473         PR c/11658
9474         PR c/13994
9475         * Makefile.in (c-parse.o, c-convert.o, c-typeck.o): Depend
9476         on langhooks.h.
9477         * objc/Make-lang.in (objc-parse.o): Depend on langhooks.h.
9478         * c-parse.in, c-convert.c, c-typeck.c, objc/objc-act.c:
9479         Include langhooks.h.  Replace c_common_truthvalue_conversion
9480         with the truthvalue_conversion language hook throughout.
9481         (expr_no_commas): Call default_conversion before save_expr
9482         for the first term of the production 'x ? : y'.
9483         * c-common.c (c_common_truthvalue_conversion): Remove
9484         obsolete block.  Invoke recursively the hook instead
9485         of this function.
9486         * c-convert.c (convert): handle ERROR_MARK_NODE.
9487         * c-typeck.c (build_binary_op): handle ERROR_MARK_NODE
9488         returned by the truthvalue_conversion language hook.
9489         * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
9490         c_objc_common_truthvalue_conversion.
9491         * c-objc-common.c (c_objc_common_truthvalue_conversion):
9492         New function.
9493         * c-tree.h (c_objc_common_truthvalue_conversion): Declare it.
9494         * objc/objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
9495         c_objc_common_truthvalue_conversion.
9496
9497 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
9498
9499         * config/c4x/c4x.h (FUNCTION_VALUE): Use gen_rtx_REG instead
9500         of gen_rtx.
9501         (LIBCALL_VALUE): Likewise.
9502         * config/ip2k/ip2k.c (mdr_try_propagate_clr_sequence): Use
9503         gen_rtx_CC0 instead of gen_rtx.
9504         * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use
9505         gen_rtx_fmt_e and gen_rtx_fmt_ee instead of gen_rtx.
9506         (m68hc11_expand_compare): Use gen_rtx_fmt_ee instead of
9507         gen_rtx.
9508         (m68hc11_emit_logical): Likewise.
9509
9510 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
9511
9512         * config/alpha/alpha.c, config/arm/arm.c, config/c4x/c4x.c,
9513         config/fr30/fr30.md, config/frv/frv.c, config/frv/frv.md,
9514         config/h8300/h8300.c, config/ia64/ia64.c, config/ip2k/ip2k.md,
9515         config/m32r/m32r.md, config/m68hc11/m68hc11.c,
9516         config/mips/mips.md, config/mmix/mmix.c,
9517         config/mn10300/mn10300.c, config/mn10300/mn10300.md,
9518         config/ns32k/ns32k.c, config/pa/pa.md, config/pdp11/pdp11.c,
9519         config/rs6000/altivec.md, config/s390/s390.c,
9520         config/s390/s390.h, config/s390/s390.md, config/sh/sh.c,
9521         config/sh/sh.h, config/sh/sh.md, config/stormy16/stormy16.c:
9522         Use const0_rtx instead of GEN_INT (0).  Do the same for other
9523         constants that are readily available.
9524
9525 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
9526
9527         * doloop.c, optabs.c, regmove.c, sched-deps.c,
9528         config/i386/i386.c, config/i386/i386.md: Use const0_rtx
9529         instead of GEN_INT (0).  Do the same for other constants that
9530         are readily available.
9531
9532 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
9533
9534         * combine.c (simplify_set): Use gen_rtx_fmt_e instead of
9535         gen_rtx.
9536         * emit-rtl.c (init_emit_once): Use gen_rtx_PC and gen_rtx_CC0
9537         instead of gen_rtx.
9538         * reload1.c (init_elim_table): Use gen_rtx_fmt_e instead of
9539         gen_rtx.
9540         * config/ns32k/ns32k.md (udivmodhi4): Use gen_rtx_IOR and
9541         gen_rtx_ASHIFT instead of gen_rtx.
9542         (udivmodqi4): Likewise.
9543
9544 2004-02-02  Richard Henderson  <rth@redhat.com>
9545
9546         PR target/13789
9547         * expr.c (store_expr): Use force_operand before emit_move_insn.
9548
9549 2004-02-02  Jeff Law  <law@redhat.com>
9550             Roger Sayle  <roger@eyesopen.com>
9551
9552         * tree.c (commutative_tree_code, associative_tree_code): New
9553         functions.
9554         (iterative_hash_expr): Use commutative_tree_code.
9555         * tree.h (commutative_tree_code, associative_tree_code): Declare.
9556         * fold-const.c (operand_equal_p): Use commutative_tree_code
9557         rather than inlining the commutativity check.
9558         (fold): Likewise.
9559
9560 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
9561
9562         * system.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Poison.
9563         * config/frv/frv-protos.h: Remove the prototype for
9564         frv_function_arg_keep_as_reference.
9565         * config/frv/frv.c (frv_function_arg_keep_as_reference):
9566         Remove.
9567         * config/frv/frv.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Likewise.
9568         * config/stormy16/stormy16.h: Remove the commented-out
9569         definition of FUNCTION_ARG_KEEP_AS_REFERENCE.
9570
9571 2004-02-03  Alan Modra  <amodra@bigpond.net.au>
9572
9573         PR target/13914
9574         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Use ap
9575         for retaddr_column.
9576
9577 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
9578
9579         * genemit.c (gen_exp): Generate gen_rtx_fmt_e* instead of
9580         gen_rtx.
9581
9582 2004-02-02  Eric Christopher  <echristo@redhat.com>
9583             Zack Weinberg  <zack@codesourcery.com>
9584
9585         * c-opts.c (c_common_handle_option): Add -finput-charset.
9586         * c.opt: Ditto.
9587         * cppcharset.c (one_iso88591_to_utf8): Remove.
9588         (convert_iso88591_utf8): Ditto.
9589         (conversion_tab): Remove 8859-1 converter.
9590         (_cpp_input_to_utf8): Remove.
9591         (_cpp_init_iconv_buffer): Ditto.
9592         (_cpp_close_iconv_buffer): Ditto.
9593         (_cpp_convert_input): New function.
9594         (_cpp_default_encoding): Ditto.
9595         * cpphash.h: Add/remove prototypes for above.
9596         * cppfiles.c (read_file_guts): Use _cpp_convert_input.
9597         * cppinit.c (cpp_create_reader): Use _cpp_default_encoding
9598         for narrow execution and input character sets.
9599         * cpplib.c (cpp_push_buffer): Delete uses of removed functions.
9600         * doc/cppopts.texi: Document -finput-charset.
9601
9602 2004-02-02  David Edelsohn  <edelsohn@gnu.org>
9603
9604         * rtlanal.c (refers_to_regno_p): Test regno, not inner_regno,
9605         against FIRST_PSEUDO_REGISTER.
9606
9607 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
9608
9609         * doc/invoke.texi (SPARC options): Further improve.
9610
9611 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
9612
9613         * config/arm/arm.md, config/c4x/c4x.md, config/cris/cris.md,
9614         config/h8300/h8300.c, config/ip2k/ip2k.md,
9615         config/iq2000/iq2000.c, config/mips/mips.c,
9616         config/rs6000/rs6000.c, config/rs6000/rs6000.md,
9617         config/sh/sh.c, config/sh/sh.md, config/stormy16/stormy16.c,
9618         config/v850/v850.md: Fix indentation.
9619
9620 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
9621
9622         * config/sparc/sparc.c (function_arg_slotno): Align TImode
9623         arguments on a 16-byte boundary in the parameter array if ARCH64.
9624         Split handling of TFmode.
9625
9626 2004-02-02  Paolo Bonzini  <bonzini@gnu.org>
9627
9628         * rtlanal.c (reg_overlap_mentioned_p) [!ENABLE_CHECKING]:
9629         Don't test CONSTANT_P (x).
9630         (reg_overlap_mentioned_p): Merge check for STRICT_LOWPART,
9631         ZERO_EXTRACT, SIGN_EXTRACT with the switch statement.
9632         Fix misindentation.
9633
9634 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
9635
9636         * doc/invoke.texi (SPARC options): Document that -mflat is deprecated.
9637
9638 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
9639
9640         * config/arc/arc.md, config/arm/arm.c, config/arm/arm.md,
9641         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.md,
9642         config/frv/frv.c, config/h8300/h8300.c, config/ip2k/ip2k.md,
9643         config/iq2000/iq2000.c, config/m32r/m32r.c,
9644         config/mcore/mcore.c, config/mips/mips.c, config/mmix/mmix.md,
9645         config/mn10300/mn10300.c, config/rs6000/rs6000.c,
9646         config/rs6000/rs6000.md, config/sh/sh.c, config/sh/sh.md,
9647         config/stormy16/stormy16.c, config/v850/v850.md,
9648         config/xtensa/xtensa.c: Replace gen_rtx with gen_rtx_fmt_e*.
9649
9650 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
9651
9652         * config/mcore/mcore.c (block_move_sequence): Replace
9653         gen_rtx_CONST_INT with GEN_INT.
9654
9655 2004-02-02  Jan Hubicka  <jh@suse.cz>
9656
9657         * alias.c (record_set): Use hard_regno_nregs.
9658         * bt-load.c (find_btr_reference, note_btr_set): Likewise.
9659         * builtins.c (apply_args_size): Likewise.
9660         * caller-save.c (setup_save_areas, save_call_clobbered_regs,
9661         mark_set_regs, add_stored_regs, mark_referenced_regs,
9662         insert_restore, insert_save, insert_one_insn): Likewise.
9663         * cfgcleanup.c: Include regs.h
9664         (mark_effect, mentions_nonequal_regs): Likewise.
9665         * cfgrtl.c (mark_killed_regs): Likewise
9666         * combine.c (update_table_tick, record_value_for_reg,
9667         record_dead_and_set_regs, get_last_value_validate, use_crosses_set_p,
9668         reg_dead_at_p_1, reg_dead_at_p, mark_used_regs_combine, move_deaths,
9669         reg_bitfield_target_p, distribute_notes): Likewise.
9670         * cse.c (mention_regs, insert, invalidate, invalidate_for_call,
9671         exp_equiv_p, cse_insn): Likewise.
9672         * cselib.c (cselib_lookup): Likewise.
9673         (cselib_invalidate_regno, cselib_record_set): Likewise.
9674         * df.c (df_ref_record): Likewise.
9675         * dwarf2out.c (reg_loc_descriptor, multiple_reg_loc_descriptor):
9676         Likewise.
9677         * flow.c (mark_reg, insn_dead_p, mark_set_1, mark_used_reg,
9678         count_or_remove_death_notes_bb): Likewise.
9679         * function.c (aggregate_value_p, keep_stack_depressed): Likewise.
9680         * gloval.c (global_alloc, find_reg, mark_reg_store, mark_reg_conflicts,
9681         mark_reg_death, set_preference, reg_becomes_live, reg_dies): Likewise.
9682         * integrate.c (mark_stores): Likewise.
9683         * jump.c (delete_prior_computation): Likewise.
9684         * lcm.c (reg_dies, reg_becomes_live): Likewise.
9685         * local-alloc.c (combine_regs, find_free_reg, post_mark_life): Likewise.
9686         * loop.c (LOOP_REGNO_NREGS): Likewise.
9687         * postreload.c (reload_combine, reload_combine_note_store,
9688         reload_combine_note_use, reload_cse_move2add, move2add_note_store): Likewise.
9689         * ra-colorize.c (combine, color_usable_p, get_free_reg,
9690         calculate_dont_begin, calculate_dont_begin, colorize_one_web,
9691         try_recolor_web, insert_coalesced_conflicts, check_colors,
9692         break_precolored_alias): Likewise.
9693         * ra-debug.c: Include regs.h
9694         (ra_print_rtx_object): Likewise.
9695         * ra-rewrite (choose_spill_colors): Likewise.
9696         (spill_same_color_p, update_spill_colors, spill_is_free): Likewise.
9697         * ra.c (init_ra): Likewise.
9698         * recog.c (reg_fits_class_p, peep2_reg_dead_p,
9699         peep2_find_free_register): Likewise.
9700         * reg-stack.c (subst_stack_regs_pat, convert_regs_exit): Likewise.
9701         * regclass.c (hard_regno_nregs): New array.
9702         (init_reg_modes_once): Initialize it.
9703         (choose_hard_reg_mode): Use it.
9704         (record_reg_classes): Likewise.
9705         * regmove.c (mark_flags_life_zones): Likewise.
9706         * regrename.c (note_sets, clear_dead_regs, regrename_optimize,
9707         scan_rtx_reg, dump_def_use_chain, kill_value, set_value_regno,
9708         copy_value, maybe_mode_change, find_oldest_value_reg,
9709         copyprop_hardreg_forward_1):
9710         * regs.h (hard_regno_nregs): Declare.
9711         * realod.c (reload_inner_reg_of_subreg): Use it.
9712         (push_reload, combine_reloads, find_dummy_reload,
9713         hard_reg_set_here_p, operands_match_p, decompose, find_reloads,
9714         refers_to_regno_for_reload_p, find_equiv_reg, regno_clobbered_p,
9715         reload_adjust_reg_for_mode): Likewise.
9716         * reload1.c (compute_use_by_pseudos, count_pseudo,
9717         count_spilled_pseudo, find_reg, find_reload_regs, mark_home_live,
9718         spill_hard_reg, forget_old_reloads_1, mark_reload_reg_in_use,
9719         clear_reload_reg_in_use, reload_reg_free_for_value_p, free_for_value_p
9720         allocate_reload_reg, choose_reload_regs, emit_reload_insns,
9721         delete_output_reload): Likewise.
9722         * resource.c (update_live_status, mark_referenced_resources,
9723         mark_set_resources, mark_target_live_regs): Likewise.
9724         * rtlanal.c:  Include regs.h
9725         (refers_to_regno_p, reg_overlap_mentioned_p, dead_or_set_p,
9726         dead_or_set_regno_p, find_regno_note, find_reg_fusage,
9727         subreg_regno_offset, subreg_offset_representable_p,
9728         hoist_test_store): Likewise.
9729         * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
9730         * sched-rgn.c (check_live_1, update_live_1): Likewise.
9731         * stmt.c: Include regs.h
9732         (decl_conflicts_with_clobbers_p): Likewise.
9733         * varasm.c (make_decl_rtl): Likewise.
9734         * Makefile.in (cfgcleanup.o, rtlanal.o, ra-debug.o): Add regs.h dependnecy.
9735
9736 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
9737
9738         * config/arm/arm.c, config/arm/arm.h, config/arm/arm.md,
9739         config/arm/linux-gas.h, config/arm/netbsd-elf.h,
9740         config/arm/netbsd.h, config/arm/pe.c, config/avr/avr.c,
9741         config/avr/avr.h, config/avr/avr.md, config/c4x/c4x.h,
9742         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
9743         config/frv/frv.h, config/ip2k/ip2k.c, config/iq2000/iq2000.c,
9744         config/iq2000/iq2000.h, config/m32r/m32r.c,
9745         config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
9746         config/m68hc11/m68hc11.md, config/m68k/m68k.md,
9747         config/mcore/mcore.c, config/mcore/mcore.h,
9748         config/mcore/mcore.md, config/mips/mips.c,
9749         config/ns32k/ns32k.h, config/ns32k/ns32k.md,
9750         config/rs6000/rs6000.c, config/s390/s390.c,
9751         config/s390/s390.md, config/sparc/sparc.c, config/v850/v850.c,
9752         config/xtensa/xtensa.h, config/xtensa/xtensa.md: Replace
9753         "gen_rtx (FOO, " with "gen_rtx_FOO (".
9754
9755 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
9756
9757         * config/h8300/h8300.md (two peephole2's): New.
9758
9759 2004-02-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
9760
9761         * config/sparc/sol2-bi.h: Handle TARGET_CPU_ultrasparc3.
9762         (CPP_CPU_SPEC): Handle -mcpu=ultrasparc3.
9763         (ASM_CPU_SPEC): Likewise
9764         * config/sparc/sol2.h: Handle TARGET_CPU_ultrasparc3.
9765         (ASM_CPU_SPEC): Remove -mcpu=v8plus.  Handle -mcpu=ultrasparc3.
9766
9767 2004-02-01  Roger Sayle  <roger@eyesopen.com>
9768
9769         * builtins.c (expand_builtin_pow): If flag_unsafe_math_optimizations
9770         isn't set, don't call expand_builtin_mathfn_2 to use the pow optab.
9771         (expand_builtin): Always call expand_builtin_pow.
9772
9773 2004-02-01  Roger Sayle  <roger@eyesopen.com>
9774
9775         * builtins.def (BUILT_IN_SIGNBIT, BUILT_IN_SIGNBITF,
9776         BUILT_IN_SIGNBITL): New GCC builtins.
9777         * builtins.c (expand_builtin_signbit): New function to RTL expand
9778         calls to signbit, signbitf and signbitl as inline intrinsics.
9779         (expand_builtin): Call expand_builtin_signbit for BUILT_IN_SIGNBIT*.
9780         (fold_builtin_signbit): New function to perform constant folding
9781         of signbit, signbitf and signbitl.
9782         (fold_builtin): Call fold_builtin_signbit for BUILT_IN_SIGNBIT*.
9783
9784         * doc/extend.texi: Document new signbit{,f,l} builtins.
9785
9786 2004-02-01  Richard Sandiford  <rsandifo@redhat.com>
9787
9788         * config/mips/mips.md (adddi3_internal_2): Remove superfluous %s.
9789
9790 2004-02-01  Chris Demetriou  <cgd@broadcom.com>
9791
9792         * config/mips/mips.h (PREDICATE_CODES): Remove entries for
9793         "mips_const_double_ok" and "simple_memory_operand", which were
9794         removed from the MIPS port with the mips-3_4-rewrite branch merge.
9795         * config/mips/mips.c (mips16_lay_out_constants): Update comment
9796         for removal of simple_memory_operand.
9797
9798 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
9799
9800         * config/c4x/c4x.md: Use GEN_INT instead of
9801         gen_rtx (CONST_INT, ...).
9802
9803 2004-01-31  Richard Henderson  <rth@redhat.com>
9804
9805         * varasm.c (output_constant_pool): Don't zap the pool.
9806
9807 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
9808
9809         * genrecog.c (decision_type): Add DT_const_int.
9810         (write_cond) [DT_const_int]: Print a comparison against small
9811         constant.
9812         (write_node): Simplify comparisons against small constants
9813         before printing tests.
9814
9815 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
9816
9817         * config/m32r/m32r.c (m32r_load_pic_register): Use GEN_INT
9818         instead of gen_rtx_CONST_INT.
9819
9820 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
9821
9822         * config/xtensa/xtensa.h (DYNAMIC_CHAIN_ADDRESS): Use GEN_INT
9823         instead of gen_rtx_CONST_INT.
9824
9825 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
9826
9827         * target-def.h (TARGET_STRICT_ARGUMENT_NAMING): Define as
9828         hook_bool_CUMULATIVE_ARGS_false.
9829         * targhooks.c (default_strict_argument_naming): Rename to
9830         hook_bool_CUMULATIVE_ARGS_false.
9831         * targhooks.h: Update the prototype for
9832         default_strict_argument_naming.
9833
9834 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
9835
9836         * config/sh/sh.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
9837         * config/sh/sh.h: Likewise.
9838         * config/sh/sh.md: Likewise.
9839
9840 2004-01-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
9841
9842         * doc/invoke.texi (SPARC options): Restructure and update.
9843
9844 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
9845
9846         * system.h (PROMOTE_FUNCTION_ARGS, STRUCT_VALUE_INCOMING, and
9847         STRICT_ARGUMENT_NAMING): Poison.
9848         * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS): Define as
9849         hook_bool_tree_false.
9850         * targhooks.c (default_promote_function_args): Remove.
9851         (default_struct_value_rtx): Don't use STRUCT_VALUE_INCOMING.
9852         Don't check incoming.
9853         (default_strict_argument_naming): Don't use
9854         STRICT_ARGUMENT_NAMING.
9855         * targhooks.h: Remove the prototype for
9856         default_promote_function_args.
9857
9858 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
9859
9860         * config/i386/i386-protos.h: Remove the prototype for
9861         ix86_setup_incoming_varargs.
9862         * config/i386/i386.c (TARGET_SETUP_INCOMING_VARARGS): New.
9863         (ix86_setup_incoming_varargs): Make it static.
9864         * config/i386/i386.h (SETUP_INCOMING_VARARGS): Remove.
9865
9866 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
9867
9868         * alloc-pool.c: Fix comment typos.
9869         * builtin-types.def: Likewise.
9870         * builtins.def: Likewise.
9871         * c-pretty-print.c: Likewise.
9872         * df.h: Likewise.
9873         * reload1.c: Likewise.
9874
9875 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
9876
9877         * doc/invoke.texi: Follow spelling conventions.
9878         * doc/tm.texi: Likewise.
9879
9880 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
9881
9882         * doc/install.texi: Fix typos.
9883         * doc/invoke.texi: Likewise.
9884
9885 2004-01-31  Ulrich Weigand  <uweigand@de.ibm.com>
9886
9887         * config/s390/s390.c (s390_decompose_address): Do not treat virtual
9888         registers as pointers.
9889         * config/s390/s390.md ("*la_31" second peephole2): Fix incorrect mode.
9890
9891 2004-01-31  Paolo Bonzini  <bonzini@gnu.org>
9892
9893         * combine.c (cse_main): Set gen_lowpart to gen_lowpart_for_combine
9894         and restore it to gen_lowpart_general on exit.
9895         (gen_lowpart_for_combine): Adjust all callers to go through
9896         gen_lowpart.
9897         * cse.c (cse_main): Set gen_lowpart to gen_lowpart_if_possible
9898         and restore it to gen_lowpart_general on exit.
9899         (gen_lowpart_if_possible): Adjust all callers to go through
9900         gen_lowpart.
9901         * emit-rtl.c (gen_lowpart_general): New name of gen_lowpart.
9902         (gen_lowpart): Declare as pointer to function, initialized to
9903         gen_lowpart_general.
9904         * rtl.h (gen_lowpart): Declare as pointer to function.
9905
9906 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
9907
9908         * bt-load.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
9909         * calls.c: Likewise.
9910         * emit-rtl.c: Likewise.
9911         * function.c: Likewise.
9912         * reload1.c: Likewise.
9913         * config/i386/cygming.h: Likewise.
9914         * config/i386/i386.c: Likewise.
9915         * config/i386/winnt.c: Likewise.
9916
9917 2004-01-30  Dara Hazeghi  <dhazeghi@yahoo.com>
9918
9919         PR bootstrap/9249
9920         * doc/install.texi: document --enable-__cxa_atexit option.
9921         * configure.ac: Disable __cxa_atexit if not supported.
9922         * configure: Regenerate.
9923
9924 2003-01-30  Daniel Berlin  <dberlin@dberlin.org>
9925
9926         * ggc-zone.c (ggc_free): New function.
9927
9928 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
9929
9930         alloc-pool.c, c-lex.c, c-pragma.h, c-semantics.c, cfghooks.c,
9931         cfghooks.h, cfglayout.c, cfgloopmanip.c, debug.c, debug.h,
9932         flow.c, genextract.c, ggc-common.c, ggc-page.c, ggc.h,
9933         ifcvt.c, jump.c, loop-unswitch.c, timevar.c, timevar.def,
9934         tree-optimize.c, vmsdbgout.c, config/fp-bit.c,
9935         config/alpha/alpha.c, config/alpha/alpha.h,
9936         config/alpha/alpha.md, config/alpha/unicosmk.h,
9937         config/alpha/vms.h, config/arm/linux-elf.h, config/avr/avr.c,
9938         config/c4x/c4x-protos.h, config/c4x/c4x.md,
9939         config/d30v/d30v.h, config/frv/frv.md, config/frv/frvbegin.c,
9940         config/frv/frvend.c, config/i386/cygming.h,
9941         config/i386/djgpp.h, config/i386/emmintrin.h,
9942         config/i386/gthr-win32.c, config/i386/i386-interix.h,
9943         config/i386/i386-protos.h, config/i386/openbsd.h,
9944         config/i386/winnt.c, config/i386/xm-mingw32.h,
9945         config/i386/xmmintrin.h, config/ia64/ia64.md,
9946         config/iq2000/iq2000.md, config/m32r/m32r.md,
9947         config/m68k/m68k.md, config/mcore/mcore-elf.h,
9948         config/mcore/mcore.md, config/mips/elf.h, config/mips/elf64.h,
9949         config/mips/iris5gas.h, config/mips/iris6.h,
9950         config/mips/iris6gas.h, config/mips/linux.h,
9951         config/mips/mips.md, config/mips/netbsd.h,
9952         config/mips/openbsd.h, config/mips/windiss.h,
9953         config/pa/fptr.c, config/rs6000/aix.h,
9954         config/rs6000/altivec.h, config/rs6000/darwin.h,
9955         config/rs6000/xcoff.h, config/s390/s390-protos.h,
9956         config/s390/s390.c, config/s390/s390.h, config/s390/s390.md,
9957         config/sh/netbsd-elf.h, config/sh/sh.h, config/sh/vxworks.h,
9958         config/sparc/sol2.h: Update copyright.
9959
9960 2004-01-30  Kelley Cook  <kcook@gcc.gnu.org>
9961
9962         * Makefile.in (abs_docdir, abs_srcdir): Define.
9963         (doc/%.dvi, doc/gccinstall.dvi): Use $(abs_docdir).
9964
9965 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
9966
9967         * genconfig.c (main): Have CC0_P check its operand even on a
9968         target without cc0.
9969
9970 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
9971
9972         * config/alpha/alpha.c: Remove mentions of deprecates macros
9973         in comments, remove some target-independent comments about target
9974         macros, and/or add minimal function comments for target hook
9975         implementations.
9976         * config/avr/avr.c: Likewise.
9977         * config/ia64/ia64.h: Likewise.
9978         * config/ip2k/ip2k.c: Likewise.
9979         * config/iq2000/iq2000.c: Likewise.
9980         * config/m32r/m32r.h: Likewise.
9981         * config/m68hc11/m68hc11.c: Likewise.
9982         * config/mcore/mcore.c: Likewise.
9983         * config/mmix/mmix.c: Likewise.
9984         * config/mn10300/mn10300.c: Likewise.
9985         * config/pa/pa.c: Likewise.
9986         * config/pdp11/pdp11.c: Likewise.
9987         * config/rs6000/rs6000.h: Likewise.
9988         * config/sh/sh.c: Likewise.
9989         * config/sh/sh.h: Likewise.
9990         * config/sparc/sparc.c: Likewise.
9991         * config/sparc/sparc.h: Likewise.
9992         * config/stormy16/stormy16.c: Likewise.
9993         * config/xtensa/xtensa.c: Likewise.
9994
9995 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
9996
9997         PR optimization/12147
9998         * reload1.c (reload_reg_free_p): RELOAD_OTHER conflicts with
9999         RELOAD_FOR_OPADDR_ADDR.
10000         (reload_reg_reaches_end_p): RELOAD_FOR_OTHER_ADDRESS register
10001         might be reused as RELOAD_FOR_OPADDR_ADDR register.
10002
10003 2004-01-30  Jan Hubicka  <jh@suse.cz>
10004
10005         * reload.c (get_secondary_mem): Fix updating of
10006         secondary_memlocs_elim_used.
10007
10008 2004-01-30  Richard Henderson  <rth@redhat.com>
10009
10010         * varasm.c (struct rtx_const, struct pool_constant): Remove.
10011         (MAX_RTX_HASH_TABLE): Remove.
10012         (const_rtx_hash_table, const_rtx_sym_hash_table): Remove.
10013         (first_pool, last_pool, pool_offset): Remove.
10014         (struct rtx_constant_pool): Split out from ...
10015         (struct varasm_status): ... here.  Reference one via pointer.
10016         (struct constant_descriptor_rtx): Merge struct pool_constant.
10017         (SYMHASH): Remove.
10018         (decode_rtx_const): Remove.
10019         (const_hash_rtx, compare_constant_rtx): Remove.
10020         (record_constant_rtx): Remove.
10021         (const_desc_rtx_hash, const_desc_rtx_eq): New.
10022         (const_desc_rtx_sym_hash, const_desc_rtx_sym_eq): New.
10023         (const_rtx_hash_1, const_rtx_hash): New.
10024         (init_varasm_status): Allocate a rtx_constant_pool, and its hashes.
10025         (simplify_subtraction): Use simplify_rtx.
10026         (force_const_mem): Rewrite to use new data structures.
10027         (find_pool_constant): Likewise.
10028         (get_pool_constant, get_pool_constant_mark,
10029         get_pool_constant_for_function, get_pool_mode,
10030         get_pool_mode_for_function, get_pool_offset, get_pool_size): Likewise.
10031         (output_constant_pool_2): Split out from output_constant_pool.
10032         (output_constant_pool_1): Likewise.  Use new pool datastructures.
10033         (output_constant_pool): Zap entire pool datastructure.
10034         (mark_constant): Use new pool datastructures.
10035         (mark_constants): Use for_each_rtx.
10036         (mark_constant_pool): Use new pool datastructures.
10037
10038 2004-01-30  Fariborz Jahanian <fjahanian@apple.com>
10039
10040         * config/rs6000/rs6000.c (rs6000_emit_move): Remove #if 0.
10041         Copy operands[1] to pseudo for simplify_gen_subreg.
10042
10043 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
10044
10045         * gcse.c (bypass_block): Fix a typo in the previous check-in
10046         to the file.
10047
10048 2004-01-30  Andrew Pinski <pinskia@physics.uc.edu>
10049
10050         * toplev.c: Include alloc-pool.h.
10051         * Makefile.in (toplev.c): Update dependencies.
10052
10053 2004-01-30  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10054
10055         * combine.c (simplify_shift_const, case XOR): Be careful when
10056         commuting XOR with ASHIFTRT.
10057
10058 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
10059             Eric Botcazou  <ebotcazou@libertysurf.fr>
10060
10061         * config/sparc/sparc-protos.h: Remove the prototype for
10062         sparc_builtin_saveregs.
10063         * config/sparc/sparc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
10064         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
10065         (TARGET_PROMOTE_PROTOTYPES): Likewise.
10066         (TARGET_STRUCT_VALUE_RTX): Likewise.
10067         (TARGET_RETURN_IN_MEMORY): Likewise.
10068         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
10069         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
10070         (sparc_builtin_saveregs): Make it static.
10071         (sparc_promote_prototypes): New.
10072         (sparc_struct_value_rtx): Likewise.
10073         (sparc_return_in_memory): Likewise.
10074         * config/sparc/sparc.h: (PROMOTE_FUNCTION_ARGS): Remove.
10075         (PROMOTE_FUNCTION_RETURN): Likewise.
10076         (RETURN_IN_MEMORY): Likewise.
10077         (STRUCT_VALUE): Likewise.
10078         (STRUCT_VALUE_INCOMING): Likewise.
10079         (EXPAND_BUILTIN_SAVEREGS): Likewise.
10080         (STRICT_ARGUMENT_NAMING): Likewise.
10081         (PROMOTE_PROTOTYPES): Likewise.
10082
10083         * config/sparc/sparc.h (PROMOTE_MODE): Use word_mode.
10084
10085 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
10086
10087         PR c/12818
10088         * varasm.c (const_hash_1) <STRING_CST>: Use the
10089         address to compute the hash value if flag_writable_strings.
10090         (compare_constant) <STRING_CST>: Compare the addresses
10091         if flag_writable_strings.
10092         (build_constant_desc): Do not copy the expression for a
10093         STRING_CST if flag_writable_strings.
10094
10095 2004-01-30  Jan Hubicka  <jh@suse.cz>
10096
10097         * alloc-pool.c: Include hashtab.h
10098         (alloc_pool_descriptor): New structure
10099         (alloc_pool_hash): New global variable.
10100         (hash_descriptor, eq_descriptor, alloc_pool_descriptor): New.
10101         (create_alloc_pool): Update statistics.
10102         (free_alloc_pool): Likewise.
10103         (pool_alloc): Likewise.
10104         (output_info): New structure
10105         (print_statistics, dump_alloc_pool_statistics): New function.
10106         * alloc-pool.h (alloc_pool_def): Turn name to be constant.
10107         (dump_alloc_pool_statistics): Declare.
10108         * toplev.c (finalize):  Dump statistics.
10109
10110         * reload.c (secondary_memlocs_elim_used): New static variable.
10111         (get_secondary_mem): Update it.
10112         (find_reloads): Use it.
10113
10114 2004-01-30  Steven Bosscher <s.bosscher@student.tudelft.nl>
10115
10116         * toplev.c: Fix broken checkin of 2003-12-30, again.
10117
10118 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
10119
10120         * configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for
10121         s390*-*-* targets by specifying a 'nop' insn.
10122         * configure: Regenerate.
10123
10124 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
10125
10126         PR target/11475
10127         * config/sparc/sparc.md (movhi_lo_sum): Tighten predicates.
10128
10129 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
10130
10131         * emit-rtl.c (change_address): Use XEXP (memref, 0) instead
10132         of addr when creating MEM copy.
10133
10134 2004-01-29  Devang Patel  <dpatel@apple.com>
10135
10136         * dwarf2out.c (gen_field_die): Do not equate decl number to die.
10137
10138 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
10139
10140         PR inline-asm/6162
10141         * reload.c (find_reloads): Only support one pair of commutative
10142         operands.
10143
10144 2004-01-29  Roger Sayle  <roger@eyesopen.com>
10145
10146         PR java/13824
10147         * tree.c (unsafe_for_reeval): Handle EXIT_BLOCK_EXPR nodes specially
10148         as their EXIT_BLOCK_LABELED_BLOCK operands can lead to unbounded
10149         recursion.
10150
10151 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
10152
10153         * config/frv/frv.c: Don't mention deprecated macros in
10154         comments.  Remove some target-independent comments about
10155         target macros.
10156         * config/frv/frv.h: Likewise.
10157
10158 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10159
10160         * cfghooks.c (split_block): Set probability and count of the
10161         new edge.
10162
10163 2005-01-29  Josef Zlomek  <zlomekj@suse.cz>
10164
10165         * dwarf2out.c (struct die_struct): Added field decl_id.
10166         (decl_die_table): Changed to hash table.
10167         (decl_die_table_allocated): Deleted.
10168         (decl_die_table_in_use): Deleted.
10169         (DECL_DIE_TABLE_INCREMENT): Deleted.
10170         (decl_die_table_hash): New function.
10171         (decl_die_table_eq): New function.
10172         (lookup_decl_die): Lookup in a hash table.
10173         (equate_decl_number_to_die): Insert into a hash table.
10174         (dwarf2out_init): Init hash table decl_die_table.
10175
10176 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
10177
10178         PR optimization/13424
10179         * expr.c (store_constructor): Revert 2003-12-03 change.
10180
10181         * emit-rtl.c (change_address): Check also if MEM_ATTRS is set as
10182         expected before returning early.  Avoid sharing RTL if they
10183         need to be changed.
10184
10185         * config/i386/i386.c (ix86_expand_movstr): Rework rep_mov and strmov
10186         handling so that memory attributes are preserved.  Don't call
10187         ix86_set_move_mem_attrs.
10188         (ix86_set_move_mem_attrs_1, ix86_set_move_mem_attrs): Removed.
10189         (ix86_expand_clrstr): Rename src argument to
10190         dst.  Rework rep_stos and strset handling so that memory attributes
10191         are preserved.
10192         (ix86_expand_strlen): Pass src argument to
10193         ix86_expand_strlensi_unroll_1.  Rework strlenqi_1 handling so that
10194         memory attributes are preserved.
10195         (ix86_expand_strlensi_unroll_1): Add src argument.  Use
10196         change_address instead of gen_rtx_MEM.
10197         * config/i386/i386.md (strmov, strmov_singleop, rep_mov): New
10198         expanders.
10199         (strmovdi_rex64, strmovsi, strmovsi_rex64, strmovhi, strmovhi_rex64,
10200         strmovqi, strmovqi_rex64): Remove.
10201         (rep_mov*, strmov*): Prefix insn names with *.
10202         (strset, strset_singleop, rep_stos): New expanders.
10203         (strsetdi_rex64, strsetsi, strsetsi_rex64, strsethi, strsethi_rex64,
10204         strsetqi, strsetqi_rex64): Remove.
10205         (rep_stos*, strset*): Prefix insn names with *.
10206         (rep_stosqi_rex64): Likewise.  Fix mode of dirflag reg from DImode
10207         to SImode.
10208         (cmpstrsi): Rework cmpstrqi_1 handling so that memory attributes
10209         are preserved.
10210         (cmpstrqi_nz_1, cmpstrqi_nz_rex_1, cmpstrqi_1, cmpstrqi_rex_1):
10211         Prefix insn names with *.
10212         (cmpstrqi_nz_1, cmpstrqi_1): New expanders.
10213         (strlenqi_1, strlenqi_rex_1): Prefix insn names with *.
10214         (strlenqi_1): New expander.
10215         * config/i386/i386.h (ix86_set_move_mem_attrs): Remove prototype.
10216
10217 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10218
10219         * Makefile.in (cfghooks.o): Add TIMEVAR_H and toplev.h dependency.
10220         * basic-block.h (tidy_fallthru_edge, tidy_fallthru_edges, dump_bb,
10221         verify_flow_info): Declaration removed.
10222         * cfg.c (verify_flow_info, dump_bb): Moved to cfghooks.c.
10223         (debug_bb, debug_bb_n): Add argument to dump_bb call.
10224         * cfgcleanup.c (try_simplify_condjump, try_crossjump_to_edge,
10225         try_optimize_cfg, delete_unreachable_blocks): Use delete_basic_block
10226         instead of delete_block.
10227         * cfghooks.c: Include timevar.h and toplev.h.
10228         (cfg_hooks): Define here.
10229         (verify_flow_info, dump_bb): Moved from cfg.c.
10230         (redirect_edge_and_branch, redirect_edge_and_branch_force,
10231         split_block, split_block_after_labels, move_block_after,
10232         delete_basic_block, split_edge, create_basic_block,
10233         create_empty_bb, can_merge_blocks_p, merge_blocks,
10234         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
10235         New functions.
10236         * cfghooks.h (struct cfg_hooks): Added fields name,
10237         make_forwarder_block, tidy_fallthru_edge and
10238         move_block_after. Changed type of verify_flow_info, dump_bb,
10239         split_block fields. Renamed cfgh_split_edge and delete_block
10240         fields.
10241         (redirect_edge_and_branch, redirect_edge_and_branch_force,
10242         split_block, delete_block, split_edge, create_basic_block,
10243         can_merge_blocks_p, merge_blocks): Macros removed.
10244         (cfg_hooks): Do not export.
10245         (verify_flow_info, dump_bb, redirect_edge_and_branch,
10246         redirect_edge_and_branch_force, split_block, split_block_after_labels,
10247         move_block_after, delete_basic_block, split_edge, create_basic_block,
10248         create_empty_bb, can_merge_blocks_p, merge_blocks,
10249         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
10250         Declare.
10251         (cfg_layout_rtl_cfg_hooks): Declare.
10252         * cfgloop.c (update_latch_info, mfb_keep_just, mfb_keep_nonlatch):
10253         New functions.
10254         (canonicalize_loop_headers): Use new semantics of make_forwarder_block.
10255         (redirect_edge_with_latch_update): Removed.
10256         (make_forwarder_block): Moved to cfghooks.c, semantics changed.
10257         * cfgloopmanip.c (remove_bbs): Do not update dominators here.
10258         * cfgrtl.c (cfg_layout_split_block, rtl_split_block, rtl_dump_bb,
10259         rtl_delete_block, rtl_split_block, rtl_merge_blocks,
10260         tidy_fallthru_edge, rtl_split_edge, cfg_layout_delete_block,
10261         cfg_layout_merge_blocks, cfg_layout_split_edge): Partly moved to
10262         cfghooks.c.
10263         (rtl_create_basic_block): Coding style fix.
10264         (rtl_tidy_fallthru_edge, rtl_move_block_after,
10265         rtl_make_forwarder_block): New functions.
10266         (update_cfg_after_block_merging): Removed.
10267         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hooks): Fill in new entries.
10268         * flow.c (verify_wide_reg, verify_local_live_at_start): Add argument
10269         to dump_bb.
10270         * ifcvt.c (merge_if_block, find_cond_trap, find_if_case_1,
10271         find_if_case_2): Don't update dominators.
10272         * timevar.def (TV_CFG_VERIFY): New.
10273         * loop-unswitch.c (unswitch_loop): Don't call add_to_dominance_info.
10274         * cfglayout.c (copy_bbs): Don't call add_to_dominance_info.
10275         * cfgloopmanip.c (split_loop_bb): Don't update dominators.
10276         (remove_bbs): Don't call remove_bbs.
10277         (create_preheader): Use make_forwarder_block.
10278         (mfb_keep_just, mfb_update_loops): New static functions.
10279
10280 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
10281
10282         * config/avr/avr.h: Remove target-independent comments about
10283         target macros.
10284
10285 2004-01-28  Daniel Berlin  <dberlin@dberlin.org>
10286
10287         * timevar.c (timevar_print): Mention when checking is enabled.
10288
10289 2004-01-28  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
10290
10291         * c-lex.c (c_lex): Rename to...
10292         (c_lex_with_flags): Add new parameter to get CPP flags.
10293         (c_lex): Thunk to c_lex_with_flags while keeping the old interface.
10294         * c-pragma.h (c_lex_with_flags): Declare.
10295
10296 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
10297
10298         * config/mcore/mcore.c (mcore_external_libcall): Add a
10299         comment.
10300         (mcore_return_in_memory): Likewise.
10301
10302 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
10303
10304         * config/mcore/mcore-protos.h: Remove the prototype for
10305         mcore_setup_incoming_varargs.
10306         * config/mcore/mcore.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
10307         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
10308         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
10309         (TARGET_PROMOTE_PROTOTYPES): Likewise.
10310         (TARGET_STRUCT_VALUE_RTX): Likewise.
10311         (TARGET_RETURN_IN_MEMORY): Likewise.
10312         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
10313         (mcore_setup_incoming_varargs): Make it static.  Receive the
10314         first argument by reference.  Add argument second_time.
10315         (mcore_external_libcall): New.
10316         (mcore_return_in_memory): Likewise.
10317         * config/mcore/mcore.h (PROMOTE_FUNCTION_ARGS): New.
10318         (PROMOTE_FUNCTION_RETURN): Likewise.
10319         (STRUCT_VALUE): Likewise.
10320         (RETURN_IN_MEMORY): Likewise.
10321         (SETUP_INCOMING_VARARGS): Likewise.
10322         (PROMOTE_PROTOTYPES): Likewise.
10323         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
10324
10325 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
10326
10327         * config/m32r/m32r-protos.h: Remove the prototype for
10328         m32r_setup_incoming_varargs.
10329         * config/m32r/m32r.c (TARGET_PROMOTE_PROTOTYPES): New.
10330         (TARGET_STRUCT_VALUE_RTX): Likewise.
10331         (TARGET_RETURN_IN_MEMORY): Likewise.
10332         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
10333         (m32r_return_in_memory): New.
10334         (m32r_setup_incoming_varargs): Make it static.
10335         * config/m32r/m32r.h: Remove #undef of
10336         ASM_OUTPUT_EXTERNAL_LIBCALL.  Remove the commented-out
10337         definitions of PROMOTE_FUNCTION_ARGS and
10338         PROMOTE_FUNCTION_RETURN.
10339         (PROMOTE_PROTOTYPES): Remove.
10340         (RETURN_IN_MEMORY): Likewise.
10341         (STRUCT_VALUE): Likewise.
10342
10343 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
10344
10345         * config/m68k/m68k.c (TARGET_PROMOTE_PROTOTYPES): New.
10346         (TARGET_STRUCT_VALUE_RTX): Likewise.
10347         (m68k_struct_value_rtx): Likewise.
10348         * config/m68k/m68k.h (STRUCT_VALUE_REGNUM): Rename to
10349         STRUCT_VALUE_REGNUM.
10350         (PROMOTE_PROTOTYPES): Remove.
10351         * config/m68k/m68kelf.h (STRUCT_VALUE_REGNUM): Rename to
10352         STRUCT_VALUE_REGNUM.
10353         * config/m68k/m68kv4.h (STRUCT_VALUE_REGNUM): Likewise.
10354         * config/m68k/netbsd-elf.h (STRUCT_VALUE_REGNUM): Likewise.
10355
10356 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
10357
10358         * config/stormy16/stormy16.c
10359         (TARGET_BUILD_BUILTIN_VA_LIST_TYPE): Rename to
10360         TARGET_BUILD_BUILTIN_VA_LIST.
10361
10362 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
10363
10364         * config/v850/v850.c (TARGET_PROMOTE_PROTOTYPES): New.
10365         (TARGET_STRUCT_VALUE_RTX): Likewise.
10366         (TARGET_RETURN_IN_MEMORY): Likewise.
10367         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
10368         (v850_return_in_memory): Likewise.
10369         (v850_setup_incoming_varargs): Likewise.
10370         * config/v850/v850.h (PROMOTE_PROTOTYPES): Remove.
10371         (SETUP_INCOMING_VARARGS): Likewise.
10372         (RETURN_IN_MEMORY): Likewise.
10373         (STRUCT_VALUE): Likewise.
10374
10375 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
10376
10377         * config/fr30/fr30.c (TARGET_PROMOTE_PROTOTYPES): New.
10378         (fr30_setup_incoming_varargs): Don't use
10379         STRICT_ARGUMENT_NAMING.
10380         * config/fr30/fr30.h (PROMOTE_PROTOTYPES): Remove.
10381         (STRICT_ARGUMENT_NAMING): Likewise.
10382
10383 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
10384
10385         * config/frv/frv-protos.h: Remove the prototype for
10386         frv_expand_builtin_saveregs.
10387         * config/frv/frv.c (TARGET_STRUCT_VALUE_RTX): Likewise.
10388         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
10389         (frv_stack_info): Use FRV_STRUCT_VALUE_REGNUM instead of
10390         STRUCT_VALUE_REGNUM.
10391         (frv_expand_builtin_saveregs): Make it static.
10392         (frv_struct_value_rtx): New.
10393         * config/frv/frv.h (EXPAND_BUILTIN_SAVEREGS): Remove.
10394
10395 2004-01-29  Jan Hubicka  <jh@suse.cz>
10396
10397         PR c++/12850
10398         * cgraph.c (cgraph_remove_node): Clear out saved/insns/arguments and
10399         initial pointers.
10400         * cgraphunit.c (cgraph_finalize_function): Clear out DECL_SAVED_INSNS
10401         for functions that will be only inlined.
10402         (cgraph_mark_function_to_output): Likewise.
10403         (cgraph_expand_function): Sanity check that DECL_DEFER_OUTPUT is clear;
10404         do not clear function body.
10405         * tree-optimize.c (clear_decl_rtl): Use decl_function_context.
10406         (tree_rest_of_compilation): Reorganize the logic releasing function
10407         body to use callgraph datastructure.
10408
10409 2004-01-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10410
10411         * pa.md: Change predicate of a peephole2 pattern from reg_or_0_operand
10412         to register_operand.
10413
10414 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
10415
10416         * config/ia64/ia64.md (fetchadd_acq_si, fetchadd_acq_di)
10417         (cmpxchg_acq_si, cmpxchg_acq_di): Exchange match_dup and
10418         match_operand expressions so that all match_dups appear
10419         lexically after their corresponding match_operands.
10420
10421 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
10422
10423         * config/h8300/h8300.c (WORD_REG_USED): Use
10424         HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM.
10425         (compute_saved_regs): Likewise.
10426         (h8300_expand_prologue): Likewise.  Allocate locals after
10427         saving registers.
10428         (h8300_expand_epilogue): Use HARD_FRAME_POINTER_REGNUM instead
10429         of FRAME_POINTER_REGNUM.  Deallocate locals before saving
10430         registers.
10431         (h8300_initial_elimination_offset): Adjust for the new frame
10432         layout, which swaps flips the order of locals and saved
10433         registers.
10434         * config/h8300/h8300.h (FIRST_PSEUDO_REGISTER): Change to 12.
10435         (HARD_FRAME_POINTER_REGNUM): New.
10436         (ELIMINABLE_REGS): Add an elimination rule from
10437         FRAME_POINTER_REGNUM to HARD_FRAME_POINTER_REGNUM.
10438         (REGISTER_NAMES): Add fp.
10439         * config/h8300/h8300.md (FP_REG): Change to 11.
10440         (HFP_REG): New.
10441
10442 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
10443
10444         * genrecog.c (write_node): Remove a useless local variable.
10445
10446 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
10447
10448         * Makefile.in (options.c options.h): Use stamp file s-options to
10449         avoid unnecessary rebuilds.
10450         (options.o): New target listing dependencies.
10451         (gtyp-gen.h): Use stamp file s-gtyp-gen.
10452         (STAGESTUFF): Add s-gtyp-gen.
10453
10454 2004-01-28  Richard Henderson  <rth@redhat.com>
10455
10456         * ggc.h (ggc_free): Declare.
10457         * ggc-common.c (ggc_realloc): Use it.
10458         * ggc-page.c: Remove lots of inline markers.
10459         (globals): Add free_object_list.
10460         (ggc_alloc): Tidy.
10461         (ggc_free, validate_free_objects): New.
10462         (poison_pages): Provide default.
10463         (ggc_collect): Call validate_free_objects; emit markers to
10464         the debug file.
10465
10466 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
10467             Jim Wilson  <wilson@specifixinc.com>
10468
10469         * config/ia64/ia64.c (ia64_split_tmode, ia64_split_tmode_move):
10470         Rewrite to use POST_INC/POST_DEC/POST_MODIFY instead of a
10471         scratch pointer.
10472         (ia64_secondary_reload_class): Delete case GR_REGS.
10473         * config/ia64/ia64.md (movti, *movti_internal, movtf, *movtf_internal):
10474         Do not allocate a scratch register.
10475         (reload_inti, reload_outti, reload_intf, reload_outtf): Delete.
10476
10477 2004-01-28  Jan Hubicka  <jh@suse.cz>
10478
10479         * gcse.c (bypass_block): Prevent edges to be unified when we are
10480         about to emit compenstation code.
10481
10482 2004-01-28  Nick Clifton  <nickc@redhat.com>
10483
10484         * config/arm/arm.c (arm_expand_builtin): Force second argument of
10485         the setcwx insn into a register.
10486
10487 2004-01-28  Richard Sandiford  <rsandifo@redhat.com>
10488
10489         * config/fp-bit.c (pack_d): When using paired doubles to implement
10490         a long double, round the high part separately.
10491         (unpack_d): Fix the case in which the high part is a power of two
10492         and the low part is a nonzero value of the opposite sign.
10493
10494 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
10495
10496         * config/c4x/c4x.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
10497         (TARGET_STRUCT_VALUE_RTX): Likewise.
10498         (c4x_external_libcall): Likewise.
10499         (c4x_struct_value_rtx): Likewise.
10500         * config/c4x/c4x.h: Remove.
10501         (STRUCT_VALUE_REGNUM): Likewise.
10502         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
10503
10504 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
10505
10506         * config/i386/i386.c (TARGET_PROMOTE_PROTOTYPES): New.
10507         (TARGET_STRUCT_VALUE_RTX): Likewise.
10508         * config/i386/i386.h (STRUCT_VALUE_INCOMING): Remove.
10509         (STRUCT_VALUE): Likewise.
10510         (PROMOTE_PROTOTYPES): Likewise.
10511
10512 2004-01-27  Roger Sayle  <roger@eyesopen.com>
10513
10514         * config/pa/pa.c (emit_move_sequence): Check that operand1 is a
10515         CONST_INT before using INTVAL.
10516
10517 2004-01-27  Ulrich Weigand  <uweigand@de.ibm.com>
10518
10519         * config/s390/s390.h (TARGET_DEFAULT): Default to !TARGET_BACKCHAIN.
10520         * config/s390/s390.c (s390_return_addr_rtx): Fail for all but current
10521         frame if !TARGET_BACKCHAIN.
10522         * config/s390/s390.md ("allocate_stack"): Use pattern only if
10523         TARGET_BACKCHAIN.
10524         * doc/invoke.texi (-mbackchain/-mno-backchain): Document new default.
10525
10526 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
10527
10528         * ia64.c (ia64_function_arg): When placing HFAs in integer
10529         registers, do not special case the mode used for complex
10530         types.  Do not advance int_regs until the current register
10531         is full.
10532
10533 2004-01-27  Richard Sandiford  <rsandifo@redhat.com>
10534
10535         PR target/7297
10536         * except.c (init_eh): Use a 5-word __jbuf for __builtin_setjmp().
10537
10538 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
10539
10540         * config/rs6000/rs6000.c (rs6000_emit_move): #if 0 splitting
10541         slow, unaligned loads and stores while debugging.  Fix formatting.
10542
10543 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
10544
10545         * config/rs6000/rs6000.md (save_stack_nonlocal): Use Pmode instead
10546         of computing wmode.
10547         (restore_stack_nonlocal): Same.
10548
10549 2004-01-27  Devang Patel <dpatel@apple.com>
10550
10551         * Makefile.in (dwarf2out.o): Depend on input.h
10552         * dbxout.c (dbx_debug_hooks): Add new empty hook for
10553         imported_module_or_decl.
10554         (xcoff_debug_hooks): Same.
10555         * sdbout.c (sdb_debug_hooks): Same.
10556         * vmsdbgout.c (vmsdbg_debug_hooks): Same.
10557         * debug.c (do_nothing_debug_hooks): Same.
10558         (debug_nothing_tree_tree): New function.
10559         * debug.h (gcc_debug_hooks): New hook, imported_module_or_decl.
10560         * dwarf2out.c: Include input.h.
10561         (dwarf2_debug_hooks): Add new hook for imported_module_or_decl.
10562         (remove_child_TAG): New function.
10563         (dwarf_tag_name): Handle DW_TAG_imported_module.
10564         (gen_subprogram_die): Equate decl number to declaration die. Do not
10565         remove all children dies while reusing declaration die for definition.
10566         Instead, selectively remove only formal parameters.
10567         (gen_variable_die): Equate variable decl to declaration die.
10568         (gen_field_die): Equate field decl to line number.
10569         (force_namespace_die): Replace it with ...
10570         (force_decl_die): ... this.
10571         (force_type_die): New function.
10572         (setup_namespace_context): Replace use of force_namespace_die() with
10573         force_decl_die().
10574         (gen_namespace_die): Same.
10575         (dwarf2out_imported_module_or_decl): New function.
10576
10577 2004-01-27  Bob Wilson  <bob.wilson@acm.org>
10578
10579         * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Remove SUBREG
10580         on CQImode and CHImode incoming arguments in register a7.
10581         (function_arg): Wrap BLKmode argument in register a7 in a PARALLEL.
10582         * config/xtensa/xtensa.h (BLOCK_REG_PADDING): Define.
10583         * config/xtensa/xtensa.md (movdi, movdf): Only call force_reg or
10584         xtensa_copy_incoming_a7 before reload.
10585
10586 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
10587
10588         * coverage.c (get_coverage_counts): Give a different message
10589         if flag_guess_branch_prob is set.
10590         * predict.c (counts_to_freqs): Return an int.
10591         (estimate_bb_frequencies): If counts_to_freqs returns zero,
10592         calculate estimates.
10593
10594 2004-01-27  Kazu Hirata  <kazu@cs.umass.edu>
10595
10596         * config/iq2000/iq2000-protos.h: Remove the prototype for
10597         iq2000_setup_incoming_varargs.
10598         * config/iq2000/iq2000.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
10599         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
10600         (TARGET_PROMOTE_PROTOTYPES): Likewise.
10601         (TARGET_STRUCT_VALUE_RTX): Likewise.
10602         (TARGET_RETURN_IN_MEMORY): Likewise.
10603         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
10604         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
10605         (iq2000_return_in_memory): Likewise.
10606         (iq2000_setup_incoming_varargs): Make it static.  Receive the
10607         first argument by reference.
10608         * config/iq2000/iq2000.h (PROMOTE_FUNCTION_ARGS): Remove.
10609         (PROMOTE_FUNCTION_RETURN): Likewise.
10610         (PROMOTE_PROTOTYPES): Likewise.
10611         (RETURN_IN_MEMORY): Likewise.
10612         (STRUCT_VALUE): Likewise.
10613         (SETUP_INCOMING_VARARGS): Likewise.
10614         (STRICT_ARGUMENT_NAMING): Likewise.
10615
10616 2004-01-24  James A. Morrison  <ja2morri@uwaterloo.ca>
10617
10618         * fixinc/fixinc.c (test_test): Initialize res.
10619         (start_flexer): Initialize pz_cmd_save.
10620
10621 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
10622
10623         * doc/rtl.texi (Arithmetic): Rewrite entries for PLUS,
10624         SS_PLUS, US_PLUS, LO_SUM, MINUS, SS_MINUS, US_MINUS.
10625
10626 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
10627
10628         PR 7198
10629         * config/ia64/ia64.md (*nmaddsf4, *nmadddf4, *nmadddf4_alts)
10630         (*nmadddf4_trunc, *nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf)
10631         (*nmaddxf4_alts, *nmaddxf4_truncdf_alts):
10632         Rewrite pattern as (minus (op 3) (mult (op 1) (op 2))).
10633         Possibly rename pattern for consistency.
10634         Remove ??? comments suggesting that this be done.
10635         (*nmaddsf4_alts, *nmadddf4_truncsf_alts, *nmaddxf4_truncsf_alts):
10636         New patterns.
10637         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr)
10638         (divsf3_internal_lat, divsf3_internal_thr, sqrtsf2_internal_thr)
10639         (divdf3_internal_lat, divdf3_internal_thr, sqrtdf2_internal_thr)
10640         (divxf3_internal_lat, divxf3_internal_thr, sqrtxf2_internal_thr):
10641         Update to match.
10642
10643 2004-01-27  Ian Lance Taylor  <ian@wasabisystems.com>
10644
10645         * config/arm/arm.c (output_return_instruction): Only restore IP
10646         into SP if frame_pointer_needed.
10647
10648 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
10649
10650         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
10651         for SCmode and DCmode if ARCH32.
10652         (sparc_va_arg): Handle SCmode and DCmode by reference if ARCH32.
10653         * config/sparc/sparc.h (RETURN_IN_MEMORY): Return 0 for TCmode
10654         if ARCH32.
10655         (BASE_RETURN_VALUE_REG): Return 32 for all FP modes except TFmode
10656         if ARCH32.
10657         (BASE_OUTGOING_VALUE_REG): Likewise.
10658
10659 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
10660
10661         PR target/10904
10662         PR target/13058
10663         * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): New.
10664         Forbid mode changes from SImode for lower FP regs if ARCH64.
10665
10666 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
10667
10668         * Makefile.in (bt-load.o): Depend on except.h.
10669         * bt-load.c (except.h): #include.
10670         (compute_defs_uses_and_gen): If insn at end of BB can throw
10671         within this function, consider registers used by it unavailable for
10672         btr migration.
10673         (move_btr_def): If insn at end of BB can throw, insert before rather
10674         than after.
10675
10676         * flags.h (flag_btr_bb_exclusive): Declare.
10677         * toplev.c (flag_btr_bb_exclusive): New variable.
10678         (f_options): Add btr-bb-exclusive.
10679         * bt-load.c (augment_live_range): Restore old behaviour if
10680         flag_btr_bb_exclusive is set.
10681         * common.opt: Add entry for -fbtr-bb-exclusive.
10682         * opts.c (common_handle_options): Same.
10683         * doc/invoke.texi: Document -fbtr-bb-exclusive.
10684
10685         * bt-load.c (btrs_live_at_end): New variable.
10686         (compute_defs_uses_and_gen): Compute its pointed-to array.
10687         (clear_btr_from_live_range, add_btr_to_live_range): Update it.
10688         (augment_live_range): When augmenting with a new dominator,
10689         use only its btrs_live_at_end set, but also add in the full set
10690         of the old dominator.
10691         (btr_def_live_range): Use btrs_live_at_end.
10692         (move_btr_def): Set other_btr_uses_before_def, and move new set
10693         to the end of the basic block, if appropriate.
10694         (migrate_btr_defs): Allocate and free btrs_live_at_end.
10695
10696         * bt-load.c (basic_block_freq): Remove outdated comment.
10697
10698 2004-01-27  Alan Modra  <amodra@bigpond.net.au>
10699
10700         * config/rs6000/rs6000.h: Correct target_flags free bits comment.
10701         (PREDICATE_CODES): Remove duplicate.
10702         * config/rs6000/linux64.h (CPP_SYSV_SPEC): Don't define.
10703         (SUBSUBTARGET_OVERRIDE_OPTIONS): Disallow 32 bit TARGET_PROFILE_KERNEL.
10704         (MASK_PROFILE_KERNEL): Adjust define.
10705
10706 2004-01-27  Jakub Jelinek  <jakub@redhat.com>
10707
10708         * config/i386/i386.c (ix86_constant_alignment): Decrease alignment
10709         of long string literals from 32 bytes to sizeof (void *) when !-Os
10710         and to 1 with -Os.
10711
10712 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
10713
10714         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Accept
10715         constant addresses in the normal mode.
10716
10717 2004-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10718
10719         * system.h (CHAR_BITFIELD): Delete.
10720         (BOOL_BITFIELD): New.
10721         * c-decl.c (c_scope): Use BOOL_BITFIELD.
10722         * gengtype-lex.l: Recognize BOOL_BITFIELD instead of CHAR_BITFIELD.
10723
10724 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
10725
10726         * config/arc/arc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
10727         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
10728         (TARGET_PROMOTE_PROTOTYPES): Likewise.
10729         (TARGET_STRUCT_VALUE_RTX): Likewise.
10730         (TARGET_RETURN_IN_MEMORY): Likewise.
10731         (arc_return_in_memory): Likewise.
10732         * config/arc/arc.h (PROMOTE_FUNCTION_ARGS): Remove.
10733         (PROMOTE_FUNCTION_RETURN): Likewise.
10734         (RETURN_IN_MEMORY): Likewise.
10735         (STRUCT_VALUE): Likewise.
10736
10737 2004-01-26  Richard Henderson  <rth@redhat.com>
10738
10739         * c-parse.in (extension): Use itype.
10740         (SAVE_EXT_FLAGS): Don't allocate a tree.
10741         (RESTORE_EXT_FLAGS): Don't read a tree.
10742
10743 2004-01-26  Jan Hubicka  <jh@suse.cz>
10744
10745         * cselib.c (discard_useless_values):  Clear out value pointer pointing
10746         to datastructure to be recycled.
10747
10748 2004-01-25  Jan Hubicka  <jh@suse.cz>
10749
10750         * genextract.c (main): Do not output the memset when not checking.
10751
10752 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
10753
10754         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Use a
10755         switch statement instead of a chain of if statements.
10756
10757 2004-01-26  Jeff Law  <law@redhat.com>
10758
10759         * doc/contrib.texi: Minor cleanup for Paolo Carlini's entry.  Add
10760         acute accents for Petur Runolfsson's entry.
10761
10762 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
10763
10764         * config/pdp11/pdp11.c (TARGET_STRUCT_VALUE_RTX): New.
10765         (TARGET_RETURN_IN_MEMORY): Likewise.
10766         * config/pdp11/pdp11.h (STRUCT_VALUE): Remove.
10767         (RETURN_IN_MEMORY): Likewise.
10768
10769 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
10770
10771          * config/rs6000/rs6000.c (rs6000_emit_move): split slow
10772          unaligned load/store into smaller loads and stores.
10773
10774 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
10775
10776         * function.c (assign_parms): Do not assign
10777         long long argument to memory in prologue if
10778         is it loaded into register.
10779
10780 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
10781
10782          PR middle-end/13779
10783          * expr.c (emit_group_load): split constant
10784          correctly into register components of PARALLEL insn.
10785
10786 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
10787
10788         * gcc/config/rs6000/rs6000.md (save_stack_nonlocal):
10789         Use adjust_address_nv directly with appropriate mode.
10790         (restore_stack_nonlocal): Ditto.
10791
10792 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
10793
10794         * config/xtensa/xtensa-protos.h: Remove the prototype for
10795         xtensa_builtin_saveregs.
10796         * config/xtensa/xtensa.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
10797         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
10798         (TARGET_PROMOTE_PROTOTYPES): Likewise.
10799         (TARGET_STRUCT_VALUE_RTX): Likewise.
10800         (TARGET_RETURN_IN_MEMORY): Likewise.
10801         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
10802         (xtensa_builtin_saveregs): Make it static.
10803         (xtensa_return_in_memory): New.
10804         * config/xtensa/xtensa.h (PROMOTE_FUNCTION_ARGS: Remove.
10805         (PROMOTE_FUNCTION_RETURN): Likewise.
10806         (PROMOTE_PROTOTYPES): Likewise.
10807         (STRUCT_VALUE): Likewise.
10808         (RETURN_IN_MEMORY): Likewise.
10809         (EXPAND_BUILTIN_SAVEREGS): Likewise.
10810
10811 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
10812
10813         * config/arm/arm.c (TARGET_SETUP_INCOMING_VARARGS): New.
10814         (arm_setup_incoming_varargs): Likewise.
10815         * config/arm/arm.h (SETUP_INCOMING_VARARGS): Remove.
10816
10817 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
10818
10819         * config/cris/cris.c (TARGET_SETUP_INCOMING_VARARGS): New.
10820         (cris_setup_incoming_varargs): Likewise.
10821         * config/cris/cris.h (SETUP_INCOMING_VARARGS): Remove.
10822
10823 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
10824
10825         * config/ns32k/ns32k.c (TARGET_STRUCT_VALUE_RTX): New.
10826         (ns32k_struct_value_rtx): Likewise.
10827         * config/ns32k/ns32k.h (STRUCT_VALUE_REGNUM): Rename to
10828         NS32K_STRUCT_VALUE_REGNUM.
10829
10830 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
10831
10832         * config/arm/arm.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
10833         (TARGET_PROMOTE_PROTOTYPES): Likewise.
10834         (TARGET_STRUCT_VALUE_RTX): Likewise.
10835         (arm_struct_value_rtx): Likewise.
10836         * config/arm/arm.h (PROMOTE_FUNCTION_ARGS): Remove.
10837         (STRUCT_VALUE): Likewise.
10838         (STRUCT_VALUE_REGNUM): Likewise.
10839         (PROMOTE_PROTOTYPES): Likewise.
10840
10841 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
10842
10843         * config/ia64/ia64-protos.h: Remove the prototype for
10844         ia64_setup_incoming_varargs and ia64_return_in_memory.
10845         * config/ia64/ia64.c (TARGET_STRUCT_VALUE_RTX): New.
10846         (TARGET_RETURN_IN_MEMORY): Likewise.
10847         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
10848         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
10849         (ia64_setup_incoming_varargs): Adjust the arguments to meet
10850         the requirement of TARGET_SETUP_INCOMING_VARARGS.
10851         (ia64_return_in_memory): Make it static.  Change the return
10852         type to bool from int.  Add an argument.
10853         (ia64_struct_value_rtx): New.
10854         * config/ia64/ia64.h: Remove commented-out definitions of
10855         PROMOTE_FUNCTION_ARGS, PROMOTE_FUNCTION_RETURN, and
10856         PROMOTE_PROTOTYPES.
10857         (RETURN_IN_MEMORY): Remove.
10858         (STRUCT_VALUE_REGNUM): Likewise.
10859         (STRICT_ARGUMENT_NAMING): Likewise.
10860
10861 2004-01-26  Eric Botcazou  <ebotcazou@libertysurf.fr>
10862
10863         PR target/13666
10864         * config/sparc/sparc.c (function_arg_union_value): New function.
10865         (function_arg): Use it to deal with unions.
10866         (function_value): Likewise.  Define 'regbase' only for ARCH64.
10867         Replace a conditional statement by a simpler one.
10868
10869 2004-01-26  Richard Sandiford  <rsandifo@redhat.com>
10870
10871         * config/mips/mips.c (mips16_optimize_gp): Delete.
10872         (mips_reorg): Don't call it.
10873
10874 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10875
10876         * config/c4x/c4x.md (addqi3_noclobber): Move up pecking order.
10877         (floatunsqihf2): Remove operand 6.
10878         (fixhfqi_set, fix_trunchfqi2, fixuns_trunchfqi2): Group with other
10879         fix patterns.
10880         (ldi_conditional, ldf_conditional): Validate operands.
10881
10882 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10883
10884         * config/c4x/c4x.h (BCT_CHECK_LOOP_ITERATIONS): Remove.
10885         (HAVE_GAS_HIDDEN): Undefine as interim measure.
10886
10887 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10888
10889         * config/c4x/c4x.c (c4x_legitimate_address_p):  Invalidate direct
10890         memory references if TARGET_EXPOSE_LDP nonzero.
10891
10892 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10893
10894         * config/c4x/c4x.c (legitimize_operands): Truncate invalid shift counts.
10895
10896 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10897
10898         * config/c4x/c4x.c (c4x_valid_operands): More aggressively reject
10899         invalid operand combinations.
10900
10901 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10902
10903         * config/c4x/c4x.c (c4x_check_legit_addr): Rename to
10904         c4x_legitimate_address_p.  Fix post_modify check.
10905
10906         * config/c4x/c4x-protos.h (c4x_check_legit_addr): Adjust.
10907         * config/c4x/c4x.h (c4x_check_legit_addr): Adjust.
10908
10909 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
10910
10911         * config/pa/pa-protos.h: Remove the prototype for
10912         hppa_builtin_saveregs.  Add a prototype for
10913         pa_return_in_memory.
10914         * config/pa/pa.c (TARGET_PROMOTE_FUNCTION_RETURN): New.
10915         (TARGET_PROMOTE_PROTOTYPES): Likewise.
10916         (TARGET_STRUCT_VALUE_RTX): Likewise.
10917         (TARGET_RETURN_IN_MEMORY): Likewise.
10918         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
10919         (pa_struct_value_rtx): Likewise.
10920         (pa_return_in_memory): Likewise.
10921         * config/pa/pa.h (STRUCT_VALUE_REGNUM): Rename to
10922         PA_STRUCT_VALUE_REGNUM.
10923         (INIT_CUMULATIVE_ARGS): Use pa_return_in_memory.
10924         (EXPAND_BUILTIN_SAVEREGS): Remove.
10925         (PROMOTE_PROTOTYPES): Likewise.
10926         (PROMOTE_FUNCTION_RETURN): Likewise.
10927
10928 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
10929
10930         * config/vax/vax.c (TARGET_PROMOTE_PROTOTYPES): New.
10931         (TARGET_STRUCT_VALUE_RTX): Likewise.
10932         (vax_struct_value_rtx): Likewise.
10933         * config/vax/vax.h (STRUCT_VALUE_REGNUM): Rename to
10934         VAX_STRUCT_VALUE_REGNUM.
10935         (PROMOTE_PROTOTYPES): Remove.
10936
10937 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10938
10939         * config/c4x/c4x.h (LEGITIMIZE_RELOAD_ADDRESS):  Handle symref.
10940
10941 2003-04-25  Chris Demetriou  <cgd@broadcom.com>
10942
10943         * config/mips/mips.h (ISA_HAS_HILO_INTERLOCKS): MIPS32, MIPS32r2,
10944         and MIPS64 have HI/LO interlocks.  Update comment.
10945
10946 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
10947
10948         * config/stormy16/stormy16-protos.h: Remove the prototype for
10949         xstormy16_setup_incoming_varargs.
10950         * config/stormy16/stormy16.c
10951         (xstormy16_setup_incoming_varargs): Remove.
10952         (xstormy16_return_in_memory): New.
10953         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
10954         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
10955         (TARGET_PROMOTE_PROTOTYPES): Likewise.
10956         (TARGET_STRUCT_VALUE_RTX): Likewise.
10957         (TARGET_RETURN_IN_MEMORY): Likewise.
10958         * config/stormy16/stormy16.h (PROMOTE_FUNCTION_ARGS): Remove.
10959         (PROMOTE_FUNCTION_RETURN): Likewise
10960         (PROMOTE_PROTOTYPES): Likewise
10961         (RETURN_IN_MEMORY): Likewise
10962         (STRUCT_VALUE): Likewise
10963         (SETUP_INCOMING_VARARGS): Likewise
10964
10965 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
10966
10967         * config/mips/mips.c (mips_offset_within_object_p): New function.
10968         (mips_symbolic_constant_p): Use it in the SYMBOL_SMALL_DATA and
10969         SYMBOL_CONSTANT_POOL cases.  Also use it for SYMBOL_GENERAL if the
10970         ABI has 64-bit pointers and the object file only allows 32-bit symbols.
10971
10972 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
10973
10974         * config/sh/sh.h (PROMOTE_FUNCTION_ARGS): Remove.
10975         (PROMOTE_FUNCTION_RETURN): Likewise.
10976
10977 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
10978
10979         * config/mn10300/mn10300-protos.h: Remove the prototype for
10980         mn10300_builtin_saveregs.
10981         * config/mn10300/mn10300.c (TARGET_PROMOTE_PROTOTYPES): New.
10982         (TARGET_STRUCT_VALUE_RTX): Likewise.
10983         (TARGET_RETURN_IN_MEMORY): Likewise.
10984         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
10985         (mn10300_return_in_memory): Likewise.
10986         (mn10300_builtin_saveregs): Make it static.
10987         * config/mn10300/mn10300.h (PROMOTE_PROTOTYPES): Remove.
10988         (RETURN_IN_MEMORY): Likewise.
10989         (STRUCT_VALUE): Likewise.
10990         (EXPAND_BUILTIN_SAVEREGS): Likewise.
10991
10992 2004-01-25  Eric Botcazou  <ebotcazou@act-europe.fr>
10993
10994         PR bootstrap/13853
10995         * cfgcleanup.c (try_optimize_cfg): Explicitly test against 0.
10996
10997 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
10998
10999         * config/h8300/lib1funcs.asm (divnorm, modnorm): Optimize by
11000         using ccr.
11001
11002 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
11003
11004         * config/i860/i860-protos.h: Remove the prototype for
11005         i860_saveregs.
11006         * config/i860/i860.c (i860_saveregs): Make it static.
11007         (i860_struct_value_rtx): New.
11008         (TARGET_STRUCT_VALUE_RTX): Likewise.
11009         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
11010         * config/i860/i860.h (STRUCT_VALUE_REGNUM): Rename to
11011         I860_STRUCT_VALUE_REGNUM.
11012         (EXPAND_BUILTIN_SAVEREGS): Remove.
11013
11014 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
11015
11016         * config/m68hc11/m68hc11.c (TARGET_STRUCT_VALUE_RTX): New.
11017         (TARGET_RETURN_IN_MEMORY): Likewise.
11018         (m68hc11_struct_value_rtx): Likewise.
11019         (m68hc11_return_in_memory): Likewise.
11020         * config/m68hc11/m68hc11.h: Remove a commented-out definition
11021         of PROMOTE_PROTOTYPES.
11022         (RETURN_IN_MEMORY): Remove.
11023         (STRUCT_VALUE_REGNUM): Likewise.
11024
11025 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
11026
11027         * config/mmix/mmix-protos.h: Remove the prototype for
11028         mmix_setup_incoming_varargs.
11029         * config/mmix/mmix.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
11030         (TARGET_STRUCT_VALUE_RTX): Likewise.
11031         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
11032         (mmix_setup_incoming_varargs): Make it static.
11033         (mmix_struct_value_rtx): New.
11034         * config/mmix/mmix.h (PROMOTE_FUNCTION_ARGS): Remove.
11035         Remove a commented-out definition of PROMOTE_FUNCTION_RETURN.
11036         (STRUCT_VALUE_REGNUM): Remove.
11037         (SETUP_INCOMING_VARARGS): Likewise.
11038
11039 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
11040
11041         * config/mips/mips-protos.h: Remove the prototypes for
11042         mips_setup_incoming_varargs and mips_return_in_memory.
11043         * config/mips/mips.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
11044         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
11045         (TARGET_PROMOTE_PROTOTYPES): Likewise.
11046         (TARGET_STRUCT_VALUE_RTX): Likewise.
11047         (TARGET_RETURN_IN_MEMORY): Likewise.
11048         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
11049         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
11050         (mips_setup_incoming_varargs): Match the prototype for
11051         TARGET_SETUP_INCOMING_VARARGS.
11052         (mips_return_in_memory): Make it static.  Add argument fntype.
11053         (mips_strict_argument_naming): New.
11054         * config/mips/mips.h (PROMOTE_PROTOTYPES): Remove.
11055         (PROMOTE_FUNCTION_ARGS): Likewise.
11056         (PROMOTE_FUNCTION_RETURN): Likewise.
11057         (STRUCT_VALUE): Likewise.
11058         (RETURN_IN_MEMORY): Likewise.
11059         (SETUP_INCOMING_VARARGS): Likewise.
11060         (STRICT_ARGUMENT_NAMING): Likewise.
11061
11062 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
11063
11064         * config/ip2k/ip2k.c (TARGET_STRUCT_VALUE_RTX): New.
11065         (TARGET_RETURN_IN_MEMORY): Likewise.
11066         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
11067         (ip2k_return_in_memory): Likewise.
11068         (ip2k_setup_incoming_varargs): Likewise.
11069         * config/ip2k/ip2k.h (RETURN_IN_MEMORY): Remove.
11070         (STRUCT_VALUE): Likewise.
11071         (STRUCT_VALUE_INCOMING): Likewise.
11072         (SETUP_INCOMING_VARARGS): Likewise.
11073
11074 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
11075
11076         * config/avr/avr.c (TARGET_STRUCT_VALUE_RTX): New.
11077         (TARGET_RETURN_IN_MEMORY): Likewise.
11078         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
11079         (avr_return_in_memory): Remove.
11080         * config/avr/avr.h (RETURN_IN_MEMORY): Remove.
11081         (STRUCT_VALUE): Likewise.
11082         (STRUCT_VALUE_INCOMING): Likewise.
11083         (STRICT_ARGUMENT_NAMING): Likewise.
11084
11085 2004-01-25  Jan Hubicka  <jh@suse.cz>
11086
11087         * combine.c (recog_for_combine): Avoid allocating unnecesary RTX.
11088
11089 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
11090
11091         * config/mips/mips-protos.h (mips_reg_mode_ok_for_base_p): Delete.
11092         (mips_regno_mode_ok_for_base_p): Declare.
11093         * config/mips/mips.h (ARG_POINTER_REGNUM): Renumber to 77.
11094         (FRAME_POINTER_REGNUM): Renumber to 78.
11095         (FIRST_PSEUDO_REGISTER): Update comment accordingly.
11096         (BASE_REG_P, GP_REG_OR_PSEUDO_STRICT_P): Delete.
11097         (GP_REG_OR_PSEUDO_NONSTRICT_P): Delete.
11098         (REGNO_MODE_OK_FOR_BASE_P): Use mips_regno_mode_ok_for_base_p.
11099         (REG_MODE_OK_FOR_BASE_P): Likewise.
11100         * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Change
11101         entry for 77 to "$arg" and entry for 78 to "$frame".
11102         (mips_regno_to_class): Map 77 and 78 to ALL_REGS.
11103         (mips_reg_mode_ok_for_base_p): Remove.
11104         (mips_regno_mode_ok_for_base_p): New function, derived from old
11105         BASE_REG_P macro.  Don't enforce the mips16 stack pointer
11106         restrictions unless we're being strict.
11107         (mips_valid_base_register_p): Use mips_regno_mode_ok_for_base_p.
11108
11109 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
11110
11111         * c-common.h: Fix comment typos.
11112         * c-decl.c: Likewise.
11113         * cgraphunit.c: Likewise.
11114         * combine.c: Likewise.
11115         * et-forest.c: Likewise.
11116         * flow.c: Likewise.
11117         * function.c: Likewise.
11118         * ifcvt.c: Likewise.
11119         * integrate.c: Likewise.
11120         * jump.c: Likewise.
11121         * postreload.c: Likewise.
11122         * varray.c: Likewise.
11123
11124 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
11125
11126         * doc/frontends.texi: Update copyright.
11127         * doc/gcov.texi: Likewise.
11128         * doc/gty.texi: Likewise.
11129         * doc/sourcebuild.texi: Likewise.
11130         * doc/standards.texi: Likewise.
11131
11132 2004-01-24  Herman A.J. ten Brugge  <hermantenbrugge@home.nl>
11133
11134         PR target/12978
11135         * c4x.md: (movstrqi*) Use match_scratch instead of match_dup.
11136         Remove movstrqi_small because it conflicts with movstrqi_large.
11137
11138 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
11139
11140         * config/cris/cris.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
11141         (TARGET_STRUCT_VALUE_RTX): Likewise.
11142         (cris_struct_value_rtx): Likewise.
11143         * config/cris/cris.h (PROMOTE_FUNCTION_ARGS): Remove.
11144         (CRIS_STACKADJ_REG): Use CRIS_STRUCT_VALUE_REGNUM instead of
11145         STRUCT_VALUE_REGNUM.
11146         (STRUCT_VALUE_REGNUM): Rename to CRIS_STRUCT_VALUE_REGNUM.
11147
11148 2004-01-24  Ian Lance Taylor  <ian@wasabisystems.com>
11149
11150         PR bootstrap/13848
11151         * cse.c (cse_cc_succs): Change the mode of the source expression
11152         as soon as decide we need a new mode.  Don't permit changing modes
11153         if we found a match in a successor block.
11154         (cse_condition_code_reg): Save original mode of source expression
11155         so that we know whether we have to change the mode in other
11156         insns.
11157
11158 2004-01-24  Jan Hubicka  <jh@suse.cz>
11159
11160         * emit-rtl.c (change_address, adjust_address_1, offset_address,
11161         widen_memory_access):  Return early when there is nothing to change.
11162
11163 2004-01-24  Jakub Jelinek  <jakub@redhat.com>
11164
11165         * simplify-rtx.c (simplify_relational_operation): Don't
11166         simplify address == constant into address + -constant == 0.
11167
11168 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
11169
11170         * gcc.c (process_command): Don't internationalize the
11171         Copyright message.
11172         * mips-tfile.c (main): Likewise.
11173
11174 2004-01-24  Andreas Tobler  <a.tobler@schweiz.ch>
11175
11176         * cse.c: (cse_cc_succs) Fix comparison warning.
11177
11178 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
11179
11180         * config/h8300/h8300.md: Remove extraneous USE in expanders.
11181
11182 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
11183
11184         * config/h8300/h8300-protos.h: Provide prototypes for
11185         h8300_legitimate_constant_p and h8300_legitimate_address_p.
11186         * config/h8300/h8300.c (h8300_legitimate_constant_p): New.
11187         (h8300_rtx_ok_for_base_p): Likewise.
11188         (h8300_legitimate_address_p): Likewise.
11189         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Use
11190         h8300_legitimate_constant_p.
11191         (RTX_OK_FOR_BASE_P): Remove.
11192         (GO_IF_LEGITIMATE_ADDRESS): Use h8300_legitimate_address_p.
11193
11194 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
11195
11196         * config/h8300/h8300.h (REG_OK_FOR_INDEX_NONSTRICT_P): New.
11197         (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
11198         (REG_OK_FOR_INDEX_STRICT_P): Likewise.
11199         (REG_OK_FOR_BASE_STRICT_P): Likewise.
11200         (REG_OK_FOR_INDEX_STRICT_P): Use REGNO_OK_FOR_INDEX_P.
11201         (REG_OK_FOR_BASE_STRICT_P): Use REGNO_OK_FOR_BASE_P.
11202         (REG_OK_FOR_INDEX_P): Use REG_OK_FOR_INDEX_STRICT_P.
11203         (REG_OK_FOR_BASE_P): Use REG_OK_FOR_BASE_STRICT_P.
11204
11205 2004-01-24  Jan Hubicka  <jh@suse.cz>
11206
11207         * cselib.c (remove_useless_values):  Do not access discarded values.
11208
11209 2004-01-24  Joseph S. Myers  <jsm@polyomino.org.uk>
11210
11211         * c-typeck.c (build_conditional_expr): Do not allow non-lvalue
11212         arrays.
11213
11214 2004-01-23  Kazu Hirata  <kazu@cs.umass.edu>
11215
11216         * recog.c: Fix a typo in copyright.
11217
11218 2004-01-23  Andrew Pinski  <apinski@apple.com>
11219
11220         * config/rs6000/rs6000.md (call): Fix misappiled patch.
11221         (call_value): Likewise.
11222
11223 2004-01-23  Richard Henderson  <rth@redhat.com>
11224
11225         PR opt/12941
11226         * combine.c (SHIFT_COUNT_TRUNCATED): Provide default value.
11227         (simplify_comparison): Don't simplify (eq (zero_extract c 1 r) 0)
11228         if SHIFT_COUNT_TRUNCATED is set.
11229
11230 2004-01-23  Bob Wilson  <bob.wilson@acm.org>
11231
11232         * config/xtensa/xtensa.c (xtensa_va_arg): Handle complex values as
11233         separate real and imaginary parts.
11234         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Define.
11235
11236 2004-01-23  Hartmut Penner <hpenner@de.ibm.com>
11237
11238         PR target/13674
11239         * config/rs6000/rs6000.md (movdf_hardfloat64): Do not disparage
11240         loading into GPR.
11241
11242 2004-01-23  Jan Hubicka  <jh@suse.cz>
11243
11244         * emit-rtl.c (change_address_1):  Do not re-generate the RTX if nothing
11245         change.
11246
11247         * alloc-pool.c (align_four): Kill.
11248         (create_alloc_pool): Align size to eight.
11249         (free_alloc_pool, free_pool): Invalidate deallocated data.
11250
11251 2004-01-23  Ian Lance Taylor  <ian@wasabisystems.com>
11252
11253         PR gcc/1532
11254         * cse.c (cse_change_cc_mode): New static function.
11255         (cse_change_cc_mode_insns, cse_cc_succs): Likewise.
11256         (cse_condition_code_reg): New function.
11257         * rtl.h (cse_condition_code_reg): Declare.
11258         * toplev.c (rest_of_handle_cse2): Call cse_condition_code_reg.
11259         * target.h (struct gcc_target): Add fixed_condition_code_regs and
11260         cc_modes_compatible.
11261         * target-def.h (TARGET_FIXED_CONDITION_CODE_REGS): Define.
11262         (TARGET_CC_MODES_COMPATIBLE): Define.
11263         (TARGET_INITIALIZER): Add new initializers.
11264         * targhooks.c (default_cc_modes_compatible): New function.
11265         * targhooks.c (default_cc_modes_compatible): Declare.
11266         * hooks.c (hook_bool_intp_intp_false): New function.
11267         * hooks.h (hook_bool_intp_intp_false): Declare.
11268         * config/i386/i386.c (TARGET_FIXED_CONDITION_CODE_REGS): Define.
11269         (TARGET_CC_MODES_COMPATIBLE): Define.
11270         (ix86_fixed_condition_code_regs): New static function.
11271         (ix86_cc_modes_compatible): Likewise.
11272         * doc/tm.texi (Condition Code): Document new hooks.
11273
11274 2004-01-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
11275
11276         * fixinc/inclhack.def (bad_lval): Renamed to ...
11277         (alpha_bad_lval): ... this.
11278         Removed file list.
11279         Restrict to alpha*-dec-osf*.
11280         * fixinc/fixincl.x: Regenerate.
11281         * fixinc/tests/base/dirent.h: Remove, moving test ...
11282         * fixinc/tests/base/testing.h: ... here, reflecting new name.
11283
11284 2004-01-23  Zack Weinberg  <zack@codesourcery.com>
11285
11286         PR c/13814
11287         * c-decl.c (diagnose_mismatched_decls): Also discard a
11288         built-in if we encounter an old-style definition with the
11289         same name.
11290
11291 2004-01-23  Jakub Jelinek  <jakub@redhat.com>
11292
11293         * config.gcc (powerpc*-*): Clear $with_cpu or $with_tune if it was
11294         set to default{32,64}.
11295
11296 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
11297
11298         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR)
11299         [!__powerpc64__]: Corrected to handle kernels with changed ucontext.
11300
11301 2004-01-23  Eric Botcazou  <ebotcazou@act-europe.fr>
11302             Olivier Hainque  <hainque@act-europe.fr>
11303
11304         * fold-const.c (fold_binary_op_with_conditional_arg): Only
11305         build a COMPOUND_EXPR if 'arg' is really a SAVE_EXPR.
11306
11307 2004-01-23  Daniel Jacobowitz  <drow@mvista.com>
11308
11309         * config/arm/arm.c (arm_legitimate_address_p): Don't check the mode
11310         size for minipool references.
11311
11312 2004-01-23  Roger Sayle  <roger@eyesopen.com>
11313
11314         * real.c (real_floor, real_ceil): Tweak to allow input and output
11315         arguments to overlap.
11316         (real_round): New function to implement round(3m) semantics.
11317         * real.h (real_round): Prototype here.
11318         * builtins.c (fold_builtin_round): New function to constant fold
11319         round, roundf and roundl.
11320         (fold_builtin): Call fold_builtin_round for BUILT_IN_ROUND{,F,L}.
11321
11322 2004-01-23  Alexandre Oliva  <aoliva@redhat.com>
11323
11324         PR optimization/13819
11325         * config/sh/sh.c (sh_reorg): Compensate for sharing of CLOBBERs
11326         introduced by 2004-01-20's Jan Hubicka's copy_insn change.
11327         (sh_handle_sp_switch_attribute): Remove warning.
11328
11329 2003-11-30  Jan Hubicka  <jh@suse.cz>
11330
11331         * i386.c (ix86_emit_restore_regs_using_mov):  Deal with large offsets.
11332
11333 2004-01-23  J"orn Rennecke <joern.rennecke@superh.com>
11334
11335         * doc/tm.texi: Insert some weasel words when LOAD_EXTEND_OP
11336         may or may not return non-NIL.
11337         * postreload.c (reload_cse_simplify_operands): In LOAD_EXTEND_OP code,
11338         check CANNOT_CHANGE_MODE_CLASS
11339
11340 2004-01-23  Jan Hubicka  <jh@suse.cz>
11341
11342         * basic-block.h (PROP_POSTRELOAD): New macro.
11343         (CLEANUP_LOG_LINKS): New.
11344         * cfgcleanup.c (cleanup_cfg): Only PROP_LOG_LINKS when asked to.
11345         * toplev.c (rest_of_handle_life):  Preserve LOG_LINKS trought cleanup_cfg.
11346
11347         * cselib.c (value_pool): New.
11348         (new_cselib_val): Use pool.
11349         (cselib_init): Initialize value_pool
11350         (cselib_finish): Free pool.
11351
11352 2004-01-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
11353
11354         * config/sparc/sparc.c (scan_record_type): New function.
11355         (function_arg_slotno): Use it to determine which kinds of
11356         registers the record can be passed in.
11357
11358 2004-01-22  James A. Mmorrison  <ja2morri@uwaterloo.ca>
11359
11360         * config/pa/fptr.c: Fix old-style definition.
11361
11362 2004-01-22  Paolo Bonzini  <bonzini@gnu.org>
11363
11364         PR optimization/13724
11365         * cse.c (fold_rtx) <SUBREG>:  Fold a SUBREG to zero if it
11366         represents the zero bits produced by a ZERO_EXTEND operation.
11367
11368 2004-01-22  Roger Sayle  <roger@eyesopen.com>
11369
11370         PR optimization/13821
11371         * simplify-rtx.c (simplify_subreg): Use subreg_lowpart_offset to
11372         correctly calculate the lowpart offset of the contracted subreg.
11373
11374 2004-01-22  Ian Lance Taylor  <ian@wasabisystems.com>
11375
11376         * doc/invoke.texi (Optimize Options): Note that --param arguments
11377         are subject to change without notice.
11378
11379 2004-01-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
11380
11381         * config.gcc (mips-sgi-irix6*o32): Removed.
11382         * config/mips/iris6-o32-as.h: Likewise.
11383         * config/mips/iris6-o32-gas.h: Likewise.
11384         * config/mips/iris6-o32.h: Likewise.
11385
11386 2004-01-22  Jan Hubicka  <jh@suse.cz>
11387
11388         * cfgcleanup.c (first_pass): New static variable.
11389         (try_forward_edges):  Add work limiting check for threading.
11390         (try_crossjump_bb):  Add work limiting check for crossjumping.
11391         (try_optimize_cfg):  Maintain first pass variable.
11392
11393 2004-01-22  Bob Wilson  <bob.wilson@acm.org>
11394
11395         * config/xtensa/xtensa.c (function_arg): Generalize logic so that it
11396         handles complex and vector modes.
11397
11398 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
11399
11400         * config/h8300/h8300.h (REG_OK_FOR_INDEX_P_STRICT): Remove.
11401         (REG_OK_FOR_BASE_P_STRICT): Likewise.
11402         (STRICT): Likewise.
11403
11404 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
11405
11406         * c-semantics.c (genrtl_while_stmt, genrtl_do_stmt_1)
11407         (genrtl_for_stmt): Remove emit_nop calls.
11408
11409 2004-01-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11410
11411         PR target/13713
11412         PR target/13324
11413         * pa.md (movstrsi_prereload, movstrsi_postreload, movstrdi_prereload,
11414         movstrdi_postreload, clrstrsi_prereload, clrstrsi_postreload,
11415         clrstrdi_prereload, clrstrdi_postreload): Fix constraints.
11416
11417 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
11418
11419         * config/arm/arm.c: Include "debug.h".
11420         (thumb_pushpop): Take two new arguments.  Add some commentary.
11421         Output frame information when pushing.
11422         (thumb_exit, thumb_unexpanded_epilogue): Update calls to
11423         thumb_pushpop.
11424         (thumb_output_function_prologue): Likewise.  Accumulate a CFA
11425         offset, and pass it to thumb_pushpop.  Output CFI information.
11426         (thumb_expand_prologue): Add some frame-related markers and notes.
11427
11428 2004-01-22  Ulrich Weigand  <uweigand@de.ibm.com>
11429
11430         * config/s390/s390.c (s390_frame_info): Allow large frame sizes
11431         for TARGET_64BIT.
11432         (s390_arg_frame_offset): Change return type to HOST_WIDE_INT.
11433         * config/s390/s390-protos.h (s390_arg_frame_offset): Likewise.
11434
11435 2004-01-22  Roger Sayle  <roger@eyesopen.com>
11436             Paolo Bonzini  <bonzini@gnu.org>
11437
11438         * rtlanal.c (subreg_lsb_1): New function split out from subreg_lsb.
11439         (subreg_lsb): Change to call new subreg_lsb_1 helper function.
11440         * rtl.h (subreg_lsb_1): Prototype here.
11441         * simplify-rtx.c (simplify_subreg): Optimize subregs of zero and
11442         sign extensions.
11443
11444 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
11445
11446         * doc/tm.texi (CASE_VECTOR_PC_RELATIVE): Mention that the
11447         macro need not be defined if jump-tables should contain
11448         relative addresses only when -fPIC or -fPIC is in effect.
11449
11450 2004-01-22  Jan Hubicka  <jh@suse.cz>
11451
11452         * alias.c (reg_base_value): Turn into varray.
11453         (reg_base_value_size): Kill.
11454         (old_reg_base_value): New deletable varray.
11455         (alias_invariant_size): New variable.
11456         (REG_BASE_VALUE): Update to use varray.
11457         (find_base_value): Likewise.
11458         (record_set): Likewise.
11459         (record_base_value): Likewise.
11460         (memrefs_conflict_p): Likewise.
11461         (record_set): Likewise
11462         (record_base_value): Likewise.
11463         (memrefs_conflict_p): Use alias_invariant_size.
11464         (init_alias_analysis): Use varray; set alias_invariant_size;
11465         rescale other arrays to be sized by maxreg.
11466         (end_alias_analysis): Save reg_base_value; clear alias_invariant_size.
11467
11468 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
11469
11470         * config/sparc/sparc.c (function_arg_slotno): Use
11471         FLOAT_TYPE_P to detect FP fields in structures.
11472         (function_arg_record_value_1): Likewise.
11473         (function_arg_record_value_2): Likewise.
11474
11475 2004-01-22  Jan Hubicka  <jh@suse.cz>
11476
11477         * function.c (allocate_struct_function): Do not initialize expr, emit
11478         and varasm.
11479         (prepare_function_start): Do it here.
11480         * c-parse.in (maybe_type_qual): Do not produce line number notes.
11481
11482 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
11483
11484         PR target/13559
11485         * config/sparc/sparc.c (function_arg_record_value_3): Revert
11486         to 'word_mode' once the first slot has been filled.
11487
11488 2004-01-22  Olivier Hainque  <hainque@act-europe.fr>
11489
11490         * config/sparc/sparc.c (function_arg_record_value_1): Fix
11491         computation of the number of integer registers required.
11492
11493 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
11494
11495         * config/i386/i386.md: Simplify certain comparisons of
11496         const_int.
11497
11498 2004-01-21  Andrew Pinski  <apinski@apple.com>
11499
11500         PR target/13785
11501         * config/rs6000/rs6000.md (call_value): Force operand
11502         1 not operand 0 into a register.
11503
11504 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
11505
11506         * cpperror.c, cpptrad.c, longlong.h, params.def, rtl.def,
11507         unwind-dw2-fde.h: Update copyright.
11508
11509 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11510
11511         * pa-protos.h: Update copyright.
11512         * pa.h: Likewise.
11513         * pa.md: Likewise.
11514
11515 2004-01-21  Caroline Tice  <ctice@apple.com>
11516
11517         PR target/12308
11518         * config/i386/i386.md (fix_truncxfdi2): Add clause to clobber
11519         flags register.
11520         (fix_truncdfdi2): Likewise.
11521         (fix_truncsfdi2): Likewise.
11522         (*fix_truncdi_1): Likewise.
11523         (fix_truncxfsi2): Likewise.
11524         (fix_truncdfsi2): Likewise.
11525         (fix_truncsfsi2): Likewise.
11526         (*fix_truncsi_1): Likewise.
11527         (fix_truncxfhi2): Likewise.
11528         (fix_truncdfhi2): Likewise.
11529         (fix_truncsfhi2): Likewise.
11530         (*fix_trunchi_1): Likewise.
11531
11532 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
11533
11534         * alias.c, basic-block.h, c-common.c, c-common.h,
11535         c-cppbuiltin.c, c-opts.c, c-pragma.c, c-pretty-print.c,
11536         calls.c, cfg.c, cfgcleanup.c, cfgrtl.c, cgraph.h, collect2.c,
11537         combine.c, cppcharset.c, cpphash.h, cppinit.c, cpplib.c,
11538         cpplib.h, cppmacro.c, crtstuff.c, cselib.c, cselib.h,
11539         defaults.h, df.c, dominance.c, et-forest.c, expmed.c, expr.c,
11540         expr.h, fix-header.c, function.h, gcc.c, gcse.c, genattrtab.c,
11541         genautomata.c, genconditions.c, genemit.c, genflags.c,
11542         gengtype.c, gengtype.h, genopinit.c, genrecog.c, gensupport.c,
11543         ggc-zone.c, graph.c, haifa-sched.c, input.h, integrate.c,
11544         langhooks-def.h, langhooks.c, langhooks.h, line-map.c,
11545         line-map.h, local-alloc.c, optabs.c, optabs.h, postreload.c,
11546         ra.h, recog.c, reg-stack.c, regmove.c, reload.c, reorg.c,
11547         rtl.c, sched-deps.c, sched-ebb.c, sdbout.c, system.h,
11548         target.h, targhooks.c, toplev.h, tree-inline.c, unwind-pe.h,
11549         unwind.h, varray.c, varray.h: Update copyright.
11550
11551 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
11552
11553         * config/h8300/coff.h: Update copyright.
11554         * config/h8300/elf.h: Likewise.
11555         * config/h8300/h8300-protos.h: Likewise.
11556         * config/h8300/h8300.c: Likewise.
11557         * config/h8300/h8300.h: Likewise.
11558         * config/h8300/h8300.md: Likewise.
11559
11560 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11561
11562         * fixinc/inclhack.def (hpux10_stdio_declarations, ultrix_const3,
11563         ultrix_locale, ultrix_stdlib, ultrix_strings, ultrix_sys_time,
11564         ultrix_unistd): New hacks.
11565         * fixinc/tests/base/stdio.h (HPUX10_STDIO_DECLARATIONS_CHECK,
11566         ULTRIX_CONST2_CHECK): Add checks.
11567         * fixinc/tests/base/stdlib.h (ULTRIX_STDLIB_CHECK): Likewise.
11568         * fixinc/tests/base/strings.h (ULTRIX_STRINGS2_CHECK): Likewise.
11569         * fixinc/tests/base/unistd.h (ULTRIX_UNISTD_CHECK): Likewise.
11570         * fixinc/tests/base/sys/time.h (ULTRIX_SYS_TIME_CHECK): Likewise.
11571         * fixinc/tests/base/locale.h: New file.
11572         * fixinc/fixincl.x: Rebuilt.
11573
11574 2004-01-21  Andreas Jaeger  <aj@suse.de>
11575             Michael Matz  <matz@suse.de>
11576
11577         * doc/extend.texi (Extended Asm): Clarify memory clobber.
11578
11579 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
11580
11581         * crtstuff.c (frame_dummy, __do_global_ctors_1): Call
11582         _Jv_RegisterClasses through a function pointer.
11583
11584 2004-01-21  Falk Hueffner  <falk@debian.org>
11585
11586         PR target/12898
11587         * config/alpha/alpha.c (alpha_emit_set_const_1): If
11588         no_new_pseudos, use gen_rtx_SET directly for SImode constants
11589         which need multiple instructions to emit.
11590
11591 2004-01-21  Inaoka Kazuhiro  <inaoka.kazuhiro@renesas.com>
11592
11593         * config/m32r/m32r.h (CPP_SPEC): Define.
11594
11595 2004-01-21  Zack Weinberg  <zack@codesourcery.com>
11596
11597         * c-decl.c (merge_decls): Kill different_binding_level and
11598         different_tu arguments; simplify throughout.
11599         (duplicate_decls): Likewise.
11600         (pushdecl, merge_translation_unit_decls): Update calls to
11601         duplicate_decls.
11602
11603 2004-01-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11604
11605         * Makefile.in (pretty-print.o): Depend on $(CONFIG_H) and
11606         $(SYSTEM_H).
11607         (print-rtl1.o): Depend on $(SYSTEM_H).
11608
11609 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
11610
11611         PR bootstrap/12730
11612         * configure.ac: Delete definition and subsitution of docdir.
11613         Add info, man, srcman and srcinfo to target hooks. Create doc/
11614         directory.
11615         * configure: Regenerate.
11616         * Makefile.in: Don't substitute docdir and delete all references
11617         throughout.
11618         (MAKEINFOFLAGS): Define.
11619         (stmp-docobjdir): Delete.
11620         (INFOFILES, MANFILES): Define.
11621         (info): Call lang.info, srcinfo and lang.srcinfo.
11622         (generated-manpages): Call lang.man, srcman and lang.srcman.
11623         (srcinfo, srcman): New rules to copy back files to source directory.
11624         (doc/%.info, doc/%.dvi, doc/%.1, doc/%.7): New implict rule.
11625         (install-man): Revamp rule.
11626         (clean): Update dvi directory.
11627         (distclean): Delete TAGS from front end directorys.
11628         (maintainer-clean): Delete all document files in source directory.
11629
11630         objc/Make-lang.in (objc.man, objc.info): Dummy entries.
11631         (objc.srcman, objc.srcinfo): Likewise.
11632
11633 2004-01-20  Bruce Korb  <bkorb@gnu.org>
11634
11635         * fixinc/inclhack.def(math_exception): bypass only for glibc.
11636         (matherr_decl): rename & relocate as exception_structure.
11637         This fix must precede the math_exception fix.
11638
11639 2004-01-20  Roger Sayle  <roger@eyesopen.com>
11640
11641         * fold-const.c (fold_convert): Rename to fold_convert_const.
11642         (fold_convert_const): Change arguments to take a tree_code,
11643         a type and the operand/expression to be converted.  Return
11644         NULL_TREE if no simplification is possible.  Add support for
11645         FIX_CEIL_EXPR and FIX_FLOOR_EXPR in addition to FIX_TRUNC_EXPR.
11646         (fold): Handle FIX_CEIL_EXPR and FIX_FLOOR_EXPR.
11647         Adjust call to fold_convert to match new fold_convert_const.
11648         Avoid modifying the tree passed to fold in-place.
11649
11650 2004-01-21  Alan Modra  <amodra@bigpond.net.au>
11651
11652         * config/rs6000/sysv4.h (DWARF2_FRAME_REG_OUT): Define.
11653         * dwarf2out.c (output_cfi): Map regs using DWARF2_FRAME_REG_OUT.
11654         * doc/tm.texi (DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Document.
11655
11656 2004-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11657
11658         * pa-protos.h (compute_frame_size): Use HOST_WIDE_INT for frame sizes.
11659         * pa.c (store_reg, store_reg_modify, load_reg, set_reg_plus_d):
11660         Likewise.  Handle frames larger than 0x7fffffff on 64-bit ports.
11661         (emit_move_sequence): Check scratch_reg first in various if statements.
11662         Extend source simplification to handle all 64-bit CONST_INTs.
11663         (pa_output_function_prologue): Use HOST_WIDE_INT_PRINT_DEC for printing
11664         frame size.
11665         (hppa_expand_prologue, hppa_expand_epilogue): Use HOST_WIDE_INT for
11666         frame offset calculations.
11667         * pa.h (NEW_HP_ASSEMBLER): Add comment.
11668         (MAX_LEGIT_64BIT_CONST_INT, MIN_LEGIT_64BIT_CONST_INT,
11669         LEGITIMATE_64BIT_CONST_INT_P): Define.
11670         (LEGITIMATE_CONSTANT_P): Use LEGITIMATE_64BIT_CONST_INT_P.  Treat
11671         any CONST_INT as legitimate during and after reload.
11672         (VAL_32_BITS_P, INT_32_BITS): Define.
11673         (LEGITIMIZE_RELOAD_ADDRESS): Handle large frame offsets.
11674
11675 2004-01-20  Jan Hubicka  <jh@suse.cz>
11676
11677         * emit-rtl.c (verify_rtx_sharing, copy_insn_1,
11678         emit_copy_of_insn_after, emit_copy_of_insn_after): Clobbers
11679         containing hard regs are shared.
11680         (gen_hard_reg_clobber): New function.
11681         (hard_reg_clobbers): New array.
11682         * genemit.c (gen_exp): Use gen_hard_reg_clobber.
11683         (copy_rtx): Do not copy clobbers containing hard regs.
11684         * rtl.h (gen_hard_reg_clobber): Declare.
11685
11686 2004-01-20  Jan Hubicka  <jh@suse.cz>
11687
11688         * varray.c:  Include hashtab.h
11689         (varray_descriptor): New structure.
11690         (hash_descriptor, eq_descriptor, varray_descriptor,
11691         print_statistics): New static functions
11692         (varray_init, varray_grow): Update statistics
11693         (dump_varray_statistics): New function.
11694         * varray.h (dump_varray_statistics): Declare.
11695         * toplev.c (finalize): Call it.
11696         * Makefile.in (varray.o): Add dependency.
11697
11698 2004-01-20  Jan Hubicka  <jh@suse.cz>
11699
11700         * cselib.c: Include alloc-pool.h
11701         (empty_vals, empty_elt_lists, empty_elt_loc_lists): Kill.
11702         (elt_loc_list_pool, elt_list_pool, cselib_val_pool): Declare.
11703         (new_elt_list, new_elt_loc_list, unchain_one_elt_list,
11704         unchain_one_elt_loc_list_pool, unchain_one_value,
11705         new_cselib_val): Simplify using allocpool.
11706         (cselib_init): Initialize allocpools.
11707         (cselib_finish): Finish allocpools.
11708         * Makefile.in (cselib.o): Depend on alloc-pool.h
11709
11710 2004-01-20  Richard Sandiford  <rsandifo@redhat.com>
11711
11712         * config/mips/mips.c (mips_load_call_address): Make the call insn
11713         use $gp if it could be calling a lazy binding stub.
11714
11715 2004-01-20  Kazu Hirata  <kazu@cs.umass.edu>
11716
11717         * config/s390/s390.c (TARGET_PROMOTE_FUNCTION_ARGS): Define.
11718         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
11719         (TARGET_STRUCT_VALUE_RTX): Likewise.
11720         * config/s390/s390.h (PROMOTE_FUNCTION_ARGS): Remove.
11721         (PROMOTE_FUNCTION_RETURN): Remove.
11722         (STRUCT_VALUE): Remove.
11723
11724 2004-01-20  Denis Chertykov  <denisc@overta.ru>
11725
11726         PR bootstrap/13735
11727         * config/avr/avr.h (BASE_REG_CLASS): Don't permit to use X
11728         register as pointer after reload.
11729
11730 2004-01-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11731
11732         PR optimization/12440
11733         * loop.c: Include ggc.h.
11734         (loop_optimize): Run garbage collector between optimization of loops.
11735         * Makefile.in (loop.o): Add GGC_H dependency.
11736
11737 2004-01-20  Hartmut Penner  <hpenner@de.ibm.com>
11738
11739         * gcc/config/rs6000/rs6000.c (function_arg) Handle
11740         vector register special in function without prototype.
11741         (function_arg_advance): Vector parameters get always
11742         GPRs allocated for the linux64 target.
11743
11744 2004-01-20  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
11745
11746         * config/m32r/m32r.h (TARGET_M32R2). Test for TARGET_M32R2_MASK
11747         not TARGET_M32RX_MASK.
11748
11749 2004-01-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
11750
11751         PR target/13557
11752         * config/sparc/sparc.c (function_arg): Reorder the cases.
11753
11754 2004-01-19  Per Bothner  <per@bothner.com>
11755
11756         Move cpp_reader's line_maps field to a shared global.
11757         * cpphash.h (cpp_reader):  Rename line_maps field to line_table
11758         and change the type to a pointer rather than a struct.
11759         * cppinit.c (cpp_push_main_field):  Adjust accordingly.
11760         * cpplib.c (do_include_common, _cpp_do_file_change, cpp_get_callbacks):
11761         Likewise.
11762         * cppfiles.c (validate_pch):  Likewise.
11763         * cppmacro.c (_cpp_warn_if_unused_macro, _cpp_builtin_macro_text):
11764         Likewise.
11765         * cpperror.c (print_location):  Likewise.
11766         * cpplib.h (cpp_create_reader):  New line_maps pointer parameter.
11767         * cppinit.c (cpp_create_reader):  Handle new parameter.
11768         (cpp_destroy):  Don't free line_maps - that's no longer our job.
11769         * input.h (line_table):  New variable.
11770         * toplev.c (line_table):  Declare variable.
11771         (general_init):  Initialize line_table.
11772         * c-opts.c (c_common_init_options):  Pass line_table to
11773         cpp_create_reader.
11774         * fix-header.c (read_scan_file):  New local variable line_table.
11775         Initialize, and pass it to cpp_create_reader.
11776         * Makefile.in (LIBS, LIBDEPS):  Add libcpp.a.
11777         (C_AND_OBJC_OBJS, fix-header):  Remove redundant libcpp.a.
11778
11779 2004-01-19  Per Bothner  <per@bothner.com>
11780
11781         Implement a cache for linemap_lookup.
11782         * line-map.h (struct_line_maps):  Add cache field.
11783         * line-map.c (linemap_init):  Zero cache field.
11784         (linemap_add):  Set cache field to offset of newly allocated map.
11785         (linemap_lookup):  Use and set cache field.
11786
11787 2004-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
11788
11789         PR optimization/13567
11790         * cse.c (cse_basic_block): Call cse_insn with a non-null
11791         libcall_insn for the last SET insn of a no-confilict block.
11792
11793 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
11794
11795         * Makefile.in (target_noncanonical, program_transform_name): Use
11796         immediate define instead of deferred.
11797         (GCC_INSTALL_NAME, GCC_TARGET_INSTALL_NAME, CPP_INSTALL_NAME,
11798         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, GCOV_INSTALL_NAME,
11799         GCCBUG_INSTALL_NAME): Define via a immediate $(shell) instead of
11800         deferred backquote.
11801
11802 2004-01-20  Joseph S. Myers  <jsm@polyomino.org.uk>
11803
11804         * c-decl.c (c_init_decl_processing): Set pedantic_lvalues to
11805         true unconditionally.
11806         * c-typeck.c (unary_complex_lvalue, pedantic_lvalue_warning):
11807         Remove.
11808         (build_unary_op, build_modify_expr): Don't handle extended
11809         lvalues.
11810         (build_component_ref, build_conditional_expr): Call non_lvalue
11811         instead of pedantic_non_lvalue.
11812         (build_c_cast): Don't condition use of non_lvalue on pedantic.
11813         * fold-const.c (fold): Don't check pedantic directly for
11814         COMPOUND_EXPR.  Ensure that results for COMPOUND_EXPR are
11815         passed to pedantic_non_lvalue.
11816         * doc/extend.texi: Remove documentation of extended lvalues.
11817
11818 2004-01-19  Roger Sayle  <roger@eyesopen.com>
11819
11820         PR optimization/5263
11821         * simplify-rtx.c (associative_constant_p): Delete.
11822         (simplify_associative_operation): Rewrite to linearize terms, and
11823         attempt to simplify new term against both left and right subterms.
11824         (simplify_binary_operation): Call swap_commutative_operands_p on
11825         op0 and op1, not trueop0 and trueop1.  Move the initialization of
11826         trueop0 and trueop1 down to where first needed.
11827         (simplify_relational_operation): Likewise.
11828         * rtlanal.c (commutative_operand_precedence): Also order constant
11829         operands using avoid_constant_pool_reference.
11830
11831 2004-01-19  Richard Henderson  <rth@redhat.com>
11832
11833         * config/alpha/alpha.c (aligned_memory_operand): Check MEM_ALIGN,
11834         don't check memory mode.
11835         (unaligned_memory_operand): Likewise.
11836         (reload_inqi, reload_inhi, reload_outqi, reload_outhi): Don't
11837         abort for op0 not MEM.
11838
11839         * config/alpha/alpha.c (alpha_expand_mov_nobwx): If the destination
11840         is not a reg, copy to a scratch first.
11841         (aligned_loadqi, aligned_loadhi, unaligned_loadqi, unaligned_loadhi,
11842         unaligned_loadqi_le, unaligned_loadqi_be, unaligned_loadhi_le,
11843         unaligned_loadhi_be): Expect op0 in DImode; don't SUBREG.
11844         (reload_inqi, reload_inhi): Fix mode of op0.
11845         (reload_inqi_help, reload_inhi_help, reload_outqi_help,
11846         reload_outhi_help): Likewise.  Use define_insn_and_split.
11847
11848         * config/alpha/alpha.md (call peepholes): Check for REG_NORETURN
11849         as well as $29 dead.
11850
11851 2004-01-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
11852
11853         * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): New.  Emit
11854         "tls_object" for thread-local objects.
11855         * config/sparc/sparc.c (sparc_elf_asm_named_section): Emit
11856         "#tls" for thread-local sections.
11857         * configure.ac (thread-local checks): Specify --fatal-warnings in
11858         every binutils-specific checks.  For sparc*-*-*, test whether the
11859         OS is Solaris and the tools are native and act accordingly.
11860         * configure: Rebuild.
11861
11862 2004-01-19  Jeff Law  <law@redhat.com>
11863
11864         * contrib.texi: Update Paolo Carlini's entry.  New entries for
11865         Jerry Quinn and Petur Runolfsson.
11866
11867 2004-01-19  Roger Sayle  <roger@eyesopen.com>
11868
11869         * config/i386/i386.md (*movhi_1, *movqi_1): When optimizing for
11870         size, don't use the larger zero-extending loads.
11871
11872 2004-01-19  Richard Henderson  <rth@redhat.com>
11873
11874         * alpha.h (HARD_REGNO_MODE_OK): Disallow SImode in FP regs.
11875         * alpha.md (UNSPEC_NT_LDA): Remove.
11876         (UNSPEC_CVTLQ, cvtlq): New.
11877         (extendsidi2_1): Rename from extendsidi2_nofix; remove f/f.
11878         (extendsidi2_fix): Remove.
11879         (extendsidi2 splitter): Use cvtlq.
11880         (extendsidi2 fp peepholes): Remove.
11881         (cvtql): Use SFmode instead of SImode.
11882         (fix_trunc?fsi): Update to match.
11883         (floatsisf2_ieee, floatsisf2, floatsidf2_ieee, floatsidf2): New.
11884         (movsi): Rename from movsi_nofix, remove f alternatives.
11885         (movsi_nt_vms): Similarly.
11886         (movsi_fix, movsi_nt_vms_fix): Remove.
11887         (nt_lda): Remove.
11888         * alpha.c (alpha_expand_prologue): Use adddi3, not nt_lda.
11889
11890 2004-01-19  Jan Hubicka  <jh@suse.cz>
11891
11892         * cgraph.c (cgraph_remove_node): Fix removal from linked list.
11893         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear next_needed
11894         list.
11895         (cgraph_remove_unreachable_nodes): New function
11896         (cgraph_decide_inlining_of_small_function): Fix pasto.
11897         (cgraph_decide_inlining_incrementally): Fix pasto.
11898         (cgrpah_decide_inlining): Likewise; remove unreachable nodes.
11899
11900 2004-01-19  Steven Bosscher  <stevenb@suse.de>
11901
11902         * gengtype.c (header_file): Make it static.
11903         (write_types_process_field, write_enum_defn): Minor whitespace fixes.
11904         * gengtype.h (header_file): No longer extern.
11905
11906 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
11907
11908         * defaults.h (CASE_VECTOR_PC_RELATIVE): Provide the default.
11909         * expr.c (CASE_VECTOR_PC_RELATIVE): Remove.
11910         * stmt.c (CASE_VECTOR_PC_RELATIVE): Likewise.
11911
11912 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
11913
11914         * stmt.c (HAVE_casesi): Define it not already defined.
11915         (HAVE_tablejump): Likewise.
11916         (expand_end_case_type): Resort to the binary tree method if
11917         neither casesi or tablejump is available.
11918
11919 2004-01-18  Daniel Jacobowitz  <drow@mvista.com>
11920
11921         * final.c (final_scan_insn): Make non-static again.
11922         * output.h (final_scan_insn): Re-add prototype.
11923         * config/arc/arc.c (arc_output_function_epilogue): Add NULL
11924         to final_scan_insn call.
11925         * config/cris/cris.c (cris_target_asm_function_epilogue): Likewise.
11926         * config/mips/mips.c (mips_output_conditional_branch): Likewise.
11927         * config/pa/pa.c (output_lbranch, output_call): Likewise.
11928         * config/sh/sh.c (print_slot): Likewise.
11929         * config/sparc/sparc.c (sparc_nonflat_function_epilogue): Likewise.
11930         (output_sibcall, sparc_flat_function_epilogue): Likewise.
11931
11932 2004-01-18  Jan Hubicka  <jh@suse.cz>
11933
11934         * basic-block.h (try_redirect_by_replacing_jump): Declare.
11935         * cfgcleanup.c (try_optimize_cfg): Use it.
11936         * cfgrtl.c (try_redirect_by_replacing_jump): Export.
11937         (rtl_redirect_edge_and_branch, cfg_layout_redirect_edge_and_branch):
11938         Kill hack.
11939         (cfg_layout_merge_blocks): Use try_redirect_by_replacing_jump.
11940
11941         Revert:
11942         2004-01-16  Geoffrey Keating  <geoffk@apple.com>
11943
11944                 * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
11945                 even after reload, just don't remove the actual jump tables.
11946
11947 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
11948
11949         * config/rs6000/rs6000.h (STRICT_ARGUMENT_NAMING): Remove.
11950
11951 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
11952
11953         * defaults.h (ASM_OUTPUT_ADDR_VEC_ELT): Fix the computation of
11954         the size of a pointer in bytes.
11955
11956 2004-01-18  Roger Sayle  <roger@eyesopen.com>
11957
11958         * builtins.c (expand_builtin_expect_jump): Fix thinko of reusing
11959         live "next" variable, which could lead to an infinite loop.
11960
11961 2004-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
11962
11963         * config/rs6000/altivec.h: Wrap C++ functions in extern "C++"
11964         block.
11965
11966         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
11967         Check for NULL in the chain and remove repeated code.
11968
11969 2004-01-18  Jan Hubicka  <jh@suse.cz>
11970
11971         * coverage.c (checksum_string): Rename to ...
11972         (coverage_checksum_string): ... this one, Use crc32_string; recognize
11973         names containing random number and zero the number out in order to get
11974         match.
11975
11976 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
11977
11978         * config/mips/mips.c (mips_got_alias_set): Mark for PCH.
11979
11980 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
11981
11982         * doc/c-tree.texi, doc/cpp.texi, doc/extend.texi,
11983         doc/frontends.texi, doc/gcov.texi, doc/gty.texi, doc/install.texi,
11984         doc/invoke.texi, doc/libgcc.texi, doc/md.texi, doc/rtl.texi,
11985         doc/sourcebuild.texi, doc/standards.texi, doc/tm.texi,
11986         doc/trouble.texi: Remove trailing whitespace.
11987
11988 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
11989
11990         PR target/7618
11991         * config/mips/mips.c: Include cfglayout.h.
11992         (TARGET_ASM_OUTPUT_MI_THUNK, TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
11993         (mips_unspec_offset_high): Add temporary register argument.
11994         (mips_load_call_address): New function, split out from...
11995         (mips_expand_call): ...here.
11996         (mips_output_cplocal): New function.
11997         (mips_output_function_prologue, mips_output_function_epilogue): Use it.
11998         (mips_emit_loadgp): New function, split out from...
11999         (mips_expand_prologue): ...here.
12000         (mips_output_mi_thunk): New function.
12001
12002 2004-01-17  Bernardo Innocenti  <bernie@develer.com>
12003
12004         * longlong.h (mc68020, __mc68030__, mc68030, __mc68040__, mc68040,
12005         mcpu32): Remove redundant checks for implied target predefines.
12006
12007 2004-1-17  Andrew Pinski  <pinskia@physics.uc.edu>
12008
12009         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
12010         Return type is unsigned int not int.
12011         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
12012         Likewise.
12013
12014 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
12015
12016         * doc/contrib.texi, doc/cppenv.texi, doc/extend.texi,
12017         doc/install.texi, doc/invoke.texi, doc/tm.texi: Consistently use
12018         "GNU/Linux" and "Microsoft Windows" terminology.
12019
12020 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
12021
12022         * doc/c-tree.texi, doc/compat.texi, doc/cpp.texi,
12023         doc/cppopts.texi, doc/extend.texi, doc/install.texi,
12024         doc/interface.texi, doc/invoke.texi, doc/libgcc.texi, doc/md.texi,
12025         doc/objc.texi, doc/rtl.texi, doc/tm.texi, doc/trouble.texi: Use
12026         @smallexample instead of @example.
12027
12028 2004-01-17  Ziemowit Laski  <zlaski@apple.com>
12029
12030         * objc/objc-act.c (build_objc_method_call): Use target
12031         hooks instead of macros to determine if ..._stret
12032         dispatchers should be used (NeXT runtime only).
12033
12034 2004-01-17  Roger Sayle  <roger@eyesopen.com>
12035
12036         * builtins.c (expand_builtin_expect_jump): Fix mistake in my
12037         last patch.  Use XEXP (x, 0) to get a LABEL_REF's CODE_LABEL.
12038
12039 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
12040
12041         * rtl.h (emit_insn_before_sameloc, emit_jump_insn_before_sameloc)
12042         (emit_call_insn_before_sameloc, emit_insn_after_sameloc)
12043         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): New
12044         macros.
12045         * reload1.c (emit_reload_insns): Use them.
12046         * emit-rtl.c (emit_insn_before_sameloc, emit_insn_after_sameloc)
12047         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): Check
12048         for NULL PATTERN.
12049
12050 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
12051
12052         * final.c (SEEN_BB, SEEN_NOTE, SEEN_EMITTED): Define.
12053         (final_scan_insn): Update to take an additional SEEN argument.  Emit
12054         a line note after the prologue.  Make static.
12055         (line_note_exists): Remove.
12056         (final): Don't initialize line_note_exists.  Update call to
12057         final_scan_insn.
12058         * output.h (final_scan_insn): Remove prologue.
12059         * function.c (set_insn_locators): Update comment.
12060         (thread_prologue_and_epilogue_insns): Add a comment.
12061
12062 2004-01-17  Andrew Pinski  <pinskia@physics.uc.edu>
12063
12064         PR target/10781
12065         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
12066         Prototype.
12067         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
12068         New function.
12069         * config/rs6000/linux64.h (ROUND_TYPE_ALIGN): Use it.
12070         * config/rs6000/aix.h (ROUND_TYPE_ALIGN): Likewise.
12071         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Likewise.
12072
12073 2004-01-17  Jan Hubicka  <jh@suse.cz>
12074
12075         * toplev.c (rest_of_handle_reorder_blocks): Fix pasto in previous
12076         commit.
12077
12078         * toplev.c (HAVE_conditional_execution): Provide default.
12079         (rest_of_handle_reorder_blocks): For conditional_execution target
12080         update liveness once after all transformations
12081         (rest_of_compilation): Do crossjumping before ce3.
12082
12083 2004-01-17  Geoffrey Keating  <geoffk@apple.com>
12084
12085         * alias.c (new_alias_set): Mark last_alias_set for PCH.
12086         (get_varargs_alias_set): Rename 'set' to 'varargs_set' and mark it
12087         for PCH.
12088         (get_frame_alias_set): Likewise, except rename it to 'frame_set'.
12089         * config/rs6000/rs6000.c (rs6000_sr_alias_set): Mark for PCH.
12090         (get_TOC_alias_set): Mark 'set' for PCH.
12091
12092 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
12093
12094         * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
12095         even after reload, just don't remove the actual jump tables.
12096
12097 2004-01-17  J. Brobecker  <brobecker@gnat.com>
12098
12099         * dwarf2out.c (is_subrange_type): Renamed from is_ada_subrange_type().
12100         Remove checks for is_ada() and TREE_UNSIGNED.
12101         (subrange_type_die): Emit a byte_size attribute if the subrange
12102         type size is different from the base type size.
12103         (modified_type_die): Replace call to is_ada_subrange_type() by
12104         call to is_subrange_type().
12105
12106 2004-01-16  Andrew Pinski  <pinskia@physics.uc.edu>
12107
12108         * config/sh/sh.c: Include ggc.h.
12109
12110 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
12111
12112         * Makefile.in (MD5_H): New.
12113         (fold-const.o): Depend on md5.h.
12114         (dwarf2out.o): Likewise.
12115         (cppfiles.o): Likewise.
12116         * cppfiles.c: Include md5.h.
12117         (should_stack_file): Check against list read from PCH file.
12118         (struct pchf_data): New.
12119         (pchf): New variable.
12120         (struct pchf_adder_info): New.
12121         (pchf_adder): New.
12122         (pchf_save_compare): New.
12123         (_cpp_save_file_entries): New.
12124         (_cpp_read_file_entries): New.
12125         (struct pchf_compare_data): New.
12126         (pchf_compare): New.
12127         (check_file_against_entries): New.
12128         * cpphash.h (_cpp_save_file_entries): Prototype.
12129         (_cpp_read_file_entries): Prototype.
12130         * cpppch.c (cpp_write_pch_state): Write the list of headers.
12131         (cpp_read_state): Read the list of headers.
12132
12133 2004-01-17  Jan Hubicka  <jh@suse.cz>
12134
12135         * c-common.c (c_estimate_num_insns_1): Handle builtin_constant_p and
12136         builtin_expect specially.
12137         * params.def (PARAM_MAX_INLINE_INSNS_AUTO): Set to 100.
12138         (PARAM_LARGE_FUNCTION_INSNS): Set to 3000.
12139         * invoke.texi (max-inline-insns-single): Set to 100.
12140         (large-function-insns): Set to 3000.
12141
12142 2004-01-16  Eric Christopher  <echristo@redhat.com>
12143             Chandrakala Chavva <cchavva@redhat.com>
12144
12145         * cppcharset.c (one_iso88591_to_utf8): New function.
12146         (convert_iso88591_utf8): Ditto. Use.
12147         (conversion_tab): Use.
12148         (_cpp_input_to_utf8): New function.
12149         (_cpp_init_iconv_buffer): Ditto.
12150         (_cpp_close_iconv_buffer): Ditto.
12151         * cpphash.h: Prototype new functions.
12152         (cpp_buffer): Add input_cset_desc.
12153         * cppinit.c: Add input_charset default.
12154         * cpplib.c (cpp_push_buffer): Support init and
12155         close of iconv.
12156         * cpplib.h (cpp_options): Add input_charset.
12157
12158 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
12159
12160         * system.h (ASM_OUTPUT_SECTION_NAME): Poison.
12161         * config/alpha/unicosmk.h: Remove a commented-out definition
12162         of ASM_OUTPUT_SECTION_NAME.
12163         * config/stormy16/stormy16.h: Likewise.
12164
12165 2004-01-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12166
12167         * fixinc/inclhack.def (alpha___extern_prefix): Renamed to ...
12168         (alpha___extern_prefix_sys_stat): ... this.
12169         Apply to <sys/mount.h>, too.
12170         Tweak to match more variations.
12171         * fixinc/tests/base/sys/stat.h: Adapt for new hackname.
12172
12173         * fixinc/inclhack.def (alpha___extern_prefix,
12174         alpha___extern_prefix_standards): New hacks to obey
12175         __PRAGMA_EXTERN_PREFIX.
12176         * fixinc/tests/base/testing.h [ALPHA___EXTERN_PREFIX_CHECK]: New
12177         test.
12178         * fixinc/tests/base/standards.h: Likewise.
12179
12180         * fixincl/inclhack.def (alpha_pthread): Tweak to match more
12181         variations.
12182         New testcase.
12183         * fixinc/tests/base/pthread.h: Handle it.
12184
12185         * fixincl/inclhack.def (bad_lval): Sort file list.
12186         Add many missing files up to Tru64 UNIX V5.1B.
12187         * gcc/fixinc/tests/base/libgen.h: Renamed to ...
12188         * gcc/fixinc/tests/base/dirent.h: ... this to match new file list
12189         order.
12190
12191         * fixinc/fixincl.x: Regenerate.
12192
12193 2004-01-16  Mark Mitchell  <mark@codesourcery.com>
12194
12195         * version.c (version_string): Change to 3.5.0.
12196         * doc/include/gcc-common.texi (version-GCC): Likewise.
12197
12198 2004-01-16  Jan Hubicka  <jh@suse.cz>
12199
12200         * i386.md (load_tp_di): Fix pasto.
12201
12202         PR opt/13608
12203         * i386.c (ix86_compute_frame_layout): Fix for alloca on leaf function.
12204
12205         * c-pretty-print.c (pp_c_type_cast, pp_c_abstract_declarator,
12206         pp_c_character_constant, pp_c_floating_constant,
12207         pp_c_additive_expression, pp_c_shift_expression,
12208         pp_c_equality_expression, pp_c_and_expression,
12209         pp_c_exclusive_or_expression, pp_c_inclusive_or_expression,
12210         pp_c_logical_and_expression): Remove inline modifier.
12211         * dwarf2out.c (get_AT): Likewise.
12212         * et-forest.c (et_splay): Likewise.
12213         * ra.h (ra_alloc, ra_calloc): Likewise
12214
12215 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
12216
12217         * config/frv/frv-protos.h: Fix comment formatting.
12218         * config/frv/frv.c: Likewise.
12219         * config/frv/frv.h: Likewise.
12220         * config/frv/frv.md: Likewise.
12221         * config/frv/frvbegin.c: Likewise.
12222         * config/frv/frvend.c: Likewise.
12223
12224 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
12225
12226         * system.h (LINKER_DOES_NOT_WORK_WITH_DWARF2): Poison.
12227         * doc/tm.texi (PREFERRED_DEBUGGING_TYPE): Don't mention
12228         LINKER_DOES_NOT_WORK_WITH_DWARF2.
12229         (LINKER_DOES_NOT_WORK_WITH_DWARF2): Remove.
12230
12231 2004-01-16  J"orn Rennecke <joern.rennecke@superh.com>
12232
12233         PR 11864
12234         * postreload.c (reload_cse_simplify_operands): Don't remove
12235         implicit extension from LOAD_EXTEND_OP.
12236
12237 2004-01-16  Jan Hubicka  <jh@suse.cz>
12238
12239         PR opt/11350
12240         * cfgcleanup.c (try_optimize_cfg): Suppress tablejump removal
12241         after reload.
12242         * cfgrtl.c (rtl_can_merge_blocks, cfglayout_can_merge_blocks,
12243         rtl_try_redirect_by_replacing_branch): Likewise.
12244
12245 2004-01-15  Geoffrey Keating  <geoffk@apple.com>
12246
12247         PR pch/13689
12248         * alias.c (struct alias_set_entry): Mark for GC.
12249         (alias_sets): Make static, mark for GC.
12250         (record_alias_subset): Use GC to allocate alias structures.
12251         * varray.c (element): Make generic varrays GCed.
12252
12253         PR pch/13361
12254         * c-typeck.c (constructor_asmspec): Delete.
12255         (struct initializer_stack): Delete field 'asmspec'.
12256         (start_init): Delete saving of asmspec.
12257         (finish_init): Don't update constructor_asmspec.
12258         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
12259         * stmt.c (expand_asm): Duplicate strings from tree.
12260         (expand_asm_operands): Likewise.
12261         * tree.c (tree_size): Update computation of size of STRING_CST.
12262         (make_node): Don't make STRING_CST nodes.
12263         (build_string): Allocate string with tree node.
12264         * tree.def (STRING_CST): Update comment.
12265         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
12266         (tree_string): Place contents of string in tree node.
12267         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
12268         from tree.
12269
12270         * config/rs6000/rs6000.c (rs6000_va_arg): No need to special-case
12271         altivec operands.
12272
12273 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
12274
12275         * c-common.h: Fix comment formatting.
12276         * c-cppbuiltin.c: Likewise.
12277         * c-pragma.c: Likewise.
12278         * calls.c: Likewise.
12279         * collect2.c: Likewise.
12280         * cppcharset.c: Likewise.
12281         * cpptrad.c: Likewise.
12282         * dbxout.c: Likewise.
12283         * defaults.h: Likewise.
12284         * dwarf2out.c: Likewise.
12285         * fold-const.c: Likewise.
12286         * genautomata.c: Likewise.
12287         * genconditions.c: Likewise.
12288         * genflags.c: Likewise.
12289         * gengtype.c: Likewise.
12290         * integrate.c: Likewise.
12291         * loop.c: Likewise.
12292         * predict.c: Likewise.
12293         * sdbout.c: Likewise.
12294
12295 2004-01-15  Zack Weinberg  <zack@codesourcery.com>
12296
12297         * config/ia64/ia64.md (*movti_internal): C output template
12298         extracted to ia64.c.
12299         (*movti_internal_reg): Delete.
12300         (reload_inti, reload_outti): Use the correct mode on operand 2
12301         in the first place, don't fix it up in the output template.
12302         (movtf, reload_ointf, reload_outtf): New expanders.
12303         (*movtf_internal): New define_insn_and_split.
12304         * config/ia64/ia64.c (ia64_split_timode): Rename to ia64_split_tmode;
12305         make static; do not hand TFmode CONST_DOUBLEs to split_double.
12306         (ia64_split_tmode_move): New function, body mostly pulled
12307         from ia64.md:*movti_internal.
12308         (ia64_function_arg_words): New function, extracted common
12309         logic from ia64_function_arg et seq.
12310         (ia64_function_arg_offset): Likewise.  Handle correctly the
12311         case of a scalar quantity 16 bytes wide with only 8-byte alignment.
12312         (ia64_function_arg, ia64_function_arg_partial_nregs)
12313         (ia64_function_arg_advance): Use ia64_function_arg_words and
12314         ia64_function_arg_offset.
12315         (ia64_function_value): TCmode does not go in float regs.
12316         (ia64_secondary_reload_class): Also handle TFmode.
12317         * config/ia64/ia64-protos.h: Remove prototype for
12318         ia64_split_timode; add prototype for ia64_split_tmode_move.
12319
12320 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
12321
12322         * Makefile.in (MAINT): Make it an immediate assignment.
12323
12324 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
12325
12326         * config/m32r/m32r.md: Remove useless calls to gen_lowpart.
12327
12328 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
12329
12330         * config/h8300/coff.h: Replace Hitachi with Renesas.
12331         * config/h8300/elf.h: Likewise.
12332         * config/h8300/h8300-protos.h: Likewise.
12333         * config/h8300/h8300.c: Likewise.
12334         * config/h8300/h8300.h: Likewise.
12335         * config/h8300/h8300.md: Likewise.
12336         * config/h8300/lib1funcs.asm: Likewise.
12337
12338 2004-01-15  Andrew Pinski  <apinski@apple.com>
12339
12340         * config/rs6000/rs6000.c (uses_TOC): Wrap #if TARGET_ELF
12341         around it.
12342
12343 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
12344
12345         * config/h8300/h8300.c (h8300_return_in_memory): New.
12346         (TARGET_STRUCT_VALUE_RTX): Likewise.
12347         (TARGET_RETURN_IN_MEMORY): Likewise.
12348         * config/h8300/h8300.h (STRUCT_VALUE): Remove.
12349         (RETURN_IN_MEMORY): Likewise.
12350
12351 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
12352
12353         PR optimization/13375
12354         * gcse.c (handle_avail_expr): Just return if the source is not a
12355         single set.
12356
12357 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
12358             Daniel Jacobowitz  <drow@mvista.com>
12359
12360         * arm/lib1funcs.asm (ARM_FUNC_START): Correct interworking case.
12361         (EQUIV): Define.
12362         (ARM_FUNC_ALIAS): New macro.
12363         * arm/ieee754-df.S (gedf2, ledf2, nedf2, eqdf2): Use it.
12364         * arm/ieee754-sf.S (gesf2, lesf2, nesf2, eqsf2): Use it.
12365
12366 2004-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12367
12368         PR optimization/12372
12369         * calls.c (expand_call): Add call_fusage data for stack arguments in
12370         constant calls.
12371
12372 2004-01-15  Alan Modra  <amodra@bigpond.net.au>
12373
12374         * config/rs6000/rs6000.c (uses_TOC): Correct comment.  Make static.
12375         (rs6000_elf_declare_function_name): Formatting.
12376         * config/rs6000/rs6000-protos.h (uses_TOC): Remove declaration.
12377
12378 2004-01-15  Jan Hubicka  <jh@suse.cz>
12379
12380         PR bootstrap/13692
12381         * sched-deps.c (sched_analyze_1, sched_analyze_2): Fix thinko in
12382         previous patch.
12383
12384 2004-01-15  Richard Henderson  <rth@redhat.com>
12385
12386         * config/alpha/alpha.h (REG_ALLOC_ORDER): Reorder fp regs after
12387         integer regs of the same call-savedness.
12388
12389 2004-01-15  Andreas Schwab  <schwab@suse.de>
12390
12391         PR bootstrap/13562
12392         * config/m68k/m68k.c (output_move_const_into_data_reg): Clear cc
12393         status for NOTB/NOTW/NEGW methods.
12394
12395 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
12396
12397         * doc/invoke.texi: Update dump file names.  Fix a typo.
12398
12399 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
12400
12401         * builtins.c (expand_builtin_va_end): Don't use
12402         EXPAND_BUILTIN_VA_END.
12403         * system.h (EXPAND_BUILTIN_VA_END): Poison.
12404         * config/d30v/d30v.h: Remove a commented-out definition of
12405         EXPAND_BUILTIN_VA_END.
12406         * config/stormy16/stormy16.h: Likewise.
12407
12408 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
12409
12410         * system.h (STRUCT_VALUE_INCOMING_REGNUM): Poison.
12411         * targhooks.c (default_struct_value_rtx): Don't use
12412         STRUCT_VALUE_INCOMING_REGNUM.
12413
12414 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
12415
12416         PR bootstrap/12744
12417         * configure.in: Revamp enable-generated-files-in-srcdir rule to define
12418         GENINSRC and not parsedir.  Define srcextra as a langhook.
12419         * configure: Regenerate.
12420         * Makefile.in: Suppress default .l.c rule.  Don't substitute
12421         parsedir and delete all references throughout.  Conditionally define
12422         rule for srcextra dependent on GENINSRC.
12423         (stmp-docobjdir): Delete.
12424         (c-parse.o, gengtype-lex.o, gengtype-yacc.o): Use implicit build rule.
12425         (srcextra): Copy c-parse.y, c-parse.c, gengtype-lex.c, gengtype-yacc.c,
12426         and gengtype-yacc.h back to source directory.
12427         (maintainer-clean): Delete all parse files in source directory.
12428         (distclean): Delete generated files.
12429
12430         * objc/Make-lang.in (objc-parse.o): Use implicit build rule.
12431         (objc-parse.c, objc-parse.y): Don't use parsedir.
12432         (objc.srcextra): Copy objc-parse.y and objc-parse.c back to source
12433         directory if requested.
12434         (po-generated): Don't use parsedir.
12435         (objc.maintainer-clean): Delete above files from source directory.
12436
12437 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
12438
12439         * doc/tm.texi (FUNCTION_VALUE): Fix a typo.
12440
12441 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
12442
12443         * doc/tm.texi: Replace RETURN_IN_MEMORY with
12444         TARGET_RETURN_IN_MEMORY.
12445
12446 2004-01-15  Jan Hubicka  <jh@suse.cz>
12447
12448         * builtins.c (std_expand_builtin_va_arg): Align operand when needed.
12449         * i386.c (init_cumulative_args): Set warn_sse; fix handling of variadic
12450         functions accepting SSE arguments
12451         (function_arg): Warn only when asked to warn.
12452         * i386.h (ix86_args): Add warn_sse/warn_mmx fiels.
12453
12454 2004-01-14  Joseph S. Myers  <jsm@polyomino.org.uk>
12455
12456         * c-parse.in (stmts_and_decls): Make label at end of compound
12457         statement a hard error.
12458
12459 2004-01-14  Jan Hubicka  <jh@suse.cz>
12460
12461         * cgraph.c (create_edge): Use local.redefined_extern_inline.
12462         * cgraph.h (cgraph_local_info): Sort fields by size; add
12463         redefined_extern_inline
12464         (cgraph_global_info): Sort fields by size.
12465         (cgraph_node): Likewise.
12466         * cgraphunit.c (cgraph_finalize_function): Se
12467         local.redefined_extern_inline on redefinition.
12468         (cgraph_analyze_function): Use it; fix formating.
12469
12470 2004-01-14  Jan Hubicka  <jh@suse.cz>
12471
12472         PR c++/10776
12473         * sched-deps.c (trye_dependency_cache, anti_dependency_cache,
12474         outptu_dependency_cache, forward_dependency_cahe): Trun to vectors of
12475         bitmaps
12476         (cache_size): New variable
12477         (add_dependence): Update use; canonize early memory locations
12478         (sched_analyze_1): Likewise.
12479         (sched_analyze_2): Likewise.
12480         (init_dependency_caches): Initialize bitmaps.
12481         (free_dependency_caches): Free bitmaps
12482
12483 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
12484
12485         * calls.c: Replace STRICT_ARGUMENT_NAMING in comments with
12486         targetm.calls.strict_argument_naming().
12487         * target.h: Likewise.
12488
12489 2004-01-14  Richard Henderson  <rth@redhat.com>
12490
12491         PR debug/13231
12492         * dwarf2out.c (dwarf2out_stack_adjust): Skip prologue and epilogue
12493         instructions.
12494
12495 2004-01-14  Richard Henderson  <rth@redhat.com>
12496
12497         PR c++/12491
12498         * except.c (struct eh_region): Add u.fixup.resolved.
12499         (resolve_one_fixup_region): Split out from ...
12500         (resolve_fixup_regions): ... here.
12501
12502 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
12503
12504         * config/mn10300/mn10300.h (STRUCT_VALUE): Change to 0.
12505
12506 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
12507
12508         * config/alpha/alpha.h (STRUCT_VALUE): Remove.
12509         * config/alpha/vms.h (STRUCT_VALUE_REGNUM): Remove #undef.
12510         (STRUCT_VALUE): Remove.
12511
12512 2004-01-14  Steven Bosscher  <stevenb@suse.de>
12513
12514         * system.h: Poison PROMOTED_MODE
12515         * integrate.c (expand_inline_function): Don't mention the
12516         PROMOTED_MODE.
12517         * loop.c (update_giv_derive): Same.
12518         * tree.h (DECL_RTL): Same.
12519
12520 2004-01-14  J"orn Rennecke <joern.rennecke@superh.com>
12521
12522         PR target/9365
12523         * sh.c (gen_block_redirect): Add special handling of RETURN.
12524         (gen_far_branch) Don't call gen_stuff_delay_slot if there is no
12525         far branch target (i.e. it's a return).
12526
12527 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
12528
12529         * regrename.c (find_oldest_value_reg): Fix a warning.
12530
12531 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
12532
12533         PR bootstrap/12527
12534         * config.gcc (arm*-*-linux*): Don't include unknown-elf.h in tm_file.
12535         Move linux-gas.h and linux-elf.h before aout.h.
12536         * arm/arm.h (INITIALIZE_TRAMPOLINE): Only define if not already.
12537         * arm/linux-elf.h (SUBTARGET_CPU_DEFAULT): Define.
12538
12539 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
12540
12541         * config/m32r/m32r.md: Use GEN_INT instead of gen_rtx
12542         (CONST_INT, VOIDmode, ...).
12543
12544 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
12545
12546         * regrename.c (find_oldest_value_reg): If the replacement uses
12547         multiple hard registers, check that all of them are in CLASS.
12548
12549 2004-01-14  Jan Hubicka  <jh@suse.cz>
12550
12551         * alias.c (get_alias_set):  Initialize alias set to 0 when subset is
12552         impossible.
12553
12554 2004-01-14  Kelley Cook  <kcook@gcc.gnu.org>
12555
12556         * Makefile.in: Define MAINT from --enable-maintainer-mode.
12557
12558 2004-01-14  Hartmut Penner  <hpenner@de.ibm.com>
12559
12560         * gcc/config/rs6000/rs6000.c (rs6000_stack_info)
12561         Calculate always vrsave_mask if TARGET_ALTIVEC.
12562         (rs6000_emit_prologue): Emit code for vrsave
12563         only if TARGET_ALTIVEC_VRSAVE.
12564         (rs6000_emit_epilogue): Likewise.
12565
12566 2004-01-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
12567
12568         * config/sparc/sparc.md (tie_add32): Fix pasto.
12569         (tie_add64): Likewise.
12570
12571 2004-01-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12572
12573         * config/i386/i386.md (*addqi_1_slp): Do not access operands[2].
12574
12575 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
12576
12577         * config/iq2000/iq2000-protos.h: Fix comment formatting.
12578         * config/iq2000/iq2000.c: Likewise.
12579         * config/iq2000/iq2000.md: Likewise.
12580
12581 2004-01-14  J. Brobecker  <brobecker@gnat.com>
12582
12583         * dwarf2out.c (is_ada_subrange_type): No longer check the TYPE_NAME.
12584         (subrange_type_die): Add handle for nameless subrange types.
12585
12586 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
12587
12588         * config/h8300/h8300-protos.h: Replace do_movsi with
12589         h8300_expand_movsi.
12590         * config/h8300/h8300.c (do_movsi): Change to
12591         h8300_expand_movsi.
12592         * config/h8300/h8300.md (movsi): Replace do_movsi with
12593         h8300_expand_movsi.
12594         (movsf): Likewise.
12595
12596 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
12597
12598         * config/h8300/h8300.c (dosize): Change to
12599         h8300_emit_stack_adjustment.  Update callers.
12600
12601 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
12602
12603         * config/h8300/h8300.md (movstrictqi): Add an alternative with
12604         the source being post_inc.  Tighten the predicate for the
12605         destination to register_operand.
12606         (movstricthi): Likewise.
12607
12608 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
12609
12610         * system.h (SHARED_BSS_SECTION_ASM_OP): Poison.
12611         * varasm.c (bss_section): Don't use SHARED_BSS_SECTION_ASM_OP.
12612         * doc/tm.texi (SHARED_BSS_SECTION_ASM_OP): Remove.
12613
12614 2004-01-14  Jan Hubicka  <jh@suse.cz>
12615
12616         Partial fix PR c++/12850
12617         * cgraphunit.c (cgraph_finalize_function): Always ggc_collect when
12618         at zero nest level.
12619
12620 2004-01-13  Bernardo Innocenti  <bernie@develer.com>
12621
12622         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Add missing "argptr"
12623         pseudo-register.
12624
12625 2004-01-13  Devang Patel <dpatel@apple.com
12626
12627         PR debug/7078
12628         * dbxout.c (dbxout_symbol_name): Emit mangled names for
12629         NAMESPACE_DECL memebers.
12630
12631 2004-01-13  Andrew Pinski  <pinskia@physics.uc.edu>
12632
12633         PR c++/12709
12634         * c-common.c (finish_fname_decls): Use the chain only if the
12635         tree is an expr_stmt.
12636
12637 2004-01-13  Vladimir Makarov  <vmakarov@redhat.com>
12638
12639         * rtl.def: Add comment about new option in automata_option.
12640
12641         * genautomata.c (PROGRESS_OPTION): New macro.
12642         (progress_flag): New global variable.
12643         (gen_automata_option): Process `progress'.
12644         (transform_insn_regexps, check_unit_distributions_to_automata,
12645         make_automaton, NDFA_to_DFA, build_automaton, create_automata,
12646         expand_automata, write_automata): Print about the progress only if
12647         progress_flag.  Remove fflush.
12648         (initiate_automaton_gen): Process command line flag `-progress'.
12649
12650         * doc/md.texi: Describe the new option.
12651
12652 2004-01-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12653
12654         * cfg.c (dump_bb): Dump entry edges.
12655
12656 2004-01-13  Richard Earnshaw  <rearnsha@arm.com>
12657
12658         * arm.c (thumb_legitimate_address_p): Only allow constant pool
12659         references from SImode.
12660         * arm.md (thumb_movhi_insn): Don't allow minipool references.
12661
12662 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
12663
12664         * system.h (TEXT_SECTION): Poison.
12665         * varasm.c (text_section): Don't use TEXT_SECTION.
12666         * config/sh/sh.c (sh_file_start): Fix a comment typo.
12667         * doc/tm.texi (TEXT_SECTION): Remove.
12668
12669 2004-01-13  Ben Elliston  <bje@wasabisystems.com>
12670
12671         * doc/rtl.texi (Vector Operations): Remove defunct vec_const item.
12672
12673 2004-01-12  James E Wilson  <wilson@specifixinc.com>
12674
12675         * unwind-libunwind.c: Delete.
12676
12677 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
12678
12679         PR 13656
12680         * c-decl.c (diagnose_mismatched_decls): Whenever newtype or
12681         oldtype is set, set *newtypep or *oldtypep too.  Do not set
12682         them at the very end.
12683         (validate_proto_after_old_defn): Restructure for comprehensibility;
12684         make error messages clearer.
12685
12686 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
12687
12688         * varray.h (VARRAY_POP): Add checking variant, aborts on underflow.
12689         (VARRAY_TOP): Use VARRAY_CHECK so the access is bounds-checked.
12690         * varray.c: No need to prototype error.
12691         (varray_check_failed): Wrap long string onto two lines.
12692         (varray_underflow): New function.
12693
12694 2004-01-13  Steven Bosscher  <stevenb@suse.de>
12695
12696         PR c++/13376
12697         * function.h (struct function): Kill `name' field.
12698         (current_function_name): Make it an extern function.
12699         * function.c (current_function_name): New function.
12700         * graph.c: Update all uses of current_function_name.
12701         * gcse.c: Likewise.
12702         * config/alpha/alpha.c, config/avr/avr.c, config/c4x/c4x.c,
12703         config/mips/mips.c, config/pdp11/pdp11.c: Likewise.
12704         * config/ip2k/ip2k.c (function_prologue): Use MAIN_NAME_P
12705         instead of a strcmp with "main".
12706
12707 2004-01-13  Jan Hubicka  <jh@suse.cz>
12708
12709         * c-decl.c (diagnose_mismatched_decls):  Fix warning calls.
12710
12711         * cgraphunit.c (cgraph_optimize_function):  Always do
12712         optimize_inline_calls when there is always_inline callee.
12713         (cgraph_decide_inlining): Fix formating.
12714         * tree-inline.c (inlinable_function_p): Do sorry for alwaysinline
12715         functions.
12716         (expand_call_inline): Likewise.
12717         * toplev.h (sorry): Fix prototype.
12718
12719 2004-01-12  Roger Sayle  <roger@eyesopen.com>
12720
12721         * builtins.c (expand_builtin_expect_jump): Simplify logic. Handle
12722         conditional jumps that drop through to unconditional jumps or the
12723         end of the sequence.
12724
12725 2004-01-13  Jan Hubicka  <jh@suse.cz>
12726
12727         * alias.c (new_alias_set): Construct the alias_set varray.
12728         (init_alias_once): Don't do it here.
12729
12730 2004-01-12  Marc Espie <espie@openbsd.org>
12731
12732         * system.h: handle YYBYACC like YYBISON.
12733
12734 2004-01-12  Jonathan Merriman <jonm@dualitymedia.com>
12735
12736         PR target/10847
12737         * config.gcc: No longer includes conflicting header sparc/sol2.h when
12738         building on sparc64-*-openbsd*.
12739
12740 2004-01-12  Andrew Pinski  <pinskia@physics.uc.edu>
12741
12742         PR debug/13539
12743         * dbxout.c (dbxout_type): Protected inheritance is not
12744         private but protected.
12745
12746 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
12747
12748         * config/mips/mips.c (mips_symbolic_constant_p): Revert last patch.
12749
12750 2004-01-12  Kazu Hirata  <kazu@cs.umass.edu>
12751
12752         PR optimization/12508.
12753         * combine.c (try_combine): Remove a dead set in a parallel
12754         even if its destination is a subreg.
12755
12756         Revert:
12757         2003-06-03  Kazu Hirata  <kazu@cs.umass.edu>
12758         * combine.c (simplify_set): Don't move a subreg in SET_SRC to
12759         SET_DEST if WORD_REGISTER_OPERATIONS is not defined.
12760
12761 2004-01-12  Geoffrey Keating  <geoffk@apple.com>
12762
12763         * real.c: Update copyright date.
12764         * emit-rtl.c: Likewise.
12765         * rtl.h: Likewise.
12766         * dwarf2out.c: Likewise.
12767         * config/rs6000/darwin-ldouble.c: Likewise.
12768         * config/rs6000/rs6000.md: Likewise.
12769
12770 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
12771
12772         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Add AIX
12773         TFmode to SImode libfuncs.
12774
12775 2004-01-12  Roger Sayle  <roger@eyesopen.com>
12776
12777         PR middle-end/11397
12778         * varasm.c (assemble_alias): Remove weak aliases from weak_decls.
12779
12780 2004-01-12  Jan Hubicka  <jh@suse.cz>
12781
12782         PR opt/12826
12783         * loop.c (insert_loop_mem): Preffer VOLATILE memory references to be
12784         stored.
12785
12786         PR opt/12863
12787         * cfgcleanup.c (label_is_jump_target_p): Move to...
12788         * rtlanal.c (label_is_jump_target_p): ... here.
12789         * cfgrtl.c (cfg_layout_redirect_edge_and_branch):  Fix redirecting of fallthru
12790         edges unified with branch edges.
12791
12792 2004-01-12  Richard Earnshaw  <rearnsha@arm.com>
12793
12794         * simplify-rtx.c (simplify_immed_subreg): Correctly extract the
12795         high word of an integral CONST_DOUBLE.
12796
12797 2004-01-12  Paul Brook  <paul@codesourcery.com>
12798
12799         * simplify-rtx.c (simplify_plus_minus): Always generate canonical form.
12800
12801 2004-01-12  J"orn Rennecke <joern.rennecke@superh.com>
12802
12803         PR target/13585
12804         * sh-protos.h (check_use_sfunc_addr): Declare.
12805         * sh.c (extract_sfunc_addr, check_use_sfunc_addr): New functions.
12806         * sh.md (use_sfunc_addr): Use check_use_sfunc_addr in insn predicate.
12807
12808 2004-01-12  Jan Hubicka  <jh@suse.cz>
12809
12810         * alias.c:  Invlude varray.h
12811         (alias_sets): Turn into varray.
12812         (get_alias_set_entry): Use VARRAY; mark inline.
12813         (mems_in_disjoint_alias_sets_p): Mark inline.
12814         (record_alias_subset): Use varray.
12815         (init_alias_once): Initialize varray.
12816         (new_alias_set): Grow array.
12817         * varray.c: Make VARRAY_GENERIC_PTR non GTYized.
12818
12819 2004-01-12  Jan Hubicka  <jh@suse.cz>
12820
12821         Partial fix for PR opt/10776 II
12822         * cselib.c: Include params.h
12823         (cselib_invalidate_mem):  Limit amount of nonconflicting memory
12824         locations.
12825         * params.def (PARAM_MAX_CSELIB_MEMORY_LOCATIONS): New.
12826         * Makefile.in (cselib.o): Depend on params.h
12827
12828 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
12829
12830         * combine.c (combine_simplify_rtx): Don't pass VOIDmode to
12831         simplify_unary_operation if the operand has a known mode.
12832
12833 2004-01-12  Hartmut Penner  <hpenner@de.ibm.com>
12834
12835         PR target/13534
12836         * gcc/config/rs6000/rs6000.c (word_offset_memref_operand): New
12837         predicate to handle 'ld' conform addresses.
12838         * gcc/config/rs6000/rs6000.h (EXTRA_CONSTRAINT): New 'Y'
12839         contraint.
12840         (EXTRA_MEMORY_CONSTRAINT): Tell reload which constraint
12841         are memory contraints.
12842         * gcc/config/rs6000/rs6000-protos.h (word_offset_memref_operand):
12843         New prototype.
12844         * gcc/config/rs6000/rs6000.md (*movdf_hardfloat64):
12845         Change 'o' to 'Y' constraint.
12846         (*movdf_softfloat64): Ditto.
12847
12848 2004-01-12  Bernardo Innocenti  <bernie@develer.com>
12849
12850         * gcc/config/m68k/m68k.md: Switch from the "*..." syntax to the
12851         brace-enclosed syntax in all C output statements.
12852
12853 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
12854
12855         PR target/13401
12856         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
12857         Objective-C language type value is 14.
12858
12859 2004-01-12  Markus F.X.J. Oberhumer  <markus@oberhumer.com>
12860
12861         PR c/12148
12862         * config/m68k/fpgnulib.c: Fix `-mshort' bugs: Use `long' instead of
12863         `int' in a number of places to make sure we always have a SImode
12864         and not a HImode.  Add a 'L' suffix to a number of constants.
12865
12866 2004-01-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12867
12868         * pa.c: Don't include obstack.h.
12869
12870         * pa.md: Correct constraint in pattern for loading PIC label address.
12871
12872 2004-01-11  Kaz Kojima  <kkojima@gcc.gnu.org>
12873
12874         * config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine
12875          before defining.
12876
12877 2004-01-11  Steven Bosscher  <stevenb@suse.de>
12878
12879         PR fortran/9972
12880         * toplev.c (rest_of_handle_inline): Also consider functions
12881         for deferral if the language is GNU F77.
12882
12883 2004-01-11  Zack Weinberg  <zack@codesourcery.com>
12884
12885         * c-decl.c (diagnose_arglist_conflict): Add missing space to
12886         diagnostic messages.
12887
12888 2004-01-11  Jakub Jelinek  <jakub@redhat.com>
12889
12890         PR middle-end/13392
12891         * builtins.c (expand_builtin_expect_jump): Handle conditional jumps
12892         to drop through label.  Don't fall back to SCC even when conditional
12893         jump has not been found.
12894
12895 2004-01-11  Jan Hubicka  <jh@suse.cz>
12896
12897         * invoke.texi: Fix syntax error in previous patch.
12898
12899         Partial fix for PR opt/10776
12900         * Makefile.in (reload.o): Include param.h
12901         * params.def (PARAM_MAX_RELOAD_SEARCH_INSNS): New parameter.
12902         * reload.c: Include params.h.
12903         (find_equiv_reg): Work limiting check.
12904         * invoke.texi: Document.
12905
12906 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
12907
12908         * config/mips/mips.c (mips_symbolic_constant_p): Don't allow
12909         out-of-bounds accesses to string constants.  Simplify mips16
12910         case accordingly.
12911
12912 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
12913
12914         PR optimization/13469
12915         * toplev.c (rest_of_compilation): Call purge_all_dead_edges after
12916         reload_cse_regs (-fnon-call-exceptions only).
12917
12918 2004-01-11  Kazu Hirata  <kazu@cs.umass.edu>
12919
12920         * config/mcore/lib1.asm: Fix comment formatting.
12921         * config/mcore/mcore-elf.h: Likewise.
12922         * config/mcore/mcore.c: Likewise.
12923         * config/mcore/mcore.h: Likewise.
12924         * config/mcore/mcore.md: Likewise.
12925
12926 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
12927
12928         * c-decl.c (duplicate_decls): Break apart into...
12929         (diagnose_arglist_conflict, validate_proto_after_old_defn)
12930         (locate_old_defn, diagnose_mismatched_decls, merge_decls):
12931         ... these new functions.  Restructure for comprehensibility.
12932         Remove various archaic special cases.  Always report the
12933         location of the previous declaration when a diagnostic is issued.
12934         (redeclaration_error_message): Fold into diagnose_mismatched_decls.
12935         (match_builtin_function_types): Delete unnecessary forward declaration.
12936
12937 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
12938
12939         * genautomata.c (make_automaton, NDFA_to_DFA):
12940         Print progress bars with '.' characters instead of '*'.
12941         (build_automaton): Change notes to match.
12942
12943 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
12944
12945         * config/m32r/m32r.md: Use define_constants for unspec and
12946         unspec_volatile.
12947
12948 2004-01-10  Jan Hubicka  <jh@suse.cz>
12949
12950         PR opt/11635
12951         * expr.c (expand_expr_real):  More curefully expand union casts.
12952
12953 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
12954
12955         * config/m32r/m32r.md (flush_icache): Use 1 for
12956         unspec_volatile.
12957
12958 2004-01-10  David Edelsohn  <edelsohn@gnu.org>
12959             James E Wilson  <wilson@specifixinc.com>
12960
12961         PR debug/12860
12962         * dbxout.c (dbxout_symbol): Remove initialization of
12963         current_sym_code, current_sym_value, and current_sym_addr.
12964         (dbxout_symbol_location): Same.
12965         (dbxout_prepare_symbol): Zero current_sym_code,
12966         current_sym_value, and current_sym_addr.
12967
12968 2004-01-10  Richard Sandiford  <rsandifo@redhat.com>
12969
12970         * tree.c (get_unwidened): Reorder conditions so that the null pointer
12971         check is done first.
12972
12973 2004-01-09  Eric Christopher  <echristo@redhat.com>
12974
12975         * toplev.c (rest_of_handle_cfg): Add reg_scan pass
12976         if we're running mark_constant_function.
12977
12978 2004-01-09  Jeff Bailey  <jbailey@nisa.net>
12979
12980         PR target/12561
12981         * config/t-gnu: Rename SYSTEM_HEADER_DIR to NATIVE_SYSTEM_HEADER_DIR.
12982
12983 2004-01-09  Andrew Pinski <pinskia@physics.uc.edu>
12984
12985         PR debug/11231
12986         * dbxout.c (dbxout_type_fields): Return if any item is
12987         error_mark_node or the type is error_mark_node.
12988
12989 2004-01-09  Geoffrey Keating  <geoffk@apple.com>
12990
12991         * config/rs6000/darwin-ldouble.c: Add big comment explaining
12992         exactly what is expected as a 'long double'.
12993         (_xlqadd): When a value to be returned is representable as a
12994         'double', just return it directly, do not construct it using a union.
12995         Also, correct final fixup.
12996         (_xlqmul): Likewise.
12997         (_xlqdiv): Likewise.
12998         * real.c (encode_ibm_extended): Make consistent with darwin-ldouble.c.
12999
13000         * config/rs6000/rs6000.md (fix_trunctfdi2): Delete.
13001
13002 2004-01-09  Richard Henderson  <rth@redhat.com>
13003
13004         * recog.c (constrain_operands): Validate mem operands.
13005
13006 2004-01-09   James E Wilson  <wilson@specifixinc.com>
13007
13008         * gcc.c (init_spec): Remove -lunwind from shared case.
13009         * conifg/ia64/t-hpux (SHLIB_LINK): Add -lunwind.
13010
13011 2004-01-09  Steve Ellcey  <sje@cup.hp.com>
13012
13013         * configure.ac: (gcc_cv_ld_hidden) Set to true for ia64*-*-hpux*.
13014         * configure: Regenerate
13015
13016 2004-01-09  Joseph S. Myers  <jsm@polyomino.org.uk>
13017
13018         PR c/11234
13019         * c-typeck.c (build_c_cast): If pedantic, warn for conversions
13020         between function and object pointers.
13021         (digest_init): When comparing a pointer to function type to the
13022         target type, only apply TREE_TYPE once to the pointer to function
13023         type.
13024         * except.c (for_each_eh_label_1): Treat data as a pointer to a
13025         function pointer rather than casting it to a function pointer.
13026         (for_each_eh_label): Update caller.
13027         * recog.h (struct insn_data): Use a struct or union for output.
13028         * genoutput.c (output_insn_data): Update.
13029         * final.c (get_insn_template): Update.
13030
13031 2004-01-09  Mark Mitchell  <mark@codesourcery.com>
13032
13033         * expr.h (expand_expr): Make it a macro, not a function.
13034         (expand_expr_real): New function.
13035         * expr.c (store_expr): Adjust logic for deciding whether or not to
13036         copy the value returned by expand_expr.
13037         (expand_expr): Rename to ...
13038         (expand_expr_real): ... this.  Add alt_rtl parameter.  Adjust
13039         calls to language hooks.
13040         * c-common.h (c_expand_expr): Adjust prototype.
13041         * c-common.c (c_expand_expr): Add alt_rtl parameter.
13042         * langhooks-def.h (lhd_expand_expr): Change prototype.
13043         * langhooks.c (lhd_expand_expr): Add all_rtl parameter.
13044         * langhooks.h (lang_hooks): Change type of expand_expr.
13045         * stmt.c (stmt_status): Add x_last_expr_alt_rtl.
13046         (last_expr_alt_rtl): Likewise.
13047         (expand_expr_stmt_value): Set last_expr_alt_rtl.
13048         (clear_last_expr): Clear it.
13049         (expand_end_stmt_expr): Set RTL_EXPR_ATL_RTL.
13050         (expand_end_bindings): Save and restor last_expr_alt_rtl.
13051         * tree.def (RTL_EXPR): Give it an additional operand.
13052         * tree.h (RTL_EXPR_ALT_RTL): New macro.
13053
13054 2004-01-09  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
13055
13056         * config/m32r/m32r.h (TARGET_CPU_CPP_BUILTINS): Add __m32r__.
13057         * config/m32r/m32r.c (call26_operand): Allow in PIC mode.
13058
13059 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
13060
13061         PR target/13380.
13062         * config/m32r/m32r.md: Replace (reg:SI 17) with (reg:CC 17)
13063         or (ne:SI (reg:CC 17) (const_int 0)).
13064         Be specific about modes wherever possible.
13065
13066 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
13067
13068         * config/m32r/m32r.c (m32r_expand_block_move): Call
13069         gen_movestrsi_internal with two more arguments.
13070         (m32r_output_block_move): Adjust operand numbers.
13071         Properly update the source and destination pointers.
13072         * config/m32r/m32r.md (movstrsi_internal): Use 'r' instead of
13073         'r+'.  Change the set detinations to match_operand.
13074
13075 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
13076
13077         * final.c (FIRST_INSN_ADDRESS): Remove.
13078         (shorten_branches): Don't use FIRST_INSN_ADDRESS.
13079         * system.h (FIRST_INSN_ADDRESS): Poison.
13080         * config/avr/avr.h: Remove a comment about FIRST_INSN_ADDRESS.
13081         * config/m32r/m32r-protos.h: Remove the prototype for
13082         m32r_first_insn_address.
13083         * config/m32r/m32r.c (m32r_first_insn_address): Remove.
13084         * config/m32r/m32r.h (FIRST_INSN_ADDRESS): Likewise.
13085         * doc/md.texi (FIRST_INSN_ADDRESS): Likewise.
13086
13087 2004-01-09  J. Brobecker  <brobecker@gnat.com>
13088
13089         * dwarf2out.c (gen_enumeration_type_die): Return the DIE that
13090         we just created.
13091         (is_ada_subrange_type): DIEs for enumeration subtypes should be
13092         emitted as subrange types too.
13093         (subrange_type_die): Add handling of enumeration subtypes.
13094
13095 2004-01-08  Richard Henderson  <rth@redhat.com>
13096
13097         PR opt/12441
13098         Revert: Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>
13099         * i386.c (aligned_operand): Be prepared for SUBREGed registers.
13100         (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
13101         (ix86_address_cost): Be prepared for SUBREGed registers.
13102         (legitimate_address_p): Accept SUBREGed registers.
13103
13104 2004-01-08  Kelley Cook  <kcook@gcc.gnu.org>
13105
13106         * Makefile.in: Rename configure.in to configure.ac
13107         * doc/sourcebuild.texi: Likewise.
13108         * configure: Regenerate.
13109         * config.in: Regenerate.
13110
13111 2004-01-08  Stuart Hastings  <stuart@apple.com>
13112
13113         * config/i386/i386.md: Typos in MMX/SSE immediate shifts.
13114
13115 2004-01-08  Jan Hubicka  <jh@suse.cz>
13116
13117         * cgraphunit.c (cgraph_decide_inlining):  Fix typo.
13118
13119 2004-01-08  Geoffrey Keating  <geoffk@apple.com>
13120
13121         * config/rs6000/rs6000.md (cmptf_internal1): Correct branch offset.
13122         (UNSPEC_FIX_TRUNC_TF): New constant.
13123         (movtf_internal): Make splitter active only when insn is active.
13124         (extenddftf2): Rewrite to properly load zero into low part.
13125         (extenddftf2_internal): New.
13126         (extendsftf2): Rewrite.
13127         (truncdftf2): Correct length.
13128         (floatditf2): Delete.
13129         (fix_trunc_helper): New.
13130         (fix_trunctfdi2): Use fix_trunc_helper.
13131         (fix_trunctfsi2): Likewise.fix_trunc
13132         (fix_trunctfsi2_internal): New.
13133
13134         * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): lo_sum
13135         addresses are legitimate on Darwin even when flag_pic.
13136         (rs6000_legitimize_reload_address) [TARGET_MACHO]: Don't create
13137         non-offsettable addresses for loads of TFmode constants.
13138
13139 2004-01-08  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
13140
13141         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Actually emit
13142         variables in the appropriate bss section.
13143
13144 2004-01-09  Alan Modra  <amodra@bigpond.net.au>
13145
13146         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Ensure
13147         target_flags has MASK_POWERPC64 when -m64.
13148         * config/rs6000/rs6000.c (processor_target_table): Add MASK_POWERPC64
13149         to 620, 630, power3, power4 and rs64a entries.
13150         * config/rs6000/rs6000.h (MASK_64BIT): Expand comment.
13151
13152 2004-01-08  Richard Sandiford  <rsandifo@redhat.com>
13153
13154         * simplify-rtx.c (simplify_immed_subreg): Fix construction of
13155         floating-point constants.
13156
13157 2004-01-08  J. Brobecker  <brobecker@gnat.com>
13158
13159         * dwarf2out.c (subrange_type_die): Add context_die parameter.
13160         Create the subrange_type DIE using the given context DIE.
13161         (modified_type_die): Update call to subrange_type_die.
13162
13163 2004-01-08  Zack Weinberg  <zack@codesourcery.com>
13164
13165         * dwarf2.h, unwind-dw2-fde.h, unwind-pe.h, unwind.h:
13166         Add multiple-include guard.
13167
13168 2004-01-08  Hartmut Penner  <hpenner@de.ibm.com>
13169
13170         * gcc/config/rs6000/rs6000.c (easy_vector_constant): Accept
13171         all vector constant loadable by vsplt*.
13172         (output_vec_const_move): Likewise.
13173
13174 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
13175
13176         PR c/6024
13177         * c-typeck.c (comptypes): Only treat enumerated types in the same
13178         translation unit as compatible with each other when they are the
13179         same type.
13180         * doc/extend.texi: Update.
13181
13182 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
13183
13184         PR c/12165
13185         * c-decl.c (grokdeclarator): Take type qualifiers of typedefed
13186         array type from the array element type.
13187
13188 2004-01-07  Alan Modra  <amodra@bigpond.net.au>
13189
13190         * config/rs6000/rs6000.c (rs6000_dbx_register_number): New function.
13191         * config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Declare.
13192         * config/rs6000/rs6000.h (DWARF_FRAME_REGNUM): Define.
13193         (DWARF_REG_TO_UNWIND_COLUMN): Correct column adjustment and comment.
13194         * config/rs6000/sysv4.h (DBX_REGISTER_NUMBER): Define.
13195
13196 2004-01-06  Eric Christopher  <echristo@redhat.com>
13197
13198         * config/mips/mips.h (MDEBUG_ASM_SPEC): Change for dwarf2 default.
13199         (DWARF2_DEBUGGING_INFO): Define.
13200         (PREFERRED_DEBUGGING_TYPE): Set to dwarf2.
13201         * config/mips/openbsd.h (PREFERRED_DEBUGGING_TYPE): Remove.
13202         * config/mips/iris6.h (SUBTARGET_ASM_DEBUGGING_SPEC): Only pass -g0
13203         for irix as.
13204         (SUBTARGET_ASM_OPTIMIZING_SPEC): Only pass O0 for irix as.
13205         * config/mips/iris6gas.h (MDEBUG_ASM_SPEC): Remove.
13206         * config/mips/iris5gas.h: Ditto.
13207         (DBX_DEBUGGING_INFO): Remove.
13208         (DWARF2_DEBUGGING_INFO): Ditto.
13209         (MIPS_DEBUGGING_INFO): Ditto.
13210         (PREFERRED_DEBUGGING_TYPE): Ditto.
13211         * config/mips/elf.h (DWARF2_DEBUGGING_INFO): Remove.
13212         (PREFERRED_DEBUGGING_TYPE): Ditto.
13213         (SUBTARGET_ASM_DEBUGGING_SPEC): Ditto.
13214         * config/mips/elf64.h: Ditto.
13215
13216 2004-01-06  Jan Hubicka  <jh@suse.cz>
13217
13218         * Makefile.in (STAGEPROFILE_FLAGS_TO_PASS): Use -fprofile-generate.
13219         (STAGEFEEDBACK_FLAGS_TO_PASS): Use -fprofile-use.
13220
13221 2004-01-06  Geoffrey Keating  <geoffk@apple.com>
13222
13223         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Compile darwin-ldouble.c.
13224         (TARGET_LIBGCC2_CFLAGS): Use -mlong-double-128.
13225         * config/rs6000/darwin-ldouble.c: New.
13226
13227         * emit-rtl.c (gen_lowpart_common): Use simplify_gen_subreg
13228         for constants.
13229         (constant_subword): Delete.
13230         * rtl.h (constant_subword): Delete prototype.
13231         (immed_double_const): Is not in varasm.c.
13232         * simplify-rtx.c (simplify_immed_subreg): New.
13233         (simplify_subreg): Use simplify_immed_subreg.
13234
13235         * config/rs6000/rs6000.md (floatsitf2): Use expand_float rather
13236         than trying to generate RTL directly.
13237         (fix_trunctfsi2): Use expand_fix rather than trying to generate
13238         RTL directly.
13239
13240         * dwarf2out.c (add_const_value_attribute): Remove incorrect comment.
13241
13242 2004-01-06  David Edelsohn  <edelsohn@gnu.org>
13243
13244         * config/rs6000/xcoff.h (EXTRA_SECTION_FUNCTIONS): Split each
13245         function into a separate macro.
13246         (read_only_data_section): Add void argument.
13247         (private_data_section): Same.
13248         (read_only_private_data_section): Same.
13249         (toc_section): Same.
13250
13251 2004-01-06  Jan Hubicka  <jh@suse.cz>
13252
13253         * invoke.texi:  Remove typo in last change.
13254
13255         PR target/10301
13256         * config.gcc: Accept opteron and athlon-64 as variants
13257         of k8.
13258         * i386.c (override_options): Likewise.
13259         * invoke.texi (i386 -mtune): Expand documentation.
13260
13261 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
13262
13263         * alias.c: Fix comment typos.
13264         * builtins.c: Likewise.
13265         * cfg.c: Likewise.
13266         * df.c: Likewise.
13267         * dominance.c: Likewise.
13268         * dwarf2out.c: Likewise.
13269         * emit-rtl.c: Likewise.
13270         * expr.c: Likewise.
13271         * final.c: Likewise.
13272         * fold-const.c: Likewise.
13273         * gcse.c: Likewise.
13274         * genattrtab.c: Likewise.
13275         * genrecog.c: Likewise.
13276         * gensupport.c: Likewise.
13277         * ggc-zone.c: Likewise.
13278         * integrate.c: Likewise.
13279         * local-alloc.c: Likewise.
13280         * loop.c: Likewise.
13281         * recog.c: Likewise.
13282         * regmove.c: Likewise.
13283         * reg-stack.c: Likewise.
13284         * reorg.c: Likewise.
13285         * rtlanal.c: Likewise.
13286         * rtl.h: Likewise.
13287         * sched-ebb.c: Likewise.
13288         * simplify-rtx.c: Likewise.
13289         * toplev.c: Likewise.
13290         * varasm.c: Likewise.
13291
13292 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
13293
13294         * doc/install.texi: Fix typos.
13295         * doc/invoke.texi: Likewise.
13296         * doc/md.texi: Likewise.
13297
13298 2004-01-06  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
13299
13300         * config/m32r/m32r.h (TRAMPOLINE_LINE_SIZE): Changed
13301
13302 2004-01-06  Jan Hubicka  <jh@suse.cz>
13303
13304         * i386.c (init_cumulative_args):  Add handling of MMX_REGPARM.
13305         (function_arg_advance):  Do not pass aggregates in SSE; deal handling
13306         of MMX_REGPARM.
13307         (function_arg): Add new warnings about ABI changes;  fix SSE_REGPARM;
13308         add MMX_REGPARM.
13309         * i386.h (ix86_args): Add mmx_words/mmx_regs/mmx_regno fields.
13310         (SSE_REGPARM_MAX): Default to 3 on i386 -msse ABI.
13311         (MMX_REGPARM_MAX): Similarly for -mmmx.
13312
13313 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
13314
13315         * config/sh/linux.h: Fix comment formatting.
13316         * config/sh/netbsd-elf.h: Likewise.
13317         * config/sh/sh.c: Likewise.
13318         * config/sh/sh.h: Likewise.
13319         * config/sh/vxworks.h: Likewise.
13320
13321 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
13322
13323         * system.h (ASM_OUTPUT_MAIN_SOURCE_FILENAME): Poison.
13324         * toplev.c (output_file_directive): Don't use
13325         ASM_OUTPUT_MAIN_SOURCE_FILENAME.
13326
13327 2004-01-05  Steven Bosscher <s.bosscher@student.tudelft.nl>
13328
13329         * toplev.c: Fix broken checkin of 2003-12-30.
13330
13331 2004-01-05  Daniel Berlin  <dberlin@dberlin.org>
13332
13333         * ggc-zone.c: Remove everything in #ifdef USING_MALLOC_PAGE_GROUPS
13334         (USING_MMAP): We don't support non-mmap.
13335         (struct alloc_chunk): Steal 1 bit from typecode, use it to mark
13336         large objects.
13337         (struct page_entry): Remove bytes_free.
13338         (struct page_table_chain): Remove.
13339         (struct globals): Remove page_table member.
13340         (loookup_page_table_entry): Function deleted.
13341         (set_page_table_entry): Ditto.
13342         (ggc_allocated_p): No longer need page table lookups.
13343         (ggc_marked_p): Ditto.
13344         (alloc_small_page): Don't care about bytes_free anymore.
13345         (alloc_large_page): Round up size.
13346         (ggc_alloc_zone_1): Mark large objects as such, and calculate
13347         their size the new way.
13348         Remove page table lookups and setting.
13349         (ggc_get_size): Calculate large object size the new way.
13350         (sweep_pages): Redo to account for fact that we no longer have
13351         bytes_free.
13352         (ggc_collect): No longer need to reincrement bytes_free.
13353         (ggc_pch_alloc_object): Handle new large objects properly.
13354         (ggc_pch_read): Put PCH stuff into it's own uncollected zone.
13355
13356 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
13357
13358         * doc/invoke.texi: Remove a page break.
13359
13360 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
13361
13362         * config/avr/avr.c (avr_output_function_prologue): Remove an
13363         extra pair of curly braces.
13364
13365 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
13366
13367         * config/mn10300/mn10300.c: Fix comment formatting.
13368         * config/mn10300/mn10300.h: Likewise.
13369
13370 2004-01-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13371
13372         * tree.h: Update documentation on nothrow_flag.
13373         * print-tree.c (print_node): Print TREE_NOTHROW as "align-ok" for
13374         types.
13375
13376 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
13377
13378         * doc/invoke.texi: Remove traces of dead ports.
13379
13380 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
13381
13382         * doc/invoke.texi: Add documentation for the MIPS -mexplicit-relocs
13383         option.
13384
13385 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
13386
13387         PR target/12945
13388         * coverage.c (coverage_counter_alloc): Set SYMBOL_FLAG_LOCAL for
13389         counter labels.
13390         * config/mips/mips.c (INTERNAL_SYMBOL_P): Delete.
13391         (mips_classify_symbol): Always treat SYMBOL_REF_FLAG as indicating
13392         string constants if TARGET_MIPS16.  Use SYMBOL_REF_DECL to check
13393         the binding of decl symbols, otherwise check SYMBOL_REF_LOCAL_P.
13394         (mips_symbol_insns): Don't trust the local/global classification.
13395         (m16_usym8_4, m16_usym5_4): Same mips16 change as mips_classify_symbol.
13396         (override_options): Make -mabicalls -fno-unit-at-a-time imply
13397         -mno-explicit-relocs.
13398         (mips_encode_section_info): Don't use SYMBOL_REF_FLAG to distinguish
13399         between local and global symbols.
13400
13401 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
13402
13403         * config/mips/mips-protos.h (mips_dangerous_for_la25_p): Declare.
13404         (mips_preferred_reload_class): Declare.
13405         * config/mips/mips.h (DANGEROUS_FOR_LA25_P): Replace with function.
13406         (EXTRA_CONSTRAINT): Update accordingly.
13407         (PREFERRED_RELOAD_CLASS): Use mips_preferred_reload_class.
13408         * config/mips/mips.c (mips_dangerous_for_la25_p): New function.
13409         (mips_preferred_reload_class): New function.  Prefer LEA_REGS if
13410         mips_dangerous_for_la25_p.
13411         (mips_secondary_reload_class): Use LEA_REGS rather than GR_REGS
13412         if mips_dangerous_for_la25_p.
13413
13414 2004-01-05  Bernardo Innocenti  <bernie@develer.com>
13415
13416         * config/m68k/m68k.c (output_andsi3): Fix signed/unsigned comparison
13417         warning.
13418
13419 2004-01-04  Nathanael Nerode  <neroden@gcc.gnu.org>
13420
13421         * configure.ac: Use AC_PROG_CPP_WERROR.
13422         * configure: Regenerate.
13423
13424 2004-01-04  Zack Weinberg  <zack@codesourcery.com>
13425
13426         * .cvsignore: Add autom4te.cache.
13427
13428 2004-01-04  Richard Sandiford  <rsandifo@redhat.com>
13429
13430         * doc/invoke.texi: Revamp documentation of MIPS options.  Remove
13431         -mabi=meabi, -mabi-fake-default, -mmips-as, -mgas, -mmips-tfile,
13432         -m4650, -mfix7000 and -(m)no-crt0.  Put endianness options first,
13433         then architecture options, then ABI options.  General rewording.
13434
13435 2004-01-04  Joseph S. Myers  <jsm@polyomino.org.uk>
13436
13437         PR c/3414
13438         * doc/extend.texi: Clarify definition of malloc attribute.
13439
13440 2004-01-04  Jan Hubicka  <jh@suse.cz>
13441
13442         * Makefile.in (cgraph.o, cgraphunit.o): Add intl.h dependency.
13443         * cgraph.c (create_edge, dump_cgraph): Update to use inline_failed
13444         * cgraph.h (cgraph_edge): Replace inline_call by inline_failed
13445         (cgraph_inline_p): Add extra argument reason.
13446         * cgraphunit.c: Minor formating fixes.
13447         cgraph_first_inlined_callee): New functions.
13448         (record_call_1): Record builtins too.
13449         (cgraph_analyze_function): Update inline_failed messages.
13450         (cgraph_mark_functions_to_output, cgraph_expand_function, cgraph_inlined_into,
13451         cgraph_inlined_callees, cgraph_estimate_growth): Update to use inline_failed.
13452         (cgraph_check_inline_limits): Likewise; Add argument reason.
13453         (cgraph_set_inline_failed): New static function.
13454         (cgraph_decide_inlining_of_small_function, cgraph_decide_inlining): Set
13455         reasons.
13456         (cgraph_inline_p): Add new argument reason.
13457         * tree-inline.c (expand_call_inline):  Update warning.
13458
13459 2004-01-03  Nathanael Nerode  <neroden@gcc.gnu.org>
13460
13461         * configure.ac: Replace AC_INIT, AC_OUTPUT, AC_CANONICAL_SYSTEM
13462         with modern equivalents.
13463         * configure: Regenerate.
13464
13465         * configure.ac: Replace gcc_AC_CHECK_TYPE with AC_CHECK_TYPE.
13466         * aclocal.m4 (gcc_AC_CHECK_TYPE): Remove.
13467         * configure: Regenerate.
13468
13469         * doc/install.texi: Note that 'gcc' is now a 2.57 directory.
13470
13471         * configure.in: Rename to configure.ac.
13472         * configure.ac: Renamed from configure.in; make minimum necessary
13473         changes for autoconf 2.5x.
13474         * aclocal.m4: Make minimum necessary changes for autoconf 2.5x.
13475         * configure: Regenerate with autoconf 2.57.
13476
13477 2004-01-03  Kazu Hirata  <kazu@cs.umass.edu>
13478
13479         * config/mips/linux.h: Fix comment formatting.
13480         * config/mips/mips.c: Likewise.
13481         * config/mips/mips.h: Likewise.
13482         * config/mips/mips.md: Likewise.
13483         * config/mips/netbsd.h: Likewise.
13484         * config/mips/windiss.h: Likewise.
13485
13486 2004-01-02  Richard Henderson  <rth@redhat.com>
13487
13488         * config/i386/i386.md (fp constant pool splitter): Reorg suppression
13489         for sse and 387; add suppression for mmx.
13490
13491 2004-01-02  Andrew Pinski  <pinskia@physics.uc.edu>
13492
13493         * loop.c (loop_optimize): Free all loops_info's mems.
13494
13495         * c-typeck.c (finish_init): Free spelling_base before
13496         setting it again.
13497
13498         * cfgloop.c (flow_loops_find): Always free the sbitmap
13499         headers.
13500
13501         * predict.c (estimate_probability): Free bbs after being
13502         done with it.
13503
13504 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
13505
13506         * config/mn10300/mn10300.h (PREDICATE_CODES): Add
13507         const_8bit_operand and call_address_operand.
13508
13509 2004-01-02  Jan Hubicka  <jh@suse.cz>
13510
13511         * cgraphunit.c (cgraph_optimize_function):  Call optimize_inline_calls
13512         when there is nothing to inline but warnings are requested.
13513         (cgraph_decide_inlining):  Fix memory leak.
13514
13515 2004-01-02  Jan Hubicka  <jh@suse.cz>
13516
13517         * expr.c (store_constructor):  Fix pasto in previous patch.
13518
13519 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
13520
13521         * config/i386/cygming.h: Fix comment formatting.
13522         * config/i386/djgpp.h: Likewise.
13523         * config/i386/gthr-win32.c: Likewise.
13524         * config/i386/i386-interix.h: Likewise.
13525         * config/i386/i386.c: Likewise.
13526         * config/i386/i386.h: Likewise.
13527         * config/i386/openbsd.h: Likewise.
13528         * config/i386/winnt.c: Likewise.
13529         * config/i386/xm-mingw32.h: Likewise.
13530
13531 2004-01-02  Joseph S. Myers  <jsm@polyomino.org.uk>
13532
13533         * doc/gcc.texi, doc/invoke.texi, doc/install.texi: Update
13534         copyright and last modification dates.
13535
13536 2004-01-02  Andreas Jaeger  <aj@suse.de>, Gerald Pfeifer  <gp@suse.de>
13537
13538         * doc/install.texi (Specific): Mention x86_64.
13539
13540 2004-01-01  Hans-Peter Nilsson  <hp@bitrange.com>
13541
13542         * builtins.c (expand_builtin_apply_args_1) [STACK_GROWS_DOWNWARD]:
13543         Call force_operand on plus_constant result.
13544
13545 2004-01-01  Jan Hubicka  <jh@suse.cz>
13546
13547         * expmed.c (store_bit_field, extract_bit_field): Use new named patterns
13548         * expr.c (store_constructor): Use vec_init pattern.
13549         * genopinit.c (optabs): Initailize vec_set/vec_extract/vec_init.
13550         * optabs.h (optab_index): ADD OTI_vec_set/OTI_vec_extract/OTI_vec_init
13551         (vec_set_optab, vec_extract_optab, vec_init_optab): New.
13552         * i386.md (vec_setv2df, vec_extractv2df, vec_setv4sf, vec_extractv4sf):
13553         New patterns.
13554         (sse2_unpc?pd): Fix pattern.
13555         (sse2_movlpd): Kill.
13556         (sse2_movsd): Deal with movlpd too.
13557         * i386.c (ix86_expand_builtin): Use sse2_movsd instead of sse2_movlpd.
13558         (ix86_expand_vector_init): New.
13559         * emmintrin.h (__mm_set_pd, __mm_set_ps): Use vector extensions.
13560         * md.texi (vec_set, vec_extract): Document
13561
13562 2003-12-31  Jan Hubicka  <jh@suse.cz>
13563
13564         PR opt/13473
13565         * recog.c (validate_replace_rtx_1):  Take care for RTL sharing inside
13566         ASM input operands
13567
13568         PR opt/12617
13569         * toplev.c (dump_file_index): Reorder ce3 and bbro.
13570         (dump_file): Likewise.
13571         (rest_of_compilation): Likewise.
13572
13573         PR debug/13367
13574         * cgraph.c (cgraph_function_possibly_inlined):  Even with
13575         flag_really_no_inline we inline always_inline functions.
13576         * cgraphunit.c (cgraph_analyze_function): Clear inlinable flag
13577         for non-always_inline functions when there is flag_really_no_inline.
13578         (cgraph_decide_inlining): Limit work done when not inlining.
13579         (cgraph_decide_inlining_incrementally): Likewise.
13580         (cgraph_optimize_function): Check whether something got inlined.
13581         * c-objc-common.c (c_disregard_inline_limits): Do not always inline
13582         extern inline functions when not inlining.
13583
13584         * opts.c (decode_options):  Disable crossjumping at -O1
13585         * invoke.texi (-O1): Document change.
13586
13587 See ChangeLog.10 for earlier changes.