OSDN Git Service

* config/mips/mips.c (override_options): Allow the hi and lo registers
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
2
3         * config/mips/mips.c (override_options): Allow the hi and lo registers
4         to store any integral mode, not just MODE_INTs.
5
6 2004-05-07  Paul Brook  <paul@codesourcery.com>
7
8         * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
9         * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
10         (TARGET_DOUBLEWORD_ALIGN): Use it.
11         (WCHAR_TYPE): Define.
12         (WCHAR_SIZE_TYPE): Define.
13         (SIZE_TYPE): Define.
14
15 2004-05-07  Uros Bizjak  <uros@kss-loka.si>
16
17         * config/i386/i386.c (ix86_emit_fp_unordered_jump): Use
18         testb $4, %ah insn instead of sahf insn if !TARGET_USE_SAHF.
19
20 2004-05-07  Andrew Pinski  <pinskia@physics.uc.edu>
21
22         * loop-doloop.c (doloop_valid_p): Make sure that body
23         gets freed.
24
25 2004-05-07  Eric Botcazou  <ebotcazou@act-europe.fr>
26
27         * config/sparc/sparc-protos.h (sparc_skip_caller_unimp): New
28         declaration.
29         * config/sparc/sparc.c (SKIP_CALLERS_UNIMP_P): Delete.
30         (sparc_skip_caller_unimp): New global variable.
31         (sparc_function_epilogue): Set 'sparc_skip_caller_unimp'.
32         Use it instead of SKIP_CALLERS_UNIMP_P.
33         * config/sparc/sparc.md (call expander): Add sanity check.
34         (call_address_struct_value_sp32): Re-sync with expander.
35         (call_symbolic_struct_value_sp32): Likewise.
36         (return peepholes): Use 'sparc_skip_caller_unimp' instead
37         of custom predicate.
38
39 2004-05-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
40
41         PR c++/14962
42         * c-pragma.c (handle_pragma_redefine_extname): Only change
43         the assembler name of FUNCTION_DECLs and VAR_DECLs.
44
45 2004-05-07  Uros Bizjak  <uros@kss-loka.si>
46
47         * optabs.h (enum optab_index): Add new OTI_log1p.
48         (log1p_optab): Define corresponding macro.
49         * optabs.c (init_optabs): Initialize log1p_optab.
50         * genopinit.c (optabs): Implement log1p_optab using log1p?f2
51         patterns.
52         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG1P{,F,L}
53         using log1p_optab.
54         (expand_builtin): Expand BUILT_IN_LOG1P{,F,L} using
55         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
56
57         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FYL2XP1.
58
59         * config/i386/i386.c (ix86_emit_i387_log1p): New function.
60         * config/i386/i386-protos.h (ix86_emit_i387_log1p):
61         Prototype here.
62         * config/i386/i386.md (UNSPEC_FYL2XP1): New unspec to represent
63         x87's fyl2xp1 instruction.
64         (*fyl2x_xf3): Rename insn definition to fyl2x_xf3.
65         (fyl2xp1_xf3): New pattern to implement fyl2xp1 x87 instruction.
66         (log1psf2, log1pdf2, log1pxf2): New expanders to implement log1pf,
67         log1p  and log1pl built-ins as inline x87 intrinsics.
68
69 2004-05-07  Loren James Rittle  <ljrittle@acm.org>
70
71         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Proper redefinition.
72         * config/arm/freebsd.h: Likewise.
73         * config/ia64/freebsd.h: Likewise.
74         * config/sparc/freebsd.h: Likewise.
75
76 2004-05-07  Hans-Peter Nilsson  <hp@axis.com>
77
78         PR optimization/15296
79         * reorg.c (fill_simple_delay_slots): Use next_real_insn when
80         getting last consecutive label at a branch.
81         (relax_delay_slots): Similar, near top of loop.
82
83 2004-05-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
84
85         PR target/15202
86         * pa.md (movdi, movsi, movhi, movqi): Support move from shift amount
87         register to general register.
88
89 2004-05-07  Alan Modra  <amodra@bigpond.net.au>
90
91         * config/rs6000/rs6000.h (STACK_BOUNDARY): Use 128 bit for either
92         TARGET_ALTIVEC or TARGET_ALTIVEC_ABI.
93         * config/rs6000/sysv4.h (ABI_STACK_BOUNDARY): Likewise.
94         (STACK_BOUNDARY): Delete.
95
96 2004-05-06  Stuart Hastings  <stuart@apple.com>
97
98         * gcc/doc/invoke.texi: Restore -fgcse-after-reload doc from 1.421,
99         mistakenly clobbered by 1.423.
100
101 2004-05-06  Richard Sandiford  <rsandifo@redhat.com>
102
103         * doc/invoke.texi: Document -mvr4130-align.
104         * config/mips/mips.h (MASK_VR4130_ALIGN, TARGET_VR4130_ALIGN)
105         (TUNE_MIPS4120, TUNE_MIPS4130): New macros.
106         (TUNE_MACC_CHAINS): Include TUNE_MIPS4120 and TUNE_MIPS4130.
107         (TARGET_SWITCHES): Add -mvr4130-align and -mno-vr4130-align.
108         * config/mips/mips.md: Include sched-int.h.
109         (USEFUL_INSN_P, SEQ_BEGIN, SEQ_END, FOR_EACH_SUBINSN): New macros.
110         (mips_rtx_costs): Set integer multiplication costs for TUNE_MIPS4130.
111         (override_options): Enable -mvr4130-align at -O3 and above.
112         (mips_sim_insn): New variable.
113         (mips_sim): New structure.
114         (mips_sim_reset, mips_sim_init, mips_sim_next_cycle, mips_sim_wait_reg)
115         (mips_sim_wait_regs_2, mips_sim_wait_regs_1, mips_sim_wait_regs)
116         (mips_sim_wait_units, mips_sim_wait_insn, mips_sim_record_set)
117         (mips_sim_issue_insn, mips_sim_issue_nop, mips_sim_finish_insn)
118         (vr4130_avoid_branch_rt_conflict, vr4130_align_insns): New functions.
119         (mips_reorg): Call vr4130_align_insns.
120         (vr4130_last_insn): New variable.
121         (vr4130_true_reg_dependence_p_1, vr4130_true_reg_dependence_p)
122         (vr4130_swap_insns_p, vr4130_reorder): New functions.
123         (mips_sched_reorder, mips_variable_issue): Hook in vr4130 code.
124         (mips_issue_rate): Return 2 for PROCESSOR_R4130.
125         (mips_use_dfa_pipeline_interface): Return true for the same.
126         * config/mips/4130.md: New file.
127         * config/mips/mips.md: Include it.  Add a peephole2 to convert
128         "mult;mflo" into "mtlo;macc".
129         (*macc, *umul_acc_di, *smul_acc_di): Use $1 rather than $0 as the
130         target of maccs.
131         (*msac_using_macc): New pattern.
132
133 2004-05-06  Richard Sandiford  <rsandifo@redhat.com>
134
135         * config/mips/5500.md (ir_vr55_store): Set latency to 0.
136         (ir_vr55_hilo): Split into...
137         (ir_vr55_mfhilo, ir_vr55_mthilo): ...these new reservations.
138         (ir_vr55_imul_si, ir_vr55_imadd): Change latency to 5.
139         (ir_vr55_imul_di): Change latency to 9.  Reserve vr55_mac for 4 cycles.
140         Add various multiplication bypasses.
141         * config/mips/mips.c (mips_rtx_costs): Adjust VR5500 costs for integer
142         multiplication.
143
144 2004-05-06  Uros Bizjak  <uros@kss-loka.si>
145
146         * config/i386/i386.md (*fscalexf4): Correct insn "mode"
147         attribute to "XF".
148
149 2004-05-05  Uros Bizjak  <uros@kss-loka.si>
150
151         * optabs.h (enum optab_index): Add new OTI_fmod and OTI_drem.
152         (fmod_optab, drem_optab): Define corresponding macros.
153         * optabs.c (init_optabs): Initialize fmod_optab and drem_optab.
154         * genopinit.c (optabs): Implement fmod_optab and drem_optab
155         using fmod?f3 and drem?f3 patterns.
156         * builtins.c (expand_builtin_mathfn_2): Handle BUILT_IN_FMOD{,F,L}
157         using fmod_optab and BUILT_IN_DREM{,F,L} using drem_optab.
158         (expand_builtin): Expand BUILT_IN_FMOD{,F,L} and
159         BUILT_IN_DREM{,F,L} using expand_builtin_mathfn_2 if
160         flag_unsafe_math_optimizations is set.
161
162         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FPREM_F,
163         UNSPEC_FPREM_U, UNSPEC_FPREM1_F and UNSPEC_FPREM1_U.
164
165         * config/i386/i386.c (ix86_emit_fp_unordered_jump): New function.
166         * config/i386/i386-protos.h (ix86_emit_fp_unordered_jump):
167         Prototype here.
168         * config/i386/i386.md (UNSPEC_FPREM_F, UNSPEC_FPREM_U,
169         UNSPEC_FPREM1_F, UNSPEC_FPREM1_U): New unspecs to represent x87's
170         fprem and fprem1 instructions.
171         (*x86_fnstsw_1): Change input parameter to (reg:CCFP 18).
172         Rename insn definition to x86_fnstsw_1.
173         (fpremxf4, fprem1xf4): New patterns to implement fprem and fprem1
174         x87 instructions.
175         (fmodsf3, fmoddf3, fmodxf3): New expanders to implement fmodf, fmod
176         and fmodl built-ins as inline x87 intrinsics.
177         (dremsf3, dremdf3, dremxf3): New expanders to implement dremf, drem
178         and dreml built-ins as inline x87 intrinsics.
179
180 2004-05-05  Roger Sayle  <roger@eyesopen.com>
181
182         * reload1.c (inherit_piecemeal_p): Mark parameters potentially unused.
183
184 2004-05-05  Ian Lance Taylor  <ian@wasabisystems.com>
185
186         PR driver/9822
187         * doc/invoke.texi (Spec Files): Remove documentation of %c.
188
189 2004-05-05  Chris Demetriou  <cgd@broadcom.com>
190
191         * config/mips/mips.md: Update the msub define_split for new mflo/mfhi
192         representation.
193
194 2004-05-06  Paul Brook  <paul@codesourcery.com>
195
196         * config/arm/arm-protots.h (vfp_mem_operand): Rename ...
197         (arm_coproc_mem_operand): ... To this.
198         * config/arm/arm.c (arm_legitimate_address_p): Allow ldrd modes.
199         (arm_legitimate_index_p): Ditto.
200         (vfp_mem_operand): Rename ...
201         (arm_coproc_mem_operand): ... To this.  Handle writeback modes.
202         (vfp_secondary_reload_class): Use it.
203         (output_move_double): Use doubleword load/store instructions.
204         (arm_hard_regno_mode_ok): Only allow even reg pairs for ldrd.
205         * config/arm/arm.h (TARGET_LDRD): Define.
206         (EXTRA_CONSTRAINT_STR_ARM): Add 'Uy'.
207         * config/gcc/arm/arm.md (arm_movdi): Allow all valid memory operands.
208         New splitter for invalid doubleword loads.
209         * config/arm/iwmmxt.md (iwmmxt_arm_movdi): Use Uy constraint.
210         * config/arm/vfp.md (arm_movdi_vfp): Allow all valid memory operands.
211         * doc/md.texi: Document Uy constraint.
212
213 2004-05-05  Jan Hubicka  <jh@suse.cz>
214
215         PR opt/14980
216         * cgraphunit.c (cgraph_remove_unreachable_nodes): Deal properly with
217         inline clones.
218
219 2004-05-05  H.J. Lu  <hongjiu.lu@intel.com>
220
221         PR target/15290
222         * config/i386/i386.c (ix86_split_to_parts): Use real_to_target
223         instead of REAL_VALUE_TO_TARGET_LONG_DOUBLE.
224
225 2004-05-05  Mike Stump  <mrs@apple.com>
226
227         * config/darwin-c.c (add_framework): Copy the directory name as it
228         can be freed later.  Also, ensure we always allocate enough room
229         for the cached framework information.
230         (find_subframework_header): Keep track of the directory where the
231         subframework header was found.
232         (framework_construct_pathname): Speed up by not trying to re-add a
233         framework.
234         * cppfiles.c (search_path_exhausted): Arrange for the missing
235         header callback to be able to set the directory where the header
236         was found.
237         (cpp_get_dir): Add.
238         * cpplib.h (missing_header_cb): Add a parameter.
239         (cpp_get_dir): Add.
240
241 2004-05-03  Mike Stump  <mrs@apple.com>
242
243         * doc/invoke.texi (Directory Options): Document -iquote.
244         * doc/cpp.texi: Likewise.
245         * doc/cppopts.texi: Likewise.
246         * c-opts.c (c_common_missing_argument): Add -iquote processing.
247         (c_common_handle_option): Likewise.
248         * c.opt (iquote): Add.
249         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add -iquote.
250         * c-incpath.c (merge_include_chains): Update comment to use -iquote.
251
252         * c-opts.c (case OPT_I): Deprecate -I- support.
253         * doc/invoke.texi: Likewise.
254         * doc/cpp.texi: Likewise.
255         * doc/cppopts.texi: Likewise.
256
257 2004-05-05  Steven Bosscher  <stevenb@suse.de>
258
259         * basic-block.h (free_basic_block_vars): Update prototype.
260         * flow.c (free_basic_block_vars): Remove the keep_head_end_p
261         argument.
262         (life_analysis): Update call.
263         * ifcvt.c (if_convert): Likewise.
264         * sibcall.c (optimize_sibling_and_tail_recursive_call): Likewise.
265         * passes.c (rest_of_handle_final): Likewise.
266         (rest_of_compilation): Likewise.
267         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
268
269         * emit-rtl.c (next_real_insn): Use INSN_P.
270         (prev_real_insn): Likewise.
271
272 2004-05-05  Eric Christopher  <echristo@redhat.com>
273
274         * config/mips/mips.md: Update the madd define_split for new mflo/mfhi
275         representation.
276
277 2004-05-05  Paolo Bonzini  <bonzini@gnu.org>
278
279         * config/rs6000/rs6000.c (build_opaque_vector_type):
280         New function.
281         (rs6000_init_builtins): Use it.
282
283 2004-05-04  Bernard Giroud  <bgiroud2@free.fr>
284
285         * gcc/gcc/vmsdbgout.c (vms_func_node, vms_func_ref): New.
286         (func_table): Change type from char ** to vms_func_ref.
287         (write_rtnbeg):  Update to reflect func_table change.  Use
288         fde->funcdef_number instead of rtnnum in output.
289         (write_rtnend, vmxdbgout_begin_function, vmsdbgout_init): Likewise.
290
291 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
292             Richard Henderson  <rth@redhat.com>
293
294         PR target/14899
295
296         * c-common.c (vector_types_convertible_p): New function.
297         * c-typeck.c (comptypes): Recurse on vector types.
298         (convert_for_assignment): Use vector_types_convertible_p.
299         (digest_init): Use vector_types_convertible_p to check
300         validness of constant vector initializers; otherwise treat
301         them as scalars.
302         * tree.c (make_or_reuse_type): New.
303         (build_common_tree_nodes): Use it.
304         * cp/call.c (standard_conversion): Likewise.
305         * cp/typeck.c (comptypes): Recurse on vector types.
306         (convert_for_assignment): Use vector_types_convertible_p.
307
308 2004-05-04  Chris Demetriou  <cgd@broadcom.com>
309
310         * config/mips/mips.c (override_options): Default to no
311         generation of branch-likely operations when tuning for
312         CPUs where they tend to have a negative performance impact
313         (e.g., SB-1).
314
315 2004-05-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
316
317         * expr.c (store_constructor_field): Don't call store_constructor
318         if bitsize is not a multiple of a byte.
319
320 2004-05-04  Richard Sandiford  <rsandifo@redhat.com>
321
322         * reload1.c (inherit_piecemeal_p): New function.
323         (emit_reload_insns): When reloading a group of hard registers, use
324         inherit_piecemeal_p to decide whether the values of individual hard
325         registers can be inherited.
326
327 2004-05-04  H.J. Lu  <hongjiu.lu@intel.com>
328
329         * config/ia64/t-ia64 (LIB2ADDEH): Remove gthr-gnat.c.
330         * config/s390/t-tpf (LIB2ADDEHDEP): Likewise.
331         * config/t-linux (LIB2ADDEHDEP): Likewise.
332
333 2004-05-04  Paul Brook  <paul@codesourcery.com>
334
335         * config/arm/crti.asm: Push an even number of registers.
336         * config/arm/crtn.asm: And restore them.  Load via sp.
337
338 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
339
340         * ggc-zone.c (ggc_alloc_zone_1): Add MEM_STAT_DECL parameter.
341         Collect overhead information.
342         (ggc_alloc_stat): New name of ggc_alloc.  Add MEM_STAT_DECL
343         parameter and pass it through.
344         (ggc_alloc_typed_stat): New name of ggc_alloc_typed.  Add
345         MEM_STAT_DECL parameter and pass it through.
346         (ggc_alloc_zone_stat): New name of ggc_alloc_zone.  Add
347         MEM_STAT_DECL parameter and pass it through.
348
349 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
350
351         * config/rs6000/rs6000-protos.h: Protoize rs6000_hard_regno_nregs.
352
353         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs): New.
354
355         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Call
356         rs6000_hard_regno_nregs.
357
358 2004-05-03  Eric Christopher  <echristo@redhat.com>
359
360         * config/s390/s390.c (s390_emit_prologue): Call unspec tpf
361         prologue insn instead of setting up call.
362         (s390_emit_epilogue): Ditto.
363         * config/s390/s390.md (prologue_tpf, epilogue_tpf): New patterns.
364         (define_constants): Add numbers for above patterns.
365
366 2004-05-03  Eric Christopher  <echristo@redhat.com>
367
368         * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Move body...
369         * config/s390/s390.c (s390_conditional_register_usage): ...here.
370         * config/s390/s390-protos.h: Prototype.
371
372 2004-05-03  Joe Buck <jbuck@welsh-buck.org>
373
374         * cppfiles.c (pchf_adder): Eliminate use of |= in d->have_once_only
375         assignment.
376
377 2004-05-03  Eric Christopher  <echristo@redhat.com>
378
379         * config/mips/mips.md: Fix branch length attribute definition.
380
381 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
382
383         * config.gcc: Remove --enable-altivec support.
384
385         * config/rs6000/altivec-defs.h: Remove.
386
387 2004-05-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
388
389         * fixinc/inclhack.def (svr4_profil): Don't apply on IRIX 5/6.
390         * fixinc/fixincl.x: Regenerate.
391
392 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
393
394         * config/i386/i386.md (*fyl2x_sfxf3, *fyl2x_dfxf3): Remove insn
395         definition.
396         (log?f2, log10?f2, log2?f2): Reimplement expanders with
397         float_truncate insn.
398         (*fxtractsf3, *fxtractdf3): Remove insn definition.
399         (logb?f2): Reimplement expanders with float_truncate insn.
400
401 2004-05-03  Graham Stott  <graham.stott@btinternet.com>
402
403         PR 14718
404         * dwarf2out.c (dwarf2out_imported_module_or_decl): Use
405         force_type_die for CONST_DECL.
406
407 2004-05-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
408             Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
409
410         * config.gcc (sparc64-*-solaris2*, sparcv9-*-solaris2*): Add
411         tm-dwarf2.h to tm_file.
412         (sparc-*-solaris2*): Add tm-dwarf2.h to tm_file for Solaris 7+.
413         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Delete.
414         (ASM_DEBUG_SPEC): Delete.
415
416 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
417
418         * optabs.h (enum optab_index): Add new OTI_expm1.
419         (expm1_optab): Define corresponding macro.
420         * optabs.c (init_optabs): Initialize expm1_optab.
421         * genopinit.c (optabs): Implement expm1_optab using expm1?f2
422         patterns.
423         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXPM1{,F,L}
424         using expm1_optab.
425         (expand_builtin): Expand BUILT_IN_EXPM1{,F,L} using
426         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
427
428         * config/i386/i386.md (expm1df2, expm1sf2, expm1xf2): New expanders
429         to implement expm1, expm1f and expm1l built-ins as inline x87
430         intrinsics.
431
432 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
433
434         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
435         * config/frv/frv.md (*return_true, *return_false): New patterns.
436
437 2004-05-02  Kazu Hirata  <kazu@cs.umass.edu>
438
439         * rtl.h (PHI_NODE_P): Remove.
440
441 2004-05-02  Eric Botcazou  <ebotcazou@act-europe.fr>
442
443         PR middle-end/14988
444         * function.c (assign_stack_local_1): Use BITS_PER_UNIT alignment
445         when passed -2 as 'align'.
446         (put_var_into_stack): Use 'bool' as the type for the three local
447         predicates.  Adjust calls to put_reg_into_stack.
448         When passed a CONCAT, instruct put_reg_into_stack to use
449         a consecutive stack slot for the second part.
450         (put_reg_into_stack): Remove 'promoted_mode' parameter, add
451         'consecutive_p' parameter.  Turn the three predicates into 'bool'
452         parameters.  Retrieve the register mode from 'reg'.
453         When consecutive_p is true, instruct assign_stack_local_1 to use
454         BITS_PER_UNIT alignment.
455         (put_addressof_into_stack): Use 'bool' as the type for the two
456         local predicates. Adjust call to put_reg_into_stack.
457
458 2004-05-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
459
460         * fold-const.c (fold_convert_const, fold): Add missing
461         FIX_ROUND_EXPR case.
462
463 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
464
465         * configure.ac (FLEX, BISON): Only use tools from the build tree
466         if build equals host.
467         * configure: Rebuilt.
468
469         * config/frv/frv-protos.h (frv_expand_epilogue,
470         frv_expand_fdpic_call): Add bool argument.
471         * config/frv/frv.c (frv_function_ok_for_sibcall): New.
472         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to it.
473         (frv_expand_epilogue): Use new argument to decide whether to emit
474         return instruction or copy the return address to LR.
475         (frv_expand_fdpic_call): Inline PLT entry when emitting direct
476         sibcalls.
477         (sibcall_operand): New.
478         * config/frv/frv.h (PREDICATE_CODES): call_operand doesn't match
479         PLUS nor LABEL_REF.  Add sibcall_operand.
480         * config/frv/frv.md (call, call_value): Pass false to
481         frv_expand_fdpic_call.
482         (call_fdpicdi, call_value_fdpicdi): Insert %i0 in calll.
483         (sibcall, sibcall_internal, sibcall_fdpicdi, sibcall_value,
484         sibcall_value_internal, sibcall_value_fdpicdi): New.
485         (return_unsigned_true, return_unsigned_false): New.
486         (epilogue): Adjust call to frv_expand_epilogue.
487         (sibcall_epilogue): New.
488
489         * config/frv/frv.h (ASM_SPEC): Pass -mno-fdpic as -mnopic.
490         (CPP_SPEC, CPP_SIMPLE_SPEC): Undefine __FRV_ACC__ and __FRV_FPR__
491         before redefining them.
492
493 2004-05-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
494
495         * builtins.c (fold_fixed_mathfn): New function.
496         (fold_builtin_lround, fold_builtin): Use it.
497
498 2004-05-01  Jakub Jelinek  <jakub@redhat.com>
499
500         * config/sparc/linux64.h (TARGET_DEFAULT): Make 64-bit by default
501         also for TARGET_CPU_DEFAULT == TARGET_CPU_ultrasparc3.
502
503 2004-05-01  Kazu Hirata  <kazu@cs.umass.edu>
504
505         * config/cris/cris.h: Revert my "fix comment typos" patch.
506
507 2004-05-01  Richard Sandiford  <rsandifo@redhat.com>
508
509         * config/mips/mips.h (TUNE_MACC_CHAINS): Fix comment.
510
511 2004-05-01  Falk Hueffner  <falk@debian.org>
512
513         * config/alpha/alpha.md (builtin_insbl, builtin_inswl,
514         builtin_insll): Disallow 0 as first input operand.
515
516 2004-05-01  Falk Hueffner  <falk@debian.org>
517
518         * config/alpha/alpha.c (alpha_rtx_costs): Fix shiftadd costs.
519
520 2004-05-01  Ulrich Weigand  <uweigand@de.ibm.com>
521
522         PR middle-end/15054
523         * expr.c (expand_expr_real): Do not call preserve_temp_slots
524         on a TARGET_EXPR temp.
525         * function.c (assign_stack_temp_for_type): Set 'keep' flag for
526         TARGET_EXPR temp slots.
527
528 2004-05-01  Paolo Bonzini  <bonzini@gnu.org>
529
530         * simplify-rtx.c (simplify_ternary_operation): When
531         converting an IF_THEN_ELSE to a relational op, return
532         correct mode.
533
534 2004-04-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
535
536         * builtins.c (fold_builtin_round): Fix comment typo.
537         (fold_builtin_lround): New function.
538         (fold_builtin): Use it.
539
540 2004-04-20  Andrew Pinski  <pinskia@physics.uc.edu>
541
542         PR target/11608
543         * config/sh/elf.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Update and make it
544         more like the one in config/dbxelf.h.
545
546 2004-04-30  Zack Weinberg  <zack@codesourcery.com>
547
548         * tree.h (SET_ARRAY_OR_VECTOR_CHECK): Rename to SET_OR_ARRAY_CHECK
549         and adjust definition accordingly.
550         (TYPE_DOMAIN): Allow only SET_TYPE and ARRAY_TYPE.
551         (TYPE_DEBUG_REPRESENTATION_TYPE): Allow only VECTOR_TYPE.
552         * expr.c (store_constructor): Do not access TYPE_DOMAIN of a
553         VECTOR_TYPE.
554
555 2004-04-30  Jason Merrill  <jason@redhat.com>
556
557         PR c++/14587
558         * config/i386/winnt.c (associated_type): Look for attributes on
559         the TYPE_MAIN_VARIANT of *this.
560         * attribs.c (decl_attributes): If ATTR_FLAG_TYPE_IN_PLACE, also
561         apply the attributes to the variants.
562
563 2004-04-30  Paul Brook  <paul@codesourcery.com>
564
565         * config.gcc: Simplify arm --with-{cpu,tune} test.
566         * config/arm/arm-cores.def: Document whitespace restrictions.
567
568 2004-04-30  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
569
570         PR other/1963
571         * config/alpha/osf.h (SWITCHES_NEED_SPACES): Define.
572
573 2004-04-30  Brian Ford  <ford@vss.fsi.com>
574             DJ Delorie  <dj@redhat.com>
575
576         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
577         (DWARF2_DEBUGGING_INFO): Define to enable.
578         (DBX_REGISTER_NUMBER): Define to use the svr4 register map for
579         DWARF2.
580         * configure.ac (Target-specific assembler checks)
581         <i[34567]86-*-[cygwin*|pe|mingw32*]>: New test for .secrel32
582         relocs.
583         * configure: Regenerate.
584         * config.in: Likewise.
585
586         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
587         (ASM_OUPUT_DWARF_OFFSET): Define.
588
589 2004-04-29  Andreas Krebbel  <krebbel1@de.ibm.com>
590
591         * config/s390/s390-protos.h (s390_emit_epilogue): Parameter added.
592         (s390_emit_call): New function prototype added.
593         (s390_tls_get_offset): Function removed.
594         * config/s390/s390.c (s390_function_ok_for_sibcall,
595         s390_call_saved_register_used_p): New functions.
596         (TARGET_FUNCTION_OK_FOR_SIBCALL): Definition of target macro added.
597         (s390_tls_get_offset): Function merged into s390_emit_tls_call_insn.
598         (s390_emit_tls_call_insn): New function.
599         (legitimize_tls_address): Call s390_emit_tls_call_insn instead of
600         emit_call_insn.
601         (s390_emit_prologue): Use s390_emit_call instead of emit_call_insn.
602         (s390_emit_epilogue): Like s390_emit_prologue. Parameter for sibcalls
603         added.
604         * config/s390/s390.h (SIBCALL_REGNUM): New macro representing the
605         register number used to hold the target address for sibcalls.
606         * config/s390/s390.md ("sibcall", "sibcall_value", "sibcall_epilogue"):
607         New expanders.
608         ("*sibcall_br", "*sibcall_brc", "*sibcall_brcl", "*sibcall_value_br",
609         "*sibcall_value_brc", "*sibcall_value_brcl"): New insns.
610         ("call_exp", "call_value_exp", "call_value_tls", "call_value_tls_exp"):
611         Expanders removed.
612         ("call", "call_value"): Call s390_emit_call to emit the call patterns.
613         ("*bras", "*brasl", "*bras_r", "*brasl_r", "*bras_tls", "*brasl_tls",
614         "*basr", "*basr_r", "*basr_tls"): Added constraint: !SIBLING_CALL_P.
615         ("epilogue"): Changed the call to s390_emit_epilogue to use the
616         new parameter.
617
618 2004-04-30  Kazu Hirata  <kazu@cs.umass.edu>
619
620         * bb-reorder.c, c-opts.c, cfglayout.c, cgraph.c, cgraphunit.c,
621         cppfiles.c, fold-const.c, ggc-zone.c, loop-doloop.c, optabs.c,
622         reg-stack.c, varasm.c, config/alpha/ev4.md,
623         config/alpha/ev5.md, config/alpha/ev6.md, config/arm/arm.c,
624         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.c,
625         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
626         config/frv/frv.h, config/frv/frv.md, config/h8300/h8300.c,
627         config/i386/i386.c, config/i386/i386.md, config/i386/winnt.c,
628         config/ia64/itanium2.md, config/ip2k/ip2k.c,
629         config/mips/mips.c, config/mips/mips.h, config/mips/sr71k.md,
630         config/pa/pa.c, config/s390/s390.c, config/sh/sh.c: Fix
631         comment typos.
632
633 2004-04-30  Paul Brook  <paul@codesourcery.com>
634
635         * config.gcc: Default ep9312 to hard-float.
636         * config/arm/arm-cores.def: Add ARCH field.
637         * config/arm/arm.c (FL_FOR_ARCH*): Define.
638         (arm_arch_cirrus): New variable.
639         (all_cores): Set and use arch.
640         (all_architectures): Ditto.
641         (arm_arch_name): New variable.
642         (arm_override_options): Set it. Use [SUB]TARGET_CPU_DEFAULT.
643         Set and use arm_arch_cirrus.
644         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set arch defines.
645         (enum processor_type): Update ARM_CORE define.
646         (enum target_cpus): Add.  Replaces TARGET_CPU_* defines.
647         (CPP_SPEC): Remove %(cpp_cpu_arch).
648         (CPP_ARCH_DEFAULT_SPEC): Remove.
649         (CPP_CPU_ARCH_SPEC): Remove.
650         (EXTRA_SPECS): Don't use CPP_*ARCH*_SPEC.
651         (FPUTYPE_DEFAULT): Don't define here.
652
653 2004-04-30  J"orn Rennecke <joern.rennecke@superh.com>
654
655         * flow.c (propagate_one_insn): Call mark_set_regs for stack pointer
656         updates too.
657
658 2004-04-30  Paul Brook  <paul@codesourcery.com>
659
660         * arm.c (arm_needs_doubleword_align): Use mode alignment.
661
662 2004-04-30  Paolo Bonzini  <bonzini@gnu.org>
663
664         * config/altivec/altivec.h [__cplusplus] (vec_subsubs): Rename to
665         vec_sububs.
666         [__cplusplus] (vec_subsuhs): Rename to vec_subuhs, without
667         duplicates.
668
669 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
670
671         * config/i386/i386.md (atansf2, atandf2, atanxf2): Move near
672         atan2?f3 expanders.
673
674 2004-04-29  Nick Clifton  <nickc@redhat.com>
675
676         Bug 14093
677         * config/sh/sh-protos.h (sh_promote_prototypes): Declare.
678         * config/sh/sh.c (sh_promote_prototypes): Remove declaration.
679         Delete static from definition.
680         * config/sh/sh.h (FUNCTION_VALUE): Add sh_promote_prototypes call.
681
682 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
683
684         * reg-stack.c (subst_stack_regs_pat): <UNSPEC_SIN, UNSPEC_COS,
685         UNSPEC_FRNDINT, UNSPEC_F2XM1>: abort() if src1 dies.
686         <UNSPEC_SINCOS_COS, UNSPEC_TAN_ONE, UNSPEC_XTRACT_FRACT>: Same.
687         <UNSPEC_SINCOS_SIN, UNSPEC_TAN_TAN, UNSPEC_XTRACT_EXP>: Same.
688
689 2004-04-29  Richard Guenther  <richard.guenther@uni-tuebingen.de>
690
691         * commom.opt (Wfatal-errors): Add it.
692         * diagnostic.c (flag_fatal_errors): Define it.
693         (diagnostic_action_after_output): Check for flag_fatal_errors.
694         * flags.h (flag_fatal_errors): Declare it.
695         * opts.c (common_handle_option): Add OPT_Wfatal_errors.
696         * doc/invoke.texi (Warning Options): Document -Wfatal-errors.
697
698 2004-04-30  Josef Zlomek  <zlomekj@suse.cz>
699
700         * gcse.c (remove_reachable_equiv_notes): Delete notes also in
701         blocks which have kill flag set.
702
703 2004-04-29  Ben Elliston  <bje@au.ibm.com>
704
705         * configure.ac (--with-as): Abort if user-supplied assembler
706         cannot be executed.
707         (--with-ld): Likewise for the linker.
708         * configure: Regenerate.
709
710 2004-04-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
711
712         * convert.c (convert_to_integer): Ensure `long_integer_type_node'
713         isn't NULL before using it.
714
715 2004-04-29  Richard Sandiford  <rsandifo@redhat.com>
716
717         PR target/15189
718         * config/mips/mips.md (load_df_low): Use default length.
719         (load_df_high, store_df_high): Likewise.
720
721 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
722
723         * config/mips/mips.md, config/mips/sb1.md,
724         config/rs6000/rs6000.c: Fix comment typos.
725
726 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
727
728         * builtins.c, cgraph.c, cgraphunit.c, final.c, fold-const.c:
729         Fix comment typos.
730
731 2004-04-29  Douglas B Rupp  <rupp@gnat.com>
732
733         * gcc.c (DELETE_IF_ORDINARY): New macro default definition.
734         (delete_if_ordinary): Use above macro.
735         * config/alpha/xm-vms.h (DELETE_IF_ORDINARY): New macro VMS definition.
736         Update copyright.
737         * doc/hostconfig.texi (DELETE_IF_ORDINARY): Document new macro.
738
739 2004-04-29  Richard Earnshaw  <rearnsha@arm.com>
740
741         * c-decl.c (get_parm_info): Use the correct tag keywords when
742         warning about type declarations in prototypes.
743
744 2004-04-29  Paul Brook  <paul@codesourcery.com>
745
746         * config.gcc: Pull list of cores from arm-cores.def.
747
748 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
749
750         * combine.c (combine_simplify_rtx): Adjust call to use
751         simplify_relational_operation.  Do not use SELECT_CC_MODE
752         when a comparison already has a MODE_CC mode.
753
754 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
755
756         (simplify_set): simplify_relational_operation may now
757         return another relational expression.
758         * cse.c (fold_rtx): simplify_relational_operation now
759         takes of computing the comparison mode.
760         * dojump.c (compare_from_rtx): Use simplify_relational_operation,
761         remove dead code.
762         (do_compare_rtx_and_jump): Likewise.
763         * integrate.c (subst_constants): simplify_relational_operation
764         may now return another relational expression.
765         * simplify-rtx.c (simplify_gen_relational): Move most code to
766         the new simplify_relational_operation and
767         simplify_relational_operation_1 functions.
768         (simplify_relational_operation): Rewritten.
769         (simplify_relational_operation_1): New function.
770         (simplify_ternary_operation): simplify_relational_operation
771         may now return another relational expression.
772         (simplify_rtx): Remove unnecessary temp variable.
773
774 2004-04-29  Uros Bizjak  <uros@kss-loka.si>
775
776         * reg-stack.c (swap_to_top): New function.
777         (subst_stack_regs_pat): UNSPEC_FPATAN, UNSPEC_FYL2X: Use
778         swap_to_top().
779         (subst_stack_regs_pat): UNSPEC_FSCALE: Remove.
780         (subst_stack_regs_pat): Handle UNSPEC_FSCALE_FRACT and
781         UNSPEC_FSCALE_EXP.
782
783         * config/i386/i386.md (UNSPEC_FSCALE): Remove.
784         (*fscale_sfxf3, *fscale_dfxf3, *fscale_xf3): Remove insn pattern.
785         (UNSPEC_FSCALE_FRACT, UNSPEC_FSCALE_EXP): New unspecs to represent
786         x87's fscale insn.
787         (*fscalexf4: Define new insn pattern to implement x87 fscale insn.
788         (exp?f2, exp10?f2, exp2?f2): Use *fscalexf4 and float_truncate
789         patterns.
790
791 2004-04-28  Serge Belyshev  <1319@bot.ru>
792
793         PR 14944
794         * coverage.c (read_counts_file): Fix usage of warning () call.
795         * pretty-print.c (pp_base_format_text): Fix typo in the comment.
796
797 2004-04-28  Ben Elliston  <bje@au.ibm.com>
798
799         * doc/invoke.texi (Objective-C Dialect Options): Don't prefix
800         options with "-" in the option index.
801         (SPARC Options): Likewise.
802         (M32R/D Options): Likewise.
803
804 2004-04-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
805
806         * convert.c (convert_to_integer): Convert (long)round -> lround,
807         etc.
808
809 2004-04-28  Andrew Pinski  <pinskia@physics.uc.edu>
810
811         * config/rs6000/rs6000.c (registers_ok_for_quad_peep):
812         Return false if we do not have fp register.
813         (addrs_ok_for_quad_peep): Rename to ...
814         (mems_ok_for_quad_peep): this.
815         Add check for volatile memory.
816         * config/rs6000/rs6000-protos.h (addrs_ok_for_quad_peep):
817         Rename to ...
818         (mems_ok_for_quad_peep): this.
819         * config/rs6000/rs6000.md: Change peephole's for lfq/stq
820         to peephole2's.
821         (lfq_power2): New instruction.
822         (stfq_power2): Likewise.
823
824 2004-04-28  Jan Hubicka  <jh@suse.cz>
825
826         PR c/15004
827         * function.c (do_warn_unused_parameter): Break out form ...
828         (expand_function_end): ... here; warn only when not using cgraphunit.
829         * function.h (do_warn_unused_parameter): Declare.
830         * cgraphunit.c: Include function.h.
831         (cgraph_finalize_function): Do unused parameter warning.
832         * Makefile.in (cgraphunit.o): Depend on function.h
833
834 2004-04-28  Joseph S. Myers  <jsm@polyomino.org.uk>
835
836         * Makefile.in ($(DESTDIR)$(infodir)/%.info): Don't condition
837         calling install-info on $(DESTDIR)$(infodir)/dir already being
838         present.
839
840 2004-04-28  Paul Brook  <paul@codesourcery.com>
841
842         * dwarf2out.c (mem_loc_descriptor): Handle shifts.
843
844 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
845
846         * gcse.c (find_moveable_store): Do not accept store insns with
847         REG_EH_REGION note.
848
849 2004-04-28  Paul Brook  <paul@codesourcery.com>
850
851         * calls.c (precompute_arguments): Remove PROMOTE_FOR_CALL_ONLY.
852         * function.c (assign_temp): Ditto.
853         * system.h (PROMOTE_FOR_CALL_ONLY): Poison.
854
855 2004-04-28  Paul Brook  <paul@codesourcery.com>
856
857         * config/arm/lib1funcs.asm: Recognize armv5tej and armv6.
858
859 2004-04-28  Josef Zlomek  <zlomekj@suse.cz>
860
861         * var-tracking.c (variable_different_p): Add a parameter
862         compare_current_location, compare current location of variable parts
863         if it is true.
864         (dataflow_set_different_1): Pass compare_current_location == false.
865         (dataflow_set_different_2): Pass compare_current_location == false.
866         (emit_notes_for_differences_1): Pass compare_current_location == true.
867
868 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
869
870         * config/s390/s390.md ("casesi"): Mark jump table access as
871         non-trapping and unchanging.
872
873 2004-04-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
874
875         PR debug/14829
876         * dwarf2out.c (reg_number): Rename to dbx_reg_number.  Adjust all
877         callers.
878         (multiple_reg_loc_descriptor, reg_loc_descriptor): Use gcc register
879         number for indexing hard_regno_nregs array.
880
881 2004-04-27  Geoffrey Keating  <geoffk@apple.com>
882
883         * config/darwin.h (STARTFILE_SPEC): Use %s to find crt2.o.
884         * config/darwin-crt2.c: Only have contents on __ppc__.
885
886 2004-04-27  Bob Wilson  <bob.wilson@acm.org>
887
888         * config/xtensa/xtensa.c (call_insn_operand): Check
889         SYMBOL_REF_EXTERNAL_P in addition to SYMBOL_REF_LOCAL_P.
890         * config/xtensa/xtensa.h (LEGITIMATE_PIC_OPERAND): Likewise.
891         * config/xtensa/xtensa.md (call, call_value): Likewise.
892
893 2004-04-27  Wu Yongwei  <adah@sh163.net>
894
895         * gthr-win32.h (__gthread_mutex_t): Change typedef to new structure.
896         (__GTHREAD_MUTEX_INIT_DEFAULT): Adjust.
897         (__gthread_mutex_init_function): Replace CreateMutex with
898         initialization of custom mutex using CreateSemaphore.
899         (__gthread_mutex_lock): Use InterlockedIncrement.
900         (__gthread_mutex_trylock): Use InterlockedCompareExchange.
901         (__gthread_mutex_unlock): Use InterlockedDecrement and
902         ReleaseSemaphore to unlock
903         * config/i386/gthr-win32.c (__gthread_mutex_init_function,
904         __gthread_mutex_lock, __gthread_mutex_trylock,
905         __gthread_mutex_unlock): Adjust to match inline versions in
906         gthr-win32.h.
907
908 2004-04-27  Paul Brook  <paul@codesourcery.com>
909
910         * config/arm/arm.c (arm_promote_prototypes): New function.
911         (TARGET_PROMOTE_PROTOTYPES): Use it.
912
913 2004-04-27  Paul Brook  <paul@codesourcery.com>
914
915         * config/arm/arm.c (arm_expand_epilogue): Count blocks of 4 regs.
916
917 2004-04-26  Bernard Giroud  <bgiroud@free.fr>
918
919         * config/alpha.c (alpha_end_function): For OpenVMS gas,
920         correctly output .pdesc directive before .end.
921
922 2004-04-26  James E Wilson  <wilson@specifixinc.com>
923
924         Bug 14927
925         * config/ia64/ia64.md (movxf): New local op0.  Handle case where
926         operands[0] is a SUBREG.  Handle case where operands[1] is a GR reg.
927
928 2004-04-26  Zack Weinberg  <zack@codesourcery.com>
929
930         * config/ia64/hpux.h: Predefine __STDCPP__ when compiling C++.
931         * config/pa/pa-hpux10.h: Likewise.
932         * config/pa/pa-hpux11.h: Likewise.
933
934 2004-04-26  Geoffrey Keating  <geoffk@apple.com>
935
936         * doc/invoke.texi (Overall Options): Document default for -o
937         for PCH files.
938
939 2004-04-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
940
941         * builtins.c (expand_builtin_update_setjmp_buf): New function.
942         (expand_builtin, case BUILT_IN_UPDATE_SETJMP_BUF): New case.
943         * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): New code.
944
945 2004-04-26  Paul Brook  <paul@codesourcery.com>
946
947         * config/arm/arm.c (arm_legitimate_index_p): Correct iwmmxt offsets.
948
949 2004-04-26  Paul Brook  <paul@codesourcery.com>
950
951         * config/arm/arm.c (arm_legitimate_index_p): Correct maverick offsets.
952
953 2004-04-25  Roger Sayle  <roger@eyesopen.com>
954
955         * fold-const.c (fold): Prefer fold_convert (negate_expr (...)) to
956         fold (build1 (NEGATE_EXPR, ...)).  Optimize X / -1 as -X and
957         X % -1 as 0.
958
959 2004-04-26  Hans-Peter Nilsson  <hp@bitrange.com>
960
961         PR bootstrap/15141
962         * except.c (connect_post_landing_pads): Delete insns after the
963         barrier when generating a unwind_resume_libfunc call.
964
965 2004-04-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
966
967         PR/c++ 15119
968         * tree.c (substitute_placeholder_in_expr, case 4): New case,
969         for TARGET_EXPR.
970
971 2004-04-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
972
973         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
974         __gcov_execv, __gcov_execvp, __gcov_execve): Do not declare when
975         inhibit_libc is defined.
976
977 2004-04-25  Richard Sandiford  <rsandifo@redhat.com>
978
979         * config/mips/mips-protos.h (mips_linked_macc_p): Declare.
980         * config/mips/mips.h (TUNE_MACC_CHAINS): New macro.
981         * config/mips/mips.c (TARGET_SCHED_REORDER): Define.
982         (TARGET_SCHED_VARIABLE_ISSUE): Define.
983         (mips_adjust_cost): Move later in file, next to other sched hooks.
984         (mips_macc_chains_last_hilo): New variable.
985         (mips_linked_madd_p, mips_macc_chains_record, mips_macc_chains_reorder)
986         (mips_promote_ready, mips_sched_reorder, mips_variable_issue): New.
987         * config/mips/mips.md (may_clobber_hilo): New attribute.
988
989 2004-04-24  Roger Sayle  <roger@eyesopen.com>
990             Bruce Korb  <bkorb@gnu.org>
991
992         * fixinc/inclhack.def (aix_syswait_2): New fix.
993         * fixinc/fixincl.x: Regenerate.
994         * fixinc/tests/base/sys/wait.h: Update for new test.
995
996 2004-04-24  Alan Modra  <amodra@bigpond.net.au>
997
998         PR target/14960
999         * config/rs6000/rs6000.c (rs6000_stack_info): Rename total_raw_size
1000         to non_fixed_size, and leave out fixed_size from the sum.
1001         (generate_set_vrsave): Correct clobbers.
1002         (rs6000_emit_epilogue): Test TARGET_ALTIVEC with TARGET_ALTIVEC_SAVE.
1003         (rs6000_function_value): Test TARGET_ALTIVEC and TARGET_ALTIVEC_ABI.
1004         (rs6000_libcall_value): Likewise.
1005         * config/rs6000/rs6000.h (FUNCTION_VALUE_REGNO_P): Likewise.
1006         (FUNCTION_ARG_REGNO_P): Likewise.
1007
1008 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
1009
1010         * expmed.c (expand_mult_highpart_adjust): Do not assume OP1
1011         is a CONST_INT.
1012         (expand_mult_highpart_optab): Call expand_mult_highpart_adjust
1013         with NARROW_OP1 instead of OP1.
1014
1015 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
1016
1017         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __s390__
1018         and __s390x__ hosts.
1019
1020 2004-03-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1021
1022         * Makefile.in (LIBGCOV): Add _gcov_fork, _gcov_execl, _gcov_execlp,
1023         _gcov_execle, _gcov_execv, _gcov_execvp, _gcov_execve.
1024         * builtin-types.def (BT_PID, BT_PTR_CONST_STRING, BT_FN_PID,
1025         BT_FN_INT_CONST_STRING_PTR_CONST_STRING,
1026         BT_FN_INT_CONST_STRING_PTR_CONST_STRING_PTR_CONST_STRING): New.
1027         * builtins.c (expand_builtin_fork_or_exec): New.
1028         (expand_builtin): Call it.
1029         * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP,BUILT_IN_EXECLE,
1030         BUILT_IN_EXECV, BUILT_IN_EXECVP, BUILT_IN_EXECVE, BUILT_IN_FORK): New.
1031         * c-common.c (PID_TYPE): New macro.
1032         (c_common_nodes_and_builtins): Initialize pid_type_node.
1033         * calls.c (special_function_p): Do not handle fork and exec.
1034         (expand_call): Do not handle ECF_FORK_OR_EXEC.
1035         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
1036         __gcov_execv, __gcov_execvp, __gcov_execve): Declare.
1037         * libgcov.c (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
1038         __gcov_execv, __gcov_execvp, __gcov_execve): New.
1039         * tree.h (enum tree_index): Add TI_PID_TYPE.
1040         (pid_type_node): New macro.
1041         (ECF_FORK_OR_EXEC): Removed.
1042
1043 2004-04-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
1044
1045         PR optimization/13985
1046         * cfgloopmanip.c (fix_loop_placements): New prototype.
1047         Call fix_bb_placements on the preheader of loops that have
1048         been reparented.
1049         (remove_path): Adjust call to fix_loop_placements.
1050
1051 2004-04-23  Andrew Pinski  <pinskia@physics.uc.edu>
1052
1053         * config/darwin7.h: New file.
1054         * config.gcc (*-*-darwin*): Add darwin7.h if the
1055         version is greater than 6.
1056         * config/darwin.h (TARGET_C99_FUNCTIONS): Define.
1057         (MATH_LIBRARY): Wrap in ifdefs.
1058
1059 2004-04-23  Daniel Jacobowitz  <drow@mvista.com>
1060
1061         * config/arm/arm.c (arm_output_epilogue): Reverse the order of
1062         loading iWMMXt registers with a frame pointer.  Use post-increment
1063         without a frame pointer.
1064         (arm_expand_prologue): Reverse the order of saving iWMMXt registers.
1065
1066 2004-04-23  Paolo Bonzini  <bonzini@gnu.org>
1067
1068         * doc/invoke.texi (Optimize Options): Refer to "unit-at-a-time
1069         mode" rather than "-funit-at-a-time" since -O2 enables it
1070         without requiring -f* options.  Refer to -fprofile-generate and
1071         -fprofile-use correctly.  Move -funit-at-a-time among options
1072         enabled by -O.  Add information about unit-at-a-time caveats.
1073
1074 2004-04-22  Per Bothner  <per@bothner.com>
1075
1076         * line-map.h (struct line_maps):  New field highest_line.
1077         (linemap_position_for_column):  Make non-inline function.
1078         (LINEMAP_POSITION_FOR_COLUMN):  New macro.
1079         * line-map.c (linemap_init):  Clear highest_line field.
1080         (linemap_add):  Set highest_line field.
1081         (linemap_line_start):  Minor optimization - use highest_line field.
1082         Reduce maximum column hint to 10000.  Update highest_line field.
1083         (linemap_position_for_column):  Moved from line-map.h.  Optimize a bit.
1084         * cpphash.h (struct cpp_reader):  Remove line field - instead use
1085         line_table->highest_line.
1086         (saved_line):  Remove unused field.
1087         (CPP_INCREMENT_FILE):  Don't do linemap_lookup - just use newest map.
1088         Use  line_table's highest_line field instead of cpp_reader's line.
1089         * cpplib.c (start_directive):  Likewise use highest_line field.
1090         (do_line, do_linemarker):  Likewise just use newest map.
1091         (_cpp_do_file_change):  Don't need to set cpp_reader's line field.
1092         * cpperror.c (cpp_error):  Likewise use highest_line field.
1093         * cppfiles.c (open_file_failed:  Likewise.
1094         (cpp_make_system_header):  Likewise use newest map and highest_line.
1095         * cppinit.c (cpp_create_reader):  Don't initialize removed field.
1096         * cpplex.c (_cpp_process_line_notes, _cpp_skip_block_comment,
1097         skip_line_comment, skip_whitespace, _cpp_get_fresh_line,
1098         _cpp_lex_direct):  Likewise use highest_line.
1099         (_cpp_lex_direct):  Use new LINEMAP_POSITION_FOR_COLUMN macro.
1100         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use highest_line,
1101         and use newest map.
1102         * cpppch.c (cpp_read_state):  Don't save+restore cpp_reader's line.
1103         * cpptrad.c (_cpp_overlay_buffer):  Don't save cpp_reader's line.
1104         (copy_comment, _cpp_scan_out_logical_line):  Likewise use highest_line.
1105
1106 2004-04-23  Alan Modra  <amodra@bigpond.net.au>
1107
1108         PR bootstrap/14992
1109         * gcc.c (init_gcc_specs): Test USE_LD_AS_NEEDED, not HAVE_LD_AS_NEEDED.
1110         * config/linux.h (USE_LD_AS_NEEDED): Define.
1111         * gcc/config/alpha/linux.h (USE_LD_AS_NEEDED): Define.
1112         * gcc/config/arm/linux-elf.h (USE_LD_AS_NEEDED): Define.
1113         * gcc/config/rs6000/linux.h (USE_LD_AS_NEEDED): Define.
1114         * gcc/config/rs6000/linux64.h (USE_LD_AS_NEEDED): Define.
1115         * gcc/config/sh/linux.h (USE_LD_AS_NEEDED): Define.
1116         * gcc/config/sparc/linux.h (USE_LD_AS_NEEDED): Define.
1117         * gcc/config/sparc/linux64.h (USE_LD_AS_NEEDED): Define.
1118
1119 2004-04-22  Per Bothner  <per@bothner.com>
1120
1121         * cppinit.c (cpp_read_main_file):  Return NULL rather than false.
1122         Fixes PR preprocessor/15067.
1123
1124 2004-04-23  Andreas Schwab  <schwab@suse.de>
1125
1126         * config/ia64/ia64intrin.h: Add intermediate cast to void * to
1127         avoid aliasing warning.
1128
1129 2004-04-22  Jan Hubicka  <jh@suse.cz>
1130             Mostafa Hagog <mustafa@il.ibm.com>
1131
1132       * cfgloopmanip.c (scale_bbs_frequencies): Use RDIV macro
1133       * cfgloopanal.c (expected_loop_iterations): Change the return value
1134
1135 2004-04-22  Jakub Jelinek  <jakub@redhat.com>
1136
1137         * cselib.h (struct elt_loc_list): Remove canon_loc field.
1138         * cselib.c (new_elt_loc_list): Remove canon_loc initialization.
1139         (cselib_invalidate_mem): Remove all canon_loc and canon_x
1140         traces.
1141
1142 2004-04-22  Josef Zlomek  <zlomekj@suse.cz>
1143
1144         Revert
1145         2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
1146
1147                 * var-tracking.c (variable_part_different_p): Variable parts
1148                 differ when the most recent locations differ.
1149
1150 2004-04-22  Richard Sandiford  <rsandifo@redhat.com>
1151
1152         * doc/invoke.texi: Remove the MIPS -membedded-pic option.
1153         * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): Delete.
1154         (embedded_pic_offset): Delete.
1155         * config/mips/mips.h (MASK_EMBEDDED_PIC): Delete.  Shuffle other
1156         MASK_* constants.
1157         (TARGET_EMBEDDED_PIC): Delete.
1158         (TARGET_SWITCHES): Remove -m{no-,}embedded-pic.
1159         (ASM_SPEC): Remove -membedded-pic.
1160         (ASM_OUTPUT_ADDR_DIFF_ELT): Remove embedded-pic handling.
1161         (ASM_OUTPUT_CASE_LABEL): Likewise.
1162         * config/mips/vxworks.h (ASM_SPEC): Remove -membedded-pic.
1163         * config/mips/windiss.h (ASM_SPEC): Likewise.
1164         * config/mips/mips.c (struct machine_function): Remove
1165         embedded_pic_fnaddr_rtx.
1166         (TARGET_ENCODE_SECTION_INFO): Remove override.
1167         (embedded_pic_fnaddr_reg, embedded_pic_offset): Delete.
1168         (override_options): Remove -membedded-pic handling.
1169         (print_operand): Remove handling of '%S'.
1170         (mips_select_section: Remove -membedded-pic handling.
1171         (mips_encode_section_info): Delete.
1172         (mips_output_conditional_branch): Remove mention of -membedded-pic.
1173         * config/mips/mips.md (define_attr length, movsi, movdi, jump): Remove
1174         -membedded-pic handling.
1175         (casesi, casesi_internal, casesi_internal_di, get_fnaddr): Delete.
1176
1177 2004-04-22  Alan Modra  <amodra@bigpond.net.au>
1178
1179         * var-tracking.c (frame_base_decl): Remove useless GTY.
1180
1181 2004-04-21  Aldy Hernandez  <aldyh@redhat.com>
1182
1183         * config/rs6000/rs6000.c (rs6000_override_options): Error when
1184         user wants altivec and e500 instructions.
1185
1186 2004-04-21  H.J. Lu  <hongjiu.lu@intel.com>
1187
1188         PR target/14813
1189         * config/ia64/crtend.asm: Move pointer to __do_global_ctors_aux
1190         in .init_array section to ...
1191         * config/ia64/crtbegin.asm: Here.
1192
1193         * config/ia64/crtend.asm: Mark __do_global_ctors_aux global
1194         and hidden if HAVE_INITFINI_ARRAY is defined.
1195
1196 2004-04-21  James E Wilson  <wilson@specifixinc.com>
1197
1198         * config/mips/mips-protos.h (fp_register_operand, lo_operand): Declare.
1199         * config/mips/mips.c (mips_multipass_dfa_lookahead): Declare.
1200         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): New.
1201         (fp_register_operand, lo_operand): New.
1202         (mips_rtx_costs): Add TUNE_SB1 support.
1203         (mips_issue_rate): Add comment.  Add PROCESSOR_SB1 support.
1204         (mips_use_dfa_pipeline_interface): Add PROCESSOR_SB1 support.
1205         (mips_multipass_dfa_lookahead): New.
1206         * config/mips/mips.h (MASK_FP_EXCEPTIONS, TARGET_FP_EXCEPTIONS,
1207         TUNE_SB1): New.
1208         (TARGET_SWITCHES): Add -mfp-exceptions support.
1209         (TARGET_FP_EXCEPTIONS_DEFAULT): New.
1210         (BRANCH_COST): Fix whitespace.
1211         * config/mips/mips.md: Include sb1.md.
1212         * config/mips/sb1.md: New file.
1213         * doc/invoke.texi: Document -mfp-exceptions.
1214
1215         * Makefile.in (fixinc.sh): Don't set or export WARN_CFLAGS.  Fix
1216         comment.
1217         * fixinc/Makefile.in (FL_LIST): Don't mention WARN_CFLAGS.
1218         (fixincl.o-warn): Delete.
1219
1220 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
1221
1222         * config/rs6000/rs6000 (print_operand) ['z']:
1223         Change ifdef of TARGET_MACHO to if TARGET_MACHO.
1224
1225 2004-04-21 Daniel Jacobowitz  <drow@mvista.com>
1226
1227         * config.gcc: Support --with-arch=iwmmxt for ARM.
1228
1229 2004-04-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1230
1231         * expmed.c (expand_mult_highpart_optab): Use narrower version of OP1
1232         in two more places; remove unneeded force_reg
1233
1234 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
1235
1236         * config/rs6000/rs6000.c (symbol_ref_operand): Remove hack
1237         for TARGET_MACHO.
1238         (print_operand): For TARGET_MACHO check to see if we need a stub
1239         and output one if we need it.
1240
1241         PR debug/15033
1242         * dwarf2out.c (rtl_for_decl_location): Check for NULL
1243         rtl.
1244
1245 2004-04-20  James E Wilson  <wilson@specifixinc.com>
1246
1247         * config/ia64/ia64.md (call_value_nogp): Add constraints for op0.
1248         (vall_value_gp): Likewise.
1249
1250 2004-04-20  DJ Delorie  <dj@redhat.com>
1251
1252         * dwarf2out.c (rtl_for_decl_location): Adjust rtl for byte
1253         variables stored in word registers, then in memory.
1254
1255 2004-04-20  Eric Christopher  <echristo@redhat.com>
1256
1257         * cp/parser.c (cp_parser_declaration): Move translate
1258         up before tokens are lexed.
1259
1260 2004-04-20  Uros Bizjak  <uros@kss-loka.si>
1261
1262         * optabs.h (enum optab_index): Add new OTI_asin and OTI_acos.
1263         (asin_optab, acos_optab): Define corresponding macros.
1264         * optabs.c (init_optabs): Initialize asin_optab and acos_optab.
1265         * genopinit.c (optabs): Implement asin_optab and acos_optab
1266         using asin?f2 and acos?f2 patterns.
1267         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_ASIN{,F,L}
1268         using asin_optab, and BUILT_IN_ACOS{,F,L} using acos_optab.
1269         (expand_builtin): Expand BUILT_IN_ASIN{,F,L} and BUILT_IN_ACOS{,F,L}
1270         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
1271
1272         * config/i386/i386.md (asindf2, asinsf2, asinxf2, acosdf2,
1273         acossf2, acosxf2): New expanders to implement asin, asinf, asinl,
1274         acos, acosf and acosl built-ins as inline x87 intrinsics.
1275
1276 2004-04-20  Paul Brook  <paul@codesourcery.com>
1277
1278         * config/arm/arm.c (arm_legitimate_address_p): Use rtx_equal_p.
1279
1280 2004-04-20  Paul Brook  <paul@codesourcery.com>
1281
1282         * config/arm/arm.c (arm_expand_prologue): Fix size calculation.
1283
1284 2004-04-20  Paolo Bonzini  <bonzini@gnu.org>
1285
1286         Revert part of 2004-04-17 change that moved -frename-registers
1287         to -O1.  -frename-registers is buggy.
1288
1289         * toplev.c (flag_rename_registers): Initialize to 0.
1290         * doc/invoke.texi (Optimize options): Move -frename-registers
1291         to "Not triggered by any -O level" section.  Adjust commentary
1292         accordingly.
1293
1294 2004-04-20  Anil Paranjpe <anilp1@kpitcummins.com>
1295
1296         * toplev.c (compile_file): Move targetm.asm_out.file_end call to end.
1297
1298 2004-04-20  Richard Sandiford  <rsandifo@redhat.com>
1299
1300         * config/mips/mips.c (mips_legitimize_move): Generate special patterns
1301         for mflo and mfhi instructions.
1302         (mips_output_move): Remove mflo and mfhi handling.
1303         * config/mips/mips.md (UNSPEC_MFHILO): New unspec.
1304         (*mulsidi3_64bit): Update for new mfhi/mflo representation.
1305         Likewise various define_peephole2s.
1306         (*movdi_32bit, *movdi_64bit, *movsi_internal): Merge x<-J and x<-d
1307         alternatives.
1308         (*movdi_64bit, *movdi_64bit_mips16, *mov[shq]i_internal)
1309         (*mov[shq]i_mips16): Remove mflo and mfhi alternatives.
1310         (mfhilo_di, mfhilo_si): New patterns.
1311
1312 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
1313
1314         * function.c (assign_parms): Force
1315         MEM_EXPR (DECL_INCOMING_RTL (parm)) == parm.
1316
1317 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
1318
1319         * var-tracking.c (variable_part_different_p): Variable parts differ
1320         when the most recent locations differ.
1321
1322 2004-04-19  James E Wilson  <wilson@specifixinc.com>
1323
1324         * rtl.h (reg_set_last): Delete declaration.
1325         * rtlanal.c (reg_set_last): Delete.
1326
1327 2004-04-19  Roger Sayle  <roger@eyesopen.com>
1328
1329         * fold-const.c (fold_convert): Make function extern/public.
1330         * tree.h (fold_convert): Prototype here.
1331         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
1332         expand_builtin_strrchr, expand_builtin_strpbrk,
1333         expand_builtin_mempcpy, expand_builtin_bcopy,
1334         expand_builtin_bzero, expand_builtin_memcmp,
1335         expand_builtin_strcmp, expand_builtin_strncmp,
1336         stabilize_va_list, expand_builtin_sprintf,
1337         fold_trunc_transparent_mathfn, fold_builtin_logarithm,
1338         fold_builtin_exponent, fold_builtin_mempcpy,
1339         fold_builtin_strcpy, fold_builtin_strcmp, fold_builtin_strncmp,
1340         fold_builtin_signbit, fold_builtin_isdigit, fold_builtin): Prefer
1341         fold_convert to "convert" or "fold (build1 (NOP_EXPR, ...))".
1342
1343 2004-04-19  Aldy Hernandez  <aldyh@redhat.com>
1344
1345         * config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): New constant.
1346         (move_from_CR_gt_bit): New.
1347         (cceq_ior_compare): Name previously unnamed pattern.  Disable for
1348         E500.
1349         (cceq_rev_compare): Name previously unnamed pattern.  Allow for
1350         E500.
1351
1352         * config/rs6000/spe.md (cmpsfeq_gpr): Rewrite as unspec.
1353         (tstsfeq_gpr): Same.
1354         (cmpsfgt_gpr): Same.
1355         (tstsfgt_gpr): Same.
1356         (cmpsflt_gpr): Same.
1357         (tstsflt_gpr): Same.
1358         (e500_cceq_ior_compare): New.
1359         (e500_flip_gt_bit): New.
1360
1361         * config/rs6000/rs6000.c (ccr_bit): Remove E500 specific code.
1362         (print_operand): Add 'c' and 'D'.
1363         (rs6000_generate_compare): Rewrite to generate correct rtl.
1364         (rs6000_emit_sCOND): Handle E500.
1365         (output_cbranch): Adjust for changes in rs6000_generate_compare.
1366         (output_e500_flip_gt_bit): New.
1367
1368         * config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit):
1369         Protoize.
1370
1371 2004-04-19  Eric Christopher  <echristo@redhat.com>
1372
1373         * config/mips/mips.h (DWARF2_ADDR_SIZE): New.
1374
1375 2004-04-19  David Edelsohn  <edelsohn@gnu.org>
1376
1377         * doc/install.texi (*-ibm-aix*): Add AIX 5.1 assembler and archiver
1378         fix information.
1379
1380 2004-04-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1381
1382         * doc/install.texi (Specific, mips-sgi-irix5): Fix IRIX 5.3 IDO
1383         download URL.
1384
1385 2004-04-19  Daniel Jacobowitz  <drow@mvista.com>
1386
1387         * stor-layout.c (layout_decl): Check DECL_PACKED before calling
1388         ADJUST_FIELD_ALIGN.  Check maximum_field_alignment after.
1389
1390 2004-04-19  Andrew PInski  <pinskia@physics.uc.edu>
1391
1392         * builtins.c (fold_builtin_cabs): Remove fndecl parameter.
1393         (fold_builtin): Update caller to match.
1394
1395         PR bootstrap/15009
1396         * bb-reorder.c (fix_up_fall_thru_edges): Init cond_jump.
1397
1398         PR bootstrap/14999
1399         * builtins.c (fold_builtin_cabs): Mark fndecl as unused.
1400
1401 2004-04-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1402
1403         * varasm.c (compare_constant, case VIEW_CONVERT_EXPR): Add case.
1404
1405         * expmed.c (expand_mult_highpart_adjust): Make OP1 valid for MODE.
1406         (expand_mult_highpart_optab): Likewise.
1407         (expand_mult_highpart): Make OP1 valid for WIDER_MODE, not MODE.
1408
1409 2004-04-19  Paul Brook  <paul@codesourcery.com>
1410
1411         * config/arm/arm.md (fixuns_truncsfsi2, fixuns_truncdfsi2,
1412         floatunssisf2, floatunssidf2): New patterns.
1413
1414 2004-04-18  Mark Mitchell  <mark@codesourcery.com>
1415
1416         PR other/14918
1417         * doc/invoke.texi (-fprofile-generate): Document requirement to
1418         use -fprofile-generate when linking.
1419
1420         * doc/extend.texi (Strong Using): Warn users against using this
1421         feature.
1422
1423 2004-04-18  Richard Sandiford  <rsandifo@redhat.com>
1424
1425         * config/mips/mips-protos.h (m16_usym8_4, m16_usym5_4): Delete.
1426         * config/mips/mips.h (mips_entry, mips_string_length): Delete.
1427         (CONSTANT_POOL_BEFORE_FUNCTION, ASM_OUTPUT_POOL_EPILOGUE): Undefine.
1428         * config/mips/mips.c (struct mips16_constant): Renamed from struct
1429         constant.  Propogate change throughout file.
1430         (struct machine_function): Remove insns_len.
1431         (mips_string_length, mips16_strings, string_constants): Delete.
1432         (mips_classify_symbol): Return SYMBOL_CONSTANT_POOL for LABEL_REFs
1433         when generating mips16 code.  Remove special mips16 treatment of
1434         string constants.
1435         (mips_symbolic_constant_p): Allow mips16 constant pool accesses
1436         to have the form LABEL+CONSTANT.
1437         (mips_symbolic_address_p): Fix comment.
1438         (m16_usym8_4, m16_usym5_4): Delete.
1439         (mips_output_function_epilogue): Remove mips16 string handling.
1440         (mips_output_mi_thunk): Call mips16_lay_out_constants.
1441         (mips_select_section, mips_encode_section_info): Remove mips16
1442         string handling.
1443         (struct mips16_constant_pool): New.
1444         (add_constant): Take a mips16_constant_pool structure.  Keep pool
1445         sorted into order of ascending mode size.  Keep track of the highest
1446         possible start address, taking padding and the masking of the base PC
1447         value into account.
1448         (dump_constants_1): New function, split out from dump_constants.
1449         Handle vector constants.  Use gen_consttable_{int,float} rather than
1450         separate functions for each mode.
1451         (dump_constants): Simplify.  Use GET_MODE_ALIGNMENT.  Use gen_align
1452         rather than separate functions for each alignment.
1453         (mips_find_symbol): Delete.
1454         (mips16_insn_length): New function, split out from
1455         mips16_lay_out_constants.
1456         (mips16_rewrite_pool_refs): New function.
1457         (mips16_lay_out_constants): Rework. Remove string handling.
1458         Always create an inline constant pool.
1459         * config/mips/mips.md (UNSPEC_CONSTTABLE_INT, UNSPEC_CONSTTABLE_FLOAT)
1460         (UNSPEC_ALIGN): New constants.
1461         (UNSPEC_CONSTTABLE_[QHSD]I, UNSPEC_CONSTTABLE_[SD]F): Delete.
1462         (UNSPEC_ALIGN_[248]): Delete.
1463         (consttable_int, consttable_float, align): New patterns.
1464         (consttable_[qhsd]i, consttable_[sd]f, align_[248]): Delete.
1465
1466 2004-04-17  Aldy Hernandez  <aldyh@redhat.com>
1467
1468         * config/rs6000/altivec.h (vec_any_numeric): Correct typo in
1469         __unn_args_eq.
1470
1471 2004-04-17  Alan Modra  <amodra@bigpond.net.au>
1472
1473         PR target/14715
1474         * config/rs6000/rs6000.c (rs6000_stack_info): Make parm_size agree
1475         with STARTING_FRAME_OFFSET.
1476
1477 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
1478
1479         * config/mips/mips.h (PREDICATE_CODES): Add macc_msac_operand.
1480         * config/mips/mips.c (macc_msac_operand): New function.
1481         * config/mips/mips.md (*msac): Move after *macc.
1482         (*msac2): New.  Generalize macc-related peepholes so that they apply
1483         to msac too.
1484
1485 2004-04-17  Paolo Bonzini  <bonzini@gnu.org>
1486
1487         * opts.c (decode_options): Do not enable flag_rename_registers
1488         and flag_web at -O3.
1489         * toplev.c (flag_rename_registers): Initialize
1490         flag_rename_registers and flag_web to
1491         AUTODETECT_FLAG_VAR_TRACKING.
1492         (default_debug_hooks): New global.
1493         (process_options): Initialize default_debug_hooks.  Warn if
1494         -fvar-tracking specified but not supported by the current
1495         debug format.  Do not run var tracking at -O0 or if not
1496         supported by the current debug format, even if
1497         -fvar-tracking was given.  If -fno-rename-registers
1498         is not specified, always run register renaming if var
1499         tracking is supported by the default debugging information
1500         format for the target, and we are at -O1 or higher; similarly
1501         for -fweb, but only at -O2 or higher.
1502         * doc/invoke.texi (Optimize Options): Document this.
1503
1504 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
1505
1506         * configure.ac (gcc_cv_ld_as_needed): Use AC_CACHE_CHECK.
1507         * configure: Regenerate.
1508
1509 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
1510
1511         * gcc.c (used_arg): Check whether an option has been removed.
1512
1513 2004-04-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1514
1515         * config.gcc (i[34567]86-*-solaris2*): Default to DWARF-2
1516         debugging on Solaris 7 and up.
1517
1518 2004-04-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1519
1520         * doc/install.texi (Specific, mips-sgi-irix5): Reflect working
1521         IRIX 5 port.
1522         Remove -save-temps workaround, handled automatically.
1523         Require GNU binutils 2.15 for debugging.
1524         Remove SGI make warnings since GNU make is now required.
1525         (Specific, mips-sgi-irix6): Some markup fixes.
1526         Describe MIPSpro C problems and workarounds.
1527         Mention working O32 ABI support.
1528         Recommend GNU as 2.15 for O32 with debugging.
1529         Remove description of fixed structure pass/return bug.
1530
1531 2004-04-16  DJ Delorie  <dj@redhat.com>
1532
1533         * sdbout.c (sdbout_one_type): Use TYPE_VALUES for enums, not
1534         TYPE_FIELDS.
1535         (sdbout_finish): Don't free deferred_global_decls; it's GC'd.
1536
1537 2004-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1538
1539         * pa.md: Remove unnecessary declarations for asm_out_file.
1540
1541         * pa64-regs.h (DBX_REGISTER_NUMBER): Simplify and correct mapping of
1542         SAR register.  Fix comment.
1543         (ADDITIONAL_REGISTER_NAMES): Correct register number of SAR register
1544         (%cr11).
1545
1546         * pa64-hpux.h (LIB_SPEC): Fix library specification used with GNU ld.
1547
1548 2004-04-16  Nick Clifton  <nickc@redhat.com>
1549
1550         * config/arm/arm.c (arm_override_options): Revert previous patch.
1551         * config/arm/t-xscale-elf: Disable iwmmxt multilibs until they can
1552         be safely built.
1553
1554 2004-04-16  Kazuhiro Inaoka <inaoka dot kazuhiro at renesas dot com>
1555
1556         * config/m32r/m32r.h (BIG_ENDIAN_BIT): Deleted to fix endian
1557         bug.
1558         (TARGET_LITTLE_ENDIAN, TARGET_BIG_ENDIAN,
1559         TARGET_DEFAULT): Changed. Ditto.
1560         (LITTLE_ENDIAN_BIT, TARGET_CPU_DEFAULT,
1561         TARGET_ENDIAN_DEFAULT): Added. Ditto.
1562         * config/m32r/little.h (TARGET_LITTLE_ENDIAN): Deleted.
1563         (TARGET_ENDIAN_DEFAULT): Added.
1564
1565 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1566
1567         * builtins.def (BUILT_IN_ISDIGIT, BUILT_IN_ISXDIGIT): Mark with
1568         ATTR_CONST_NOTHROW_LIST.
1569
1570 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1571
1572         PR/middle-end 14915
1573         * builtins.c (expand_builtin_signbit): Test BYTES_BIG_ENDIAN, not
1574         BITS_BIG_ENDIAN.
1575
1576 2004-04-15  Pat Haugen  <pthaugen@us.ibm.com>
1577
1578         * ra-debug.c (ra_print_rtx): Add break's to case legs.
1579
1580 2004-04-14  James E Wilson  <wilson@specifixinc.com>
1581
1582         * Makefile.in (fixinc.sh): Set WARN_CFLAGS to empty string.
1583
1584 2004-04-14  Nathanael Nerode  <neroden@gcc.gnu.org>
1585
1586         * libada-mk.in: New file.
1587         * configure.ac: Create libada-mk from libada-mk.in.
1588         * configure: Regenerate.
1589
1590 2004-04-14  Uros Bizjak  <uros@kss-loka.si>
1591
1592         * optabs.h (enum optab_index): Add new OTI_logb and OTI_ilogb.
1593         (logb_optab, ilogb_optab): Define corresponding macros.
1594         * optabs.c (init_optabs): Initialize logb_optab and ilogb_optab.
1595         * genopinit.c (optabs): Implement logb_optab and ilogb_optab
1596         using logb?f2 and ilogb?i2 patterns.
1597         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOGB{,F,L}
1598         using logb_optab, and BUILT_IN_ILOGB{,F,L} using ilogb_optab.
1599         (expand_builtin): Expand BUILT_IN_LOGB{,F,L} and BUILT_IN_ILOGB{,F,L}
1600         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
1601
1602         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_XTRACT_FRACT
1603         and UNSPEC_XTRACT_EXP.
1604
1605         * config/i386/i386.md (*fxtractdf3, *fxtractsf3, *fxtractxf3): New
1606         patterns to implement fxtract x87 instruction.
1607         (logbdf2, logbsf2, logbxf2, ilogbsi2): New expanders to implement
1608         logb, logbf, logbl, ilogb, ilogbf and ilogbl built-ins as inline x87
1609         intrinsics.
1610         (UNSPEC_XTRACT_FRACT, UNSPEC_XTRACT_EXP): New unspecs to represent
1611         x87's fxtract insn.
1612
1613 2004-04-14  Eric Christopher  <echristo@redhat.com>
1614
1615         * config/mips/t-elf: Enable multilibs by default.
1616
1617 2004-04-14  Andreas Tobler  <a.tobler@schweiz.ch>
1618
1619         * bb-reorder.c (fix_crossing_conditional_branches): Adjust the
1620         previous fix to check HAVE_return at runtime too.
1621
1622 2004-04-14  Nick Clifton  <nickc@redhat.com>
1623
1624         * config/arm/arm.c (arm_override_options): If the user has not
1625         specified an ABI, then default to AAPCS for the iWMMXt processor.
1626         * config/arm/t-xscale-elf: Remove redundant multilib specifications.
1627         * config/arm/t-xscale-coff: Likewise.
1628
1629 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1630
1631         * builtins.c (fold_builtin_isdigit): New.
1632         (fold_builtin): Handle BUILT_IN_ISDIGIT.
1633         * defaults.h: Add TARGET_DIGIT0 and sort.
1634         * doc/tm.texi: Add TARGET_BS and TARGET_DIGIT0.
1635
1636 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1637
1638         * builtins.c (fold_builtin_cabs, fold_builtin): Use
1639         `mathfn_built_in' to determine the new builtin.
1640         * fold-const.c (fold): Likewise.
1641
1642 2004-04-14  Richard Sandiford  <rsandifo@redhat.com>
1643
1644         * doc/invoke.texi: Rename MIPS's -mfix-vr4122-bugs to -mfix-vr4120.
1645         * config/mips/mips.h (MASK_FIX_VR4120): Renamed from MASK_FIX_VR4122.
1646         (TARGET_FIX_VR4120): Likewise TARGET_FIX_VR4122.
1647         (TARGET_SWITCHES): Replace -mfix-vr4122-bugs with -mfix-vr4120.
1648         (ASM_SPEC): Update accordingly.
1649         * config/mips/mips.c: Update after above renaming.
1650         * config/mips/mips.md, config/mips/t-vr, config/mips/vr.h: Likewise.
1651         * config/mips/vr4120-div.S: Renamed from vr4122-div.S.
1652
1653 2004-04-13  James E Wilson  <wilson@specifixinc.com>
1654
1655         * c-opt.c (c_common_post_options): If this_input_filename is NULL,
1656         increment errorcount and return false instead of true.
1657
1658 2004-04-13  Uros Bizjak  <uros@kss-loka.si>:
1659
1660         * optabs.c (expand_twoval_unop): Reorder function arguments.
1661         * builtins.c (expand_builtin_mathfn_3): Update calls to
1662         expand_twoval_unop.
1663
1664         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_TAN_ONE
1665         and UNSPEC_TAN_TAN. Add missing comment.
1666
1667         * config/i386/i386.md (*tandf3_1, *tansf3_1, *tanxf3_1): New
1668         patterns to implement fptan x87 instruction.
1669         (tandf2, tansf2, tanxf2): New expanders to implement tan, tanf
1670         and tanl built-ins as inline x87 intrinsics. Define corresponding
1671         peephole2 optimizers for 'fptan; fstp %st(0); fld1' sequence.
1672         (UNSPEC_TAN_ONE, UNSPEC_TAN_TAN): New unspecs to represent
1673         x87's fptan insn.
1674
1675 2004-03-13  Richard Henderson  <rth@redhat.com>
1676
1677         * bb-reorder.c (fix_crossing_unconditional_branches): Use Pmode
1678         for LABEL_REFs.
1679
1680         * defaults.h (HOT_TEXT_SECTION_NAME): Add leading dot.
1681         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Likewise.
1682         * doc/invoke.texi: Update to match.
1683
1684         * varasm.c (unlikely_text_section): Use assemble_align instead of
1685         ASM_OUTPUT_ALIGN.  Use it in the correct place with an approximately
1686         correct alignment argument.
1687
1688 2004-04-13  Ulrich Weigand  <uweigand@de.ibm.com>
1689
1690         * reload1.c (emit_reload_insns): Set reg_has_output_reload to one
1691         after setting reg_last_reload_reg for optional output reloads.
1692
1693 2004-04-12  Fariborz Jahanian <fjahanian@apple.com>
1694
1695         * config/rs6000/altivec.h (vec_mergeh, vec_mergel):
1696         Definition of these two macros are corrected by adding
1697         matchine right paren.
1698
1699 2004-04-12  Jonathan Larmour  <jifl@eCosCentric.com>
1700
1701         * fix-header.c: kill(), putenv() and tzset() are POSIX not ANSI.
1702
1703 2004-04-12  Roger Sayle  <roger@eyesopen.com>
1704
1705         * config/i386/i386.c (output_387_reg_move): New function.
1706         * config/i386/i386-protos.h (output_387_reg_move): Prototype here.
1707         * config/i386/i386.md (*movsf_1, *movsf1_nointerunit,
1708         *movdf_nointeger, *movdf_integer, *movxf_nointeger, *movxf_integer,
1709         *extendsfdf2_1,  *extendsfxf2_1, *extenddfxf2_1, truncdfsf2_noop,
1710         truncxfsf2_noop, truncxfdf2_noop): Call output_387_reg_move.
1711
1712 2004-04-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1713
1714         * c-decl.c (finish_decl): Make a decl_stmt for a variable-sized
1715         TYPE_DECL.
1716         * c-semantics.c (genrtl_decl_stmt): Handle TYPE_DECL.
1717         * stmt.c (expand_decl): Remove redundant expansion of TYPE_DOMAIN.
1718         * stor-layout.c (variable_size): Don't check for MINUS_EXPR.
1719         Use skip_simple_arithmetic to find SAVE_EXPR.
1720         (force_type_save_exprs, force_type_save_exprs_1): New functions.
1721         * tree-inline.c (remap_type, case POINTER_TYPE, case REFERENCE_TYPE):
1722         Properly chain multiple pointers.
1723         (copy_tree_r): Copy a TYPE_DECL.
1724         * tree.c (variably_modified_type_p): Add some missing tests and
1725         make some other minor changes.
1726         * tree.h (force_type_save_exprs): New declaration.
1727
1728 2004-04-12  Roger Sayle  <roger@eyesopen.com>
1729
1730         * simplify-rtx.c (simplify_binary_operation) <UDIV, DIV, UMOD, MOD>:
1731         Remove fall throughs.  Convert 0/x and 0%x into x&0 when x has
1732         side-effects.  Don't convert x/1.0 into x if we honor signaling NaNs.
1733         Convert x/-1.0 into -x if we don't honor signaling NaNs.  Convert
1734         x/-1 into -x.  Optimize x%1 into x&0 if x has side-effects.  Optimize
1735         x%-1 into 0 (or x&0 if x has side-effects).
1736
1737 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
1738
1739         * config/rs6000/rs6000.md: Document why a pattern is not
1740         available.
1741
1742         * config/rs6000/rs6000.c (rs6000_emit_cmove): Disable comparisons
1743         of floats on the E500.
1744         (branch_positive_comparison_operator): Do not allow NE even on the
1745         E500.
1746
1747 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
1748
1749         * config/rs6000/rs6000.c (rs6000_assemble_integer): Change
1750         in_text_unlikely_section to in_unlikely_text_section.
1751
1752 2004-04-11  Roger Sayle  <roger@eyesopen.com>
1753
1754         * fold-const.c (fold_binary_op_with_conditional_arg):  Tweak
1755         calling convention to allow a NULL_TREE to be returned.  Factor
1756         sanity checks from callers, return NULL_TREE when appropriate.
1757         (fold): Handle COMPOUND_EXPR operands of binary expressions
1758         before COND_EXPR operands.  Use reorder_operands_p(a,b) to check
1759         whether a op (b,c) can be rewritten as (b, a op c).  Simplify
1760         calls to fold_binary_op_with_conditional_arg.
1761
1762 2004-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1763
1764         * config/mips/iris5.h (current_section_flags):  Add
1765         in_unlikely_executed_text and default case.
1766
1767 2004-04-11  Andreas Tobler  <a.tobler@schweiz.ch>
1768
1769         * bb-reorder.c (fix_crossing_conditional_branches): Fix bootstrap
1770         failure on solaris. Place ifdef HAVE_return around gen_ret call.
1771         * cfgrtl.c (force_nonfallthru_and_redirect): Remove ifdef
1772         HAVE_return and place it around the place where it is needed.
1773
1774 2004-04-11  Andrew Pinski  <pinskia@physics.uc.edu>
1775
1776         * varasm.c (text_section): Use TEXT_SECTION_ASM_OP and
1777         ASM_OUTPUT_ALIGN instead of SECTION_FORMAT_STRING
1778         and NORMAL_TEXT_SECTION_NAME.
1779         (unlikely_text_section): Check targetm.have_named_sections
1780         instead of TARGET_ASM_NAMED_SECTION and use TEXT_SECTION_ASM_OP
1781         instead of SECTION_FORMAT_STRING.
1782         * config/mips/iris5.h (current_section_name): Add
1783         in_unlikely_executed_text case and move the abort into the switch.
1784         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME): Remove.
1785         (NORMAL_TEXT_SECTION_NAME): Remove.
1786         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
1787         (SECTION_FORMAT_STRING): Remove.
1788         * defaults.h (SECTION_FORMAT_STRING): Remove.
1789         * tm.texi (NORMAL_TEXT_SECTION_NAME): Remove.
1790         (SECTION_FORMAT_STRING): Remove.
1791
1792 2004-04-10  Joseph S. Myers  <jsm@polyomino.org.uk>
1793
1794         * c-typeck.c (common_type): Prefer long long to long when same
1795         precision.
1796
1797 2004-04-09  Zack Weinberg  <zack@codesourcery.com>
1798
1799         PR 14887
1800         * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Look only at
1801         mode argument.
1802         * config/ia64/ia64.c (ia64_hpux_file_end): Check
1803         TREE_SYMBOL_REFERENCED on DECL_ASSEMBLER_NAME, not DECL_NAME.
1804
1805 2004-04-09  Roger Sayle  <roger@eyesopen.com>
1806
1807         * simplify-rtx.c (mode_signbit_p): New function to check whether
1808         an RTX is an immediate constant that represents the most significant
1809         bit of a given machine mode.
1810         (simplify_unary_operation) <NOT>: Optimize ~(X+C) as X ^ ~C, where
1811         C is the sign bit.
1812         (simplify_binary_operation) <PLUS>: Optimize (X^C1) + C2 as X^(C1^C2)
1813         when C2 is the sign bit.
1814         (simplify_binary_operation) <XOR>: Canonicalize X^C as X+C when C
1815         is the sign bit.  Optimize (X+C1) ^ C2 as X^(C1^C2) when C1 is the
1816         sign bit.
1817
1818 2004-04-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1819
1820         * builtins.c (mathfn_built_in): Check TYPE_MAIN_VARIANT, not
1821         TYPE_MODE.
1822
1823 2004-04-09  Andrew Pinski  <pinskia@physics.uc.edu>
1824
1825         * c-common.c (handle_noreturn_attribute): Use TYPE_READONLY instead
1826         of TREE_READONLY for types.
1827
1828 2004-04-09  Caroline Tice  <ctice@apple.com>
1829
1830         * basic-block.h (struct edge_def):  Add new field, crossing_edge.
1831         (struct basic_block_def):  Add new field, partition.
1832         (UNPARTITIONED, HOT_PARTITION, COLD_PARTITION):  New constant macro
1833         definitions.
1834         (partition_hot_cold_basic_blocks): Add extern function
1835         declaration.
1836         * bb-reorder.c (function.h, obstack.h, expr.h, regs.h):  Add four new
1837         include statements.
1838         (N_ROUNDS): Increase the maximum number of rounds by 1.
1839         (branch_threshold): Add array value for new round.
1840         (exec_threshold): Add array value for new round.
1841         (push_to_next_round_p): New function.
1842         (add_unlikely_executed_notes): New function.
1843         (find_rarely_executed_basic_blocks_and_crossing_edges): New function.
1844         (mark_bb_for_unlikely_executed_section): New function.
1845         (add_labels_and_missing_jumps): New function.
1846         (add_reg_crossing_jump_notes): New function.
1847         (fix_up_fall_thru_edges): New function.
1848         (find_jump_block): New function.
1849         (fix_crossing_conditional_branches): New function.
1850         (fix_crossing_unconditional_branches): New function.
1851         (fix_edges_for_rarely_executed_code): New function.
1852         (partition_hot_cold_basic_blocks): New function.
1853         (find_traces):  Add an extra round for partitioning hot/cold
1854         basic blocks.
1855         (find_traces_1_round): Add a parameter.  Modify to push all cold blocks,
1856         and only cold blocks, into the last (extra) round of collecting traces.
1857         (better_edge_p): Add a parameter.  Modify to favor non-crossing edges
1858         over crossing edges.
1859         (bb_to_key):  Add code to correctly identify cold blocks when
1860         doing partitioning.
1861         (connect_traces): Modify to connect all the non-cold traces first, then
1862         go back and connect up all the cold traces.
1863         (reorder_basic_blocks):  Add call to add_unlikely_executed_notes.
1864         * cfg.c (entry_exit_blocks): Add initialization for partition field in
1865         entry and exit blocks.
1866         * cfgbuild.c (make_edges): Update current_function_has_computed_jump
1867         if we are doing hot/cold partitioning.
1868         * cfgcleanup.c (cfglayout.h): Add new include statement.
1869         (try_simplify_condjump): Modify to not attempt on blocks with jumps
1870         that cross section boundaries.
1871         (try_forward_edges): Likewise.
1872         (merge_blocks_move_predecessor_nojumps): Likewise.
1873         (merge_blocks_move_successor_nojumps): Likewise.
1874         (merge_blocks_move): Likewise.
1875         (try_crossjump_to_edge): Modify to not attempt after we have done
1876         the block partitioning.
1877         (try_crossjump_bb): Modify to not attempt on blocks with jumps that
1878         cross section boundaries.
1879         (try_optimize_cfg): Likewise.
1880         * cfghooks.c (tidy_fallthru_edges): Modify to not remove indirect
1881         jumps that cross section boundaries.
1882         * cfglayout.c (flags.h): Add new include statement.
1883         (update_unlikely_executed_notes):  New function.
1884         (fixup_reorder_chain):  Add code so when a new jumping basic block is
1885         added, it's UNLIKELY_EXECUTED_CODE and REG_CROSSING_JUMP notes are
1886         updated appropriately.
1887         (duplicate_insn_chain):  Add code to duplicate the new NOTE insn
1888         introduced by this optimization.
1889         * cfglayout.h (scan_ahead_for_unlikely_executed_note):  Add new
1890         extern function declaration.
1891         * cfgrtl.c (can_delete_note_p):  Add NOTE_INSN_UNLIKELY_EXECUTED_CODE to
1892         list of notes that can be deleted.
1893         (create_basic_block_structure):  Add initialization for partition field.
1894         (rtl_can_merge_blocks):  Modify to test blocks for jumps that cross
1895         section boundaries.
1896         (try_redirect_by_replacing_jump):  Modify to not attempt on jumps that
1897         cross section boundaries.
1898         (commit_one_edge_insertion): Add code so newly created basic block
1899         ends up in correct (hot or cold) section.  Modify to disallow
1900         insertions before NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
1901         (rtl_verify_flow_info_1):  Add code to verify that no fall_thru edge
1902         crosses section boundaries.
1903         (cfg_layout_can_merge_blocks_p): Modify to test blocks for jumps that
1904         cross section boundaries.
1905         (force_nonfallthru_and_redirect): Modify to make sure new basic block
1906         ends up in correct section, with correct notes attached.
1907         * common.opt (freorder-blocks-and-partition):  Add new flag for this
1908         optimization.
1909         * dbxout.c (dbx_function_end):  Add code to make sure scope labels at
1910         the end of functions are written into the correct (hot or cold)
1911         section.
1912         (dbx_source_file): Add code so writing debug file information
1913         doesn't incorrectly change sections.
1914         * defaults.h (NORMAL_TEXT_SECTION_NAME): New constant macro, for use
1915         in partitioning hot/cold basic blocks into separate sections.
1916         (SECTION_FORMAT_STRING): New constant macro, for linux/i386 hot/cold
1917         section partitioning.
1918         (HAS_LONG_COND_BRANCH): New constant macro, indicating whether or not
1919         conditional branches can span all of memory.
1920         (HAS_LONG_UNCOND_BRANCH): New constant macro, indicationg whether or not
1921         unconditional branches can span all of memory.
1922         * final.c (scan_ahead_for_unlikely_executed_note):  New function.
1923         (final_scan_insn):  Add code to check for NOTE instruction indicating
1924         whether basic block belongs in hot or cold section, and to make sure
1925         the current basic block is being written to the appropriate section.
1926         Also added code to ensure that jump table basic blocks end up in the
1927         correct section.
1928         * flags.h (flag_reorder_blocks_and_partition):  New flag.
1929         * ifcvt.c (find_if_case_1):  Modify to not attempt if conversion if
1930         one of the branches has a jump that crosses between sections.
1931         (find_if_case_2): Likewise.
1932         (ifcvt): Modify to not attempt to mark loop exit edges after
1933         hot/cold partitioning has occurred.
1934         * opts.c (decode_options): Code to handle new flag,
1935         flag_reorder_blocks_and_partition; also to turn it off if
1936         flag_exceptions is on.
1937         (common_handle_option): Code to handle new flag,
1938         flag_reorder_blocks_and_partition.
1939         * output.h (unlikely_text_section): New extern function declaration.
1940         (in_unlikely_text_section): New extern function declaration.
1941         * passes.c (rest_of_handle_stack_regs):  Add
1942         flag_reorder_blocks_and_partition as an 'or' condition for calling
1943         reorder_basic_blocks.
1944         (rest_of_handle_reorder_blocks):  Add flag_reorder_blocks_and_partition
1945         as an 'or' condition for calling reorder_basic_blocks.
1946         (rest_of_compilation):  Add call to partition_hot_cold_basic_blocks.
1947         * print-rtl.c (print_rtx): Add code for handling new note,
1948         NOTE_INSN_UNLIKELY_EXECUTED_CODE
1949         * rtl.c  (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note insn (see below).
1950         (REG_CROSSING_JUMP): New kind of reg_note, to mark jumps that
1951         cross between section boundaries.
1952         * rtl.h (NOTE_INSN_UNLIKELY_EXECUTED_CODE):  New note instruction,
1953         indicating the basic block containing it belongs in the cold section.
1954         (REG_CROSSING_JUMP): New type of reg_note, to mark jumps that cross
1955         between hot and cold sections.
1956         * toplev.c (flag_reorder_blocks_and_partition):  Add code to
1957         initialize this flag, and to tie it to the command-line option
1958         freorder-blocks-and-partition.
1959         * varasm.c (cfglayout.h):  Add new include statement.
1960         (unlikely_section_label_printed):  New global variable, used for
1961         determining when to output section name labels for cold sections.
1962         (in_section):  Add in_unlikely_executed_text to enum data structure.
1963         (text_section):  Modify code to use SECTION_FORMAT_STRING and
1964         NORMAL_TEXT_SECTION_NAME macros.
1965         (unlikely_text_section):  New function.
1966         (in_unlikely_text_section):  New function.
1967         (function_section):  Add code to make sure beginning of function is
1968         written into correct section (hot or cold).
1969         (assemble_start_function):  Add code to make sure stuff is written to
1970         the correct section.
1971         (assemble_zeros):  Add in_unlikely_text_section as an 'or' condition
1972         to an if statement that was checking 'in_text_section'.
1973         (assemble_variable):  Add 'in_unlikely_text_section' as an 'or'
1974         condition to an if statement that was checking 'in_text_section'.
1975         (default_section_type_flags_1):  Add check: if in cold section
1976         flags = SECTION_CODE.
1977         * config/darwin.c (darwin_asm_named_section):  Modify to use
1978         SECTION_FORMAT_STRING if we are partitioning hot/cold blocks.
1979         * config/i386/i386.h (HAS_LONG_COND_BRANCH): Defined this macro
1980         specifically for the i386.
1981         (HAS_LONG_UNCOND_BRANCH):  Defined this macro specifically for the i386.
1982         * config/rs6000/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Change
1983         text string to something more informative.
1984         (NORMAL_TEXT_SECTION_NAME): Add new definition.
1985         (SECTION_FORMAT_STRING):  Add new definition.
1986         * config/rs6000/rs6000.c (rs6000_assemble_integer):  Add
1987         '!in_unlikely_text_section' as an 'and' condition to an if statement
1988         that was already checking '!in_text_section'.
1989         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME,NORMAL_TEXT_SECTION_NAME,
1990         UNLIKELY_EXECUTED_TEXT_SECTION_NAME,SECTION_FORMAT_STRING): Make
1991         sure these are properly defined for linux on ppc.
1992         * doc/invoke.texi  (freorder-blocks-and-partition): Add documentation
1993         for this new flag.
1994         * doc/rtl.texi (REG_CROSSING_JUMP):  Add documentation for new
1995         reg_note.
1996         * doc/tm.texi (NORMAL_TEXT_SECTION_NAME, SECTION_FORMAT_STRING,
1997         HAS_LONG_COND_BRANCH, HAS_LONG_UNCOND_BRANCH): Add documentation for
1998         these new macros.
1999
2000 2004-04-08  Roger Sayle  <roger@eyesopen.com>
2001
2002         * function.c (gen_mem_addressof): When changing the RTX from a REG
2003         to a MEM, clear MEM_VOLATILE_P which was formerly REG_USERVAR_P.
2004
2005 2004-04-08  Roger Sayle  <roger@eyesopen.com>
2006
2007         PR target/14888
2008         * config/i386/i386.md (truncdfsf2_noop, truncxfsf2_noop,
2009         truncxfdf2_noop): Provide dummy "fmov" implementations.
2010
2011 2004-04-08  Ian Lance Taylor  <ian@wasabisystems.com>
2012
2013         * gcc.c (default_compilers): Add missing initializers.
2014
2015         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
2016         Return 1 if file was successfully mapped.
2017
2018 2004-04-08  Geoffrey Keating  <geoffk@apple.com>
2019
2020         PR pch/13419
2021         PR pch/14137
2022         Radar #: 3315288
2023         * doc/invoke.texi (Precompiled Headers): Suggest -o
2024         to put an output file in a particular place.  Be more detailed
2025         about which options affect PCH validity and which options
2026         might not work.
2027         * c-pch.c (pch_matching): New.
2028         (MATCH_SIZE): New.
2029         (struct c_pch_validity): New field 'match'.
2030         (pch_init): Handle pch_matching.
2031         (c_common_valid_pch): Check pch_matching.
2032
2033         * explow.c: Fix typo defining default of PROMOTE_FUNCTION_MODE.
2034
2035 2004-04-08  Mark Mitchell  <mark@codesourcery.com>
2036
2037         * doc/invoke.texi (Precompiled Headers): Warn about known
2038         problems.
2039
2040 2004-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
2041
2042         PR c++/14808
2043         * defaults.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): New macro. Default
2044         to 1 if ASM_OUTPUT_DEF is defined.
2045         * doc/tm.texi (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document.
2046         * config/i386/cygming.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): Define.
2047         Set to non-zero iff not a one_only decl.
2048
2049 2004-04-08  Paul Brook  <paul@codesourcery.com>
2050
2051         * arm.h (CLASS_LIKELY_SPILLED_P): Define.
2052
2053 2004-04-08  Paul Brook  <paul@codesourcery.com>
2054
2055         * explow.c (promote_mode): Use PROMOTE_FUNCTION_MODE instead of
2056         PROMOTE_FOR_CALL_ONLY.
2057         * config/arm/arm-protos.h (arm_function_value): Declare.
2058         * config/arm/arm.h (TARGET_PROMOTE_FUNCTION_ARGS): Define.
2059         (TARGET_PROMOTE_PROTOTYPES): Return false.
2060         (arm_function_value): New function.
2061         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Define.
2062         (FUNCTION_VALUE): Call arm_function_value.
2063         * config/cris/cris.h (PROMOTE_MODE): Rename ...
2064         (PROMOTE_FUNCTION_MODE): ... to this.
2065         (PROMOTE_FOR_CALL_ONLY): Remove.
2066         * config/mmix/mmix.h: Likewise.
2067         * config/s390/s390.h: Likewise.
2068         * config/sparc/sparc.h: Likewise.
2069         * config/sparc/sparc.c: Update comments about PROMOTE_MODE.
2070         * doc/tm.texi (PROMOTE_FUNCTION_MODE): Document.
2071         (TARGET_PROMOTE_FUNCTION_MODE, TARGET_PROMOTE_FUNCTION_RETURN): Update.
2072         (PROMOTE_FOR_CALL_ONLY): Remove.
2073
2074 2004-04-08  Joel Sherrill <joel@oarcorp.com>
2075
2076         PR ada/14538
2077         * ada/5rosinte.adb: Remove fake mprotect() body.
2078         * ada/5rosinte.ads: Add SA_SIGINFO.
2079         * ada/5rtpopsp.adb: Rewrite to use new interface.
2080         * ada/init.c: Reorder so the simple single OS conditional __rtems__
2081         is tested before more complex ones which mix UNIX and embedded
2082         systems in the conditional.
2083
2084 2004-04-08  Joel Sherrill  <joel@oarcorp.com>
2085
2086         PR ada/14665
2087         * ada/osint.adb (Find_Program_Name): Rework to properly handle
2088         filenames which end in .exe or have versioning suffixes like VMS.
2089
2090 2004-04-08  Andrew Pinski  <pinskia@physics.uc.edu>
2091
2092         PR target/10129
2093         * config/darwin.c (darwin_encode_section_info): When the decl has
2094         a DECL_INITIAL, it is only defined also when it is not a common.
2095
2096 2004-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2097
2098         * builtins.c (fold_builtin_isascii, fold_builtin_toascii): New.
2099         (fold_builtin): Handle BUILT_IN_ISASCII and BUILT_IN_TOASCII.
2100
2101 2004-04-07  H.J. Lu  <hongjiu.lu@intel.com>
2102
2103         * config/ia64/ia64.c (ia64_encode_section_info): Don't prod
2104         global register variables.
2105
2106 2004-04-07  Joseph S. Myers  <jsm@polyomino.org.uk>
2107
2108         * fixinc/inclhack.def (rpc_xdr_lvalue_cast_a,
2109         rpc_xdr_lvalue_cast_b): New fixes.
2110         * fixinc/fixincl.x: Regenerate.
2111         * fixinc/tests/base/rpc/xdr.h: Add new tests.
2112
2113 2004-04-07  David Edelsohn  <edelsohn@gnu.org>
2114
2115         * config/rs6000/rs6000.c (processor_target_table): Add MASK_MFCRF
2116         to power4 and power5 entries.
2117
2118 2004-04-06  Geoffrey Keating  <geoffk@apple.com>
2119
2120         * c-common.h (pending_lang_change): Mark for PCH.
2121
2122 2004-04-07  Caroline Tice  <ctice@apple.com>
2123
2124         * gcc.c (main): Move 'break' in main loops (on an error)
2125         to wait until error processing has occurred.
2126
2127 2004-04-06  Nathanael Nerode  <neroden@gcc.gnu.org>
2128
2129         * config.gcc: Stop changing enable_threads midstream.
2130         Replace uses of enable_threads_flag with enable_threads.
2131         * configure.ac: Replace uses of enable_threads_flag with
2132         enable_threads.  Improve autoconf quotation in one place.
2133         * configure: Regenerate.
2134
2135 2004-04-06  Uros Bizjak  <uros@kss-loka.si>
2136
2137         * builtins.c: Implement support for sincos function.
2138         (expand_builtin_mathfn): Remove BUILT_IN_SIN{,F,L} and
2139         BUILT_IN_COS{,F,L}.
2140         (expand_builtin_mathfn_3): New function.
2141         (expand_builtin): Expand BUILT_IN_SIN{,F,L} and
2142         BUILT_IN_COS{,F,L} using expand_builtin_mathfn_3 if
2143         flag_unsafe_math_optimization is set.
2144
2145         * optabs.h (enum optab_index): Add new OTI_sincos.
2146         (sincos_optab): Define corresponding macro.
2147
2148         * optabs.c (init_optabs): Initialize sincos_optab.
2149         (expand_twoval_unop): New function.
2150
2151         * genopinit.c (optabs): Implement sincos_optab using sincos?f3
2152         patterns.
2153
2154         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_SINCOS_COS
2155         and UNSPEC_SINCOS_SIN.
2156
2157         * config/i386/i386.md (sincosdf3, sincossf3, *sincosextendsfdf3,
2158         sincosxf3): New patterns to implement sincos, sincosf and sincosl
2159         built-ins as inline x87 intrinsics. Define splits for
2160         sindf2, sinsf2, *sinextendsfdf2, sinxf2, cosdf2,
2161         cossf2, *cosextendsfdf2 and cosxf2 patterns from corresponding
2162         sincos patterns.
2163         (sindf2, sinsf2, sinxf2): Rename to *sindf2, *sinsf2, *sinxf2.
2164         (cosdf2, cossf2, cosxf2): Rename to *cosdf2, *cossf2, *cosxf2.
2165
2166         (UNSPEC_SINCOS_SIN, UNSPEC_SINCOS_COS): New unspecs to represent
2167         x87's fsincos insn.
2168
2169 2004-04-06  Devang Patel  <dpatel@apple.com>
2170
2171         PR 14467
2172         * config/darwin.h (LINK_COMMAND_SPEC): Use c++filt instead of c++filt3.
2173
2174 2004-04-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2175
2176         * doc/install.texi: Update HP-UX 11 installation procedure.
2177
2178 2004-04-06  Paul Brook  <paul@codesourcery.com>
2179
2180         * doc/sourcebuild.texi: Remove obsolete contraint on testcases.
2181
2182 2004-04-05  Kaz Kojima  <kkojima@gcc.gnu.org>
2183
2184         * config/sh/sh.c (prepare_move_operands): Use emit_call_insn
2185         when the TLS address is generated by a function call.
2186         * config/sh/sh.md (tls_global_dynamic): Use a call expression.
2187         (tls_local_dynamic): Likewise.
2188
2189 2004-04-05  Andrew Pinski  <pinskia@physics.uc.edu>
2190
2191         * tree.c (reconstruct_complex_type): Use TYPE_READONLY
2192         and TYPE_VOLATILE.
2193
2194 2004-04-05  Caroline Tice  <ctice@apple.com>
2195
2196         * gcc.c (combine_flag): New global variable, for new driver option.
2197         (struct compiler): Add two new fields, to be used when
2198         combining multiple input files in a single pass (IMA).
2199         (default_compilers):  Add values for the new fields to all
2200         compiler entries. Modify the "@c" compiler entry for doing IMA
2201         properly with "-save-temps" and the "combine" flag.
2202         (option_map):  Add new driver option, "--combine", to tell driver
2203         to pass multiple input files to compiler at one time.
2204         (have_o_argbuf_index): New global variable.
2205         (store_arg): Modify to assign value to have_o_argbuf_index.
2206         (struct infile):  Add three new fields, to help with IMA.
2207         (display_help): Add help for new "combine" option.
2208         (process_command): Remove local variable have_o; add code to check
2209         for new "combine" option; remove assignment to combine_inputs.
2210         (do_spec_1):  Modify to deal with IMA better.
2211         (main): Make variable 'lang_n_infiles' local to entire function
2212         rather than to a single block.  Use flag combine_flag to
2213         determine whether to do IMA or not; Modify loop initializing
2214         infiles to deal properly with linker files.
2215         Add code for doing preprocessing in presence of
2216         IMA with "-save-temps" flag.  Modify "main" loop to handle
2217         multiple input files, in multiple languages, with or without
2218         preprocessing,  gracefully.
2219         * toplev.c (set_src_pwd): Modify to not complain if attempting to
2220         re-set it to same directory it's previously been set to (avoid
2221         irritating, meaningless warning messages when doing IMA with
2222         save-temps).
2223         * doc/invoke.texi: Add "-combine" to list of Overall Options;
2224         remove documentation about IMA that is no longer accurate; Add
2225         documentation explaining what "-combine" does.
2226         * ada/lang-specs.h: Add initialization values for new fields in
2227         "struct compiler".
2228         * cp/lang-specs.h: Likewise.
2229         * f/lang-specs.h: Likewise.
2230         * java/lang-specs.h: Likewise.
2231         * objc/lang-specs.h: Likewise.
2232         * treelang/lang-specs.h: Likewise.
2233
2234 2004-04-05  David Edelsohn
2235
2236         * config/rs6000/rs6000.c (VTABLE_NAME_P): Add _ZTI to special
2237         symbol handling.
2238
2239 2004-04-05  Jakub Jelinek  <jakub@redhat.com>
2240             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2241
2242         PR optimization/13424 (hppa), bootstrap/14462, c/14828
2243         * pa.md: Use replace_equiv_address to retain the attributes of the
2244         memory operands used in the split and peephole2 patterns for optimizing
2245         the pre-reload movstrsi, movstrdi, clrstrsi and clrstrdi patterns.
2246
2247 2004-04-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2248
2249         * c-decl.c (build_compound_literal): Use TYPE_READONLY.
2250         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
2251         * objc/objc-act.c (adorn_decl, gen_declspecs): Likewise.
2252         * c-typeck.c (decl_constant_value): Don't access DECL_INITIAL of a
2253         PARM_DECL.
2254         * calls.c (flags_from_decl_or_type): Use TYPE_READONLY and do so only
2255         for a type.
2256         * print-tree.c (print_node): Properly handle side-effects, readonly,
2257         and constant flags.
2258         * tree.c (build1_stat, build_expr_wfl): Only look at TREE_SIDE_EFFECTS
2259         and TREE_CONSTANT if not a type.
2260         * tree.h (IS_NON_TYPE_CODE_CLASS): New macro.
2261         (IS_EXPR_CODE_CLASS): Write 'E', not 'e'.
2262         (NON_TYPE_CHECK): New macro.
2263         (TREE_SIDE_EFFECT, TREE_READONLY, TREE_CONSTANT: Add check.
2264
2265 2004-04-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
2266
2267         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Set
2268         to DWARF2_DEBUG unconditionally.
2269         (ASM_DEBUG_SPEC): Set the default to --gdwarf2 unconditionally.
2270
2271 2004-04-04  Ian Lance Taylor  <ian@wasabisystems.com>
2272             Nathanael Nerode  <neroden@gcc.gnu.org>
2273
2274         PR target/14548
2275         * config.host: Set the shell variable host_can_use_collect2.
2276         Set it to yes by default, and to no for alpha*-dec-*vms*,
2277         i[34567]86-*-mingw32*, and powerpc-*-beos*.
2278         * configure.ac: Set and substitute the shell variable collect2.
2279         Give an error if use_collect2 is yes and host_can_use_collect2 is
2280         no.
2281         * Makefile.in (COLLECT2): Rename from USE_COLLECT2.  Change all
2282         uses.  Initialize to @collect2@.
2283         (STAGESTUFF): Remove $(USE_COLLECT2).
2284         * config/alpha/x-vms (USE_COLLECT2): Don't set.
2285         * config/i386/t-mingw32 (USE_COLLECT2): Likewise.
2286         * config/rs6000/t-beos (USE_COLLECT2): Likewise.
2287         * config/pa/t-pa64: Remove commented out USE_COLLECT2.
2288         * configure: Regenerate.
2289
2290 2004-04-04  Roger Sayle  <roger@eyesopen.com>
2291
2292         * simplify-rtx.c (simplify_binary_operation): Constant fold
2293         DIV, MOD, UDIV and UMOD using div_and_round_double.
2294
2295 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
2296
2297         PR c++/14804
2298         * varasm.c (initializer_constant_valid_p): Allow NOP_EXPRs to
2299         RECORD_TYPEs.
2300
2301 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
2302
2303         * doc/invoke.texi (-mabi=o64): Create link to O64 ABI
2304         documentation.
2305
2306 2004-04-04  Roger Sayle  <roger@eyesopen.com>
2307
2308         * cse.c (cse_insn): Correct usage of simplify_replace_rtx when
2309         updating the REG_EQUAL note on an insn's libcall_insn.
2310
2311 2004-04-04  Roger Sayle  <roger@eyesopen.com>
2312
2313         * df.h: Tidy up whitespace in the definitions of the DF_ flags.
2314
2315 2004-04-03  Roger Sayle  <roger@eyesopen.com>
2316
2317         * fold-const.c (fold) <PLUS_EXPR>: Guard (-A)+B -> B-A transformation
2318         with reorder_operands_p.
2319
2320 2004-04-03  Jan Hubicka  <jh@suse.cz>
2321
2322         * md.texi (vec_set, vec_extract, vec_init): Document.
2323
2324 2004-04-02  Gabor Loki <loki@inf.u-szeged.hu>
2325
2326        * opts.c (decode_options): Do function inlining with very small
2327        max-inline-insns-* parameters when optimizing for size.
2328
2329 2004-04-02  Vladimir Makarov  <vmakarov@redhat.com>
2330
2331         * config/i386/i386.h (TARGET_NOCONA): New macro.
2332         (TARGET_CPU_CPP_BUILTINS): Add code for Nocona.
2333         (processor_type): Add PROCESSOR_NOCONA.
2334
2335         * config/i386/i386.md (cpu): Add nocona to the attribute values.
2336
2337         * config/i386/i386.c (nocona_cost): New variable.
2338         (m_NOCONA): New macro.
2339         (x86_push_memory, x86_movx, x86_cmove, x86_deep_branch,
2340         x86_branch_hints, x86_use_sahf, x86_single_stringop,
2341         x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8,
2342         x86_integer_DFmode_moves, x86_partial_reg_dependency,
2343         x86_memory_mismatch_stall, x86_accumulate_outgoing_args,
2344         x86_decompose_lea, x86_arch_always_fancy_math_387,
2345         x86_sse_partial_reg_dependency, x86_sse_load0_by_pxor,
2346         x86_ext_80387_constants, x86_four_jump_limit):
2347         (override_options): Add nocona_cost to processor_target_table.
2348         Set up PROCESSOR_NOCONA for Nocona entry in processor_alias_table.
2349         (incdec_operand): Prevent inc/dec generation for Nocona too.
2350         (ix86_issue_rate): Add PROCESSOR_NOCONA.
2351
2352 2004-04-01  Andrew Pinski  <pinskia@physics.uc.edu>
2353
2354         * rtlanal.c (find_reg_note): Manually
2355         unswitch the loop.
2356
2357 2004-04-01  Mark Mitchell  <mark@codesourcery.com>
2358
2359         * genemit.c (gen_split): Change prototype of generated code.
2360         * genrecog.c (write_action): Adjust prototype for and calls to
2361         gen_split_*.
2362         * gensupport.c (struct queue_elem): Add split field.
2363         (queue_pattern): Return a value.  Clear the split field.
2364         (process_rtx): Maintain an association between an insn and the
2365         split generated from it for a define_insn_and_split.
2366         (process_one_cond_exec): Generate a new split for a
2367         define_insn_and_split.
2368         * config/arm/arm-protos.h (arm_split_constant): Add insn
2369         parameter.
2370         (emit_constant_insn): New function.
2371         (arm_gen_constant): Use it.
2372         * config/arm/arm.md: Adjust calls to arm_split_constant.
2373
2374 2004-04-02  Jan Hubicka  <jh@suse.cz>
2375
2376         * cgraph.c: Add overall comment.
2377         (cgraph_inline_hash): New global variable.
2378         (cgraph_create_node): Break out from ...
2379         (cgraph_node): ... here.
2380         (cgraph_edge): New function.
2381         (cgraph_create_edge): New CALL_EXPR argument; some sanity checking.
2382         (cgraph_remove_edge): Accept edge, intead of source and destination.
2383         (cgraph_redirect_edge_callee): New.
2384         (cgraph_remove_node): Update all new datastructures.
2385         (cgraph_record_call, cgraph_remove_call): Kill.
2386         (dump_cgraph_node): Break out from ... ; dump new datastructures.
2387         (dump_cgraph): ... here.
2388         (cgraph_function_possibly_inlined_p): Use new hashtable.
2389         (cgraph_clone_edge, cgraph_clone_node): New.
2390         * cgraph.h: Include hashtab.h
2391         (struct cgraph_global_info): Kill cloned_times, inline_once, will_be_output
2392         fields, add inlined_to pointer.
2393         (cgraph_node): Add pointer to next_clone.
2394         (cgraph_remove_edge, cgraph_create_edge): Update prototype.
2395         (cgraph_remove_call, cgraph_record_call): Kill.
2396         (cgraph_inline_hash): Declare.
2397         (dump_cgraph_node, cgraph_edge, cg4raph_clone_edge, cgraph_clone_node,
2398         cgraph_redirect_edge_callee): Declare.
2399         (cgraph_create_edges, cgraph_inline_p): Update prorotype.
2400         (cgraph_preserve_function_body_p, verify_cgraph, verify_cgraph_node,
2401         cgraph_mark_inline_edge, cgraph_clone_inlined_nodes): Declare.
2402         * cgraphunit.c: Add overall comment.
2403         (cgraph_optimize_function): Kill.
2404         (cgraph_assemble_pending_functions): Do not assemble inline clones.
2405         (cgraph_finalize_function): Update call of cgraph_remove_node
2406         (record_call_1): Record call sites.
2407         (cgraph_create_edges): Accept node instead of decl argument.
2408         (error_found): New static variable.
2409         (verify_cgraph_node_1, verify_cgraph_node, verify_cgraph): New functions.
2410         (cgraph_analyze_function): Update for new datastructures.
2411         (cgraph_finalize_compilation_unit): Plug memory leak.
2412         (cgraph_optimize_function): Kill.
2413         (cgraph_expand_function): Do not use cgraph_optimize_function.
2414         (INLINED_TIMES, SET_INLINED_TIMES, cgraph_inlined_into,
2415         cgraph_inlined_callees): Kill.
2416         (cgraph_remove_unreachable_nodes): Verify cgraph; update handling of
2417         clones.
2418         (estimate_growth): Simplify.
2419         (cgraph_clone_inlined_nodes): New function.
2420         (cgraph_mark_inline_edge): Re-implement.
2421         (cgraph_mark_inline): Likewise.
2422         (cgraph_check_inline_limits): Simplify.
2423         (cgraph_recursive_inlining_p): New.
2424         (update_callee_keys): Break out from ...
2425         (cgraph_decide_inlining_of_small_functions): ... here; simplify.
2426         (cgraph_decide_inlining, cgraph_decide_inlining_incrementally):
2427         Likewise.
2428         (cgraph_expand_all_functions):  Remove inline clones from the ordered
2429         list.
2430         (cgraph_preserve_function_body_p): New predicate.
2431         (cgraph_optimize): Verify cgraph.
2432         * function.h (struct function): Add fields saved_tree/saved_args.
2433         * timevar.def (TV_CGRAPH_VERIFY): Use verifier.
2434         * toplev.c (rest_of_compilation): Do not free cfun.
2435         * tree-inline.c: Include function.h
2436         (struct inline_data): Add saving_p field; replace decl/current_decl by
2437         node/current_node.
2438         (insert_decl_map): New function.
2439         (copy_body_r): Handle saving; update cgraph datastructure.
2440         (copy_body): Handle recursive inlining.
2441         (initialize_inlined_parameters): Likewise.
2442         (expand_call_inline): Propagate node attributes; update cgraph.
2443         (optimize_inline_calls): Verify that datastructure still match.
2444         (save_body): New function.
2445         * tree-inline.h (save_body): New.
2446         * tree-optimize.c (tree_rest_of_compilation): preserve function body; do inlining.
2447         * langhooks-def.c (LANG_HOOKS_UPDATE_DECL_AFTER_SAVING): New.
2448         * langhooks.c (lang_hooks): Add update_decl_after_saving.
2449
2450 2004-04-01  Serge Belyshev  <1319@bot.ru>
2451
2452         PR target/14702
2453         * config/i386/i386.md: fix source operand constraints in
2454         mmx_pshufw, sse2_pshufd, sse2_pshuflw, sse2_pshufhw
2455
2456 2004-04-01  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
2457
2458         * fold-const.c (folda): Preserve types of comparisons.
2459
2460 2004-04-01  Richard Henderson  <rth@redhat.com>
2461
2462         * toplev.c (backend_init): Move init_optimization_passes call ...
2463         (lang_dependent_init): ... here.
2464
2465 2004-04-01  Alan Modra  <amodra@bigpond.net.au>
2466             Jakub Jelinek  <jakub@redhat.com>
2467
2468         * gcc.c (init_gcc_specs): If HAVE_LD_AS_NEEDED, link with
2469         -lgcc --as-needed -lgcc_s --no-as-needed by default.
2470         * configure.ac (HAVE_LD_AS_NEEDED): Check for ld --as-needed.
2471         * configure: Rebuilt.
2472         * config.in: Rebuilt.
2473         * Makefile.in (stage1-start): Copy also libgcc_s*$(SHLIB_EXT).
2474         (stage2-start, stage3-start, stage4-start): Likewise.
2475         (stageprofile-start, stagefeedback-start): Likewise.
2476
2477 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
2478
2479         * config/sparc/sparc.h (DITF_CONVERSION_LIBFUNCS): Define to 0.
2480         * config/sparc/linux.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
2481         * config/sparc/linux64.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
2482         * config/sparc/sol2.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
2483         (SOLARIS_CONVERSION_LIBFUNCS): Rename to SUN_CONVERSION_LIBFUNCS.
2484         * config/sparc/sparc.c (sparc_init_libfuncs): Initialize optabs
2485         with _Q_qtoll, _Q_qtoull and _Q_lltoq if DITF_CONVERSION_LIBFUNCS.
2486         * config.gcc (sparc-*-linux*): Revert 2004-03-23 change.
2487         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Likewise.
2488         * config/sparc/t-linux: Removed.
2489
2490 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
2491
2492         PR c++/14755
2493         * fold-const.c (fold) <EQ_EXPR>: Properly compute newconst in
2494         "bitfld++ == const" to "++bitfld == const + incr" transformations.
2495
2496 2004-04-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2497
2498         * expr.c (get_inner_reference): Use DECL_UNSIGNED, not TREE_UNSIGNED.
2499         * stor-layout.c (layout_decl): Likewise.
2500         * tree.c (get_narrower): Likewise and also use BIT_FIELD_REF_UNSIGNED.
2501         * fold-const.c (make_bit_field_ref): Use BIT_FIELD_REF_UNSIGNED.
2502         * print-tree.c (print_node): Handle various used of unsigned_flag.
2503         * tree.def (BIT_FIELD_REF): Update comment.
2504         * tree.h (TREE_UNSIGNED): Deleted.
2505         (DECL_UNSIGNED, BIT_FIELD_REF_UNSIGNED): New macros.
2506
2507 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2508
2509         * builtins.c, c-aux-info.c, c-common.c, c-cppbuiltin.c, c-decl.c:
2510         Change most occurrences of TREE_UNSIGNED to TYPE_UNSIGNED.
2511         * c-format.c, c-opts.c, c-pretty-print.c, c-typeck.c: Likewise.
2512         * calls.c, convert.c, dbxout.c, dojump.c, dwarf2out.c: Likewise.
2513         * expmed.c, expr.c, fold-const.c, function.c, integrate.c: Likewise.
2514         * optabs.c, sdbout.c, stmt.c, stor-layout.c, tree-dump.c: Likewise.
2515         * tree.c, config/iq2000/iq2000.c, config/m32r/m32r.c: Likewise.
2516         * config/mips/mips.c, config/rs6000/rs6000.c: Likewise.
2517         * config/s390/s390.c, config/sparc/sparc.c, objc/objc-act.c: Likewise.
2518         * stor-layout.c (layout_type, case COMPLEX_TYPE): Test for
2519         REAL_TYPE, not INTEGER_TYPE.
2520         (layout_type, case VECTOR_TYPE): Simplify code.
2521         * tree.c (build_vector_type_for_mode): Remove dup unsigned setting.
2522         * tree.h: Update comments.
2523         (STRIP_NOPS): Use TYPE_UNSIGNED.
2524         (TYPE_UNSIGNED): New macro.
2525         (TYPE_TRAP_SIGNED): Remove now redundant check.
2526         (SAVE_EXPR_NOPLACEHOLDER): Don't use TREE_UNSIGNED.
2527
2528 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2529
2530         * function.c (put_var_into_stack): Properly set orig_reg for indirect.
2531
2532 2004-03-31  Andrew Pinski  <pinskia@physics.uc.edu>
2533
2534         * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA):
2535         Add darwin-fpsave.asm, darwin-vecsave.asm,
2536         and darwin-world.asm.
2537         (TARGET_LIBGCC2_CFLAGS): Add -Wa,-force_cpusubtype_ALL
2538         as the asm files contain altivec instructions.
2539         * config/rs6000/darwin-fpsave.asm: New file.
2540         * config/rs6000/darwin-vecsave.asm: New file.
2541         * config/rs6000/darwin-world.asm: New file.
2542
2543 2004-03-31  Zack Weinberg  <zack@codesourcery.com>
2544
2545         * gengtype-yacc.y (option, stringseq): Add missing
2546         terminating semicolon.
2547
2548 2004-03-30  David Edelsohn  <edelsohn@gnu.org>
2549
2550         * config/rs6000/rs6000.md (tls_gd_32, tls_gd_64,
2551         tls_ld_32, tls_ld_64, tls_dtprel_32, tls_dtprel_64,
2552         tls_dtprel_ha_32, tls_dtprel_ha_64,
2553         tls_dtprel_lo_32, tls_dtprel_lo_64,
2554         tls_got_dtprel_64, tls_tprel_32, tls_tprel_64,
2555         tls_tprel_ha_32, tls_tprel_ha_64,
2556         tls_tprel_lo_32, tls_tprel_lo_64,
2557         tls_got_tprel_32, tls_got_tprel_64,
2558         tls_tls_32, tls_tls_64): Replace register_operand with
2559         gpc_reg_operand.
2560
2561 2004-03-30  Mostafa Hagog  <mustafa@il.ibm.com>
2562
2563         * config/rs6000/rs6000.md (*ctrsi_internal1, *ctrsi_internal2,
2564         *ctrdi_internal1, *ctrdi_internal2, *ctrsi_internal3,
2565         *ctrsi_internal4, *ctrdi_internal3, *ctrdi_internal4,
2566         *ctrsi_internal5, *ctrsi_internal6, *ctrdi_internal5,
2567         *ctrdi_internal6): Replace register_operand with
2568         nonimmediate_operand.
2569
2570 2004-03-29  Fariborz Jahanian <fjahanian@apple.com>
2571
2572         * fold-const.c (fold): Reassociate multiply expression
2573         with an adjacent non-multiply expression to use
2574         architecture's multiply-add instruction.
2575
2576 2004-03-30  Zack Weinberg  <zack@codesourcery.com>
2577
2578         * gengtype.c (create_option): New function.
2579         * gengtype.h: Prototype it.
2580         * gengtype-yacc.y (stringseq): New rule.
2581         (option): Use create_option.  Add new bare ID production.  Use
2582         stringseq, not STRING directly.
2583
2584         * alias.c, bitmap.c, c-decl.c, cgraph.h, cpplib.h, cselib.h
2585         * dwarf2out.c, emit-rtl.c, function.h, lists.c, tree.h
2586         * varray.h, config/alpha/alpha.c:
2587         Use new shorter form of GTY markers.
2588
2589         * doc/gty.texi: Rewrite.
2590
2591 2004-03-30  Andrew Pinski  <pinskia@physics.uc.edu>
2592
2593         * config/darwin.c (machopic_function_base_name):
2594         Remove current_name and getting the name of the
2595         current function.
2596
2597 2004-03-30  Nick Clifton  <nickc@redhat.com>
2598
2599         * config/arm/arm.md (thumb_jump): Reduce the backward branch
2600         range, and increase the forward branch range, to allow for
2601         the fact that the PC will be off by 4.
2602
2603 2004-03-30  Alan Modra  <amodra@bigpond.net.au>
2604
2605         * .cvsignore: Add GPATH, GRTAGS, GSYMS and GTAGS (GNU GLOBAL)
2606
2607 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
2608
2609         * config/rs6000/rs6000.c (output_vec_const_move):
2610         Find all cases of EASY_VECTOR_15_ADD_SELF.
2611         (easy_vector_constant_add_self): Accept
2612         all vector constant loadable by vsplt* and vadd*.
2613         (easy_vector_same): Use easy_vector_splat_const.
2614         (easy_vector_const): Use easy_vector_splat_const.
2615         (easy_vector_splat_const): New function.
2616         (gen_easy_vector_constant_add_self): New function.
2617
2618         * config/rs6000/rs6000-protos.c (gen_easy_vector_constant_add_self):
2619         New prototype.
2620
2621         * config/rs6000/altivec.md (movv4si splitter): Change to
2622         emit move insn with halfed vector constant.
2623         (*movv8hi splitter): Likewise.
2624         (*movv16qi splitter): Likewise.
2625
2626 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
2627
2628         PR 11591
2629         * config/rs6000/rs6000.c (rs6000_legitimate_address):
2630         Allow any offset to argument pointer in no-strict case.
2631
2632 2004-03-30  Jan Hubicka  <jh@suse.cz>
2633
2634         * toplev.c (backend_init): Add missing call to inint_optimization_passes.
2635         * passes.c (init_optimization_passes, finish_optimization_passes): Output cgraph
2636         dump file in non-unit-at-a-time mode.
2637
2638 2004-03-29  Hans-Peter Nilsson  <hp@axis.com>
2639
2640         * config/cris/cris.h: Correct #ifdef to test for
2641         HAVE_AS_NO_MUL_BUG_ABORT_OPTION, not
2642         HAVE_AS_MUL_BUG_ABORT_OPTION.
2643
2644 2004-03-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2645
2646         * function.c (put_var_into_stack): If old RTL was ADDRESSOF, update
2647         the address inside the old RTL.
2648
2649 2004-03-28  Zack Weinberg  <zack@codesourcery.com>
2650
2651         * c-decl.c: Verify that C_SIZEOF_STRUCT_LANG_IDENTIFIER is correct.
2652         (struct c_binding, struct c_scope): Add chain_next
2653         attributes to GTY markers.
2654         (struct lang_identifier, struct lang_tree_node): Define
2655         here...
2656         * c-tree.h: ... not here.  No longer need to declare struct
2657         c_binding either.  Do define C_SIZEOF_STRUCT_LANG_IDENTIFIER.
2658         * c-lang.c, objc/objc-lang.c: Set LANG_HOOKS_IDENTIFIER_SIZE
2659         to C_SIZEOF_STRUCT_LANG_IDENTIFIER.
2660
2661         PR 14734, 11944
2662         * c-decl.c (get_parm_info): If error_mark_node is encountered
2663         in the bindings chain, unbind and discard it; don't abort.
2664
2665 2004-03-28  Olga Golovonevsky <olga@il.ibm.com>
2666             Dorit Naishlos <dorit@il.ibm.com>
2667
2668         * config/rs6000/altivec.md: (andvv16qi3, andv8hi3, one_cmplv16qi2,
2669         one_cmplv8hi2, one_cmplv4si2, iorv16qi3, iorv8hi3,): New modelling.
2670
2671 2004-03-28  Stephane Carrez  <stcarrez@nerim.fr>
2672
2673         * config/m68hc11/m68hc11-protos.h (m68hc11_page0_symbol_p): Declare.
2674
2675         * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute): New.
2676         (m68hc11_attribute_table): New attribute "page0" to mark a global
2677         variable as being allocated from within page0 section.
2678         (m68hc11_encode_label): New function.
2679         (m68hc11_strip_name_encoding): New function.
2680         (m68hc11_page0_symbol_p): New function.
2681         (m68hc11_indirect_p): Accept global variables marked in page0.
2682         (m68hc11_encode_section_info): Lookup "page0" attribute.
2683
2684         * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): 'R' constraint also
2685         represents access to page0 variables.
2686
2687         * config/m68hc11/m68hc11.md ("*logicalsi3_zexthi"): Use gen_rtx_REG.
2688         ("*logicalsi3_silshl16_zext"): Likewise.
2689         ("*ashldi3_const32"): Likewise.
2690         (peephole2 ashift): Likewise.
2691
2692 2004-03-28  Joseph S. Myers  <jsm@polyomino.org.uk>
2693
2694         * c-tree.h (C_DECL_REGISTER): New.
2695         * c-aux-info.c (gen_decl), c-decl.c (objc_mark_locals_volatile,
2696         finish_decl, grokdeclarator, get_parm_info), c-typeck.c
2697         (build_array_ref, c_mark_addressable): Set and use it.
2698         * c-decl.c (grokdeclarator), c-typeck.c (c_mark_addressable):
2699         Allow structures with volatile fields to be declared register.
2700         Don't check TREE_ADDRESSABLE before warning about taking address
2701         of register.
2702         * c-decl.c (finish_decl): Don't allow structures with volatile
2703         fields to be placed in named register.
2704         * doc/trouble.texi: Remove reference to structures with volatile
2705         fields in registers.
2706
2707 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
2708
2709         * function.c (thread_prologue_and_epilogue): Move
2710         NOTE_INSN_FUNCTION_END and NOTE_INSN_FUNCTION_BEG notes
2711         before the epilogue.
2712
2713 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
2714
2715         * expr.c (store_constructor): Use gen_int_mode to correctly
2716         sign-extend CONST_INT value.
2717
2718 2004-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2719
2720         * builtin-types.def (BT_WINT, BT_FN_INT_WINT, BT_FN_WINT_WINT): New.
2721         * builtins.def (DEF_C94_BUILTIN): New.  Add wctype builtins.
2722         * doc/extend.texi: Likewise.
2723
2724 2004-03-26  Diego Novillo  <dnovillo@redhat.com>
2725
2726         * c-typeck.c (comptypes): Replace calls to TYPE_DOMAIN
2727           with TYPE_ORIG_SIZE_TYPE.
2728
2729 2004-03-25  Aldy Hernandez  <aldyh@redhat.com>
2730
2731         PR 14219
2732         * c-typeck.c (build_binary_op): Do not allow comparisons of
2733         vectors.
2734
2735 2004-03-26  James A. Morrison  <ja2morri@uwaterloo.ca>
2736
2737         * config.gcc: Remove sparc-tti-*.
2738         * config/sparc/pbd.h: Delete.
2739
2740         * config/sparc/sol2.h: Remove note about Sun OS 4.x.
2741         * config/sparc/aout.h: Likewise.
2742
2743         * config/sparc/sparc.h: Remove if 0'd code.
2744         * config/sparc/sparc.md (call): Remove if 0'd code.
2745         (call_value): Likewise.
2746         (nonlocal_goto): Likewise.
2747         (unimp_insn): Delete.
2748
2749 2004-03-25  Roger Sayle  <roger@eyesopen.com>
2750
2751         * fold-const.c (tree_expr_nonnegative_p): Handle BIT_XOR_EXPR like
2752         BIT_IOR_EXPR; A^B is nonnegative when A and B are nonnegative.
2753
2754 2004-03-25  Richard Henderson  <rth@redhat.com>
2755
2756         PR 11527
2757         * c-typeck.c (pop_init_level): Emit pending init elements earlier
2758         rather than later.
2759
2760 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2761
2762         * builtins.c (fold_builtin): Fix error in last change.
2763
2764 2004-03-25  Richard Sandiford  <rsandifo@redhat.com>
2765
2766         * config/mips/mips.h: Formatting fix.
2767
2768 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2769
2770         * builtins.def: Add ctype builtins.
2771         * doc/extend.texi: Likewise.
2772
2773 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2774
2775         * builtins.c (fold_builtin): Add new builtin optimizations for
2776         sqrt and/or cbrt.
2777         * fold-const.c (fold): Likewise.
2778
2779 2004-03-25  David Edelsohn  <edelsohn@gnu.org>
2780
2781         * config/rs6000/rs6000.c (rs6000_always_hint): New variable.
2782         (rs6000_sched_groups): New variable.
2783         (processor_target_table): Add power5.
2784         (rs6000_override_options): Set rs6000_sched_insert_nops,
2785         rs6000_sched_costly_dep and rs6000_sched_restricted_insns_priority
2786         from rs6000_sched_groups.
2787         (output_cbranch): Use rs6000_always_hint.
2788         (rs6000_variable_issue): Use rs6000_sched_groups.
2789         (rs6000_adjust_cost): Add CPU_POWER5.
2790         (is_microcoded_insn): Use rs6000_sched_groups.
2791         (is_dispatch_slot_restricted): Use rs6000_sched_groups.
2792         Return 2 for POWER5 cracked instructions.
2793         (is_cracked_insn): Use rs6000_sched_groups.
2794         (is_branch_slot_insn): Use rs6000_sched_groups.
2795         (rs6000_issue_rate): Add CPU_POWER5.
2796         (rs6000_sched_finish): Use rs6000_sched_groups.
2797         (rs6000_rtx_costs): Add PROCESSOR_POWER5.
2798         * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER5.
2799         (DEFAULT_SCHED_COSTLY_DEP): Delete.
2800         (DEFAULT_RESTRICTED_INSNS_PRIORITY): Delete.
2801         (DEFAULT_SCHED_FINISH_NOP_INSERTION_SCHEME): Delete.
2802         * config/rs6000/rs6000.md (define_attr "cpu"): Add power5.
2803         * config/rs6000/power5.md: New file.
2804         * doc/invoke.texi: Add power5 option.
2805
2806 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
2807
2808         * cfgrtl.c, dbxout.c, tree.def, config/darwin.h,
2809         config/arm/arm.c, objc/objc-act.c: Fix comment typos.
2810         * doc/invoke.texi: Fix a typo.
2811
2812 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
2813
2814         PR optimization/9707.
2815         * stmt.c (emit_case_nodes): Emit equality comparisons instead
2816         of recursing if both children are single-valued cases with no
2817         children.
2818
2819 2004-03-25  Paul Brook  <paul@codesourcery.com>
2820
2821         * config/arm/arm.c (vfp_print_multi): Remove.
2822         (arm_output_fldmx): New function.
2823         (vfp_emit_fstmx): Return block size, not insn. Add ARM10 VFPr1 bugfix.
2824         (arm_expand_prologue): Update to match.
2825         (arm_get_vfp_saved_size): New Function.
2826         (arm_get_frame_offsets): Use it.
2827         (arm_output_epilogue): Use new functions.
2828
2829 2004-03-24  Richard Henderson  <rth@redhat.com>
2830
2831         * alias.c (alias_invariant, alias_invariant_size): Mark GTY.
2832         (reg_known_value, reg_known_value_size): Likewise; make static.
2833         (reg_known_equiv_p): Make static.
2834         (clear_reg_alias_info): Update for new indexing.
2835         (get_reg_known_value, set_reg_known_value): New.
2836         (get_reg_known_equiv_p, set_reg_known_equiv_p): New.
2837         (canon_rtx): Use them.
2838         (init_alias_analysis): Likewise.  Allocate reg_known_value with gc.
2839         Don't play queer offsetting games with reg_known_value and
2840         reg_known_equiv_p.
2841         (end_alias_analysis): Free reg_known_value with gc.
2842         * rtl.h (get_reg_known_value, get_reg_known_equiv_p): Declare.
2843         * sched-deps.c (reg_known_equiv_p, reg_known_value): Remove.
2844         (deps_may_trap_p, sched_analyze_1, sched_analyze_2): Use the new
2845         functions instead.
2846
2847 2004-03-24  Kazu Hirata  <kazu@cs.umass.edu>
2848
2849         * dwarf2asm.c, loop.h, pretty-print.c, pretty-print.h,
2850         config/i386/mmintrin.h: Update copyright.
2851
2852 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
2853
2854         * configure.ac: Add --enable-werror-always (for top level bootstrap
2855         support).
2856         * configure: Regenerate.
2857
2858 2004-03-24  Ziemowit Laski  <zlaski@apple.com>
2859
2860         * objc/objc-act.c (objc_comptypes): Treat comparisons
2861         between 'Class' and '<class> *' as explicitly invalid.
2862
2863 2004-03-24  David Edelsohn  <edelsohn@gnu.org>
2864
2865         * doc/invoke.texi (-frename-registers: Add enabled at -O3.
2866         (-fprofile-values): Add enabled with profile-{generate,use}.
2867         (-fvpt): Same.
2868         (-ftracer): Add enabled with profile-use.
2869         (-funit-at-a-time): Add enabled at -O2,-O3.
2870         (-funroll-loops): Add enabled with profile-use.
2871         (-funswitch-loops): Add enabled with profile-use.  Remove duplicates.
2872         (max-gcse-passes): Mention default.
2873         (max-cse-path-length): Mention default.
2874
2875 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
2876
2877         * Makefile.in (STRICT2_WARN): Reorder.
2878         * configure.ac: Check for -Wold-style-definition, and use it
2879         in strict1_warn if it's available.
2880         * configure: Regnerate.
2881
2882 2004-03-24  Paul Brook  <paul@nowt.org>
2883
2884         * config.gcc <arm>: Add --with-abi=
2885         * config/arm/arm-protos.h (arm_get_frame_size, thumb_get_frame_size,
2886         thumb_far_jump_used): Remove prototypes.
2887         (arm_needs_doubleword_align): Add prototype.
2888         (thumb_compute_initial_elimination_offset): Ditto.
2889         * config/arm/arm.c (arm_get_frame_offsets): New function.
2890         (use_return_insn, output_return_instruction, arm_output_epilogue,
2891         arm_output_function_epilogue, arm_compute_initial_elimination_offset,
2892         arm_expand_prologue, thumb_expand_epilogue): Use it.
2893         (arm_abi, target_abi_name, all_arm_abis): New variables.
2894         (arm_override_options): Set them.  Set structure padding for AAPCS.
2895         (arm_return_in_memory): Update ABI check.
2896         (arm_init_cumulative_args): Initialize can_split.
2897         (arm_needs_doubleword_align): New function.
2898         (arm_function_arg): Don't split args after pushing to stack. Handle
2899         doubleword/even reg alignment.
2900         (arm_va_arg): Handle all doubleword aligned args.
2901         (add_minpoolforward ref, dump_minpool, push_minpool_fix): Align based
2902         on ABI, not CPU.
2903         (arm_compute_save_reg0_reg12_mask): Fix comment.
2904         (thumb_get_frame_size, thumb_get_frame_size): Remove.
2905         (thumb_jump_far_used_p): Remove superfluous argument.  Return save
2906         value for alignment.
2907         (thumb_unexpanded_epilogue, thumb_output_function_prologue): Change
2908         to match.
2909         (thumb_compute_initial_elimination_offset): New function.
2910         (thumb_expand_prologue): Use arm_get_frame_offsets.  Remove
2911         unneccessary rounding.
2912         * config/arm/arm.h (target_abi_name): Declare.
2913         (ARM_DOUBLEWORD_ALIGN, DOUBLEWORD_ALIGNMENT, TARGET_IWMMXT_ABI,
2914         arm_abi_type, ARM_DEFAULT_ABI): Define.
2915         (ARM_FLAG_ATPCS): Remove.
2916         (TARGET_OPTIONS, OPTION_DEFAULT_SPECS): Add -mabi=.
2917         (BIGGEST_ALIGNMENT, PREFERRED_STACK_BOUNDARY, STACK_BOUNDARY): Use it.
2918         (ADJUST_FIELD_ALIGN, DATA_ALIGNMENT, LOCAL_ALIGNMENT,
2919         TYPE_NEEDS_IWMMXT_ALIGNMENT): Remove.
2920         (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P, FUNCTION_ARG_REGNO_P):
2921         Contitionalize on ABI, not CPU.
2922         (struct arm_stack_offsets): Define.
2923         (struct machine_function): Add stack_offsets.  Remove frame_size.
2924         (FUNCTION_ARG_PARTIAL_NREGS): Don't split if previous args have been
2925         pushed.
2926         (FUNCTION_ARG_ADVANCE, FUNCTION_ARG_BOUNDARY): Handle general
2927         doubleword alignment.
2928         (THUMB_INITIAL_ELIMINATION_OFFSET,
2929         ARM_INITIAL_ELIMINATION_OFFSET): Remove.
2930         (INITIAL_ELIMINATION_OFFSET): Call functions directly.
2931         * config/arm/arm.md (align_8): Enable for all targets.
2932         * config/arm/netbsd-elf.h (TARGET_DEFAULT): Remove TARGET_ATPCS.
2933         (ARM_DEFAULT_ABI): Define.
2934         * doc/invoke.texi <ARM>: Document -mabi=. Update documentation for
2935         -mstructure-size-boundary.
2936
2937 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
2938
2939         * configure.ac: Check for -Wno-variadic-macros; don't use
2940         -pedantic (in stage 1 or a simple 'make all') unless it's available,
2941         and if it's available, use it.  Also, clean up check for
2942         -Wno-long-long.
2943         * configure: Regenerate.
2944
2945 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
2946
2947         * config.gcc (mips64vr-*-elf*, mips64vrel-*-elf*): Remove tm_defines.
2948         * config/mips/vr.h (DEFAULT_VR_ARCH): New macro, defined to vr4130.
2949         (MULTILIB_DEFAULTS): Use it.
2950         (MIPS_CPU_STRING_DEFAULT): Remove.
2951         (MIPS_ABI_DEFAULT, MIPS_MARCH_CONTROLS_SOFT_FLOAT): Define.
2952         (DRIVER_SELF_SPECS): Make -mfix-vr4122-bugs imply -march=vr4120.  Make
2953         EABI64 -mlong32 the default ABI.  Enforce the default architecture.
2954         * config/mips/t-vr (MULTILIB_OPTIONS): Add mfix-vr4122-bugs,
2955         march=vr4130, march=vr4300, march=vr5000 and march=vr5500.
2956         (MULTILIB_MATCHES): Use -mfix-vr4122-bugs multilibs for -march=vr4120.
2957         (MULTILIB_EXCEPTIONS): Change choice of multilibs.  Update comments
2958         accordingly.
2959
2960 2004-03-24  DJ Delorie  <dj@redhat.com>
2961             Richard Sandiford  <rsandifo@redhat.com>
2962
2963         * config/mips/mips.h (MASK_FIX_VR4122, TARGET_FIX_VR4122): New macros.
2964         (TARGET_SWITCHES): Add -mfix-vr4122-bugs and -mno-fix-vr4122-bugs.
2965         (ASM_SPEC): Pass down -mfix-vr4122-bugs.
2966         * config/mips/mips.c (mips_avoid_hazards): Don't emit whole functions
2967         in .set noreorder and .set nomacro if TARGET_FIX_VR4122.
2968         (mips_init_libfuncs): Use special functions for divsi3 and modsi3
2969         if TARGET_FIX_VR4122.
2970         * config/mips/mips.md (define_attr length): Account for nops inserted
2971         after macc and dmult when using -mfix-vr4122-bugs.
2972         (umuldi3_highpart, divmodsi4, divmoddi4): Disable if TARGET_FIX_VR4122.
2973         * config/mips/t-vr (LIB2FUNCS_STATIC_EXTRA): Define instead of
2974         LIB2FUNCS_EXTRA.  Add config/mips/vr4122-div.S.
2975         * config/mips/vr4122-div.S: New file.
2976         * doc/invoke.texi: Document -mfix-vr4122-bugs.
2977
2978 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
2979
2980         * config/mips/mips.h (PROCESSOR_R4130): New processor_type.
2981         (TARGET_MIPS4130): New macro.
2982         (ISA_HAS_MACC): Return true if TARGET_MIPS4130 && !TARGET_MIPS16.
2983         * config/mips/mips.c (mips_cpu_info_table): Add a vr4130 entry.
2984         (override_options): Extend MIPS_MARCH_CONTROLS_SOFT_FLOAT to deal
2985         with PROCESSOR_R4130.
2986         * config/mips/mips.md (define_attr cpu): Add r4130.
2987         * doc/invoke.texi: Document vr4130 as a supported MIPS architecture.
2988
2989 2004-03-24  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
2990             Richard Sandiford  <rsandifo@redhat.com>
2991
2992         * doc/invoke.texi: Apply missed hunk from 2004-03-03 change.
2993
2994 2004-03-24  Alexandre Oliva  <aoliva@redhat.com>
2995
2996         PR preprocessor/14438
2997         * cpplib.c (do_pragma): Remove line_change call after pragma
2998         handler.
2999
3000 2004-03-23  Ian Lance Taylor  <ian@wasabisystems.com>
3001
3002         * doc/extend.texi (ARM Built-in Functions): Replace with correct
3003         declarations.
3004
3005 2004-03-23  Roger Sayle  <roger@eyesopen.com>
3006
3007         * reg-stack.c (get_true_reg): Handle FLOAT_TRUNCATE like FLOAT_EXTEND
3008         if flag_unsafe_math_optimizations.
3009         * config/i386/i386.md (truncdfsf2): If flag_unsafe_math_optimizations
3010         and TARGET_80387 expand using truncdfsf2_noop pattern.
3011         (truncxfsf2): Likewise using truncxfsf2_noop.
3012         (truncxfdf2): Likewise using truncxfdf2_noop.
3013         (truncdfsf2_noop, truncxfsf2_noop, truncxfdf2_noop): New patterns.
3014
3015 2004-03-23  Ziemowit Laski  <zlaski@apple.com>
3016
3017         * hooks.c (hook_constcharptr_tree_null): New hook.
3018         * hooks.h (hook_constcharptr_tree_null): New prototype.
3019         * target-def.h (TARGET_MANGLE_FUNDAMENTAL_TYPE): New target hook.
3020         * target.h (mangle_fundamental_type): New target hook.
3021         * config/rs6000/rs6000.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Point
3022         target hook at rs6000_mangle_fundamental_type.
3023         (rs6000_mangle_fundamental_type): New function.
3024         * doc/tm.texi (TARGET_MANGLE_FUNDAMENTAL_TYPE): Document.
3025
3026 2004-03-23  Zack Weinberg  <zack@codesourcery.com>
3027
3028         PR 12267, 12391, 12560, 13129, 14114, 14133
3029         * c-tree.h: Forward declare struct c_binding.  Declare
3030         c_override_bindings_to_false.  Update prototypes.
3031         (struct lang_identifier): Update comments.  Change fields to be
3032         struct c_binding *.
3033         (IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE)
3034         (IDENTIFIER_LABEL_VALUE, C_DECL_INVISIBLE)
3035         (KEEP_NO, KEEP_YES, KEEP_MAYBE): Delete.
3036         (C_DECL_IN_EXTERNAL_SCOPE, C_DECL_DECLARED_BUILTIN): New.
3037         * c-common.h: Update prototypes.
3038         * c-decl.c (struct c_scope): Update commentary.  Remove names,
3039         names_last, parms, parms_last, tags, and shadowed fields.  Add
3040         bindings and depth fields.
3041         (scope_freelist): Move to more appropriate location.
3042         (c_print_identifier): Update for changes to struct lang_identifier.
3043         (objc_mark_locals_volatile): Update for new bindings structures.
3044         (global_bindings_p): Honor c_override_global_bindings_to_false.
3045         (pushlevel): Rename to push_scope; take no arguments; use the
3046         scope_freelist; initialize scope->depth and check for overflow.
3047         (poplevel): Rename to pop_scope; totally rewritten for new bindings
3048         structures.
3049         (diagnose_mismatched_decls): Use C_DECL_DECLARED_BUILTIN, not
3050         C_DECL_INVISIBLE, for certain decisions.  Adjust some diagnostics.
3051         Improve some commentary.  Adjust handling of forward parm decls.
3052         (merge_decls): Set C_DECL_DECLARED_BUILTIN when appropriate.
3053         Preserve C_DECL_IN_EXTERNAL_SCOPE.
3054         (warn_if_shadowing): Correct indentation.  Improve diagnostics.
3055         (pushdecl): Remove unnecessary assertion.  Short-circuit anonymous
3056         decls.  Rewrite for new bindings structures.  Improve commentary.
3057         Eliminate the copy_node call.
3058         (implicit_decl_warning): Use the "diag" idiom (as seen in
3059         locate_old_decl) to reduce code duplication; call locate_old_decl
3060         if appropriate.  Relocate to remove need for forward declaration.
3061         (implicitly_declare): Adjust for new bindings structures.  Kludge
3062         around Objective-C not-really-builtin functions.
3063         (undeclared_variable): Improve diagnostics.  If current_function_decl
3064         is nonnull but current_function_scope is null, use current_scope.
3065         Use bind.
3066         (lookup_tag): Adjust for new bindings structures.  Kludge around
3067         Objective-C's tag declarations that wind up in the external scope.
3068         (lookup_name): Adjust for new bindings structures.  Kludge around
3069         c-common.c's pseudo-typedefs that wind up in the external scope.
3070         (lookup_name_current_level): Rename lookup_name_in_scope; take a
3071         second argument indicating the scope to examine; rewrite for
3072         new bindings structures.
3073         (c_init_decl_processing): Adjust for renamed functions.  Do not
3074         initialize current_file_decl, first_builtin_decl, last_builtin_decl.
3075         First scope pushed is the external scope, not the global scope.
3076         (builtin_function): Use bind, not pushdecl.  Adjust other bits
3077         for new data structures.  Keep track of builtins that should be
3078         made visible automatically.
3079         (start_decl): Adjust diagnostics.  Remove unnecessary call to
3080         expand_decl.
3081         (grokparms): Return 0 if arg_types is error_mark_node.
3082         (get_parm_info): Rename "void_at_end" argument to "ellipsis", with
3083         reversed sense.  Rewrite for new bindings structures.  Do not
3084         leave any decls in the scope, to prevent pop_scope from doing
3085         contradictory things with them.
3086         (finish_struct, finish_enum): Remove redundant diagnostics.
3087         (build_enumerator): Don't cascade diagnostics for error_mark_node.
3088         Mark location where -pedantic changes the meaning of the program.
3089         (store_parm_decls_newstyle, store_parm_decls_oldstyle): Load the
3090         parameter decls into the function's scope structure using bind.
3091         Warn here about function definitions in the wrong style.
3092         Adjust diagnostics.
3093         (store_parm_decls): Correct the determination of whether a
3094         function was defined with a prototype.
3095         (c_write_global_declarations): Operate on all file decls and on
3096         the external scope.  Split body of the loop to...
3097         (c_write_global_declarations_1): ... this new function, to avoid
3098         code duplication.
3099         (truly_local_externals, first_builtin_decl, last_builtin_decl)
3100         (make_scope, pop_scope, in_parm_level_p, set_block)
3101         (any_external_decl, record_external_decl, bind_label, getdecls)
3102         (link_hash_hash, link_hash_eq, merge_translation_unit_decls)
3103         (c_reset_state): Delete.
3104         (visible_builtins, c_override_global_bindings_to_false)
3105         (c_binding, I_SYMBOL_BINDING, I_SYMBOL_DECL, I_TAG_BINDING)
3106         (I_TAG_DECL, I_LABEL_BINDING, I_LABEL_DECL, file_scope)
3107         (external_scope, binding_freelist, bind, free_binding_and_advance)
3108         (push_file_scope, pop_file_scope): New.
3109         (pushtag, pushdecl_top_level, lookup_label, declare_label)
3110         (define_label, c_make_fname_decl, finish_decl)
3111         (mark_forward_parm_decls, build_compound_literal)
3112         (grokdeclarator, start_function, check_for_loop_decls)
3113         (identifier_global_value, record_builtin_type): Minor adjustments
3114         for new bindings structures.  Improve diagnostics and commentary.
3115         * c-objc-common.c (start_cdtor, finish_cdtor): Adjust calls to
3116         pushlevel/poplevel respectively.
3117         (c_objc_common_finish_file): Don't call merge_translation_unit_decls.
3118         * c-opts.c (c_common_parse_file): Remove spurious ATTRIBUTE_UNUSED.
3119         Warn about YYDEBUG not being defined only if -dy.  Remove no-longer-
3120         correct loop over multiple translation units; call fatal_error if
3121         requested to compile more than one file at once.  (This disables
3122         IMA temporarily - an up-front error being preferable to a crash.)
3123         * c-parse.in (pushlevel, poplevel rules): Rename push_scope, pop_scope.
3124         (all actions): Adjust calls to pushlevel/poplevel.
3125         (parsing_iso_function_signature): Delete.
3126         (extdef_1): Fold into extdef.
3127         (old_style_parm_decls_1): Fold into old_style_parm_decls.  Don't
3128         warn here about function definitions in the wrong style.
3129         (after_tyle_declarator, parm_declarator_starttypename)
3130         (parm_declarator_nostarttypename, notype_declarator): Remove
3131         commented-out productions.
3132         (parmlist_1, parmlist_2): Use make_node, not tree_cons, to create
3133         an empty TREE_LIST node.  Adjust calls to get_parm_info.
3134         (parmlist_2 : ELLIPSIS): Tag the arg-info block with error_mark_node
3135         to suppress -Wold-style-definition after this error.
3136         (c_parse_file): Don't clear the binding stack or call
3137         finish_fname_decls here.  Correct comment.
3138         * c-typeck.c (same_translation_unit_p): Export.
3139         (common_type): Use c_override_global_bindings_to_false, not
3140         pushlevel/poplevel/declare_parm_level.
3141         * c-lang.c: Override LANG_HOOKS_CLEAR_BINDING_STACK,
3142         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK,
3143         and LANG_HOOKS_GETDECLS with do-nothing stubs.
3144         * objc/objc-lang.c: Likewise.
3145         * objc/objc-act.c: Adjust all calls to pushlevel, poplevel,
3146         get_parm_info.
3147         (OBJC_VOID_AT_END): Delete; replace all uses
3148         with void_list_node.
3149         (generate_forward_declaration_to_string_table): Delete.
3150         * objc/objc-act.h (OCTI_STRG_DECL, UOBJC_STRINGS_decl): Delete.
3151
3152         * coverage.c (create_coverage): Don't pushdecl anything.
3153         * langhooks.c (lhd_clear_binding_stack): Call
3154         lang_hooks.decls.poplevel, not poplevel.
3155         * tree.c (list_length): If ENABLE_TREE_CHECKING, abort on a
3156         circular list rather than going into an infinite loop.
3157
3158 2004-03-23  Olivier Hainque  <hainque@act-europe.fr>
3159
3160         * optabs.c (expand_binop): When synthesizing double word rotates
3161         from single word shifts, use a new register target if the provided
3162         target is not a REG already.
3163
3164 2004-03-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3165
3166         * alias.c (get_alias_set): Add support for TYPE_REF_CAN_ALIAS_ALL.
3167         * c-common.c (handle_mode_attribute): Add extra arg to
3168         build_pointer_type_for_mode and build_reference_type_for_mode.
3169         * c-typeck.c (build_c_cast): Only look at TREE_CONSTANT_OVERFLOW
3170         for INTEGER_CST.
3171         * tree.c (build_pointer_type_for_mode): Add arg CAN_ALIAS_ALL.
3172         Chain pointers via TYPE_NEXT_PTR_TO.
3173         (build_reference_type_for_mode): Similarly.
3174         (build_type_no_quals): Add extra arg to build_pointer_type_for_mode
3175         and build_reference_type_for_mode.
3176         (tree_check4_failed): New function.
3177         * tree.h (TREE_CHECK4, PTR_OR_REF_CHECK): New macros.
3178         (TYPE_REF_CAN_ALIAS_ALL, TYPE_NEXT_PTR_TO, TYPE_NEXT_REF_TO): Likewise.
3179         (TREE_NO_UNSUED_WARNING, TREE_VIA_VIRTUAL, TREE_CONSTANT_OVERFLOW):
3180         Add check.
3181
3182 2004-03-23  Roger Sayle  <roger@eyesopen.com>
3183
3184         * fold-const.c (tree_expr_nonnegative_p): A&B is nonnegative when
3185         A is nonnegative or B is nonnegative.  Similarly A|B is nonnegative
3186         when both A and B are nonnegative.
3187         (tree_expr_nonzero_p): A|B is nonzero when A is nonzero or B is
3188         nonzero.
3189
3190 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
3191
3192         * fold-const.c (fold): Remove cases for INTEGER_CST, REAL_CST,
3193         VECTOR_CST, STRING_CST, COMPLEX_CST, and CONSTRUCTOR.
3194
3195 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
3196
3197         PR optimization/14669
3198         * fold-const.c (fold): Only unwiden integer comparisons for equality
3199         and inequality operators, or when the signedness doesn't change.
3200
3201 2004-03-23  Jakub Jelinek  <jakub@redhat.com>
3202
3203         * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
3204         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Set.
3205         * config/sparc/t-linux: New file.
3206
3207 2004-03-23  Richard Sandiford  <rsandifo@redhat.com>
3208
3209         * gcse.c (can_assign_to_reg_p): New function, split out from...
3210         (want_to_gcse_p): ...here.
3211         (compute_ld_motion_mems): Use can_assign_to_reg_p to validate
3212         the rhs of a store.
3213
3214 2004-03-22  Diego Novillo  <dnovillo@redhat.com>
3215
3216         * c-typeck.c (same_translation_unit_p): Fix pasto.
3217
3218 2004-03-22  David Edelsohn  <edelsohn@gnu.org>
3219
3220         * params.def (PARAM_MAX_SCHED_REGION_BLOCKS): New.
3221         (PARAM_MAX_SCHED_REGION_INSNS): New.
3222         * sched-rgn.c: Include params.h
3223         (MAX_RGN_BLOCKS): Delete.
3224         (MAX_RGN_INSNS): Delete.
3225         (too_large): Return bool.  Convert to PARAM_VALUE.
3226         * Makefile.in (sched-rgn.o): Depend on $(PARAMS_H).
3227         * doc/invoke.texi (param): Document max-sched-region-blocks and
3228         max-sched-region-insns.
3229
3230 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
3231
3232         * dwarf2out.c (is_subrange_type): Do not emit a subrange_type DIE
3233         for base types.
3234
3235 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
3236
3237         * dwarf2out.c (is_subrange_type): Minor code rework. No behavior
3238         change.
3239
3240 2004-03-22  Jakub Jelinek  <jakub@redhat.com>
3241
3242         PR c/14069
3243         * c-decl.c (finish_struct): Change type of incorrect flexible array
3244         field into error_mark_node.
3245
3246 2004-03-22  Andrew Pinski  <pinskia@physics.uc.edu>
3247
3248         PR target/14580
3249         * config/rs6000/rs6000.c (symbol_ref_operand): Reject symbols
3250         who are not local for Darwin PIC.
3251
3252 2004-03-22  Ulrich Weigand  <uweigand@de.ibm.com>
3253
3254         * regrename.c (regrename_optimize): Set regs_ever_live for all
3255         registers introduced as replacement.
3256
3257 2004-03-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
3258
3259         PR middle-end/14470
3260         * expr.c (mark_queue): New function.
3261         (emit_insns_enqueued_after_mark): New function replacing
3262         emit_queue.  Clear the body of emitted queued insns.
3263         (emit_queue): Call emit_insns_enqueued_after_mark.
3264         (store_expr): Mark the increment queue on entry.  Emit
3265         only the incrementations queued when expanding the source.
3266
3267 2004-03-22  Nathanael Nerode  <neroden@gcc.gnu.org>
3268
3269         * configure.ac: Allow --disable-coverage-flags (for the future benefit
3270         of top level bootstrap, and consistency).  Reindent.
3271         * configure: Regenerate.
3272
3273 2004-03-21  Kazu Hirata  <kazu@cs.umass.edu>
3274
3275         * bt-load.c, builtins.c, cfghooks.c, cfgrtl.c, gcse.c,
3276         ggc-page.c, integrate.c, var-tracking.c, web.c: Remove
3277         unnecessary casts.
3278
3279 2004-03-22  Danny Smith  <dannysmith@users.sourceforge.net>
3280
3281         PR target/14291
3282         * gcov-io.h (gcov_truncate): Define ftruncate as _chsize for
3283         __MINGW32__.
3284
3285 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
3286
3287         * config/s390/s390.md ("*doloop_si"): Change predicate for operand 2
3288         to nonimmediate_operand.
3289         ("*doloop_di"): Likewise.
3290
3291 2004-03-21  Alexandre Oliva  <aoliva@redhat.com>
3292
3293         * real.h (struct real_value): Use the same type for all
3294         bitfields.  Rename exp to uexp.
3295         (REAL_EXP, SET_REAL_EXP): New accessor macros for uexp.
3296         Adjust all uses of exp...
3297         * builtins.c: ... here, ...
3298         * emit-rtl.c: ... here, and ...
3299         * real.c: ... and here.
3300
3301 2004-03-21  Gabriel Dos Reis  <gdr@integrable-solutions.net>
3302
3303         * pretty-print.c (pp_base_maybe_space): New function.
3304         * pretty-print.h (pp_base_maybe_space): Declare.
3305         (pp_maybe_space): New macro.
3306
3307 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
3308
3309         * config/s390/s390.md ("addti3", "subti3"): New insns and splitters.
3310
3311 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
3312
3313         * expmed.c (choose_mult_variant): Pass MULT_COST as argument instead
3314         of using register multiplication cost.
3315         (expand_mult): Adapt choose_mult_variant call.
3316         (expand_mult_highpart): Call choose_mult_variant with WIDER_MODE
3317         of MODE; pass appropriate cost bound.  Adjust result when
3318         performing signed multiplication by a negative constant.
3319         Don't use intermediate modes larger than word_mode.
3320
3321 2004-03-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3322
3323         * alias.c (get_alias_set): Remove handling of PLACEHOLDER_EXPR.
3324         * emit-rtl.c (component_ref_for_mem_expr): Likewise.
3325         (set_mem_attributes_minus_bitpos): Call SUBSTITUTE_PLACEHOLDER_IN_EXPR.
3326         * explow.c (expr_size): Likewise.
3327         * expr.h (placeholder_list, find_placeholder): Deleted.
3328         * expr.c (store_constructor): Likewise.
3329         (get_inner_reference): Likewise.  Also don't call find_placeholder.
3330         (placeholder_list, find_placeholder): Deleted.
3331         (is_aligning_offset): Don't handle WITH_RECORD_EXPR, PLACEHOLDER_EXPR.
3332         (expand_expr_real, cases PLACEHOLDER_EXPR, WITH_RECORD_EXPR): Likewise.
3333         (highest_pow2_factor, case WITH_RECORD_EXPR): Remove.
3334         * dojump.c (do_jump, case WITH_RECORD_EXPR): Likewise.
3335         * dwarf2out.c (loc_descriptor_from_tree, case WITH_RECORD_EXPR):
3336         Likewise.
3337         * fold-const.c (invert_truthvalue, case WITH_RECORD_EXPR): Likewise.
3338         (extract_muldiv, case WITH_RECORD_EXPR): Likewise.
3339         * tree.c (expr_align, case WITH_RECORD_EXPR): Likewise.
3340         (contains_placeholder_p): Don't handle WITH_RECORD_EXPR.
3341         Clean up by using first_rtl_op.
3342         (substitute_in_expr): Use SUBSTITUTE_IN_EXPR for recursive call.
3343         (substitute_placeholder_in_expr): New function.
3344         * tree.def (WITH_RECORD_EXPR): Deleted.
3345         * tree.h (SUBSTITUTE_IN_EXPR, SUBSTITUTE_PLACEHOLDER_IN_EXPR): New.
3346         (substitute_placeholder_in_expr): New.
3347
3348 2004-03-21  Andrew Pinski  <pinskia@gcc.gnu.org>
3349
3350         * dojump.c (prefer_and_bit_test): Fix which part of
3351         the and_test is replaced.
3352
3353 2004-03-21  Joseph S. Myers  <jsm@polyomino.org.uk>
3354
3355         * frontends.texi: Add missing line.
3356
3357 2004-03-21  Zack Weinberg  <zack@codesourcery.com>
3358             Chris Devers  <cdevers@pobox.com>
3359             Joseph S. Myers  <jsm@polyomino.org.uk>
3360
3361         * doc/frontends.texi: Rewrite.
3362         * doc/gcc.texi: Update last modification date.
3363
3364 2004-03-21  Josef Zlomek  <zlomekj@suse.cz>
3365
3366         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Print the debug
3367         message before redirecting the edge.
3368
3369 2004-03-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3370
3371         * emit-rtl.c (set_mem_attributes_minus_bitpos): Set MEM_POINTER
3372         flag.
3373         * explow.c (force_not_mem): Set REG_POINTER flag according to
3374         MEM_POINTER one.
3375         * rtl.h (MEM_POINTER): New macro.
3376         (struct rtx_def): Use integrated for MEM_SCALAR_P and frame_related
3377         for MEM_POINTER.
3378
3379 2004-03-20  Roger Sayle  <roger@eyesopen.com>
3380
3381         PR target/13889
3382         * cse.c (fold_rtx): Avoid substituting constants into unary
3383         conversion operations.
3384
3385 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
3386
3387         * fold-const.c (fold): Replace "expr" with "t".
3388
3389 2004-03-20  Ian Lance Taylor  <ian@wasabisystems.com>
3390
3391         PR c/12373
3392         * c-typeck.c (tagged_types_tu_compatible_p): Don't use
3393         DECL_ORIGINAL_TYPE if there isn't one.
3394
3395 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
3396
3397         * fold-const.c (fold): Replace "final_type" with "type".
3398         Remove variable "final_type".
3399
3400 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
3401
3402         * fold-const.c (fold): Constify "type".
3403         Replace "TREE_TYPE (t)" with "type".
3404
3405 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
3406
3407         * bb-reorder.c, bt-load.c, c-decl.c, cfgcleanup.c, coverage.c,
3408         dwarf2asm.c, ifcvt.c, stor-layout.c, varasm.c: Replace calls
3409         via (*targetm.foo) () with targetm.foo ().
3410
3411 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
3412
3413         PR other/14630
3414         * doc/install.texi: Add info directory category and entry.
3415
3416 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
3417
3418         * fold-const.c (fold): Replace "t" with "tem" where it is used
3419         as a temporary variable.  Remove "orig_t" and all of its uses.
3420
3421 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
3422
3423         * fold-const.c (fold): Remove variable "invert".
3424         Move the handling of relational expressions that can be folded
3425         to a constant ...
3426         (fold_relational_const): ... here.
3427         (tree_expr_nonzero_p): New.
3428
3429 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
3430
3431         PR c/14635
3432         * builtins.def (nan, nanf, nanl, nans, nansf, nansl): Change to
3433         DEF_GCC_BUILTIN.
3434
3435 2004-03-20  Richard Sandiford  <rsandifo@redhat.com>
3436
3437         * Makefile.in (dojump.o): Depend on $(GGC_H) and dojump.h.
3438         (GTFILES): Add $(srcdir)/dojump.h.
3439         (gt-dojump.h): New dependency.
3440         * dojump.c (and_reg, and_test, shift_test): New static variables.
3441         (prefer_and_bit_test): New function.
3442         (do_jump): Use it to choose between (X & (1 << C)) and (X >> C) & 1.
3443
3444 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
3445
3446         * c-common.c, cfgcleanup.c, cgraphunit.c, c-pretty-print.c,
3447         expmed.c, ggc-common.c, jump.c, passes.c, recog.c, regmove.c,
3448         reorg.c, tree.h: Fix comment typos.
3449
3450 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
3451
3452         * alias.c, attribs.c, bt-load.c, builtins.c, c-common.c,
3453         c-decl.c, c-objc-common.c, c-typeck.c, calls.c, cfglayout.c,
3454         cse.c, dbxout.c, dwarf2out.c, except.c, final.c,
3455         haifa-sched.c, integrate.c, passes.c, rtlanal.c, sched-rgn.c,
3456         sched-vis.c, simplify-rtx.c, stor-layout.c, tree.c, varasm.c,
3457         vmsdbgout.c: Replace calls via (*targetm.foo) () with
3458         targetm.foo ().
3459
3460 2004-03-19  Ziemowit Laski  <zlaski@apple.com>
3461
3462         * config/rs6000/altivec.h (vec_dst, vec_dstst, vec_dststt,
3463         vec_dstt, vec_sld, vec_splat): Add prototypes, marked with
3464         always_inline attribute.
3465         * config/rs6000/rs6000.c (altivec_expand_dst_builtin):
3466         Treat expansion as completed even if literal argument is
3467         invalid (so that other expansions are not tried in vain).
3468
3469 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
3470
3471         * loop-doloop.c (add_test): Replace GEN_INT (0) with
3472         const0_rtx.
3473
3474 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
3475
3476         * fold-const.c (fold) <ABS_EXPR>: Move the handling of constants
3477         ...
3478         (fold_abs_const): ... here.
3479
3480 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3481
3482         * tree.h (TYPE_ARRAY_MAX_SIZE): Use type.maxval directly.
3483
3484 2004-03-19  Denis Chertykov  <denisc@overta.ru>
3485
3486         PR target/11520
3487         * config/avr/avr.md ("call_insn"): Handle explicit integer
3488         specially.
3489         (call_value_insn): Likewise.
3490
3491 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3492
3493         * tree.c (substitute_in_expr): Rewrite to simplify and be more generic.
3494
3495 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
3496
3497         * fold-const.c (negate_expr): Move the handling of constants
3498         ...
3499         (fold_negate_const): ... here.
3500
3501 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3502
3503         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): New macro and hook.
3504         * langhooks.h (struct lang_hooks_for_types): New field hash_types.
3505         * tree.c (debug_no_type_hash): Deleted.
3506         (type_hash_canon): Abort if passed a variant.
3507         Check lang_hooks.types.hash_types.
3508         (build_type_no_quals): Copy mode of POINTER_TYPE and REFERENCE_TYPE.
3509         (build_array_type): Remove unnecessary allocation of pointer type.
3510         (build_complex_type): Properly qualify resulting type.
3511
3512 2004-03-19  Paolo Bonzini  <bonzini@gnu.org>
3513
3514         * config/rs6000/rs6000.c (rs6000_init_builtins): Fix typo.
3515
3516 2004-03-19  Richard Sandiford  <rsandifo@redhat.com>
3517
3518         * expmed.c (choose_mult_variant, expand_mult_const): New, split from...
3519         (expand_mult): ...here.
3520         (extract_high_half): New, split out from expand_mult_highpart.
3521         (expand_highpart_optab): Likewise.  Don't clobber target prematurely.
3522         (expand_highpart): Evaluate the cost of a shift/add sequence,
3523         then see if any of the specialized optabs are cheaper.
3524
3525 2004-03-18  Ian Lance Taylor  <ian@wasabisystems.com>
3526
3527         * mklibgcc.in: Remove obsolete MAYBE_USE_COLLECT2.
3528
3529 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3530
3531         * convert.c (convert_to_real): Add more math builtins.
3532
3533 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3534
3535         * convert.c (convert_to_real): Reformat using switch stmt.
3536
3537 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
3538
3539         * c-common.c (pointer_int_sum): Do not complain about using
3540         pointers to pointers-to-members.
3541
3542 2004-03-18  Kazu Hirata  <kazu@cs.umass.edu>
3543
3544         * system.h (MD_ASM_CLOBBERS): Move to "Old target macros that
3545         have moved to the target hooks structure".
3546
3547 2004-03-18  James E Wilson  <wilson@specifixinc.com>
3548
3549         * config/mips/mips.md (type): Split move into arith and fmove.  Split
3550         hilo into mthilo and mfhilo.  Add trap.  Delete icmp.  Fix all uses.
3551         * config/mips/5400.md (ir_vr54_hilo, ir_vr54_arith, ir_vr54_fabs):
3552         Likewise.
3553         * config/mips/5500.md (ir_vr55_hilo, ir_vr55_arith, ir_vr55_fabs):
3554         Likewise.
3555         * config/mips/7000.md (rm7_int_other, rm7_mthilo, rm7_mfhilo,
3556         rm7_fp_quick): Likewise.
3557         * config/mips/9000.md (rm9k_int, rm9k_mfhilo, rm9k_mthilo,
3558         rm9k_fquick): Likewise.
3559         * config/mips/sr71k.md (ir_sr70_hilo, ir_sr70_arith, ir_sr70_fabs):
3560         Likewise.
3561         (ir_sr70_icmp): Delete.
3562
3563 2004-03-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3564
3565         * tree.h (TREE_CHECK2, TREE_CHECK3, TREE_CHECK5): New macros.
3566         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New decl.
3567         (FUNC_OR_METHOD_CHECK, SET_ARRAY_OR_VECTOR_CHECK): New macros.
3568         (REC_OR_UNION_CHECK, NUMERICAL_TYPE_CHECK): Likewise.
3569         (TYPE_VALUES, TYPE_DOMAIN, TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD):
3570         Protect with proper check.
3571         (TYPE_ARG_TYPES, TYPE_METHOD_BASETYPE, TYPE_OFFSET_BASETYPE): Likewise.
3572         (TYPE_MIN_VALUE, TYPE_MAX_VALUE): Likewise.
3573         * tree.c (type_hash_eq): Rewrite to access proper fields for each type.
3574         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New.
3575         * c-typeck.c (build_array_ref): Use TYPE_DOMAIN, not TYPE_VALUES.
3576         * dwarf2out.c (gen_enumeration_type_die): Use TYPE_VALUES,
3577         not TYPE_FIELDS.
3578         * stor-layout.c (set_sizetype): Use TYPE_ORIG_SIZE_TYPE.
3579
3580 2004-03-18  Mostafa Hagog  <mustafa@il.ibm.com>
3581
3582         * gcse.c (eliminate_partially_redundant_loads): Reject change if
3583         dest is set between beginning and current insn.
3584
3585 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
3586
3587         * c-decl.c (grokdeclarator): Do not complain about redeclaring
3588         visible "static" identifiers "extern" in a local scope.
3589         * dwarf2out.c (loc_descriptor_from_tree): Handle pre- and
3590         post-increments/decrements.
3591
3592 2004-03-18  Bob Wilson  <bob.wilson@acm.org>
3593
3594         * config/xtensa/xtensa.c (current_function_arg_words): Delete.
3595         (xtensa_builtin_saveregs): Use current_function_args_info.arg_words.
3596         (xtensa_va_start): Remove assignment to current_function_arg_words.
3597
3598 2004-03-18  Richard Sandiford  <rsandifo@redhat.com>
3599
3600         * alias.c (record_set): Detect the case where a register is assigned
3601         a new value that has the same base term as the old one.
3602
3603 2004-03-18  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3604
3605         * doloop.c: Removed.
3606         * loop-doloop.c: New file.
3607         * Makefile.in (doloop.o): Remove.
3608         (loop-doloop.o): New.
3609         * cfgloop.h (get_loop_level, doloop_optimize_loops): Declare.
3610         * cfgloopanal.c (get_loop_level): New function.
3611         * loop-iv.c (iv_number_of_iterations): Handle case when loop
3612         is leaved immediatelly.
3613         * loop.c (strength_reduce): Do not call doloop optimization.
3614         * loop.h (LOOP_BCT): Removed.
3615         * passes.c (rest_of_handle_loop_optimize): Do not use LOOP_BCT.
3616         (rest_of_handle_loop2): Call doloop_optimize_loops.
3617         (rest_of_compilation): Test for optimizations moved to
3618         rest_of_handle_loop2.
3619
3620 2004-03-17  Fariborz Jahanian <fjahanian@apple.com>
3621
3622         * config/rs6000/rs6000.c (rs6000_stack_info): correct reg_size
3623         for mixed mode.
3624         (rs6000_emit_prologue): Ditto.
3625         (rs6000_emit_epilogue): Ditto.
3626         * config/rs6000/rs6000.h: Definition of DWARF_CIE_DATA_ALIGNMENT
3627         macro for mixed mode.
3628
3629 2004-03-18  Jan Hubicka  <jh@suse.cz>
3630
3631         * predict.c (propagate_freq): Compute correctly frequency of
3632         EXIT_BLOCK.
3633
3634 2004-03-17  Eric Christopher  <echristo@redhat.com>
3635
3636         * builtins.c (apply_args_size): Use reg_raw_mode.
3637         (apply_result_size): Ditto.
3638
3639 2004-03-17  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
3640
3641         PR target/14620
3642         * config/rtems.h: Add STD_LIB_SPEC and LIB_SPEC.
3643
3644 2004-03-17  Jakub Jelinek  <jakub@redhat.com>
3645
3646         * config/rs6000/t-linux64 (bispecs): Don't add -mlong-double-128 for
3647         32-bit builds when defaulting to 32-bit.
3648
3649 2004-03-17  Jan Hubicka  <jh@suse.cz>
3650
3651         * cfgrtl.c (rtl_create_basic_block): Pre-allocate basic_block_info
3652         array.
3653
3654 2004-03-17  James E Wilson  <wilson@specifixinc.com>
3655
3656         * config/mips/mips.md (zero_extendsidi2): Add length attribute.
3657         (hazard_nop): Change type to nop.
3658         (type): Split arith into arith, shift, slt, clz.  Delete darith.
3659         Fix all uses.  Change arith to multi if more than one insn emitted.
3660         * config/mips/5400.md (ir_vr54_arith): Likewise.
3661         * config/mips/5500.md (ir_vr55_arith): Likewise.
3662         * config/mips/7000.md (rm7_int_other): Likewise.
3663         * config/mips/9000.md (rm9k_int): Likewise.
3664         * config/mips/sr71k.md (ir_sr70_arith): Likewise.
3665
3666 2004-03-17  Joel Brobecker  <brobecker@gnat.com>
3667
3668         * dwarf2out.c (subrange_type_die): Define new variable "subtype"
3669         to hold the subtype tree instead of recomputing it several times.
3670
3671 2004-03-17  Kazu Hirata  <kazu@cs.umass.edu>
3672
3673         * config/mn10300/mn10300.c (notice_update_cc): Don't handle
3674         CC_INVERT.
3675         * config/mn10300/mn10300.md (cc): Remove "invert".
3676
3677 2004-03-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3678
3679         * builtins.c (integer_valued_real_p): Add builtin rint.
3680         (fold_builtin): Likewise.
3681         * convert.c (convert_to_real): Likewise.
3682
3683         * convert.c (convert_to_real): Fix typos in `long double'
3684         builtins.
3685
3686 2004-03-16  Mark Mitchell  <mark@codesourcery.com>
3687
3688         PR c++/14481
3689         * fold-const.c (fold): Set TREE_NO_UNUSED_WARNING on implicitly
3690         generated COMPOUND_EXPRs.
3691
3692 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
3693
3694         * config/h8300/t-rtems (h8300-*-rtems*): New.
3695
3696 2004-03-16  Eric Christopher  <echristo@redhat.com>
3697
3698         * doc/cppopts.texi(fwide-exec-charset): Fix typo.
3699
3700 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
3701
3702         * config/i386/i386-protos.h: Add a prototype for
3703         ix86_reverse_condition.
3704         * config/i386/i386.c (ix86_reverse_condition): New.
3705         * config/i386/i386.h (REVERSE_CONDITION): Use
3706         ix86_reverse_condition.
3707         * config/i386/i386.md: Use ix86_reverse_condition instead of
3708         REVERSE_CONDITION.
3709
3710 2004-03-16  J. Brobecker  <brobecker@gnat.com>
3711
3712         * dwarf2out.c (loc_descriptor_from_tree): Add handling for MIN_EXPR.
3713
3714 2004-03-16  Nathanael Nerode  <neroden@gcc.gnu.org>
3715
3716         PR bootstrap/12974
3717         * Makefile.in: Pass $(INCLUDES) down to libgcc.mk explicitly.
3718
3719 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
3720
3721         * c-common.c (c_common_type_for_mode): Build vector types on
3722         demand.
3723         (handle_mode_attribute): Deprecate using the mode attribute
3724         to create vector types.  Fix indentation.
3725         (vector_type_node_list): Remove.
3726         (handle_vector_size_attribute): Create vector types on demand.
3727         Strip a NON_LVALUE_EXPR from the attribute if there is one.
3728         * c-typeck.c (comptypes): Make vector types compatible if they
3729         have the same underlying mode.
3730         (convert_for_assignment): Use comptypes to convert between
3731         vector types.
3732         * tree.c (build_common_tree_nodes_2): Do not create vector types.
3733         * config/arm/arm.c (arm_init_iwmmxt_builtins): Create necessary
3734         vector types.
3735         * tree.h: Remove vector types.
3736         * config/i386/i386.c (i386_init_mmx_sse_builtins): Likewise.
3737         * config/rs6000/rs6000.c (rs6000_init_builtins): Likewise.
3738         (V16QI_type_node, V2SI_type_node, V2SF_type_node, V4HI_type_node,
3739         V4SI_type_node, V4SF_type_node, V8HI_type_node): New globals.
3740         * doc/extend.texi (Vector Types): Document how to use the
3741         vector_size attribute to create vectors, rather than mode.
3742
3743         * config/arm/mmintrin.h: Use vector_size attribute, not mode.
3744         * config/i386/emmintrin.h: Likewise.
3745         * config/i386/mmintrin.h: Likewise.
3746         * config/i386/xmmintrin.h: Likewise.
3747         * config/sh/ushmedia.h: Likewise.
3748
3749 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
3750
3751         * config/freebsd-spec.h, config/arc/arc-protos.h,
3752         config/arm/aout.h, config/arm/elf.h, config/arm/freebsd.h,
3753         config/arm/linux-gas.h, config/arm/semi.h,
3754         config/cris/cris-protos.h, config/i386/xm-djgpp.h,
3755         config/ia64/freebsd.h, config/mips/7000.md,
3756         config/mips/9000.md, config/ns32k/ns32k-protos.h,
3757         config/sparc/pbd.h: Update copyright.
3758
3759 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
3760
3761         PR target/14577
3762         * config.gcc: Switch sh-*-rtems* to ELF.  Add sh-*-rtemscoff.
3763
3764 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
3765
3766         * combine.c (combine_simplify_rtx): Remove the "last"
3767         parameter and its documentation.  Adjust recursive calls.
3768         (simplify_logical): Always perform the only simplification
3769         controlled by "last", if the simplified expression is
3770         actually different.
3771         (try_combine): Do not pass the "last" parameter to
3772         combine_simplify_rtx.
3773
3774 2004-03-16  Richard Sandiford  <rsandifo@redhat.com>
3775
3776         PR target/14599
3777         * config/mips/mips.md (UNSPEC_GP): New constant.
3778         * config/mips/mips.c (CONST_GP_P): Expect the CONST to contain
3779         an UNSPEC instead of (reg $gp).
3780         (mips16_gp_pseudo_reg): Change accordingly.
3781         (print_operand): Print $gp directly when handling CONST_GP_P.
3782
3783 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
3784
3785         * config.gcc, config/m68k/linux.h: Implement with-cpu for m68k-linux.
3786         * longlong.h: Make code 68060 clean when compiling for m68060.
3787
3788 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
3789
3790         * config/m68k/m68k.md: Fix constraints for bitfield instructions.
3791         * doc/md.texi: Clarify description of "i" constraint.
3792
3793 2004-03-15  James E Wilson  <wilson@specifixinc.com>
3794
3795         * config/mips/mips.md (type): Split load into load, fpload, fpidxload.
3796         Split store into store, fpstore, fpidxstore.  Fix all uses.
3797         * config/mips/5400.md (ir_vr54_load, ir_vr54_store, ir_vr54_fstore):
3798         Likewise.
3799         * config/mips/5500.md (ir_vr55_load, i5_vr55_store): Likewise.
3800         * config/mips/7000.md (rm7_ld, rm7_st): Likewise.
3801         * config/mips/9000.md (rm9k_load, rm9k_store): Likewise.
3802         * config/mips/sr71k.md (ir_sr70_load, ir_sr70_store, ir_sr70_fload,
3803         ir_sr70_fstore): Likewise.
3804
3805 2004-03-15  Richard Henderson  <rth@redhat.com>
3806
3807         PR middle-end/14535
3808         * except.c (collect_one_action_chain): Record action for cleanup
3809         outer of exception spec.
3810
3811 2004-03-15  Ian Lance Taylor  <ian@wasabisystems.com>
3812
3813         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
3814         Fix the check for abort and only do the mmap if we can.
3815
3816 2004-03-15  Eric Botcazou  <ebotcazou@act-europe.fr>
3817
3818         * config/sparc/sparc.h: Rework comments about the code model
3819         in 64-bit environment and the mode 'Pmode'.
3820         * doc/invoke.texi (SPARC options): Rework description of the
3821         different code models supported in 64-bit environment.
3822
3823 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
3824
3825         * defaults.h (REVERSIBLE_CC_MODE): Define.
3826         * jump.c (reversed_comparison_code_parts): Don't check if
3827         REVERSIBLE_CC_MODE is defined.
3828
3829 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
3830
3831         * c-incpath.c, c-incpath.h, c-pch.c, c.opt, cppexp.c,
3832         et-forest.h, genattr.c, ggc-none.c, hosthooks-def.h,
3833         hosthooks.h, params.h, ra-colorize.c, web.c,
3834         config/darwin-c.c, config/alpha/freebsd.h, config/arm/pe.c,
3835         config/avr/avr-protos.h, config/avr/avr.md,
3836         config/fr30/fr30-protos.h, config/fr30/fr30.md,
3837         config/h8300/fixunssfsi.c, config/i386/darwin.h,
3838         config/i386/freebsd.h, config/i386/freebsd64.h,
3839         config/ia64/hpux.h, config/ia64/unwind-ia64.c,
3840         config/ip2k/libgcc.S, config/m32r/xm-m32r.h,
3841         config/mmix/mmix-modes.def, config/ns32k/netbsd.h,
3842         config/ns32k/ns32k.md, config/pa/pa64-hpux.h,
3843         config/pa/pa64-regs.h, config/rs6000/aix41.h,
3844         config/rs6000/aix43.h, config/rs6000/host-darwin.c,
3845         config/sparc/aout.h, config/sparc/freebsd.h,
3846         config/sparc/litecoff.h, config/vax/vax-protos.h,
3847         doc/hostconfig.texi, doc/include/gcc-common.texi: Update
3848         copyright.
3849
3850 2004-03-15  Paul Brook  <paul@codesourcery.com>
3851
3852         * config/arm/arm.c (thumb_expand_prologue): Tie prologue insns to fp.
3853
3854 2004-03-15  Gabriel Dos Reis  <gdr@integrable-solutions.net>
3855
3856         * c-pretty-print.c (pp_c_semicolon): Fix formatting.
3857         (pp_c_cv_qualifier): Document.
3858         (pp_c_space_for_pointer_operator): Likewise.
3859         (pp_c_integer_constant): Likewise.
3860         (pp_c_identifier): Likewise.
3861         (pp_c_init_declarator): Don't print function body.
3862
3863 2004-03-14  Joseph S. Myers  <jsm@polyomino.org.uk>
3864
3865         * doc/contrib.texi, doc/extend.texi, doc/gcov.texi,
3866         doc/install.texi, doc/invoke.texi, doc/makefile.texi,
3867         doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi: Capitalize
3868         "gcc", "g++" and "g77" or mark up with appropriate markup.  Adjust
3869         wording and grammar.
3870
3871 2004-03-14  Roger Sayle  <roger@eyesopen.com>
3872
3873         * alias.c (get_alias_set): Replace calls via (*lang_hooks.foo) ()
3874         with lang_hooks.foo ().
3875         * builtins.c (expand_builtin_va_arg): Likewise.
3876         * c-common.c (fname_as_string, c_common_truthvalue_conversion,
3877         c_common_type_for_mode, c_common_nodes_and_builtins,
3878         handle_mode_attribute, handle_vector_size_attribute): Likewise.
3879         * c-convert.c (convert): Likewise.
3880         * c-format.c (check_format_types): Likewise.
3881         * c-objc-common.c (c_tree_printer): Likewise.
3882         * c-typeck.c (build_unary_op, build_conditional_expr,
3883         build_binary_op): Likewise.
3884         * calls.c (try_to_integrate, expand_call,
3885         emit_library_call_value_1): Likewise.
3886         * cgraph.c (cgraph_node_name, cgraph_function_possibly_inlined_p):
3887         Likewise.
3888         * cgraphunit.c (record_call_1, cgraph_analyze_function,
3889         cgraph_expand_function): Likewise.
3890         * convert.c (convert_to_pointer, convert_to_integer): Likewise.
3891         * coverage.c (build_fn_info_type, build_ctr_info_type,
3892         build_gcov_info, create_coverage): Likewise.
3893         * dbxout.c (dbxout_init): Likewise.
3894         * diagnostic.c (diagnostic_report_current_function): Likewise.
3895         * dojump.c (do_jump): Likewise.
3896         * dwarf2out.c (dwarf2_name): Likewise.
3897         * except.c (init_eh): Likewise.
3898         * explow.c (expr_size, int_expr_size): Likewise.
3899         * expmed.c (make_tree, const_mult_add_overflow_p, expand_mult_add):
3900         Likewise.
3901         * expr.c (store_expr, store_constructor, safe_from_p,
3902         expand_expr_real, do_store_flag, try_casesi): Likewise.
3903         * function.c (push_function_context_to, pop_function_context_from,
3904         free_after_parsing, assign_stack_local_1, assign_stack_temp_for_type,
3905         put_var_into_stack, allocate_struct_function, current_function_name):
3906         Likewise.
3907         * integrate.c (copy_decl_for_inlining, expand_inline_function):
3908         Likewise.
3909         * langhooks.c (lhd_clear_binding_stack, write_global_declarations,
3910         lhd_print_error_function): Likewise.
3911         * opts.c (handle_option, decode_options): Likewise.
3912         * passes.c (open_dump_file): Likewise.
3913         * print-tree.c (print_node): Likewise.
3914         * stmt.c (expand_fixup, fixup_gotos, expand_asm_operands,
3915         expand_decl_cleanup, emit_case_nodes): Likewise.
3916         * stor-layout.c (variable_size): Likewise.
3917         * toplev.c (announce_function, wrapup_global_declarations,
3918         check_global_declarations, compile_file, default_tree_printer,
3919         process_options, lang_dependent_init, finalize): Likewise.
3920         * tree-dump.c (dequeue_and_dump): Likewise.
3921         * tree-inline.c (remap_decl, remap_block, copy_body_r,
3922         initialize_inlined_parameters, declare_return_variable,
3923         inlinable_function_p, expand_call_inline, optimize_inline_calls,
3924         walk_tree, copy_tree_r): Likewise.
3925         * tree-optimize.c (tree_rest_of_compilation): Likewise.
3926         * tree.c (decl_assembler_name, tree_size, size_in_bytes, staticp,
3927         unsafe_for_reeval, get_unwidened, get_narrower, get_callee_fndecl,
3928         variably_modified_type_p, dump_tree_statistics): Likewise.
3929         * varasm.c (assemble_variable, compare_constant, copy_constant,
3930         force_const_mem, compute_reloc_for_constant, output_constant,
3931         output_addressed_constants, initializer_constant_valid_p): Likewise.
3932
3933 2004-03-14  Kelley Cook  <kcook@gcc.gnu.org>
3934
3935         * doc/install.texi: Make autoconf 2.13 the exception, not the rule.
3936
3937 2004-03-14  Andreas Tobler  <a.tobler@schweiz.ch>
3938
3939         * doc/install.texi: Reflect autoconf and automake version for
3940         libffi. Update autoconf version to 2.59.
3941
3942 2004-03-13  Roger Sayle  <roger@eyesopen.com>
3943
3944         * fold-const.c (negate_expr, operand_equal_for_comparison_p,
3945         optimize_bit_field_compare, decode_field_reference, all_ones_mask_p,
3946         make_range, build_range_check, fold_range_test, unextend,
3947         constant_boolean_node, fold_binary_op_with_conditional_arg,
3948         fold_truthop, fold_mathfn_compare, fold_inf_compare,
3949         fold_single_bit_test, fold): Replace calls via (*lang_hooks.foo) ()
3950         with lang_hooks.foo ().
3951
3952 2004-03-14  Richard Earnshaw  <rearnsha@arm.com>
3953
3954         * arm.h (EXTRA_CONSTRAINT_STR_ARM): Update comment.
3955
3956 2004-03-13  Dara Hazeghi  <dhazeghi@yahoo.com>
3957
3958         * doc/install.texi: Note status of -fnew-ra.
3959
3960 2004-03-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
3961
3962         PR middle-end/14470
3963         * expr.c (store_expr): Call emit_queue before generating the move
3964         from the temporary to the original target.  Protect the temporary
3965         from emit_queue.
3966
3967 2004-03-13  Jakub Jelinek  <jakub@redhat.com>
3968
3969         PR target/14533
3970         * config/s390/s390.c (legitimize_pic_address): Don't abort on UNSPEC
3971         other than UNSPEC_GOTOFF.
3972
3973 2004-03-13  Richard Earnshaw  <rearnsha@arm.com>
3974
3975         * arm.c (arm_legitimate_address_p): New argument, OUTER.  Pass through
3976         to arm_legitimate_index_p.  Update all callers with SET as default
3977         value.
3978         (arm_legitimate_index_p): New argument, OUTER.  Restrict the index
3979         range if OUTER is a sign-extend operation on QImode.  Correctly
3980         reject shift operations on sign-extended QImode addresses.
3981         (bad_signed_byte_operand): Delete.
3982         (arm_extendqisi_mem_op): New function.
3983         * arm.h (EXTRA_CONSTRAINT_ARM): Delete.  Replace with...
3984         (EXTRA_CONSTRAINT_STR_ARM): ... this.  Handle extended address
3985         constraints.
3986         (CONSTRAINT_LEN): New.
3987         (EXTRA_CONSTRAINT): Delete.  Replace with...
3988         (EXTRA_CONSTRAINT_STR): ... this.
3989         (PREDICATE_CODES): Remove bad_signed_byte_operand.
3990         * arm.md (extendqihi_insn): Use new constraint Uq.  Rework.  Length
3991         is now always default.
3992         (define_splits for bad sign-extend loads): Delete.
3993         (arm_extendqisi, arm_extendqisi_v5): Likewise.
3994         * arm/vfp.md (arm_movsi_vfp, arm_movdi_vfp, movsf_vfp, movdf_vfp):
3995         Rework 'U' constraint to 'Uv'.
3996         * arm-protos.h: Remove bad_signed_byte_operand.  Add
3997         arm_extendqisi_mem_op.
3998         * doc/md.texi (ARM constraints): Rename VFP constraint (now Uv).
3999         Add Uq constraint.
4000
4001 2004-03-13  Alan Modra  <amodra@bigpond.net.au>
4002
4003         * config/rs6000/rs6000.c (rs6000_va_arg): Replace SPLIT_COMPLEX_ARGS
4004         with targetm version.
4005
4006         PR target/14567
4007         * config/rs6000/rs6000.h (UNITS_PER_ARG, RS6000_ARG_SIZE): Delete.
4008         (HARD_REGNO_MODE_OK): Disallow TFmode for fp31.
4009         * config/rs6000/rs6000.c (rs6000_arg_size): New function.
4010         Update all users of RS6000_ARG_SIZE.
4011         (function_arg_advance): Count fregno using mode size.
4012         (function_arg): Handle long double split over regs and memory.
4013         (function_arg_partial_nregs): Likewise.
4014         (rs6000_va_arg): Repackage complex args.
4015
4016 2004-03-13  Dean Ferreyra <dferreyra@igc.org>
4017
4018         PR target/14047
4019         * config/avr/avr.c (avr_progmem_p): Add "attributes" parameter.
4020         (avr_insert_attributes): Pass "attributes" to avr_progmem_p.
4021         * config/avr/avr-protos.h (avr_progmem_p): Change prototype.
4022
4023 2004-03-12  Jakub Jelinek  <jakub@redhat.com>
4024
4025         * config/rs6000/rs6000-protos.h (rs6000_output_dwarf_dtprel): Add
4026         prototype.
4027         * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): New.
4028         * config/rs6000/rs6000.h (ASM_OUTPUT_DWARF_DTPREL): Define.
4029
4030 2003-03-12  Andrew Pinski  <apinski@apple.com>
4031
4032         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
4033         Use ret instead of result. Use addr instead of base.
4034
4035 2004-03-12  David Edelsohn  <edelsohn@gnu.org>
4036
4037         * doc/install.texi (*-ibm-aix*): Document assembler and achiver
4038         fixes required by libstdc++ and update installation instructions
4039         for libstdc++.a.
4040
4041 2004-03-12  Danny Smith  <dannysmith@users.sourceforge.net>
4042
4043         * config/i386/winnt.c (i386_pe_strip_name_encoding_full): Strip
4044         leading '@' on fastcall symbols before stripping suffix.
4045
4046 2004-03-12  Roger Sayle  <roger@eyesopen.com>
4047
4048         * combine.c (unmentioned_reg_p): New function to check whether an
4049         expression is a "specialization" of another, i.e. that there are
4050         no registers or memory references mentioned in the first that don't
4051         appear in the second.
4052         (unmentioned_reg_p_1): New helper subroutine of unmentioned_reg_p.
4053         (combine_instructions): Also try combining instructions using the
4054         REG_EQUAL note from a preceding log-linked instruction.
4055
4056 2004-03-12  Roger Sayle  <roger@eyesopen.com>
4057
4058         * config/i386/i386.c (ix86_split_ashrdi): Optimize shift by 63.
4059
4060 2004-03-12  Matt Austern  <austern@apple.com>
4061
4062         * target.h (struct gcc_target): New target hook, unwind_label.
4063         * target-def.h (TARGET_ASM_EMIT_UNWIND_LABEL): New hook.
4064         * output.h (default_emit_unwind_label): New function.
4065         * default.h (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): New macro.
4066         (TARGET_USES_WEAK_UNWIND_INFO): New target macro.
4067         (TARGET_SUPPORTS_HIDDEN): New target macro.
4068         * dwarf2out.c (struct dw_fde_struct): Add field for function decl
4069         that corresponds to this FDE.
4070         (FRAME_BEGIN_LABEL): Allow target to override default label.
4071         (output_call_frame_info): If FDEs are linknonce, then use extra
4072         indirection for FDE encoding, output a label for each FDE, and
4073         output an empty label for each function without an FDE.
4074         (dwarf2out_begin_prologue): Set up decl field when creating an FDE.
4075         * varasm.c (globalize_decl): Call ASM_MAKE_LABEL_LINKONCE for
4076         decls with DECL_ONE_ONLY set, if that macro is defined.
4077         (make_decl_one_only): Don't use DECL_COMMON if we're compiling
4078         for a SUPPORTS_ONE_ONLY target.
4079         * config/darwin-protos.h (darwin_unique_section): Declare.
4080         (darwin_asm_named_section): Likewise.
4081         (darwin_section_type_flags): Likewise.
4082         (darwin_non_lazy_pcrel): Likewise.
4083         (darwin_emit_unwind_label): Likewise.
4084         (darwin_make_decl_one_only): Likewise.
4085         * config/darwin.c (machopic_finish): Get rid of tweak that
4086         eliminate stubs for symbols that are defined.
4087         (darwin_encode_section_info): Don't treat weak functions as defined.
4088         (darwin_make_decl_one_only): Define.
4089         (darwin_asm_named_section): Likewise.
4090         (darwin_section_type_flags): Likewise.
4091         (darwin_unique_section): Likewise.
4092         (darwin_emit_unwind_label): Likewise.
4093         (darwin_non_lazy_pcrel): Likewise.
4094         (darwin_asm_output_dwarf_delta): Difference between two labels is
4095         local only if both labels are local.
4096         * config/darwin.h (MAKE_DECL_ONE_ONLY): Define.
4097         (ASM_MAKE_LABEL_LINKONCE): Likewise.
4098         (TARGET_SUPPORTS_HIDDEN): Likewise.
4099         (TARGET_USES_WEAK_UNWIND_INFO): Likewise.
4100         (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): Likewise.
4101         (FRAME_BEGIN_LABEL): Likewise.
4102         (ASM_DECLARE_OBJECT_NAME): Make references to weak symbols indirect.
4103         (ASM_DECLARE_FUNCTION_NAME): Likewise.
4104         (darwin_eh_frame_section): Give __eh_frame section the coalesced flag.
4105         (TARGET_ASM_UNIQUE_SECTION): Define.
4106         (EH_FRAME_SECTION_NAME): Define.
4107         (EH_FRAME_SECTION_ATTR): Likewise.
4108         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
4109         (TARGET_ASM_NAMED_SECTION): Likewise.
4110         (TARGET_SECTION_TYPE_FLAGS): Likewise.
4111         * doc/tm.texi: Document TARGET_USES_WEAK_UNWIND_INFO,
4112         TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, TARGET_SUPPORTS_HIDDEN,
4113         TARGET_ASM_EMIT_UNWIND_LABEL.
4114
4115 2004-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4116
4117         * builtins.c (expand_builtin_mathfn): Add pow10* to the
4118         existing exp10* case.
4119         (expand_builtin): Likewise.
4120
4121 2004-03-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
4122
4123         * doc/tm.texi (registers) <Values in Registers>: Add
4124         entry for REGMODE_NATURAL_SIZE.
4125
4126 2004-03-12  Richard Henderson  <rth@redhat.com>
4127
4128         PR target/14547
4129         * target.h (struct gcc_target): Move calls substructure before
4130         booleans.  Add split_complex_arg.
4131         * function.c (assign_parms, split_complex_args): Use it.
4132         * calls.c (expand_call): Likewise.
4133         (split_complex_values): Likewise.  Check for splittable types
4134         before allocating memory.
4135         (split_complex_types): Likewise.
4136         * system.h (SPLIT_COMPLEX_ARGS): Poison.
4137         * expr.h (SPLIT_COMPLEX_ARGS): Remove.
4138         * target-def.h (TARGET_SPLIT_COMPLEX_ARG): New.
4139         * config/alpha/alpha.c (alpha_split_complex_arg): New.
4140         (TARGET_SPLIT_COMPLEX_ARG): New.
4141         * config/alpha/alpha.h (SPLIT_COMPLEX_ARGS): Remove.
4142         * config/rs6000/rs6000.c (TARGET_SPLIT_COMPLEX_ARG): New.
4143         (rs6000_override_options): Zap it for non-AIX.
4144         (rs6000_function_value): Use targetm.calls.split_complex_arg.
4145         * config/rs6000/rs6000.h (SPLIT_COMPLEX_ARGS): Remove.
4146         * config/xtensa/xtensa.c (TARGET_SPLIT_COMPLEX_ARG): New.
4147         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Remove.
4148         * doc/tm.texi (TARGET_SPLIT_COMPLEX_ARG): Modify from old
4149         SPLIT_COMPLEX_ARGS entry.
4150
4151 2004-03-11  Richard Henderson  <rth@redhat.com>
4152
4153         * config/alpha/alpha.c (xfloating_ops, vax_cvt_ops): New.
4154         (alpha_lookup_xfloating_lib_func): Use them, return rtx.
4155         (alpha_emit_xfloating_arith): Update to match.
4156         (alpha_emit_xfloating_compare): Likewise.
4157         (alpha_emit_xfloating_cvt): Likewise.
4158         (alpha_emit_xfloating_libcall): Take already built symbol,
4159         mark call const.
4160         * config/alpha/alpha.md (extendsftf2, extenddftf2): Take
4161         op1 in a register.
4162
4163 2004-03-11  Richard Henderson  <rth@redhat.com>
4164
4165         PR target/14539
4166         * config/alpha/alpha.h (STACK_BOUNDARY): Set to 128.
4167
4168         * simplify-rtx.c (simplify_relational_operation): Fix typo.
4169
4170 2004-03-11  Richard Henderson  <rth@redhat.com>
4171
4172         PR middle-end/14477
4173         * except.c (remove_unreachable_regions): Look thru CALL_PLACEHOLDER.
4174
4175 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
4176
4177         PR target/14262
4178         * calls.c (load_register_parameters): If BLOCK_REG_PADDING is not
4179         defined, pass small BLKmode values in registers in the low-order part.
4180
4181 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
4182
4183         * combine.c (if_then_else_cond): Check for NULL return value of
4184         simplify_gen_subreg.
4185
4186 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
4187
4188         PR target/14496
4189         * config/mips/mips.h (UNITS_PER_FPVALUE): Fix value for
4190         TARGET_SINGLE_FLOAT.
4191
4192 2004-03-11  Steve Ellcey  <sje@cup.hp.com>
4193
4194         * config/ia64/hpux.h (TARGET_INIT_LIBFUNCS): Add undef.
4195         * config/ia64/ia64.h (TARGET_INIT_LIBFUNCS): Add define.
4196         * config/ia64/ia64.c (ia64_init_libfuncs): New.
4197         (ia64_hpux_init_libfuncs): Add call to ia64_init_libfuncs.
4198
4199 2004-03-11  Roger Sayle  <roger@eyesopen.com>
4200
4201         * fold-const.c (negate_expr_p) <RSHIFT_EXPR>: We can optimize
4202         -((int)X>>C) where C is an integer constant one bit less than the
4203         size of X into (unsigned)X>>C.  Similarly for unsigned->signed.
4204         (negate_expr) <RSHIFT_EXPR>: Implement the above transformations.
4205
4206         * simplify-rtx.c (simplify_unary_operation): Also implement the
4207         above transformations at the RTL level.
4208
4209 2004-03-11  Alan Modra  <amodra@bigpond.net.au>
4210
4211         * real.c (encode_ibm_extended): Do round low word.
4212
4213 2004-03-11  Ben Elliston  <bje@wasabisystems.com>
4214
4215         * config/arm/arm.md (is_xscale): Comment this attribute and move
4216         it a bit further up in the file, closer to related attributes.
4217
4218 2004-03-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
4219
4220         * config/host-solaris.c (sol_gt_pch_use_address): Add
4221         missing terminating marker to comment.
4222
4223 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
4224
4225         * config/mips/mips.md: Use move_operand in splitters for 64-bit moves.
4226         (movdi, movsi, movhi, movqi, movsf, movdf): Remove predicates.
4227         (*movdi_32bit_mips16, *movsi_mips16, *movhi_mips16, *movqi_mips16)
4228         (*movsf_mips16, *movdf_mips16):  Name unnamed patterns.  Use
4229         move_operand as source predicate in all cases.
4230         (*movdi_32bit): Renamed from movdi_internal.  Remove 'F' constraint.
4231         Test reg_or_0_operand.  Use move_operand as source predicate.
4232         (*movdi_64bit): Renamed from movdi_internal2.  Test reg_or_0_operand.
4233         (*movdi_64bit_mips16): Renamed from movdi_internal2_mips16.
4234         (*movsi_internal): Renamed from movsi_internal.  Test reg_or_0_operand.
4235         (movhi, movqi, movsf, movdf): Use mips_legitimize_move.
4236         (*movhi_internal): Renamed from movhi_internal.  Test reg_or_0_operand.
4237         Use move_operand as source predicate.  Remove 'K' constraint.
4238         (*movqi_internal): Likewise movqi_internal.
4239         (*movsf_hardfloat): Renamed from movsf_internal1.  Test
4240         reg_or_0_operand.  Use move_operand as source predicate.
4241         (*movsf_softfloat): Likewise movsf_internal2.
4242         (*movdf_hardfloat_64bit): Likewise movsf_internal1a.
4243         (*movdf_hardfloat_32bit): Likewise movsf_internal1b.
4244         (*movdf_softfloat): Likewise movdf_internal2.
4245         * config/mips/mips.c (move_operand): Match arbitrary CONST_INTs
4246         for DImode if !TARGET_64BIT.
4247         (mips_legitimize_move): Simplify accordingly.
4248
4249 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
4250
4251         PR/14362
4252         * var-tracking.c (struct variable_def): Added field refcount.
4253         (variable_htab_free): Decrease the refcount and delete variable
4254         only if there are no more references.
4255         (unshare_variable): New function.
4256         (vars_copy_1): Increase refcount instead of copying the variable.
4257         (variable_union): Share the variables where possible, unshare
4258         the variables if needed.
4259         (variable_different_p): Return false if var1 and var2 are
4260         the same structure.
4261         (variable_was_changed): Init the refcount of new variable.
4262         (set_frame_base_location): Unshare variable if needed.
4263         (set_variable_part): Init the refcount of new variable.
4264         Unshare the variables if needed.
4265         (delete_variable_part): Unshare the variables if needed.
4266         (emit_notes_for_differences_1): Init the refcount of new variable.
4267         (vt_add_function_parameters): Do not add function parameters to
4268         IN set of ENTRY_BLOCK_PTR because it is unused anyway.
4269         (vt_initialize): Do not add frame_base_decl to IN set of
4270         ENTRY_BLOCK_PTR because it is unused anyway.
4271
4272 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
4273
4274         * var-tracking.c (vars_copy_1): Cleanup and speedup chain operations.
4275         (vars_copy): Likewise.
4276         (variable_union): Likewise.
4277         (set_variable_part): Likewise.
4278         (delete_variable_part): Likewise.
4279
4280 2004-03-11  Kazu Hirata  <kazu@cs.umass.edu>
4281
4282         * c-typeck.c, combine.c, cse.c, dominance.c, et-forest.h,
4283         ggc-page.c, var-tracking.c, config/fp-bit.c, config/c4x/c4x.c,
4284         config/cris/cris.c, config/i386/ppro.md, config/i860/i860.c,
4285         config/i860/i860.h, config/m32r/m32r.h, config/m32r/xm-m32r.h,
4286         config/m68hc11/m68hc11.h, config/m68hc11/m68hc11.md,
4287         config/mips/mips.c, config/mmix/mmix.c, config/ns32k/ns32k.h,
4288         config/pa/pa.c, config/pa/pa32-regs.h, config/pa/pa64-regs.h,
4289         config/pdp11/pdp11.h, config/rs6000/rs6000.c,
4290         config/stormy16/stormy16.c: Fix comment typos and formatting.
4291
4292 2004-03-11  Nathanael Nerode  <neroden@gcc.gnu.org>
4293
4294         * configure: Regenerate, since I forgot to while committing Paolo's
4295         changes.
4296
4297 2004-03-08  Paolo Bonzini  <bonzini@gnu.org>
4298
4299         PR ada/14131
4300         Move language detection to the top level.
4301         * configure.ac: Remove code to detect languages,
4302         it now lives exclusively in the top level.
4303         * aclocal.m4 (gcc_AC_PROG_GNAT): Moved to the
4304         top level, renamed to ACX_PROG_GNAT.
4305
4306 2004-03-10  Richard Henderson  <rth@redhat.com>
4307
4308         * c-pch.c (c_common_no_more_pch): Update for gt_pch_use_address
4309         extra arguments.
4310         * config.host (*-*-solaris2*, *-*-linux*): Add out_host_hook_obj
4311         and host_xmake_file fragments.
4312         * ggc-common.c (gt_pch_save): Update for gt_pch_get_address change.
4313         (gt_pch_restore): Similarly for gt_pch_use_address.
4314         (default_gt_pch_get_address): New.
4315         (mmap_gt_pch_get_address): Split out of gt_pch_save.
4316         (default_gt_pch_use_address): Split out of gt_pch_restore.
4317         (mmap_gt_pch_use_address): Likewise.
4318         * hooks.c (hook_voidp_size_t_null): Remove.
4319         (hook_bool_voidp_size_t_false): Remove.
4320         * hooks.h: Likewise.
4321         * hosthooks-def.h (HOST_HOOKS_GT_PCH_GET_ADDRESS): Use one of the
4322         default_ or mmap_ definitions.
4323         (HOST_HOOKS_GT_PCH_USE_ADDRESS): Likewise.
4324         * hosthooks.h (struct host_hooks): Update gt_pch_get_address
4325         and gt_pch_use_address.
4326         * config/host-linux.c, config/host-solaris.c: New files.
4327         * config/x-linux, config/x-solaris: New files.
4328         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_get_address):
4329         Update for changed definition.
4330         (darwin_rs6000_gt_pch_use_address): Likewise.
4331         * doc/hostconfig.texi: Update docs.
4332
4333 2004-03-10  Richard Henderson  <rth@redhat.com>
4334
4335         PR c/14517
4336         * c-decl.c (grokdeclarator): Don't warn for duplicate qualifiers
4337         except for pedantic c90 mode.
4338
4339 2004-03-10  Kelley Cook  <kcook@gcc.gnu.org>
4340
4341         * configure.ac: Bump AC_PREREQ to 2.59.
4342         * configure: Regenerate.
4343
4344 2004-03-10  Uros Bizjak  <uros@kss-loka.si>
4345
4346         * optabs.h (enum optab_index): Add new OTI_exp10 and OTI_exp2.
4347         (exp10_optab, exp2_optab): Define corresponding macros.
4348         * optabs.c (init_optabs): Initialize exp10_optab and exp2_optab.
4349         * genopinit.c (optabs): Implement exp10_optab and exp2_optab
4350         using exp10?f2 and exp2?f2 patterns.
4351         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXP10{,F,L}
4352         using exp10_optab, and BUILT_IN_EXP2{,F,L} using exp2_optab.
4353         (expand_builtin): Expand BUILT_IN_EXP10{,F,L} and BUILT_IN_EXP2{,F,L}
4354         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
4355
4356         * config/i386/i386.md (exp10sf2, exp10df2, exp10xf2, exp2sf2,
4357         exp2df2, exp2xf2): New patterns to implement exp10, exp10f, exp10l,
4358         exp2, exp2f and exp2l built-ins as inline x87 intrinsics.
4359
4360 2004-03-10  Anthony Green  <green@redhat.com>
4361
4362         * doc/invoke.texi (ARM Options): Fix -mpfu typo.
4363
4364 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
4365
4366         * config/rs6000/aix.h (TARGET_OS_CPP_BUILTINS): Rename to ...
4367         (TARGET_OS_AIX_CPP_BUILTINS): this.  Conditionally define
4368         __LONGDOUBLE128.
4369         * config/rs6000/aix41.h (TARGET_OS_CPP_BUILTINS): Use
4370         TARGET_OS_AIX_CPP_BUILTINS.
4371         * config/rs6000/aix43.h (TARGET_OS_CPP_BUILTINS): Same.
4372         * config/rs6000/aix51.h (TARGET_OS_CPP_BUILTINS): Same.
4373         * config/rs6000/aix52.h (TARGET_OS_CPP_BUILTINS): Same.
4374         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Revert
4375         previous change.
4376
4377 2004-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4378
4379         * fold-const.c (tree_expr_nonnegative_p): Add more builtin cases.
4380
4381 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
4382
4383         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
4384         __LONGDOUBLE128 on AIX.
4385
4386 2004-03-10  Andrew Haley  <aph@redhat.com>
4387
4388         PR optimization/14381
4389         * function.c (expand_function_end): Emit a blockage insn before
4390         the epilogue when -fnon-call-exceptions is used.
4391
4392         * except.c (expand_start_all_catch): Make comment more accurate.
4393
4394 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
4395
4396         PR target/14480
4397         * config/rs6000/t-rtems: Add missing file on branch.
4398
4399 2004-03-10  Ulrich Weigand  <uweigand@de.ibm.com>
4400
4401         * dbxout.c (dbxout_symbol_location): Do not output references
4402         to optimized-out constant pool symbols.
4403
4404 2004-03-10  Andreas Schwab  <schwab@suse.de>
4405
4406         * config/ia64/ia64.md (divsi3, udivsi3): Remove unused variable
4407         twon34_r.
4408
4409 2004-03-09  James E Wilson  <wilson@specifixinc.com>
4410
4411         * alias.c (alias_sets_might_conflict_p): New.
4412         * c-typeck.c (build_c_cast): Call it if warn_strict_aliasing > 1.
4413         * common.opt (Wstrict-aliasing=): New.
4414         * flags.h (warn_strict_aliasing): Change type to int.
4415         * opts.c (warn_strict_aliasing): Change type to int.
4416         (common_handle_option): Handle OPT_Wstrict_aliasing_.
4417         * tree.h (alias_sets_might_conflict_p): Declare it.
4418         * doc/invoke.tex (-Wstrict-aliasing=2): Document it.
4419
4420 2004-03-10  Roman Zippel  <zippel@linux-m68k.org>
4421
4422         PR bootstrap/12371
4423         * config/m68k/m68k.h (FIXED_REGISTERS): Add arg pointer.
4424         (CALL_USED_REGISTERS): Likewise.
4425         (REG_CLASS_CONTENTS): Likewise.
4426         (REG_ALLOC_ORDER): New.
4427         (REGNO_REG_CLASS): Use regno_reg_class.
4428         * config/m68k/m68k.c: Add regno_reg_class array.
4429
4430 2004-03-09  Steve Ellcey  <sje@cup.hp.com>
4431
4432         * config/ia64/ia64.md (divsi3): Fix algorithm.
4433           (udivsi3): Ditto.
4434           (setf_exp_xf): Remove '*' from name.
4435         * testsuite/gcc.dg/20040309-1.c: New test.
4436
4437 2004-03-09  Ian Lance Taylor  <ian@wasabisystems.com>
4438
4439         * system.h (SUNOS4_SHARED_LIBRARIES): Poison.
4440         * collect2.c: Remove SUNOS4_SHARED_LIBRARIES code.
4441         * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): Don't define.
4442         * config/sparc/sparc.c (sparc_aout_select_section): Remove.
4443         (sparc_aout_select_rtx_section): Don't check
4444         SUNOS4_SHARED_LIBRARIES.
4445         * config/sparc/sparc.h (SUNOS4_SHARED_LIBRARIES): Don't define.
4446
4447 2004-03-10  Hans-Peter Nilsson  <hp@axis.com>
4448
4449         PR other/14474
4450         * doc/md.texi (Pattern Ordering, Dependent Patterns)
4451         (Jump Patterns, Looping Patterns): Wrap in separate "@ifset
4452         INTERNALS".
4453
4454 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
4455
4456         * config/ia64/hpux.h (MULTILIB_DEFAULTS): Define.
4457         (LIBGCC_SPEC): Update to match.
4458
4459 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
4460
4461         * c-decl.c (last_function_parms, last_function_parm_tags)
4462         (last_function_parm_others, current_function_parms)
4463         (current_function_parm_tags, current_function_parm_others):
4464         Delete.
4465         (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES, ARG_INFO_OTHERS):
4466         New macros.
4467         (grokdeclarator): For function definitions, save the arg-info
4468         block from the declarator in DECL_ARGUMENTS.
4469         (grokparms): Do not write to last_function_parm*.  Use ARG_INFO_*
4470         macros to operate on arg-info block.  Can assume ARG_INFO_PARMS
4471         contains only PARM_DECLs.  Improve diagnostics.
4472         (get_parm_info): Use ARG_INFO_* macros.  Improve comments and
4473         diagnostics.  Disable some expensive checks if not ENABLE_CHECKING.
4474         (store_parm_decls_newstyle): Take the function to operate on,
4475         and an arg-info block, as arguments; don't get anything from
4476         current_function_* globals.
4477         (store_parm_decls_oldstyle): Likewise.
4478         (store_parm_decls): Pass fndecl and its arg-info block down to
4479         store_parm_decls_newstyle/oldstyle.  Send functions with empty
4480         argument lists through store_parm_decls_newstyle to reduce
4481         overhead.
4482         (pushdecl): Comment on the problems with the call to copy_node.
4483         Clear DECL_ARGUMENTS of the old node after copying it, if it
4484         is an arg-info block instead of a chain of decls.
4485         (start_function): Do not manipulate current_function_parm* or
4486         last_function_parm*.
4487
4488 2004-03-09  Roger Sayle  <roger@eyesopen.com>
4489             Andrew Pinski  <pinskia@physics.uc.edu>
4490
4491         * ifcvt.c (noce_try_sign_mask): New function to transform
4492         "x = (y < 0) ? z : 0" into the equivalent "x = (y >> C) & z".
4493         (noce_process_if_block): Call noce_try_sign_mask.
4494
4495 2004-03-09  Andrew Pinski  <apinski@apple.com>
4496
4497         * c-typeck.c (tagged_types_tu_compatible_p):
4498         Fix typo.
4499
4500 2004-03-09  Roger Sayle  <roger@eyesopen.com>
4501
4502         * simplify-rtx.c (simplify_const_relational_operation): New function
4503         renamed from simplify_relational_operation.
4504         (simplify_relational_operation): Change prototype to accept an
4505         additional mode argument.  Call simplify_const_relational_operation.
4506         (simplify_gen_relational): Update simplify_relational_operation call.
4507         (simplify_ternary_operation): Update simplify_relational_operation
4508         subroutine call to use simplify_const_relational_operation instead.
4509
4510         * rtl.h (simplify_const_relational_operation): Prototype here.
4511         (simplify_relational_operation): Add addtional mode argument.
4512
4513         * combine.c (combine_simplify_rtx): Update calls to
4514         simplify_relational_operation.
4515         (simplify_set): Likewise.
4516         (gen_binary): Likewise.
4517         * cse.c (fold_rtx): Likewise.
4518         * dojump.c (compare_from_rtx): Likewise.
4519         (do_compare_rtx_and_jump): Likewise.
4520         * integrate.c (subst_constants): Likewise.
4521         * unroll.c (simplify_cmp_and_jump_insns): Likewise.
4522
4523 2004-03-09  Kazu Hirata  <kazu@cs.umass.edu>
4524
4525         * config/m32r/m32r.md: Remove all define_peephole's.
4526
4527 2004-03-09  Alan Modra  <amodra@bigpond.net.au>
4528
4529         * config/rs6000/rs6000.md: Remove trailing whitespace.
4530
4531 2004-03-08  Eric Christopher  <echristo@redhat.com>
4532
4533         * Makefile.in (site.exp): Add libiconv variable definition.
4534
4535 2004-03-09  Hans-Peter Nilsson  <hp@axis.com>
4536
4537         * configure: Regenerate for config/accross.m4 correction.
4538
4539 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
4540
4541         PR target/14480
4542         * config/rs6000/t-rtems: Add missing file on branch.
4543
4544 2004-03-08  Roger Sayle  <roger@eyesopen.com>
4545
4546         PR middle-end/14289
4547         * c-typeck.c (c_mark_addressable): A register variable should
4548         be considered global if its not automatic, i.e. TREE_PUBLIC,
4549         TREE_STATIC or DECL_EXTERNAL.
4550         * function.c (put_var_into_stack): Call abort when placing a
4551         hard register into the stack, if x_parm_reg_stack_loc is NULL.
4552
4553 2004-03-08  Ulrich Weigand  <uweigand@de.ibm.com>
4554
4555         * config/s390/s390.md ("*extendqidi2_short_displ"): Add CC clobber.
4556         ("*extendqisi2_short_displ"): Likewise.
4557
4558 2004-03-08  Kazu Hirata  <kazu@cs.umass.edu>
4559
4560         * config/pdp11/pdp11.c (comparison_operator_index): Remove.
4561         (comp_operator): Likewise.
4562         * config/pdp11/pdp11-protos.h: Remove corresponding
4563         prototypes.
4564
4565 2004-03-08  Eric Botcazou  <ebotcazou@act-europe.fr>
4566
4567         * expr.c (highest_pow2_factor_for_type): Rename into
4568         highest_pow2_factor_for_target.  Use DECL_ALIGN instead of
4569         TYPE_ALIGN when the target is a COMPONENT_REF.
4570         (expand_assignment): Ajust call to highest_pow2_factor_for_type.
4571
4572 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
4573
4574         * config/rs6000/rs6000.c: Formatting fix.
4575         (legitimate_offset_address_p): Correct offset range check.
4576
4577         * config/rs6000/rs6000.c (rs6000_override_options): Don't override
4578         -msoft-float by -mcpu.  Consolidate similar code for MASK_MULTIPLE
4579         and MASK_STRING.
4580
4581 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
4582
4583         * config/rs6000/rs6000.md (ashrdi3): Do not call ashrdi3_no_power
4584         for little endian.
4585         ("ashrdi3_no_power"): Disable for little endian.
4586         (ashrdi3): Same.
4587
4588 2004-03-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4589
4590         * fold-const.c (tree_expr_nonnegative_p): Reformat checks for
4591         builtins.
4592
4593 2004-03-08  Hans-Peter Nilsson  <hp@axis.com>
4594
4595         PR target/14471
4596         * configure.ac (Target-specific assembler checks) <cris-*-*>: New
4597         case, checking for -no-mul-bug-abort option.
4598         * configure, config.in: Regenerate.
4599         * doc/invoke.texi (CRIS Options): Document -mmul-bug-workaround
4600         and -mno-mul-bug-workaround.
4601         * config/cris/cris.md ("smulsi3_highpart", "umulsi3_highpart")
4602         ("mulsidi3", "umulsidi3"): Prefix output template with "%!".
4603         ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3"):
4604         Ditto.  Make attribute "slottable" dependent on TARGET_MUL_BUG.
4605         * config/cris/mulsi3.asm (__Mul) [__CRIS_arch_version >= 10]: Make
4606         sure mulu.d is not last on cache-line.
4607         * config/cris/cris.h (ASM_SPEC): Translate -mno-mul-bug-workaround
4608         into -no-mul-bug-abort depending on HAVE_AS_MUL_BUG_ABORT_OPTION.
4609         (TARGET_MASK_MUL_BUG, TARGET_MUL_BUG): New macros.
4610         (TARGET_SWITCHES): New options -mmul-bug-workaround and
4611         -mno-mul-bug-workaround.
4612         (TARGET_DEFAULT): Include TARGET_MASK_MUL_BUG.
4613         (PRINT_OPERAND_PUNCT_VALID_P): Include '!'.
4614         * config/cris/cris.c (cris_operand_extend_operator): Clarify
4615         relation to MULT in head comment.
4616         (cris_op_str): Abort for MULT.
4617         (cris_print_operand) <case '!'>: New case.
4618
4619 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
4620
4621         PR debug/11983
4622         * dwarf2out.c (enum dw_val_class): Rename dw_val_class_float to
4623         dw_val_class_vec.  Replace use throughout file.
4624         (dw_float_const): Delete.
4625         (dw_vec_const): New.
4626         (dw_val_struct_union): Rename val_float to val_vec.  Replace use
4627         throughout file.
4628         (add_AT_vec): Rename from add_AT_float.  Add elt_size param.
4629         (same_dw_val_p): Adjust vec comparison.  Use memcmp.
4630         (size_of_die): Adjust dw_val_class_vec sizing.
4631         (output_die): Output dw_val_class_vec.
4632         (insert_int, extract_int, insert_float): New functions.
4633         (add_const_value_attribute): Use insert_float for CONST_DOUBLE.
4634         Handle CONST_VECTOR.
4635         (add_location_or_const_value_attribute): Handle CONST_VECTOR.
4636
4637 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
4638
4639         * config/rs6000/rs6000.c (rs6000_parse_abi_options): SPE and
4640         AltiVec abi cannot co-exist.
4641
4642         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Same.
4643
4644 2004-03-07  Jan Hubicka  <jh@suse.cz>
4645
4646         * except.c (emit_to_new_bb_before):  Break fallthru edges.
4647
4648 2004-03-07  Stephane Carrez  <stcarrez@nerim.fr>
4649
4650         * config/m68hc11/m68hc11.md ("*lshrsi3_const"): Disable for 68HC12.
4651         ("*lshrsi3"): Also accept an immediate for 68HC12.
4652         ("*ashrsi3_const"): Likewise.
4653         ("*ashrsi3"): Likewise.
4654         ("*ashlsi3_const"): Likewise.
4655         ("*ashlsi3"): Likewise.
4656         ("cmphi_1_hc12"): Compare two hard register by pushing them and
4657         comparing with a pop; don't use a split for that.
4658         ("cmphi split"): Disable compare split for 68HC12.
4659
4660         * config/m68hc11/m68hc11.c (m68hc11_notice_update_cc): Invalidate
4661         the status operands if they have side effects.
4662
4663 2004-03-07  Kazu Hirata  <kazu@cs.umass.edu>
4664
4665         * defaults.h (LEGITIMIZE_ADDRESS): Provide a default
4666         definition.
4667         * config/arc/arc.h, config/fr30/fr30.h, config/frv/frv.h,
4668         config/h8300/h8300.h, config/ia64/ia64.h,
4669         config/mcore/mcore.h, config/mmix/mmix.h,
4670         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
4671         config/stormy16/stormy16.h, config/v850/v850.h,
4672         config/vax/vax.h (LEGITIMIZE_ADDRESS): Remove.
4673         * doc/tm.texi (LEGITIMIZE_ADDRESS): Mention the default
4674         definition.
4675
4676 2004-03-07  Roger Sayle  <roger@eyesopen.com>
4677
4678         * fold-const.c (fold) <IOR_EXPR>: Fold x | x as x.
4679         <XOR_EXPR>: Fold x ^ x as zero.
4680         <AND_EXPR>: Fold x & x as x.
4681
4682 2004-03-07  Roger Sayle  <roger@eyesopen.com>
4683
4684         * fold-const.c (fold) <EQ_EXPR>: Rewrite optimization to transform
4685         "foo++ == const" into "++foo == const+incr".
4686
4687 2004-03-07  Richard Sandiford  <rsandifo@redhat.com>
4688
4689         * config/mips/mips.c (mips_in_small_data_p): Return false if
4690         TARGET_ABICALLS.
4691
4692 2004-03-06  Stephane Carrez  <stcarrez@nerim.fr>
4693
4694         * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Use 2,-sp to push
4695         the stack register.
4696         (expand_prologue): Don't make an interrupt or a trap handler a far
4697         symbol.
4698         (m68hc11_initial_elimination_offset): Likewise.
4699
4700 2004-03-06  Richard Henderson  <rth@redhat.com>
4701
4702         * config/alpha/alpha.c (alpha_in_small_data_p): False for functions.
4703
4704 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
4705
4706         * config/ns32k/ns32k-protos.h: Add a prototype for
4707         ns32k_notice_update_cc.
4708         * config/ns32k/ns32k.c (ns32k_notice_update_cc): New.
4709         * config/ns32k/ns32k.h (NOTICE_UPDATE_CC): Call
4710         ns32k_notice_update_cc.
4711
4712 2004-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
4713
4714         * config/s390/s390.md ("load_multiple", "*load_multiple_di",
4715         "*load_multiple_si"): Allow only if reload_completed.
4716         ("store_multiple", "*store_multiple_di", "*store_multiple_si"):
4717         Likewise.
4718
4719 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
4720
4721         * config/vax/vax-protos.h: Add a prototype for
4722         vax_notice_update_cc.
4723         * config/vax/vax.c (vax_notice_update_cc): New.
4724         * config/vax/vax.h (NOTICE_UPDATE_CC): Call
4725         vax_notice_update_cc.
4726
4727 2004-03-06  David Edelsohn  <edelsohn@gnu.org>
4728
4729         * collect2.c (main): Only export initfunc and finifunc if
4730         LD_INIT_SWITCH not defined.
4731         (scan_prog_file): Only export constructors and destructors if
4732         LD_INIT_SWITCH not defined.  Only export symbols not found in
4733         shared objects.
4734
4735 2004-03-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4736
4737         * pa.md (icacheflush): Reorder operands to make match_scratch operand
4738         last.
4739         * pa.h (INITIALIZE_TRAMPOLINE): Remove unnecessary scratch argument
4740         from calls to gen_icacheflush.
4741
4742 2004-03-06  Richard Henderson  <rth@redhat.com>
4743
4744         * config/alpha/alpha.h (MASK_LONG_DOUBLE_128): New.
4745         (TARGET_LONG_DOUBLE_128): New.
4746         (TARGET_SWITCHES): Add long-double-{128,64}.
4747         (TARGET_HAS_XFLOATING_LIBS): Default to TARGET_LONG_DOUBLE_128.
4748         (LONG_DOUBLE_TYPE_SIZE): Honor TARGET_LONG_DOUBLE_128.
4749         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): New.
4750         (WIDEST_HARDWARE_FP_SIZE): New.
4751         (TARGET_CPU_CPP_BUILTINS): Define __LONG_DOUBLE_128__.
4752         * config/alpha/alpha.c (override_options): Clear MASK_LONG_DOUBLE_128
4753         if TARGET_VAX_FLOAT.
4754         * config/alpha/osf5.h (LONG_DOUBLE_TYPE_SIZE): Remove.
4755         (TARGET_DEFAULT): Set MASK_LONG_DOUBLE_128.
4756
4757 2004-03-06  Richard Henderson  <rth@redhat.com>
4758
4759         * config/alpha/alpha.c (alpha_swapped_comparison_operator): Fix
4760         botched rtx class conversion.
4761
4762 2004-03-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4763
4764         * tree.h (BUILTIN_EXP10_P, BUILTIN_EXPONENT_P, BUILTIN_SQRT_P,
4765         BUILTIN_CBRT_P, BUILTIN_ROOT_P): New macros.
4766
4767         * builtins.c (fold_builtin_logarithm, fold_builtin): Use new
4768         macros.
4769         * fold-const.c (fold_mathfn_compare, fold): Likewise.
4770
4771 2004-03-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
4772
4773         PR target/14343
4774         * config/i386/i386.md (movv2di_internal): Conditionalize on
4775         TARGET_SSE, not TARGET_SSE2.
4776
4777 2004-03-05  Chris Demetriou  <cgd@broadcom.com>
4778
4779         * config.gcc (mips64orion-*-elf*, mips64orionel-*-elf*): Delete
4780         duplicated line.
4781
4782 2004-03-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4783
4784         * builtins.c: Consistently use logN not log* in comments.
4785
4786 2004-03-05  Andreas Krebbel  <krebbel1@de.ibm.com>
4787
4788         * rtl.h (mem_expr_equal_p): Function prototype added.
4789         * cfgcleanup.c (merge_memattrs): New function.
4790         (flow_find_cross_jump): Call merge_memattrs for matching insns.
4791         * emit-rtl.c (mem_expr_equal_p): New function.
4792
4793 2004-03-05  Ziemowit Laski  <zlaski@apple.com>
4794
4795         * objc/objc-act.c (synth_module_prologue): Const-qualify
4796         objc_selector type if using the GNU runtime; fix generated
4797         signatures for objc_msg_lookup and objc_msg_lookup_super
4798         to match what GNU ObjC headers provide; reformat and clean up.
4799         (synth_self_and_ucmd_args): Use previously constructed (and
4800         hence possibly const-qualified) objc_selector type.
4801
4802 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
4803
4804         * doc/tm.texi (HARD_REGNO_RENAME_OK): Document.
4805
4806 2004-03-05  Jason Merrill  <jason@redhat.com>
4807
4808         * tree.h (TYPE_HASH): Use TYPE_UID.
4809         (TREE_HASH): New macro with old definition of TYPE_HASH.
4810         * tree.c (build_type_attribute_variant): Use iterative_hash_object.
4811         (build_array_type, build_function_type): Likewise.
4812         (build_method_type_directly): Likewise.
4813         (build_offset_type, build_complex_type): Likewise.
4814         (type_hash_list, attribute_hash_list): Likewise. Now static.
4815         * except.c: s/TYPE_HASH/TREE_HASH/.
4816
4817 2004-03-05  Bob Wilson  <bob.wilson@acm.org>
4818
4819         * config/xtensa/xtensa.c (function_arg): Handle 16-byte aligned args.
4820         (xtensa_va_start): Initialize __va_stk to ($arg_ptr - 32).  Adjust
4821         __va_ndx by 2 words when referencing an argument on the stack.
4822         (xtensa_va_arg): Handle 16-byte aligned args.  Adjust __va_ndx by 2
4823         words when an arg on the stack is first seen.
4824
4825 2004-03-05  Paul Brook  <paul@codesourcery.com>
4826
4827         * arm.h (ARM_FLAG_VFP): Remove.
4828         (ARM_FLAG_ATPCS, CIRRUS_FIX_INVALID_INSNS): Renumber.
4829         * netbsd-elf.h (ARM_FLAG_VFP): Remove.
4830
4831 2004-03-05  Paul Brook  <paul@codesourcery.com>
4832
4833         * function.c (assign_parms): Include pretend alignment offset.
4834
4835 2004-03-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4836
4837         * stor-layout.c (layout_type, case FUNCTION_TYPE): Make size
4838         FUNCTION_BOUNDARY, not POINTER_SIZE * 2.
4839
4840 2004-03-05  Ian Lance Taylor  <ian@wasabisystems.com>
4841
4842         * configure.ac: When passing --enable-languages to subdir
4843         configure when host != build, make sure we don't pass an empty
4844         value.
4845         * configure: Regenerate.
4846
4847 2004-03-05  Nathan Sidwell  <nathan@codesourcery.com>
4848
4849         PR 13577
4850         * gcc.c (cc1_options): Robustify -auxbase-strip from multiple -o
4851         options.
4852
4853 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
4854
4855         * simplify-rtx.c (simplify_relational_operation): If
4856         flag_wrapv is set, do not move terms between the two
4857         side of a relational operator.
4858
4859 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
4860
4861         * rtlanal.c: Include target.h and output.h
4862         (rtx_cost, address_cost, default_address_cost): Move from...
4863         * cse.c (rtx_cost, address_cost, default_address_cost):
4864         ... this file.
4865         * rtl.h (rtx_cost, address_cost): Move under rtlanal.c.
4866         * Makefile.in: Adjust dependencies.
4867
4868 2004-03-05  Paolo Bonzini <bonzini@gnu.org>
4869
4870         * cse.c (cse_end_of_basic_block): Make static.
4871         * local-alloc.c (function_invariant_p): Move to
4872         reload1.c.
4873         * loop.c (libcall_other_reg, record_excess_regs):
4874         Make static.
4875         * reload1.c (function_invariant_p): Moved here
4876         from local-alloc.c, made static.
4877         * rtl.h (cse_end_of_basic_block, function_invariant_p,
4878         libcall_other_reg, record_excess_regs): Remove
4879         declarations.
4880
4881 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
4882
4883         * config/m32r/m32r.c (signed_comparison_operator): Add a
4884         missing parenthesis.
4885
4886 2004-03-04  Ian Lance Taylor  <ian@wasabisystems.com>
4887
4888         * ggc-common.c (gt_pch_restore): Don't unmap addr unless we are
4889         going to call mmap again.  Read the file into the right place.
4890         Give a fatal error if we have to relocate.
4891
4892 2004-03-04  Bob Wilson  <bob.wilson@acm.org>
4893
4894         * config/xtensa/xtensa.c (xtensa_return_in_msb): New function.
4895         (TARGET_RETURN_IN_MSB): Define to xtensa_return_in_msb.
4896
4897 2004-03-05  Hans-Peter Nilsson  <hp@axis.com>
4898
4899         PR other/14354
4900         * config/fp-bit.c (_fpdiv_parts): Do not round when pack_d would
4901         round the same.  When rounding, clear bits that would cause a
4902         second rounding in pack_d.
4903         (_fpmul_parts): Ditto.  Remove #if 0:d code.
4904
4905 2004-03-04  Ziemowit Laski  <zlaski@apple.com>
4906
4907         PR c++/14425, c++/14426
4908         * config/rs6000/altivec.h (vec_splat_s8, vec_splat_s16,
4909         vec_splat_s32, vec_splat_u8, vec_splat_u16, vec_splat_u32):
4910         Change C++ definitions to accept a 'const int' argument;
4911         the prototypes already do.
4912         * config/rs6000/rs6000.c (rs6000_common_init_builtins):
4913         Rename v4si_ftype_char, v8hi_ftype_char, v16qi_ftype_char,
4914         v4sf_ftype_v4si_char, v4si_ftype_v4sf_char, v4si_ftype_v4si_char,
4915         v8hi_ftype_v8hi_char, v16qi_ftype_v16qi_char,
4916         v16qi_ftype_v16qi_v16qi_char, v8hi_ftype_v8hi_v8hi_char,
4917         v4si_ftype_v4si_v4si_char and v4sf_ftype_v4sf_v4sf_char to
4918         end in ..._int; change them to accept an int instead of a char
4919         as the last parameter.
4920
4921 2004-03-04  Phil Edwards  <phil@codesourcery.com>
4922
4923         * genmultilib:  Change '=' to '-' when translating option names
4924         to directory names.
4925
4926 2004-03-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4927
4928         * expr.c (expand_expr_real, case COMPONENT_REF): Get proper type of
4929         stack slot for temp used for result of BLKmode but in integral mode.
4930
4931 2004-03-04  Jan Hubicka  <jh@suse.cz>
4932
4933         * reload.c (find_reloads): Reorganize if seqeunce to switch.
4934
4935         * cfgrtl.c (rtl_redirect_edge_and_branch):  Set the source BB as dirty.
4936         (cfglayout_redirect_edge_and_branch):  Set the source BB as dirty.
4937
4938 2004-03-04  Steve Ellcey  <sje@cup.hp.com>
4939
4940         * config/ia64/ia64.md (divdf3_internal_thr): Fix algorithm.
4941         * testsuite/gcc.dg/20040303-1.c: New test.
4942
4943 2004-03-04  Steven Bosscher  <stevenb@suse.de>
4944
4945         * ppro.md: Rewrite as a DFA pipeline description.
4946         * i386.md: Remove all uses of the ppro_uops attribute.
4947         * i386.c: (ix86_safe_ppro_uops, ix86_dump_ppro_packet,
4948         ix86_reorder_insn, ix86_sched_reorder_ppro, ix86_sched_init,
4949         ix86_sched_reorder, ix86_variable_issue,
4950         struct ix86_sched_data, TARGET_SCHED_VARIABLE_ISSUE,
4951         TARGET_SCHED_INIT, TARGET_SCHED_REORDER): Remove.
4952         (ia32_use_dfa_pipeline_interface): Add TARGET_PENTIUMPRO.
4953         (ia32_multipass_dfa_lookahead): Add TARGET_PENTIUMPRO.
4954         * athlon.md (athlon_ssecmp_load): Fix comment
4955
4956 2004-03-04  Stuart Hastings  <stuart@apple.com>
4957
4958         * gcc/doc/invoke.texi: Document -mlongcall for Darwin/PPC.
4959
4960 2004-03-04  Stuart Hastings  <stuart@apple.com>
4961
4962         * gcc/config/i386/darwin.h: Darwin/x86 doesn't support CPUs before
4963         686, tell Darwin assembler to allow prefetch insns, non-empty def
4964         of SUBTARGET_OPTION_TRANSLATE_TABLE.
4965
4966 2004-03-04  DJ Delorie  <dj@redhat.com>
4967
4968         PR optimization/14282
4969         * sched-deps.c (sched_analyze_insn): Allow a stack adjustment
4970         between a call and the assignment of its return value.
4971
4972 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
4973
4974         * config/h8300/h8300.c: Put a comment for every function.
4975
4976 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
4977
4978         * config/h8300/h8300.md: Add comments about peephole2's.
4979
4980 2004-03-04  Steven Bosscher  <stevenb@suse.de>
4981
4982         * i386.h (TARGET_CPU_DEFAULT_nocona): Fix value.
4983
4984 2004-03-04  Jan Hubicka  <jh@suse.cz>
4985
4986         * cfgcleanup.c (thread_jump): Update call of cselib_init.
4987         * cselib.c (cselib_record_memory): New static variable.
4988         (cselib_lookup_mem, cselib_record_set, cselib_record_sets):
4989         Give up on memories when asked for.
4990         (cselib_init): Accept new argument.
4991         * cselib.h (cselib_init): Update prototype.
4992         * gcse.c (local_cprop_pass): Update call of cselib_init.
4993         * loop.c (load_mems): Update call of cselib_init.
4994         * postreload.c (reload_cse_regs_1): Update call of cselib_init.
4995         * sched-deps.c (sched_analyze): Update call of cselib_init.
4996
4997 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
4998             GP <gp@qnx.com>
4999
5000         * config/rs6000/rs6000.c (output_function_profiler): Append @plt
5001         when compiling PIC.
5002
5003 2004-03-04  Josef Zlomek  <zlomekj@suse.cz>
5004
5005         PR/14362
5006         * var-tracking.c (track_expr_p): Do not track variables which
5007         should be ignored for debugging purposes.
5008
5009 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
5010
5011         * real.c (encode_ibm_extended): Don't bother rounding low double.
5012         * c-cppbuiltin.c (builtin_define_float_constants): Tweak MAX
5013         when fmt->pnan < fmt->p.
5014
5015 2004-03-04  Eric Christopher  <echristo@redhat.com>
5016
5017         * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Fix to check
5018         only range of valid arg registers and fixed_regs.
5019
5020 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
5021
5022         PR target/14406
5023         * config/rs6000/rs6000.md (abstf2, abstf2+1): Delete define_insn.
5024         (abstf2, abstf2_internal): New define_expand.
5025
5026 2004-03-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
5027
5028         PR optimization/14235
5029         * expr.c (convert_move): Copy the source to a new pseudo
5030         when converting from a sub-word source to a larger-than-word
5031         register which conflicts with the source.
5032
5033 2004-03-03  Zack Weinberg  <zack@codesourcery.com>
5034
5035         PR 13728
5036         * c-decl.c (diagnose_mismatched_decls): Issue an error for two
5037         parameters with the same name, unless one is a forward decl.
5038         Do not issue a redundant-redeclaration warning for forward
5039         decls of parameters.
5040
5041 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
5042
5043         * doc/install.texi (*-ibm-aix*): Document use of Bash to speed up
5044         configuration.
5045
5046 2004-03-03  Ian Lance Taylor  <ian@wasabisystems.com>
5047
5048         * ggc-zone.c (ggc_pch_write_object): Don't align file pointer.
5049
5050 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
5051
5052         * target-def.h (TARGET_OPTF): Delete.
5053         * c-opts.c (TARGET_OPTF): Define.
5054
5055 2004-03-04  Jan Hubicka  <jh@suse.cz>
5056
5057         * cselib.c (cselib_finish): Fix another miss-application of my previous
5058         patch.
5059
5060 2004-03-03  Mike Stump  <mrs@apple.com>
5061
5062         Add framework support for darwin.
5063
5064         * c-incpath.c: Include target.h and machmode.h.
5065         (add_path): Use a consistent style for cpp_dir.  Initialize
5066         p->construct to 0.
5067         (add_cpp_dir_path): New.
5068         (register_include_chains): Add use of extra_includes callback.
5069         (hook_void_int): Add.
5070         (target_c_incpath): Add.
5071         * c-incpath.h (add_cpp_dir_path): New.
5072         (target_c_incpath_s): Add.
5073         (target_c_incpath): Add.
5074         (C_INCPATH_INIT): Add.
5075         * c-opts.c (c_common_missing_argument,
5076         c_common_handle_option): Add -F argument processing.
5077         * c.opt: Add -F argument processing.
5078         * gcc.c (trad_capable_cpp): Add -F argument processing.
5079         * cppfiles.c (find_file_in_dir): Update to use construct
5080         callback.
5081         (search_path_exhausted, cpp_get_path, cpp_get_buffer,
5082         cpp_get_prev): New.
5083         (_cpp_find_file): Use search_path_exhausted.
5084         (make_cpp_dir): Initialize construct to 0.
5085         * cpplib.h (missing_header_cb
5086         cpp_get_path, cpp_get_buffer, cpp_get_file, cpp_get_prev): New.
5087         (cpp_callbacks): Add missing_header
5088         (cpp_dir): Add construct.
5089         * target-def.h: (TARGET_OPTF): New.
5090         * hooks.c (hook_void_int, hook_void_charptr): Add.
5091         * hooks.h (hook_void_int, hook_void_charptr): Add.
5092         * Makefile.in (c-incpath.o) : Add $(TARGET_H) and
5093         $(MACHMODE_H) dependencies.
5094         * doc/invoke.texi (Darwin Options): Document -F.
5095         * doc/tm.texi (TARGET_EXTRA_INCLUDES): Add.
5096         (TARGET_OPTF): Add.
5097         * fix-header.c (target_c_incpath): Add.
5098
5099         * config/darwin-c.c: Add c-incpath.h include.
5100         (using_frameworks, find_subframework_file,
5101         find_subframework_header, add_system_framework_path,
5102         frameworks_in_use, num_frameworks, max_frameworks,
5103         add_framework, find_framework, struct framework_header,
5104         framework_header_dirs, framework_construct_pathname,
5105         find_subframework_file, add_system_framework_path,
5106         add_framework_path, framework_defaults,
5107         darwin_register_frameworks, find_subframework_header): Add.
5108         * config/darwin.h (TARGET_EXTRA_INCLUDES, TARGET_OPTF): New.
5109         (TARGET_OPTION_TRANSLATE_TABLE): Add -framework support.
5110         (CPP_SPEC): Add __APPLE_CC__ support.
5111         * t-darwin (darwin-c.o): Add c-incpath.h dependency.
5112
5113 2004-03-04  Jan Hubicka  <jh@suse.cz>
5114
5115         * cselib.c (cselib_finish): Fix miss-application of my previous
5116         patch.
5117
5118 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
5119
5120         * hooks.c (hook_tree_tree_identity): New.
5121         * hooks.h: Add a prototype for hook_tree_tree_identity.
5122         * stmt.c (expand_asm_operands): Use targetm.md_asm_clobbers
5123         instead of MD_ASM_CLOBBERS.
5124         * system.h (MD_ASM_CLOBBERS): Poison.
5125         * target-def.h (TARGET_MD_ASM_CLOBBERS): New.
5126         (TARGET_INITIALIZER): Add TARGET_MD_ASM_CLOBBERS.
5127         * target.h (gcc_target): Add md_asm_clobbers.
5128         * config/i386/i386.c (TARGET_MD_ASM_CLOBBERS): New.
5129         (ix86_md_asm_clobbers): New.
5130         * config/i386/i386.h (MD_ASM_CLOBBERS): Remove.
5131         * doc/tm.texi (MD_ASM_CLOBBERS): Change to
5132         TARGET_MD_ASM_CLOBBERS.
5133
5134 2004-03-03  Stuart Hastings  <stuart@apple.com>
5135
5136         * gcc/config.gcc: Arrange for Darwin/x86 to build libgcc_eh.a.
5137
5138 2004-03-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
5139
5140         * config/sparc/sparc.c (noov_compare64_op): Fix typo.
5141
5142         * config/sparc/sparc.h (ASM_FLOAT): Delete.
5143         (ASM_DOUBLE): Likewise.
5144         (ASM_LONGDOUBLE): Likewise.
5145         * config/sparc/pbd.h (ASM_INT_OP): Delete.
5146
5147 2003-03-03  Richard Henderson  <rth@redhat.com>
5148
5149         PR opt/13862
5150         * cselib.c (cselib_record_sets): Don't record multiple sets in
5151         asm insns.
5152
5153 2004-03-03  Mostafa Hagog  <mustafa@il.ibm.com>
5154
5155         * common.opt: Add description of the new -fgcse-after-reload flag.
5156
5157         * flags.h (flag_gcse_after_reload): Declaration of global variable.
5158
5159         * gcse.c (reg_used_on_edge ,reg_set_between_after_reload_p,
5160         reg_used_between_after_reload_p, rtx get_avail_load_store_reg,
5161         is_jump_table_basic_block, bb_has_well_behaved_predecessors,
5162         get_bb_avail_insn, hash_scan_set_after_reload,
5163         compute_hash_table_after_reload, eliminate_partially_redundant_loads,
5164         gcse_after_reload, get_bb_avail_insn): New functions to implement
5165         gcse-after-reload.
5166         (gcse_after_reload_main): New function, the main entry point to
5167         gcse-after-reload.
5168
5169         * rtl.h (gcse_after_reload_main): Declaration of the new function.
5170
5171         * opts.c (common_handle_option): Handle the -fgcse-after-reload flag.
5172
5173         * toplev.c (flag_gcse_after_reload): Initialization.
5174
5175         * passes.c (rest_of_handl_gcse2): Call gcse_after_reload_main.
5176
5177         * params.def (PARAM_GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
5178         PARAM_GCSE_AFTER_RELOAD_CRITICAL_FRACTION): New parameters for tuning
5179         the gcse after reload optimization.
5180
5181         * params.h (GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
5182         GCSE_AFTER_RELOAD_CRITICAL_FRACTION): Two macros to access the tuning
5183         parameters.
5184
5185         * doc/invoke.texi: Documentation for the new flag gcse-after-reload.
5186
5187 2004-03-03  Nicolas Pitre <nico@cam.org>
5188
5189         * config/arm/ieee754-df.S (muldf3, divdf3): Fix denormalization of
5190         small negative values.
5191
5192 2004-03-03  Jan Hubicka  <jh@suse.cz>
5193
5194         * cselib.c (hash_table):  Remove GTY marker.
5195         (reg_values): Turn into array.
5196         (used_regs): Likewise.
5197         (n_used_regs): New static variable.
5198         (reg_values_old): Kill.
5199         (clear_table): Update uses of arrays.
5200         (cselib_lookup): Likewise.
5201         (cselib_record_set): Likewise.
5202         (cselib_init): Likewise.
5203         (cselib_finish): Likewise.
5204         (cselib_udpate_varray_sizes): Kill.
5205         * cselib.h (cselib_update_varray_sizes): Kill.
5206
5207 2004-03-03  Paul Brook  <paul@codesourcery.com>
5208
5209         * flow.c (ior_reg_cond, and_reg_cond): Remove stray ")".
5210
5211 2004-03-03  Jan Hubicka  <jh@suse.cz>
5212
5213         * ggc-common.c (ggc_alloc_cleared_stat, ggc_realloc_stat):
5214         Rename from ...; make statistics transparent.
5215         (ggc_alloc_cleared, ggc_realloc_stat): ... these.
5216         (loc_descriptor): New structure.
5217         (hash_descriptor, eq_descriptor, loc_descriptor, cmp_statistics,
5218         add_statistics):
5219         New static function.
5220         (ggc_record_overhead, dump_statistics): New global function.
5221         * ggc-none.c (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
5222         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Rename
5223         from ...; accept locations
5224         (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
5225         ggc_realloc, ggc_alloc_typed):  ... this one.
5226         from ...; accept locations
5227         * ggc-page.c (ggc_alloc_typed_stat, ggc_alloc_zone_stat,
5228         ggc_alloc_stat): Rename from ... ; pass locations
5229         * ggc-page.c (ggc_alloc_typed, ggc_alloc_zone, ggc_alloc):
5230         ... this one.
5231         (ggc_alloc_stat): Record overehead.
5232         * ggc.h (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
5233         ggc_realloc, ggc_alloc_typed):  Turn to macros
5234         (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
5235         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Declare.
5236         (dump_ggc_loc_satistics, ggc_record_overehead): Declare.
5237         * langhooks.h (lhd_make_node): Declare.
5238         (LANG_HOOKS_MAKE_TYPE): Default to new function,
5239         * langhooks.c (lhd_make_node): New.
5240         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Rename from ... ; pass
5241         locations.
5242         (rtx_alloc, swallow_copy_rtx): ... this one.
5243         * rtl.h (rtx_alloc, swallow_copy_rtx): Turn to macros.
5244         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Declare.
5245         * toplpev.c (finalize): Dump stats.
5246         * tree.c (make_node_stat, copy_node_stat, make_tree_vec_stat,
5247         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
5248         Rename from ... ; pass locators.
5249         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
5250         build?,  build_decl): Declare.
5251         * tree.h (make_node_stat, copy_node_stat, make_tree_vec_stat,
5252         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
5253         Declare.
5254         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
5255         build?,  build_decl): New macros.
5256         * Makefile.in (RTL_H, TREE_H): Add statistics.h dependency.
5257         * statistics.h: New file.
5258
5259 2004-03-03  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
5260             Richard Sandiford  <rsandifo@redhat.com>
5261
5262         * config/mips/mips.h (MASK_FIX_SB1): Bump.
5263         (MASK_FIX_R4400, TARGET_FIX_R4400): New macros.
5264         (TARGET_SWITCHES): Add -mfix-r4400 and -mno-fix-r4400.
5265         * config/mips/mips.c (mips_output_division): Fill the branch delay
5266         slot with a nop if TARGET_FIX_R4000.  Extend R4000 workarounds to
5267         TARGET_FIX_R4400.
5268         (mips_output_division): Adjust accordingly.
5269         (override_options): Make -march=r4400 imply -mfix-r4400 by default.
5270         * doc/invoke.texi: Document -mfix-r4400 and new errata workarounds.
5271
5272 2004-03-03  Paolo Bonzini  <bonzini@gnu.org>
5273
5274         * alias.c (rtx_equal_for_memref_p): Use predicates
5275         to test rtx classes and new rtx class codes, possibly
5276         splitting conditionals that tested against '<' and 'o'.
5277         * caller-save.c (save_call_clobbered_regs): Likewise.
5278         * combine.c (contains_muldiv, find_split_point, subst,
5279         combine_simplify_rtx, simplify_if_then_else,
5280         simplify_set, simplify_logical, expand_compound_operation,
5281         make_compound_operation, if_then_else_cond, known_cond,
5282         apply_distributive_law, cached_nonzero_bits,
5283         cached_num_sign_bit_copies, simplify_shift_const,
5284         gen_binary, simplify_comparison, update_table_tick,
5285         record_value_for_reg, get_lsat_value_validate): Likewise.
5286         * cse.c (mention_regs, find_best_addr, find_comparison_args,
5287         fold_rtx, cse_insn, invalidate_memory, cse_basic_block):
5288         Likewise.
5289         * emit-rtl.c (copy_insn_1): Likewise.
5290         * expr.c (force_operand): Likewise.
5291         * final.c (final_scan_insn, get_mem_expr_from_op): Likewise.
5292         * flow.c (notice_stack_pointer_modification_1,
5293         invalidate_mems_from_autoinc, ior_reg_cond, not_reg_cond,
5294         and_reg_cond, elim_reg_cond): Likewise.
5295         * function.c (update_epilogue_consts): Likewise.
5296         * genattrtab.c (attr_rtx_1): Likewise.
5297         * genopinit.c (gen_insn): Likewise.
5298         * integrate.c (subst_constants): Likewise.
5299         * jump.c (reversed_comparison_code_parts,
5300         reversed_comparison_code, delete_related_insns,
5301         rtx_renumbered_equal_p): Likewise.
5302         * local-alloc.c (block_alloc): Likewise.
5303         * loop.c (rtx_equal_for_prefetch_p, maybe_eliminate_biv,
5304         canonicalize_condition): Likewise.
5305         * loop-iv.c (simplify_using_conditions, iv_number_of_iterations):
5306         Likewise.
5307         * optabs.c (add_equal_node, expand_binop): Likewise.
5308         * predict.c (estimate_probability): Likewise.
5309         * ra-debug.c (ra_print_rtx_2op, ra_print_rtx): Likewise.
5310         * recog.c (validate_replace_rtx_1, comparison_operator,
5311         offsettable_address_p, constrain_operands): Likewise.
5312         * reg-stack.c (swap_rtx_condition_1, subst_stack_regs_pat):
5313         Likewise.
5314         * regclass.c (scan_one_insn): Likewise.
5315         * regmove.c (stable_and_no_regs_but_for_p): Likewise.
5316         * regrename.c (kill_autoinc_value): Likewise.
5317         * reload.c (find_reusable_reload, find_reloads,
5318         reg_overlap_mentioned_for_reload_p): Likewise.
5319         * reload1.c (gen_reload, delete_address_reloads_1): Likewise.
5320         * rtl.c (copy_rtx): Likewise.
5321         * rtl.h (CONSTANT_P, INSN_P): Likewise.
5322         * rtlanal.c (commutative_operand_precedence): Likewise.
5323         * sched-deps.c (conditions_mutex_p): Likewise.
5324         * sched-rgn.c (is_cfg_nonregular): Likewise.
5325         * simplify-rtx.c (simplify_gen_binary,
5326         simplify_gen_relational, simplify_replace_rtx,
5327         simplify_unary_operation, simplify_binary_operation,
5328         simplify_ternary_operation, simplify_rtx): Likewise.
5329         * unroll.c (reg_dead_after_loop): Likewise.
5330         * config/alpha/alpha.c (alpha_swapped_comparison_operator,
5331         print_operand): Likewise.
5332         * config/arc/arc.c (proper_comparison_operator): Likewise.
5333         * config/arm/arm.c (arm_arm_address_cost, arm_select_cc_mode):
5334         Likewise.
5335         * config/avr/avr.c (_reg_unused_after): Likewise.
5336         * config/frv/frv.c (frv_ifcvt_modify_tests,
5337         frv_ifcvt_modify_insn, frv_pack_insn): Likewise.
5338         * config/i386/i386.c (ix86_comparison_operator,
5339         ix86_carry_flag_operator, fcmov_comparison_operator,
5340         arith_or_logical_operator, print_operand,
5341         ix86_expand_binary_operator, ix86_binary_operator_ok):
5342         Likewise.
5343         * config/i386/i386.md: Likewise.
5344         * config/ia64/ia64.c (not_postinc_memory_operand,
5345         ia64_print_operand, update_set_flags, errata_emit_nops):
5346         Likewise.
5347         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS,
5348         CONSTRAINT_OK_FOR_S): Likewise.
5349         * config/ip2k/ip2k.c (mdr_resequence_xy_yx,
5350         mdr_try_move_dp_reload, ip2k_check_can_adjust_stack_ref,
5351         ip2k_xexp_not_uses_reg_for_mem, ip2k_xexp_not_uses_reg_p,
5352         ip2k_composite_xexp_not_uses_reg_p, ip2k_unary_operator):
5353         Likewise.
5354         * config/iq2000/iq2000.c (cmp_op, symbolic_expression_p,
5355         eqne_comparison_operator, signed_comparison_operator):
5356         Likewise.
5357         * config/mips/mips.c (cmp_op, symbolic_expression_p):
5358         Likewise.
5359         * config/mmix/mmix (mmix_foldable_comparison_operator,
5360         mmix_comparison_operator): Likewise.
5361         * config/pa/pa.c (hppa_legitimize_address): Likewise.
5362         * config/rs6000/rs6000.c (stmw_operation,
5363         branch_comparison_operator, trap_comparison_operator,
5364         ccr_bit): Likewise.
5365         * config/rs6000/rs6000.h (SELECT_CC_MODE): Likewise.
5366         * config/s390/s390.c (s390_alc_comparison,
5367         s390_slb_comparison):L Likewise.
5368         * config/sh/sh.c (gen_block_redirect, reg_unused_after):
5369         Likewise.
5370         * config/sparc/sparc.c (eq_or_neq, normal_comp_operator,
5371         noov_compare_op, noov_compare64_op, v9_regcmp_op,
5372         emit_hard_tfmode_operation, reg_unused_after)
5373         * doc/md.texi, doc/rtl.texi: Likewise.
5374
5375         * ra-debug.c: Add 2004 to list of copyright years.
5376         * unroll.c: Likewise.
5377
5378         * combine.c (simplify_logical): Remove dummy test,
5379         (apply_distributive_law): Fix typo in comment.
5380         GET_CODE (x) == AND so x is a commutative binary op.
5381         * jump.c (delete_related_insns): simplify loop
5382         condition, move testing of RTX codes inside the loop.
5383         (rtx_renumbered_equal_p): do not use RTX_CODE.
5384         * rtl.c (rtx_class): Declare as enum rtx_class.
5385         * rtl.def (EQ, NE, UNEQ, LTGT, UNORDERED, ORDERED):
5386         Move to RTX_COMM_COMPARE class.
5387         (HIGH, SYMBOL_REF, LABEL_REF, CONST, CONST_INT, CONST_DOUBLE):
5388         Move to RTX_CONST_OBJ class.
5389         * rtl.h (enum rtx_class): New declaration,
5390         (RTX_OBJ_MASK, RTX_OBJ_RESULT, RTX_COMPARE_MASK,
5391         RTX_COMPARE_RESULT, RTX_ARITHMETIC_MASK, RTX_ARITHMETIC_RESULT,
5392         RTX_BINARY_MASK, RTX_BINARY_RESULT, RTX_COMMUTATIVE_MASK,
5393         RTX_COMMUTATIVE_RESULT, RTX_NON_COMMUTATIVE_RESULT,
5394         RTX_EXPR_FIRST, RTX_EXPR_LAST, UNARY_P, BINARY_P,
5395         ARITHMETIC_P, COMMUTATIVE_ARITHMETIC_P, COMPARISON_P,
5396         SWAPPABLE_OPERANDS_P, NON_COMMUTATIVE_P, COMMUTATIVE_P,
5397         OBJECT_P): New macros.
5398         * config/sparc/sparc.c (noov_compare_op): Remove register
5399         from parameter.
5400
5401 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
5402
5403         * target.h: Remove texi jargons in comments.
5404
5405 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
5406
5407         * config/h8300/lib1funcs.asm (___fixunssfsi): Change the
5408         threshold to 0x4f.
5409
5410         Revert:
5411         2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
5412         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
5413         as well.
5414         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
5415         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
5416
5417 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
5418
5419         * doc/md.texi (cbranchmode4): New.
5420
5421 2004-03-02  Eric Christopher  <echristo@redhat.com>
5422
5423         * config/mips/mips16.S: Change fixsfsi and fixdfsi to
5424         fix_trunc.
5425         * config/mips/mips.c (mips_init_libfuncs): Change accordingly.
5426         * config/mips/t-elf (LIB1ASMFUNCS): Ditto.
5427         * config/mips/t-isa3264 (LIB1ASMFUNCS): Ditto.
5428         * config/mips/t-r3900 (LIB1ASMFUNCS): Ditto.
5429
5430 2004-03-02  Richard Henderson  <rth@redhat.com>
5431
5432         PR middle-end/11767
5433         * coverage.c (coverage_counter_ref): Set MEM_NOTRAP_P.
5434         * optabs.c (prepare_cmp_insn): Force trapping memories to registers
5435         before the compare, if flag_non_call_exceptions.
5436
5437 2004-03-02  Richard Henderson  <rth@redhat.com>
5438
5439         PR middle-end/14327
5440         * stmt.c (expand_computed_goto): Do do_pending_stack_adjust before
5441         emitting the label, not after.
5442
5443 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
5444
5445         * config/m68hc11/m68hc11.c (m68hc11_addr_mode): New variable.
5446         (m68hc11_mov_addr_mode): Likewise.
5447         (m68hc11_override_options): Initialize them based on target.
5448         (register_indirect_p): Allow a MEM for indirect addressing modes and
5449         use flags to control what is allowed.
5450         (m68hc11_small_indexed_indirect_p): Use m68hc11_mov_addr_mode for
5451         supported addressing modes.
5452         (m68hc11_register_indirect_p): Use m68hc11_addr_mode.
5453         (go_if_legitimate_address_internal): Likewise.
5454         (m68hc11_indirect_p): Likewise and check the mode.
5455         (print_operand): Allow a (MEM (MEM)) and generate indirect addressing.
5456
5457 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
5458
5459         * builtins.c (BUILTIN_SETJMP_FRAME_VALUE): Remove.
5460         (expand_builtin_setjmp_setup): Use
5461         targetm.builtin_setjmp_frame_value instead of
5462         BUILTIN_SETJMP_FRAME_VALUE.
5463         * system.h (BUILTIN_SETJMP_FRAME_VALUE): Poison.
5464         * target-def.h (TARGET_BUILTIN_SETJMP_FRAME_VALUE): New.
5465         (TARGET_INITIALIZER): Add TARGET_BUILTIN_SETJMP_FRAME_VALUE.
5466         * target.h (gcc_target): Add builtin_setjmp_frame_value.
5467         * targhooks.c (default_builtin_setjmp_frame_value): New.
5468         * targhooks.h: Add a prototype for
5469         default_builtin_setjmp_frame_value.
5470         * doc/tm.texi (BUILTIN_SETJMP_FRAME_VALUE): Change to
5471         TARGET_BUILTIN_SETJMP_FRAME_VALUE.
5472
5473 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
5474
5475         * config/m68hc11/m68hc11.md (move peephole2): New peepholes to optimize
5476         sequences of moves.
5477         (add peepholes): New peepholes to optimize sequences adding small
5478         constants.
5479         (bset peepholes): New peepholes to transform an OR in a bset form
5480         (bclr peepholes): Likewise for bclr form.
5481         (cmp peepholes): New peepholes to avoid register copies when comparing.
5482
5483 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
5484
5485         * config/m68hc11/m68hc11.md ("*pushdi_internal"): New insn and split
5486         to separate push from moves.
5487         ("*pushdf_internal"): Likewise.
5488         ("*pushsf_internal"): Likewise.
5489         ("*pushsi_internal"): Likewise.
5490         ("movdi_internal"): Use define_insn_and_split; non push operand.
5491         ("movdf_internal"): Likewise.
5492         ("movsf_internal"): Likewise.
5493         ("movsi_internal"): Likewise.
5494         ("*movhi_68hc12", "*addhi3_68hc12"): Fix and tune constraints
5495         ("*addhi3", "*subhi3", "*andhi3_mem", "*iorhi3_mem"): Likewise.
5496         ("*ashlsi3_const1", "*lshrsi3_const1"): Likewise.
5497
5498 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
5499
5500         * config/m68hc11/m68hc11.md ("tstqi_z_used"): Use define_insn_and_split.
5501         ("cmphi_z_used", "cmpqi_z_used"): Likewise.
5502         ("movstrictsi", "movstricthi", "movstrictqi"): Likewise.
5503         ("anddi3", "andsi3", "iordi3", "iorsi3"): Likewise.
5504         ("xordi3", "xorsi3", "*logicalsi3_zexthi"): Likewise.
5505         ("*logicalsi3_zextqi", "*logicalhi3_zexthi_ashift8"): Likewise.
5506         ("logicalhi3_zexthi", "*logicalsi3_silshr16"): Likewise.
5507         ("*logicalsi3_silshl16", "*logicalsi3_silshl16_zext"): Likewise.
5508         ("*ashldi3_const32", "*ashldi3_const1", "addsi_silshr16"): Likewise.
5509         ("addsi_andshr16", "*ashlsi3_const16_zexthi"): Likewise.
5510         ("*lshrdi3_const32", "*lshrdi_const1"): Likewise.
5511
5512 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
5513
5514         * config/m68hc11/m68hc11.md (SOFT_TMP_REGNUM): Define.
5515         (SOFT_XY_REGNUM): Define.
5516         (cmp split): Use the above instead of hard coded numbers.
5517         (8-bit op split): No need to check the mode; allow Q_REG.
5518         (ashift split): Adjust the first operand if it uses the SP and we
5519         are pushing the shifted value.
5520         (plus shift split): Fix when a source is in register D+X.
5521         ("doloop_end"): Pass dummy arguments to gen_rtx_NE.
5522
5523 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
5524
5525         * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Fix when
5526         comparing with Z register.
5527
5528 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5529
5530         * cfgloop.h (struct loop_desc): Removed.
5531         (struct loop): Fields simple, desc and has_desc removed.
5532         (simple_loop_p, count_loop_iterations): Declaration removed.
5533         * cfgloopanal.c (struct unmark_altered_insn_data): Removed.
5534         (unmark_altered, blocks_invariant_registers, unmark_altered_insn
5535         blocks_single_set_registers, invariant_rtx_wrto_regs_p_helper,
5536         invariant_rtx_wrto_regs_p, test_for_iteration, constant_iterations,
5537         simple_loop_exit_p, variable_initial_value, variable_initial_values,
5538         simple_condition_p, simple_increment, count_strange_loop_iterations,
5539         inverse, fits_in_mode_p, simple_loop_p, count_loop_iterations):
5540         Removed.
5541         * loop-iv.c (check_simple_exit, find_simple_exit): Update comments.
5542
5543 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
5544
5545         * genattrtab.c: Don't handle MATCH_INSN.
5546         * genrecog.c: Likewise.
5547         * gensupport.c: Likewise.
5548         * rtl.def (match_insn): Remove.
5549         * doc/md.texi (match_insn, match_insn2): Remove.
5550
5551 2004-03-02  Mark Mitchell  <mark@codesourcery.com>
5552
5553         * doc/c-tree.texi (DECL_ASSEMBLER_NAME): Mention that using this
5554         macro results in memory allocation.
5555
5556 2004-03-02  David O'Brien  <obrien@FreeBSD.org>
5557
5558         * config/freebsd-spec.h (FBSD_DYNAMIC_LINKER): Add.
5559         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Define
5560         %(fbsd_dynamic_linker),
5561         (LINK_SPEC): Use %(fbsd_dynamic_linker), and sync style with
5562         config/i386/freebsd.h
5563         * config/arm/freebsd.h: Ditto.
5564         * config/i386/freebsd.h: Ditto.
5565         * config/i386/freebsd64.h: Ditto.
5566         * config/ia64/freebsd.h: Ditto.
5567         * config/rs6000/sysv4.h: Ditto.
5568         * config/sparc/freebsd.h: Ditto.
5569
5570 2004-03-02  Loren James Rittle  <ljrittle@acm.org>
5571
5572         * gcc/doc/install.texi (*-*-freebsd*): Update target information.
5573
5574 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
5575
5576         * rtl.def (define_combine): Remove.
5577
5578 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
5579
5580         * config/h8300/h8300.md: Tweak formatting.
5581
5582 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
5583
5584         * config/h8300/h8300.md (*cmphi_h8300): Rename to
5585         *cmphi_h8300_znvc.
5586         (*cmphi_h8300hs): Rename to *cmphi_h8300hs_znvc.
5587
5588 2004-03-01  Mark Mitchell  <mark@codesourcery.com>
5589
5590         PR bootstrap/14356
5591         * gcc.c (process_command): Remove const-qualification from argv.
5592         (main): Likewise.
5593
5594 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
5595
5596         * config/h8300/h8300.md (pushqi1_h8300hs): Rename to
5597         pushqi1_h8300hs_advanced.  Adjust its caller.
5598         (pushhi1_h8300hs): Rename to pushhi1_h8300hs_advanced.
5599         Adjust its caller.
5600
5601 2004-03-02  Nicolas Roche  <roche@act-europe.fr>
5602
5603         * Makefile.in (install-libgcc, install-multilib): Pass
5604         mkinstalldirs var to libgcc.mk.
5605
5606 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
5607
5608         * system.h (DBX_OUTPUT_STANDARD_TYPES): Poison.
5609         * doc/tm.texi (DBX_OUTPUT_STANDARD_TYPES): Remove.
5610
5611 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
5612
5613         * config/h8300/h8300.c (gtle_operator): Accept GT and LE.
5614         * config/h8300/h8300.md: Split several peephole2's, each into
5615         two.
5616
5617 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5618
5619         * dominance.c (recount_dominator): Handle postdominators.
5620
5621 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
5622
5623         * config/mips/mips-protos.h (enum mips_symbol_type): Move from mips.h.
5624         (NUM_SYMBOL_TYPES): Likewise.
5625         (SYMBOL_64_HIGH, SYMBOL_64_MID, SYMBOL_64_LOW): New symbol types.
5626         (mips_unspec_address): Declare.
5627         (mips_gotoff_page, mips_gotoff_global): Delete.
5628         * config/mips/mips.h (PREDICATE_CODES): Add general_symbolic_operand.
5629         * config/mips/mips.c (enum mips_symbol_type, NUM_SYMBOL_TYPES): Delete.
5630         (mips_symbolic_constant_p, mips_symbolic_address_p)
5631         (mips_symbol_insns): Handle new symbol types.
5632         (general_symbolic_operand): New predicate.
5633         (mips_unspec_address): Make extern.
5634         (mips_gotoff_page, mips_gotoff_global): Delete.
5635         (override_options): Allow -mabi=64 -mno-abicalls -mexplicit-relocs.
5636         Handle new symbol types.
5637         * config/mips/mips.md (*lea_high64, *lea64): New patterns.
5638         (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_disp[sd]i): Call
5639         mips_unspec_address directly.
5640         * doc/invoke.texi: Remove the -mabi=64 -mno-abicalls exception from
5641         the documentation of -mexplicit-relocs.
5642
5643 2004-03-01  Jeff Law  <law@redhat.com>
5644
5645         * fold-const.c (fold): An equality comparison of a non-weak object
5646         against zero has a known result.  Similarly an equality comparison
5647         of the address of two non-weak, unaliased symbols has a known result.
5648
5649         * ggc-page.c (struct page_entry): New field PREV.
5650         (ggc_alloc): Update PREV field appropriately.
5651         (sweep_pages): Likewise.
5652         (ggc_free): Likewise.  Use PREV field rather than loop to
5653         improve ggc_free performance.
5654
5655 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
5656
5657         * config/mips/mips.c (mips_output_division): Use the division
5658         instruction to fill the delay slot of a zero check.
5659         (mips_idiv_insns): Adjust accordingly.
5660
5661 2004-03-01  Nathanael Nerode  <neroden@gcc.gnu.org>
5662
5663         * config.gcc: Create a default tmake_file for linux, and use
5664         it in all but two linux clauses.  Comment those two.
5665
5666 2004-03-01  Paolo Bonzini  <bonzini@gnu.org>
5667
5668         * combine.c (try_combine):  Do not refer to is_replaced.
5669         (gen_lowpart_for_combine):  Perverse subregs now have a
5670         more politically correct name.
5671         * cse.c (cse_insn): Likewise.
5672         * jump.c: Fix bogus reference to delete_insn.
5673
5674 2004-02-29  Mark Mitchell  <mark@codesourcery.com>
5675
5676         PR debug/14328
5677         * dwarf2out.c (gen_enumeration_type_die): Output all enumeration
5678         constants as signed values.
5679
5680         PR middle-end/13448
5681         * c-tree.h (readonly_warning): Rename to ...
5682         (readonly_error): ... this.
5683         * c-typeck.c (build_unary_op): Adjust accordingly.
5684         (readonly_warning): Rename to ...
5685         (readonly_error): ... this and issue errors, not warnings.
5686         (build_modify_expr): Call readonly_error, not readonly_warning.
5687         (c_expand_asm_operands): Likewise.
5688         * tree-inline.c (optimize_inline_calls): Do not inline functions
5689         after errors have occurred.
5690
5691 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
5692
5693         * configure.ac: Rearrange some threading code for clarity;
5694         add section comment.
5695         * configure: Regenerate.
5696
5697 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
5698
5699         * passes.c, config/frv/frv.c, config/sh/sh.c: Fix comment
5700         typos.
5701         * doc/cppopts.texi: Fix a typo.
5702
5703 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
5704
5705         * config/i386/i386.md: Fix formatting.
5706
5707 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
5708
5709         * configure.ac: Add some comments delineating sections of code.
5710
5711         * doc/install.texi: Note that libada uses autoconf 2.57 also.
5712
5713         * doc/install.texi: Fix idiot typo in previous commit.
5714
5715         * doc/install.texi: Update for conversion of intl to autoconf 2.57.
5716
5717 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
5718
5719         * config/h8300/h8300.md: Add comments about peephole2's.
5720
5721 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
5722
5723         * config/h8300/h8300.md: Tweak operand numbers of some
5724         peephole2's.
5725
5726 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
5727
5728         * config/h8300/h8300.md: Tweak comments about peephole2's.
5729
5730 2004-02-29  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
5731
5732         PR middle-end/14203
5733         * function.c (uninitialized_vars_warning): Use DECL_RTL_SET_P
5734         instead of testing whether DECL_RTL is not NULL.
5735
5736 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
5737
5738         * config/sh/sh.c: Fix formatting.
5739
5740 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
5741
5742         * config/sh/sh.c: Convert to ISO-C.
5743
5744 2004-02-28  Andrew Pinski  <pinskia@physics.uc.edu>
5745
5746         * c-typeck.c (tagged_types_tu_compatible_p): Fix pasto in
5747         my previous patch.
5748
5749         * config/darwin.h (machopic_finish): Output stub even if the
5750         symbol is already defined.
5751
5752 2004-02-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5753
5754         * pa64-hpux.h (LIB_SPEC): Fix linking under HP-UX 11.00 with -p and -pg.
5755
5756 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
5757
5758         * genattr.c (main): Don't define
5759         TRADITIONAL_PIPELINE_INTERFACE or DFA_PIPELINE_INTERFACE.
5760         * system.h (TRADITIONAL_PIPELINE_INTERFACE): Poison.
5761         (DFA_PIPELINE_INTERFACE): Likewise.
5762         * doc/tm.texi (TRADITIONAL_PIPELINE_INTERFACE): Remove.
5763         (DFA_PIPELINE_INTERFACE): Likewise.
5764
5765 2004-02-28  Richard Sandiford  <rsandifo@redhat.com>
5766
5767         * config/mips/mips.md (tstsi, tstdi): Delete.
5768
5769 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
5770
5771         * config/mips/mips.c (override_options): Remove an obsolete
5772         duplicate definition of the "e" constraint.
5773         * config/mips/mips.h: Update a comment accordingly.
5774
5775 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
5776
5777         * config/mips/mips.md: Complete the unfinished R4000
5778         multiply/shift errata workaround.  Improve documentation.
5779         (hazard): Use TARGET_FIX_R4000 to decide whether an "imul" instruction
5780         has a hilo hazard.
5781         (mulsi3, mulsi3_internal, mulsi3_r4000): Use TARGET_FIX_R4000.
5782         (muldi3, muldi3_internal): Likewise.
5783         (muldi3_internal2): Remove, replacing with...
5784         (muldi3_mult3, muldi3_r4000): ...these new patterns.
5785         (mulsidi3): Take the errata into account.
5786         (mulsidi3_32bit): Remove, replacing with...
5787         (mulsidi3_32bit_internal, mulsidi3_32bit_r4000): ...these new patterns.
5788         (mulsidi3_64bit, mulsidi3_64bit_parts): Disable if TARGET_FIX_R4000.
5789         (umulsidi3): Take the errata into account.
5790         (umulsidi3_32bit): Remove, replacing with..
5791         (umulsidi3_32bit_internal, umulsidi3_32bit_r4000): ...these patterns.
5792         (umulsi3_highpart, umulsi3_highpart_internal): Disable if
5793         TARGET_FIX_R4000.
5794         (smulsi3_highpart, smulsi3_highpart_internal): Likewise.
5795         (smuldi3_highpart, umuldi3_highpart): Likewise.
5796         * doc/invoke.texi: Document the errata workaround.
5797
5798 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
5799
5800         * config/mips/mips-protos.h (mips_idiv_insns): Declare.
5801         * config/mips/mips.h (MASK_FIX_SB1): Bump.
5802         (MASK_FIX_R4000, TARGET_FIX_R4000): New macros.
5803         (TARGET_SWITCHES): Add -mfix-r4000 and -mno-fix-r4000.
5804         * config/mips/mips.c (mips_idiv_insns): New function.
5805         (override_options): Make -march=r4000 imply -mfix-r4000 by default.
5806         (mips_output_division): Add a workaround for the R4000 divide/shift
5807         errata.
5808         * config/mips/mips.md (length): Use mips_idiv_insns() to calculate
5809         the length of an "idiv" instruction.
5810         * doc/invoke.texi: Document the new switches.
5811
5812 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
5813
5814         * doc/tm.texi (IS_COSTLY_DEPENDENCE): Change to
5815         TARGET_SCHED_IS_COSTLY_DEPENDENCE.
5816
5817 2004-02-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5818
5819         PR optimization/14229
5820         * cfgrtl.c (rtl_tidy_fallthru_edge): Do not fail for !onlyjump jump.
5821
5822 2004-02-28  Eric Botcazou  <ebotcazou@act-europe.fr>
5823
5824         * fold-const.c (fold): Strip NOPs that change the signedness
5825         for RSHIFT too.  Expand comment.
5826
5827 2004-02-27  Ian Lance Taylor  <ian@wasabisystems.com>
5828
5829         PR optimization/7871
5830         * flow.c (mark_set_1): Don't add LOG_LINKS for global registers
5831         from or to call insns.
5832
5833 2004-02-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
5834
5835         PR optimization/7871
5836         * flow.c (propagate_one_insn): Interpret calls as setting global
5837         registers, not merely clobbering them.
5838
5839 2004-02-27  Dale Johannesen  <dalej@apple.com>
5840
5841         * config/darwin.c (machopic_output_possible_stub_label):  Remove.
5842         config/darwin-protos.h:  Ditto.
5843         config/darwin.h:  Remove call to it.
5844         * combine.c (distribute_notes): Do not place a REG_DEAD note
5845         when value is both set and used.
5846
5847 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
5848
5849         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
5850         as well.
5851         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
5852         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
5853
5854 2004-02-27  Andrew Pinski  <apinski@apple.com>
5855
5856         * c-typeck.c (tagged_types_tu_compatible_p) <ENUMERAL_TYPE>:
5857         Speedup common case of the type values being in the same order.
5858
5859 2004-02-27  Steve Ellcey  <sje@cup.hp.com>
5860
5861         * config/ia64/ia64.h (no-inline-float-divide): New option.
5862         * config/ia64/ia64.h (no-inline-int-divide): New option.
5863         * config/ia64/ia64.h (no-inline-sqrt): New option.
5864         (TARGET_DEFAULT): Add MASK_INLINE_FLOAT_DIV_THR to define.
5865         * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
5866         * config/ia64/ia64.c (ia64_override_options): Modify error
5867         checking for inlined division/sqrt.
5868
5869 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
5870
5871         * bb-reorder.c, cfgbuild.c, diagnostic.c, explow.c, profile.c,
5872         ra-build.c, read-rtl.c, tracer.c, unwind-dw2-fde-glibc.c,
5873         value-prof.c, config/darwin-protos.h, config/frv/frv-abi.h,
5874         config/i386/pmmintrin.h, config/pa/pa-hpux.h: Update
5875         copyright.
5876
5877 2004-02-27  Paul Brook  <paul@codesourcery.com>
5878
5879         * function.c (assign_parms): Don't count pretend args for alignment.
5880
5881 2004-02-27  Richard Henderson  <rth@redhat.com>
5882
5883         * passes.c: New file.
5884         * Makefile.in (OBJS-common): Add it.
5885         * diagnostic.c (rtl_dump_and_exit): Move decl ...
5886         * flags.h (rtl_dump_and_exit): ... here.
5887         * output.h (size_directive_output, last_assemble_variable_decl):
5888         Move from toplev.c.
5889         * rtl.h (reg_alloc): Move from toplev.c.
5890         * toplev.c (HAVE_conditional_execution, DUMPFILE_FORMAT,
5891         struct dump_file_info, enum dump_file_index, dump_file_tbl,
5892         open_dump_file, close_dump_file, rest_of_decl_compilation,
5893         rest_of_type_compilation, rest_of_handle_final,
5894         rest_of_handle_delay_slots, rest_of_handle_stack_regs,
5895         rest_of_handle_variable_tracking, rest_of_handle_machine_reorg,
5896         rest_of_handle_new_regalloc, rest_of_handle_old_regalloc,
5897         rest_of_handle_regrename, rest_of_handle_reorder_blocks,
5898         rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_regmove,
5899         rest_of_handle_tracer, rest_of_handle_if_conversion,
5900         rest_of_handle_if_after_combine, rest_of_handle_web,
5901         rest_of_handle_branch_prob,
5902         rest_of_handle_value_profile_transformations, rest_of_handle_cfg,
5903         rest_of_handle_addressof, rest_of_handle_sibling_calls,
5904         rest_of_handle_jump_bypass, rest_of_handle_inlining,
5905         rest_of_handle_null_pointer, rest_of_handle_combine,
5906         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
5907         rest_of_handle_gcse, rest_of_handle_loop_optimize,
5908         rest_of_handle_loop2, rest_of_compilation): Move to passes.c.
5909         (decode_d_option): Use enable_rtl_dump_file.
5910         (compile_file, finalize, do_compile): Move profile+combine+graph
5911         cleanup to finish_optimization_passes.
5912         * toplev.h (init_optimization_passes, finish_optimization_passes,
5913         enable_rtl_dump_file): Declare.
5914
5915 2004-02-27  Eric Botcazou  <ebotcazou@act-europe.fr>
5916             Roger Sayle  <roger@eyesopen.com>
5917
5918         * fold-const.c (fold): Revert 2004-02-25 change.  Use the original
5919         operands to build a tree with swapped operands.
5920         * expr.c (expand_expr_real) <MAX_EXPR>: Consistently use the
5921         'unsignedp' predicate to specify the signedness.
5922
5923 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
5924
5925         * c-decl.c, c-ppoutput.c, combine.c, cppfiles.c, dwarf2out.c,
5926         expr.c, fold-const.c, gcc.c, haifa-sched.c, loop-iv.c,
5927         params.def, read-rtl.c, rtl.c, rtlanal.c, toplev.c: Fix
5928         comment typos and formatting.  Follow spelling conventions.
5929
5930 2004-02-26  Aldy Hernandez  <aldyh@redhat.com>
5931
5932         * config/rs6000/rs6000.md: Add fixuns_truncsfsi2 and
5933         fix_truncsfsi2.
5934
5935         * config/rs6000/spe.md: Delete spe_efsctuiz.
5936         Add spe_fixuns_truncsfsi2.
5937         Add spe_fix_truncsfsi2.
5938
5939 2004-02-26  Eric Christopher  <echristo@redhat.com>
5940
5941         * c-lex.c (c_lex_string_translate): New variable.
5942         (lex_string): Use to determine string translation.
5943         * c-pragma.h: Prototype.
5944         * c-parse.in (start_string_translation): New. Set above.
5945         (stop_string_translation): Ditto.
5946         (attribute, attribute_list, asm_def, asm_stmt,
5947         asm_operand): Use above functions.
5948         * cp/parser.c (cp_parser_declaration): Translate strings
5949         unless token is RID_EXTERN. Set c_lex_string_translate
5950         for recursive use.
5951         (cp_parser_asm_definition): Only translate argument strings
5952         to asms.
5953         (cp_parser_asm_operand_list): Ditto.
5954         (cp_parser_attribute_list): Do not translate attribute strings.
5955
5956 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
5957
5958         * stmt.c (expand_start_case_dummy): Remove.
5959         * tree.h: Remove the corresponding prototype.
5960
5961 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
5962
5963         * builtins.c (apply_args_register_offset): Remove.
5964         * tree.h: Remove the corresponding prototype.
5965
5966 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
5967
5968         * stor-layout.c (is_pending_size): Remove.
5969         * tree.h: Remove the corresponding prototype.
5970
5971 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
5972
5973         * recog.c (validate_replace_src): Remove.
5974         * recog.h: Remove the corresponding prototype.
5975
5976 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
5977
5978         * calls.c: Don't reference FINAL_REG_PARM_STACK_SPACE or
5979         MAYBE_REG_PARM_STACK_SPACE.
5980         * function.c: Likewise.
5981         * system.h (FINAL_REG_PARM_STACK_SPACE): Poison.
5982         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
5983         * doc/tm.texi (FINAL_REG_PARM_STACK_SPACE): Remove.
5984         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
5985
5986 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
5987
5988         * c-decl.c (c_expand_deferred_function): Remove.
5989         * c-tree.h: Remove the corresponding prototype.
5990
5991 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
5992
5993         * postreload.c (reload_cse_move2add): Generate just a PLUS
5994         instead of an entire SET.
5995
5996 2004-02-26  Jan Hubicka  <jh@suse.cz>
5997
5998         * config.gcc: Add support for nocoma/prescott/pentium-m/pentium3m
5999         /pentium4m.
6000         * i386.c (override_options): Add support for new CPUs.
6001         * i386.h (TARGET_CPU_DEFAULT_NAMES): New names.
6002         (TARGET_CPU_DEFAULT_pentium_m, TARGET_CPU_DEFAULT_pentium4e): New
6003         constants.
6004         * invoke.texi: Extend documentation of -mtune/-march for new CPUs.
6005
6006 2004-02-26  Bob Wilson  <bob.wilson@acm.org>
6007
6008         * config/xtensa/xtensa.h (TARGET_CPU_CPP_BUILTINS): Define __xtensa__.
6009
6010 2004-02-26  Eric Botcazou  <ebotcazou@act-europe.fr>
6011
6012         * config/sparc/sparc-protos.h (sparc_emit_floatunsdi): Add 'mode'.
6013         (sparc_emit_fixunsdi): New prototype.
6014         * config/sparc/sparc.c (sparc_emit_floatunsdi): Use 'mode' argument.
6015         (sparc_emit_fixunsdi): New function.
6016         * config/sparc/sparc.md (floatunsdisf2): Use 'general_operand' for
6017         operand 1.  Pass SFmode to sparc_emit_floatunsdi.
6018         (floatunsdidf2): Use 'general_operand' for operand 1.  Pass DFmode
6019         to sparc_emit_floatunsdi.
6020         (fixuns_truncsfdi2): New expander.
6021         (fixuns_truncdfdi2): Likewise.
6022
6023 2004-02-26  Alan Modra  <amodra@bigpond.net.au>
6024
6025         * gcse.c (delete_null_pointer_checks_1): Do not delete CC setter
6026         unless HAVE_cc0.
6027
6028 2004-02-25  Richard Henderson  <rth@redhat.com>
6029
6030         * explow.c (force_reg): Call mark_reg_pointer as appropriate.
6031         * config/alpha/alpha.c (alpha_emit_conditional_branch): Don't
6032         use (op0-op1) == 0 if op0 is a pointer.
6033         * config/alpha/alpha.md (cmpdi): Use some_operand.
6034         (three comparison combine splits): Remove.
6035
6036 2004-02-25  Richard Henderson  <rth@redhat.com>
6037
6038         PR c/12794
6039         * c-common.c (handle_alias_attribute): Reject the attribute if
6040         current_function_decl is set.
6041
6042 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
6043
6044         * config.gcc: Add comment describing extra_gcc_objs.
6045         i[34567]86-*-cygwin*): Replace host_extra_gcc_objs with extra_gcc_objs.
6046         * configure.ac (extra_gcc_objs): New substitution variable.
6047         (host_extra_gcc_objs): Don't substitute.
6048         * configure: Regenerate.
6049         * Makefile.in: Use extra_gcc_objs.
6050
6051 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
6052
6053         * doc/contrib.texi: Add an entry for myself.
6054
6055 2004-02-25  Jan Hubicka  <jh@suse.cz>
6056
6057         * basic-block.h (make_eh_edge, break_superblocks): Declare.
6058         * cfgbuild.c (make_eh_edge):  Make global.
6059         * cfglayout.c (break_superblocks): Likewise; fix memory leak.
6060         * except.c (build_post_landing_pads, connect_post_landing_pads,
6061         dw2_build_landing_pads, sjlj_emit_function_enter,
6062         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
6063         sjlj_build_landing_pads): Update CFG.
6064         (emit_to_new_bb_before): New function.
6065         (finish_eh_generation): Do not rebuild the CFG.
6066
6067 2004-02-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6068
6069         * config.gcc (hppa*-*-*, parisc*-*-*): Add MASK_BIG_SWITCH to all
6070         target_cpu_default defines.
6071         * pa-hpux.h (TARGET_DEFAULT): Add MASK_BIG_SWITCH to define.
6072         * pa.h (TARGET_DEFAULT): Likewise.
6073
6074 2004-02-25  Eric Botcazou  <ebotcazou@act-europe.fr>
6075
6076         * fold-const.c (fold): Treat MAX_EXPR and MIN_EXPR like
6077         comparisons with regard to signedness.
6078
6079 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
6080
6081         * arm.c (thumb_legitimize_address): New function.
6082         * arm-protos.h: Prototype it.
6083         * arm.h (THUMB_LEGITIMIZE_ADDRESS): Define.
6084         (LEGITIMIZE_ADDRESS): Use it.
6085
6086 2004-02-25  J"orn Rennecke <joern.rennecke@superh.com>
6087
6088         * reload1.c (reload): Only spill eliminable register with multiple
6089         adjacent elimination alternatives if all alternatives fail.
6090
6091 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
6092
6093         * arm.c (arm_legitimate_index_p): For QImode the range of an offset
6094         is -4095...+4095 inclusive.
6095
6096 2004-02-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
6097
6098         * doc/install.texi (sparc-sun-solaris2* specific notes): Document
6099         the bootstrap failure with Sun CC 5.4 and 5.5.
6100
6101 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
6102
6103         * cse.c (cse_change_cc_mode_insns): Stop at any instruction
6104         which modifies NEWREG.
6105         (cse_condition_code_reg): Update the mode of CC_REG in
6106         CC_SRC_INSN on our own.
6107
6108 2004-02-24  Michael Matz  <matz@suse.de>
6109
6110         * config/i386/i386.c (ix86_comp_type_attributes): Check for
6111         regparm attributes.
6112
6113 2004-02-24  Richard Henderson  <rth@redhat.com>
6114
6115         * toplev.c (dump_file_tbl): Rename from dump_file.
6116         * bb-reorder.c, bt-load.c, cfgcleanup.c, cfglayout.c, cfgloopanal.c,
6117         cfgloopmanip.c, cfgrtl.c, config/arm/arm.c, config/frv/frv.c,
6118         config/i386/i386.c, config/ia64/ia64.c, config/mips/mips.c,
6119         config/sh/sh.c, cse.c, flow.c, ifcvt.c, loop-iv.c, loop-unroll.c,
6120         loop-unswitch.c, output.h, predict.c, profile.c, ra-build.c,
6121         ra-colorize.c, ra-debug.c, ra-rewrite.c, ra.c, regrename.c, reload1.c,
6122         toplev.c, tracer.c, value-prof.c, var-tracking.c, web.c:
6123         s/rtl_dump_file/dump_file/g.
6124
6125 2004-02-24  Aldy Hernandez  <aldyh@redhat.com>
6126
6127         * config/rs6000/spe.md (spe_fix_truncsfsi2): Delete.
6128         (spe_fixuns_truncsfsi2): Delete.
6129
6130         * config/rs6000/rs6000.md (fix_truncsfsi2): Delete.
6131         (fixuns_truncsfsi2): Delete.
6132
6133 2004-02-24  Josef Zlomek  <zlomekj@suse.cz>
6134
6135         PR/14240
6136         * rtlanal.c (replace_label): Fix replacing labels in constant pool.
6137
6138 2004-02-24  Geoffrey Keating  <geoffk@apple.com>
6139
6140         * config/darwin.h (TARGET_HAS_F_SETLKW): Define.
6141
6142 2004-02-24  Jason Merrill  <jason@redhat.com>
6143
6144         * tree.c (check_qualified_type): New fn.
6145         (get_qualified_type): Use it.  If type already has the desired
6146         quals, just return it.
6147         * tree.h: Declare it.
6148
6149 2003-02-24  Sanjiv Kumar Gupta  <sanjivg@noida.hcltech.com>
6150
6151         * target-def.h (TARGET_SCHED_INIT_GLOBAL,
6152         TARGET_SCHED_FINISH_GLOBAL): New macros.
6153
6154         * target.h (md_init_global, md_finish_global): Function
6155         declarations corresponding to new target macros.
6156
6157         * haifa-sched.c (sched_init, sched_finish): Allow target to
6158         call the new schedular hooks.
6159
6160         * flow.c (recompute_reg_usage): Add PROP_DEATH_NOTES flag in
6161         call to update_life_info.
6162
6163         * config/sh/sh.h (OVERRIDE_OPTIONS): Re-enable
6164         flag_schedule_insns for SH4.
6165
6166         * config/sh/sh.c (sh_md_init_global, sh_md_finish_global,
6167         find_set_regmode_weight, find_insn_regmode_weight,
6168         find_regmode_weight), sh_md_init, sh_dfa_new_cycle,
6169         sh_variable_issue, high_pressure, ready_reorder,
6170         rank_for_reorder, swap_reorder, sh_reorder, sh_reorder2): New
6171         functions used to throttle the insn movement in first
6172         scheduling pass for SH.
6173
6174         * gcc/doc/tm.texi: Document TARGET_SCHED_INIT_GLOBAL and
6175         TARGET_SCHED_FINISH_GLOBAL.
6176
6177 2004-02-24  Alexandre Oliva  <aoliva@redhat.com>
6178
6179         Implement FR-V FDPIC ABI support for frv-uclinux and frv-linux.
6180         2004-02-05  Alexandre Oliva  <aoliva@redhat.com>
6181         * config/frv/frv.c (frv_emit_movsi): Use GOT relocations for
6182         symbols in sections named by the user.
6183         2004-01-30  Alexandre Oliva  <aoliva@redhat.com>
6184         * config/frv/linux.h (TARGET_OS_CPP_BUILTINS): New.
6185         2004-01-27  Alexandre Oliva  <aoliva@redhat.com>
6186         * config.gcc (frv-*-*linux*): Handle like *-*-linux*.
6187         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Remove, obviated by
6188         the above.
6189         2004-01-20  Alexandre Oliva  <aoliva@redhat.com>
6190         * config/frv/frv.md (symGOT2reg_hilo, symGOTOFF2reg_hilo): Add
6191         one more pseudo to further improve code generation.
6192         2004-01-19  Alexandre Oliva  <aoliva@redhat.com>
6193         * config/frv/frv.md (movdi_ldd): Introduce explicit indirection
6194         inside UNSPEC.
6195         2004-01-16  Alexandre Oliva  <aoliva@redhat.com>
6196         * config/frv/frv.c (frv_legitimate_address_p): Added
6197         allow_double_reg_p argument.  Adjust all callers.  Use it to
6198         decide whether to enable double-register indirect addressing.
6199         (frv_funcdesc_alias_set): Remove.
6200         (frv_expand_fdpic_call): Force non-SYMBOL_REF operand into
6201         register.  Emit movdi_ldd.
6202         (ldd_address_operand): New.
6203         * config/frv/frv-protos.h (frv_legitimate_address_p): Adjust.
6204         * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Likewise.
6205         (PREDICATE_CODES): Add ldd_address_operand.
6206         * config/frv/frv.md (movdi_ldd): New.
6207         (symGOT2reg_hilo, symGOTOFF2reg_hilo): Use separate pseudo for
6208         intermediate computations if possible.
6209         (symGOTOFF2reg_i): Fix harmless typo.
6210         2003-12-18  Alexandre Oliva  <aoliva@redhat.com>
6211         * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Cast
6212         relocated p_vaddr to vaddr type.
6213         * config/frv/frv-protos.h (frv_expand_fdpic_call): Return void.
6214         * config/frv/frv.c (frv_get_funcdesc_alias_set): New.
6215         (frv_expand_fdpic_call): Propagate incoming MEM's expr to funcdesc
6216         MEM, or use a funcdesc alias set.  Use regular move instead of
6217         ldd.
6218         (dbl_memory_one_insn_operand): Recognize function descriptors by
6219         type or by alias set, and don't split them.
6220         * config/frv/frv.md (call, call_value): Never use call_internal
6221         for fdpic.
6222         (call_internal, call_value_internal): Never match for FDPIC.
6223         (call_fdpicdi, call_fdpicsi, call_value_fdpicdi,
6224         call_value_fdpicsi): Require FDPIC.
6225         (ldd): Removed.
6226         2003-12-17  Alexandre Oliva  <aoliva@redhat.com>
6227         * config/frv/frv.h (CRT_GET_RFIB_DATA): Define for __FRV_FDPIC__.
6228         * unwind-dw2-fde-glibc.c: Don't include elf-fdpic.h any more.
6229         (_Unwind_IteratePhdrCallback): Adjust type of load_base for FRV
6230         FDPIC.  Compute data base address.
6231         * config/frv/linux.h (SUBTARGET_DRIVER_SELF_SPECS): Enable -mfdpic
6232         before the other self-specs are processed.
6233         * config/frv/t-linux (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS):
6234         Build with -fPIC.
6235         2003-12-15  Alexandre Oliva  <aoliva@redhat.com>
6236         * unwind-dw2-fde-glibc.c: Don't include bits/elf-fdpic.h if
6237         inhibit_libc is defined.
6238         2003-12-12  Alexandre Oliva  <aoliva@redhat.com>
6239         * unwind-dw2-fde-glibc.c: Include bits/elf-fdpic.h for
6240         __FRV_FDPIC__.
6241         (__RELOC_POINTER): Define.
6242         (_Unwind_IteratePhdrCallback): Use it.
6243         * config/frv/frv.h (Twrite): Define.
6244         (TRANSFER_FROM_TRAMPOLINE): Use it.
6245         * config/frv/linux.h (INVOKE__main): Undefine.
6246         (Twrite): Override.
6247         2003-12-05  Richard Sandiford  <rsandifo@redhat.com>
6248         * doc/invoke.texi (-mlong-calls, -mlinked-fp): Document FRV options.
6249         (-mlibrary-pic): Emphasize that this option generates EABI code.
6250         (-mcpu): Add fr550.
6251         (-mpack): Remove.
6252         2003-11-30  Alexandre Oliva  <aoliva@redhat.com>
6253         * config/frv/frv.c (int_2word_operand): Reject LABELs, SYMBOL_REFs
6254         and CONSTs in FDPIC mode.
6255         * gcc/config.gcc (with_cpu): Default to fr400 on frv-*-*linux*.
6256         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
6257         * config/frv/frv.c (move_source_operand): Don't accept symbolic
6258         constants.
6259         * config/frv/frv.md (*movhi_internal, *movsi_internal): Use an 'n'
6260         rather than 'i' constraint for the 2-instruction alternative.
6261         (*movsi_2word): New, incorporating existing int_2word_operand splitter.
6262         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
6263         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Q): Renamed from
6264         EXTRA_CONSTRAINT_FOR_Y.
6265         (EXTRA_CONSTRAINT): Remove handling of 'Y'.
6266         * config/frv/frv.md (*movsi_internal): Remove 'Q' constraint.
6267         (addsi3): Change 'Y' constraint to 'Q'.
6268         2003-11-27  Richard Sandiford  <rsandifo@redhat.com>
6269         * reload.c (CONST_POOL_OK_P): New macro.
6270         (find_reloads): Use it to decide whether a constant can be forced
6271         into memory.
6272         * config/frv/frv.h (LEGITIMATE_PIC_OPERAND_P): Return true if the
6273         constant satisfies got12_operand.
6274         (frv_cannot_force_const_mem): Always return true for TARGET_FDPIC.
6275         (frv_legitimate_address_p): Check for valid unspec offsets using
6276         got12_operand rather than frv_legitimate_fdpic_operand_p.
6277         (frv_legitimate_fdpic_operand_p): Delete.
6278         (frv_emit_movsi): Abort if we try to use the FDPIC register during
6279         or after reload.
6280         (frv_legitimate_constant_p): Return LEGITIMATE_PIC_OPERAND_P if
6281         TARGET_FDPIC.
6282         * config/frv/frv.md (*movdf_double): Add alternatives for CONST_DOUBLE.
6283         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
6284         * config/frv/frv-protos.h (fdpic_operand, fdpic_got12_operand)
6285         (frv_fdpic_fptr_operand): Don't declare here.
6286         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Y): Call got12_operand
6287         rather than fdpic_got12_operand.
6288         (PREDICATE_CODES): Remove symbolic_operand entry.  Add entries for
6289         got12_operand and const_unspec_operand.
6290         * config/frv/frv.c (got12_operand): Renamed from fdpic_got12_operand.
6291         (gpr_or_int12_operand, dbl_memory_one_insn_operand): Update calls.
6292         (symbolic_operand): Remove.
6293         (const_unspec_operand): New predicate.
6294         * config/frv/frv.md (*movsi_got): Use got12_operand.
6295         (*movsi_high_got, *movsi_lo_sum_got): Use const_unspec_operand.
6296         2003-11-18  Richard Sandiford  <rsandifo@redhat.com>
6297         * config/frv/frv-protos.h (frv_output_addr_const_extra): Remove.
6298         * config/frv/frv.h (OUTPUT_ADDR_CONST_EXTRA): Remove definition.
6299         * config/frv/frv.c (frv_unspec): New structure.
6300         (frv_small_data_reloc_p, frv_const_unspec_p): New functions.
6301         (frv_print_operand_memory_reference): Use frv_const_unspec_p to
6302         validate CONST indices.  Use frv_output_const_unspec to print them.
6303         (frv_print_operand): Update call to unspec_got_name.  Use
6304         frv_output_const_unspec to print constant unspecs.
6305         (frv_legitimate_fdpic_operand_p): Return true if frv_const_unspec_p.
6306         Reject UNSPECs otherwise.
6307         (unspec_got_name): Take the relocation number as argument, not an
6308         rtx containing it.
6309         (frv_output_addr_const_extra): Remove, replacing with...
6310         (frv_output_const_unspec): ...this new function.
6311         (frv_find_base_term): Use frv_const_unspec_p & frv_small_data_reloc_p.
6312         (gpr_or_int12_operand): Use fdpic_got12_operand.
6313         (dbl_memory_one_insn_operand): Likewise.
6314         (fdpic_got12_operand): Use frv_const_unspec_p.
6315         (frv_emit_movsi): Use frv_const_unspec_p to check for CONSTs that
6316         are already legitimate.  Use frv_small_data_reloc_p when deciding
6317         whether to use HIGH/LO_SUM for R_FRV_GOTOFF12 and R_FRV_GPREL12.
6318         2003-11-18  Alexandre Oliva  <aoliva@redhat.com>
6319         * config/frv/t-linux (SHLIB_MAPFILES): Override so as to export...
6320         * config/frv/libgcc-frv.ver: ... frv-specific symbols.  New file.
6321         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
6322         label, for real this time.
6323         * config/frv/frv.c (frv_local_funcdesc_p): Update to new
6324         representation of visibility.
6325         (fdpic_got12_operand, symbolic_operand): Mark unused arguments as
6326         such.
6327         2003-11-17  Richard Sandiford  <rsandifo@redhat.com>
6328         * config/frv/frv.h (MASK_LINKED_FP, TARGET_LINKED_FP): New macros.
6329         (TARGET_SWITCHES): Add -mlinked-fp and -mno-linked-fp.
6330         * config/frv/frv.c (frv_override_options): Set MASK_LINKED_FP unless
6331         it was explicitly disabled.
6332         (frv_stack_info): There is no need to save the link register in every
6333         frame unless TARGET_LINKED_FP is true.
6334         (frv_frame_pointer_required): If !TARGET_LINKED_FP, only require a
6335         frame pointer if the stack pointer might change value.
6336         (frv_return_addr_rtx): Check and process "count" argument.
6337         2003-11-14  Richard Sandiford  <rsandifo@redhat.com>
6338         * config/frv/frv-protos.h (frv_legitimize_address): Remove.
6339         (frv_find_base_term): Declare.
6340         * config/frv/frv.h (LEGITIMIZE_ADDRESS): Do nothing.
6341         (FIND_BASE_TERM): Define.
6342         (PREDICATE_CODES): Remove pic_register_operand, pic_symbolic_operand,
6343         small_data_register_operand, small_data_symbolic_operand.  Add
6344         symbolic_operand.
6345         * config/frv/frv.c (const_small_data_p, plus_small_data_p): Delete.
6346         (frv_print_operand_memory_reference, output_move_single): Remove
6347         special handling for unlegitimized sdata addresses.
6348         (frv_legitimate_address_p): Don't allow sums of SDA_BASE_REG
6349         and symbolic addresses.
6350         (frv_legitimize_address, frv_legitimize_fdpic_address): Delete.
6351         (frv_find_base_term): New function.
6352         (int_2word_operand): Check specifically for symbolic address constants.
6353         (pic_register_operand, pic_symbolic_operand): Delete.
6354         (small_data_register_operand, small_data_symbolic_operand): Delete.
6355         (dbl_memory_one_insn_operand): Don't call plus_small_data_p.
6356         Allow UNSPEC_GOT constants if !TARGET_FDPIC.
6357         (move_source_operand): Only accept CONSTs if they're a two-insn
6358         symbolic constant.
6359         (fdpic_got12_operand): Don't require TARGET_FDPIC.
6360         (frv_emit_movsi): Legitimize sdata and -mlibrary-pic addresses
6361         using gen_symGOTOFF2reg*.
6362         (frv_ifcvt_rewrite_mem): Remove (plus gr16 ...) special cases.
6363         (frv_rtx_costs): Give all MEM addresses a cost of 0.  Give MEMs
6364         themselves a cost of 3 insns.
6365         * config/mips/mips.md (*movsi_got): Allow for !TARGET_FDPIC too.
6366         Change predicate to symbolic_operand.
6367         (*movsi_high_got, *movsi_lo_sum_got): Likewise.
6368         (*movsi_lda_sdata): Delete.
6369         (*movsi_pic, movsi_high_pic, movsi_lo_sum_pic): Delete.
6370         2003-11-05  Alexandre Oliva  <aoliva@redhat.com>
6371         * config.gcc: Add t-slibgcc-elf-ver and support --with-cpu for
6372         frv-*-*linux*.
6373         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
6374         label.
6375         * config/frv/frv.h (DRIVER_SELF_SPECS): Add blank before
6376         -multilib-library-pic.
6377         (LINK_SPEC): Add -z text for -mfdpic.
6378         * config/frv/frvbegin.c (__ROFIXUP_LIST__): Don't define on FDPIC.
6379         * config/frv/frvend.c (__ROFIXUP_END__): Likewise.
6380         * config/frv/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, LINK_SPEC):
6381         Override.
6382         (OPTION_DEFAULT_SPECS, HAS_INIT_SECTION, INIT_SECTION_ASM_OP,
6383         FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION): Define.
6384         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Use
6385         crtstuff-generated files.
6386         2003-10-31  Alexandre Oliva  <aoliva@redhat.com>
6387         * config.gcc: Add frv-*-*linux*.
6388         * config/frv/linux.h, config/frv/t-linux: New.
6389         2003-10-06  Alexandre Oliva  <aoliva@redhat.com>
6390         * config/frv/frv.h (LINK_SPEC): Pass -melf32frvfd to the linker
6391         when -mfdpic even if a linker script is explicitly listed.
6392         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
6393         * config/frv/frv.c (frv_override_options): Clear asm_out
6394         unaligned_op for SImode on FDPIC.
6395         (frv_emit_movsi): Use compute_reloc_for_constant to compute the
6396         argument passed to decl_readonly_section.
6397         (frv_assemble_integer): Revert 2003-09-30's change, but make the
6398         whole block run with FDPIC even with -fno-PIC.
6399         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
6400         * config/frv/frv.c (frv_cannot_force_const_mem): Don't force
6401         symbol or label plus offset to memory.
6402         (frv_emit_movsi): Emit GPREL only if -mgprel-ro.  Emit 32-bit
6403         GOTOFF and GPREL for LABEL_REF.
6404         * config/frv/frv.h (DRIVER_SELF_SPECS): Add -mgprel-ro with
6405         -mfdpic unless -mno-gprel-ro, -fpic or -fpie.
6406         (MASK_GPREL_RO, TARGET_GPREL_RO): New.
6407         (TARGET_SWITCHES): Added gprel-ro and no-gprel-ro.
6408         * doc/invoke.texi: Document them.
6409         2003-09-30  Alexandre Oliva  <aoliva@redhat.com>
6410         * config/frv/frv-protos.h (frv_gen_GPsym2reg): Declare.
6411         (frv_splittable_got_operand): Removed.
6412         * config/frv/frv.c (frv_cannot_force_const_mem): Reject HIGH and
6413         LO_SUM.  Add comments.
6414         (frv_override_options): Moved enabling of FDPIC to
6415         DRIVER_SELF_SPECS.  Don't enable MASK_DWORD.
6416         (frv_local_funcdesc_p): Remove unnecessary heck for flag_pie.
6417         (frv_legitimize_fdpic_address): Don't duplicate logic in
6418         frv_emit_movsi.
6419         (frv_gen_GPsym2reg): New.
6420         (unspec_got_name): Added gprel.
6421         (frv_expand_fdpic_call): Add support for inlining PLTs.
6422         (fdpic_fptr_operand): Renamed from frv_fdpic_fptr_operand.
6423         (gpr_or_int12_operand): Added GPREL12.
6424         (pic_symbolic_operand): Match even if !flag_pic for FDPIC.
6425         (small_data_symbolic_operand): Fail if FDPIC.
6426         (fdpic_splittable_got_operand): Removed.
6427         (fdpic_got12_operand): Added GPREL12.
6428         (frv_emit_movsi): Reorganize to avoid duplication.  Emit GPREL
6429         when appropriate.  Fix sdata GOTOFF.
6430         (frv_legitimate_constant_p): Require legitimate PIC operand for
6431         FDPIC with pic, but only a legitimate fdpic operand for non-pic.
6432         (frv_assemble_integer): Move FDPIC funcdesc handling out of
6433         flag_pic case.
6434         (frv_asm_out_constructor, frv_asm_out_destructor): Abort if
6435         frv_assemble_integer fails.
6436         * config/frv/frv.h (DRIVER_SELF_SPECS): New.
6437         (SUBTARGET_DRIVER_SELF_SPECS): New.
6438         (ASM_SPEC): Don't pass -mno-fdpic.
6439         (LINK_SPEC): Pass -melf32frvfd for FDPIC.
6440         (MASK_INLINE_PLT, TARGET_INLINE_PLT): New.
6441         (TARGET_SWITCHES): Add -minline-plt, -mno-inline-plt and
6442         -multilib-library-pic.
6443         (PREDICATE_CODES): Added fdpic_operand, fdpic_fptr_operand,
6444         condexec_si_media_operator, condexec_sf_add_operator and
6445         condexec_sf_conv_operator.  Removed condexec_sf_binary_operator
6446         and condexec_sf_unary_operator.
6447         * config/frv/frv.md (R_FRV_GPREL12, R_FRV_GPRELHI, R_FRV_GPRELLO):
6448         New.
6449         (movsi_got, movsi_high_got, movsi_lo_sum_got): Move before
6450         movsi_internal.  Give them internal names.  movsi_got has type
6451         int.
6452         (fdpic got splitters): Remove.
6453         (symGPREL2reg, symGPREL2reg_hilo): New.
6454         * config/frv/t-frv (MULTILIB_MATCHES): Don't map -fpic and -fPIC
6455         to -mlibrary-pic.  Map -multilib-library-pic to it.
6456         * doc/invoke.texi: -mfdpic, -minline-plt, -multilib-library-pic:
6457         Document.
6458         2003-09-28  Alexandre Oliva  <aoliva@redhat.com>
6459         * config/frv/frv.c (frv_function_symbol_referenced_p): Declare.
6460         (TARGET_CANNOT_FORCE_CONST_MEM): Define to...
6461         (frv_cannot_force_const_mem): New function.
6462         (const_small_data_p, plus_small_data_p): Update comments on sdata
6463         on FDPIC.
6464         (frv_override_options): Set flag_pie for FDPIC too.
6465         (frv_conditional_register_usage): Mark gr16 and gr17 as non-fixed,
6466         call-saved registers on FDPIC.
6467         (frv_stack_info): Don't preserve the PIC register on FDPIC, and
6468         don't force LR to be preserved.
6469         (frv_expand_prologue): Likewise.
6470         (frv_asm_output_mi_thunk): Use 12-bit funcdesc gotoff for -fpic.
6471         (frv_frame_pointer_required): Don't force it just because the
6472         FDPIC register is used.
6473         (frv_legitimate_address_p) <CONST>: Accept a legitimate FDPIC
6474         operand only if !condexec_p.
6475         (frv_legitimize_address): Return the FDPIC-legitimized address.
6476         Don't match small data here on FDPIC.
6477         (frv_legitimate_fdpic_operand_p): Don't accept unadorned function
6478         symbols.  Use TRUE/FALSE instead of 1/0.
6479         (frv_local_funcdesc_p): New.
6480         (frv_legitimize_fdpic_address): Rewrite to use GOTOFF and 12-bit
6481         immediates when possible.
6482         (pic_symbolic_operand): Accept SYMBOL_REFs and CONSTs in FDPIC.
6483         (dbl_memory_one_insn_operand): Accept addresses that add a REG and
6484         an UNSPEC_GOT.
6485         (frv_emit_movsi): Handle FDPIC before small data.  Use GOTOFF and
6486         12-bit immediates when possible.
6487         (frv_legitimate_constant_p): In FDPIC, reject SImode operands that
6488         are not legitimate pic operands.
6489         (frv_in_small_data_p): Re-enable for FDPIC.
6490         * config/frv/frv.h (SDA_BASE_REG): Remove comment about FDPIC.
6491         (FRV_GLOBAL_P): Removed.
6492         * config/frv/frv.md: Add modes to CONSTs.
6493         (movsi_got): New.
6494         (movsi_lo_sum_got): Use separate matches instead of match_dup.
6495         (movsi_high_pic, movsi_lo_sum_pic): Match on non-FDPIC only.
6496         (fdpic splittable operations): Match on flag_pic != 1.
6497         2003-09-22  Alexandre Oliva  <aoliva@redhat.com>
6498         * config/frv/frv.c (frv_asm_out_constructor,
6499         frv_asm_out_destructor): Pass to frv_assemble_integer the size in
6500         bytes, not bits.
6501         2003-09-19  Alexandre Oliva  <aoliva@redhat.com>
6502         * config/frv/frv.c (frv_assemble_integer): Reject complex
6503         expressions referencing function SYMBOL_REFs.
6504         * config/frv/frv.c (frv_function_symbol_referenced_p): New.
6505         (move_source_operand): Reject CONSTs that reference function
6506         SYMBOL_REFs on FDPIC.
6507         (frv_emit_movsi): If we get such a CONST, break it up.
6508         * config/frv/frv.h (CPP_SPEC): Define __FRV_FDPIC__ for -mfdpic.
6509         (TRANSFER_FROM_TRAMPOLINE): Use different definitions for FDPIC.
6510         * config/frv/frv.c (frv_print_operand) <I>: Recognize PLUS without
6511         MEM.
6512         (frv_assemble_integer): Don't use funcdesc for LABEL_REFs.
6513         (frv_trampoline_size): Increase for FDPIC.
6514         * config/frv/frv.h (TRAMPOLINE_ALIGNMENT): Bump to 64 for FDPIC.
6515         (TRANSFER_FROM_TRAMPOLINE): Handle FDPIC trampolines.
6516         * config/frv/frv.c (frv_legitimize_fdpic_address, frv_emit_movsi):
6517         Disable use of GOTOFF for now.
6518         (const_small_data_p, plus_small_data_p, frv_in_small_data_p):
6519         Disable use of small data in FDPIC for now.
6520         (frv_asm_output_mi_thunk): Implement for FDPIC.
6521         * config/frv/frv.h (SDA_BASE_REG): Set to -1 with FDPIC.
6522         * config/frv/frv.c (frv_asm_out_constructor): Use
6523         frv_assemble_integer for FDPIC pointers.
6524         (frv_asm_out_destructor): Likewise.
6525         * config/frv/frv.md (ldd): Fix order of operands.  Use
6526         address_operand for input.
6527         2003-09-18  DJ Delorie  <dj@redhat.com>
6528         * config/frv/frv.c (frv_legitimate_fdpic_operand_p): Remove UNSPEC_PIC.
6529         (unspec_got_name): Correct typo.
6530         (frv_emit_movsi): Pre-expand splittable GOTs.
6531         (frv_expand_fdpic_call): Rename gen_lddi to gen_ldd.
6532         * config/frv/frv.md (lddi): Fix syntax error, rename to ldd.
6533         (symGOT2reg_hilo, symGOTOFF2reg_hilo): New.
6534         * config/frv/t-frv: Add -mfdpic multilibs.
6535         * config/frv/frv.h (ASM_SPEC): Pass -mfdpic/-mno-fdpic.
6536         (TARGET_SWITCHES): Add -mno-fdpic, fix documentation.
6537         * config/frv/frv.c (frv_override_options): -mfdpic assumes
6538         flag_pic, default to 32-bit pics, require DWORD ops.
6539         (frv_override_options): Add W and Z constraints.
6540         (frv_expand_prologue): No pic prologue for -mfdpic.
6541         (frv_asm_output_mi_thunk): Support -mfdpic (soon).
6542         (frv_print_operand_memory_reference): Handle GOT constants.
6543         (frv_legitimate_address_p): Allow GOT constants.
6544         (frv_legitimize_address): Handle GOT addresses too.
6545         (frv_legitimate_fdpic_operand_p): New.
6546         (frv_legitimize_fdpic_address): New.
6547         (unspec_got_name): New.
6548         (frv_output_addr_const_extra): New.
6549         (frv_expand_fdpic_call): New.
6550         (frv_fdpic_fptr_operand): New.
6551         (gpr_or_int12_operand): Handle GOT operands.
6552         (int_2word_operand): Handle GOT operands.
6553         (fdpic_operand): New.
6554         (fdpic_splittable_got_operand): New.
6555         (fdpic_got12_operand): New.
6556         (frv_emit_movsi): Handle GOT operands.
6557         (frv_assemble_integer): -mfdpic doesn't use rofixups.
6558         (frv_print_operand): Support 'g' code for GOT operands.
6559         * config/frv/frv-protos.h: Add prototypes as needed.
6560         * config/frv/frv.md (R_FRV_GOT12, R_FRV_GOTHI, R_FRV_GOTLO,
6561         R_FRV_FUNCDESC, R_FRV_FUNCDESC_GOT12, R_FRV_FUNCDESC_GOTHI,
6562         R_FRV_FUNCDESC_GOTLO, R_FRV_FUNCDESC_VALUE,
6563         R_FRV_FUNCDESC_GOTOFF12, R_FRV_FUNCDESC_GOTOFFHI,
6564         R_FRV_FUNCDESC_GOTOFFLO, R_FRV_GOTOFF12, R_FRV_GOTOFFHI,
6565         R_FRV_GOTOFFLO): New.
6566         (movsi_high_got, movsi_lo_sum_got): New.
6567         (*movsi_pic): Don't use this splitter for -mfdpic.
6568         (addsi3): Allow GOT references also.
6569         (call, call_value): Handle -mfdpic separately.
6570         (call_fdpicdi, call_fdpicsi, lddi, call_value_fdpicdi,
6571         call_value_fdpicsi): New.
6572         (symGOT2reg, symGOT2reg_i, got splitters, symGOTOFF2reg,
6573         symGOTOFF2reg_i): New.
6574         * config/frv/frv.h (MASK_FDPIC): New.
6575         (TARGET_FDPIC): New.
6576         (TARGET_SWITCHES): Add -mfdpic.
6577         (FDPIC_FPTR_REGNO): New.
6578         (FDPIC_REGNO): New.
6579         (OUR_FDPIC_REG): New.
6580         (enum reg_class): Add FDPIC_REGS, FDPIC_FPTR_REGS, and
6581         FDPIC_CALL_REGS.
6582         (REG_CLASS_NAMES): Likewise.
6583         (REG_CLASS_CONTENTS): Likewise.
6584         (EXTRA_CONSTRAINT_FOR_Y): New, for 12-bit GOTs.
6585         (EXTRA_CONSTRAINT): Add it here.
6586         (FRV_GLOBAL_P): New.
6587         (OUTPUT_ADDR_CONST_EXTRA): New.
6588
6589 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
6590
6591         * config/sparc/sparc.h: Remove commented-out definitions of
6592         TARGET_EDOM and GEN_ERRNO_RTX.
6593
6594 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
6595
6596         * df.c, df.h, ra-build.c, ra-rewrite.c, ra.c, web.c: Replace
6597         df_analyse with df_analyze.
6598
6599 2004-02-24  Alan Modra  <amodra@bigpond.net.au>
6600
6601         * gcse.c (delete_null_pointer_checks_1): Set stop_insn to end, not
6602         beginning of block.
6603
6604 2004-02-23  James E Wilson  <wilson@specifixinc.com>
6605
6606         * calls.c (precompute_arguments): Update comment.
6607
6608 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
6609
6610         * et-forest.c: Replace et_occurences with et_occurrences.
6611
6612 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
6613
6614         * cfgloop.h, loop-iv.c, loop-unswitch.c: Replace iv_analyse
6615         with iv_analyze.
6616
6617 2004-02-23  Kelley Cook  <kcook@gcc.gnu.org>
6618
6619         * config/i386/i386.c: Rename pni to sse3.
6620         * config/i386/i386.h: Likewise.
6621         * config/i386/i386.md: Likewise.
6622         * config/i386/pmmintrin.h: Likewise.
6623         * doc/extend.texi: Likewise.
6624         * doc/invoke.texi: Likewise.
6625
6626 2004-02-23  Zack Weinberg  <zack@codesourcery.com>
6627             Kazu Hirata  <kazu@cs.umass.edu>
6628
6629         Remove -fwritable-strings.
6630         * c-common.c (fix_string_type): Don't check
6631         flag_writable_strings.
6632         (fix_string_type): Likewise.
6633         * c-opts.c (set_std_c89): Don't initialize
6634         flag_writable_strings.
6635         (set_std_c99): Likewise.
6636         * common.opt (fwritable-strings): Remove.
6637         * flags.h: Remove the external declaration of
6638         flag_writable_strings.
6639         * opts.c (common_handle_option) <OPT_fwritable_strings>:
6640         Remove.
6641         * toplev.c (flag_writable_strings): Remove.
6642         (f_options): Remove an entry for writable-strings.
6643         * varasm.c (const_hash_1) <STRING_CST>: Don't check
6644         flag_writable_strings.
6645         (compare_constant) <STRING_CST>: Likewise.
6646         (build_constant_desc): Likewise.
6647         * config/darwin.c (machopic_select_section): Likewise.
6648         * config/arm/arm.c (AOF_ASSEMBLER): Likewise.
6649         * config/arm/pe.c (arm_pe_encode_section_info): Likewise.
6650         * config/iq2000/iq2000.c (iq2000_select_section): Likewise.
6651         * config/mips/mips.c (mips_select_section): Likewise.
6652         (mips_encode_section_info): Likewise.
6653         * config/pa/pa.c (pa_select_section): Likewise.
6654         * config/pa/pa.h (TEXT_SPACE_P): Likewise.
6655         * config/v850/v850.c (v850_select_section): Likewise.
6656         * doc/invoke.texi (-fwritable-strings): Remove.
6657         (-fno-const-strings): Don't mention -fwritable-strings.
6658         * doc/trouble.texi: Don't mention -fwritable-strings.
6659
6660 2003-02-23  Nathanael Nerode  <neroden@gcc.gnu.org>
6661
6662         * doc/install.texi: Update for switch of boehm-gc to autoconf 2.57.
6663
6664 2004-02-23  Dale Johannesen  <dalej@apple.com>
6665
6666         * config/rs6000.md (movsf_hardfloat): Add POWER form of nop.
6667         (movdf_hardfloat64):  Ditto.
6668         (movdf_softfloat64):  Ditto.
6669
6670 2004-02-23  Fariborz Jahanian <fjahanian@apple.com>
6671         * config/rs6000/rs6000.c (function_arg): call to
6672         rs6000_mixed_function_arg for DFmode moved to allow
6673         normal DFmode incoming register assignment.
6674
6675 2004-02-23  Dale Johannesen  <dalej@apple.com>
6676
6677         * config/rs6000.md (movsf_hardfloat): Accept CTR-to-CTR copy.
6678         (movdf_hardfloat64):  Ditto.
6679
6680 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
6681
6682         * convert.c, gcov-io.c, libgcov.c, sched-int.h, sibcall.c,
6683         config/rs6000/linux.h, config/rs6000/rs6000-c.c: Update
6684         copyright.
6685
6686 2004-02-23  Andrew Pinski  <pinskia@physics.uc.edu>
6687
6688         PR c/14156
6689         * c-typeck.c (c_expand_return): Change check for VAR_DECL
6690         to use DECL_P instead.
6691
6692         * config/rs6000/linux.h (OS_MISSING_POWERPC64): Define.
6693         * config/rs6000/linux64.h (OS_MISSING_POWERPC64): Define.
6694
6695 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
6696
6697         * Makefile.in (opts.o): Depend on target.h.
6698         * opts.c (decode_options): Use targetm.default_short_enums
6699         instead of DEFAULT_SHORT_ENUMS.
6700         * system.h (DEFAULT_SHORT_ENUMS): Poison.
6701         * target-def.h (TARGET_DEFAULT_SHORT_ENUMS): New.
6702         (TARGET_INITIALIZER): Add TARGET_DEFAULT_SHORT_ENUMS.
6703         * target.h (gcc_target): Add default_short_enums.
6704         * config/cris/cris.h: Remove a comment about
6705         DEFAULT_SHORT_ENUMS.
6706         * config/ip2k/ip2k.h: Likewise.
6707         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Change to
6708         TARGET_DEFAULT_SHORT_ENUMS.  Update the description.
6709
6710 2004-02-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
6711             Falk Hueffner  <falk@debian.org>
6712
6713         PR c/14188
6714         * builtins.c (expand_builtin_va_arg): Emit an informative message
6715         if a trap is generated.
6716         * c-typeck.c (build_function_call): Likewise.
6717
6718 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
6719
6720         * gcov-io.c (gcov_open) [GCOV_LOCKED]: Use open + fdopen instead of
6721         fopen.
6722         * libgcov.c: Include sys/stat.h.
6723         * config/rs6000/linux.h (TARGET_HAS_F_SETLKW): Define.
6724         * config/rs6000/linux64.h (TARGET_HAS_F_SETLKW): Define.
6725         * config/sparc/linux.h (TARGET_HAS_F_SETLKW): Define.
6726         * config/sparc/linux64.h (TARGET_HAS_F_SETLKW): Define.
6727
6728 2004-02-22  Kazu Hirata  <kazu@cs.umass.edu>
6729
6730         * reorg.c: Remove comments about dead ports.
6731
6732 2004-02-22  Christopher Faylor  <cgf@redhat.com>
6733
6734         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): *Really* specify
6735         extra host object file when targetting cygwin rather than generic
6736         object files.
6737
6738 2004-02-22  Josef Zlomek  <zlomekj@suse.cz>
6739
6740         Merge from tree-ssa:
6741         2003-11-20  Richard Henderson  <rth@redhat.com>
6742
6743                 * tree-inline.c (insert_decl_map): New.
6744                 (remap_decl, remap_type, remap_block, copy_body_r,
6745                 initialize_inlined_parameters, declare_return_variable,
6746                 remap_save_expr): Use it.
6747
6748         * function.c (copy_body_r): Add mapping from id->ret_label to
6749         id->ret_label.  Revert test for ret_label.
6750
6751 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
6752
6753         * genoutput.c (process_template): Strip trailing whitespace in @
6754         templates and issue a warning if there was any.
6755
6756 2004-02-21  Christopher Faylor  <cgf@redhat.com>
6757
6758         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): Specify extra host
6759         object file when targetting cygwin.
6760         * config/i386/t-cygwin (EXTRA_GCC_OBJS): Remove definition since it is
6761         overridden by top-level Makefile.
6762
6763 2004-02-21  Roger Sayle  <roger@eyesopen.com>
6764
6765         * config/i386/i386.c (standard_80387_constant_p): Also prefer
6766         the x87's load constant instructions when optimizing for size.
6767
6768 2004-02-21  Kazu Hirata  <kazu@cs.umass.edu>
6769
6770         * combine.c (SHIFT_COUNT_TRUNCATED): Remove.
6771         * defaults.h (SHIFT_COUNT_TRUNCATED): Provide the default.
6772         * expmed.c: Assume SHIFT_COUNT_TRUNCATED is always defined.
6773         * fold-const.c: Likewise.
6774         * simplify-rtx.c: Likewise.
6775
6776 2004-02-21  Alan Modra  <amodra@bigpond.net.au>
6777
6778         * combine.c (can_combine_p): Don't ignore SETs marked with
6779         REG_EH_REGION notes.
6780         (try_combine): When attemting to fix unrecognized insns, don't
6781         split a PARALLEL that contains the original i2.
6782
6783 2004-02-21  Ziemowit Laski  <zlaski@apple.com>
6784
6785         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Refer to
6786         SUBTARGET_OPTION_TRANSLATE_TABLE for architecture-specific options.
6787         * config/i386/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): Define it.
6788         * config/rs6000/altivec.h: #error out if '-maltivec' not specified.
6789         (vector, pixel, bool): #define to __vector, __pixel and __bool.
6790         (__un_args_eq, __bin_args_eq, __tern_args_eq): Move to C-specific
6791         portion of header.
6792         (__altivec_link_error_invalid_argument): Remove prototype; will use
6793         __builtin_altivec_compiletime_error("vec_*") instead.
6794         (vec_*): Fix/complete set of available operation overloads given the
6795         existence of distinct 'vector bool ...' and 'vector pixel' types; tighten
6796         cv-correctness of pointer arguments; in C, always check for correct
6797         argument types before macro expansion.
6798         * config/rs6000/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): New macro
6799         defining Darwin/PowerPC-specific '-f[no-]altivec' and
6800         '-W[no-]altivec-long-deprecated' switches.
6801         * config/rs6000/rs6000-c (rs6000_cpu_cpp_builtins): Pre-define
6802         '__vector', '__pixel' and '__bool' macros using
6803         '__attribute__((altivec(...)))' types.
6804         * config/rs6000/rs6000.c (bool_char_type_node, bool_short_type_node,
6805         bool_int_type_node, pixel_type_node, bool_V16QI_type_node,
6806         bool_V8HI_type_node, bool_V4SI_type_node, pixel_V8HI_type_node):
6807         New type nodes.
6808         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): New, for
6809         handling '-W[no-]altivec-long-deprecated'.
6810         (rs6000_override_options): Handle '-W[no-]altivec-long-deprecated'.
6811         (rs6000_expand_binop_builtin, rs6000_expand_ternop_builtin,
6812         altivec_expand_dst_builtin): Remove casts from integer literals.
6813         (altivec_expand_builtin): Likewise; handle expansion of new
6814         '__builtin_altivec_compiletime_error' function.
6815         (rs6000_init_builtins): Initialize 'vector bool ...' and 'vector pixel'
6816         types, and make them distinct from other vector types; register
6817         '__builtin_altivec_compiletime_error' function.
6818         (print_operand): For 'P', print a full target register name instead of
6819         merely its number.
6820         (rs6000_attribute_table): Add "altivec" attribute.
6821         (rs6000_handle_altivec_attribute): New function.
6822         * config/rs6000/rs6000.h (TARGET_OPTIONS): Describe
6823         '-m[no-]-warn-altivec-long' (which '-W[no-]altivec-long-deprecated'
6824         maps to).
6825         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): Forward
6826         declare.
6827         (ALTIVEC_BUILTIN_COMPILETIME_ERROR): New built-in enumeration.
6828
6829 2004-02-20  James E Wilson  <wilson@specifixinc.com>
6830
6831         * config/ia64/ia64.md (shift_mix4left+1): Delete reload_completed
6832         check.
6833         (shift_mix4left+2): Delete redundant pattern.
6834
6835 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
6836
6837         * alias.c (OUTGOING_REGNO): Don't define the default.
6838         * builtins.c (OUTGOING_REGNO): Likewise.
6839         (INCOMING_REGNO): Likewise.
6840         (apply_args_register_offset): Always use OUTGOING_REGNO.
6841         * combine.c (OUTGOING_REGNO): Likewise.
6842         * sibcall.c (OUTGOING_REGNO): Likewise.
6843         * defaults.h (INCOMING_REGNO): Provide the default.
6844         (OUTGOING_REGNO): Likewise.
6845
6846 2004-02-21  Jan Hubicka  <jh@suse.cz>
6847
6848         * params.def (max-peeled-insns, max-completely-peeled-insns,
6849         max-once-peeled-insns): Set to 400.
6850
6851 2004-02-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6852
6853         PR c++/12007
6854         * dbxout.c (dbxout_parms): Check that DECL_RTL and DECL_INCOMING_RTL
6855         are set for parameters before outputing debugging information.
6856
6857 2004-02-20  Falk Hueffner  <falk@debian.org>
6858
6859         PR target/14201
6860         * config/alpha/alpha.md (*fix_truncsfsi_ieee): Fix typoed operand
6861         numbers.
6862
6863 2004-02-20  Per Bothner  <per@bothner.com>
6864
6865         * input.h:  Don't #include line-map.h.  It may cause link problems
6866         with undefined linemap_line_start when line-map.h is included but
6867         line-map.o is not linked, as currently happens with gengtype on
6868         compilers that don't support inline.
6869         * toplev.c:  So we do have to explicitly #include line-map.h here.
6870
6871 2004-02-20  Richard Henderson  <rth@redhat.com>
6872
6873         * doc/invoke.texi: Add -Wvariadic-macros.
6874
6875 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
6876
6877         * haifa-sched.c (sched_emit_insn): Remove.
6878         * sched-int.h: Remove the corresponding prototype.
6879
6880 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
6881
6882         Revert:
6883         2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
6884         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
6885         * system.h (DEFAULT_SHORT_ENUMS): Poison.
6886         * config/cris/cris.h: Remove a comment about
6887         DEFAULT_SHORT_ENUMS.
6888         * config/ip2k/ip2k.h: Likewise.
6889         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
6890
6891 2004-02-20  Mohan Embar  <gnustuff@thisiscool.com>
6892             Tom Tromey  <tromey@redhat.com>
6893
6894         * doc/install.texi: Moved --disable-libgcj and
6895         --with-system-zlib documentation to new section for
6896         Java-specific options.
6897         Added explicit Cross-Compiler-Specific Options subheading.
6898         Added section for Java-specific options.
6899
6900 2004-02-20  Matt Kraai  <kraai@alumni.cmu.edu>
6901
6902         * doc/install.texi (Building the Ada compiler): Remove
6903         example.
6904
6905 2004-02-20  James E Wilson  <wilson@specifixinc.com>
6906
6907         * toplev.c (dump_file_index, dump_file): Put ce3 before rnreg.
6908
6909 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
6910
6911         * gcc.c (process_command): Allow translation of the copyright
6912         symbol but not the rest of the copyright message.
6913         * gcov.c (print_version): Likewise.  Allow translation of the
6914         message about warranty.
6915
6916 2004-02-20  Hans-Peter Nilsson  <hp@axis.com>
6917
6918         * config/cris/cris.md ("*andsi_movu"): Correct parentheses in
6919         predicate.
6920         ("*andsi_clear"): Tweak constraints to not match postincrement.
6921         Adjust the predicate to exclude a volatile memory reference.
6922         ("*andhi_clear"): Ditto.  Rename from "*andhi_clear_signed".
6923         ("*andhi_clear_unsigned"): Remove, non-matching pattern.
6924
6925 2004-02-19  Matt Kraai  <kraai@alumni.cmu.edu>
6926
6927         * move-if-change: Remove.
6928         * Makefile.in (s-mlib, c-parse.y, s-check, s-gencheck)
6929         (s-specs, s-options, s-config, s-conditions, s-flags, s-codes)
6930         (s-constants, s-emit, s-recog, s-opinit, s-extract, s-peep)
6931         (s-attr, s-attrtab, s-output, s-genrtl, s-modes, s-preds)
6932         (s-gtyp-gen, s-iov): Use the top level move-if-change.
6933         * objc/Make-lang.in (objc/objc-parse.y): Likewise.
6934
6935 2004-02-19  James E Wilson  <wilson@specifixinc.com>
6936
6937         * config/i386/i386.md (doloop_end_internal): Use nonimmediate_operand
6938         for operand2.  Add condition that requires register_operand operand2
6939         before reload.
6940
6941 2004-02-19  Richard Sandiford  <rsandifo@redhat.com>
6942             Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
6943
6944         * config/mips/mips.c (mips_address_insns): Treat BLKmode specially.
6945         * config/mips/mips.md: Expand comment above unaligned loads and stores.
6946
6947 2004-02-19  Richard Henderson  <rth@redhat.com>
6948
6949         * Makefile.in (STRICT2_WARN): Add -Wno-variadic-macros.
6950         * tree.c (build0, build1, build2, build3, build4): Split out from...
6951         (build): ... here.  Call them.
6952         * tree.h (build, _buildN1, _buildN2, _buildC1, _buildC2): New.
6953
6954         * convert.c (convert_to_integer): Remove extra build argument.
6955         * tree-inline.c (expand_call_inline): Likewise.
6956
6957 2004-02-19  Richard Henderson  <rth@redhat.com>
6958
6959         * c-opts.c (warn_variadic_macros): New.
6960         (c_common_handle_option): Set it.
6961         (sanitize_cpp_opts): Copy it to cpp_opts.
6962         * c.opt (Wvariadic-macros): New.
6963         * cpplib.h (struct cpp_options): Add warn_variadic_macros.
6964         * cppinit.c (cpp_create_reader): Initialize it.
6965         * cppmacro.c (parse_params): Check it.
6966
6967 2004-02-19  David Daney <ddaney@avtrex.com>
6968
6969         PR preprocessor/14198
6970         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Add
6971         builtin_assert ("machine=mips")
6972
6973 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
6974
6975         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
6976         * system.h (DEFAULT_SHORT_ENUMS): Poison.
6977         * config/cris/cris.h: Remove a comment about
6978         DEFAULT_SHORT_ENUMS.
6979         * config/ip2k/ip2k.h: Likewise.
6980         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
6981
6982 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
6983
6984         * config/ia64/ia64.c (ia64_function_arg): In big-endian mode,
6985         when passing single SFmode quantities in general registers,
6986         put them in the high half.
6987
6988 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
6989
6990         * doc/md.texi (Standard Names): Document additional dependency on
6991         fix pattern.
6992
6993         * optabs.c (ftruncify): Remove.
6994         (expand_fix): Manually inline ftruncify above.
6995         (can_fix_p): Add FIXME note.
6996
6997 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
6998
6999         * config/rs6000/spe.md (spe_fixunssfsi2): Rename to
7000         spe_fixuns_truncsfsi2.
7001
7002         * config/rs6000/rs6000.md (fixunssfsi2): Rename to
7003         fixuns_truncsfsi2.
7004
7005 2004-02-19  Steve Ellcey  <sje@cup.hp.com>
7006
7007         * config/ia64/ia64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
7008         * testsuite/gcc.dg/20040219-1.c: New test.
7009
7010 2004-02-19  Ulrich Weigand  <uweigand@de.ibm.com>
7011
7012         * config/s390/s390.md ("*subdf3_cc", "*subdf3_cconly", "*subsf3_cc",
7013         "*subsf3_cconly"): Subtraction is not commutative.
7014
7015 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
7016
7017         * sdbout.c (preinit_symbols, sdbout_initialized): New statics.
7018         (sdbout_symbol): If called before sdbout_init, queue DECL for
7019         later and return.
7020         (sdbout_init): Set sdbout_initialized true, process decls
7021         queued earlier by sdbout_symbol.
7022         (sdbout_finish): Use size_t for index variable.
7023
7024 2004-02-19  Jeff Law  <law@redhat.com>
7025
7026         * fold-const.c (invert_truthvalue): Do not call invert_tree_comparison
7027         for unordered comparison codes.
7028
7029 2004-02-19  Ian Lance Taylor  <ian@wasabisystems.com>
7030
7031         * reload1.c (reload): Correct comment.
7032         (scan_paradoxical_subregs): Remove #if 0 and old comment.
7033         * doc/extend.texi (Local Reg Vars): Remove obsolete comment that
7034         register variables are not used by reload.
7035
7036 2004-02-19  Hans-Peter Nilsson  <hp@axis.com>
7037
7038         PR target/14209
7039         * config/cris/cris.md ("*andsi_movu", "*andhi_movu"): Tweak
7040         constraints to not match postincrement.  Adjust the predicate to
7041         exclude a volatile memory reference.
7042
7043 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
7044
7045         * config/mcore/mcore.h (ASM_OUTPUT_EXTERNAL): Remove.
7046
7047 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
7048
7049         * hooks.c (hook_void_tree_int): Remove.
7050         (hook_void_constcharptr): Likewise.
7051         (hook_int_void_0): Likewise.
7052         * hooks.h: Remove the prototypes for the above three
7053         functions.
7054         * targhooks.c (hook_bool_machine_mode_true): Remove.
7055         * targhooks.h: Remove the prototype for
7056         hook_bool_machine_mode_true.
7057
7058 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
7059
7060         * emit-rtl.c (subreg_realpart_p): Remove.
7061         (reorder_insns_with_line_notes): Likewise.
7062         (end_full_sequence): Likewise.
7063         * rtl.h: Remove the prototype for the above functions.
7064
7065 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
7066
7067         * config/arc/arc.h, config/arm/arm.h, config/frv/frv.h,
7068         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
7069         config/iq2000/iq2000.h, config/m32r/m32r.h,
7070         config/pdp11/pdp11.h, config/sparc/sparc.h,
7071         config/xtensa/xtensa.h: Remove commented-out or useless
7072         definitions of CASE_VECTOR_PC_RELATIVE.
7073
7074 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
7075
7076         * loop.c (all_sets_invariant_p): Remove.
7077
7078 2004-02-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
7079
7080         PR target/12916
7081         * config/sparc/sparc.h (NPARM_REGS): Delete.
7082         (BASE_RETURN_VALUE_REG): Likewise.
7083         (BASE_OUTGOING_VALUE_REG): Likewise.
7084         (BASE_PASSING_ARG_REG): Likewise.
7085         (BASE_INCOMING_ARG_REG): Likewise.
7086         * config/sparc/sparc.c (sparc_strict_argument_naming): Test
7087         TARGET_ARCH64, not TARGET_V9.
7088         (function_arg_slotno): Dispatch based on the mode class.
7089         Handle vector modes like floating-point modes.
7090         (function_arg_record_value_1): Handle vector types like
7091         floating-point types.
7092         (function_arg_record_value_2): Likewise.
7093         Calculate regno after mode transformation.
7094         (function_arg): Handle vector modes like floating-point modes.
7095         (function_arg_partial_nregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX.
7096         If ARCH64, do not recheck alignment.
7097         (function_arg_pass_by_reference): Reorder the conditions.
7098         (sparc_return_in_memory): Move after function_arg_padding.
7099         Implement calling conventions for vector modes.
7100         (sparc_struct_value_rtx): Move after sparc_return_in_memory.
7101         (function_value): Move scope of 'regbase'.
7102         Implement calling conventions for vector modes.
7103         (sparc_builtin_saveregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX
7104         and BASE_INCOMING_ARG_REG by SPARC_INCOMING_INT_ARG_FIRST.
7105         (sparc_va_arg): Use function_arg_pass_by_reference to test whether
7106         the argument is passed by reference.
7107         (sparc_type_code): Handle vector types.
7108
7109 2004-02-19  Alan Modra  <amodra@bigpond.net.au>
7110
7111         * function.c (assign_parms): When building decl_rtl for
7112         SPLIT_COMPLEX_ARGS, ensure inner modes of concat match outer.
7113
7114 2004-02-19  Olivier Hainque  <hainque@act-europe.fr>
7115
7116         * expr.c (is_aligning_offset): Check if we are aligning the
7117         expressions's address over BIGGEST_ALIGNMENT in bytes, not
7118         in bits.
7119
7120 2003-02-18  Matt Austern  <austern@apple.com>
7121
7122         * gcc.c (LIBGCC_SPEC): If REAL_LIBGCC_SPEC is defined, and
7123         LIBGCC_SPEC isn't, set LIBGCC_SPEC to REAL_LIBGCC_SPEC.
7124         (init_gcc_spec): Don't define or call if REAL_LIBGCC_SPEC is
7125         defined.  Instead use REAL_LIBGCC_SPEC, unmodifed, as the libgcc
7126         spec string.
7127         * doc/tm.texi (REAL_LIBGCC_SPEC): Document.
7128
7129 2004-02-18  Zack Weinberg  <zack@codesourcery.com>
7130
7131         * dwarf2out.c (loclabel_num): Move outside #ifdef
7132         DWARF2_DEBUGGING_INFO and mark with GTY(()).
7133         * config/ia64/ia64.c (struct extern_func_list,extern_func_head):
7134         Mark with GTY(()).
7135         (ia64_hpux_add_extern_decl): Save the decl, not the name string.
7136         Allocate memory with ggc_alloc.  No need to copy anything.
7137         (ia64_hpux_file_end): Update to match.
7138
7139 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
7140
7141         * config/i386/i386.c (override_options): Don't imply 3DNow! for -m64
7142         by default.
7143
7144 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
7145
7146         * config/s390/s390.md ("divmodtidi3"): Use canonical RTL.
7147         ("divmodtisi3"): Likewise.
7148         ("udivmoddi4", "udivmodtidi3"): Likewise.
7149         ("divmodsi4", "divmoddisi3"): Likewise.
7150         ("udivmodsi4", "udivmoddisi3"): Likewise.
7151         ("udivsi3", "umodsi3"): Likewise.
7152
7153 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
7154
7155         * config/s390/s390.c (s390_mainpool_start): Delete the main pool
7156         placeholder insn when chunkifying the pool.
7157
7158 2004-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7159
7160         * pa.h (PIC_OFFSET_TABLE_REGNUM): Define to INVALID_REGNUM when not
7161         generating PIC code.
7162
7163 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
7164
7165         * config/h8300/h8300-protos.h: Add a prototype for
7166         h8300_expand_branch.
7167         * config/h8300/h8300.c (h8300_expand_branch): New.
7168         * config/h8300/h8300.md (ble, bleu, bge, bgeu, blt, bltu, bgt,
7169         bgtu, beq, bne): Call h8300_expand_branch().
7170
7171 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
7172
7173         * config/h8300/h8300-protos.h: Add prototypes for
7174         h8300_hard_regno_nregs and h8300_hard_regno_mode_ok.
7175         * config/h8300/h8300.c (h8300_hard_regno_nregs): New.
7176         (h8300_hard_regno_mode_ok): Likewise.
7177         * config/h8300/h8300.h (HARD_REGNO_NREGS): Call
7178         h8300_hard_regno_nregs().
7179         (HARD_REGNO_MODE_OK): Call h8300_hard_regno_mode_ok().
7180
7181 2004-02-18  Per Bothner  <per@bothner.com>
7182
7183         * cpphash.h (struct cpp_buffer):  Restore return_at_eof field.  This
7184         partly reverts my 2003-10-01 change, because we're back to logically
7185         including <command line> inside the main line.
7186         * cpplex.c (_cpp_get_fresh_line):  Check return_at_eof field.
7187         * cppmacro.c (cpp_scan_nooutput):  Set return_at_eof of current buffer.
7188         Fixes PR preprocessor/14103.
7189
7190         * cppfiles.c (_cpp_stack_include):  When appropriate decrement
7191         line_table's highest_location, fixing LAST_SOURCE_LINE_LOCATION.
7192         (cpp_push_include):  Don't need to increment pfile's line field.
7193         * line-map.h (LAST_SOURCE_LINE_LOCATION):  Only decrement by 1.
7194
7195         * c-ppoutput.c (print struct):  New first_time field.
7196         (init_pp_output):  Set print.first_time.
7197         (pp_file_change):  Use print.first_time, rather than MAIN_FILE_P,
7198         which is set also for (say) <command line>.  Clear print.first_time.
7199
7200         * cppfiles.c (struct _cpp_file):  Comment and type for pch field
7201         does not match the code, so fix both.
7202         (should_stack_file):  Inline include_pch_p function.
7203         (include_pch_p):  Remove pointless function.
7204
7205         * cpphash.h (struct cpp_buffer):  Remove unused search_cached field.
7206
7207 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
7208
7209         * config/h8300/h8300.md (four define_peephole2's): Use
7210         h8300_regs_ok_for_stm().
7211
7212 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
7213
7214         * config/h8300/h8300-protos.h: Update the prototype for
7215         expand_a_rotate().
7216         * config/h8300/h8300.c (expand_a_rotate): Remove the first
7217         argument.
7218         * config/h8300/h8300.md: Update all callers.
7219
7220 2004-02-18  Jan Hubicka  <jh@suse.cz>
7221
7222         * simplify-rtx.c (simplify_unary_operation): Deal with logicals on
7223         floats.
7224         (simplify_binary_operation): Deal with logicals on floats.
7225
7226         * i386.md (SSE fabs splitters): Emit new patterns.
7227         (SSE cmov splitters): Likewise.
7228         (sse_andv4sf3, sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3
7229         (sse_andv2df3, sse_nandv2df3, sse_iorv2df3, sse_xorv2df3): Do not use
7230         subregs.
7231         (sse_andsf3, sse_nandsf3, sse_xorsf3): Kill.
7232         (sse_anddf3, sse_nanddf3, sse_xordf3): Kill.
7233
7234 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
7235
7236         * config/h8300/h8300.c (expand_a_rotate): Don't generate insns
7237         by hand.
7238         (output_a_rotate): Tweak a comment.
7239         * config/h8300/h8300.md (*rotlqi3_1): Change to rotlqi3_1.
7240         (*rotlhi3_1): Change to rotlhi3_1.
7241         (*rotlsi3_1): Change to rotlsi3_1.
7242
7243 2004-02-18  Richard Earnshaw  <rearnsha@arm.com>
7244
7245         PR target/13866
7246         * arm.c (load_multiple_operation): Don't insist that the source reg
7247         of a post-increment component is the same as the destination.
7248         (store_multiple_operation): Likewise.
7249
7250 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
7251
7252         * config/h8300/h8300.md: Move movsf patterns into one section
7253         of the file.
7254
7255 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
7256
7257         * cfgloop.h, cfgloopanal.c, cpplex.c, except.h, loop-init.c,
7258         loop-unroll.c, scan-decls.c, scan.h, stor-layout.c,
7259         xcoffout.c, xcoffout.h, config/arm/mmintrin.h,
7260         config/mips/linux64.h, config/pa/pa-64.h,
7261         config/rs6000/aix51.h, config/rs6000/aix52.h,
7262         config/rs6000/spe.md, config/sparc/linux.h,
7263         config/sparc/linux64.h: Update copyright.
7264
7265 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
7266
7267         * config/h8300/h8300.md: Move push patterns into one
7268         section of the file.
7269
7270 2004-02-18  Mark Mitchell <mark@codesourcery.com>
7271
7272         PR c++/11326
7273         * config/ia64/ia64.c (ia64_struct_value_rtx): Cope with NULL
7274         fntype.
7275
7276 2004-02-18  Paul Brook  <paul@codesourcery.com>
7277
7278         * rtlanal.c (rtx_varies_p): Return 0 for NULL_RTX
7279
7280 2004-02-18  Paul Brook  <paul@codesourcery.com>
7281
7282         PR debug/12934
7283         * dwarf2out.c (loc_descriptor_from_tree): Handle
7284         EXPR_WITH_FILE_LOCATION.
7285
7286 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
7287
7288         * config/i386/i386.md (zero_extendqidi2, zero_extendqidi2,
7289         testdi_1_rex64, anddi_2, xordi_1_rex64, xordi_2_rex64): Remove
7290         trailing whitespace from instructions.
7291
7292 2004-02-17  Geoffrey Keating  <geoffk@apple.com>
7293
7294         * configure.ac: When generating auto-build.h, pass
7295         --enable-languages to the sub-configure.
7296         Put quotes around ${program_transform_name} when generating
7297         name of as, ld, nm, objdump.
7298         * configure: Regenerate.
7299
7300 2004-02-17  Matt Kraai  <kraai@alumni.cmu.edu>
7301
7302         * Makefile.in (s-check, s-config, s-conditions, s-flags)
7303         (s-codes, s-constants, s-emit, s-recog, s-opinit, s-extract)
7304         (s-peep, s-attr, s-attrtab, s-output, s-genrtl, s-modes)
7305         (s-preds, s-iov): Do not depend on move-if-change.
7306
7307 2004-02-17  James E Wilson  <wilson@specifixinc.com>
7308
7309         * caller-save.c (insert_restore): Pass mem through copy_rtx.
7310         (insert_save): Likewise.
7311
7312 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
7313
7314         * config/h8300/h8300.c (h8300_emit_stack_adjustment): Fix a
7315         warning.
7316
7317 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
7318
7319         * config/h8300/h8300.md (*one_complsi2_h8300): Change to
7320         *one_cmplsi2_h8300.
7321         (*one_complsi2_h8300hs): Change to *one_cmplsi2_h8300hs.
7322
7323 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
7324
7325         * config/h8300/h8300-protos.h: Update the prototype of
7326         fix_bit_operand().
7327         * config/h8300/h8300.c (fix_bit_operand): Remove the second
7328         argument "what".
7329         * config/h8300/h8300.md: Update all callers.
7330
7331 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
7332
7333         * config/h8300/h8300.c (fix_bit_operand): Change the name of
7334         the last argument to "code" from "type".
7335
7336 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
7337
7338         * config/h8300/h8300.c: Remove an extern declaration of
7339         rtx_equal_function_value_matters.
7340
7341 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
7342
7343         * config/h8300/h8300.c (fix_bit_operand): Don't generate insns
7344         by hand.
7345         * config/h8300/h8300.md (*andqi3_1): Change to andqi3_1.
7346         (*iorqi3_1): Change to iorqi3_1.
7347         (*xorqi3_1): Change to xorqi3_1.
7348
7349 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
7350
7351         * c-common.c, cfghooks.c, rtlanal.c, varasm.c: Fix comment
7352         typos.
7353
7354 2004-02-17  Jan Hubicka  <jh@suse.cz>
7355
7356         * i386.c (x86_prologue_using_move, x86_epilogue_using_move): Disable for P4.
7357
7358 2004-02-18  Alan Modra  <amodra@bigpond.net.au>
7359
7360         PR optimization/14119
7361         * combine.c (try_combine): When attemting to fix unrecognized insns,
7362         don't delete SETs marked with REG_EH_REGION notes.
7363
7364 2004-02-17  Ulrich Weigand  <uweigand@de.ibm.com>
7365
7366         * combine.c (simplify_if_then_else): Do not replace
7367         (if_then_else (ne reg 0) (0) (const_int)) by (reg) if the
7368         modes differ.
7369
7370 2004-02017  Steven Bosscher  <stevenb@suse.de>
7371
7372         * (c-decl.c, c-semantics.c, calls.c, cgraph.c, cgraphunit.c,
7373         function.c, integrate.c, print-tree.c, toplev.c, tree-optimize.c,
7374         tree.h): Replace DECL_SAVED_INSNS with DECL_STRUCT_FUNCTION.
7375         * ada/utils.c: Likewise.
7376         * cp/decl.c: Likewise.
7377         * f/com.c: Likewise.
7378         * java/class.c: Likewise.
7379
7380 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
7381
7382         * config/h8300/h8300.md: Fix comment typos.
7383
7384 2004-02-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7385
7386         * config/mips/t-iris6gld: Renamed to ...
7387         * config/mips/t-irix-gld: ... this.
7388         * config.gcc (mips-sgi-irix6*): Reflect this
7389         (mips-sgi-irix5*): Use it with GNU ld.
7390
7391         * config/mips/irix6-crti.asm, config/mips/irix6-crtn.asm: Renamed
7392         to ...
7393         * config/mips/irix-crti.asm, config/mips/irix-crtn.asm: ... this.
7394         * config/mips/t-irix-gld: Reflect this.
7395         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
7396
7397         * config/mips/iris5gld.h: New file.
7398         * config.gcc (mips-sgi-irix5*): Use it with GNU ld.
7399         Only use collect2 without gas.
7400
7401         * config/mips/iris6.h (IRIX6_STARTFILE_SPEC, IRIX6_ENDFILE_SPEC):
7402         Renamed to IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
7403         (STARTFILE_SPEC, ENDFILE_SPEC, SUBTARGET_EXTRA_SPECS): Reflect this.
7404         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
7405
7406         * config/mips/iris6.h (SUBTARGET_EXTRA_SPECS): Moved ...
7407         * config/mips/iris5.h: ... here.
7408
7409         * config/mips/iris5.h (STARTFILE_SPEC, ENDFILE_SPEC): Renamed to
7410         IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
7411         (STARTFILE_SPEC, ENDFILE_SPEC): Define.
7412
7413         * config/mips/iris5gas.h (STARTFILE_SPEC, ENDFILE_SPEC): Simplify
7414         using irix_startfile_spec, irix_endfile_spec.
7415
7416 2004-02-16  Gunther Nikl  <gni@gecko.de>
7417
7418         * config/m68k/m68k.c: Remove obsolete support for HPUX_ASM.
7419
7420 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
7421
7422         * config/h8300/h8300.c (h8300_expand_prologue): Don't generate
7423         insns by hand.
7424
7425 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7426
7427         * cfghooks.c (split_edge): Speed up updating of dominators.
7428
7429 2004-02-17  Mark Mitchell  <mark@codesourcery.com>
7430
7431         PR c++/11326
7432         * c-common.c (flag_abi_version): Remove.
7433         * c-common.h (flag_abi_version): Likewise.
7434         * c-opts.c (c_common_handle_option): Remove OPT_fabi_version case.
7435         * c.opt (fabi-version): Remove.
7436         * calls.c (expand_call): Always pass a function type to
7437         struct_value_rtx.  Use convert_memory_address.
7438         * common.opt (fabi-version): Add it.
7439         * flags.h (flag_abi_version): Likewise.
7440         (abi_version_at_least): New macro.
7441         * opts.c (common_handle_option): Add OPT_fabi_version.
7442         * toplev.c (flag_abi_version): Define it.
7443         * config/ia64/ia64.c (ia64_struct_retval_addr_is_first_parm_p):
7444         New function.
7445         (ia64_output_mi_thunk): Use it.
7446         (ia64_struct_value_rtx): Likewise.
7447
7448 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
7449
7450         * config/h8300/h8300.c (h8300_emit_stack_adjustment):
7451         Don't generate insns by hand.
7452
7453 2004-02-17  Andrew Pinski  <pinskia@physics.uc.edu>
7454
7455         PR c++/14178
7456         * doc/invoke.texi (fabi-version): The default is 2 now.
7457
7458 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7459
7460         * loop-iv.c: New file.
7461         * Makefile.in (loop-iv.o): New.
7462         * basic_block.h (FOR_BB_INSNS, FOR_BB_INSNS_REVERSE): New macros.
7463         * cfgloop.c (fill_sons_in_loop, get_loop_body_in_dom_order,
7464         num_loop_branches): New functions.
7465         * cfgloop.h (get_loop_body_in_dom_order, num_loop_branches,
7466         iv_analysis_loop_init, iv_get_reaching_def, iv_analyse, get_iv_value,
7467         find_simple_exit, iv_number_of_iterations, iv_analysis_done,
7468         get_simple_loop_desc, free_simple_loop_desc): Declare.
7469         (simple_loop_desc): New inline function.
7470         (struct rtx_iv, struct niter_desc): New.
7471         * cfgloopmanip.c (loopify): Specify semantics more precisely.
7472         * expr.c (force_operand): Handle subregs of expressions created by
7473         loop unroller.
7474         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Move
7475         parts of the initialization to toplev.c
7476         * loop-unroll.c (loop_exit_at_end_p): New.
7477         (unroll_and_peel_loops): Call iv_analysis_done.
7478         (decide_peel_once_rolling, decide_peel_completely,
7479         decide_unroll_stupid, decide_unroll_constant_iterations,
7480         decide_unroll_runtime_iterations, decide_peel_simple,
7481         peel_loop_simple, unroll_loop_stupid, unroll_loop_constant_iterations,
7482         unroll_loop_runtime_iterations): Use new simple loop analysis.
7483         * loop-unswitch.c (compare_and_jump_seq): New.
7484         (may_unswitch_on_p): Renamed to ...
7485         (may_unswitch_on): Use new iv analysis.
7486         (reversed_condition): Export.
7487         (unswitch_single_loop, unswitch_loop): Use new iv analysis.
7488         * predict.c (estimate_probability): Use new simple loop analysis.
7489         * rtl.h (get_mode_bounds, reversed_condition,compare_and_jump_seq,
7490         canon_condition, simplify_using_condition): Declare.
7491         * stor-layout.c (get_mode_bounds): New.
7492         * toplev.c (rest_of_handle_loop2): Some parts of
7493         initialization/finalization moved here from loop-init.c.
7494
7495 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
7496
7497         * config/h8300/h8300.h (FIXED_REGISTERS): Add the soft frame
7498         pointer.
7499         (CALL_USED_REGISTERS): Likewise.
7500         (REG_ALLOC_ORDER): Likewise.
7501         (REG_CLASS) <GENERAL_REGS>: Likewise.
7502
7503 2004-02-16  Geoffrey Keating  <geoffk@apple.com>
7504
7505         * doc/md.texi (Insn Canonicalizations): Document left-chaining
7506         in associative operators.
7507         * rtlanal.c (commutative_operand_precedence): Create some new
7508         variables.  Prefer a commutative operand on the left, then
7509         binary expressions, then NEG and NOT.
7510
7511 2004-02-16  Matthias Klose  <doko@debian.org>
7512
7513         * config/t-slibgcc-elf-ver: Define SHLIB_NAME and SHLIB_SONAME
7514         in terms of SHLIB_SOVERSION.
7515         * config/m68k/t-slibgcc-elf-ver: New file.
7516         * config/pa/t-slibgcc-elf-ver: New file.
7517         * config.gcc (m68k-linux, parisc-linux): Use them when not
7518         sjlj exceptions are not configured.
7519
7520 2004-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
7521
7522         * config/sparc/sparc.c (get_pc_symbol_name): Mark with GTY(()).
7523
7524 2004-02-16  Zack Weinberg  <zack@codesourcery.com>
7525
7526         * sdbout.c (sdb_debug_hooks): Correct the type_decl entry.
7527
7528 2004-02-16  Joseph S. Myers  <jsm@polyomino.org.uk>
7529
7530         * doc/sourcebuild.texi: Mention backends.html.
7531
7532 2004-02-16  Kazu Hirata  <kazu@cs.umass.edu>
7533
7534         * c-decl.c, c-ppoutput.c, cpphash.h, cpplib.h, dbxout.c,
7535         line-map.c, line-map.h, var-tracking.c: Fix comment
7536         formatting.
7537
7538 2004-02-16  Richard Henderson  <rth@redhat.com>
7539
7540         * cse.c (cse_insn): Don't lose REG_NON_LOCAL_GOTO note.
7541
7542         * fold-const.c (operand_equal_p): Fix VECTOR_CST comparison.
7543
7544 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
7545
7546         * config/h8300/h8300.md: Remove unnecessary parallels from
7547         all define_insn and define_split patterns.
7548
7549 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
7550
7551         * config/h8300/h8300.md: Remove explicit (set_attr "cc"
7552         "clobber").
7553
7554 2004-02-15  Bernardo Innocenti  <bernie@develer.com>
7555
7556         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Restore support for
7557         '%#'.
7558
7559 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
7560
7561         * config/ia64/ia64.c, config/mips/mips.c,
7562         config/mmix/mmix-modes.def: Fix comment typos.
7563
7564 2004-02-15  Roger Sayle  <roger@eyesopen.com>
7565
7566         * c-common.h (GET_DIRECTIVE_LINE): Remove unused macro.
7567         (get_directive_line): Remove unused function prototype.
7568
7569 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
7570
7571         * tree-inline.c (copy_body_r): Do not replace ret_label.
7572
7573 2004-02-14  Jan Hubicka  <jh@suse.cz>
7574
7575         * i386.c (x86_four_jump_limit): New variable.
7576         (k8_avoid_jump_misspredicts): Rename to ...
7577         (ix86_avoid_jump_misspredicts): .. this one.
7578         (ix86_pad_returns): Break out from ...
7579         (ix86_reorg): ... this one; do ix86_avoid_jump_misspredicts when asked
7580         to.
7581         * i386.h (TARGET_FOUR_JUMP_LIMIT): New macro.
7582
7583 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
7584
7585         * emit-rtl.c (set_decl_incoming_rtl): Check whether the 0th element of
7586         PARALLEL is NULL.
7587
7588 2004-02-14  Per Bothner  <per@bothner.com>
7589
7590         * fix-header.c (line_table):  Move local variable in main to global.
7591         * scan.h (line_table):  Use it.
7592         * scan-decls.c (scan_decls):  Need to call linemap_lookup on token's
7593         line (recently renamed to src_loc) before calling recognized_function.
7594
7595 2004-02-14  Matt Kraai  <kraai@alumni.cmu.edu>
7596
7597         * Makefile.in: Fix comment typos.
7598
7599 2004-02-14  Olivier Hainque  <hainque@act-europe.fr>
7600
7601         * loop.c (check_dbra_loop): Use gen_int_mode instead of GEN_INT
7602         for start_value when it is directly moved into reg, and factorize
7603         the retrieval of GET_MODE (reg).
7604
7605 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
7606
7607         * config/mips/mips-protos.h (mips_load_got_page): Delete.
7608         (mips_load_got_global): Delete.
7609         (mips_gotoff_page): Declare.
7610         * config/mips/mips.md (UNSPEC_LOAD_GOT): New constant.
7611         (*xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i): Build an
7612         UNSPEC_LOAD_GOT pattern rather than a MEM.
7613         (*load_got[sd]i): New patterns.
7614         * config/mips/mips.c (mips_got_alias_set, mips_load_got): Delete.
7615         (mips_load_got_page, mips_load_got_global): Delete.
7616         (mips_gotoff_page): New function.
7617         (override_options): Don't initialize mips_got_alias_set.
7618
7619 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
7620
7621         * config/mips/mips.h (MASK_DEBUG_[ABEFI], TARGET_DEBUG_[ABEFI]_MODE)
7622         (TARGET_MIPS4100, TARGET_MIPS4300, TARGET_MIPS4KC, TARGET_MIPS5KC)
7623         (TARGET_SB1, TUNE_SB1, TUNE_SR71K, BIGGEST_MAX_ARGS_IN_REGISTERS)
7624         (GO_PRINTF, GO_PRINTF2, GO_DEBUG_RTX, DFMODE_NAN, SFMODE_NAN): Delete.
7625         (TARGET_SWITCHES): Remove MASK_DEBUG_[ABEFI].
7626         * config/mips/mips.c: Fix some overly-long lines.
7627         (SINGLE_WORD_MODE_P, PIC_OFFSET_TABLE_MASK): Delete.
7628         (init_cumulative_args): Remove TARGET_DEBUG_E_MODE handling.
7629
7630 2004-02-13  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7631
7632         * configure.ac: Search for as, ld below libexec/gcc.
7633         * configure: Regenerate.
7634
7635 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
7636
7637         * config/arm/mmintrin.h (_mm_setwcx): Reverse arguments in call to
7638         __builtin_arm_setwcx ().
7639         * config/arm/arm.c (arm_expand_builtin): Generate operands
7640         correctly and reverse their order in call to gen_iwmmxt_tmcr ().
7641
7642 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
7643
7644         * config/arm/arm.c (bdesc_2arg): Correct builtin names "wmulsh"
7645         and "wmuluh" to "wmulsm" and "wmulum", respectively.
7646         * config/arm/arm.h (enum arm_builtins): Rename enumerators to
7647         ARM_BUILTIN_WMULSM and ARM_BUILTIN_WMULUM.
7648         * config/arm/mmintrin.h (_mm_mulhi_pi16): Update intrinsic call.
7649         (_mm_mulhi_pu16): Likewise.
7650
7651 2004-02-13  Zack Weinberg  <zack@codesourcery.com>
7652
7653         * xcoffout.c (xcoff_assign_fundamental_type_number): Check
7654         DECL_NAME != 0 before dereferencing.
7655
7656 2004-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
7657
7658         * config/s390/s390-protos.h (s390_output_symbolic_const): Remove.
7659         (s390_output_addr_const_extra): Declare.
7660         (s390_output_pool_entry): Remove FILE * argument.
7661         * config/s390/s390.c (s390_output_symbolic_const): Remove.
7662         (s390_output_addr_const_extra): New function.
7663         (print_operand_address): Call output_addr_const instead of
7664         s390_output_symbolic_const.
7665         (print_operand): Likewise.
7666         (s390_output_pool_entry): Use assemble_integer for symbolic constants.
7667         Remove FILE * argument.
7668         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Define.
7669         * config/s390/s390.md ("*pool_entry"): Adapt s390_output_pool_entry
7670         call.
7671
7672 2004-02-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7673
7674         * cfgloopanal.c (mark_irreducible_loops): Rewriten.
7675         (struct edge, struct vertex, struct graph): New.
7676         (dump_graph, new_graph, add_edge, dfs, check_irred, for_each_edge,
7677         free_graph): New functions.
7678
7679 2004-02-12  Chris Demetriou  <cgd@broadcom.com>
7680
7681         * config/mips/mips.md (casesi_internal, casesi_internal_di):
7682         Use ".set macro" to avoid warnings about multi-instruction
7683         macros, since they're intentional.
7684
7685 2004-02-12  Geoffrey Keating  <geoffk@apple.com>
7686
7687         * config/darwin.h: Add include guards.  Remove old, now incorrect,
7688         comment about STANDARD_EXEC_PREFIX.
7689
7690         * Makefile.in (install-man): Use $(CPP_INSTALL_NAME) and
7691         $(GCOV_INSTALL_NAME) to install manpages.  Remove generic rule
7692         for installing .1 manpages.  Add rules for installing cpp
7693         and gcov manpages under their installed names.
7694
7695 2004-02-12  Alexandre Oliva  <aoliva@redhat.com>
7696
7697         * configure.ac (gcc_cv_ld): Don't set to LD if target is not
7698         host, but try LD_FOR_TARGET first.
7699         * configure: Rebuilt.
7700
7701 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
7702
7703         * dbxout.c: Move declaration of dbxout_type_decl outside
7704         #ifdef DBX_DEBUGGING_INFO.
7705         * c-parse.in: Don't give the asmdef production a type.
7706
7707 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
7708
7709         * debug.h (struct gcc_debug_hooks): Add type_decl field.
7710         (debug_nothing_tree_int): Prototype.
7711         (dwarf_debug_hooks): Delete, unused.
7712         * debug.c (do_nothing_debug_hooks): Update.
7713         (debug_nothing_tree_int): New function.
7714         * langhooks.h (struct lang_hooks_for_decls):
7715         Remove builtin_type_decls field.
7716         * langhooks-def.h (LANG_HOOKS_BUILTIN_TYPE_DECLS): Delete.
7717         (LANG_HOOKS_DECLS): Update.
7718         * toplev.c (rest_of_decl_compilation, rest_of_type_compilation):
7719         Use debug_hooks->type_decl.
7720         * dbxout.c (preinit_symbols): New static.
7721         (dbx_debug_hooks, xcoff_debug_hooks): Update.
7722         (dbxout_init): Don't call DBX_OUTPUT_STANDARD_TYPES or
7723         lang_hooks.decls.builtin_type_decls.  Do scan preinit_symbols
7724         for symbols to output.
7725         (dbxout_type_decl): New function.
7726         (dbxout_symbol): If called before dbxout_init has run, queue
7727         the symbol for later.  Apply DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER
7728         to TYPE_DECLs before emitting them.
7729         * xcoffout.c (assign_type_number): Delete.
7730         (xcoff_type_numbers): New static table.
7731         (xcoff_assign_fundamental_type_number): New function.
7732         * xcoffout.h: Define DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER, not
7733         DBX_OUTPUT_STANDARD_TYPES.  Remove unnecessary #ifdefs.
7734         * sdbout.c: Include varray.h.
7735         (deferred_global_decls): New static.
7736         (sdb_debug_hooks): Update.
7737         (sdbout_global_decl): If we can't emit something right now,
7738         remember it in deferred_global_decls.
7739         (sdbout_finish): Just scan deferred_global_decls; don't call getdecls.
7740         (sdbout_init): Initialize deferred_global_decls.
7741         * Makefile.in: Update dependencies of sdbout.o.
7742         * dwarf2out.c (dwarf2out_type_decl): New function.
7743         (dwarf2_debug_hooks): Update.
7744         * vmsdbgout.c (vmsdbg_debug_hooks): Update.
7745         * c-decl.c (getdecls): Just return 0.
7746         (check_for_loop_decls): Don't use getdecls.
7747         (record_builtin_type): Call debug_hooks->type_decl on the TYPE_DECL.
7748         * c-objc-common.c (c_objc_common_finish_file): Don't use getdecls.
7749
7750 2004-02-12  Ulrich Weigand  <uweigand@de.ibm.com>
7751
7752         * config/s390/s390.c (s390_sched_reorder2): Remove.
7753         (TARGET_SCHED_REORDER2): Do not redefine.
7754
7755 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
7756
7757         * c-parse.in (maybe_type_qual): Delete.
7758         (maybe_volatile, simple_asm_expr, asmdef, asm_stmt)
7759         (asm_argument): New grammar rules.
7760         (extdef_1): Use asmdef.
7761         (maybeasm): Move down with other asm rules; use simple_asm_expr.
7762         (xexpr): Move up with other expression rules.
7763         (stmt): Use asm_stmt.
7764
7765         * c-typeck.c (build_asm_expr): New function - body mostly
7766         pulled from build_asm_stmt.
7767         (build_asm_stmt): Just handle tacking on the volatile qualifier.
7768         * c-tree.h (build_asm_expr, build_asm_stmt): Update prototypes.
7769
7770 2004-02-12  Richard Sandiford  <rsandifo@redhat.com>
7771
7772         PR bootstrap/13617
7773         * config/mips/mips-protos.h (mips_output_aligned_decl_common): Declare.
7774         (mips_declare_object): Make variadic.
7775         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Use
7776         mips_output_aligned_decl_common.
7777         * config/mips/mips.c (mips_output_aligned_decl_common): New function.
7778         (mips_declare_object): Make variadic.
7779
7780 2004-02-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7781
7782         * function.c (update_epilogue_consts): Teach about binary operations.
7783
7784         * emit-rtl.c (set_mem_attributes_minus_bitpos): Don't kill
7785         previous MEM_VOLATILE in REF.
7786         * function.c (fixup_var_refs): Save volatile_ok and set to 1.
7787         * expr.c (emit_block_move_via_movstr): Save and restore volatile_ok.
7788
7789 2004-02-12  Gunther Nikl  <gni@gecko.de>
7790
7791         * config.gcc: Restore support for m68k-openbsd.
7792
7793 2004-02-12  Jan Hubicka  <jh@suse.cz>
7794
7795         * tree-optimize.c (tree_rest_of_compilation): Do not release
7796         DECL_ARGUMENTS.
7797
7798 2004-02-11  Matt Kraai  <kraai@alumni.cmu.edu>
7799
7800         * doc/install.texi: Fix the spelling of "explicitly".
7801
7802 2004-02-11  Eric Christopher  <echristo@redhat.com>
7803
7804         * cppcharset.c (_cpp_interpret_string_notranslate): Rename and
7805         duplicate argument structure of cpp_interpret_string.
7806         * cpphash.h: Move prototype...
7807         * cpplib.h: Here.
7808         * cpplib.c: Fix calls to match new function signature.
7809
7810 2004-02-11  Joseph S. Myers  <jsm@polyomino.org.uk>
7811
7812         PR c/456
7813         * cppexp.c (num_binary_op): Don't allow comma operators in #if
7814         constant expressions at all outside C99 mode if pedantic.
7815
7816 2004-02-11  Uros Bizjak  <uros@kss-loka.si>
7817
7818         * optabs.h (enum optab_index): Add new OTI_log10 and OTI_log2.
7819         (log10_optab, log2_optab): Define corresponding macros.
7820         * optabs.c (init_optabs): Initialize log10_optab and log2_optab.
7821         * genopinit.c (optabs): Implement log10_optab and log2_optab
7822         using log10?f2 and log2?f2 patterns.
7823         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG10{,F,L}
7824         using log10_optab, and BUILT_IN_LOG2{,F,L} using log2_optab.
7825         (expand_builtin): Expand BUILT_IN_LOG10{,F,L} and BUILT_IN_LOG2{,F,L}
7826         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
7827
7828         * config/i386/i386.md (log10sf2, log10df2, log10xf2, log2sf2,
7829         log2df2, log2xf2): New patterns to implement log10, log10f, log10l,
7830         log2, log2f and log2l built-ins as inline x87 intrinsics.
7831
7832 2004-02-11  Richard Henderson  <rth@redhat.com>
7833
7834         PR target/1532
7835         * flow.c (insn_dead_p): A clobber of a dead hard register is a
7836         dead insn after reload.
7837
7838 2004-02-11  Ulrich Weigand  <uweigand@de.ibm.com>
7839
7840         * tree.h (frame_base_decl): Add GTY marker.
7841         * var-tracking.c (frame_base_decl): Likewise.
7842
7843 2004-02-11  Daniel Berlin  <dberlin@dberlin.org>
7844
7845         * dwarf2out.c (output_loc_list): Remove no longer necessary, and now
7846         incorrect, hunk.
7847         (add_location_or_const_value_attribute): Use text_section_label,
7848         not TEXT_SECTION_NAME.
7849
7850 2004-02-11  Per Bothner  <per@bothner.com>
7851
7852         Represent column numbers using line-map's source_location.
7853         The "next available source_location" is now managed internally by
7854         line-maps.c rather than by clients.
7855         * line-map.h (struct line_map):  New field column_bits.
7856         <from_line>:  Rename field to start_location.
7857         (struct line_maps):  New fields highest_location and max_column_hint.
7858         (linemap_check_files_exited):  New declaration.
7859         (linemap_line_start):  New declaration.
7860         (linemap_add):  Remove from_line parameter; use highest_location field.
7861         (SOURCE_LINE, LAST_SOURCE_LINE):  Modify to use column_bits.
7862         (SOURCE_COLUMN, LAST_SOURCE_LINE_LOCATION):  New macros.
7863         (CURRENT_LINE_MAP):  Remove macro.
7864         (linemap_position_for_column):  New inline function.
7865         * line-map.c (linemap_init):  Clear new fields.
7866         (linemap_check_files_exited):  New function, extracted from ...
7867         (linemap_free):  Use linemap_check_files_exited.
7868         (linemap_add):  Remove from_line parameter.  Various updates.
7869         (linemap_line_start):  New function.
7870         (linemap_lookeup):  Update for new field names.
7871         * cpphash.h (struct cpp_reader) <map>:  Field removed.  Because
7872         linemap_position_for_column may unpredictably change the current map,
7873         it is cleaner and simpler for us to not cache it in cpp_reader.
7874         (struct cpp_buffer):  New sysp field.
7875         Changed warned_cplusplus_comments and from_stage3 to bitfields.
7876         * cppinit.c (cpp_read_min_file):  pfile->map no longer exists.
7877         * cpplib.c (do_line, do_linemarker, _cpp_do_file_change):  Get
7878         current map using linemap_lookup.
7879         (do_linemarker):  Also set buffer's sysp field.
7880         (destringize_and_run):  No longer need to decrement current line.
7881         * cppfiles.c (_cpp_stack_file):  Set sysp from and in buffer.
7882         (search_path_head, open_file_failed):  Use buffer's sysp.
7883         (cpp_make_system_header):  Get current map using linemap_lookup.
7884         Also set buffer's sysp flag.
7885         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use linemap_lookup.
7886         * cpphash.h (CPP_INCREMENT_LINE):  New macro.
7887         (struct cpp_buffer):  Moved fields saved_cur, saved_rlimit to ...
7888         (struct cpp_reader):  ... and adding saved_line_base field.
7889         * cpptrad.c (_cpp_overlay_buffer, _cpp_remove_overlay):
7890         Update accordingly.  Don't adjust line.
7891         (_cpp_scan_out_logical_line):  Use CPP_INCREMENT_LINE.
7892         * cpphash.c (CPP_IN_SYSTEM_HEADER):  Replaced macro by ...
7893         (cpp_in_system_header):  ... new inline function, using buffer's sysp.
7894         * cpperror.c (_cpp_begin_message):  Update to use cpp_in_system_header.
7895         * cpplex.c (_cpp_lex_direct):  Likewise.
7896         * cppmacro.c (_cpp_builtin_macro_text):  Likewise.
7897         * cppmacro.c (_cpp_create_definition):  Use buffer's sysp field.
7898         * cpplib.h (struct cpp_token):  Rename line field to src_loc.
7899         Remove col field as it is now subsumed by src_loc.
7900         * cpperror.c:  Update various field, parameter, and macro names.
7901         (print_location):  If col==0, try SOURCE_COLUMN of line.
7902         (cpp_error):  Use cur_token's src_loc field, rather than line+col.
7903         * cpplib.c (do_diagnostic):  Token's src_loc fields replaces line+col.
7904         * cpplex.c (_cpp_process_line_notes, _cpp_lex_direct,
7905         _cpp_skip_block_comment):  Use CPP_INCREMENT_LINE.
7906         (_cpp_temp_token):  Replace cpp_token's line+col fields by src_loc.
7907         (_cpp_get_fresh_line):  Don't need to adjust line for missing newline.
7908         (_cpp_lex_direct):  Use linemap_position_for_column.
7909         * c-ppoutput.c (maybe_print_line, print_line):  Don't take map
7910         parameter.  Instead get it from the line_table global.  Adjust callers.
7911         (print):  Remove map field.  Replace line field to src_line.
7912         (init_pp_output, account_for_newlines, maybe_print_line):  Adjust.
7913         (cb_line_change):  Use SOURCE_COLUMN.  Minor optimizations.
7914         (pp_file_change):  Use MAIN_FILE_P since we cannot checked print.map.
7915         Use LAST_SOURCE_LINE_LOCATION to "catch up" after #include.
7916         * cpptrad.c (copy_comment):  Rename variable.
7917         * c-lex.c (map):  Remove static variable, for same reason we removed
7918         cpp_reader's map field.
7919         (cb_line_change, cb_def_pragma, cb_define, cb_undef):  Hence we need
7920         to call linemap_lookup.
7921         (cb_line_change):  Token's line field replaced by src_loc.
7922         (fe_file_change):  Use MAINFILE_P and LAST_SOURCE_LINE macros.
7923         Don't save new_map.
7924
7925         * cpphash.h, cpperror.c, cpplib.h:  Some renames of fileline to
7926         source_location.
7927
7928 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
7929
7930         * config/rs6000/altivec.md (*movv4si_internal): At least one
7931         operand must be register_operand.
7932         (*movv8hi_internal1): Likewise.
7933         (*movv16qi_internal1): Likewise.
7934         (*movv4sf_internal1): Likewise.
7935
7936 2004-02-10  Aldy Hernandez  <aldyh@redhat.com>
7937
7938         * config/rs6000/spe.md ("*movv2si_internal"): Check for register
7939         operand.
7940         (movv4hi_internal): Same.
7941         (movv2sf_internal): Same.
7942         (movv1di_internal): Same.
7943
7944 2004-02-11  Thiemo Seufer  <seufer@csv.ica.uni-stuttgart.de>
7945
7946         * config/mips/mips.h (TARGET_OLDABI): Define. Use TARGET_NEWABI and
7947         TARGET_OLDABI consistently.
7948         * config/mips/mips.c (function_arg,mips_setup_incoming_varargs,
7949         mips_va_arg,override_options,compute_frame_size,
7950         mips_initial_elimination_offset,mips16_fp_args,build_mips16_call_stub
7951         ,mips_return_in_memory,mips_strict_argument_naming): Use TARGET_NEWABI
7952         and TARGET_OLDABI consistently.
7953         * config/mips/mips.md (exception_receiver): Likewise.
7954         * config/mips/linux64.h: Likewise.
7955
7956 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
7957
7958         * gcc/config/rs6000/rs6000.c (rs6000_override_options)
7959         Set AltiVec ABI and vrsave as default for ppc64 linux.
7960         (init_cumulative_args): Post error, if try to return
7961         value in AltiVec register without enable AltiVec.
7962         (function_arg_advance): Ditto for passing arguments.
7963
7964 2004-02-11  Richard Sandiford  <rsandifo@redhat.com>
7965
7966         * emit-rtl.c (mark_label_nuses): Check that a LABEL_REF refers to
7967         a label before updating its usage count.
7968
7969 2004-02-10  Matt Kraai  <kraai@alumni.cmu.edu>
7970
7971         * doc/install.texi: Remove extra cd.
7972
7973 2004-02-10  Ziemowit Laski  <zlaski@apple.com>
7974
7975         * c-common.c (vector_size_helper): Remove; call
7976         reconstruct_complex_type() instead.
7977         * tree.c (reconstruct_complex_type): New function
7978         (formerly vector_size_helper() in c-common.c).
7979         (make_vector): Make externally visible.
7980         * tree.h (reconstruct_complex_type, make_vector): Add prototypes.
7981
7982 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
7983
7984         * config/h8300/h8300-protos.h: Add a prototype for
7985         h8300_regs_ok_for_stm.
7986         * config/h8300/h8300.c (h8300_regs_ok_for_stm): New.
7987         * config/h8300/h8300.md (stm_h8300s_2_advanced,
7988         stm_h8300s_2_normal, stm_h8300s_2, stm_h8300s_3_advanced,
7989         stm_h8300s_3_normal, stm_h8300s_3, stm_h8300s_4_advanced,
7990         stm_h8300s_4_normal, stm_h8300s_4, ldm_h8300s_2_advanced,
7991         ldm_h8300s_2_normal, ldm_h8300s_2, ldm_h8300s_3_advanced,
7992         ldm_h8300s_3_normal, ldm_h8300s_3, ldm_h8300s_4_advanced,
7993         ldm_h8300s_4_normal, ldm_h8300s_4): Use
7994         h8300_regs_ok_for_stm().
7995
7996 2004-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
7997
7998         PR c/14088
7999         * real.c (real_from_string): Look for 'X' as well as 'x' in
8000         hexfloat strings.
8001
8002 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
8003
8004         * config/h8300/h8300.md: Remove an incorrect comment about
8005         peephole2.  Add comments.
8006
8007 2004-02-10  Josef Zlomek  <zlomekj@suse.cz>
8008
8009         PR/14058
8010         * emit-rtl.c (set_decl_incoming_rtl): New.
8011         * tree.h (set_decl_incoming_rtl): New.
8012         * function.c (assign_parms): Use set_decl_incoming_rtl for setting
8013         DECL_INCOMING_RTL.
8014         * ada/misc.c (adjust_decl_rtl): Likewise.
8015
8016 2004-02-10  Per Bothner  <per@bothner.com>
8017
8018         * c-opts.c (c_common_post_options):   Don't emit working directory
8019         in cpp output if -P was specified.
8020
8021 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
8022
8023         PR c/14092
8024         * fold-const.c (fold) <NEGATE_EXPR>: Convert result of
8025         negate_expr back to the original type.
8026
8027 2004-02-10  Alan Modra  <amodra@bigpond.net.au>
8028
8029         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Don't
8030         bump retaddr here.
8031
8032 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
8033
8034         * rtl.h (schedule_insns, schedule_ebbs, fix_sched_param,
8035         gen_lowpart_SUBREG): Move under the file in which they
8036         are actually declared.
8037
8038 2004-02-10  Arnaud Charlet  <charlet@act-europe.fr>
8039
8040         * doc/sourcebuild.texi: Add libada documentation.
8041
8042         * doc/install.texi: Update documentation on Ada build, now
8043         that the GNAT lib and tools are built automatically.
8044
8045 2004-02-10  Richard Sandiford  <rsandifo@redhat.com>
8046
8047         * config/mips/mips.h (TARGET_GPWORD): Return false for TARGET_NEWABI
8048         && TARGET_IRIX.
8049
8050 2004-02-09  Ziemowit Laski  <zlaski@apple.com>
8051
8052         * objc/objc-act.c (get_super_receiver): Move '#ifdef OBJCPLUS'
8053         boundaries outside build_component_ref() call (a macro in ObjC++).
8054
8055 2004-02-09  Bob Wilson  <bob.wilson@acm.org>
8056
8057         * config/xtensa/xtensa-protos.h (xtensa_copy_incoming_a7): Update.
8058         (init_cumulative_args): Likewise.
8059         (a7_overlap_mentioned_p): Delete prototype.
8060         * config/xtensa/xtensa.c (struct machine_function): Replace
8061         incoming_a7_copied field with need_a7_copy and vararg_a7 flags.
8062         Add set_frame_ptr_insn field.
8063         (xtensa_emit_move_sequence): Update call to xtensa_copy_incoming_a7.
8064         (xtensa_copy_incoming_a7): Rewrite to check need_a7_copy flag and check
8065         if the operand is an argument in a7.  If so, copy a7 to a new pseudo
8066         at the function entry and replace the operand with the pseudo.
8067         (init_cumulative_args): Remove unused arguments.  Add new "incoming"
8068         argument and record this flag in CUMULATIVE_ARGS.
8069         (function_arg): Remove result_mode and special-case code to handle
8070         arguments in a7.  Instead, set need_a7_copy flag when there is an
8071         incoming argument in a7.
8072         (xtensa_expand_prologue): Remove code to search for set_frame_ptr insn
8073         and use the value recorded in cfun->machine->set_frame_ptr_insn.
8074         (xtensa_builtin_saveregs): Check for negative gp_left value.  Set
8075         need_a7_copy and vararg_a7 flags.  Use move_block_from_reg instead of
8076         special-case code.
8077         (a7_overlap_mentioned_p): Delete.
8078         * config/xtensa/xtensa.h (CUMULATIVE_ARGS): Add "incoming" flag.
8079         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Remove useless
8080         arguments to init_cumulative_args and pass "incoming" flag instead.
8081         (BLOCK_REG_PADDING): Delete.
8082         * config/xtensa/xtensa.md (movdi, movsf, movdf): Remove unnecessary
8083         checks for reload_in_progress and reload_completed.  Update calls to
8084         xtensa_copy_incoming_a7.
8085         (ashlsi3): Rename existing insn to ashlsi3_internal.  Add expander
8086         to call xtensa_copy_incoming_a7.
8087
8088 2004-02-09  DJ Delorie  <dj@redhat.com>
8089
8090         * config/i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): No
8091         longer modify standard_exec_prefix, standard_bindir_prefix, or
8092         standard_startfile_prefix.
8093
8094 2004-02-09  James E Wilson  <wilson@specifixinc.com>
8095
8096         PR c++/11295
8097         * c-common.c (c_expand_expr, case STMT_EXPR): Change expand_expr call
8098         to expand_expr_real call, and pass in alt_rtl as last argument.
8099
8100         PR libstdc++/5625
8101         * builtin-types.def (BT_WORD, BT_FN_WORD_PTR): New.
8102         * builtins.c (expand_builtin): Handle BUILT_IN_EXTEND_POINTER.
8103         * builtins.def (BUILT_IN_EXTEND_POINTER): New.
8104         * except.c (expand_builtin_extend_pointer): New.
8105         * except.h (expand_builtin_extend_pointer): Declare.
8106
8107 2004-02-09  David Edelsohn  <edelsohn@gnu.org>
8108
8109         * config/rs6000/rs6000.c (rs6000_emit_move): Remove splitting slow
8110         unaligned loads and stores.
8111
8112 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8113
8114         * config/mips/iris5.h (BSS_SECTION_ASM_OP): Define.
8115         * config/mips/iris6.h (BSS_SECTION_ASM_OP): Undef.
8116
8117         * config/mips/iris6.h (TARGET_ASM_NAMED_SECTION): Moved ...
8118         * config/mips/iris5.h: ... here.
8119         * config/mips/iris5gas.h (TARGET_ASM_NAMED_SECTION): Remove.
8120
8121         * config/mips/iris6.h (EXTRA_SECTION_FUNCTIONS): Move ...
8122         * config/mips/iris5.h: ... here.
8123
8124 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8125
8126         * configure.ac: Remove default executable files before AC_PROG_CC.
8127         * configure: Regenerate.
8128
8129 2004-02-09  Kazu Hirata  <kazu@cs.umass.edu>
8130
8131         PR target/13721
8132         * config/h8300/h8300.c (byte_reg): Call abort() if asked to
8133         print a operand other than a register.
8134
8135 2004-02-09  Roger Sayle  <roger@eyesopen.com>
8136
8137         * fold-const.c (fold) <NOP_EXPR>: Use the original type conversion
8138         tree code rather than call fold_convert, which doesn't specify a
8139         default floating point to integer conversion.
8140
8141 2004-02-08  Bernardo Innocenti  <bernie@develer.com>
8142
8143         * config/m68k/m68k.c, config/m68k/m68k.md (SGS, SGS_CMP_ORDER): Remove
8144         code to support SGS assembler.  Reformat adjacent code where possible.
8145         * config/m68k/m68k.c (switch_table_difference_label_flag): Remove
8146         definition.
8147         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Remove support
8148         for '%#'.
8149         * config/m68k/linux.h, config/m68k/m68k.c,
8150         * config/m68k/math-68881.h: Replace `%#' with `#' in inline asm
8151         macros and asm_printf() format strings.
8152         * config/m68k/m68kelf.h (ASM_OUTPUT_CASE_END): Remove macro definition.
8153         * config/m68k/linux.h: Update copyright.
8154         * config/m68k/linux.h, config/m68k/m68k.c: Remove traling whitespace.
8155
8156 2004-02-08  Andreas Schwab  <schwab@suse.de>
8157             Bernardo Innocenti  <bernie@develer.com>
8158
8159         * config/m68k/m68k.h (REGISTER_NAMES): Prefix each name with
8160         REGISTER_PREFIX.
8161         * (M68K_FP_REG_NAME): New macro to specify an alternate name for the
8162         frame pointer register, overridable by OS targets.
8163         * (M68K_REGNAME): Macro to obtain register name for asm output,
8164         eventually replacing %a6 with M68K_FP_REG_NAME.
8165         * config/m68k/coff.h (REGISTER_NAMES): Don't redefine.
8166         * config/m68k/linux.h (REGISTER_NAMES): Likewise.
8167         * config/m68k/m68kelf.h (REGISTER_NAMES): Likewise.
8168         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Likewise.
8169         * config/m68k/m68k.c: Use M68K_REGNAME(x) in place of reg_names[x].
8170
8171 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
8172
8173         * target-def.h (TARGET_STRUCT_VALUE_RTX): Define as
8174         hook_rtx_tree_int_null.
8175         * targhooks.c (default_struct_value_rtx): Remove.
8176         * targhooks.h: Remove the prototype for
8177         default_struct_value_rtx.
8178         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
8179         config/fr30/fr30.c, config/h8300/h8300.c, config/i386/i386.c,
8180         config/ip2k/ip2k.c, config/iq2000/iq2000.c,
8181         config/m32r/m32r.c, config/mcore/mcore.c, config/mips/mips.c,
8182         config/mn10300/mn10300.c, config/pdp11/pdp11.c,
8183         config/rs6000/rs6000.c, config/s390/s390.c,
8184         config/stormy16/stormy16.c, config/v850/v850.c,
8185         config/xtensa/xtensa.c (TARGET_STRUCT_VALUE_RTX): Remove.
8186         * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document the default.
8187
8188 2004-02-08  Joseph S. Myers  <jsm@polyomino.org.uk>
8189
8190         * README.Portability: Change "ISO C89" to "ISO C90".
8191         * c-parse.in (primary, initelt): Likewise.
8192
8193 2004-02-08  Richard Sandiford  <rsandifo@redhat.com>
8194
8195         * real.c (encode_ibm_extended): Normalize the input value before
8196         converting it to a double.  Handle the case where a normal value
8197         rounds to infinity.
8198
8199 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
8200
8201         * c-objc-common.c (c_cannot_inline_tree_fn): Fix a typo in a
8202         warning.
8203         * cse.c (preferrable): Change to preferable. Update all of its
8204         callers.
8205         * genautomata.c (ainsn): Change
8206         first_ainsn_with_given_equialence_num to
8207         first_ainsn_with_given_equivalence_num.  Update all of its
8208         references.
8209
8210 2004-02-08  Jan Hubicka  <jh@suse.cz>
8211
8212         * schedule-ebb.c (schedule_ebbs): Do not allocate reg life data.
8213
8214 2004-02-07  David Edelsohn  <edelsohn@gnu.org>
8215
8216         * function.c (assign_parms): Fix formatting.
8217
8218 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
8219
8220         * default.h (PROMOTE_PROTOTYPES): Remove.
8221         * system.h (PROMOTE_FUNCTION_RETURN, PROMOTE_PROTOTYPES,
8222         STRUCT_VALUE_REGNUM, SETUP_INCOMING_VARARGS,
8223         EXPAND_BUILTIN_SAVEREGS): Poison.
8224         * target-def.h (TARGET_PROMOTE_FUNCTION_RETURN): Define as
8225         hook_bool_tree_false.
8226         (TARGET_PROMOTE_PROTOTYPES): Likewise.
8227         * target.h: Replace SETUP_INCOMING_VARARGS with
8228         targetm.calls.setup_incoming_varargs().
8229         * targhooks.c (default_promote_function_return): Remove.
8230         (default_promote_prototypes): Likewise.
8231         (default_struct_value_rtx): Always abort().
8232         (default_expand_builtin_saveregs): Always print an error
8233         message.
8234         (default_setup_incoming_varargs): Do nothing.
8235         (default_pretend_outgoing_varargs_named): Don't depend on
8236         SETUP_INCOMING_VARARGS.
8237         * targhooks.h: Remove the prototype for
8238         default_promote_function_return and
8239         default_promote_prototypes.
8240
8241 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
8242
8243         * system.h (SHARED_SECTION_ASM_OP): Poison.
8244         * varasm.c (data_section): Don't use SHARED_SECTION_ASM_OP.
8245         * doc/tm.texi (SHARED_SECTION_ASM_OP): Remove.
8246
8247 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
8248
8249         Bug 13856
8250         * c-decl.c (diagnose_mismatched_decls): Only give special
8251         treatment when olddecl is DECL_BUILT_IN, if C_DECL_INVISIBLE
8252         is also true.
8253         (merge_decls): Don't clear DECL_BUILT_IN_CLASS and
8254         DECL_FUNCTION_CODE when defining a built-in function.
8255         Don't update DECL_ESTIMATED_INSNS.
8256         * dwarf2out.c (dwarf2out_decl): Don't ignore built-in
8257         FUNCTION_DECLs.
8258         * tree.h: Delete DECL_ESTIMATED_INSNS.
8259         * tree-inline.c (struct inline_data): Delete inlined_insns field.
8260         (expand_call_inline, optimize_inline_calls): Don't update
8261         DECL_ESTIMATED_INSNS nor inlined_insns.
8262         * cgraphunit.c (cgraph_analyze_function): Don't update
8263         DECL_ESTIMATED_INSNS.
8264
8265 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
8266
8267         * c-common.c (shadow_warning): Delete.
8268         * c-common.h (free_parser_stacks, shadow_warning, sw_kind): Delete.
8269         * c-decl.c (warn_if_shadowing): Issue shadow warnings directly.
8270         * c-opts.c (c_common_parse_file): Don't call free_parser_stacks.
8271         * c-parse.in (free_parser_stacks): Delete.
8272
8273 2004-02-07  Nathanael Nerode  <neroden@gcc.gnu.org>
8274
8275         * Makefile.in, config/t-slibgcc-darwin, config/t-slibgcc-elf-ver,
8276         config/t-slibgcc-sld, config/mips/t-iris5-6, config/sh/t-linux:
8277         Use the top level mkinstalldirs, not the one in the gcc subdir.
8278         * mkinstalldirs: Remove (from the gcc subdir).
8279
8280 2004-02-07  Roger Sayle  <roger@eyesopen.com>
8281
8282         PR middle-end/13696
8283         * fold-const.c (fold_convert): New function to provide type
8284         conversion to the middle-end without using convert.
8285         (negate_expr, associate_trees, size_diffop, omit_one_operand,
8286         operand_equal_for_comparison_p, pedantic_omit_one_operand,
8287         invert_truthvalue, optimize_bit_field_compare, range_binop,
8288         decode_field_reference, make_range, build_range_check, unextend,
8289         fold_truthop, extract_muldiv_1, fold_mathfn_compare,
8290         fold_binary_op_with_conditional_arg, fold_inf_compare,
8291         fold_single_bit_test, fold, multiple_of_p): Replace all calls to
8292         convert with calls to fold_convert.
8293
8294 2004-02-07  Jan Hubicka  <jh@suse.cz>
8295
8296         * genrecog.c (find_operand): add extra argument stop.
8297         (validate_pattern): Verify that mach_dup is duplicating operand
8298         defined lexically earlier.
8299
8300 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
8301
8302         * config.gcc: Don't mention MAX_LONG_TYPE_SIZE.
8303         * system.h (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
8304         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Poison.
8305         * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
8306         config/ia64/ia64.h, config/ip2k/ip2k.h,
8307         config/iq2000/iq2000.h, config/mips/iris5.h,
8308         config/mips/mips.h, config/pa/pa-64.h, config/pa/pa.h,
8309         config/rs6000/aix51.h, config/rs6000/aix52.h,
8310         config/rs6000/darwin.h, config/rs6000/rs6000.h,
8311         config/s390/s390.h, config/sh/sh.h, config/sparc/freebsd.h,
8312         config/sparc/linux.h, config/sparc/linux64.h,
8313         config/sparc/netbsd-elf.h, config/sparc/sparc.h,
8314         config/xtensa/xtensa.h: Remove the definitions of
8315         MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE, and/or
8316         MAX_WCHAR_TYPE_SIZE.
8317         * doc/tm.texi (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
8318         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Remove.
8319
8320 2004-02-07  Stephane Carrez  <stcarrez@nerim.fr>
8321
8322         PR bootstrap/13990
8323         * config/m68hc11/m68hc11.md ("doloop_end"): Pass dummy arguments to
8324         gen_rtx_NE.
8325
8326 2004-02-07  Josef Zlomek  <zlomekj@suse.cz>
8327
8328         * var-tracking.c (vt_add_function_parameters): Surround checkings by
8329         #ifdef ENABLE_CHECKING and #endif.
8330
8331 2004-02-07  Roger Sayle  <roger@eyesopen.com>
8332
8333         * fold-const.c (negate_expr_p, negate_expr): Optimize -(A+B) into
8334         either (-A)-B or (-B)-A, if A or B is easily negated respectively.
8335         (fold) <MINUS_EXPR>: Optimize (A*C) - (B*C) -> (A-B)*C for both
8336         integer types and floating point with unsafe_math_optimizations.
8337         Add similar optimization for (A*C1) - (A*C2) -> A*(C1-C2).
8338         Optimize A - B as A + (-B), if B is easily negated.
8339
8340 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
8341
8342         * c-ppoutput.c, cfganal.c, diagnostic.h, print-rtl.c,
8343         config/darwin.c, config/darwin.h, config/ia64/ia64-c.c,
8344         config/m32r/linux.h, config/rs6000/ppc64-fp.c,
8345         config/sparc/openbsd.h, doc/makefile.texi, doc/passes.texi:
8346         Update copyright.
8347
8348 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
8349
8350         * c-ppoutput.c, var-tracking.c: Fix comment typos.
8351
8352 2004-02-06  James E Wilson  <wilson@specifixinc.com>
8353
8354         * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Only define for
8355         glibc 2.3 or better.
8356
8357 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
8358
8359         * doc/tm.texi (TARGET_FLOAT_LIB_COMPARE_RETURNS_BOOL): Change
8360         to FLOAT_LIB_COMPARE_RETURNS_BOOL.
8361
8362 2004-02-07  Alan Modra  <amodra@bigpond.net.au>
8363
8364         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Add darwin-ldouble.c.
8365         (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
8366         (SHLIB_MKMAP_OPTS): Delete.
8367         (TARGET_LIBGCC2_CFLAGS): Add -specs.
8368         (bispecs): Add rule.
8369         * config/rs6000/libgcc-ppc64.ver: New file.
8370         * config/rs6000/ppc64-fp.c (__fixtfdi, __floatditf): New functions.
8371         (__floatdidf, __floatdisf): Optimize multiply.
8372         (__fixunstfdi): New function.
8373         * config/rs6000/rs6000.c (rs6000_complex_function_value): Allow for
8374         real and imag parts larger than one register.
8375         (function_arg): Correct type of reg used when fp arg split partially
8376         to stack.
8377         * config/rs6000/darwin-ldouble.c: Protect with #if !_SOFT_FLOAT
8378         and __MACH__ or __powerpc64__.
8379
8380 2004-02-06  Roger Sayle  <roger@eyesopen.com>
8381             Ulrich Weigand  <uweigand@de.ibm.com>
8382
8383         * builtins.c (expand_builtin_signbit): Use extract_bit_field instead
8384         of gen_highpart or gen_lowpart when the floating point format is
8385         wider than the result mode.
8386
8387 2004-02-06  Andrew Pinski  <pinskia@physics.uc.edu>
8388
8389         * dwarf2out.c (loclabel_num): Move into #ifdef
8390         DWARF2_DEBUGGING_INFO.
8391
8392 2004-02-06  Ziemowit Laski  <zlaski@apple.com>
8393
8394         * objc/objc-act.c (build_super_template) the 'class' field of
8395         'struct _objc_super' shall be named 'super_class' #ifdef OBJCPLUS.
8396         (get_super_receiver): Likewise.
8397
8398 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
8399
8400         * reload1.c (check_eliminable_occurrences): Optimize the reset
8401         of can_eliminate.
8402         (eliminate_regs_in_insn): Likewise.
8403
8404 2004-02-06  Daniel Berlin <dberlin@dberlin.org>
8405             Josef Zlomek  <zlomekj@suse.cz>
8406
8407         * dwarf2out.c (struct gcc_debug_hooks): Call dwarf2out_begin_function
8408         at the beginning of function, call dwarf2out_var_location for
8409         NOTE_INSN_VAR_LOCATION note.
8410         (struct var_loc_node, struct var_loc_list_def, loclabel_num,
8411         decl_loc_table): New.
8412         (lookup_decl_loc): New function.
8413         (add_var_loc_to_decl): New function.
8414         (based_loc_descr): Added parameter can_use_fbreg, DW_OP_fbreg is used
8415         only if can_use_fbreg.
8416         (mem_loc_descriptor): Added parameter can_use_fbreg, pass it to other
8417         functions.
8418         (loc_descriptor): Likewise. Process VAR_LOCATION.
8419         (concat_loc_descriptor): Call loc_descriptor with can_use_fbreg == true.
8420         (loc_descriptor_from_tree): Call mem_loc_descriptor with
8421         can_use_fbreg == true.
8422         (add_location_or_const_value_attribute): Added parameter enum
8423         dwarf_attribute attr, generate attribute ATTR.  Create the location list.
8424         (add_bound_info): Call loc_descriptor with can_use_fbreg == true.
8425         (gen_formal_parameter_die): Call add_location_or_const_value_attribute
8426         with attr == DW_AT_location.
8427         (gen_subprogram_die): Generate the location list for DW_AT_frame_base
8428         if frame_base_decl is defined and has a location list.
8429         (gen_variable_die): Call add_location_or_const_value_attribute with
8430         attr == DW_AT_location.
8431         (dwarf2out_var_location): New function.
8432         (dwarf2out_begin_function): New function.
8433         (dwarf2out_init): Create decl_loc_table.
8434
8435 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
8436
8437         * loop.c (force_movables): Transitively increase the priorities of
8438         all insns forces by an insn, not just the first one.
8439
8440 2004-02-06  Josef Zlomek  <zlomekj@suse.cz>
8441             Daniel Berlin <dberlin@dberlin.org>
8442
8443         Josef Zlomek  <zlomekj@suse.cz>
8444         * Makefile.in (var-tracking.o): New.
8445         * common.opt (fvar-tracking): New.
8446         * flags.h (flag_var_tracking): New.
8447         * gengtype.c (adjust_field_rtx_def): NOTE_INSN_VAR_LOCATION was added.
8448         * opts.c (common_handle_option): Add OPT_fvar_tracking.
8449         * print-rtl.c (print_rtx): NOTE_INSN_VAR_LOCATION was added.
8450         * rtl.c (note_insn_name): Likewise.
8451         * rtl.def (VAR_LOCATION): New.
8452         * rtl.h (NOTE_VAR_LOCATION): New.
8453         (NOTE_VAR_LOCATION_DECL): New.
8454         (NOTE_VAR_LOCATION_LOC): New.
8455         (enum insn_note): NOTE_INSN_VAR_LOCATION was added.
8456         (variable_tracking_main): New exported function.
8457         * timevar.def (TV_VAR_TRACKING): New.
8458         * toplev.c (enum dump_file_index): Added DFI_vartrack.
8459         (dump_file): "vartrack" was added (-dV).
8460         (flag_var_tracking): New.
8461         (f_options): "var-tracking" was added.
8462         (rest_of_handle_variable_tracking): New function.
8463         (rest_of_compilation): Run variable tracking.
8464         (process_options): If user has not specified flag_var_tracking set it
8465         according to optimize, debug_info_level and debug_hooks.
8466         * tree.h (frame_base_decl): New.
8467         * var-tracking.c: New file.
8468         * config/ia64/ia64.c (ia64_flag_var_tracking): New variable.
8469         (ia64_override_options): Set flags to run variable tracking in machine
8470         dependent reorg instead of toplev.c.
8471         (ia64_reorg): Run variable tracking if wanted.
8472         * doc/invoke.texi: Mention variable tracking in -dV,
8473         add and -fvar-tracking.
8474         * doc/passes.texi: Added variable tracking pass.
8475
8476         Daniel Berlin <dberlin@dberlin.org>
8477         * debug.h (struct gcc_debug_hooks): Added var_location debug hook.
8478         * dbxout.c (dbx_debug_hooks): Likewise.
8479         (xcoff_debug): Likewise.
8480         * debug.c (do_nothing_debug_hooks): Likewise.
8481         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
8482         * dwarfout.c (dwarf_debug_hooks): Likewise.
8483         * sdbout.c (sdb_debug_hooks): Likewise.
8484         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
8485         * final.c (final_scan_insn): Call var_location debug hook for each
8486         NOTE_INSN_VAR_LOCATION.
8487
8488 2004-02-06  Jan Hubicka  <jh@suse.cz>
8489
8490         * flow.c (update_life_info): Allocate reg_deaths when called from
8491         scheudler.
8492         (attempt_auto_inc):  Update life ranges accordingly.
8493
8494 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
8495
8496         PR debug/11816
8497         * dwarf2out.c (gen_decl_die): Handle anonymous struct members.
8498
8499 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
8500
8501         * cfganal.c (flow_call_edges_add): Never split a libcall block.
8502
8503 2004-02-06  Daniel Berlin  <dberlin@dberlin.org>
8504
8505         * dwarf2out.c (output_loc_list): Don't use deltas if we have
8506         a separate line info table in use.
8507         Use the correct size for terminators.
8508         (output_die): Use offset, not delta.
8509
8510 2004-02-06  H.J. Lu  <hongjiu.lu@intel.com>
8511
8512         * doc/invoke.texi: Remove the pni option from -mfpmath=.
8513
8514 2004-02-06  Jan Hubicka  <jh@suse.cz>
8515
8516         * recog.c (split_all_insns): Do not update reg info.
8517         * regrename.c (regrename_optimize): Likewise.
8518         * toplev.c (rest_of_handle_reorder_blocks): Likewise.
8519         * flow.c (struct propagate_block_info): Add insn_num field.
8520         (reg_deaths): New array.
8521         (life_analysis): Free reg_deaths info.
8522         (allocate_reg_life_data): Allocate reg_deaths array.
8523         (propagate_one_insn): Use new array.
8524         (init_propagate_block): Initialize it.
8525         (free_propagate_block_info): Finish compuation of
8526         REG_LIVE_LENGTH
8527         (attempt_auto_inc): Sanity check that REG_INFO is not
8528         computed at same time.
8529         (mark_used_regs): Update new array.
8530
8531         * reg-stack.c (subst_stack_regs): Unshare clobbers before
8532         substitution.
8533
8534 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
8535
8536         * config/s390/s390.md (*extendsiqi2_short_displ): Change to
8537         *extendqisi2_short_displ.
8538
8539 2004-02-06  Alan Modra  <amodra@bigpond.net.au>
8540
8541         * doc/tm.texi (INIT_CUMULATIVE_ARGS): Update doco.
8542         * calls.c (expand_call): Pass n_named_args to INIT_CUMULATIVE_ARGS.
8543         (emit_library_call_value_1): Likewise pass nargs.
8544         * expr.c (block_move_libcall_safe_for_call_parm): Pass 3 here.
8545         * function.c (assign_parms): Pass -1 to INIT_CUMULATIVE_ARGS.
8546         * config/rs6000/rs6000.c (init_cumulative_args): Use n_named_args
8547         parameter instead of scanning TYPE_ARGS_TYPES to count args.
8548         * config/rs6000/rs6000-protos.h (init_cumulative_args): Update
8549         prototype.
8550         * config/rs6000/rs6000.h (INIT_CUMULATIVE_ARGS): Pass extra arg.
8551         (INIT_CUMULATIVE_INCOMING_ARGS): Set extra arg to 1000.
8552         (INIT_CUMULATIVE_LIBCALL_ARGS): Set extra arg to 0.
8553         * config/sh/sh.c (sh_output_mi_thunk): Pass 1 as n_named_args to
8554         INIT_CUMULATIVE_ARGS.
8555         * config/alpha/alpha.h (INIT_CUMULATIVE_ARGS): Update.
8556         * config/alpha/unicosmk.h, config/alpha/vms.h, config/arc/arc.h,
8557         config/arm/arm.h, config/avr/avr.h, config/c4x/c4x.h,
8558         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.h,
8559         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
8560         config/ia64/ia64.h, config/ip2k/ip2k.h, config/iq2000/iq2000.h,
8561         config/iq2000/iq2000.c, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
8562         config/m68k/m68k.h, config/mcore/mcore.h, config/mips/mips.h,
8563         config/mmix/mmix.h, config/mn10300/mn10300.h, config/ns32k/ns32k.h,
8564         config/pa/pa.h, config/pdp11/pdp11.h, config/s390/s390.h,
8565         config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
8566         config/v850/v850.h, config/vax/vax.h, config/xtensa/xtensa.h: Likewise.
8567
8568 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
8569
8570         * genemit.c (gen_exp) [CONST_INT]: Use const_int_rtx whenever
8571         possible.
8572
8573 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
8574
8575         * reload1.c (eliminate_regs_in_insn): If a set has a REG_EQUAL
8576         note containing (plus (reg) (const_int)), where reg is an
8577         eliminable reg, then perform the register elimination without
8578         depending on eliminate_regs().
8579
8580 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
8581
8582         * config/arc/arc.c (arc_return_in_memory): Check the return
8583         value of int_size_in_bytes against -1.  Don't check
8584         TREE_ADDRESSABLE.
8585         * config/avr/avr.c (avr_return_in_memory): Check the return
8586         value of int_size_in_bytes against -1.
8587         * config/ip2k/ip2k.c (ip2k_return_in_memory): Likewise.
8588         * config/m68hc11/m68hc11.c (m68hc11_return_in_memory):
8589         Likewise.
8590         * config/mcore/mcore.c (mcore_return_in_memory): Likewise.
8591         * config/stormy16/stormy16.c (xstormy16_return_in_memory):
8592         Likewise.
8593
8594 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
8595
8596         * config/frv/frv-protos.h: Remove the prototype for
8597         frv_setup_incoming_varargs.
8598         * config/frv/frv.c (TARGET_SETUP_INCOMING_VARARGS): New.
8599         (frv_setup_incoming_varargs): Make it static.
8600         * config/frv/frv.h (SETUP_INCOMING_VARARGS): Remove.
8601
8602 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
8603
8604         * config/fr30/fr30-protos.h: Remove the prototype for
8605         fr30_setup_incoming_varargs.
8606         Update the prototypes for fr30_num_arg_regs and
8607         fr30_function_arg_partial_nregs.
8608         * config/fr30/fr30.c (TARGET_STRUCT_VALUE_RTX): New.
8609         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
8610         (fr30_setup_incoming_varargs): Make it static.
8611         Add argument second_time.  Don't do anything when second_time
8612         is nonzero.
8613         (fr30_num_arg_regs): Change the type of the first argument to
8614         enum machine_mode.
8615         (fr30_function_arg_partial_nregs): Change the type of the
8616         second argument to enum machine_mode.
8617         * config/fr30/fr30.h (STRUCT_VALUE): Remove.
8618         (SETUP_INCOMING_VARARGS): Remove.
8619
8620 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
8621
8622         * config/arc/arc-protos.h: Remove the prototype for
8623         arc_setup_incoming_varargs.
8624         * config/arc/arc.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
8625         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
8626         (arc_setup_incoming_varargs): Make it static.
8627         (arc_external_libcall): Likewise.
8628         * config/arc/arc.h (SETUP_INCOMING_VARARGS): Remove.
8629         Remove the commented-out definition of
8630         ASM_OUTPUT_EXTERNAL_LIBCALL.
8631
8632 2004-02-05  SUGIOKA Toshinobu  <sugioka@itonet.co.jp>
8633
8634         * config/sh/t-linux (SHLIB_INSTALL): Prepend $$(DESTDIR)
8635         to $$(slibdir) in the installation commands.
8636
8637 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
8638
8639         * reload.c (refers_to_regno_for_reload_p): Index hard_regno_nregs
8640         with inner_regno, not regno.
8641         * rtlanal.c (refers_to_regno_p): Same.
8642
8643 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
8644
8645         * config.gcc: Remove i370 support.
8646
8647 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
8648
8649         * doc/install.texi:  Update automake and autoconf version
8650         requirements.  Note where to find gcj automake version.
8651
8652 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
8653
8654         * Makefile.in (generate-manpages): Move dependencies to ...
8655         (man): here.
8656         * doc/makefile.texi: Document new targets.
8657         * doc/sourcebuild.texi (Make-lang.in): Document new langhooks.
8658
8659 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
8660
8661         PR/13485
8662         Makefile.in (srcextra):  Add a level of indirection to ...
8663         (gcc.srcextra): ... here.
8664         (po-generated): Delete.
8665         (po/$(PACKAGE).pot: Use srcextra instead of po-generated.  Depend on
8666         options.c.
8667         (start.encap): Remove superfluous lang.srcextra dependency.
8668         objc/Make-lang.in (po-generated):  Delete.
8669
8670 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
8671
8672         * config/ia64/ia64.c (REG_GP): Remove.
8673
8674 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8675
8676         * config/mips/iris5gas.h (PREFERRED_DEBUGGING_TYPE): Define.
8677
8678 2004-02-05  Devang Patel  <dpatel@apple.com>
8679
8680         * dwarf2out.c (force_type_die): Look up input type itself
8681         instead of root_type() of type.
8682
8683 2004-02-05  Andreas Krebbel  <krebbel1@de.ibm.com>
8684
8685         * config/s390/s390.md ("*tmqidi_ext"): New insn.
8686         ("*extendqidi2_short_displ", "*extendsiqi2_short_displ"): Old
8687         pre-reload splitters are transformed to post-reload
8688         define_insn_and_split patterns.
8689         ("*tmqisi_ext"): Renamed old "*tmqi_ext".
8690
8691 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
8692
8693         * config/cris/cris.h: Replace PROMOTE_PROTOTYPES with
8694         TARGET_PROMOTE_PROTOTYPES.
8695
8696 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8697
8698         PR middle-end/13750
8699         Revert:
8700         2004-01-15  Geoffrey Keating  <geoffk@apple.com>
8701         PR pch/13361
8702         * c-typeck.c (constructor_asmspec): Delete.
8703         (struct initializer_stack): Delete field 'asmspec'.
8704         (start_init): Delete saving of asmspec.
8705         (finish_init): Don't update constructor_asmspec.
8706         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
8707         * stmt.c (expand_asm): Duplicate strings from tree.
8708         (expand_asm_operands): Likewise.
8709         * tree.c (tree_size): Update computation of size of STRING_CST.
8710         (make_node): Don't make STRING_CST nodes.
8711         (build_string): Allocate string with tree node.
8712         * tree.def (STRING_CST): Update comment.
8713         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
8714         (tree_string): Place contents of string in tree node.
8715         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
8716         from tree.
8717
8718 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
8719
8720         * diagnostic.h (DEFINE_DIAGNOSTIC_KIND): Change parameter M to
8721         msgid.
8722
8723 2004-02-05  Dorit Naishlos  <dorit@il.ibm.com>
8724
8725         * config/rs6000/altivec.md (*movv4si_internal): At least one
8726         operand must be altivec_register_operand.
8727         (*movv8hi_internal1): Likewise.
8728         (*movv16qi_internal1): Likewise.
8729         (*movv4sf_internal1): Likewise.
8730
8731 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
8732
8733         * configure.ac (gcc_cv_as_powerpc_mfcrf): Correct test for mfcr.
8734         * configure: Regenerate.
8735
8736 2004-02-05  Jonathan Wakely  <redi@gcc.gnu.org>
8737
8738         * doc/install.texi: Update description of --gxx-include-dir to
8739         give correct default value.
8740
8741 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
8742
8743         * config/h8300/h8300.h (REG_OK_FOR_BASE_NONSTRICT_P): Replace
8744         8 with MAC_REG.
8745
8746 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
8747
8748         * config/pa/pa.c (emit_hpdiv_const): Replace gen_rtx with
8749         gen_rtx_PARALLEL.
8750
8751 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
8752
8753         * emit-rtl.c: Update the comment about the file.
8754
8755 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
8756
8757         * sourcebuild.texi (Test Idioms): Update testcase naming
8758         conventions.
8759
8760 2004-02-04  Per Bothner  <per@bothner.com>
8761
8762         Partially revert/redo 2003-10-01 change; fix -fworking-directory.
8763         * c-ppoutput.c (pp_dir_change):  New function.
8764         * c-common.h (pp_dir_change):  New declaration.
8765         * cpplib.h (struct cpp_options):  Remove working_directory field.
8766         * cppinit.c (cpp_find_main_file, cpp_push_main_file):  Merge back to
8767         (cpp_read_main_file):  as before 10-01.  Call _cpp_stack_file.
8768         Don't handle -fworking_directory here, but in c_common_post_options.
8769         (read_original_directory): Don't back up when done.
8770         Don't clear no-longer used working_directory flag.
8771         * cpplib.h:  Update declarations to match.
8772         * c-lex.c (cb_dir_change):  Move to c-opts.c.
8773         (init_c_lex):  Don't set dir_change callback here, since we want
8774         to set it even if flag_preprocess_only.
8775         * c-opts.c (cb_dir_change):  Function moved from c-lex.c.
8776         (c_common_post_options):  Set dir_change callback.
8777         Call pp_dir_change if approporiate.
8778         (finish_options):  Don't call cpp_find_main_file here.  Hence remove
8779         unneeded parameter and result. Do LC_RENAME for <built-in>.
8780         (c_common_post_options):  Call cpp_read_main_file here instead.
8781         (c_common_init):  Update accordingly.
8782         (push_command_line_include):  Don't cpp_push_main_file.
8783         Do LC_RENAME rather than LC_LEASE to get back to main file.
8784         Compared to pre-10-01 version, inline cpp_rename_to_main_file.
8785         (c_common_parse_file):  Call cpp_read_main_file for subsequent main
8786         files, but call finish_options for all files.
8787         * c-opts.c (sanitize_cpp_opts):  Don't set cpp_opts->working_directory.
8788         * fix-header.c (read_scan_file):  Call cpp_read_main_file instead of
8789         cpp_find_main_file + cpp_push_main_file.
8790         * c-lex.c (fe_file_change):  Don't set main_input_filename here.
8791         * opts.c (handle_options):  Only set main_input_filename first time.
8792
8793 2004-02-05  Ian Lance Taylor  <ian@wasabisystems.com>
8794
8795         * config/arm/arm.h (REG_CLASS_NAMES): Add missing comma.
8796
8797 2004-02-04  Geoffrey Keating  <geoffk@apple.com>
8798
8799         * reload.c (find_equiv_reg): When checking for register overlap,
8800         don't index hard_regno_nregs with a pseudo-reg.
8801
8802 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
8803
8804         * config/s390/s390.c (s390_trampoline_template): Remove gen_rtx().
8805
8806 2004-02-04  David Edelsohn  <edelsohn@gnu.org>
8807
8808         * reload.c (refers_to_regno_for_reload_p): Test regno, not inner_regno,
8809         against FIRST_PSEUDO_REGISTER.
8810
8811 2004-02-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8812
8813         * Makefile.in: Move target, host overrides after per-language
8814         fragments.
8815
8816         * config/mips/t-iris5-as (FORCE_DEBUG_ADAFLAGS): Clear.
8817         (GNATLIBCFLAGS): Remove -g.
8818
8819 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
8820
8821         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
8822         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
8823         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
8824         config/m32r/m32r.c, config/ns32k/ns32k.c, config/pa/pa.c,
8825         config/pdp11/pdp11.c, config/rs6000/rs6000.c,
8826         config/sparc/sparc.c, config/vax/vax.c: Revert the
8827         replacements of "FALLTHRU" with "Fall through" done in the
8828         previous patch.
8829
8830 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
8831
8832         * config/darwin.c, config/darwin.h, config/freebsd-spec.h,
8833         config/arm/arm.c, config/arm/arm.md,
8834         config/cris/cris-protos.h, config/fr30/fr30.c,
8835         config/fr30/fr30.h, config/h8300/h8300.c, config/i386/i386.h,
8836         config/i860/i860.c, config/i860/i860.h, config/ia64/ia64-c.c,
8837         config/ia64/ia64.c, config/ia64/ia64.h, config/ip2k/ip2k.h,
8838         config/ip2k/ip2k.md, config/ip2k/libgcc.S,
8839         config/m32r/linux.h, config/m32r/m32r.c, config/m32r/m32r.h,
8840         config/m68k/m68k.c, config/m68k/netbsd-elf.h,
8841         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.md,
8842         config/ns32k/netbsd.h, config/ns32k/ns32k.c,
8843         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
8844         config/rs6000/darwin-ldouble.c, config/s390/s390.h,
8845         config/s390/s390.md, config/sparc/netbsd-elf.h,
8846         config/sparc/openbsd.h, config/sparc/sparc.c,
8847         config/xtensa/lib2funcs.S: Fix comment formatting.
8848
8849 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
8850
8851         * config/alpha/alpha.c, config/arc/arc.c,
8852         config/arm/arm-cores.def, config/arm/arm.c, config/arm/arm.h,
8853         config/arm/arm1026ejs.md, config/arm/arm1136jfs.md,
8854         config/arm/arm926ejs.md, config/arm/vfp.md, config/avr/avr.c,
8855         config/c4x/c4x.c, config/cris/cris.c, config/frv/frv.md,
8856         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
8857         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
8858         config/iq2000/iq2000.c, config/m32r/m32r.c,
8859         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.h,
8860         config/ns32k/ns32k.c, config/pa/pa.c, config/pdp11/pdp11.c,
8861         config/rs6000/darwin-ldouble.c, config/rs6000/rs6000.c,
8862         config/rs6000/rs6000.h, config/sparc/sparc.c,
8863         config/vax/vax.c: Fix comment typos.  Follow spelling
8864         conventions.
8865
8866 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
8867
8868         * alloc-pool.h, c-convert.c, c-lang.c, c-tree.h,
8869         caller-save.c, df.h, genconfig.c, global.c, lcm.c,
8870         ra-rewrite.c, ra.c, regclass.c, regs.h, resource.c,
8871         sched-rgn.c, config/arm/aof.h, config/arm/cirrus.md,
8872         config/arm/fpa.md, config/arm/iwmmxt.md,
8873         config/arm/netbsd-elf.h, config/arm/netbsd.h,
8874         config/m68hc11/m68hc11.md, config/mips/iris5.h,
8875         config/mn10300/mn10300.md, config/rs6000/altivec.md,
8876         config/sparc/netbsd-elf.h: Update copyright.
8877
8878 2004-02-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
8879
8880         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
8881         for all modes whose size is greater than 8 bytes if ARCH32.
8882         (sparc_va_arg): Handle all modes whose size is greater than 8 bytes
8883         by reference if ARCH32.
8884
8885 2004-02-04  Aldy Hernandez  <aldyh@redhat.com>
8886
8887         * cgraphunit.c (cgraph_postorder): Fix typo in comment.
8888
8889 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
8890
8891         * config/s390/s390.md ("*la_64" + peepholes, "reload_indi"): Move
8892         to before adddi3 insn patterns.
8893         ("*la_31" + peepholes, "*la_31_and", "*la_31_and_cc", "force_la_31",
8894         "reload_insi"): Move to before addsi3 insn patterns.
8895
8896 2004-02-04  Mark Mitchell  <mark@codesourcery.com>
8897
8898         * calls.c (initialize_argument_information): Add CALL_FROM_THUNK_P
8899         parameter.  Use it instead of current_function_is_thunk.
8900         * function.h (struct function): Update documentation for is_thunk.
8901         * tree.h (CALL_FROM_THUNK_P): New macro.
8902         * config/alpha/alpha.c (alpha_sa_mask): Do not check
8903         no_new_pseudos when testing current_function_is_thunk.
8904         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likeiwse.
8905
8906 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
8907
8908         * doc/tm.texi: Replace SETUP_INCOMING_VARARGS with
8909         TARGET_SETUP_INCOMING_VARARGS.
8910
8911 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
8912
8913         * emit-rtl.c (gen_rtx): Remove.
8914         * genattrtab.c: Don't mention gen_rtx in a comment.
8915         * rtl.h: Remove the prototype for gen_rtx.
8916         * doc/md.texi: Replace gen_rtx with gen_rtx_REG.
8917
8918 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
8919
8920         * config/arc/arc.h, config/fr30/fr30.h
8921         (SETUP_INCOMING_VARARGS): Remove the target-independent
8922         comments.
8923         * doc/tm.texi: Don't mention deprecated target macros.
8924
8925 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
8926
8927         * config/fr30/fr30.h (FUNCTION_VALUE): Remove the
8928         target-independent comment.
8929
8930 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
8931
8932         * doc/interface.texi, doc/tm.texi, doc/trouble.texi: Don't
8933         mention deprecated target macros.
8934
8935 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
8936
8937         * config.gcc: Remove obsolete ports and configurations.
8938         * config/linux-aout.h, config/netware.h,
8939         config/t-linux-gnulibc1, config/d30v/abi,
8940         config/d30v/d30v-protos.h, config/d30v/d30v.c,
8941         config/d30v/d30v.h, config/d30v/d30v.md,
8942         config/d30v/libgcc1.asm, config/d30v/t-d30v,
8943         config/dsp16xx/dsp16xx-modes.def,
8944         config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c,
8945         config/dsp16xx/dsp16xx.h, config/dsp16xx/dsp16xx.md,
8946         config/i370/README, config/i370/i370-c.c,
8947         config/i370/i370-protos.h, config/i370/i370.c,
8948         config/i370/i370.h, config/i370/i370.md, config/i370/linux.h,
8949         config/i370/mvs.h, config/i370/oe.h, config/i370/t-i370,
8950         config/i386/freebsd-aout.h, config/i386/linux-aout.h,
8951         config/i386/moss.h, config/i386/netware.h,
8952         config/i386/svr3.ifile, config/i386/svr3dbx.h,
8953         config/i386/svr3gas.h, config/i386/svr3z.ifile,
8954         config/i386/t-udk, config/i386/udk.h, config/i386/vsta.h,
8955         config/i960/i960-c.c, config/i960/i960-coff.h,
8956         config/i960/i960-modes.def, config/i960/i960-protos.h,
8957         config/i960/i960.c, config/i960/i960.h, config/i960/i960.md,
8958         config/i960/rtems.h, config/i960/t-960bare,
8959         config/m68k/hp310.h, config/m68k/hp320.h,
8960         config/m68k/hp320base.h, config/m68k/m68kv4.h,
8961         config/m68k/netbsd.h, config/m68k/sgs.h, config/m68k/t-hp320:
8962         Remove.
8963         * doc/extend.texi, doc/install.texi, doc/invoke.texi,
8964         doc/md.texi: Remove mentions of obsolete ports.
8965
8966 2004-02-04  Jan Hubicka  <jh@suse.cz>
8967
8968         * alias.c (find_base_term, get_addr):  Do not dereference NULL
8969         pointer when all VALUE's locations has been invalidated.
8970         (rtx_equal_for_memref_p): Simplify checking of VALUEs.
8971
8972 2004-02-03  Wolfgang Bangerth  <bangerth@dealii.org>
8973
8974         * doc/invoke.texi (x86 options): Fix spelling/wording.
8975
8976 2004-02-03  Richard Sandiford  <rsandifo@redhat.com>
8977
8978         * config/mips/iris5.h (ASM_OUTPUT_ASCII): Use mips_output_ascii to
8979         put the original string in a comment.
8980         * config/mips/mips-protos.h (mips_output_ascii): Add prefix argument.
8981         * config/mips/mips.c (mips_output_ascii): Likewise.
8982         * config/mips/mips.h (ASM_OUTPUT_ASCII): Adjust accordingly.
8983
8984 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
8985
8986         * system.h (GIV_SORT_CRITERION): Poison.
8987         * config/avr/avr.h (GIV_SORT_CRITERION): Remove.
8988         * config/ip2k/ip2k.h (GIV_SORT_CRITERION): Likewise.
8989
8990 2004-02-03  Roger Sayle  <roger@eyesopen.com>
8991
8992         PR target/9348
8993         * expr.c (expand_expr_real) <MULT_EXPR>:  When performing widening
8994         multiplies with a multiplication of the wrong signedness, its the
8995         signedness of the multiplication that we've performed that needs to
8996         be passed to expand_mult_highpart_adjust.  Avoid emitting a nop-move
8997         if expand_mult_highpart_adjust places the result in target.
8998
8999 2004-02-03  Richard Henderson  <rth@redhat.com>
9000
9001         * varasm.c (const_desc_rtx_sym_eq): Compare symbol strings.
9002
9003 2004-02-03  J"orn Rennecke <joern.rennecke@superh.com>
9004
9005         * config.gcc (sh[234]l): Use little endian fragments.
9006
9007 2004-02-03  Paul Koning  <pkoning@equallogic.com>
9008
9009         * config/pdp11/pdp11-modes.def: Add RESET_FLOAT_FORMAT calls.
9010         * config/pdp11/pdp11-protos.h (legitimate_const_double_p): Add.
9011         * config/pdp11/pdp11.c (encode_pdp11_f, decode_pdp11_f,
9012         encode_pdp11_d, decode_pdp11_d): New functions to handle PDP11
9013         floating point format.
9014         (pdp11_f_format, pdp11_d_format): New real_format descriptors for
9015         the above functions.
9016         (output_move_quad): Output float values in correct target format.
9017         (legitimate_const_double_p): New function.
9018         * config/pdp11/pdp11.h: Fix typos.
9019         (FLOAT_WORDS_BIG_ENDIAN): Add definition.
9020         (TARGET_FLOAT_FORMAT): Ditto.
9021         (pdp11_f_format, pdp11_d_format): Add external declarations.
9022         (MAX_REGS_PER_ADDRESS): Corrected.
9023         (LEGITIMATE_CONSTANT_P): Use legitimate_const_double_p().
9024         (PRINT_OPERAND): Output float literals in target format.
9025
9026 2004-02-03  Mark Mitchell  <mark@codesourcery.com>
9027
9028         PR c++/13975
9029         * tree.h (enum tree_index): Add TI_PUBLIC, TI_PROTECTED, and
9030         TI_PRIVATE.
9031         (access_public_node): Redefine.
9032         (access_protected_node): Likewise.
9033         (access_private_node): Likewise.
9034         * tree.c (build_common_tree_nodes): Create access_public_node,
9035         access_protected_node, and access_private_node.
9036
9037 2004-02-03  Steve Ellcey  <sje@cup.hp.com>
9038
9039         * config/ia64/ia64.h (MASK_INLINE_INT_DIV_LAT): Change value.
9040         (MASK_INLINE_INT_DIV_THR): Ditto.
9041         (MASK_INLINE_SQRT_LAT): Ditto.
9042         (MASK_INLINE_SQRT_THR): Ditto.
9043         (MASK_DWARF2_ASM): Ditto.
9044         (MASK_EARLY_STOP_BITS): Ditto.
9045
9046 2004-02-02  Paul Brook  <paul@codesourcery.com>
9047
9048         Merge from csl-arm-branch.
9049
9050         2004-01-30  Paul Brook  <paul@codesourcery.com>
9051
9052         * aof.h (REGISTER_NAMES): Add vfp reg names
9053         (ADDITIONAL_REGISTER_NAMES): Ditto.
9054         * aout.h (REGISTER_NAMES): Ditto.
9055         (ADDITIONAL_REGISTER_NAMES): Ditto.
9056         * arm-protos.h: Update/Add Prototypes.
9057         * arm.c (init_fp_table): Rename from init_fpa_table. Update users.
9058         Only allow 0.0 for VFP.
9059         (fp_consts_inited): Rename from fpa_consts_inited.  Update users.
9060         (values_fp): Rename from values_fpa.  Update Users.
9061         (arm_const_double_rtx): Rename from const_double_rtx_ok_for_fpa.
9062         Update users.  Only check valid constants for this hardware.
9063         (arm_float_rhs_operand): Rename from fpa_rhs_operand.  Update Users.
9064         Only allow consts for FPA.
9065         (arm_float_add_operand): Rename from fpa_add_operand.  Update users.
9066         Only allow consts for FPA.
9067         (use_return_insn): Check for saved VFP regs.
9068         (arm_legitimate_address_p): Handle VFP DFmode addressing.
9069         (arm_legitimize_address): Ditto.
9070         (arm_general_register_operand): New function.
9071         (vfp_mem_operand): New function.
9072         (vfp_compare_operand): New function.
9073         (vfp_secondary_reload_class): New function.
9074         (arm_float_compare_operand): New function.
9075         (vfp_print_multi): New function.
9076         (vfp_output_fstmx): New function.
9077         (vfp_emit_fstm): New function.
9078         (arm_output_epilogue): Output VPF reg restore code.
9079         (arm_expand_prologue): Output VFP reg save code.
9080         (arm_print_operand): Add 'P'.
9081         (arm_hard_regno_mode_ok): Return modes for VFP regs.
9082         (arm_regno_class): Return classes for VFP regs.
9083         (arm_compute_initial_elimination_offset): Include space for VFP regs.
9084         (arm_get_frame_size): Ditto.
9085         * arm.h (FIXED_REGISTERS): Add VFP regs.
9086         (CALL_USED_REGISTERS): Ditto.
9087         (CONDITIONAL_REGISTER_USAGE): Enable VFP regs.
9088         (FIRST_VFP_REGNUM): Define.
9089         (LAST_VFP_REGNUM): Define.
9090         (IS_VFP_REGNUM): Define.
9091         (FIRST_PSEUDO_REGISTER): Include VFP regs.
9092         (HARD_REGNO_NREGS): Handle VFP regs.
9093         (REG_ALLOC_ORDER): Add VFP regs.
9094         (enum reg_class): Add VFP_REGS.
9095         (REG_CLASS_NAMES): Ditto.
9096         (REG_CLASS_CONTENTS): Ditto.
9097         (CANNOT_CHANGE_MODE_CLASS) Handle VFP Regs.
9098         (REG_CLASS_FROM_LETTER): Add 'w'.
9099         (EXTRA_CONSTRAINT_ARM): Add 'U'.
9100         (EXTRA_MEMORY_CONSTRAINT): Define.
9101         (SECONDARY_OUTPUT_RELOAD_CLASS): Handle VFP regs.
9102         (SECONDARY_INPUT_RELOAD_CLASS): Ditto.
9103         (REGISTER_MOVE_COST): Ditto.
9104         (PREDICATE_CODES): Add arm_general_register_operand,
9105         arm_float_compare_operand and vfp_compare_operand.
9106         * arm.md (various): Rename as above.
9107         (divsf3): Enable when TARGET_VFP.
9108         (divdf3): Ditto.
9109         (movdfcc): Ditto.
9110         (sqrtsf2): Ditto.
9111         (sqrtdf2): Ditto.
9112         (arm_movdi): Disable when TARGET_VFP.
9113         (arm_movsi_insn): Ditto.
9114         (movsi): Only split with general regs.
9115         (cmpsf): Use arm_float_compare_operand.
9116         (push_fp_multi): Restrict to TARGET_FPA.
9117         (vfp.md): Include.
9118         * vfp.md: New file.
9119         * fpa.md (various): Rename as above.
9120         * doc/md.texi: Document ARM w and U constraints.
9121
9122         2004-01-15  Paul Brook  <paul@codesourcery.com>
9123
9124         * config.gcc: Add with_fpu.  Allow with-float=softfp.
9125         * config/arm/arm.c (arm_override_options): Rename *-s to *s.
9126         Break out of loop when we find a float-abi.  Fix typo.
9127         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "fpu".
9128         Set -mfloat-abi=.
9129         * doc/install.texi: Document --with-fpu.
9130
9131         2003-01-14  Paul Brook  <paul@codesourcery.com>
9132
9133         * config.gcc (with_arch): Add armv6.
9134         * config/arm/arm.h: Rename TARGET_CPU_*_s to TARGET_CPU_*s.
9135         * config/arm/arm.c (arm_overrride_options): Ditto.
9136
9137         2004-01-08  Richard Earnshaw  <rearnsha@arm.com>
9138
9139         * arm.c (FL_ARCH3M): Renamed from FL_FAST_MULT.
9140         (FL_ARCH6): Renamed from FL_ARCH6J.
9141         (arm_arch3m): Renamed from arm_fast_multiply.
9142         (arm_arch6): Renamed from arm_arch6j.
9143         * arm.h: Update all uses of above.
9144         * arm-cores.def: Likewise.
9145         * arm.md: Likewise.
9146
9147         * arm.h (CPP_CPU_ARCH_SPEC): Emit __ARM_ARCH_6J__ define for armV6j,
9148         not arm6j.  Add entry for arch armv6.
9149
9150         2004-01-07  Richard Earnshaw  <rearnsha@arm.com>
9151
9152         * arm.c (arm_emit_extendsi): Delete.
9153         * arm-protos.h (arm_emit_extendsi): Delete.
9154         * arm.md (zero_extendhisi2): Also handle zero-extension of
9155         non-subregs.
9156         (zero_extendqisi2, extendhisi2, extendqisi2): Likewise.
9157         (thumb_zero_extendhisi2): Only match if not v6.
9158         (arm_zero_extendhisi2, thumb_zero_extendqisi2, arm_zero_extendqisi2)
9159         (thumb_extendhisi2, arm_extendhisi2, arm_extendqisi)
9160         (thumb_extendqisi2): Likewise.
9161         (thumb_zero_extendhisi2_v6, arm_zero_extendhisi2_v6): New patterns.
9162         (thumb_zero_extendqisi2_v6, arm_zero_extendqisi2_v6): New patterns.
9163         (thumb_extendhisi2_insn_v6, arm_extendhisi2_v6): New patterns.
9164         (thumb_extendqisi2_v6, arm_extendqisi_v6): New patterns.
9165         (arm_zero_extendhisi2_reg, arm_zero_extendqisi2_reg): Delete.
9166         (arm_extendhisi2_reg, arm_extendqisi2_reg): Delete.
9167         (arm_zero_extendhisi2addsi): Remove subreg.  Add attributes.
9168         (arm_zero_extendqisi2addsi, arm_extendhisi2addsi): Likewise.
9169         (arm_extendqisi2addsi): Likewise.
9170
9171         2003-12-31  Mark Mitchell  <mark@codesourcery.com>
9172
9173         Revert this change:
9174         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
9175         + REG addressing modes.
9176
9177         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
9178         + REG addressing modes.
9179
9180         2003-12-30  Mark Mitchell  <mark@codesourcery.com>
9181
9182         * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept
9183         CONSTANT_P_RTX.
9184
9185         2003-30-12  Paul Brook  <paul@codesourcery.com>
9186
9187         * longlong.h: protect arm inlines with !defined (__thumb__)
9188
9189         2003-30-12  Paul Brook  <paul@codesourcery.com>
9190
9191         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Always define __arm__.
9192
9193         2003-12-30  Nathan Sidwell  <nathan@codesourcery.com>
9194
9195         * builtins.c (expand_builtin_apply_args_1): Fix typo in previous
9196         change.
9197
9198         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
9199
9200         * builtins.c (expand_builtin_apply_args_1): Add pretend args size
9201         to the virtual incoming args pointer for downward stacks.
9202
9203         2003-12-29  Paul Brook  <paul@codesourcery.com>
9204
9205         * config/arm/arm-cores.def: Add cost function.
9206         * config/arm/arm.c (arm_*_rtx_costs): New functions.
9207         (arm_rtx_costs): Remove
9208         (struct processors): Add rtx_costs field.
9209         (all_cores, all_architectures): Ditto.
9210         (arm_override_options): Set targetm.rtx_costs.
9211         (thumb_rtx_costs): New function.
9212         (arm_rtx_costs_1): Remove cases handled elsewhere.
9213         * config/arm/arm.h (processor_type): Add COSTS parameter.
9214
9215         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
9216
9217         * config/arm/arm.md (generic_sched): arm926 has its own scheduler.
9218         (arm926ejs.md): Include it.
9219         * config/arm/arm926ejs.md: New pipeline description.
9220
9221         2003-12-24  Paul Brook  <paul@codesourcery.com>
9222
9223         * config/arm/arm.c (arm_arch6j): New variable.
9224         (arm_override_options): Set it.
9225         (arm_emit_extendsi): New function.
9226         * config/arm/arm-protos.h (arm_emit_extendsi): Add prototype.
9227         * config/arm/arm.h (arm_arch6j): Declare.
9228         * config/arm/arm.md: Add sign/zero extend insns.
9229
9230         2003-12-23  Paul Brook  <paul@codesourcery.com>
9231
9232         * config/arm/arm.c (all_architectures): Add armv6.
9233         * doc/invoke.texi: Document it.
9234
9235         2003-12-19  Paul Brook  <paul@codesourcery.com>
9236
9237         * config/arm/arm.md: Add load1 and load_byte "type" attrs.  Modify
9238         insn patterns to match.
9239         * config/arm/arm-generic.md: Ditto.
9240         * config/arm/cirrus.md: Ditto.
9241         * config/arm/fpa.md: Ditto.
9242         * config/amm/iwmmxt.md: Ditto.
9243         * config/arm/arm1026ejs.md: Ditto.
9244         * config/arm/arm1135jfs.md: Ditto.  Add insn_reservation and bypasses
9245         for 11_loadb.
9246
9247         2003-12-18  Nathan Sidwell  <nathan@codesourcery.com>
9248
9249         * config/arm/arm-protos.h (arm_no_early_alu_shift_value_dep): Declare.
9250         * config/arm/arm.c (arm_adjust_cost): Check shift cost for
9251         TYPE_ALU_SHIFT and TYPE_ALU_SHIFT_REG.
9252         (arm_no_early_store_addr_dep, arm_no_early_alu_shift_dep,
9253         arm_no_early_mul_dep): Correctly deal with conditional execution,
9254         parallels and single shift operations.
9255         (arm_no_early_alu_shift_value_dep): Define.
9256         * arm.md (attr type): Replace 'normal' with 'alu',
9257         'alu_shift' and 'alu_shift_reg'.
9258         (attr core_cycles): Adjust.
9259         (*addsi3_carryin_shift, andsi_not_shiftsi_si, *arm_shiftsi3,
9260         *shiftsi3_compare0, *notsi_shiftsi, *notsi_shiftsi_compare0,
9261         *not_shiftsi_compare0_scratch, *cmpsi_shiftsi, *cmpsi_shiftsi_swp,
9262         *cmpsi_neg_shiftsi, *arith_shiftsi, *arith_shiftsi_compare0,
9263         *arith_shiftsi_compare0_scratch, *sub_shiftsi,
9264         *sub_shiftsi_compare0, *sub_shiftsi_compare0_scratch,
9265         *if_shift_move, *if_move_shift, *if_shift_shift): Set type
9266         attribute appropriately.
9267         * config/arm/arm1026ejs.md (alu_op): Adjust.
9268         (alu_shift_op, alu_shift_reg_op): New.
9269         * config/arm/arm1136.md: Add better bypasses for early
9270         registers. Remove load[234] and store[234] bypasses.
9271         (11_alu_op): Adjust.
9272         (11_alu_shift_op, 11_alu_shift_reg_op): New.
9273
9274         2003-12-15  Nathan Sidwell  <nathan@codesourcery.com>
9275
9276         * config/arm/arm-protos.h (arm_no_early_store_addr_dep,
9277         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Declare.
9278         * config/arm/arm.c (arm_no_early_store_addr_dep,
9279         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Define.
9280         * config/arm/arm1026ejs.md: Add load-store bypass.
9281         * config/arm/arm1136jfs.md (11_alu_op): Take 2 cycles.
9282         Add bypasses between instructions.
9283
9284         2003-12-10  Paul Brook  <paul@codesourcery.com>
9285
9286         * config/arm/arm.c (arm_fpu_model): New variable.
9287         (arm_fload_abi): New variable.
9288         (target_fpe_name): Rename from target_fp_name.
9289         (target_fpu_name): New variable.
9290         (arm_is_cirrus): Remove.
9291         (fpu_desc): New struct.
9292         (all_fpus): Define.
9293         (pf_model_for_fpu): Define.
9294         (all_loat_abis): Define.
9295         (arm_override_options): Set fp arch flags based on -mfpu=
9296         and -float-abi=.
9297         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
9298         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
9299         (*): Use new TARGET_* flags.
9300         * config/arm/arm.h (TARGET_ANY_HARD_FLOAT): Remove.
9301         (TARGET_HARD_FLOAT): No longer implies TARGET_FPA.
9302         (TARGET_SOFT_FLOAT): Ditto.
9303         (TARGET_SOFT_FLOAT_ABI): New.
9304         (TARGET_MAVERICK): Rename from TARGET_CIRRUS.  No longer implies
9305         TARGET_HARD_FLOAT.
9306         (TARGET_VFP): No longer implies TARGET_HARD_FLOAT.
9307         (TARGET_OPTIONS): Add -mfpu=.
9308         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
9309         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
9310         (arm_pf_model): Define.
9311         (arm_float_abi_type): Define.
9312         (fputype): Add FPUTYPE_VFP.  Change SOFT_FPA->NONE
9313         * config/arm/arm.md: Use new TARGET_* flags.
9314         * config/arm/cirrus.md: Ditto.
9315         * config/arm/fpa.md: Ditto.
9316         * config/arm/elf.h (ASM_SPEC): Pass -mfloat-abi= and -mfpu=.
9317         * config/arm/semi.h (ASM_SPEC): Ditto.
9318         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Specify vfp.
9319         (FPUTYPE_DEFAULT): Set to VFP.
9320         * doc/invoke.texi: Document -mfpu= and -mfloat-abi=.
9321
9322         2003-11-22  Phil Edwards  <phil@codesourcery.com>
9323
9324         PR target/12476
9325         * config/arm/arm.c (arm_output_mi_thunk):  In Thumb mode, use
9326         'bx' instead of 'b' to avoid branch range restrictions.  Output
9327         the thunk immediately before the thunked-to function.
9328         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME):  Do not emit
9329         .thumb_func if a thunk is being generated.  Emit .code 16 along
9330         with .thumb_func if a thunk is not being generated.
9331
9332         2003-11-15  Nicolas Pitre <nico@cam.org>
9333
9334         * config/arm/arm.md (ashldi3, arm_ashldi3_1bit, ashrdi3,
9335         arm_ashrdi3_1bit, lshrdi3, arm_lshrdi3_1bit): New patterns.
9336         * config/arm/iwmmxt.md (ashrdi3_iwmmxt): Renamed from ashrdi3.
9337         (lshrdi3_iwmmxt): Renamed from lshrdi3.
9338         * config/arm/arm.c (IWMMXT_BUILTIN2): Renamed argument accordingly.
9339
9340         2003-11-12  Steve Woodford  <scw@wasabisystems.com>
9341             Ian Lance Taylor  <ian@wasabisystems.com>
9342
9343         * config/arm/lib1funcs.asm (ARM_DIV_BODY, ARM_MOD_BODY): Add new
9344         code for __ARM_ARCH__ >= 5 && ! defined (__OPTIMIZE_SIZE__).
9345
9346         2003-11-05  Phil Edwards  <phil@codesourcery.com>
9347
9348         * config/arm/arm.md (insn):  Add new V6 instruction names.
9349         (generic_sched):  New attr.
9350         * config/arm/arm-generic.md:  Use generic_sched here.
9351         * config/arm/arm1026ejs.md:  Do not model fetch/issue/decode
9352         stages of pipeline.  Adjust latency counts accordingly.
9353         * config/arm/arm1136jfs.md:  New file.
9354
9355         2003-10-28  Mark Mitchell  <mark@codesourcery.com>
9356
9357         * config/arm/arm.h (processor_type): New enumeration type.
9358         (CPP_ARCH_DEFAULT_SPEC): Set appropriately for ARM 926EJ-S,
9359         ARM1026EJ-S, ARM1136J-S, and ARM1136JF-S processor cores.
9360         (CPP_CPU_ARCH_SPEC): Likewise.
9361         * config/arm/arm.c (arm_tune): New variable.
9362         (all_cores): Use cores.def.
9363         (all_architectures): Add representative processor.
9364         (arm_override_options): Restructure way in which tuning
9365         information is deduced.
9366         * arm.md: Update "insn" and "type" attributes throughout.
9367         (insn): New attribute.
9368         (type): Compute "mult" from "insn" attribute.  Add load2,
9369         load3, load4 alternatives.
9370         (arm automaton): Move to arm-generic.md.
9371         * config/arm/arm-cores.def: New file.
9372         * config/arm/arm-generic.md: Likewise.
9373         * config/arm/arm1026ejs.md: Likewise.
9374
9375 2004-02-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
9376
9377         * doc/invoke.texi (SPARC options): Remove -mflat and
9378         all -mxxx (xxx:chip) options.
9379         * config/sparc/aout.h (DBX_REGISTER_NUMBER): Delete.
9380         * config/sparc/litecoff.h (DBX_REGISTER_NUMBER): Likewise.
9381         * config/sparc/netbsd-elf.h (DBX_REGISTER_NUMBER): Likewise.
9382         * config/sparc/sol2.h (DBX_REGISTER_NUMBER): Likewise.
9383         * config/sparc/sparc-protos.h: Delete sparc_flat_* prototypes.
9384         * config/sparc/sparc.c: Likewise.
9385         (sparc_output_function_prologue): Remove TARGET_FLAT handling.
9386         (sparc_nonflat_function_prologue): Rename into sparc_function_prologue.
9387         (sparc_output_function_epilogue): Remove TARGET_FLAT handling.
9388         (sparc_nonflat_function_epilogue): Rename into sparc_function_epilogue.
9389         (struct sparc_frame_info, current_frame_info, zero_frame_info): Delete.
9390         (sparc_flat_must_save_register_p): Likewise.
9391         (sparc_flat_compute_frame_size): Likewise.
9392         (sparc_flat_save_restore): Likewise.
9393         (sparc_flat_function_prologue): Likewise.
9394         (sparc_flat_function_epilogue): Likewise.
9395         (sparc_flat_epilogue_delay_slots): Likewise.
9396         (sparc_flat_eligible_for_epilogue_delay): Likewise.
9397         (sparc_function_ok_for_sibcall): Remove TARGET_FLAT handling.
9398         * config/sparc/sparc.h (MASK_FLAT, TARGET_FLAT): Delete.
9399         (TARGET_SWITCHES): Remove -mflat and all -mxxx (xxx:chip) options.
9400         (SPARC_INCOMING_INT_ARG_FIRST): Remove TARGET_FLAT handling.
9401         (CONDITIONAL_REGISTER_USAGE): Likewise.
9402         (FRAME_POINTER_REQUIRED): Likewise.
9403         (INITIAL_ELIMINATION_OFFSET): Likewise.
9404         (BASE_RETURN_VALUE_REG): Likewise.
9405         (BASE_OUTGOING_VALUE_REG): Likewise.
9406         (BASE_PASSING_ARG_REG): Likewise.
9407         (BASE_INCOMING_ARG_REG): Likewise.
9408         (INCOMING_REGNO): Likewise.
9409         (OUTGOING_REGNO): Likewise.
9410         (LOCAL_REGNO): Likewise.
9411         (DELAY_SLOTS_FOR_EPILOGUE): Likewise.
9412         (ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise.
9413         (EPILOGUE_USES): Likewise.
9414         * config/sparc/sparc.md ("isa" attribute): Change "v6" into "v7".
9415         ("flat" attribute): Delete.
9416         (do_builtin_setjmp_setup): Remove TARGET_FLAT and "flat" attribute
9417         handling.
9418         (call followed by jump define_peephole's): Delete.
9419         (exception_receiver): Likewise.
9420         (builtin_setjmp_receiver): Likewise.
9421         * config/sparc/t-sparclite (MULTILIB_OPTIONS): Remove -mflat.
9422
9423 2004-02-03  Paolo Bonzini  <bonzini@gnu.org>
9424
9425         PR c/11658
9426         PR c/13994
9427         * Makefile.in (c-parse.o, c-convert.o, c-typeck.o): Depend
9428         on langhooks.h.
9429         * objc/Make-lang.in (objc-parse.o): Depend on langhooks.h.
9430         * c-parse.in, c-convert.c, c-typeck.c, objc/objc-act.c:
9431         Include langhooks.h.  Replace c_common_truthvalue_conversion
9432         with the truthvalue_conversion language hook throughout.
9433         (expr_no_commas): Call default_conversion before save_expr
9434         for the first term of the production 'x ? : y'.
9435         * c-common.c (c_common_truthvalue_conversion): Remove
9436         obsolete block.  Invoke recursively the hook instead
9437         of this function.
9438         * c-convert.c (convert): handle ERROR_MARK_NODE.
9439         * c-typeck.c (build_binary_op): handle ERROR_MARK_NODE
9440         returned by the truthvalue_conversion language hook.
9441         * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
9442         c_objc_common_truthvalue_conversion.
9443         * c-objc-common.c (c_objc_common_truthvalue_conversion):
9444         New function.
9445         * c-tree.h (c_objc_common_truthvalue_conversion): Declare it.
9446         * objc/objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
9447         c_objc_common_truthvalue_conversion.
9448
9449 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
9450
9451         * config/c4x/c4x.h (FUNCTION_VALUE): Use gen_rtx_REG instead
9452         of gen_rtx.
9453         (LIBCALL_VALUE): Likewise.
9454         * config/ip2k/ip2k.c (mdr_try_propagate_clr_sequence): Use
9455         gen_rtx_CC0 instead of gen_rtx.
9456         * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use
9457         gen_rtx_fmt_e and gen_rtx_fmt_ee instead of gen_rtx.
9458         (m68hc11_expand_compare): Use gen_rtx_fmt_ee instead of
9459         gen_rtx.
9460         (m68hc11_emit_logical): Likewise.
9461
9462 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
9463
9464         * config/alpha/alpha.c, config/arm/arm.c, config/c4x/c4x.c,
9465         config/fr30/fr30.md, config/frv/frv.c, config/frv/frv.md,
9466         config/h8300/h8300.c, config/ia64/ia64.c, config/ip2k/ip2k.md,
9467         config/m32r/m32r.md, config/m68hc11/m68hc11.c,
9468         config/mips/mips.md, config/mmix/mmix.c,
9469         config/mn10300/mn10300.c, config/mn10300/mn10300.md,
9470         config/ns32k/ns32k.c, config/pa/pa.md, config/pdp11/pdp11.c,
9471         config/rs6000/altivec.md, config/s390/s390.c,
9472         config/s390/s390.h, config/s390/s390.md, config/sh/sh.c,
9473         config/sh/sh.h, config/sh/sh.md, config/stormy16/stormy16.c:
9474         Use const0_rtx instead of GEN_INT (0).  Do the same for other
9475         constants that are readily available.
9476
9477 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
9478
9479         * doloop.c, optabs.c, regmove.c, sched-deps.c,
9480         config/i386/i386.c, config/i386/i386.md: Use const0_rtx
9481         instead of GEN_INT (0).  Do the same for other constants that
9482         are readily available.
9483
9484 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
9485
9486         * combine.c (simplify_set): Use gen_rtx_fmt_e instead of
9487         gen_rtx.
9488         * emit-rtl.c (init_emit_once): Use gen_rtx_PC and gen_rtx_CC0
9489         instead of gen_rtx.
9490         * reload1.c (init_elim_table): Use gen_rtx_fmt_e instead of
9491         gen_rtx.
9492         * config/ns32k/ns32k.md (udivmodhi4): Use gen_rtx_IOR and
9493         gen_rtx_ASHIFT instead of gen_rtx.
9494         (udivmodqi4): Likewise.
9495
9496 2004-02-02  Richard Henderson  <rth@redhat.com>
9497
9498         PR target/13789
9499         * expr.c (store_expr): Use force_operand before emit_move_insn.
9500
9501 2004-02-02  Jeff Law  <law@redhat.com>
9502             Roger Sayle  <roger@eyesopen.com>
9503
9504         * tree.c (commutative_tree_code, associative_tree_code): New
9505         functions.
9506         (iterative_hash_expr): Use commutative_tree_code.
9507         * tree.h (commutative_tree_code, associative_tree_code): Declare.
9508         * fold-const.c (operand_equal_p): Use commutative_tree_code
9509         rather than inlining the commutativity check.
9510         (fold): Likewise.
9511
9512 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
9513
9514         * system.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Poison.
9515         * config/frv/frv-protos.h: Remove the prototype for
9516         frv_function_arg_keep_as_reference.
9517         * config/frv/frv.c (frv_function_arg_keep_as_reference):
9518         Remove.
9519         * config/frv/frv.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Likewise.
9520         * config/stormy16/stormy16.h: Remove the commented-out
9521         definition of FUNCTION_ARG_KEEP_AS_REFERENCE.
9522
9523 2004-02-03  Alan Modra  <amodra@bigpond.net.au>
9524
9525         PR target/13914
9526         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Use ap
9527         for retaddr_column.
9528
9529 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
9530
9531         * genemit.c (gen_exp): Generate gen_rtx_fmt_e* instead of
9532         gen_rtx.
9533
9534 2004-02-02  Eric Christopher  <echristo@redhat.com>
9535             Zack Weinberg  <zack@codesourcery.com>
9536
9537         * c-opts.c (c_common_handle_option): Add -finput-charset.
9538         * c.opt: Ditto.
9539         * cppcharset.c (one_iso88591_to_utf8): Remove.
9540         (convert_iso88591_utf8): Ditto.
9541         (conversion_tab): Remove 8859-1 converter.
9542         (_cpp_input_to_utf8): Remove.
9543         (_cpp_init_iconv_buffer): Ditto.
9544         (_cpp_close_iconv_buffer): Ditto.
9545         (_cpp_convert_input): New function.
9546         (_cpp_default_encoding): Ditto.
9547         * cpphash.h: Add/remove prototypes for above.
9548         * cppfiles.c (read_file_guts): Use _cpp_convert_input.
9549         * cppinit.c (cpp_create_reader): Use _cpp_default_encoding
9550         for narrow execution and input character sets.
9551         * cpplib.c (cpp_push_buffer): Delete uses of removed functions.
9552         * doc/cppopts.texi: Document -finput-charset.
9553
9554 2004-02-02  David Edelsohn  <edelsohn@gnu.org>
9555
9556         * rtlanal.c (refers_to_regno_p): Test regno, not inner_regno,
9557         against FIRST_PSEUDO_REGISTER.
9558
9559 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
9560
9561         * doc/invoke.texi (SPARC options): Further improve.
9562
9563 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
9564
9565         * config/arm/arm.md, config/c4x/c4x.md, config/cris/cris.md,
9566         config/h8300/h8300.c, config/ip2k/ip2k.md,
9567         config/iq2000/iq2000.c, config/mips/mips.c,
9568         config/rs6000/rs6000.c, config/rs6000/rs6000.md,
9569         config/sh/sh.c, config/sh/sh.md, config/stormy16/stormy16.c,
9570         config/v850/v850.md: Fix indentation.
9571
9572 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
9573
9574         * config/sparc/sparc.c (function_arg_slotno): Align TImode
9575         arguments on a 16-byte boundary in the parameter array if ARCH64.
9576         Split handling of TFmode.
9577
9578 2004-02-02  Paolo Bonzini  <bonzini@gnu.org>
9579
9580         * rtlanal.c (reg_overlap_mentioned_p) [!ENABLE_CHECKING]:
9581         Don't test CONSTANT_P (x).
9582         (reg_overlap_mentioned_p): Merge check for STRICT_LOWPART,
9583         ZERO_EXTRACT, SIGN_EXTRACT with the switch statement.
9584         Fix misindentation.
9585
9586 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
9587
9588         * doc/invoke.texi (SPARC options): Document that -mflat is deprecated.
9589
9590 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
9591
9592         * config/arc/arc.md, config/arm/arm.c, config/arm/arm.md,
9593         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.md,
9594         config/frv/frv.c, config/h8300/h8300.c, config/ip2k/ip2k.md,
9595         config/iq2000/iq2000.c, config/m32r/m32r.c,
9596         config/mcore/mcore.c, config/mips/mips.c, config/mmix/mmix.md,
9597         config/mn10300/mn10300.c, config/rs6000/rs6000.c,
9598         config/rs6000/rs6000.md, config/sh/sh.c, config/sh/sh.md,
9599         config/stormy16/stormy16.c, config/v850/v850.md,
9600         config/xtensa/xtensa.c: Replace gen_rtx with gen_rtx_fmt_e*.
9601
9602 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
9603
9604         * config/mcore/mcore.c (block_move_sequence): Replace
9605         gen_rtx_CONST_INT with GEN_INT.
9606
9607 2004-02-02  Jan Hubicka  <jh@suse.cz>
9608
9609         * alias.c (record_set): Use hard_regno_nregs.
9610         * bt-load.c (find_btr_reference, note_btr_set): Likewise.
9611         * builtins.c (apply_args_size): Likewise.
9612         * caller-save.c (setup_save_areas, save_call_clobbered_regs,
9613         mark_set_regs, add_stored_regs, mark_referenced_regs,
9614         insert_restore, insert_save, insert_one_insn): Likewise.
9615         * cfgcleanup.c: Include regs.h
9616         (mark_effect, mentions_nonequal_regs): Likewise.
9617         * cfgrtl.c (mark_killed_regs): Likewise
9618         * combine.c (update_table_tick, record_value_for_reg,
9619         record_dead_and_set_regs, get_last_value_validate, use_crosses_set_p,
9620         reg_dead_at_p_1, reg_dead_at_p, mark_used_regs_combine, move_deaths,
9621         reg_bitfield_target_p, distribute_notes): Likewise.
9622         * cse.c (mention_regs, insert, invalidate, invalidate_for_call,
9623         exp_equiv_p, cse_insn): Likewise.
9624         * cselib.c (cselib_lookup): Likewise.
9625         (cselib_invalidate_regno, cselib_record_set): Likewise.
9626         * df.c (df_ref_record): Likewise.
9627         * dwarf2out.c (reg_loc_descriptor, multiple_reg_loc_descriptor):
9628         Likewise.
9629         * flow.c (mark_reg, insn_dead_p, mark_set_1, mark_used_reg,
9630         count_or_remove_death_notes_bb): Likewise.
9631         * function.c (aggregate_value_p, keep_stack_depressed): Likewise.
9632         * gloval.c (global_alloc, find_reg, mark_reg_store, mark_reg_conflicts,
9633         mark_reg_death, set_preference, reg_becomes_live, reg_dies): Likewise.
9634         * integrate.c (mark_stores): Likewise.
9635         * jump.c (delete_prior_computation): Likewise.
9636         * lcm.c (reg_dies, reg_becomes_live): Likewise.
9637         * local-alloc.c (combine_regs, find_free_reg, post_mark_life): Likewise.
9638         * loop.c (LOOP_REGNO_NREGS): Likewise.
9639         * postreload.c (reload_combine, reload_combine_note_store,
9640         reload_combine_note_use, reload_cse_move2add, move2add_note_store): Likewise.
9641         * ra-colorize.c (combine, color_usable_p, get_free_reg,
9642         calculate_dont_begin, calculate_dont_begin, colorize_one_web,
9643         try_recolor_web, insert_coalesced_conflicts, check_colors,
9644         break_precolored_alias): Likewise.
9645         * ra-debug.c: Include regs.h
9646         (ra_print_rtx_object): Likewise.
9647         * ra-rewrite (choose_spill_colors): Likewise.
9648         (spill_same_color_p, update_spill_colors, spill_is_free): Likewise.
9649         * ra.c (init_ra): Likewise.
9650         * recog.c (reg_fits_class_p, peep2_reg_dead_p,
9651         peep2_find_free_register): Likewise.
9652         * reg-stack.c (subst_stack_regs_pat, convert_regs_exit): Likewise.
9653         * regclass.c (hard_regno_nregs): New array.
9654         (init_reg_modes_once): Initialize it.
9655         (choose_hard_reg_mode): Use it.
9656         (record_reg_classes): Likewise.
9657         * regmove.c (mark_flags_life_zones): Likewise.
9658         * regrename.c (note_sets, clear_dead_regs, regrename_optimize,
9659         scan_rtx_reg, dump_def_use_chain, kill_value, set_value_regno,
9660         copy_value, maybe_mode_change, find_oldest_value_reg,
9661         copyprop_hardreg_forward_1):
9662         * regs.h (hard_regno_nregs): Declare.
9663         * realod.c (reload_inner_reg_of_subreg): Use it.
9664         (push_reload, combine_reloads, find_dummy_reload,
9665         hard_reg_set_here_p, operands_match_p, decompose, find_reloads,
9666         refers_to_regno_for_reload_p, find_equiv_reg, regno_clobbered_p,
9667         reload_adjust_reg_for_mode): Likewise.
9668         * reload1.c (compute_use_by_pseudos, count_pseudo,
9669         count_spilled_pseudo, find_reg, find_reload_regs, mark_home_live,
9670         spill_hard_reg, forget_old_reloads_1, mark_reload_reg_in_use,
9671         clear_reload_reg_in_use, reload_reg_free_for_value_p, free_for_value_p
9672         allocate_reload_reg, choose_reload_regs, emit_reload_insns,
9673         delete_output_reload): Likewise.
9674         * resource.c (update_live_status, mark_referenced_resources,
9675         mark_set_resources, mark_target_live_regs): Likewise.
9676         * rtlanal.c:  Include regs.h
9677         (refers_to_regno_p, reg_overlap_mentioned_p, dead_or_set_p,
9678         dead_or_set_regno_p, find_regno_note, find_reg_fusage,
9679         subreg_regno_offset, subreg_offset_representable_p,
9680         hoist_test_store): Likewise.
9681         * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
9682         * sched-rgn.c (check_live_1, update_live_1): Likewise.
9683         * stmt.c: Include regs.h
9684         (decl_conflicts_with_clobbers_p): Likewise.
9685         * varasm.c (make_decl_rtl): Likewise.
9686         * Makefile.in (cfgcleanup.o, rtlanal.o, ra-debug.o): Add regs.h dependnecy.
9687
9688 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
9689
9690         * config/arm/arm.c, config/arm/arm.h, config/arm/arm.md,
9691         config/arm/linux-gas.h, config/arm/netbsd-elf.h,
9692         config/arm/netbsd.h, config/arm/pe.c, config/avr/avr.c,
9693         config/avr/avr.h, config/avr/avr.md, config/c4x/c4x.h,
9694         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
9695         config/frv/frv.h, config/ip2k/ip2k.c, config/iq2000/iq2000.c,
9696         config/iq2000/iq2000.h, config/m32r/m32r.c,
9697         config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
9698         config/m68hc11/m68hc11.md, config/m68k/m68k.md,
9699         config/mcore/mcore.c, config/mcore/mcore.h,
9700         config/mcore/mcore.md, config/mips/mips.c,
9701         config/ns32k/ns32k.h, config/ns32k/ns32k.md,
9702         config/rs6000/rs6000.c, config/s390/s390.c,
9703         config/s390/s390.md, config/sparc/sparc.c, config/v850/v850.c,
9704         config/xtensa/xtensa.h, config/xtensa/xtensa.md: Replace
9705         "gen_rtx (FOO, " with "gen_rtx_FOO (".
9706
9707 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
9708
9709         * config/h8300/h8300.md (two peephole2's): New.
9710
9711 2004-02-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
9712
9713         * config/sparc/sol2-bi.h: Handle TARGET_CPU_ultrasparc3.
9714         (CPP_CPU_SPEC): Handle -mcpu=ultrasparc3.
9715         (ASM_CPU_SPEC): Likewise
9716         * config/sparc/sol2.h: Handle TARGET_CPU_ultrasparc3.
9717         (ASM_CPU_SPEC): Remove -mcpu=v8plus.  Handle -mcpu=ultrasparc3.
9718
9719 2004-02-01  Roger Sayle  <roger@eyesopen.com>
9720
9721         * builtins.c (expand_builtin_pow): If flag_unsafe_math_optimizations
9722         isn't set, don't call expand_builtin_mathfn_2 to use the pow optab.
9723         (expand_builtin): Always call expand_builtin_pow.
9724
9725 2004-02-01  Roger Sayle  <roger@eyesopen.com>
9726
9727         * builtins.def (BUILT_IN_SIGNBIT, BUILT_IN_SIGNBITF,
9728         BUILT_IN_SIGNBITL): New GCC builtins.
9729         * builtins.c (expand_builtin_signbit): New function to RTL expand
9730         calls to signbit, signbitf and signbitl as inline intrinsics.
9731         (expand_builtin): Call expand_builtin_signbit for BUILT_IN_SIGNBIT*.
9732         (fold_builtin_signbit): New function to perform constant folding
9733         of signbit, signbitf and signbitl.
9734         (fold_builtin): Call fold_builtin_signbit for BUILT_IN_SIGNBIT*.
9735
9736         * doc/extend.texi: Document new signbit{,f,l} builtins.
9737
9738 2004-02-01  Richard Sandiford  <rsandifo@redhat.com>
9739
9740         * config/mips/mips.md (adddi3_internal_2): Remove superfluous %s.
9741
9742 2004-02-01  Chris Demetriou  <cgd@broadcom.com>
9743
9744         * config/mips/mips.h (PREDICATE_CODES): Remove entries for
9745         "mips_const_double_ok" and "simple_memory_operand", which were
9746         removed from the MIPS port with the mips-3_4-rewrite branch merge.
9747         * config/mips/mips.c (mips16_lay_out_constants): Update comment
9748         for removal of simple_memory_operand.
9749
9750 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
9751
9752         * config/c4x/c4x.md: Use GEN_INT instead of
9753         gen_rtx (CONST_INT, ...).
9754
9755 2004-01-31  Richard Henderson  <rth@redhat.com>
9756
9757         * varasm.c (output_constant_pool): Don't zap the pool.
9758
9759 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
9760
9761         * genrecog.c (decision_type): Add DT_const_int.
9762         (write_cond) [DT_const_int]: Print a comparison against small
9763         constant.
9764         (write_node): Simplify comparisons against small constants
9765         before printing tests.
9766
9767 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
9768
9769         * config/m32r/m32r.c (m32r_load_pic_register): Use GEN_INT
9770         instead of gen_rtx_CONST_INT.
9771
9772 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
9773
9774         * config/xtensa/xtensa.h (DYNAMIC_CHAIN_ADDRESS): Use GEN_INT
9775         instead of gen_rtx_CONST_INT.
9776
9777 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
9778
9779         * target-def.h (TARGET_STRICT_ARGUMENT_NAMING): Define as
9780         hook_bool_CUMULATIVE_ARGS_false.
9781         * targhooks.c (default_strict_argument_naming): Rename to
9782         hook_bool_CUMULATIVE_ARGS_false.
9783         * targhooks.h: Update the prototype for
9784         default_strict_argument_naming.
9785
9786 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
9787
9788         * config/sh/sh.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
9789         * config/sh/sh.h: Likewise.
9790         * config/sh/sh.md: Likewise.
9791
9792 2004-01-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
9793
9794         * doc/invoke.texi (SPARC options): Restructure and update.
9795
9796 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
9797
9798         * system.h (PROMOTE_FUNCTION_ARGS, STRUCT_VALUE_INCOMING, and
9799         STRICT_ARGUMENT_NAMING): Poison.
9800         * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS): Define as
9801         hook_bool_tree_false.
9802         * targhooks.c (default_promote_function_args): Remove.
9803         (default_struct_value_rtx): Don't use STRUCT_VALUE_INCOMING.
9804         Don't check incoming.
9805         (default_strict_argument_naming): Don't use
9806         STRICT_ARGUMENT_NAMING.
9807         * targhooks.h: Remove the prototype for
9808         default_promote_function_args.
9809
9810 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
9811
9812         * config/i386/i386-protos.h: Remove the prototype for
9813         ix86_setup_incoming_varargs.
9814         * config/i386/i386.c (TARGET_SETUP_INCOMING_VARARGS): New.
9815         (ix86_setup_incoming_varargs): Make it static.
9816         * config/i386/i386.h (SETUP_INCOMING_VARARGS): Remove.
9817
9818 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
9819
9820         * alloc-pool.c: Fix comment typos.
9821         * builtin-types.def: Likewise.
9822         * builtins.def: Likewise.
9823         * c-pretty-print.c: Likewise.
9824         * df.h: Likewise.
9825         * reload1.c: Likewise.
9826
9827 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
9828
9829         * doc/invoke.texi: Follow spelling conventions.
9830         * doc/tm.texi: Likewise.
9831
9832 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
9833
9834         * doc/install.texi: Fix typos.
9835         * doc/invoke.texi: Likewise.
9836
9837 2004-01-31  Ulrich Weigand  <uweigand@de.ibm.com>
9838
9839         * config/s390/s390.c (s390_decompose_address): Do not treat virtual
9840         registers as pointers.
9841         * config/s390/s390.md ("*la_31" second peephole2): Fix incorrect mode.
9842
9843 2004-01-31  Paolo Bonzini  <bonzini@gnu.org>
9844
9845         * combine.c (cse_main): Set gen_lowpart to gen_lowpart_for_combine
9846         and restore it to gen_lowpart_general on exit.
9847         (gen_lowpart_for_combine): Adjust all callers to go through
9848         gen_lowpart.
9849         * cse.c (cse_main): Set gen_lowpart to gen_lowpart_if_possible
9850         and restore it to gen_lowpart_general on exit.
9851         (gen_lowpart_if_possible): Adjust all callers to go through
9852         gen_lowpart.
9853         * emit-rtl.c (gen_lowpart_general): New name of gen_lowpart.
9854         (gen_lowpart): Declare as pointer to function, initialized to
9855         gen_lowpart_general.
9856         * rtl.h (gen_lowpart): Declare as pointer to function.
9857
9858 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
9859
9860         * bt-load.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
9861         * calls.c: Likewise.
9862         * emit-rtl.c: Likewise.
9863         * function.c: Likewise.
9864         * reload1.c: Likewise.
9865         * config/i386/cygming.h: Likewise.
9866         * config/i386/i386.c: Likewise.
9867         * config/i386/winnt.c: Likewise.
9868
9869 2004-01-30  Dara Hazeghi  <dhazeghi@yahoo.com>
9870
9871         PR bootstrap/9249
9872         * doc/install.texi: document --enable-__cxa_atexit option.
9873         * configure.ac: Disable __cxa_atexit if not supported.
9874         * configure: Regenerate.
9875
9876 2003-01-30  Daniel Berlin  <dberlin@dberlin.org>
9877
9878         * ggc-zone.c (ggc_free): New function.
9879
9880 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
9881
9882         alloc-pool.c, c-lex.c, c-pragma.h, c-semantics.c, cfghooks.c,
9883         cfghooks.h, cfglayout.c, cfgloopmanip.c, debug.c, debug.h,
9884         flow.c, genextract.c, ggc-common.c, ggc-page.c, ggc.h,
9885         ifcvt.c, jump.c, loop-unswitch.c, timevar.c, timevar.def,
9886         tree-optimize.c, vmsdbgout.c, config/fp-bit.c,
9887         config/alpha/alpha.c, config/alpha/alpha.h,
9888         config/alpha/alpha.md, config/alpha/unicosmk.h,
9889         config/alpha/vms.h, config/arm/linux-elf.h, config/avr/avr.c,
9890         config/c4x/c4x-protos.h, config/c4x/c4x.md,
9891         config/d30v/d30v.h, config/frv/frv.md, config/frv/frvbegin.c,
9892         config/frv/frvend.c, config/i386/cygming.h,
9893         config/i386/djgpp.h, config/i386/emmintrin.h,
9894         config/i386/gthr-win32.c, config/i386/i386-interix.h,
9895         config/i386/i386-protos.h, config/i386/openbsd.h,
9896         config/i386/winnt.c, config/i386/xm-mingw32.h,
9897         config/i386/xmmintrin.h, config/ia64/ia64.md,
9898         config/iq2000/iq2000.md, config/m32r/m32r.md,
9899         config/m68k/m68k.md, config/mcore/mcore-elf.h,
9900         config/mcore/mcore.md, config/mips/elf.h, config/mips/elf64.h,
9901         config/mips/iris5gas.h, config/mips/iris6.h,
9902         config/mips/iris6gas.h, config/mips/linux.h,
9903         config/mips/mips.md, config/mips/netbsd.h,
9904         config/mips/openbsd.h, config/mips/windiss.h,
9905         config/pa/fptr.c, config/rs6000/aix.h,
9906         config/rs6000/altivec.h, config/rs6000/darwin.h,
9907         config/rs6000/xcoff.h, config/s390/s390-protos.h,
9908         config/s390/s390.c, config/s390/s390.h, config/s390/s390.md,
9909         config/sh/netbsd-elf.h, config/sh/sh.h, config/sh/vxworks.h,
9910         config/sparc/sol2.h: Update copyright.
9911
9912 2004-01-30  Kelley Cook  <kcook@gcc.gnu.org>
9913
9914         * Makefile.in (abs_docdir, abs_srcdir): Define.
9915         (doc/%.dvi, doc/gccinstall.dvi): Use $(abs_docdir).
9916
9917 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
9918
9919         * genconfig.c (main): Have CC0_P check its operand even on a
9920         target without cc0.
9921
9922 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
9923
9924         * config/alpha/alpha.c: Remove mentions of deprecates macros
9925         in comments, remove some target-independent comments about target
9926         macros, and/or add minimal function comments for target hook
9927         implementations.
9928         * config/avr/avr.c: Likewise.
9929         * config/ia64/ia64.h: Likewise.
9930         * config/ip2k/ip2k.c: Likewise.
9931         * config/iq2000/iq2000.c: Likewise.
9932         * config/m32r/m32r.h: Likewise.
9933         * config/m68hc11/m68hc11.c: Likewise.
9934         * config/mcore/mcore.c: Likewise.
9935         * config/mmix/mmix.c: Likewise.
9936         * config/mn10300/mn10300.c: Likewise.
9937         * config/pa/pa.c: Likewise.
9938         * config/pdp11/pdp11.c: Likewise.
9939         * config/rs6000/rs6000.h: Likewise.
9940         * config/sh/sh.c: Likewise.
9941         * config/sh/sh.h: Likewise.
9942         * config/sparc/sparc.c: Likewise.
9943         * config/sparc/sparc.h: Likewise.
9944         * config/stormy16/stormy16.c: Likewise.
9945         * config/xtensa/xtensa.c: Likewise.
9946
9947 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
9948
9949         PR optimization/12147
9950         * reload1.c (reload_reg_free_p): RELOAD_OTHER conflicts with
9951         RELOAD_FOR_OPADDR_ADDR.
9952         (reload_reg_reaches_end_p): RELOAD_FOR_OTHER_ADDRESS register
9953         might be reused as RELOAD_FOR_OPADDR_ADDR register.
9954
9955 2004-01-30  Jan Hubicka  <jh@suse.cz>
9956
9957         * reload.c (get_secondary_mem): Fix updating of
9958         secondary_memlocs_elim_used.
9959
9960 2004-01-30  Richard Henderson  <rth@redhat.com>
9961
9962         * varasm.c (struct rtx_const, struct pool_constant): Remove.
9963         (MAX_RTX_HASH_TABLE): Remove.
9964         (const_rtx_hash_table, const_rtx_sym_hash_table): Remove.
9965         (first_pool, last_pool, pool_offset): Remove.
9966         (struct rtx_constant_pool): Split out from ...
9967         (struct varasm_status): ... here.  Reference one via pointer.
9968         (struct constant_descriptor_rtx): Merge struct pool_constant.
9969         (SYMHASH): Remove.
9970         (decode_rtx_const): Remove.
9971         (const_hash_rtx, compare_constant_rtx): Remove.
9972         (record_constant_rtx): Remove.
9973         (const_desc_rtx_hash, const_desc_rtx_eq): New.
9974         (const_desc_rtx_sym_hash, const_desc_rtx_sym_eq): New.
9975         (const_rtx_hash_1, const_rtx_hash): New.
9976         (init_varasm_status): Allocate a rtx_constant_pool, and its hashes.
9977         (simplify_subtraction): Use simplify_rtx.
9978         (force_const_mem): Rewrite to use new data structures.
9979         (find_pool_constant): Likewise.
9980         (get_pool_constant, get_pool_constant_mark,
9981         get_pool_constant_for_function, get_pool_mode,
9982         get_pool_mode_for_function, get_pool_offset, get_pool_size): Likewise.
9983         (output_constant_pool_2): Split out from output_constant_pool.
9984         (output_constant_pool_1): Likewise.  Use new pool datastructures.
9985         (output_constant_pool): Zap entire pool datastructure.
9986         (mark_constant): Use new pool datastructures.
9987         (mark_constants): Use for_each_rtx.
9988         (mark_constant_pool): Use new pool datastructures.
9989
9990 2004-01-30  Fariborz Jahanian <fjahanian@apple.com>
9991
9992         * config/rs6000/rs6000.c (rs6000_emit_move): Remove #if 0.
9993         Copy operands[1] to pseudo for simplify_gen_subreg.
9994
9995 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
9996
9997         * gcse.c (bypass_block): Fix a typo in the previous check-in
9998         to the file.
9999
10000 2004-01-30  Andrew Pinski <pinskia@physics.uc.edu>
10001
10002         * toplev.c: Include alloc-pool.h.
10003         * Makefile.in (toplev.c): Update dependencies.
10004
10005 2004-01-30  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10006
10007         * combine.c (simplify_shift_const, case XOR): Be careful when
10008         commuting XOR with ASHIFTRT.
10009
10010 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
10011             Eric Botcazou  <ebotcazou@libertysurf.fr>
10012
10013         * config/sparc/sparc-protos.h: Remove the prototype for
10014         sparc_builtin_saveregs.
10015         * config/sparc/sparc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
10016         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
10017         (TARGET_PROMOTE_PROTOTYPES): Likewise.
10018         (TARGET_STRUCT_VALUE_RTX): Likewise.
10019         (TARGET_RETURN_IN_MEMORY): Likewise.
10020         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
10021         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
10022         (sparc_builtin_saveregs): Make it static.
10023         (sparc_promote_prototypes): New.
10024         (sparc_struct_value_rtx): Likewise.
10025         (sparc_return_in_memory): Likewise.
10026         * config/sparc/sparc.h: (PROMOTE_FUNCTION_ARGS): Remove.
10027         (PROMOTE_FUNCTION_RETURN): Likewise.
10028         (RETURN_IN_MEMORY): Likewise.
10029         (STRUCT_VALUE): Likewise.
10030         (STRUCT_VALUE_INCOMING): Likewise.
10031         (EXPAND_BUILTIN_SAVEREGS): Likewise.
10032         (STRICT_ARGUMENT_NAMING): Likewise.
10033         (PROMOTE_PROTOTYPES): Likewise.
10034
10035         * config/sparc/sparc.h (PROMOTE_MODE): Use word_mode.
10036
10037 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
10038
10039         PR c/12818
10040         * varasm.c (const_hash_1) <STRING_CST>: Use the
10041         address to compute the hash value if flag_writable_strings.
10042         (compare_constant) <STRING_CST>: Compare the addresses
10043         if flag_writable_strings.
10044         (build_constant_desc): Do not copy the expression for a
10045         STRING_CST if flag_writable_strings.
10046
10047 2004-01-30  Jan Hubicka  <jh@suse.cz>
10048
10049         * alloc-pool.c: Include hashtab.h
10050         (alloc_pool_descriptor): New structure
10051         (alloc_pool_hash): New global variable.
10052         (hash_descriptor, eq_descriptor, alloc_pool_descriptor): New.
10053         (create_alloc_pool): Update statistics.
10054         (free_alloc_pool): Likewise.
10055         (pool_alloc): Likewise.
10056         (output_info): New structure
10057         (print_statistics, dump_alloc_pool_statistics): New function.
10058         * alloc-pool.h (alloc_pool_def): Turn name to be constant.
10059         (dump_alloc_pool_statistics): Declare.
10060         * toplev.c (finalize):  Dump statistics.
10061
10062         * reload.c (secondary_memlocs_elim_used): New static variable.
10063         (get_secondary_mem): Update it.
10064         (find_reloads): Use it.
10065
10066 2004-01-30  Steven Bosscher <s.bosscher@student.tudelft.nl>
10067
10068         * toplev.c: Fix broken checkin of 2003-12-30, again.
10069
10070 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
10071
10072         * configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for
10073         s390*-*-* targets by specifying a 'nop' insn.
10074         * configure: Regenerate.
10075
10076 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
10077
10078         PR target/11475
10079         * config/sparc/sparc.md (movhi_lo_sum): Tighten predicates.
10080
10081 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
10082
10083         * emit-rtl.c (change_address): Use XEXP (memref, 0) instead
10084         of addr when creating MEM copy.
10085
10086 2004-01-29  Devang Patel  <dpatel@apple.com>
10087
10088         * dwarf2out.c (gen_field_die): Do not equate decl number to die.
10089
10090 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
10091
10092         PR inline-asm/6162
10093         * reload.c (find_reloads): Only support one pair of commutative
10094         operands.
10095
10096 2004-01-29  Roger Sayle  <roger@eyesopen.com>
10097
10098         PR java/13824
10099         * tree.c (unsafe_for_reeval): Handle EXIT_BLOCK_EXPR nodes specially
10100         as their EXIT_BLOCK_LABELED_BLOCK operands can lead to unbounded
10101         recursion.
10102
10103 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
10104
10105         * config/frv/frv.c: Don't mention deprecated macros in
10106         comments.  Remove some target-independent comments about
10107         target macros.
10108         * config/frv/frv.h: Likewise.
10109
10110 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10111
10112         * cfghooks.c (split_block): Set probability and count of the
10113         new edge.
10114
10115 2005-01-29  Josef Zlomek  <zlomekj@suse.cz>
10116
10117         * dwarf2out.c (struct die_struct): Added field decl_id.
10118         (decl_die_table): Changed to hash table.
10119         (decl_die_table_allocated): Deleted.
10120         (decl_die_table_in_use): Deleted.
10121         (DECL_DIE_TABLE_INCREMENT): Deleted.
10122         (decl_die_table_hash): New function.
10123         (decl_die_table_eq): New function.
10124         (lookup_decl_die): Lookup in a hash table.
10125         (equate_decl_number_to_die): Insert into a hash table.
10126         (dwarf2out_init): Init hash table decl_die_table.
10127
10128 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
10129
10130         PR optimization/13424
10131         * expr.c (store_constructor): Revert 2003-12-03 change.
10132
10133         * emit-rtl.c (change_address): Check also if MEM_ATTRS is set as
10134         expected before returning early.  Avoid sharing RTL if they
10135         need to be changed.
10136
10137         * config/i386/i386.c (ix86_expand_movstr): Rework rep_mov and strmov
10138         handling so that memory attributes are preserved.  Don't call
10139         ix86_set_move_mem_attrs.
10140         (ix86_set_move_mem_attrs_1, ix86_set_move_mem_attrs): Removed.
10141         (ix86_expand_clrstr): Rename src argument to
10142         dst.  Rework rep_stos and strset handling so that memory attributes
10143         are preserved.
10144         (ix86_expand_strlen): Pass src argument to
10145         ix86_expand_strlensi_unroll_1.  Rework strlenqi_1 handling so that
10146         memory attributes are preserved.
10147         (ix86_expand_strlensi_unroll_1): Add src argument.  Use
10148         change_address instead of gen_rtx_MEM.
10149         * config/i386/i386.md (strmov, strmov_singleop, rep_mov): New
10150         expanders.
10151         (strmovdi_rex64, strmovsi, strmovsi_rex64, strmovhi, strmovhi_rex64,
10152         strmovqi, strmovqi_rex64): Remove.
10153         (rep_mov*, strmov*): Prefix insn names with *.
10154         (strset, strset_singleop, rep_stos): New expanders.
10155         (strsetdi_rex64, strsetsi, strsetsi_rex64, strsethi, strsethi_rex64,
10156         strsetqi, strsetqi_rex64): Remove.
10157         (rep_stos*, strset*): Prefix insn names with *.
10158         (rep_stosqi_rex64): Likewise.  Fix mode of dirflag reg from DImode
10159         to SImode.
10160         (cmpstrsi): Rework cmpstrqi_1 handling so that memory attributes
10161         are preserved.
10162         (cmpstrqi_nz_1, cmpstrqi_nz_rex_1, cmpstrqi_1, cmpstrqi_rex_1):
10163         Prefix insn names with *.
10164         (cmpstrqi_nz_1, cmpstrqi_1): New expanders.
10165         (strlenqi_1, strlenqi_rex_1): Prefix insn names with *.
10166         (strlenqi_1): New expander.
10167         * config/i386/i386.h (ix86_set_move_mem_attrs): Remove prototype.
10168
10169 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10170
10171         * Makefile.in (cfghooks.o): Add TIMEVAR_H and toplev.h dependency.
10172         * basic-block.h (tidy_fallthru_edge, tidy_fallthru_edges, dump_bb,
10173         verify_flow_info): Declaration removed.
10174         * cfg.c (verify_flow_info, dump_bb): Moved to cfghooks.c.
10175         (debug_bb, debug_bb_n): Add argument to dump_bb call.
10176         * cfgcleanup.c (try_simplify_condjump, try_crossjump_to_edge,
10177         try_optimize_cfg, delete_unreachable_blocks): Use delete_basic_block
10178         instead of delete_block.
10179         * cfghooks.c: Include timevar.h and toplev.h.
10180         (cfg_hooks): Define here.
10181         (verify_flow_info, dump_bb): Moved from cfg.c.
10182         (redirect_edge_and_branch, redirect_edge_and_branch_force,
10183         split_block, split_block_after_labels, move_block_after,
10184         delete_basic_block, split_edge, create_basic_block,
10185         create_empty_bb, can_merge_blocks_p, merge_blocks,
10186         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
10187         New functions.
10188         * cfghooks.h (struct cfg_hooks): Added fields name,
10189         make_forwarder_block, tidy_fallthru_edge and
10190         move_block_after. Changed type of verify_flow_info, dump_bb,
10191         split_block fields. Renamed cfgh_split_edge and delete_block
10192         fields.
10193         (redirect_edge_and_branch, redirect_edge_and_branch_force,
10194         split_block, delete_block, split_edge, create_basic_block,
10195         can_merge_blocks_p, merge_blocks): Macros removed.
10196         (cfg_hooks): Do not export.
10197         (verify_flow_info, dump_bb, redirect_edge_and_branch,
10198         redirect_edge_and_branch_force, split_block, split_block_after_labels,
10199         move_block_after, delete_basic_block, split_edge, create_basic_block,
10200         create_empty_bb, can_merge_blocks_p, merge_blocks,
10201         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
10202         Declare.
10203         (cfg_layout_rtl_cfg_hooks): Declare.
10204         * cfgloop.c (update_latch_info, mfb_keep_just, mfb_keep_nonlatch):
10205         New functions.
10206         (canonicalize_loop_headers): Use new semantics of make_forwarder_block.
10207         (redirect_edge_with_latch_update): Removed.
10208         (make_forwarder_block): Moved to cfghooks.c, semantics changed.
10209         * cfgloopmanip.c (remove_bbs): Do not update dominators here.
10210         * cfgrtl.c (cfg_layout_split_block, rtl_split_block, rtl_dump_bb,
10211         rtl_delete_block, rtl_split_block, rtl_merge_blocks,
10212         tidy_fallthru_edge, rtl_split_edge, cfg_layout_delete_block,
10213         cfg_layout_merge_blocks, cfg_layout_split_edge): Partly moved to
10214         cfghooks.c.
10215         (rtl_create_basic_block): Coding style fix.
10216         (rtl_tidy_fallthru_edge, rtl_move_block_after,
10217         rtl_make_forwarder_block): New functions.
10218         (update_cfg_after_block_merging): Removed.
10219         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hooks): Fill in new entries.
10220         * flow.c (verify_wide_reg, verify_local_live_at_start): Add argument
10221         to dump_bb.
10222         * ifcvt.c (merge_if_block, find_cond_trap, find_if_case_1,
10223         find_if_case_2): Don't update dominators.
10224         * timevar.def (TV_CFG_VERIFY): New.
10225         * loop-unswitch.c (unswitch_loop): Don't call add_to_dominance_info.
10226         * cfglayout.c (copy_bbs): Don't call add_to_dominance_info.
10227         * cfgloopmanip.c (split_loop_bb): Don't update dominators.
10228         (remove_bbs): Don't call remove_bbs.
10229         (create_preheader): Use make_forwarder_block.
10230         (mfb_keep_just, mfb_update_loops): New static functions.
10231
10232 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
10233
10234         * config/avr/avr.h: Remove target-independent comments about
10235         target macros.
10236
10237 2004-01-28  Daniel Berlin  <dberlin@dberlin.org>
10238
10239         * timevar.c (timevar_print): Mention when checking is enabled.
10240
10241 2004-01-28  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
10242
10243         * c-lex.c (c_lex): Rename to...
10244         (c_lex_with_flags): Add new parameter to get CPP flags.
10245         (c_lex): Thunk to c_lex_with_flags while keeping the old interface.
10246         * c-pragma.h (c_lex_with_flags): Declare.
10247
10248 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
10249
10250         * config/mcore/mcore.c (mcore_external_libcall): Add a
10251         comment.
10252         (mcore_return_in_memory): Likewise.
10253
10254 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
10255
10256         * config/mcore/mcore-protos.h: Remove the prototype for
10257         mcore_setup_incoming_varargs.
10258         * config/mcore/mcore.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
10259         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
10260         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
10261         (TARGET_PROMOTE_PROTOTYPES): Likewise.
10262         (TARGET_STRUCT_VALUE_RTX): Likewise.
10263         (TARGET_RETURN_IN_MEMORY): Likewise.
10264         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
10265         (mcore_setup_incoming_varargs): Make it static.  Receive the
10266         first argument by reference.  Add argument second_time.
10267         (mcore_external_libcall): New.
10268         (mcore_return_in_memory): Likewise.
10269         * config/mcore/mcore.h (PROMOTE_FUNCTION_ARGS): New.
10270         (PROMOTE_FUNCTION_RETURN): Likewise.
10271         (STRUCT_VALUE): Likewise.
10272         (RETURN_IN_MEMORY): Likewise.
10273         (SETUP_INCOMING_VARARGS): Likewise.
10274         (PROMOTE_PROTOTYPES): Likewise.
10275         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
10276
10277 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
10278
10279         * config/m32r/m32r-protos.h: Remove the prototype for
10280         m32r_setup_incoming_varargs.
10281         * config/m32r/m32r.c (TARGET_PROMOTE_PROTOTYPES): New.
10282         (TARGET_STRUCT_VALUE_RTX): Likewise.
10283         (TARGET_RETURN_IN_MEMORY): Likewise.
10284         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
10285         (m32r_return_in_memory): New.
10286         (m32r_setup_incoming_varargs): Make it static.
10287         * config/m32r/m32r.h: Remove #undef of
10288         ASM_OUTPUT_EXTERNAL_LIBCALL.  Remove the commented-out
10289         definitions of PROMOTE_FUNCTION_ARGS and
10290         PROMOTE_FUNCTION_RETURN.
10291         (PROMOTE_PROTOTYPES): Remove.
10292         (RETURN_IN_MEMORY): Likewise.
10293         (STRUCT_VALUE): Likewise.
10294
10295 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
10296
10297         * config/m68k/m68k.c (TARGET_PROMOTE_PROTOTYPES): New.
10298         (TARGET_STRUCT_VALUE_RTX): Likewise.
10299         (m68k_struct_value_rtx): Likewise.
10300         * config/m68k/m68k.h (STRUCT_VALUE_REGNUM): Rename to
10301         STRUCT_VALUE_REGNUM.
10302         (PROMOTE_PROTOTYPES): Remove.
10303         * config/m68k/m68kelf.h (STRUCT_VALUE_REGNUM): Rename to
10304         STRUCT_VALUE_REGNUM.
10305         * config/m68k/m68kv4.h (STRUCT_VALUE_REGNUM): Likewise.
10306         * config/m68k/netbsd-elf.h (STRUCT_VALUE_REGNUM): Likewise.
10307
10308 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
10309
10310         * config/stormy16/stormy16.c
10311         (TARGET_BUILD_BUILTIN_VA_LIST_TYPE): Rename to
10312         TARGET_BUILD_BUILTIN_VA_LIST.
10313
10314 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
10315
10316         * config/v850/v850.c (TARGET_PROMOTE_PROTOTYPES): New.
10317         (TARGET_STRUCT_VALUE_RTX): Likewise.
10318         (TARGET_RETURN_IN_MEMORY): Likewise.
10319         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
10320         (v850_return_in_memory): Likewise.
10321         (v850_setup_incoming_varargs): Likewise.
10322         * config/v850/v850.h (PROMOTE_PROTOTYPES): Remove.
10323         (SETUP_INCOMING_VARARGS): Likewise.
10324         (RETURN_IN_MEMORY): Likewise.
10325         (STRUCT_VALUE): Likewise.
10326
10327 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
10328
10329         * config/fr30/fr30.c (TARGET_PROMOTE_PROTOTYPES): New.
10330         (fr30_setup_incoming_varargs): Don't use
10331         STRICT_ARGUMENT_NAMING.
10332         * config/fr30/fr30.h (PROMOTE_PROTOTYPES): Remove.
10333         (STRICT_ARGUMENT_NAMING): Likewise.
10334
10335 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
10336
10337         * config/frv/frv-protos.h: Remove the prototype for
10338         frv_expand_builtin_saveregs.
10339         * config/frv/frv.c (TARGET_STRUCT_VALUE_RTX): Likewise.
10340         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
10341         (frv_stack_info): Use FRV_STRUCT_VALUE_REGNUM instead of
10342         STRUCT_VALUE_REGNUM.
10343         (frv_expand_builtin_saveregs): Make it static.
10344         (frv_struct_value_rtx): New.
10345         * config/frv/frv.h (EXPAND_BUILTIN_SAVEREGS): Remove.
10346
10347 2004-01-29  Jan Hubicka  <jh@suse.cz>
10348
10349         PR c++/12850
10350         * cgraph.c (cgraph_remove_node): Clear out saved/insns/arguments and
10351         initial pointers.
10352         * cgraphunit.c (cgraph_finalize_function): Clear out DECL_SAVED_INSNS
10353         for functions that will be only inlined.
10354         (cgraph_mark_function_to_output): Likewise.
10355         (cgraph_expand_function): Sanity check that DECL_DEFER_OUTPUT is clear;
10356         do not clear function body.
10357         * tree-optimize.c (clear_decl_rtl): Use decl_function_context.
10358         (tree_rest_of_compilation): Reorganize the logic releasing function
10359         body to use callgraph datastructure.
10360
10361 2004-01-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10362
10363         * pa.md: Change predicate of a peephole2 pattern from reg_or_0_operand
10364         to register_operand.
10365
10366 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
10367
10368         * config/ia64/ia64.md (fetchadd_acq_si, fetchadd_acq_di)
10369         (cmpxchg_acq_si, cmpxchg_acq_di): Exchange match_dup and
10370         match_operand expressions so that all match_dups appear
10371         lexically after their corresponding match_operands.
10372
10373 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
10374
10375         * config/h8300/h8300.c (WORD_REG_USED): Use
10376         HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM.
10377         (compute_saved_regs): Likewise.
10378         (h8300_expand_prologue): Likewise.  Allocate locals after
10379         saving registers.
10380         (h8300_expand_epilogue): Use HARD_FRAME_POINTER_REGNUM instead
10381         of FRAME_POINTER_REGNUM.  Deallocate locals before saving
10382         registers.
10383         (h8300_initial_elimination_offset): Adjust for the new frame
10384         layout, which swaps flips the order of locals and saved
10385         registers.
10386         * config/h8300/h8300.h (FIRST_PSEUDO_REGISTER): Change to 12.
10387         (HARD_FRAME_POINTER_REGNUM): New.
10388         (ELIMINABLE_REGS): Add an elimination rule from
10389         FRAME_POINTER_REGNUM to HARD_FRAME_POINTER_REGNUM.
10390         (REGISTER_NAMES): Add fp.
10391         * config/h8300/h8300.md (FP_REG): Change to 11.
10392         (HFP_REG): New.
10393
10394 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
10395
10396         * genrecog.c (write_node): Remove a useless local variable.
10397
10398 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
10399
10400         * Makefile.in (options.c options.h): Use stamp file s-options to
10401         avoid unnecessary rebuilds.
10402         (options.o): New target listing dependencies.
10403         (gtyp-gen.h): Use stamp file s-gtyp-gen.
10404         (STAGESTUFF): Add s-gtyp-gen.
10405
10406 2004-01-28  Richard Henderson  <rth@redhat.com>
10407
10408         * ggc.h (ggc_free): Declare.
10409         * ggc-common.c (ggc_realloc): Use it.
10410         * ggc-page.c: Remove lots of inline markers.
10411         (globals): Add free_object_list.
10412         (ggc_alloc): Tidy.
10413         (ggc_free, validate_free_objects): New.
10414         (poison_pages): Provide default.
10415         (ggc_collect): Call validate_free_objects; emit markers to
10416         the debug file.
10417
10418 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
10419             Jim Wilson  <wilson@specifixinc.com>
10420
10421         * config/ia64/ia64.c (ia64_split_tmode, ia64_split_tmode_move):
10422         Rewrite to use POST_INC/POST_DEC/POST_MODIFY instead of a
10423         scratch pointer.
10424         (ia64_secondary_reload_class): Delete case GR_REGS.
10425         * config/ia64/ia64.md (movti, *movti_internal, movtf, *movtf_internal):
10426         Do not allocate a scratch register.
10427         (reload_inti, reload_outti, reload_intf, reload_outtf): Delete.
10428
10429 2004-01-28  Jan Hubicka  <jh@suse.cz>
10430
10431         * gcse.c (bypass_block): Prevent edges to be unified when we are
10432         about to emit compenstation code.
10433
10434 2004-01-28  Nick Clifton  <nickc@redhat.com>
10435
10436         * config/arm/arm.c (arm_expand_builtin): Force second argument of
10437         the setcwx insn into a register.
10438
10439 2004-01-28  Richard Sandiford  <rsandifo@redhat.com>
10440
10441         * config/fp-bit.c (pack_d): When using paired doubles to implement
10442         a long double, round the high part separately.
10443         (unpack_d): Fix the case in which the high part is a power of two
10444         and the low part is a nonzero value of the opposite sign.
10445
10446 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
10447
10448         * config/c4x/c4x.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
10449         (TARGET_STRUCT_VALUE_RTX): Likewise.
10450         (c4x_external_libcall): Likewise.
10451         (c4x_struct_value_rtx): Likewise.
10452         * config/c4x/c4x.h: Remove.
10453         (STRUCT_VALUE_REGNUM): Likewise.
10454         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
10455
10456 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
10457
10458         * config/i386/i386.c (TARGET_PROMOTE_PROTOTYPES): New.
10459         (TARGET_STRUCT_VALUE_RTX): Likewise.
10460         * config/i386/i386.h (STRUCT_VALUE_INCOMING): Remove.
10461         (STRUCT_VALUE): Likewise.
10462         (PROMOTE_PROTOTYPES): Likewise.
10463
10464 2004-01-27  Roger Sayle  <roger@eyesopen.com>
10465
10466         * config/pa/pa.c (emit_move_sequence): Check that operand1 is a
10467         CONST_INT before using INTVAL.
10468
10469 2004-01-27  Ulrich Weigand  <uweigand@de.ibm.com>
10470
10471         * config/s390/s390.h (TARGET_DEFAULT): Default to !TARGET_BACKCHAIN.
10472         * config/s390/s390.c (s390_return_addr_rtx): Fail for all but current
10473         frame if !TARGET_BACKCHAIN.
10474         * config/s390/s390.md ("allocate_stack"): Use pattern only if
10475         TARGET_BACKCHAIN.
10476         * doc/invoke.texi (-mbackchain/-mno-backchain): Document new default.
10477
10478 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
10479
10480         * ia64.c (ia64_function_arg): When placing HFAs in integer
10481         registers, do not special case the mode used for complex
10482         types.  Do not advance int_regs until the current register
10483         is full.
10484
10485 2004-01-27  Richard Sandiford  <rsandifo@redhat.com>
10486
10487         PR target/7297
10488         * except.c (init_eh): Use a 5-word __jbuf for __builtin_setjmp().
10489
10490 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
10491
10492         * config/rs6000/rs6000.c (rs6000_emit_move): #if 0 splitting
10493         slow, unaligned loads and stores while debugging.  Fix formatting.
10494
10495 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
10496
10497         * config/rs6000/rs6000.md (save_stack_nonlocal): Use Pmode instead
10498         of computing wmode.
10499         (restore_stack_nonlocal): Same.
10500
10501 2004-01-27  Devang Patel <dpatel@apple.com>
10502
10503         * Makefile.in (dwarf2out.o): Depend on input.h
10504         * dbxout.c (dbx_debug_hooks): Add new empty hook for
10505         imported_module_or_decl.
10506         (xcoff_debug_hooks): Same.
10507         * sdbout.c (sdb_debug_hooks): Same.
10508         * vmsdbgout.c (vmsdbg_debug_hooks): Same.
10509         * debug.c (do_nothing_debug_hooks): Same.
10510         (debug_nothing_tree_tree): New function.
10511         * debug.h (gcc_debug_hooks): New hook, imported_module_or_decl.
10512         * dwarf2out.c: Include input.h.
10513         (dwarf2_debug_hooks): Add new hook for imported_module_or_decl.
10514         (remove_child_TAG): New function.
10515         (dwarf_tag_name): Handle DW_TAG_imported_module.
10516         (gen_subprogram_die): Equate decl number to declaration die. Do not
10517         remove all children dies while reusing declaration die for definition.
10518         Instead, selectively remove only formal parameters.
10519         (gen_variable_die): Equate variable decl to declaration die.
10520         (gen_field_die): Equate field decl to line number.
10521         (force_namespace_die): Replace it with ...
10522         (force_decl_die): ... this.
10523         (force_type_die): New function.
10524         (setup_namespace_context): Replace use of force_namespace_die() with
10525         force_decl_die().
10526         (gen_namespace_die): Same.
10527         (dwarf2out_imported_module_or_decl): New function.
10528
10529 2004-01-27  Bob Wilson  <bob.wilson@acm.org>
10530
10531         * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Remove SUBREG
10532         on CQImode and CHImode incoming arguments in register a7.
10533         (function_arg): Wrap BLKmode argument in register a7 in a PARALLEL.
10534         * config/xtensa/xtensa.h (BLOCK_REG_PADDING): Define.
10535         * config/xtensa/xtensa.md (movdi, movdf): Only call force_reg or
10536         xtensa_copy_incoming_a7 before reload.
10537
10538 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
10539
10540         * coverage.c (get_coverage_counts): Give a different message
10541         if flag_guess_branch_prob is set.
10542         * predict.c (counts_to_freqs): Return an int.
10543         (estimate_bb_frequencies): If counts_to_freqs returns zero,
10544         calculate estimates.
10545
10546 2004-01-27  Kazu Hirata  <kazu@cs.umass.edu>
10547
10548         * config/iq2000/iq2000-protos.h: Remove the prototype for
10549         iq2000_setup_incoming_varargs.
10550         * config/iq2000/iq2000.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
10551         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
10552         (TARGET_PROMOTE_PROTOTYPES): Likewise.
10553         (TARGET_STRUCT_VALUE_RTX): Likewise.
10554         (TARGET_RETURN_IN_MEMORY): Likewise.
10555         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
10556         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
10557         (iq2000_return_in_memory): Likewise.
10558         (iq2000_setup_incoming_varargs): Make it static.  Receive the
10559         first argument by reference.
10560         * config/iq2000/iq2000.h (PROMOTE_FUNCTION_ARGS): Remove.
10561         (PROMOTE_FUNCTION_RETURN): Likewise.
10562         (PROMOTE_PROTOTYPES): Likewise.
10563         (RETURN_IN_MEMORY): Likewise.
10564         (STRUCT_VALUE): Likewise.
10565         (SETUP_INCOMING_VARARGS): Likewise.
10566         (STRICT_ARGUMENT_NAMING): Likewise.
10567
10568 2004-01-24  James A. Morrison  <ja2morri@uwaterloo.ca>
10569
10570         * fixinc/fixinc.c (test_test): Initialize res.
10571         (start_flexer): Initialize pz_cmd_save.
10572
10573 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
10574
10575         * doc/rtl.texi (Arithmetic): Rewrite entries for PLUS,
10576         SS_PLUS, US_PLUS, LO_SUM, MINUS, SS_MINUS, US_MINUS.
10577
10578 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
10579
10580         PR 7198
10581         * config/ia64/ia64.md (*nmaddsf4, *nmadddf4, *nmadddf4_alts)
10582         (*nmadddf4_trunc, *nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf)
10583         (*nmaddxf4_alts, *nmaddxf4_truncdf_alts):
10584         Rewrite pattern as (minus (op 3) (mult (op 1) (op 2))).
10585         Possibly rename pattern for consistency.
10586         Remove ??? comments suggesting that this be done.
10587         (*nmaddsf4_alts, *nmadddf4_truncsf_alts, *nmaddxf4_truncsf_alts):
10588         New patterns.
10589         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr)
10590         (divsf3_internal_lat, divsf3_internal_thr, sqrtsf2_internal_thr)
10591         (divdf3_internal_lat, divdf3_internal_thr, sqrtdf2_internal_thr)
10592         (divxf3_internal_lat, divxf3_internal_thr, sqrtxf2_internal_thr):
10593         Update to match.
10594
10595 2004-01-27  Ian Lance Taylor  <ian@wasabisystems.com>
10596
10597         * config/arm/arm.c (output_return_instruction): Only restore IP
10598         into SP if frame_pointer_needed.
10599
10600 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
10601
10602         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
10603         for SCmode and DCmode if ARCH32.
10604         (sparc_va_arg): Handle SCmode and DCmode by reference if ARCH32.
10605         * config/sparc/sparc.h (RETURN_IN_MEMORY): Return 0 for TCmode
10606         if ARCH32.
10607         (BASE_RETURN_VALUE_REG): Return 32 for all FP modes except TFmode
10608         if ARCH32.
10609         (BASE_OUTGOING_VALUE_REG): Likewise.
10610
10611 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
10612
10613         PR target/10904
10614         PR target/13058
10615         * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): New.
10616         Forbid mode changes from SImode for lower FP regs if ARCH64.
10617
10618 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
10619
10620         * Makefile.in (bt-load.o): Depend on except.h.
10621         * bt-load.c (except.h): #include.
10622         (compute_defs_uses_and_gen): If insn at end of BB can throw
10623         within this function, consider registers used by it unavailable for
10624         btr migration.
10625         (move_btr_def): If insn at end of BB can throw, insert before rather
10626         than after.
10627
10628         * flags.h (flag_btr_bb_exclusive): Declare.
10629         * toplev.c (flag_btr_bb_exclusive): New variable.
10630         (f_options): Add btr-bb-exclusive.
10631         * bt-load.c (augment_live_range): Restore old behaviour if
10632         flag_btr_bb_exclusive is set.
10633         * common.opt: Add entry for -fbtr-bb-exclusive.
10634         * opts.c (common_handle_options): Same.
10635         * doc/invoke.texi: Document -fbtr-bb-exclusive.
10636
10637         * bt-load.c (btrs_live_at_end): New variable.
10638         (compute_defs_uses_and_gen): Compute its pointed-to array.
10639         (clear_btr_from_live_range, add_btr_to_live_range): Update it.
10640         (augment_live_range): When augmenting with a new dominator,
10641         use only its btrs_live_at_end set, but also add in the full set
10642         of the old dominator.
10643         (btr_def_live_range): Use btrs_live_at_end.
10644         (move_btr_def): Set other_btr_uses_before_def, and move new set
10645         to the end of the basic block, if appropriate.
10646         (migrate_btr_defs): Allocate and free btrs_live_at_end.
10647
10648         * bt-load.c (basic_block_freq): Remove outdated comment.
10649
10650 2004-01-27  Alan Modra  <amodra@bigpond.net.au>
10651
10652         * config/rs6000/rs6000.h: Correct target_flags free bits comment.
10653         (PREDICATE_CODES): Remove duplicate.
10654         * config/rs6000/linux64.h (CPP_SYSV_SPEC): Don't define.
10655         (SUBSUBTARGET_OVERRIDE_OPTIONS): Disallow 32 bit TARGET_PROFILE_KERNEL.
10656         (MASK_PROFILE_KERNEL): Adjust define.
10657
10658 2004-01-27  Jakub Jelinek  <jakub@redhat.com>
10659
10660         * config/i386/i386.c (ix86_constant_alignment): Decrease alignment
10661         of long string literals from 32 bytes to sizeof (void *) when !-Os
10662         and to 1 with -Os.
10663
10664 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
10665
10666         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Accept
10667         constant addresses in the normal mode.
10668
10669 2004-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10670
10671         * system.h (CHAR_BITFIELD): Delete.
10672         (BOOL_BITFIELD): New.
10673         * c-decl.c (c_scope): Use BOOL_BITFIELD.
10674         * gengtype-lex.l: Recognize BOOL_BITFIELD instead of CHAR_BITFIELD.
10675
10676 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
10677
10678         * config/arc/arc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
10679         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
10680         (TARGET_PROMOTE_PROTOTYPES): Likewise.
10681         (TARGET_STRUCT_VALUE_RTX): Likewise.
10682         (TARGET_RETURN_IN_MEMORY): Likewise.
10683         (arc_return_in_memory): Likewise.
10684         * config/arc/arc.h (PROMOTE_FUNCTION_ARGS): Remove.
10685         (PROMOTE_FUNCTION_RETURN): Likewise.
10686         (RETURN_IN_MEMORY): Likewise.
10687         (STRUCT_VALUE): Likewise.
10688
10689 2004-01-26  Richard Henderson  <rth@redhat.com>
10690
10691         * c-parse.in (extension): Use itype.
10692         (SAVE_EXT_FLAGS): Don't allocate a tree.
10693         (RESTORE_EXT_FLAGS): Don't read a tree.
10694
10695 2004-01-26  Jan Hubicka  <jh@suse.cz>
10696
10697         * cselib.c (discard_useless_values):  Clear out value pointer pointing
10698         to datastructure to be recycled.
10699
10700 2004-01-25  Jan Hubicka  <jh@suse.cz>
10701
10702         * genextract.c (main): Do not output the memset when not checking.
10703
10704 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
10705
10706         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Use a
10707         switch statement instead of a chain of if statements.
10708
10709 2004-01-26  Jeff Law  <law@redhat.com>
10710
10711         * doc/contrib.texi: Minor cleanup for Paolo Carlini's entry.  Add
10712         acute accents for Petur Runolfsson's entry.
10713
10714 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
10715
10716         * config/pdp11/pdp11.c (TARGET_STRUCT_VALUE_RTX): New.
10717         (TARGET_RETURN_IN_MEMORY): Likewise.
10718         * config/pdp11/pdp11.h (STRUCT_VALUE): Remove.
10719         (RETURN_IN_MEMORY): Likewise.
10720
10721 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
10722
10723          * config/rs6000/rs6000.c (rs6000_emit_move): split slow
10724          unaligned load/store into smaller loads and stores.
10725
10726 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
10727
10728         * function.c (assign_parms): Do not assign
10729         long long argument to memory in prologue if
10730         is it loaded into register.
10731
10732 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
10733
10734          PR middle-end/13779
10735          * expr.c (emit_group_load): split constant
10736          correctly into register components of PARALLEL insn.
10737
10738 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
10739
10740         * gcc/config/rs6000/rs6000.md (save_stack_nonlocal):
10741         Use adjust_address_nv directly with appropriate mode.
10742         (restore_stack_nonlocal): Ditto.
10743
10744 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
10745
10746         * config/xtensa/xtensa-protos.h: Remove the prototype for
10747         xtensa_builtin_saveregs.
10748         * config/xtensa/xtensa.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
10749         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
10750         (TARGET_PROMOTE_PROTOTYPES): Likewise.
10751         (TARGET_STRUCT_VALUE_RTX): Likewise.
10752         (TARGET_RETURN_IN_MEMORY): Likewise.
10753         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
10754         (xtensa_builtin_saveregs): Make it static.
10755         (xtensa_return_in_memory): New.
10756         * config/xtensa/xtensa.h (PROMOTE_FUNCTION_ARGS: Remove.
10757         (PROMOTE_FUNCTION_RETURN): Likewise.
10758         (PROMOTE_PROTOTYPES): Likewise.
10759         (STRUCT_VALUE): Likewise.
10760         (RETURN_IN_MEMORY): Likewise.
10761         (EXPAND_BUILTIN_SAVEREGS): Likewise.
10762
10763 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
10764
10765         * config/arm/arm.c (TARGET_SETUP_INCOMING_VARARGS): New.
10766         (arm_setup_incoming_varargs): Likewise.
10767         * config/arm/arm.h (SETUP_INCOMING_VARARGS): Remove.
10768
10769 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
10770
10771         * config/cris/cris.c (TARGET_SETUP_INCOMING_VARARGS): New.
10772         (cris_setup_incoming_varargs): Likewise.
10773         * config/cris/cris.h (SETUP_INCOMING_VARARGS): Remove.
10774
10775 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
10776
10777         * config/ns32k/ns32k.c (TARGET_STRUCT_VALUE_RTX): New.
10778         (ns32k_struct_value_rtx): Likewise.
10779         * config/ns32k/ns32k.h (STRUCT_VALUE_REGNUM): Rename to
10780         NS32K_STRUCT_VALUE_REGNUM.
10781
10782 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
10783
10784         * config/arm/arm.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
10785         (TARGET_PROMOTE_PROTOTYPES): Likewise.
10786         (TARGET_STRUCT_VALUE_RTX): Likewise.
10787         (arm_struct_value_rtx): Likewise.
10788         * config/arm/arm.h (PROMOTE_FUNCTION_ARGS): Remove.
10789         (STRUCT_VALUE): Likewise.
10790         (STRUCT_VALUE_REGNUM): Likewise.
10791         (PROMOTE_PROTOTYPES): Likewise.
10792
10793 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
10794
10795         * config/ia64/ia64-protos.h: Remove the prototype for
10796         ia64_setup_incoming_varargs and ia64_return_in_memory.
10797         * config/ia64/ia64.c (TARGET_STRUCT_VALUE_RTX): New.
10798         (TARGET_RETURN_IN_MEMORY): Likewise.
10799         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
10800         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
10801         (ia64_setup_incoming_varargs): Adjust the arguments to meet
10802         the requirement of TARGET_SETUP_INCOMING_VARARGS.
10803         (ia64_return_in_memory): Make it static.  Change the return
10804         type to bool from int.  Add an argument.
10805         (ia64_struct_value_rtx): New.
10806         * config/ia64/ia64.h: Remove commented-out definitions of
10807         PROMOTE_FUNCTION_ARGS, PROMOTE_FUNCTION_RETURN, and
10808         PROMOTE_PROTOTYPES.
10809         (RETURN_IN_MEMORY): Remove.
10810         (STRUCT_VALUE_REGNUM): Likewise.
10811         (STRICT_ARGUMENT_NAMING): Likewise.
10812
10813 2004-01-26  Eric Botcazou  <ebotcazou@libertysurf.fr>
10814
10815         PR target/13666
10816         * config/sparc/sparc.c (function_arg_union_value): New function.
10817         (function_arg): Use it to deal with unions.
10818         (function_value): Likewise.  Define 'regbase' only for ARCH64.
10819         Replace a conditional statement by a simpler one.
10820
10821 2004-01-26  Richard Sandiford  <rsandifo@redhat.com>
10822
10823         * config/mips/mips.c (mips16_optimize_gp): Delete.
10824         (mips_reorg): Don't call it.
10825
10826 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10827
10828         * config/c4x/c4x.md (addqi3_noclobber): Move up pecking order.
10829         (floatunsqihf2): Remove operand 6.
10830         (fixhfqi_set, fix_trunchfqi2, fixuns_trunchfqi2): Group with other
10831         fix patterns.
10832         (ldi_conditional, ldf_conditional): Validate operands.
10833
10834 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10835
10836         * config/c4x/c4x.h (BCT_CHECK_LOOP_ITERATIONS): Remove.
10837         (HAVE_GAS_HIDDEN): Undefine as interim measure.
10838
10839 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10840
10841         * config/c4x/c4x.c (c4x_legitimate_address_p):  Invalidate direct
10842         memory references if TARGET_EXPOSE_LDP nonzero.
10843
10844 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10845
10846         * config/c4x/c4x.c (legitimize_operands): Truncate invalid shift counts.
10847
10848 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10849
10850         * config/c4x/c4x.c (c4x_valid_operands): More aggressively reject
10851         invalid operand combinations.
10852
10853 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10854
10855         * config/c4x/c4x.c (c4x_check_legit_addr): Rename to
10856         c4x_legitimate_address_p.  Fix post_modify check.
10857
10858         * config/c4x/c4x-protos.h (c4x_check_legit_addr): Adjust.
10859         * config/c4x/c4x.h (c4x_check_legit_addr): Adjust.
10860
10861 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
10862
10863         * config/pa/pa-protos.h: Remove the prototype for
10864         hppa_builtin_saveregs.  Add a prototype for
10865         pa_return_in_memory.
10866         * config/pa/pa.c (TARGET_PROMOTE_FUNCTION_RETURN): New.
10867         (TARGET_PROMOTE_PROTOTYPES): Likewise.
10868         (TARGET_STRUCT_VALUE_RTX): Likewise.
10869         (TARGET_RETURN_IN_MEMORY): Likewise.
10870         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
10871         (pa_struct_value_rtx): Likewise.
10872         (pa_return_in_memory): Likewise.
10873         * config/pa/pa.h (STRUCT_VALUE_REGNUM): Rename to
10874         PA_STRUCT_VALUE_REGNUM.
10875         (INIT_CUMULATIVE_ARGS): Use pa_return_in_memory.
10876         (EXPAND_BUILTIN_SAVEREGS): Remove.
10877         (PROMOTE_PROTOTYPES): Likewise.
10878         (PROMOTE_FUNCTION_RETURN): Likewise.
10879
10880 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
10881
10882         * config/vax/vax.c (TARGET_PROMOTE_PROTOTYPES): New.
10883         (TARGET_STRUCT_VALUE_RTX): Likewise.
10884         (vax_struct_value_rtx): Likewise.
10885         * config/vax/vax.h (STRUCT_VALUE_REGNUM): Rename to
10886         VAX_STRUCT_VALUE_REGNUM.
10887         (PROMOTE_PROTOTYPES): Remove.
10888
10889 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10890
10891         * config/c4x/c4x.h (LEGITIMIZE_RELOAD_ADDRESS):  Handle symref.
10892
10893 2003-04-25  Chris Demetriou  <cgd@broadcom.com>
10894
10895         * config/mips/mips.h (ISA_HAS_HILO_INTERLOCKS): MIPS32, MIPS32r2,
10896         and MIPS64 have HI/LO interlocks.  Update comment.
10897
10898 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
10899
10900         * config/stormy16/stormy16-protos.h: Remove the prototype for
10901         xstormy16_setup_incoming_varargs.
10902         * config/stormy16/stormy16.c
10903         (xstormy16_setup_incoming_varargs): Remove.
10904         (xstormy16_return_in_memory): New.
10905         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
10906         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
10907         (TARGET_PROMOTE_PROTOTYPES): Likewise.
10908         (TARGET_STRUCT_VALUE_RTX): Likewise.
10909         (TARGET_RETURN_IN_MEMORY): Likewise.
10910         * config/stormy16/stormy16.h (PROMOTE_FUNCTION_ARGS): Remove.
10911         (PROMOTE_FUNCTION_RETURN): Likewise
10912         (PROMOTE_PROTOTYPES): Likewise
10913         (RETURN_IN_MEMORY): Likewise
10914         (STRUCT_VALUE): Likewise
10915         (SETUP_INCOMING_VARARGS): Likewise
10916
10917 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
10918
10919         * config/mips/mips.c (mips_offset_within_object_p): New function.
10920         (mips_symbolic_constant_p): Use it in the SYMBOL_SMALL_DATA and
10921         SYMBOL_CONSTANT_POOL cases.  Also use it for SYMBOL_GENERAL if the
10922         ABI has 64-bit pointers and the object file only allows 32-bit symbols.
10923
10924 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
10925
10926         * config/sh/sh.h (PROMOTE_FUNCTION_ARGS): Remove.
10927         (PROMOTE_FUNCTION_RETURN): Likewise.
10928
10929 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
10930
10931         * config/mn10300/mn10300-protos.h: Remove the prototype for
10932         mn10300_builtin_saveregs.
10933         * config/mn10300/mn10300.c (TARGET_PROMOTE_PROTOTYPES): New.
10934         (TARGET_STRUCT_VALUE_RTX): Likewise.
10935         (TARGET_RETURN_IN_MEMORY): Likewise.
10936         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
10937         (mn10300_return_in_memory): Likewise.
10938         (mn10300_builtin_saveregs): Make it static.
10939         * config/mn10300/mn10300.h (PROMOTE_PROTOTYPES): Remove.
10940         (RETURN_IN_MEMORY): Likewise.
10941         (STRUCT_VALUE): Likewise.
10942         (EXPAND_BUILTIN_SAVEREGS): Likewise.
10943
10944 2004-01-25  Eric Botcazou  <ebotcazou@act-europe.fr>
10945
10946         PR bootstrap/13853
10947         * cfgcleanup.c (try_optimize_cfg): Explicitly test against 0.
10948
10949 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
10950
10951         * config/h8300/lib1funcs.asm (divnorm, modnorm): Optimize by
10952         using ccr.
10953
10954 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
10955
10956         * config/i860/i860-protos.h: Remove the prototype for
10957         i860_saveregs.
10958         * config/i860/i860.c (i860_saveregs): Make it static.
10959         (i860_struct_value_rtx): New.
10960         (TARGET_STRUCT_VALUE_RTX): Likewise.
10961         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
10962         * config/i860/i860.h (STRUCT_VALUE_REGNUM): Rename to
10963         I860_STRUCT_VALUE_REGNUM.
10964         (EXPAND_BUILTIN_SAVEREGS): Remove.
10965
10966 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
10967
10968         * config/m68hc11/m68hc11.c (TARGET_STRUCT_VALUE_RTX): New.
10969         (TARGET_RETURN_IN_MEMORY): Likewise.
10970         (m68hc11_struct_value_rtx): Likewise.
10971         (m68hc11_return_in_memory): Likewise.
10972         * config/m68hc11/m68hc11.h: Remove a commented-out definition
10973         of PROMOTE_PROTOTYPES.
10974         (RETURN_IN_MEMORY): Remove.
10975         (STRUCT_VALUE_REGNUM): Likewise.
10976
10977 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
10978
10979         * config/mmix/mmix-protos.h: Remove the prototype for
10980         mmix_setup_incoming_varargs.
10981         * config/mmix/mmix.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
10982         (TARGET_STRUCT_VALUE_RTX): Likewise.
10983         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
10984         (mmix_setup_incoming_varargs): Make it static.
10985         (mmix_struct_value_rtx): New.
10986         * config/mmix/mmix.h (PROMOTE_FUNCTION_ARGS): Remove.
10987         Remove a commented-out definition of PROMOTE_FUNCTION_RETURN.
10988         (STRUCT_VALUE_REGNUM): Remove.
10989         (SETUP_INCOMING_VARARGS): Likewise.
10990
10991 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
10992
10993         * config/mips/mips-protos.h: Remove the prototypes for
10994         mips_setup_incoming_varargs and mips_return_in_memory.
10995         * config/mips/mips.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
10996         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
10997         (TARGET_PROMOTE_PROTOTYPES): Likewise.
10998         (TARGET_STRUCT_VALUE_RTX): Likewise.
10999         (TARGET_RETURN_IN_MEMORY): Likewise.
11000         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
11001         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
11002         (mips_setup_incoming_varargs): Match the prototype for
11003         TARGET_SETUP_INCOMING_VARARGS.
11004         (mips_return_in_memory): Make it static.  Add argument fntype.
11005         (mips_strict_argument_naming): New.
11006         * config/mips/mips.h (PROMOTE_PROTOTYPES): Remove.
11007         (PROMOTE_FUNCTION_ARGS): Likewise.
11008         (PROMOTE_FUNCTION_RETURN): Likewise.
11009         (STRUCT_VALUE): Likewise.
11010         (RETURN_IN_MEMORY): Likewise.
11011         (SETUP_INCOMING_VARARGS): Likewise.
11012         (STRICT_ARGUMENT_NAMING): Likewise.
11013
11014 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
11015
11016         * config/ip2k/ip2k.c (TARGET_STRUCT_VALUE_RTX): New.
11017         (TARGET_RETURN_IN_MEMORY): Likewise.
11018         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
11019         (ip2k_return_in_memory): Likewise.
11020         (ip2k_setup_incoming_varargs): Likewise.
11021         * config/ip2k/ip2k.h (RETURN_IN_MEMORY): Remove.
11022         (STRUCT_VALUE): Likewise.
11023         (STRUCT_VALUE_INCOMING): Likewise.
11024         (SETUP_INCOMING_VARARGS): Likewise.
11025
11026 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
11027
11028         * config/avr/avr.c (TARGET_STRUCT_VALUE_RTX): New.
11029         (TARGET_RETURN_IN_MEMORY): Likewise.
11030         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
11031         (avr_return_in_memory): Remove.
11032         * config/avr/avr.h (RETURN_IN_MEMORY): Remove.
11033         (STRUCT_VALUE): Likewise.
11034         (STRUCT_VALUE_INCOMING): Likewise.
11035         (STRICT_ARGUMENT_NAMING): Likewise.
11036
11037 2004-01-25  Jan Hubicka  <jh@suse.cz>
11038
11039         * combine.c (recog_for_combine): Avoid allocating unnecesary RTX.
11040
11041 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
11042
11043         * config/mips/mips-protos.h (mips_reg_mode_ok_for_base_p): Delete.
11044         (mips_regno_mode_ok_for_base_p): Declare.
11045         * config/mips/mips.h (ARG_POINTER_REGNUM): Renumber to 77.
11046         (FRAME_POINTER_REGNUM): Renumber to 78.
11047         (FIRST_PSEUDO_REGISTER): Update comment accordingly.
11048         (BASE_REG_P, GP_REG_OR_PSEUDO_STRICT_P): Delete.
11049         (GP_REG_OR_PSEUDO_NONSTRICT_P): Delete.
11050         (REGNO_MODE_OK_FOR_BASE_P): Use mips_regno_mode_ok_for_base_p.
11051         (REG_MODE_OK_FOR_BASE_P): Likewise.
11052         * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Change
11053         entry for 77 to "$arg" and entry for 78 to "$frame".
11054         (mips_regno_to_class): Map 77 and 78 to ALL_REGS.
11055         (mips_reg_mode_ok_for_base_p): Remove.
11056         (mips_regno_mode_ok_for_base_p): New function, derived from old
11057         BASE_REG_P macro.  Don't enforce the mips16 stack pointer
11058         restrictions unless we're being strict.
11059         (mips_valid_base_register_p): Use mips_regno_mode_ok_for_base_p.
11060
11061 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
11062
11063         * c-common.h: Fix comment typos.
11064         * c-decl.c: Likewise.
11065         * cgraphunit.c: Likewise.
11066         * combine.c: Likewise.
11067         * et-forest.c: Likewise.
11068         * flow.c: Likewise.
11069         * function.c: Likewise.
11070         * ifcvt.c: Likewise.
11071         * integrate.c: Likewise.
11072         * jump.c: Likewise.
11073         * postreload.c: Likewise.
11074         * varray.c: Likewise.
11075
11076 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
11077
11078         * doc/frontends.texi: Update copyright.
11079         * doc/gcov.texi: Likewise.
11080         * doc/gty.texi: Likewise.
11081         * doc/sourcebuild.texi: Likewise.
11082         * doc/standards.texi: Likewise.
11083
11084 2004-01-24  Herman A.J. ten Brugge  <hermantenbrugge@home.nl>
11085
11086         PR target/12978
11087         * c4x.md: (movstrqi*) Use match_scratch instead of match_dup.
11088         Remove movstrqi_small because it conflicts with movstrqi_large.
11089
11090 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
11091
11092         * config/cris/cris.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
11093         (TARGET_STRUCT_VALUE_RTX): Likewise.
11094         (cris_struct_value_rtx): Likewise.
11095         * config/cris/cris.h (PROMOTE_FUNCTION_ARGS): Remove.
11096         (CRIS_STACKADJ_REG): Use CRIS_STRUCT_VALUE_REGNUM instead of
11097         STRUCT_VALUE_REGNUM.
11098         (STRUCT_VALUE_REGNUM): Rename to CRIS_STRUCT_VALUE_REGNUM.
11099
11100 2004-01-24  Ian Lance Taylor  <ian@wasabisystems.com>
11101
11102         PR bootstrap/13848
11103         * cse.c (cse_cc_succs): Change the mode of the source expression
11104         as soon as decide we need a new mode.  Don't permit changing modes
11105         if we found a match in a successor block.
11106         (cse_condition_code_reg): Save original mode of source expression
11107         so that we know whether we have to change the mode in other
11108         insns.
11109
11110 2004-01-24  Jan Hubicka  <jh@suse.cz>
11111
11112         * emit-rtl.c (change_address, adjust_address_1, offset_address,
11113         widen_memory_access):  Return early when there is nothing to change.
11114
11115 2004-01-24  Jakub Jelinek  <jakub@redhat.com>
11116
11117         * simplify-rtx.c (simplify_relational_operation): Don't
11118         simplify address == constant into address + -constant == 0.
11119
11120 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
11121
11122         * gcc.c (process_command): Don't internationalize the
11123         Copyright message.
11124         * mips-tfile.c (main): Likewise.
11125
11126 2004-01-24  Andreas Tobler  <a.tobler@schweiz.ch>
11127
11128         * cse.c: (cse_cc_succs) Fix comparison warning.
11129
11130 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
11131
11132         * config/h8300/h8300.md: Remove extraneous USE in expanders.
11133
11134 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
11135
11136         * config/h8300/h8300-protos.h: Provide prototypes for
11137         h8300_legitimate_constant_p and h8300_legitimate_address_p.
11138         * config/h8300/h8300.c (h8300_legitimate_constant_p): New.
11139         (h8300_rtx_ok_for_base_p): Likewise.
11140         (h8300_legitimate_address_p): Likewise.
11141         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Use
11142         h8300_legitimate_constant_p.
11143         (RTX_OK_FOR_BASE_P): Remove.
11144         (GO_IF_LEGITIMATE_ADDRESS): Use h8300_legitimate_address_p.
11145
11146 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
11147
11148         * config/h8300/h8300.h (REG_OK_FOR_INDEX_NONSTRICT_P): New.
11149         (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
11150         (REG_OK_FOR_INDEX_STRICT_P): Likewise.
11151         (REG_OK_FOR_BASE_STRICT_P): Likewise.
11152         (REG_OK_FOR_INDEX_STRICT_P): Use REGNO_OK_FOR_INDEX_P.
11153         (REG_OK_FOR_BASE_STRICT_P): Use REGNO_OK_FOR_BASE_P.
11154         (REG_OK_FOR_INDEX_P): Use REG_OK_FOR_INDEX_STRICT_P.
11155         (REG_OK_FOR_BASE_P): Use REG_OK_FOR_BASE_STRICT_P.
11156
11157 2004-01-24  Jan Hubicka  <jh@suse.cz>
11158
11159         * cselib.c (remove_useless_values):  Do not access discarded values.
11160
11161 2004-01-24  Joseph S. Myers  <jsm@polyomino.org.uk>
11162
11163         * c-typeck.c (build_conditional_expr): Do not allow non-lvalue
11164         arrays.
11165
11166 2004-01-23  Kazu Hirata  <kazu@cs.umass.edu>
11167
11168         * recog.c: Fix a typo in copyright.
11169
11170 2004-01-23  Andrew Pinski  <apinski@apple.com>
11171
11172         * config/rs6000/rs6000.md (call): Fix misappiled patch.
11173         (call_value): Likewise.
11174
11175 2004-01-23  Richard Henderson  <rth@redhat.com>
11176
11177         PR opt/12941
11178         * combine.c (SHIFT_COUNT_TRUNCATED): Provide default value.
11179         (simplify_comparison): Don't simplify (eq (zero_extract c 1 r) 0)
11180         if SHIFT_COUNT_TRUNCATED is set.
11181
11182 2004-01-23  Bob Wilson  <bob.wilson@acm.org>
11183
11184         * config/xtensa/xtensa.c (xtensa_va_arg): Handle complex values as
11185         separate real and imaginary parts.
11186         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Define.
11187
11188 2004-01-23  Hartmut Penner <hpenner@de.ibm.com>
11189
11190         PR target/13674
11191         * config/rs6000/rs6000.md (movdf_hardfloat64): Do not disparage
11192         loading into GPR.
11193
11194 2004-01-23  Jan Hubicka  <jh@suse.cz>
11195
11196         * emit-rtl.c (change_address_1):  Do not re-generate the RTX if nothing
11197         change.
11198
11199         * alloc-pool.c (align_four): Kill.
11200         (create_alloc_pool): Align size to eight.
11201         (free_alloc_pool, free_pool): Invalidate deallocated data.
11202
11203 2004-01-23  Ian Lance Taylor  <ian@wasabisystems.com>
11204
11205         PR gcc/1532
11206         * cse.c (cse_change_cc_mode): New static function.
11207         (cse_change_cc_mode_insns, cse_cc_succs): Likewise.
11208         (cse_condition_code_reg): New function.
11209         * rtl.h (cse_condition_code_reg): Declare.
11210         * toplev.c (rest_of_handle_cse2): Call cse_condition_code_reg.
11211         * target.h (struct gcc_target): Add fixed_condition_code_regs and
11212         cc_modes_compatible.
11213         * target-def.h (TARGET_FIXED_CONDITION_CODE_REGS): Define.
11214         (TARGET_CC_MODES_COMPATIBLE): Define.
11215         (TARGET_INITIALIZER): Add new initializers.
11216         * targhooks.c (default_cc_modes_compatible): New function.
11217         * targhooks.c (default_cc_modes_compatible): Declare.
11218         * hooks.c (hook_bool_intp_intp_false): New function.
11219         * hooks.h (hook_bool_intp_intp_false): Declare.
11220         * config/i386/i386.c (TARGET_FIXED_CONDITION_CODE_REGS): Define.
11221         (TARGET_CC_MODES_COMPATIBLE): Define.
11222         (ix86_fixed_condition_code_regs): New static function.
11223         (ix86_cc_modes_compatible): Likewise.
11224         * doc/tm.texi (Condition Code): Document new hooks.
11225
11226 2004-01-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
11227
11228         * fixinc/inclhack.def (bad_lval): Renamed to ...
11229         (alpha_bad_lval): ... this.
11230         Removed file list.
11231         Restrict to alpha*-dec-osf*.
11232         * fixinc/fixincl.x: Regenerate.
11233         * fixinc/tests/base/dirent.h: Remove, moving test ...
11234         * fixinc/tests/base/testing.h: ... here, reflecting new name.
11235
11236 2004-01-23  Zack Weinberg  <zack@codesourcery.com>
11237
11238         PR c/13814
11239         * c-decl.c (diagnose_mismatched_decls): Also discard a
11240         built-in if we encounter an old-style definition with the
11241         same name.
11242
11243 2004-01-23  Jakub Jelinek  <jakub@redhat.com>
11244
11245         * config.gcc (powerpc*-*): Clear $with_cpu or $with_tune if it was
11246         set to default{32,64}.
11247
11248 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
11249
11250         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR)
11251         [!__powerpc64__]: Corrected to handle kernels with changed ucontext.
11252
11253 2004-01-23  Eric Botcazou  <ebotcazou@act-europe.fr>
11254             Olivier Hainque  <hainque@act-europe.fr>
11255
11256         * fold-const.c (fold_binary_op_with_conditional_arg): Only
11257         build a COMPOUND_EXPR if 'arg' is really a SAVE_EXPR.
11258
11259 2004-01-23  Daniel Jacobowitz  <drow@mvista.com>
11260
11261         * config/arm/arm.c (arm_legitimate_address_p): Don't check the mode
11262         size for minipool references.
11263
11264 2004-01-23  Roger Sayle  <roger@eyesopen.com>
11265
11266         * real.c (real_floor, real_ceil): Tweak to allow input and output
11267         arguments to overlap.
11268         (real_round): New function to implement round(3m) semantics.
11269         * real.h (real_round): Prototype here.
11270         * builtins.c (fold_builtin_round): New function to constant fold
11271         round, roundf and roundl.
11272         (fold_builtin): Call fold_builtin_round for BUILT_IN_ROUND{,F,L}.
11273
11274 2004-01-23  Alexandre Oliva  <aoliva@redhat.com>
11275
11276         PR optimization/13819
11277         * config/sh/sh.c (sh_reorg): Compensate for sharing of CLOBBERs
11278         introduced by 2004-01-20's Jan Hubicka's copy_insn change.
11279         (sh_handle_sp_switch_attribute): Remove warning.
11280
11281 2003-11-30  Jan Hubicka  <jh@suse.cz>
11282
11283         * i386.c (ix86_emit_restore_regs_using_mov):  Deal with large offsets.
11284
11285 2004-01-23  J"orn Rennecke <joern.rennecke@superh.com>
11286
11287         * doc/tm.texi: Insert some weasel words when LOAD_EXTEND_OP
11288         may or may not return non-NIL.
11289         * postreload.c (reload_cse_simplify_operands): In LOAD_EXTEND_OP code,
11290         check CANNOT_CHANGE_MODE_CLASS
11291
11292 2004-01-23  Jan Hubicka  <jh@suse.cz>
11293
11294         * basic-block.h (PROP_POSTRELOAD): New macro.
11295         (CLEANUP_LOG_LINKS): New.
11296         * cfgcleanup.c (cleanup_cfg): Only PROP_LOG_LINKS when asked to.
11297         * toplev.c (rest_of_handle_life):  Preserve LOG_LINKS trought cleanup_cfg.
11298
11299         * cselib.c (value_pool): New.
11300         (new_cselib_val): Use pool.
11301         (cselib_init): Initialize value_pool
11302         (cselib_finish): Free pool.
11303
11304 2004-01-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
11305
11306         * config/sparc/sparc.c (scan_record_type): New function.
11307         (function_arg_slotno): Use it to determine which kinds of
11308         registers the record can be passed in.
11309
11310 2004-01-22  James A. Mmorrison  <ja2morri@uwaterloo.ca>
11311
11312         * config/pa/fptr.c: Fix old-style definition.
11313
11314 2004-01-22  Paolo Bonzini  <bonzini@gnu.org>
11315
11316         PR optimization/13724
11317         * cse.c (fold_rtx) <SUBREG>:  Fold a SUBREG to zero if it
11318         represents the zero bits produced by a ZERO_EXTEND operation.
11319
11320 2004-01-22  Roger Sayle  <roger@eyesopen.com>
11321
11322         PR optimization/13821
11323         * simplify-rtx.c (simplify_subreg): Use subreg_lowpart_offset to
11324         correctly calculate the lowpart offset of the contracted subreg.
11325
11326 2004-01-22  Ian Lance Taylor  <ian@wasabisystems.com>
11327
11328         * doc/invoke.texi (Optimize Options): Note that --param arguments
11329         are subject to change without notice.
11330
11331 2004-01-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
11332
11333         * config.gcc (mips-sgi-irix6*o32): Removed.
11334         * config/mips/iris6-o32-as.h: Likewise.
11335         * config/mips/iris6-o32-gas.h: Likewise.
11336         * config/mips/iris6-o32.h: Likewise.
11337
11338 2004-01-22  Jan Hubicka  <jh@suse.cz>
11339
11340         * cfgcleanup.c (first_pass): New static variable.
11341         (try_forward_edges):  Add work limiting check for threading.
11342         (try_crossjump_bb):  Add work limiting check for crossjumping.
11343         (try_optimize_cfg):  Maintain first pass variable.
11344
11345 2004-01-22  Bob Wilson  <bob.wilson@acm.org>
11346
11347         * config/xtensa/xtensa.c (function_arg): Generalize logic so that it
11348         handles complex and vector modes.
11349
11350 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
11351
11352         * config/h8300/h8300.h (REG_OK_FOR_INDEX_P_STRICT): Remove.
11353         (REG_OK_FOR_BASE_P_STRICT): Likewise.
11354         (STRICT): Likewise.
11355
11356 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
11357
11358         * c-semantics.c (genrtl_while_stmt, genrtl_do_stmt_1)
11359         (genrtl_for_stmt): Remove emit_nop calls.
11360
11361 2004-01-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11362
11363         PR target/13713
11364         PR target/13324
11365         * pa.md (movstrsi_prereload, movstrsi_postreload, movstrdi_prereload,
11366         movstrdi_postreload, clrstrsi_prereload, clrstrsi_postreload,
11367         clrstrdi_prereload, clrstrdi_postreload): Fix constraints.
11368
11369 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
11370
11371         * config/arm/arm.c: Include "debug.h".
11372         (thumb_pushpop): Take two new arguments.  Add some commentary.
11373         Output frame information when pushing.
11374         (thumb_exit, thumb_unexpanded_epilogue): Update calls to
11375         thumb_pushpop.
11376         (thumb_output_function_prologue): Likewise.  Accumulate a CFA
11377         offset, and pass it to thumb_pushpop.  Output CFI information.
11378         (thumb_expand_prologue): Add some frame-related markers and notes.
11379
11380 2004-01-22  Ulrich Weigand  <uweigand@de.ibm.com>
11381
11382         * config/s390/s390.c (s390_frame_info): Allow large frame sizes
11383         for TARGET_64BIT.
11384         (s390_arg_frame_offset): Change return type to HOST_WIDE_INT.
11385         * config/s390/s390-protos.h (s390_arg_frame_offset): Likewise.
11386
11387 2004-01-22  Roger Sayle  <roger@eyesopen.com>
11388             Paolo Bonzini  <bonzini@gnu.org>
11389
11390         * rtlanal.c (subreg_lsb_1): New function split out from subreg_lsb.
11391         (subreg_lsb): Change to call new subreg_lsb_1 helper function.
11392         * rtl.h (subreg_lsb_1): Prototype here.
11393         * simplify-rtx.c (simplify_subreg): Optimize subregs of zero and
11394         sign extensions.
11395
11396 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
11397
11398         * doc/tm.texi (CASE_VECTOR_PC_RELATIVE): Mention that the
11399         macro need not be defined if jump-tables should contain
11400         relative addresses only when -fPIC or -fPIC is in effect.
11401
11402 2004-01-22  Jan Hubicka  <jh@suse.cz>
11403
11404         * alias.c (reg_base_value): Turn into varray.
11405         (reg_base_value_size): Kill.
11406         (old_reg_base_value): New deletable varray.
11407         (alias_invariant_size): New variable.
11408         (REG_BASE_VALUE): Update to use varray.
11409         (find_base_value): Likewise.
11410         (record_set): Likewise.
11411         (record_base_value): Likewise.
11412         (memrefs_conflict_p): Likewise.
11413         (record_set): Likewise
11414         (record_base_value): Likewise.
11415         (memrefs_conflict_p): Use alias_invariant_size.
11416         (init_alias_analysis): Use varray; set alias_invariant_size;
11417         rescale other arrays to be sized by maxreg.
11418         (end_alias_analysis): Save reg_base_value; clear alias_invariant_size.
11419
11420 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
11421
11422         * config/sparc/sparc.c (function_arg_slotno): Use
11423         FLOAT_TYPE_P to detect FP fields in structures.
11424         (function_arg_record_value_1): Likewise.
11425         (function_arg_record_value_2): Likewise.
11426
11427 2004-01-22  Jan Hubicka  <jh@suse.cz>
11428
11429         * function.c (allocate_struct_function): Do not initialize expr, emit
11430         and varasm.
11431         (prepare_function_start): Do it here.
11432         * c-parse.in (maybe_type_qual): Do not produce line number notes.
11433
11434 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
11435
11436         PR target/13559
11437         * config/sparc/sparc.c (function_arg_record_value_3): Revert
11438         to 'word_mode' once the first slot has been filled.
11439
11440 2004-01-22  Olivier Hainque  <hainque@act-europe.fr>
11441
11442         * config/sparc/sparc.c (function_arg_record_value_1): Fix
11443         computation of the number of integer registers required.
11444
11445 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
11446
11447         * config/i386/i386.md: Simplify certain comparisons of
11448         const_int.
11449
11450 2004-01-21  Andrew Pinski  <apinski@apple.com>
11451
11452         PR target/13785
11453         * config/rs6000/rs6000.md (call_value): Force operand
11454         1 not operand 0 into a register.
11455
11456 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
11457
11458         * cpperror.c, cpptrad.c, longlong.h, params.def, rtl.def,
11459         unwind-dw2-fde.h: Update copyright.
11460
11461 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11462
11463         * pa-protos.h: Update copyright.
11464         * pa.h: Likewise.
11465         * pa.md: Likewise.
11466
11467 2004-01-21  Caroline Tice  <ctice@apple.com>
11468
11469         PR target/12308
11470         * config/i386/i386.md (fix_truncxfdi2): Add clause to clobber
11471         flags register.
11472         (fix_truncdfdi2): Likewise.
11473         (fix_truncsfdi2): Likewise.
11474         (*fix_truncdi_1): Likewise.
11475         (fix_truncxfsi2): Likewise.
11476         (fix_truncdfsi2): Likewise.
11477         (fix_truncsfsi2): Likewise.
11478         (*fix_truncsi_1): Likewise.
11479         (fix_truncxfhi2): Likewise.
11480         (fix_truncdfhi2): Likewise.
11481         (fix_truncsfhi2): Likewise.
11482         (*fix_trunchi_1): Likewise.
11483
11484 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
11485
11486         * alias.c, basic-block.h, c-common.c, c-common.h,
11487         c-cppbuiltin.c, c-opts.c, c-pragma.c, c-pretty-print.c,
11488         calls.c, cfg.c, cfgcleanup.c, cfgrtl.c, cgraph.h, collect2.c,
11489         combine.c, cppcharset.c, cpphash.h, cppinit.c, cpplib.c,
11490         cpplib.h, cppmacro.c, crtstuff.c, cselib.c, cselib.h,
11491         defaults.h, df.c, dominance.c, et-forest.c, expmed.c, expr.c,
11492         expr.h, fix-header.c, function.h, gcc.c, gcse.c, genattrtab.c,
11493         genautomata.c, genconditions.c, genemit.c, genflags.c,
11494         gengtype.c, gengtype.h, genopinit.c, genrecog.c, gensupport.c,
11495         ggc-zone.c, graph.c, haifa-sched.c, input.h, integrate.c,
11496         langhooks-def.h, langhooks.c, langhooks.h, line-map.c,
11497         line-map.h, local-alloc.c, optabs.c, optabs.h, postreload.c,
11498         ra.h, recog.c, reg-stack.c, regmove.c, reload.c, reorg.c,
11499         rtl.c, sched-deps.c, sched-ebb.c, sdbout.c, system.h,
11500         target.h, targhooks.c, toplev.h, tree-inline.c, unwind-pe.h,
11501         unwind.h, varray.c, varray.h: Update copyright.
11502
11503 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
11504
11505         * config/h8300/coff.h: Update copyright.
11506         * config/h8300/elf.h: Likewise.
11507         * config/h8300/h8300-protos.h: Likewise.
11508         * config/h8300/h8300.c: Likewise.
11509         * config/h8300/h8300.h: Likewise.
11510         * config/h8300/h8300.md: Likewise.
11511
11512 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11513
11514         * fixinc/inclhack.def (hpux10_stdio_declarations, ultrix_const3,
11515         ultrix_locale, ultrix_stdlib, ultrix_strings, ultrix_sys_time,
11516         ultrix_unistd): New hacks.
11517         * fixinc/tests/base/stdio.h (HPUX10_STDIO_DECLARATIONS_CHECK,
11518         ULTRIX_CONST2_CHECK): Add checks.
11519         * fixinc/tests/base/stdlib.h (ULTRIX_STDLIB_CHECK): Likewise.
11520         * fixinc/tests/base/strings.h (ULTRIX_STRINGS2_CHECK): Likewise.
11521         * fixinc/tests/base/unistd.h (ULTRIX_UNISTD_CHECK): Likewise.
11522         * fixinc/tests/base/sys/time.h (ULTRIX_SYS_TIME_CHECK): Likewise.
11523         * fixinc/tests/base/locale.h: New file.
11524         * fixinc/fixincl.x: Rebuilt.
11525
11526 2004-01-21  Andreas Jaeger  <aj@suse.de>
11527             Michael Matz  <matz@suse.de>
11528
11529         * doc/extend.texi (Extended Asm): Clarify memory clobber.
11530
11531 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
11532
11533         * crtstuff.c (frame_dummy, __do_global_ctors_1): Call
11534         _Jv_RegisterClasses through a function pointer.
11535
11536 2004-01-21  Falk Hueffner  <falk@debian.org>
11537
11538         PR target/12898
11539         * config/alpha/alpha.c (alpha_emit_set_const_1): If
11540         no_new_pseudos, use gen_rtx_SET directly for SImode constants
11541         which need multiple instructions to emit.
11542
11543 2004-01-21  Inaoka Kazuhiro  <inaoka.kazuhiro@renesas.com>
11544
11545         * config/m32r/m32r.h (CPP_SPEC): Define.
11546
11547 2004-01-21  Zack Weinberg  <zack@codesourcery.com>
11548
11549         * c-decl.c (merge_decls): Kill different_binding_level and
11550         different_tu arguments; simplify throughout.
11551         (duplicate_decls): Likewise.
11552         (pushdecl, merge_translation_unit_decls): Update calls to
11553         duplicate_decls.
11554
11555 2004-01-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11556
11557         * Makefile.in (pretty-print.o): Depend on $(CONFIG_H) and
11558         $(SYSTEM_H).
11559         (print-rtl1.o): Depend on $(SYSTEM_H).
11560
11561 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
11562
11563         PR bootstrap/12730
11564         * configure.ac: Delete definition and subsitution of docdir.
11565         Add info, man, srcman and srcinfo to target hooks. Create doc/
11566         directory.
11567         * configure: Regenerate.
11568         * Makefile.in: Don't substitute docdir and delete all references
11569         throughout.
11570         (MAKEINFOFLAGS): Define.
11571         (stmp-docobjdir): Delete.
11572         (INFOFILES, MANFILES): Define.
11573         (info): Call lang.info, srcinfo and lang.srcinfo.
11574         (generated-manpages): Call lang.man, srcman and lang.srcman.
11575         (srcinfo, srcman): New rules to copy back files to source directory.
11576         (doc/%.info, doc/%.dvi, doc/%.1, doc/%.7): New implict rule.
11577         (install-man): Revamp rule.
11578         (clean): Update dvi directory.
11579         (distclean): Delete TAGS from front end directorys.
11580         (maintainer-clean): Delete all document files in source directory.
11581
11582         objc/Make-lang.in (objc.man, objc.info): Dummy entries.
11583         (objc.srcman, objc.srcinfo): Likewise.
11584
11585 2004-01-20  Bruce Korb  <bkorb@gnu.org>
11586
11587         * fixinc/inclhack.def(math_exception): bypass only for glibc.
11588         (matherr_decl): rename & relocate as exception_structure.
11589         This fix must precede the math_exception fix.
11590
11591 2004-01-20  Roger Sayle  <roger@eyesopen.com>
11592
11593         * fold-const.c (fold_convert): Rename to fold_convert_const.
11594         (fold_convert_const): Change arguments to take a tree_code,
11595         a type and the operand/expression to be converted.  Return
11596         NULL_TREE if no simplification is possible.  Add support for
11597         FIX_CEIL_EXPR and FIX_FLOOR_EXPR in addition to FIX_TRUNC_EXPR.
11598         (fold): Handle FIX_CEIL_EXPR and FIX_FLOOR_EXPR.
11599         Adjust call to fold_convert to match new fold_convert_const.
11600         Avoid modifying the tree passed to fold in-place.
11601
11602 2004-01-21  Alan Modra  <amodra@bigpond.net.au>
11603
11604         * config/rs6000/sysv4.h (DWARF2_FRAME_REG_OUT): Define.
11605         * dwarf2out.c (output_cfi): Map regs using DWARF2_FRAME_REG_OUT.
11606         * doc/tm.texi (DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Document.
11607
11608 2004-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11609
11610         * pa-protos.h (compute_frame_size): Use HOST_WIDE_INT for frame sizes.
11611         * pa.c (store_reg, store_reg_modify, load_reg, set_reg_plus_d):
11612         Likewise.  Handle frames larger than 0x7fffffff on 64-bit ports.
11613         (emit_move_sequence): Check scratch_reg first in various if statements.
11614         Extend source simplification to handle all 64-bit CONST_INTs.
11615         (pa_output_function_prologue): Use HOST_WIDE_INT_PRINT_DEC for printing
11616         frame size.
11617         (hppa_expand_prologue, hppa_expand_epilogue): Use HOST_WIDE_INT for
11618         frame offset calculations.
11619         * pa.h (NEW_HP_ASSEMBLER): Add comment.
11620         (MAX_LEGIT_64BIT_CONST_INT, MIN_LEGIT_64BIT_CONST_INT,
11621         LEGITIMATE_64BIT_CONST_INT_P): Define.
11622         (LEGITIMATE_CONSTANT_P): Use LEGITIMATE_64BIT_CONST_INT_P.  Treat
11623         any CONST_INT as legitimate during and after reload.
11624         (VAL_32_BITS_P, INT_32_BITS): Define.
11625         (LEGITIMIZE_RELOAD_ADDRESS): Handle large frame offsets.
11626
11627 2004-01-20  Jan Hubicka  <jh@suse.cz>
11628
11629         * emit-rtl.c (verify_rtx_sharing, copy_insn_1,
11630         emit_copy_of_insn_after, emit_copy_of_insn_after): Clobbers
11631         containing hard regs are shared.
11632         (gen_hard_reg_clobber): New function.
11633         (hard_reg_clobbers): New array.
11634         * genemit.c (gen_exp): Use gen_hard_reg_clobber.
11635         (copy_rtx): Do not copy clobbers containing hard regs.
11636         * rtl.h (gen_hard_reg_clobber): Declare.
11637
11638 2004-01-20  Jan Hubicka  <jh@suse.cz>
11639
11640         * varray.c:  Include hashtab.h
11641         (varray_descriptor): New structure.
11642         (hash_descriptor, eq_descriptor, varray_descriptor,
11643         print_statistics): New static functions
11644         (varray_init, varray_grow): Update statistics
11645         (dump_varray_statistics): New function.
11646         * varray.h (dump_varray_statistics): Declare.
11647         * toplev.c (finalize): Call it.
11648         * Makefile.in (varray.o): Add dependency.
11649
11650 2004-01-20  Jan Hubicka  <jh@suse.cz>
11651
11652         * cselib.c: Include alloc-pool.h
11653         (empty_vals, empty_elt_lists, empty_elt_loc_lists): Kill.
11654         (elt_loc_list_pool, elt_list_pool, cselib_val_pool): Declare.
11655         (new_elt_list, new_elt_loc_list, unchain_one_elt_list,
11656         unchain_one_elt_loc_list_pool, unchain_one_value,
11657         new_cselib_val): Simplify using allocpool.
11658         (cselib_init): Initialize allocpools.
11659         (cselib_finish): Finish allocpools.
11660         * Makefile.in (cselib.o): Depend on alloc-pool.h
11661
11662 2004-01-20  Richard Sandiford  <rsandifo@redhat.com>
11663
11664         * config/mips/mips.c (mips_load_call_address): Make the call insn
11665         use $gp if it could be calling a lazy binding stub.
11666
11667 2004-01-20  Kazu Hirata  <kazu@cs.umass.edu>
11668
11669         * config/s390/s390.c (TARGET_PROMOTE_FUNCTION_ARGS): Define.
11670         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
11671         (TARGET_STRUCT_VALUE_RTX): Likewise.
11672         * config/s390/s390.h (PROMOTE_FUNCTION_ARGS): Remove.
11673         (PROMOTE_FUNCTION_RETURN): Remove.
11674         (STRUCT_VALUE): Remove.
11675
11676 2004-01-20  Denis Chertykov  <denisc@overta.ru>
11677
11678         PR bootstrap/13735
11679         * config/avr/avr.h (BASE_REG_CLASS): Don't permit to use X
11680         register as pointer after reload.
11681
11682 2004-01-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11683
11684         PR optimization/12440
11685         * loop.c: Include ggc.h.
11686         (loop_optimize): Run garbage collector between optimization of loops.
11687         * Makefile.in (loop.o): Add GGC_H dependency.
11688
11689 2004-01-20  Hartmut Penner  <hpenner@de.ibm.com>
11690
11691         * gcc/config/rs6000/rs6000.c (function_arg) Handle
11692         vector register special in function without prototype.
11693         (function_arg_advance): Vector parameters get always
11694         GPRs allocated for the linux64 target.
11695
11696 2004-01-20  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
11697
11698         * config/m32r/m32r.h (TARGET_M32R2). Test for TARGET_M32R2_MASK
11699         not TARGET_M32RX_MASK.
11700
11701 2004-01-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
11702
11703         PR target/13557
11704         * config/sparc/sparc.c (function_arg): Reorder the cases.
11705
11706 2004-01-19  Per Bothner  <per@bothner.com>
11707
11708         Move cpp_reader's line_maps field to a shared global.
11709         * cpphash.h (cpp_reader):  Rename line_maps field to line_table
11710         and change the type to a pointer rather than a struct.
11711         * cppinit.c (cpp_push_main_field):  Adjust accordingly.
11712         * cpplib.c (do_include_common, _cpp_do_file_change, cpp_get_callbacks):
11713         Likewise.
11714         * cppfiles.c (validate_pch):  Likewise.
11715         * cppmacro.c (_cpp_warn_if_unused_macro, _cpp_builtin_macro_text):
11716         Likewise.
11717         * cpperror.c (print_location):  Likewise.
11718         * cpplib.h (cpp_create_reader):  New line_maps pointer parameter.
11719         * cppinit.c (cpp_create_reader):  Handle new parameter.
11720         (cpp_destroy):  Don't free line_maps - that's no longer our job.
11721         * input.h (line_table):  New variable.
11722         * toplev.c (line_table):  Declare variable.
11723         (general_init):  Initialize line_table.
11724         * c-opts.c (c_common_init_options):  Pass line_table to
11725         cpp_create_reader.
11726         * fix-header.c (read_scan_file):  New local variable line_table.
11727         Initialize, and pass it to cpp_create_reader.
11728         * Makefile.in (LIBS, LIBDEPS):  Add libcpp.a.
11729         (C_AND_OBJC_OBJS, fix-header):  Remove redundant libcpp.a.
11730
11731 2004-01-19  Per Bothner  <per@bothner.com>
11732
11733         Implement a cache for linemap_lookup.
11734         * line-map.h (struct_line_maps):  Add cache field.
11735         * line-map.c (linemap_init):  Zero cache field.
11736         (linemap_add):  Set cache field to offset of newly allocated map.
11737         (linemap_lookup):  Use and set cache field.
11738
11739 2004-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
11740
11741         PR optimization/13567
11742         * cse.c (cse_basic_block): Call cse_insn with a non-null
11743         libcall_insn for the last SET insn of a no-confilict block.
11744
11745 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
11746
11747         * Makefile.in (target_noncanonical, program_transform_name): Use
11748         immediate define instead of deferred.
11749         (GCC_INSTALL_NAME, GCC_TARGET_INSTALL_NAME, CPP_INSTALL_NAME,
11750         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, GCOV_INSTALL_NAME,
11751         GCCBUG_INSTALL_NAME): Define via a immediate $(shell) instead of
11752         deferred backquote.
11753
11754 2004-01-20  Joseph S. Myers  <jsm@polyomino.org.uk>
11755
11756         * c-decl.c (c_init_decl_processing): Set pedantic_lvalues to
11757         true unconditionally.
11758         * c-typeck.c (unary_complex_lvalue, pedantic_lvalue_warning):
11759         Remove.
11760         (build_unary_op, build_modify_expr): Don't handle extended
11761         lvalues.
11762         (build_component_ref, build_conditional_expr): Call non_lvalue
11763         instead of pedantic_non_lvalue.
11764         (build_c_cast): Don't condition use of non_lvalue on pedantic.
11765         * fold-const.c (fold): Don't check pedantic directly for
11766         COMPOUND_EXPR.  Ensure that results for COMPOUND_EXPR are
11767         passed to pedantic_non_lvalue.
11768         * doc/extend.texi: Remove documentation of extended lvalues.
11769
11770 2004-01-19  Roger Sayle  <roger@eyesopen.com>
11771
11772         PR optimization/5263
11773         * simplify-rtx.c (associative_constant_p): Delete.
11774         (simplify_associative_operation): Rewrite to linearize terms, and
11775         attempt to simplify new term against both left and right subterms.
11776         (simplify_binary_operation): Call swap_commutative_operands_p on
11777         op0 and op1, not trueop0 and trueop1.  Move the initialization of
11778         trueop0 and trueop1 down to where first needed.
11779         (simplify_relational_operation): Likewise.
11780         * rtlanal.c (commutative_operand_precedence): Also order constant
11781         operands using avoid_constant_pool_reference.
11782
11783 2004-01-19  Richard Henderson  <rth@redhat.com>
11784
11785         * config/alpha/alpha.c (aligned_memory_operand): Check MEM_ALIGN,
11786         don't check memory mode.
11787         (unaligned_memory_operand): Likewise.
11788         (reload_inqi, reload_inhi, reload_outqi, reload_outhi): Don't
11789         abort for op0 not MEM.
11790
11791         * config/alpha/alpha.c (alpha_expand_mov_nobwx): If the destination
11792         is not a reg, copy to a scratch first.
11793         (aligned_loadqi, aligned_loadhi, unaligned_loadqi, unaligned_loadhi,
11794         unaligned_loadqi_le, unaligned_loadqi_be, unaligned_loadhi_le,
11795         unaligned_loadhi_be): Expect op0 in DImode; don't SUBREG.
11796         (reload_inqi, reload_inhi): Fix mode of op0.
11797         (reload_inqi_help, reload_inhi_help, reload_outqi_help,
11798         reload_outhi_help): Likewise.  Use define_insn_and_split.
11799
11800         * config/alpha/alpha.md (call peepholes): Check for REG_NORETURN
11801         as well as $29 dead.
11802
11803 2004-01-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
11804
11805         * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): New.  Emit
11806         "tls_object" for thread-local objects.
11807         * config/sparc/sparc.c (sparc_elf_asm_named_section): Emit
11808         "#tls" for thread-local sections.
11809         * configure.ac (thread-local checks): Specify --fatal-warnings in
11810         every binutils-specific checks.  For sparc*-*-*, test whether the
11811         OS is Solaris and the tools are native and act accordingly.
11812         * configure: Rebuild.
11813
11814 2004-01-19  Jeff Law  <law@redhat.com>
11815
11816         * contrib.texi: Update Paolo Carlini's entry.  New entries for
11817         Jerry Quinn and Petur Runolfsson.
11818
11819 2004-01-19  Roger Sayle  <roger@eyesopen.com>
11820
11821         * config/i386/i386.md (*movhi_1, *movqi_1): When optimizing for
11822         size, don't use the larger zero-extending loads.
11823
11824 2004-01-19  Richard Henderson  <rth@redhat.com>
11825
11826         * alpha.h (HARD_REGNO_MODE_OK): Disallow SImode in FP regs.
11827         * alpha.md (UNSPEC_NT_LDA): Remove.
11828         (UNSPEC_CVTLQ, cvtlq): New.
11829         (extendsidi2_1): Rename from extendsidi2_nofix; remove f/f.
11830         (extendsidi2_fix): Remove.
11831         (extendsidi2 splitter): Use cvtlq.
11832         (extendsidi2 fp peepholes): Remove.
11833         (cvtql): Use SFmode instead of SImode.
11834         (fix_trunc?fsi): Update to match.
11835         (floatsisf2_ieee, floatsisf2, floatsidf2_ieee, floatsidf2): New.
11836         (movsi): Rename from movsi_nofix, remove f alternatives.
11837         (movsi_nt_vms): Similarly.
11838         (movsi_fix, movsi_nt_vms_fix): Remove.
11839         (nt_lda): Remove.
11840         * alpha.c (alpha_expand_prologue): Use adddi3, not nt_lda.
11841
11842 2004-01-19  Jan Hubicka  <jh@suse.cz>
11843
11844         * cgraph.c (cgraph_remove_node): Fix removal from linked list.
11845         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear next_needed
11846         list.
11847         (cgraph_remove_unreachable_nodes): New function
11848         (cgraph_decide_inlining_of_small_function): Fix pasto.
11849         (cgraph_decide_inlining_incrementally): Fix pasto.
11850         (cgrpah_decide_inlining): Likewise; remove unreachable nodes.
11851
11852 2004-01-19  Steven Bosscher  <stevenb@suse.de>
11853
11854         * gengtype.c (header_file): Make it static.
11855         (write_types_process_field, write_enum_defn): Minor whitespace fixes.
11856         * gengtype.h (header_file): No longer extern.
11857
11858 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
11859
11860         * defaults.h (CASE_VECTOR_PC_RELATIVE): Provide the default.
11861         * expr.c (CASE_VECTOR_PC_RELATIVE): Remove.
11862         * stmt.c (CASE_VECTOR_PC_RELATIVE): Likewise.
11863
11864 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
11865
11866         * stmt.c (HAVE_casesi): Define it not already defined.
11867         (HAVE_tablejump): Likewise.
11868         (expand_end_case_type): Resort to the binary tree method if
11869         neither casesi or tablejump is available.
11870
11871 2004-01-18  Daniel Jacobowitz  <drow@mvista.com>
11872
11873         * final.c (final_scan_insn): Make non-static again.
11874         * output.h (final_scan_insn): Re-add prototype.
11875         * config/arc/arc.c (arc_output_function_epilogue): Add NULL
11876         to final_scan_insn call.
11877         * config/cris/cris.c (cris_target_asm_function_epilogue): Likewise.
11878         * config/mips/mips.c (mips_output_conditional_branch): Likewise.
11879         * config/pa/pa.c (output_lbranch, output_call): Likewise.
11880         * config/sh/sh.c (print_slot): Likewise.
11881         * config/sparc/sparc.c (sparc_nonflat_function_epilogue): Likewise.
11882         (output_sibcall, sparc_flat_function_epilogue): Likewise.
11883
11884 2004-01-18  Jan Hubicka  <jh@suse.cz>
11885
11886         * basic-block.h (try_redirect_by_replacing_jump): Declare.
11887         * cfgcleanup.c (try_optimize_cfg): Use it.
11888         * cfgrtl.c (try_redirect_by_replacing_jump): Export.
11889         (rtl_redirect_edge_and_branch, cfg_layout_redirect_edge_and_branch):
11890         Kill hack.
11891         (cfg_layout_merge_blocks): Use try_redirect_by_replacing_jump.
11892
11893         Revert:
11894         2004-01-16  Geoffrey Keating  <geoffk@apple.com>
11895
11896                 * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
11897                 even after reload, just don't remove the actual jump tables.
11898
11899 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
11900
11901         * config/rs6000/rs6000.h (STRICT_ARGUMENT_NAMING): Remove.
11902
11903 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
11904
11905         * defaults.h (ASM_OUTPUT_ADDR_VEC_ELT): Fix the computation of
11906         the size of a pointer in bytes.
11907
11908 2004-01-18  Roger Sayle  <roger@eyesopen.com>
11909
11910         * builtins.c (expand_builtin_expect_jump): Fix thinko of reusing
11911         live "next" variable, which could lead to an infinite loop.
11912
11913 2004-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
11914
11915         * config/rs6000/altivec.h: Wrap C++ functions in extern "C++"
11916         block.
11917
11918         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
11919         Check for NULL in the chain and remove repeated code.
11920
11921 2004-01-18  Jan Hubicka  <jh@suse.cz>
11922
11923         * coverage.c (checksum_string): Rename to ...
11924         (coverage_checksum_string): ... this one, Use crc32_string; recognize
11925         names containing random number and zero the number out in order to get
11926         match.
11927
11928 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
11929
11930         * config/mips/mips.c (mips_got_alias_set): Mark for PCH.
11931
11932 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
11933
11934         * doc/c-tree.texi, doc/cpp.texi, doc/extend.texi,
11935         doc/frontends.texi, doc/gcov.texi, doc/gty.texi, doc/install.texi,
11936         doc/invoke.texi, doc/libgcc.texi, doc/md.texi, doc/rtl.texi,
11937         doc/sourcebuild.texi, doc/standards.texi, doc/tm.texi,
11938         doc/trouble.texi: Remove trailing whitespace.
11939
11940 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
11941
11942         PR target/7618
11943         * config/mips/mips.c: Include cfglayout.h.
11944         (TARGET_ASM_OUTPUT_MI_THUNK, TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
11945         (mips_unspec_offset_high): Add temporary register argument.
11946         (mips_load_call_address): New function, split out from...
11947         (mips_expand_call): ...here.
11948         (mips_output_cplocal): New function.
11949         (mips_output_function_prologue, mips_output_function_epilogue): Use it.
11950         (mips_emit_loadgp): New function, split out from...
11951         (mips_expand_prologue): ...here.
11952         (mips_output_mi_thunk): New function.
11953
11954 2004-01-17  Bernardo Innocenti  <bernie@develer.com>
11955
11956         * longlong.h (mc68020, __mc68030__, mc68030, __mc68040__, mc68040,
11957         mcpu32): Remove redundant checks for implied target predefines.
11958
11959 2004-1-17  Andrew Pinski  <pinskia@physics.uc.edu>
11960
11961         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
11962         Return type is unsigned int not int.
11963         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
11964         Likewise.
11965
11966 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
11967
11968         * doc/contrib.texi, doc/cppenv.texi, doc/extend.texi,
11969         doc/install.texi, doc/invoke.texi, doc/tm.texi: Consistently use
11970         "GNU/Linux" and "Microsoft Windows" terminology.
11971
11972 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
11973
11974         * doc/c-tree.texi, doc/compat.texi, doc/cpp.texi,
11975         doc/cppopts.texi, doc/extend.texi, doc/install.texi,
11976         doc/interface.texi, doc/invoke.texi, doc/libgcc.texi, doc/md.texi,
11977         doc/objc.texi, doc/rtl.texi, doc/tm.texi, doc/trouble.texi: Use
11978         @smallexample instead of @example.
11979
11980 2004-01-17  Ziemowit Laski  <zlaski@apple.com>
11981
11982         * objc/objc-act.c (build_objc_method_call): Use target
11983         hooks instead of macros to determine if ..._stret
11984         dispatchers should be used (NeXT runtime only).
11985
11986 2004-01-17  Roger Sayle  <roger@eyesopen.com>
11987
11988         * builtins.c (expand_builtin_expect_jump): Fix mistake in my
11989         last patch.  Use XEXP (x, 0) to get a LABEL_REF's CODE_LABEL.
11990
11991 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
11992
11993         * rtl.h (emit_insn_before_sameloc, emit_jump_insn_before_sameloc)
11994         (emit_call_insn_before_sameloc, emit_insn_after_sameloc)
11995         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): New
11996         macros.
11997         * reload1.c (emit_reload_insns): Use them.
11998         * emit-rtl.c (emit_insn_before_sameloc, emit_insn_after_sameloc)
11999         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): Check
12000         for NULL PATTERN.
12001
12002 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
12003
12004         * final.c (SEEN_BB, SEEN_NOTE, SEEN_EMITTED): Define.
12005         (final_scan_insn): Update to take an additional SEEN argument.  Emit
12006         a line note after the prologue.  Make static.
12007         (line_note_exists): Remove.
12008         (final): Don't initialize line_note_exists.  Update call to
12009         final_scan_insn.
12010         * output.h (final_scan_insn): Remove prologue.
12011         * function.c (set_insn_locators): Update comment.
12012         (thread_prologue_and_epilogue_insns): Add a comment.
12013
12014 2004-01-17  Andrew Pinski  <pinskia@physics.uc.edu>
12015
12016         PR target/10781
12017         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
12018         Prototype.
12019         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
12020         New function.
12021         * config/rs6000/linux64.h (ROUND_TYPE_ALIGN): Use it.
12022         * config/rs6000/aix.h (ROUND_TYPE_ALIGN): Likewise.
12023         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Likewise.
12024
12025 2004-01-17  Jan Hubicka  <jh@suse.cz>
12026
12027         * toplev.c (rest_of_handle_reorder_blocks): Fix pasto in previous
12028         commit.
12029
12030         * toplev.c (HAVE_conditional_execution): Provide default.
12031         (rest_of_handle_reorder_blocks): For conditional_execution target
12032         update liveness once after all transformations
12033         (rest_of_compilation): Do crossjumping before ce3.
12034
12035 2004-01-17  Geoffrey Keating  <geoffk@apple.com>
12036
12037         * alias.c (new_alias_set): Mark last_alias_set for PCH.
12038         (get_varargs_alias_set): Rename 'set' to 'varargs_set' and mark it
12039         for PCH.
12040         (get_frame_alias_set): Likewise, except rename it to 'frame_set'.
12041         * config/rs6000/rs6000.c (rs6000_sr_alias_set): Mark for PCH.
12042         (get_TOC_alias_set): Mark 'set' for PCH.
12043
12044 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
12045
12046         * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
12047         even after reload, just don't remove the actual jump tables.
12048
12049 2004-01-17  J. Brobecker  <brobecker@gnat.com>
12050
12051         * dwarf2out.c (is_subrange_type): Renamed from is_ada_subrange_type().
12052         Remove checks for is_ada() and TREE_UNSIGNED.
12053         (subrange_type_die): Emit a byte_size attribute if the subrange
12054         type size is different from the base type size.
12055         (modified_type_die): Replace call to is_ada_subrange_type() by
12056         call to is_subrange_type().
12057
12058 2004-01-16  Andrew Pinski  <pinskia@physics.uc.edu>
12059
12060         * config/sh/sh.c: Include ggc.h.
12061
12062 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
12063
12064         * Makefile.in (MD5_H): New.
12065         (fold-const.o): Depend on md5.h.
12066         (dwarf2out.o): Likewise.
12067         (cppfiles.o): Likewise.
12068         * cppfiles.c: Include md5.h.
12069         (should_stack_file): Check against list read from PCH file.
12070         (struct pchf_data): New.
12071         (pchf): New variable.
12072         (struct pchf_adder_info): New.
12073         (pchf_adder): New.
12074         (pchf_save_compare): New.
12075         (_cpp_save_file_entries): New.
12076         (_cpp_read_file_entries): New.
12077         (struct pchf_compare_data): New.
12078         (pchf_compare): New.
12079         (check_file_against_entries): New.
12080         * cpphash.h (_cpp_save_file_entries): Prototype.
12081         (_cpp_read_file_entries): Prototype.
12082         * cpppch.c (cpp_write_pch_state): Write the list of headers.
12083         (cpp_read_state): Read the list of headers.
12084
12085 2004-01-17  Jan Hubicka  <jh@suse.cz>
12086
12087         * c-common.c (c_estimate_num_insns_1): Handle builtin_constant_p and
12088         builtin_expect specially.
12089         * params.def (PARAM_MAX_INLINE_INSNS_AUTO): Set to 100.
12090         (PARAM_LARGE_FUNCTION_INSNS): Set to 3000.
12091         * invoke.texi (max-inline-insns-single): Set to 100.
12092         (large-function-insns): Set to 3000.
12093
12094 2004-01-16  Eric Christopher  <echristo@redhat.com>
12095             Chandrakala Chavva <cchavva@redhat.com>
12096
12097         * cppcharset.c (one_iso88591_to_utf8): New function.
12098         (convert_iso88591_utf8): Ditto. Use.
12099         (conversion_tab): Use.
12100         (_cpp_input_to_utf8): New function.
12101         (_cpp_init_iconv_buffer): Ditto.
12102         (_cpp_close_iconv_buffer): Ditto.
12103         * cpphash.h: Prototype new functions.
12104         (cpp_buffer): Add input_cset_desc.
12105         * cppinit.c: Add input_charset default.
12106         * cpplib.c (cpp_push_buffer): Support init and
12107         close of iconv.
12108         * cpplib.h (cpp_options): Add input_charset.
12109
12110 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
12111
12112         * system.h (ASM_OUTPUT_SECTION_NAME): Poison.
12113         * config/alpha/unicosmk.h: Remove a commented-out definition
12114         of ASM_OUTPUT_SECTION_NAME.
12115         * config/stormy16/stormy16.h: Likewise.
12116
12117 2004-01-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12118
12119         * fixinc/inclhack.def (alpha___extern_prefix): Renamed to ...
12120         (alpha___extern_prefix_sys_stat): ... this.
12121         Apply to <sys/mount.h>, too.
12122         Tweak to match more variations.
12123         * fixinc/tests/base/sys/stat.h: Adapt for new hackname.
12124
12125         * fixinc/inclhack.def (alpha___extern_prefix,
12126         alpha___extern_prefix_standards): New hacks to obey
12127         __PRAGMA_EXTERN_PREFIX.
12128         * fixinc/tests/base/testing.h [ALPHA___EXTERN_PREFIX_CHECK]: New
12129         test.
12130         * fixinc/tests/base/standards.h: Likewise.
12131
12132         * fixincl/inclhack.def (alpha_pthread): Tweak to match more
12133         variations.
12134         New testcase.
12135         * fixinc/tests/base/pthread.h: Handle it.
12136
12137         * fixincl/inclhack.def (bad_lval): Sort file list.
12138         Add many missing files up to Tru64 UNIX V5.1B.
12139         * gcc/fixinc/tests/base/libgen.h: Renamed to ...
12140         * gcc/fixinc/tests/base/dirent.h: ... this to match new file list
12141         order.
12142
12143         * fixinc/fixincl.x: Regenerate.
12144
12145 2004-01-16  Mark Mitchell  <mark@codesourcery.com>
12146
12147         * version.c (version_string): Change to 3.5.0.
12148         * doc/include/gcc-common.texi (version-GCC): Likewise.
12149
12150 2004-01-16  Jan Hubicka  <jh@suse.cz>
12151
12152         * i386.md (load_tp_di): Fix pasto.
12153
12154         PR opt/13608
12155         * i386.c (ix86_compute_frame_layout): Fix for alloca on leaf function.
12156
12157         * c-pretty-print.c (pp_c_type_cast, pp_c_abstract_declarator,
12158         pp_c_character_constant, pp_c_floating_constant,
12159         pp_c_additive_expression, pp_c_shift_expression,
12160         pp_c_equality_expression, pp_c_and_expression,
12161         pp_c_exclusive_or_expression, pp_c_inclusive_or_expression,
12162         pp_c_logical_and_expression): Remove inline modifier.
12163         * dwarf2out.c (get_AT): Likewise.
12164         * et-forest.c (et_splay): Likewise.
12165         * ra.h (ra_alloc, ra_calloc): Likewise
12166
12167 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
12168
12169         * config/frv/frv-protos.h: Fix comment formatting.
12170         * config/frv/frv.c: Likewise.
12171         * config/frv/frv.h: Likewise.
12172         * config/frv/frv.md: Likewise.
12173         * config/frv/frvbegin.c: Likewise.
12174         * config/frv/frvend.c: Likewise.
12175
12176 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
12177
12178         * system.h (LINKER_DOES_NOT_WORK_WITH_DWARF2): Poison.
12179         * doc/tm.texi (PREFERRED_DEBUGGING_TYPE): Don't mention
12180         LINKER_DOES_NOT_WORK_WITH_DWARF2.
12181         (LINKER_DOES_NOT_WORK_WITH_DWARF2): Remove.
12182
12183 2004-01-16  J"orn Rennecke <joern.rennecke@superh.com>
12184
12185         PR 11864
12186         * postreload.c (reload_cse_simplify_operands): Don't remove
12187         implicit extension from LOAD_EXTEND_OP.
12188
12189 2004-01-16  Jan Hubicka  <jh@suse.cz>
12190
12191         PR opt/11350
12192         * cfgcleanup.c (try_optimize_cfg): Suppress tablejump removal
12193         after reload.
12194         * cfgrtl.c (rtl_can_merge_blocks, cfglayout_can_merge_blocks,
12195         rtl_try_redirect_by_replacing_branch): Likewise.
12196
12197 2004-01-15  Geoffrey Keating  <geoffk@apple.com>
12198
12199         PR pch/13689
12200         * alias.c (struct alias_set_entry): Mark for GC.
12201         (alias_sets): Make static, mark for GC.
12202         (record_alias_subset): Use GC to allocate alias structures.
12203         * varray.c (element): Make generic varrays GCed.
12204
12205         PR pch/13361
12206         * c-typeck.c (constructor_asmspec): Delete.
12207         (struct initializer_stack): Delete field 'asmspec'.
12208         (start_init): Delete saving of asmspec.
12209         (finish_init): Don't update constructor_asmspec.
12210         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
12211         * stmt.c (expand_asm): Duplicate strings from tree.
12212         (expand_asm_operands): Likewise.
12213         * tree.c (tree_size): Update computation of size of STRING_CST.
12214         (make_node): Don't make STRING_CST nodes.
12215         (build_string): Allocate string with tree node.
12216         * tree.def (STRING_CST): Update comment.
12217         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
12218         (tree_string): Place contents of string in tree node.
12219         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
12220         from tree.
12221
12222         * config/rs6000/rs6000.c (rs6000_va_arg): No need to special-case
12223         altivec operands.
12224
12225 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
12226
12227         * c-common.h: Fix comment formatting.
12228         * c-cppbuiltin.c: Likewise.
12229         * c-pragma.c: Likewise.
12230         * calls.c: Likewise.
12231         * collect2.c: Likewise.
12232         * cppcharset.c: Likewise.
12233         * cpptrad.c: Likewise.
12234         * dbxout.c: Likewise.
12235         * defaults.h: Likewise.
12236         * dwarf2out.c: Likewise.
12237         * fold-const.c: Likewise.
12238         * genautomata.c: Likewise.
12239         * genconditions.c: Likewise.
12240         * genflags.c: Likewise.
12241         * gengtype.c: Likewise.
12242         * integrate.c: Likewise.
12243         * loop.c: Likewise.
12244         * predict.c: Likewise.
12245         * sdbout.c: Likewise.
12246
12247 2004-01-15  Zack Weinberg  <zack@codesourcery.com>
12248
12249         * config/ia64/ia64.md (*movti_internal): C output template
12250         extracted to ia64.c.
12251         (*movti_internal_reg): Delete.
12252         (reload_inti, reload_outti): Use the correct mode on operand 2
12253         in the first place, don't fix it up in the output template.
12254         (movtf, reload_ointf, reload_outtf): New expanders.
12255         (*movtf_internal): New define_insn_and_split.
12256         * config/ia64/ia64.c (ia64_split_timode): Rename to ia64_split_tmode;
12257         make static; do not hand TFmode CONST_DOUBLEs to split_double.
12258         (ia64_split_tmode_move): New function, body mostly pulled
12259         from ia64.md:*movti_internal.
12260         (ia64_function_arg_words): New function, extracted common
12261         logic from ia64_function_arg et seq.
12262         (ia64_function_arg_offset): Likewise.  Handle correctly the
12263         case of a scalar quantity 16 bytes wide with only 8-byte alignment.
12264         (ia64_function_arg, ia64_function_arg_partial_nregs)
12265         (ia64_function_arg_advance): Use ia64_function_arg_words and
12266         ia64_function_arg_offset.
12267         (ia64_function_value): TCmode does not go in float regs.
12268         (ia64_secondary_reload_class): Also handle TFmode.
12269         * config/ia64/ia64-protos.h: Remove prototype for
12270         ia64_split_timode; add prototype for ia64_split_tmode_move.
12271
12272 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
12273
12274         * Makefile.in (MAINT): Make it an immediate assignment.
12275
12276 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
12277
12278         * config/m32r/m32r.md: Remove useless calls to gen_lowpart.
12279
12280 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
12281
12282         * config/h8300/coff.h: Replace Hitachi with Renesas.
12283         * config/h8300/elf.h: Likewise.
12284         * config/h8300/h8300-protos.h: Likewise.
12285         * config/h8300/h8300.c: Likewise.
12286         * config/h8300/h8300.h: Likewise.
12287         * config/h8300/h8300.md: Likewise.
12288         * config/h8300/lib1funcs.asm: Likewise.
12289
12290 2004-01-15  Andrew Pinski  <apinski@apple.com>
12291
12292         * config/rs6000/rs6000.c (uses_TOC): Wrap #if TARGET_ELF
12293         around it.
12294
12295 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
12296
12297         * config/h8300/h8300.c (h8300_return_in_memory): New.
12298         (TARGET_STRUCT_VALUE_RTX): Likewise.
12299         (TARGET_RETURN_IN_MEMORY): Likewise.
12300         * config/h8300/h8300.h (STRUCT_VALUE): Remove.
12301         (RETURN_IN_MEMORY): Likewise.
12302
12303 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
12304
12305         PR optimization/13375
12306         * gcse.c (handle_avail_expr): Just return if the source is not a
12307         single set.
12308
12309 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
12310             Daniel Jacobowitz  <drow@mvista.com>
12311
12312         * arm/lib1funcs.asm (ARM_FUNC_START): Correct interworking case.
12313         (EQUIV): Define.
12314         (ARM_FUNC_ALIAS): New macro.
12315         * arm/ieee754-df.S (gedf2, ledf2, nedf2, eqdf2): Use it.
12316         * arm/ieee754-sf.S (gesf2, lesf2, nesf2, eqsf2): Use it.
12317
12318 2004-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12319
12320         PR optimization/12372
12321         * calls.c (expand_call): Add call_fusage data for stack arguments in
12322         constant calls.
12323
12324 2004-01-15  Alan Modra  <amodra@bigpond.net.au>
12325
12326         * config/rs6000/rs6000.c (uses_TOC): Correct comment.  Make static.
12327         (rs6000_elf_declare_function_name): Formatting.
12328         * config/rs6000/rs6000-protos.h (uses_TOC): Remove declaration.
12329
12330 2004-01-15  Jan Hubicka  <jh@suse.cz>
12331
12332         PR bootstrap/13692
12333         * sched-deps.c (sched_analyze_1, sched_analyze_2): Fix thinko in
12334         previous patch.
12335
12336 2004-01-15  Richard Henderson  <rth@redhat.com>
12337
12338         * config/alpha/alpha.h (REG_ALLOC_ORDER): Reorder fp regs after
12339         integer regs of the same call-savedness.
12340
12341 2004-01-15  Andreas Schwab  <schwab@suse.de>
12342
12343         PR bootstrap/13562
12344         * config/m68k/m68k.c (output_move_const_into_data_reg): Clear cc
12345         status for NOTB/NOTW/NEGW methods.
12346
12347 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
12348
12349         * doc/invoke.texi: Update dump file names.  Fix a typo.
12350
12351 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
12352
12353         * builtins.c (expand_builtin_va_end): Don't use
12354         EXPAND_BUILTIN_VA_END.
12355         * system.h (EXPAND_BUILTIN_VA_END): Poison.
12356         * config/d30v/d30v.h: Remove a commented-out definition of
12357         EXPAND_BUILTIN_VA_END.
12358         * config/stormy16/stormy16.h: Likewise.
12359
12360 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
12361
12362         * system.h (STRUCT_VALUE_INCOMING_REGNUM): Poison.
12363         * targhooks.c (default_struct_value_rtx): Don't use
12364         STRUCT_VALUE_INCOMING_REGNUM.
12365
12366 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
12367
12368         PR bootstrap/12744
12369         * configure.in: Revamp enable-generated-files-in-srcdir rule to define
12370         GENINSRC and not parsedir.  Define srcextra as a langhook.
12371         * configure: Regenerate.
12372         * Makefile.in: Suppress default .l.c rule.  Don't substitute
12373         parsedir and delete all references throughout.  Conditionally define
12374         rule for srcextra dependent on GENINSRC.
12375         (stmp-docobjdir): Delete.
12376         (c-parse.o, gengtype-lex.o, gengtype-yacc.o): Use implicit build rule.
12377         (srcextra): Copy c-parse.y, c-parse.c, gengtype-lex.c, gengtype-yacc.c,
12378         and gengtype-yacc.h back to source directory.
12379         (maintainer-clean): Delete all parse files in source directory.
12380         (distclean): Delete generated files.
12381
12382         * objc/Make-lang.in (objc-parse.o): Use implicit build rule.
12383         (objc-parse.c, objc-parse.y): Don't use parsedir.
12384         (objc.srcextra): Copy objc-parse.y and objc-parse.c back to source
12385         directory if requested.
12386         (po-generated): Don't use parsedir.
12387         (objc.maintainer-clean): Delete above files from source directory.
12388
12389 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
12390
12391         * doc/tm.texi (FUNCTION_VALUE): Fix a typo.
12392
12393 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
12394
12395         * doc/tm.texi: Replace RETURN_IN_MEMORY with
12396         TARGET_RETURN_IN_MEMORY.
12397
12398 2004-01-15  Jan Hubicka  <jh@suse.cz>
12399
12400         * builtins.c (std_expand_builtin_va_arg): Align operand when needed.
12401         * i386.c (init_cumulative_args): Set warn_sse; fix handling of variadic
12402         functions accepting SSE arguments
12403         (function_arg): Warn only when asked to warn.
12404         * i386.h (ix86_args): Add warn_sse/warn_mmx fiels.
12405
12406 2004-01-14  Joseph S. Myers  <jsm@polyomino.org.uk>
12407
12408         * c-parse.in (stmts_and_decls): Make label at end of compound
12409         statement a hard error.
12410
12411 2004-01-14  Jan Hubicka  <jh@suse.cz>
12412
12413         * cgraph.c (create_edge): Use local.redefined_extern_inline.
12414         * cgraph.h (cgraph_local_info): Sort fields by size; add
12415         redefined_extern_inline
12416         (cgraph_global_info): Sort fields by size.
12417         (cgraph_node): Likewise.
12418         * cgraphunit.c (cgraph_finalize_function): Se
12419         local.redefined_extern_inline on redefinition.
12420         (cgraph_analyze_function): Use it; fix formating.
12421
12422 2004-01-14  Jan Hubicka  <jh@suse.cz>
12423
12424         PR c++/10776
12425         * sched-deps.c (trye_dependency_cache, anti_dependency_cache,
12426         outptu_dependency_cache, forward_dependency_cahe): Trun to vectors of
12427         bitmaps
12428         (cache_size): New variable
12429         (add_dependence): Update use; canonize early memory locations
12430         (sched_analyze_1): Likewise.
12431         (sched_analyze_2): Likewise.
12432         (init_dependency_caches): Initialize bitmaps.
12433         (free_dependency_caches): Free bitmaps
12434
12435 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
12436
12437         * calls.c: Replace STRICT_ARGUMENT_NAMING in comments with
12438         targetm.calls.strict_argument_naming().
12439         * target.h: Likewise.
12440
12441 2004-01-14  Richard Henderson  <rth@redhat.com>
12442
12443         PR debug/13231
12444         * dwarf2out.c (dwarf2out_stack_adjust): Skip prologue and epilogue
12445         instructions.
12446
12447 2004-01-14  Richard Henderson  <rth@redhat.com>
12448
12449         PR c++/12491
12450         * except.c (struct eh_region): Add u.fixup.resolved.
12451         (resolve_one_fixup_region): Split out from ...
12452         (resolve_fixup_regions): ... here.
12453
12454 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
12455
12456         * config/mn10300/mn10300.h (STRUCT_VALUE): Change to 0.
12457
12458 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
12459
12460         * config/alpha/alpha.h (STRUCT_VALUE): Remove.
12461         * config/alpha/vms.h (STRUCT_VALUE_REGNUM): Remove #undef.
12462         (STRUCT_VALUE): Remove.
12463
12464 2004-01-14  Steven Bosscher  <stevenb@suse.de>
12465
12466         * system.h: Poison PROMOTED_MODE
12467         * integrate.c (expand_inline_function): Don't mention the
12468         PROMOTED_MODE.
12469         * loop.c (update_giv_derive): Same.
12470         * tree.h (DECL_RTL): Same.
12471
12472 2004-01-14  J"orn Rennecke <joern.rennecke@superh.com>
12473
12474         PR target/9365
12475         * sh.c (gen_block_redirect): Add special handling of RETURN.
12476         (gen_far_branch) Don't call gen_stuff_delay_slot if there is no
12477         far branch target (i.e. it's a return).
12478
12479 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
12480
12481         * regrename.c (find_oldest_value_reg): Fix a warning.
12482
12483 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
12484
12485         PR bootstrap/12527
12486         * config.gcc (arm*-*-linux*): Don't include unknown-elf.h in tm_file.
12487         Move linux-gas.h and linux-elf.h before aout.h.
12488         * arm/arm.h (INITIALIZE_TRAMPOLINE): Only define if not already.
12489         * arm/linux-elf.h (SUBTARGET_CPU_DEFAULT): Define.
12490
12491 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
12492
12493         * config/m32r/m32r.md: Use GEN_INT instead of gen_rtx
12494         (CONST_INT, VOIDmode, ...).
12495
12496 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
12497
12498         * regrename.c (find_oldest_value_reg): If the replacement uses
12499         multiple hard registers, check that all of them are in CLASS.
12500
12501 2004-01-14  Jan Hubicka  <jh@suse.cz>
12502
12503         * alias.c (get_alias_set):  Initialize alias set to 0 when subset is
12504         impossible.
12505
12506 2004-01-14  Kelley Cook  <kcook@gcc.gnu.org>
12507
12508         * Makefile.in: Define MAINT from --enable-maintainer-mode.
12509
12510 2004-01-14  Hartmut Penner  <hpenner@de.ibm.com>
12511
12512         * gcc/config/rs6000/rs6000.c (rs6000_stack_info)
12513         Calculate always vrsave_mask if TARGET_ALTIVEC.
12514         (rs6000_emit_prologue): Emit code for vrsave
12515         only if TARGET_ALTIVEC_VRSAVE.
12516         (rs6000_emit_epilogue): Likewise.
12517
12518 2004-01-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
12519
12520         * config/sparc/sparc.md (tie_add32): Fix pasto.
12521         (tie_add64): Likewise.
12522
12523 2004-01-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12524
12525         * config/i386/i386.md (*addqi_1_slp): Do not access operands[2].
12526
12527 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
12528
12529         * config/iq2000/iq2000-protos.h: Fix comment formatting.
12530         * config/iq2000/iq2000.c: Likewise.
12531         * config/iq2000/iq2000.md: Likewise.
12532
12533 2004-01-14  J. Brobecker  <brobecker@gnat.com>
12534
12535         * dwarf2out.c (is_ada_subrange_type): No longer check the TYPE_NAME.
12536         (subrange_type_die): Add handle for nameless subrange types.
12537
12538 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
12539
12540         * config/h8300/h8300-protos.h: Replace do_movsi with
12541         h8300_expand_movsi.
12542         * config/h8300/h8300.c (do_movsi): Change to
12543         h8300_expand_movsi.
12544         * config/h8300/h8300.md (movsi): Replace do_movsi with
12545         h8300_expand_movsi.
12546         (movsf): Likewise.
12547
12548 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
12549
12550         * config/h8300/h8300.c (dosize): Change to
12551         h8300_emit_stack_adjustment.  Update callers.
12552
12553 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
12554
12555         * config/h8300/h8300.md (movstrictqi): Add an alternative with
12556         the source being post_inc.  Tighten the predicate for the
12557         destination to register_operand.
12558         (movstricthi): Likewise.
12559
12560 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
12561
12562         * system.h (SHARED_BSS_SECTION_ASM_OP): Poison.
12563         * varasm.c (bss_section): Don't use SHARED_BSS_SECTION_ASM_OP.
12564         * doc/tm.texi (SHARED_BSS_SECTION_ASM_OP): Remove.
12565
12566 2004-01-14  Jan Hubicka  <jh@suse.cz>
12567
12568         Partial fix PR c++/12850
12569         * cgraphunit.c (cgraph_finalize_function): Always ggc_collect when
12570         at zero nest level.
12571
12572 2004-01-13  Bernardo Innocenti  <bernie@develer.com>
12573
12574         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Add missing "argptr"
12575         pseudo-register.
12576
12577 2004-01-13  Devang Patel <dpatel@apple.com
12578
12579         PR debug/7078
12580         * dbxout.c (dbxout_symbol_name): Emit mangled names for
12581         NAMESPACE_DECL memebers.
12582
12583 2004-01-13  Andrew Pinski  <pinskia@physics.uc.edu>
12584
12585         PR c++/12709
12586         * c-common.c (finish_fname_decls): Use the chain only if the
12587         tree is an expr_stmt.
12588
12589 2004-01-13  Vladimir Makarov  <vmakarov@redhat.com>
12590
12591         * rtl.def: Add comment about new option in automata_option.
12592
12593         * genautomata.c (PROGRESS_OPTION): New macro.
12594         (progress_flag): New global variable.
12595         (gen_automata_option): Process `progress'.
12596         (transform_insn_regexps, check_unit_distributions_to_automata,
12597         make_automaton, NDFA_to_DFA, build_automaton, create_automata,
12598         expand_automata, write_automata): Print about the progress only if
12599         progress_flag.  Remove fflush.
12600         (initiate_automaton_gen): Process command line flag `-progress'.
12601
12602         * doc/md.texi: Describe the new option.
12603
12604 2004-01-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12605
12606         * cfg.c (dump_bb): Dump entry edges.
12607
12608 2004-01-13  Richard Earnshaw  <rearnsha@arm.com>
12609
12610         * arm.c (thumb_legitimate_address_p): Only allow constant pool
12611         references from SImode.
12612         * arm.md (thumb_movhi_insn): Don't allow minipool references.
12613
12614 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
12615
12616         * system.h (TEXT_SECTION): Poison.
12617         * varasm.c (text_section): Don't use TEXT_SECTION.
12618         * config/sh/sh.c (sh_file_start): Fix a comment typo.
12619         * doc/tm.texi (TEXT_SECTION): Remove.
12620
12621 2004-01-13  Ben Elliston  <bje@wasabisystems.com>
12622
12623         * doc/rtl.texi (Vector Operations): Remove defunct vec_const item.
12624
12625 2004-01-12  James E Wilson  <wilson@specifixinc.com>
12626
12627         * unwind-libunwind.c: Delete.
12628
12629 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
12630
12631         PR 13656
12632         * c-decl.c (diagnose_mismatched_decls): Whenever newtype or
12633         oldtype is set, set *newtypep or *oldtypep too.  Do not set
12634         them at the very end.
12635         (validate_proto_after_old_defn): Restructure for comprehensibility;
12636         make error messages clearer.
12637
12638 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
12639
12640         * varray.h (VARRAY_POP): Add checking variant, aborts on underflow.
12641         (VARRAY_TOP): Use VARRAY_CHECK so the access is bounds-checked.
12642         * varray.c: No need to prototype error.
12643         (varray_check_failed): Wrap long string onto two lines.
12644         (varray_underflow): New function.
12645
12646 2004-01-13  Steven Bosscher  <stevenb@suse.de>
12647
12648         PR c++/13376
12649         * function.h (struct function): Kill `name' field.
12650         (current_function_name): Make it an extern function.
12651         * function.c (current_function_name): New function.
12652         * graph.c: Update all uses of current_function_name.
12653         * gcse.c: Likewise.
12654         * config/alpha/alpha.c, config/avr/avr.c, config/c4x/c4x.c,
12655         config/mips/mips.c, config/pdp11/pdp11.c: Likewise.
12656         * config/ip2k/ip2k.c (function_prologue): Use MAIN_NAME_P
12657         instead of a strcmp with "main".
12658
12659 2004-01-13  Jan Hubicka  <jh@suse.cz>
12660
12661         * c-decl.c (diagnose_mismatched_decls):  Fix warning calls.
12662
12663         * cgraphunit.c (cgraph_optimize_function):  Always do
12664         optimize_inline_calls when there is always_inline callee.
12665         (cgraph_decide_inlining): Fix formating.
12666         * tree-inline.c (inlinable_function_p): Do sorry for alwaysinline
12667         functions.
12668         (expand_call_inline): Likewise.
12669         * toplev.h (sorry): Fix prototype.
12670
12671 2004-01-12  Roger Sayle  <roger@eyesopen.com>
12672
12673         * builtins.c (expand_builtin_expect_jump): Simplify logic. Handle
12674         conditional jumps that drop through to unconditional jumps or the
12675         end of the sequence.
12676
12677 2004-01-13  Jan Hubicka  <jh@suse.cz>
12678
12679         * alias.c (new_alias_set): Construct the alias_set varray.
12680         (init_alias_once): Don't do it here.
12681
12682 2004-01-12  Marc Espie <espie@openbsd.org>
12683
12684         * system.h: handle YYBYACC like YYBISON.
12685
12686 2004-01-12  Jonathan Merriman <jonm@dualitymedia.com>
12687
12688         PR target/10847
12689         * config.gcc: No longer includes conflicting header sparc/sol2.h when
12690         building on sparc64-*-openbsd*.
12691
12692 2004-01-12  Andrew Pinski  <pinskia@physics.uc.edu>
12693
12694         PR debug/13539
12695         * dbxout.c (dbxout_type): Protected inheritance is not
12696         private but protected.
12697
12698 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
12699
12700         * config/mips/mips.c (mips_symbolic_constant_p): Revert last patch.
12701
12702 2004-01-12  Kazu Hirata  <kazu@cs.umass.edu>
12703
12704         PR optimization/12508.
12705         * combine.c (try_combine): Remove a dead set in a parallel
12706         even if its destination is a subreg.
12707
12708         Revert:
12709         2003-06-03  Kazu Hirata  <kazu@cs.umass.edu>
12710         * combine.c (simplify_set): Don't move a subreg in SET_SRC to
12711         SET_DEST if WORD_REGISTER_OPERATIONS is not defined.
12712
12713 2004-01-12  Geoffrey Keating  <geoffk@apple.com>
12714
12715         * real.c: Update copyright date.
12716         * emit-rtl.c: Likewise.
12717         * rtl.h: Likewise.
12718         * dwarf2out.c: Likewise.
12719         * config/rs6000/darwin-ldouble.c: Likewise.
12720         * config/rs6000/rs6000.md: Likewise.
12721
12722 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
12723
12724         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Add AIX
12725         TFmode to SImode libfuncs.
12726
12727 2004-01-12  Roger Sayle  <roger@eyesopen.com>
12728
12729         PR middle-end/11397
12730         * varasm.c (assemble_alias): Remove weak aliases from weak_decls.
12731
12732 2004-01-12  Jan Hubicka  <jh@suse.cz>
12733
12734         PR opt/12826
12735         * loop.c (insert_loop_mem): Preffer VOLATILE memory references to be
12736         stored.
12737
12738         PR opt/12863
12739         * cfgcleanup.c (label_is_jump_target_p): Move to...
12740         * rtlanal.c (label_is_jump_target_p): ... here.
12741         * cfgrtl.c (cfg_layout_redirect_edge_and_branch):  Fix redirecting of fallthru
12742         edges unified with branch edges.
12743
12744 2004-01-12  Richard Earnshaw  <rearnsha@arm.com>
12745
12746         * simplify-rtx.c (simplify_immed_subreg): Correctly extract the
12747         high word of an integral CONST_DOUBLE.
12748
12749 2004-01-12  Paul Brook  <paul@codesourcery.com>
12750
12751         * simplify-rtx.c (simplify_plus_minus): Always generate canonical form.
12752
12753 2004-01-12  J"orn Rennecke <joern.rennecke@superh.com>
12754
12755         PR target/13585
12756         * sh-protos.h (check_use_sfunc_addr): Declare.
12757         * sh.c (extract_sfunc_addr, check_use_sfunc_addr): New functions.
12758         * sh.md (use_sfunc_addr): Use check_use_sfunc_addr in insn predicate.
12759
12760 2004-01-12  Jan Hubicka  <jh@suse.cz>
12761
12762         * alias.c:  Invlude varray.h
12763         (alias_sets): Turn into varray.
12764         (get_alias_set_entry): Use VARRAY; mark inline.
12765         (mems_in_disjoint_alias_sets_p): Mark inline.
12766         (record_alias_subset): Use varray.
12767         (init_alias_once): Initialize varray.
12768         (new_alias_set): Grow array.
12769         * varray.c: Make VARRAY_GENERIC_PTR non GTYized.
12770
12771 2004-01-12  Jan Hubicka  <jh@suse.cz>
12772
12773         Partial fix for PR opt/10776 II
12774         * cselib.c: Include params.h
12775         (cselib_invalidate_mem):  Limit amount of nonconflicting memory
12776         locations.
12777         * params.def (PARAM_MAX_CSELIB_MEMORY_LOCATIONS): New.
12778         * Makefile.in (cselib.o): Depend on params.h
12779
12780 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
12781
12782         * combine.c (combine_simplify_rtx): Don't pass VOIDmode to
12783         simplify_unary_operation if the operand has a known mode.
12784
12785 2004-01-12  Hartmut Penner  <hpenner@de.ibm.com>
12786
12787         PR target/13534
12788         * gcc/config/rs6000/rs6000.c (word_offset_memref_operand): New
12789         predicate to handle 'ld' conform addresses.
12790         * gcc/config/rs6000/rs6000.h (EXTRA_CONSTRAINT): New 'Y'
12791         contraint.
12792         (EXTRA_MEMORY_CONSTRAINT): Tell reload which constraint
12793         are memory contraints.
12794         * gcc/config/rs6000/rs6000-protos.h (word_offset_memref_operand):
12795         New prototype.
12796         * gcc/config/rs6000/rs6000.md (*movdf_hardfloat64):
12797         Change 'o' to 'Y' constraint.
12798         (*movdf_softfloat64): Ditto.
12799
12800 2004-01-12  Bernardo Innocenti  <bernie@develer.com>
12801
12802         * gcc/config/m68k/m68k.md: Switch from the "*..." syntax to the
12803         brace-enclosed syntax in all C output statements.
12804
12805 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
12806
12807         PR target/13401
12808         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
12809         Objective-C language type value is 14.
12810
12811 2004-01-12  Markus F.X.J. Oberhumer  <markus@oberhumer.com>
12812
12813         PR c/12148
12814         * config/m68k/fpgnulib.c: Fix `-mshort' bugs: Use `long' instead of
12815         `int' in a number of places to make sure we always have a SImode
12816         and not a HImode.  Add a 'L' suffix to a number of constants.
12817
12818 2004-01-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12819
12820         * pa.c: Don't include obstack.h.
12821
12822         * pa.md: Correct constraint in pattern for loading PIC label address.
12823
12824 2004-01-11  Kaz Kojima  <kkojima@gcc.gnu.org>
12825
12826         * config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine
12827          before defining.
12828
12829 2004-01-11  Steven Bosscher  <stevenb@suse.de>
12830
12831         PR fortran/9972
12832         * toplev.c (rest_of_handle_inline): Also consider functions
12833         for deferral if the language is GNU F77.
12834
12835 2004-01-11  Zack Weinberg  <zack@codesourcery.com>
12836
12837         * c-decl.c (diagnose_arglist_conflict): Add missing space to
12838         diagnostic messages.
12839
12840 2004-01-11  Jakub Jelinek  <jakub@redhat.com>
12841
12842         PR middle-end/13392
12843         * builtins.c (expand_builtin_expect_jump): Handle conditional jumps
12844         to drop through label.  Don't fall back to SCC even when conditional
12845         jump has not been found.
12846
12847 2004-01-11  Jan Hubicka  <jh@suse.cz>
12848
12849         * invoke.texi: Fix syntax error in previous patch.
12850
12851         Partial fix for PR opt/10776
12852         * Makefile.in (reload.o): Include param.h
12853         * params.def (PARAM_MAX_RELOAD_SEARCH_INSNS): New parameter.
12854         * reload.c: Include params.h.
12855         (find_equiv_reg): Work limiting check.
12856         * invoke.texi: Document.
12857
12858 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
12859
12860         * config/mips/mips.c (mips_symbolic_constant_p): Don't allow
12861         out-of-bounds accesses to string constants.  Simplify mips16
12862         case accordingly.
12863
12864 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
12865
12866         PR optimization/13469
12867         * toplev.c (rest_of_compilation): Call purge_all_dead_edges after
12868         reload_cse_regs (-fnon-call-exceptions only).
12869
12870 2004-01-11  Kazu Hirata  <kazu@cs.umass.edu>
12871
12872         * config/mcore/lib1.asm: Fix comment formatting.
12873         * config/mcore/mcore-elf.h: Likewise.
12874         * config/mcore/mcore.c: Likewise.
12875         * config/mcore/mcore.h: Likewise.
12876         * config/mcore/mcore.md: Likewise.
12877
12878 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
12879
12880         * c-decl.c (duplicate_decls): Break apart into...
12881         (diagnose_arglist_conflict, validate_proto_after_old_defn)
12882         (locate_old_defn, diagnose_mismatched_decls, merge_decls):
12883         ... these new functions.  Restructure for comprehensibility.
12884         Remove various archaic special cases.  Always report the
12885         location of the previous declaration when a diagnostic is issued.
12886         (redeclaration_error_message): Fold into diagnose_mismatched_decls.
12887         (match_builtin_function_types): Delete unnecessary forward declaration.
12888
12889 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
12890
12891         * genautomata.c (make_automaton, NDFA_to_DFA):
12892         Print progress bars with '.' characters instead of '*'.
12893         (build_automaton): Change notes to match.
12894
12895 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
12896
12897         * config/m32r/m32r.md: Use define_constants for unspec and
12898         unspec_volatile.
12899
12900 2004-01-10  Jan Hubicka  <jh@suse.cz>
12901
12902         PR opt/11635
12903         * expr.c (expand_expr_real):  More curefully expand union casts.
12904
12905 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
12906
12907         * config/m32r/m32r.md (flush_icache): Use 1 for
12908         unspec_volatile.
12909
12910 2004-01-10  David Edelsohn  <edelsohn@gnu.org>
12911             James E Wilson  <wilson@specifixinc.com>
12912
12913         PR debug/12860
12914         * dbxout.c (dbxout_symbol): Remove initialization of
12915         current_sym_code, current_sym_value, and current_sym_addr.
12916         (dbxout_symbol_location): Same.
12917         (dbxout_prepare_symbol): Zero current_sym_code,
12918         current_sym_value, and current_sym_addr.
12919
12920 2004-01-10  Richard Sandiford  <rsandifo@redhat.com>
12921
12922         * tree.c (get_unwidened): Reorder conditions so that the null pointer
12923         check is done first.
12924
12925 2004-01-09  Eric Christopher  <echristo@redhat.com>
12926
12927         * toplev.c (rest_of_handle_cfg): Add reg_scan pass
12928         if we're running mark_constant_function.
12929
12930 2004-01-09  Jeff Bailey  <jbailey@nisa.net>
12931
12932         PR target/12561
12933         * config/t-gnu: Rename SYSTEM_HEADER_DIR to NATIVE_SYSTEM_HEADER_DIR.
12934
12935 2004-01-09  Andrew Pinski <pinskia@physics.uc.edu>
12936
12937         PR debug/11231
12938         * dbxout.c (dbxout_type_fields): Return if any item is
12939         error_mark_node or the type is error_mark_node.
12940
12941 2004-01-09  Geoffrey Keating  <geoffk@apple.com>
12942
12943         * config/rs6000/darwin-ldouble.c: Add big comment explaining
12944         exactly what is expected as a 'long double'.
12945         (_xlqadd): When a value to be returned is representable as a
12946         'double', just return it directly, do not construct it using a union.
12947         Also, correct final fixup.
12948         (_xlqmul): Likewise.
12949         (_xlqdiv): Likewise.
12950         * real.c (encode_ibm_extended): Make consistent with darwin-ldouble.c.
12951
12952         * config/rs6000/rs6000.md (fix_trunctfdi2): Delete.
12953
12954 2004-01-09  Richard Henderson  <rth@redhat.com>
12955
12956         * recog.c (constrain_operands): Validate mem operands.
12957
12958 2004-01-09   James E Wilson  <wilson@specifixinc.com>
12959
12960         * gcc.c (init_spec): Remove -lunwind from shared case.
12961         * conifg/ia64/t-hpux (SHLIB_LINK): Add -lunwind.
12962
12963 2004-01-09  Steve Ellcey  <sje@cup.hp.com>
12964
12965         * configure.ac: (gcc_cv_ld_hidden) Set to true for ia64*-*-hpux*.
12966         * configure: Regenerate
12967
12968 2004-01-09  Joseph S. Myers  <jsm@polyomino.org.uk>
12969
12970         PR c/11234
12971         * c-typeck.c (build_c_cast): If pedantic, warn for conversions
12972         between function and object pointers.
12973         (digest_init): When comparing a pointer to function type to the
12974         target type, only apply TREE_TYPE once to the pointer to function
12975         type.
12976         * except.c (for_each_eh_label_1): Treat data as a pointer to a
12977         function pointer rather than casting it to a function pointer.
12978         (for_each_eh_label): Update caller.
12979         * recog.h (struct insn_data): Use a struct or union for output.
12980         * genoutput.c (output_insn_data): Update.
12981         * final.c (get_insn_template): Update.
12982
12983 2004-01-09  Mark Mitchell  <mark@codesourcery.com>
12984
12985         * expr.h (expand_expr): Make it a macro, not a function.
12986         (expand_expr_real): New function.
12987         * expr.c (store_expr): Adjust logic for deciding whether or not to
12988         copy the value returned by expand_expr.
12989         (expand_expr): Rename to ...
12990         (expand_expr_real): ... this.  Add alt_rtl parameter.  Adjust
12991         calls to language hooks.
12992         * c-common.h (c_expand_expr): Adjust prototype.
12993         * c-common.c (c_expand_expr): Add alt_rtl parameter.
12994         * langhooks-def.h (lhd_expand_expr): Change prototype.
12995         * langhooks.c (lhd_expand_expr): Add all_rtl parameter.
12996         * langhooks.h (lang_hooks): Change type of expand_expr.
12997         * stmt.c (stmt_status): Add x_last_expr_alt_rtl.
12998         (last_expr_alt_rtl): Likewise.
12999         (expand_expr_stmt_value): Set last_expr_alt_rtl.
13000         (clear_last_expr): Clear it.
13001         (expand_end_stmt_expr): Set RTL_EXPR_ATL_RTL.
13002         (expand_end_bindings): Save and restor last_expr_alt_rtl.
13003         * tree.def (RTL_EXPR): Give it an additional operand.
13004         * tree.h (RTL_EXPR_ALT_RTL): New macro.
13005
13006 2004-01-09  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
13007
13008         * config/m32r/m32r.h (TARGET_CPU_CPP_BUILTINS): Add __m32r__.
13009         * config/m32r/m32r.c (call26_operand): Allow in PIC mode.
13010
13011 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
13012
13013         PR target/13380.
13014         * config/m32r/m32r.md: Replace (reg:SI 17) with (reg:CC 17)
13015         or (ne:SI (reg:CC 17) (const_int 0)).
13016         Be specific about modes wherever possible.
13017
13018 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
13019
13020         * config/m32r/m32r.c (m32r_expand_block_move): Call
13021         gen_movestrsi_internal with two more arguments.
13022         (m32r_output_block_move): Adjust operand numbers.
13023         Properly update the source and destination pointers.
13024         * config/m32r/m32r.md (movstrsi_internal): Use 'r' instead of
13025         'r+'.  Change the set detinations to match_operand.
13026
13027 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
13028
13029         * final.c (FIRST_INSN_ADDRESS): Remove.
13030         (shorten_branches): Don't use FIRST_INSN_ADDRESS.
13031         * system.h (FIRST_INSN_ADDRESS): Poison.
13032         * config/avr/avr.h: Remove a comment about FIRST_INSN_ADDRESS.
13033         * config/m32r/m32r-protos.h: Remove the prototype for
13034         m32r_first_insn_address.
13035         * config/m32r/m32r.c (m32r_first_insn_address): Remove.
13036         * config/m32r/m32r.h (FIRST_INSN_ADDRESS): Likewise.
13037         * doc/md.texi (FIRST_INSN_ADDRESS): Likewise.
13038
13039 2004-01-09  J. Brobecker  <brobecker@gnat.com>
13040
13041         * dwarf2out.c (gen_enumeration_type_die): Return the DIE that
13042         we just created.
13043         (is_ada_subrange_type): DIEs for enumeration subtypes should be
13044         emitted as subrange types too.
13045         (subrange_type_die): Add handling of enumeration subtypes.
13046
13047 2004-01-08  Richard Henderson  <rth@redhat.com>
13048
13049         PR opt/12441
13050         Revert: Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>
13051         * i386.c (aligned_operand): Be prepared for SUBREGed registers.
13052         (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
13053         (ix86_address_cost): Be prepared for SUBREGed registers.
13054         (legitimate_address_p): Accept SUBREGed registers.
13055
13056 2004-01-08  Kelley Cook  <kcook@gcc.gnu.org>
13057
13058         * Makefile.in: Rename configure.in to configure.ac
13059         * doc/sourcebuild.texi: Likewise.
13060         * configure: Regenerate.
13061         * config.in: Regenerate.
13062
13063 2004-01-08  Stuart Hastings  <stuart@apple.com>
13064
13065         * config/i386/i386.md: Typos in MMX/SSE immediate shifts.
13066
13067 2004-01-08  Jan Hubicka  <jh@suse.cz>
13068
13069         * cgraphunit.c (cgraph_decide_inlining):  Fix typo.
13070
13071 2004-01-08  Geoffrey Keating  <geoffk@apple.com>
13072
13073         * config/rs6000/rs6000.md (cmptf_internal1): Correct branch offset.
13074         (UNSPEC_FIX_TRUNC_TF): New constant.
13075         (movtf_internal): Make splitter active only when insn is active.
13076         (extenddftf2): Rewrite to properly load zero into low part.
13077         (extenddftf2_internal): New.
13078         (extendsftf2): Rewrite.
13079         (truncdftf2): Correct length.
13080         (floatditf2): Delete.
13081         (fix_trunc_helper): New.
13082         (fix_trunctfdi2): Use fix_trunc_helper.
13083         (fix_trunctfsi2): Likewise.fix_trunc
13084         (fix_trunctfsi2_internal): New.
13085
13086         * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): lo_sum
13087         addresses are legitimate on Darwin even when flag_pic.
13088         (rs6000_legitimize_reload_address) [TARGET_MACHO]: Don't create
13089         non-offsettable addresses for loads of TFmode constants.
13090
13091 2004-01-08  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
13092
13093         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Actually emit
13094         variables in the appropriate bss section.
13095
13096 2004-01-09  Alan Modra  <amodra@bigpond.net.au>
13097
13098         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Ensure
13099         target_flags has MASK_POWERPC64 when -m64.
13100         * config/rs6000/rs6000.c (processor_target_table): Add MASK_POWERPC64
13101         to 620, 630, power3, power4 and rs64a entries.
13102         * config/rs6000/rs6000.h (MASK_64BIT): Expand comment.
13103
13104 2004-01-08  Richard Sandiford  <rsandifo@redhat.com>
13105
13106         * simplify-rtx.c (simplify_immed_subreg): Fix construction of
13107         floating-point constants.
13108
13109 2004-01-08  J. Brobecker  <brobecker@gnat.com>
13110
13111         * dwarf2out.c (subrange_type_die): Add context_die parameter.
13112         Create the subrange_type DIE using the given context DIE.
13113         (modified_type_die): Update call to subrange_type_die.
13114
13115 2004-01-08  Zack Weinberg  <zack@codesourcery.com>
13116
13117         * dwarf2.h, unwind-dw2-fde.h, unwind-pe.h, unwind.h:
13118         Add multiple-include guard.
13119
13120 2004-01-08  Hartmut Penner  <hpenner@de.ibm.com>
13121
13122         * gcc/config/rs6000/rs6000.c (easy_vector_constant): Accept
13123         all vector constant loadable by vsplt*.
13124         (output_vec_const_move): Likewise.
13125
13126 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
13127
13128         PR c/6024
13129         * c-typeck.c (comptypes): Only treat enumerated types in the same
13130         translation unit as compatible with each other when they are the
13131         same type.
13132         * doc/extend.texi: Update.
13133
13134 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
13135
13136         PR c/12165
13137         * c-decl.c (grokdeclarator): Take type qualifiers of typedefed
13138         array type from the array element type.
13139
13140 2004-01-07  Alan Modra  <amodra@bigpond.net.au>
13141
13142         * config/rs6000/rs6000.c (rs6000_dbx_register_number): New function.
13143         * config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Declare.
13144         * config/rs6000/rs6000.h (DWARF_FRAME_REGNUM): Define.
13145         (DWARF_REG_TO_UNWIND_COLUMN): Correct column adjustment and comment.
13146         * config/rs6000/sysv4.h (DBX_REGISTER_NUMBER): Define.
13147
13148 2004-01-06  Eric Christopher  <echristo@redhat.com>
13149
13150         * config/mips/mips.h (MDEBUG_ASM_SPEC): Change for dwarf2 default.
13151         (DWARF2_DEBUGGING_INFO): Define.
13152         (PREFERRED_DEBUGGING_TYPE): Set to dwarf2.
13153         * config/mips/openbsd.h (PREFERRED_DEBUGGING_TYPE): Remove.
13154         * config/mips/iris6.h (SUBTARGET_ASM_DEBUGGING_SPEC): Only pass -g0
13155         for irix as.
13156         (SUBTARGET_ASM_OPTIMIZING_SPEC): Only pass O0 for irix as.
13157         * config/mips/iris6gas.h (MDEBUG_ASM_SPEC): Remove.
13158         * config/mips/iris5gas.h: Ditto.
13159         (DBX_DEBUGGING_INFO): Remove.
13160         (DWARF2_DEBUGGING_INFO): Ditto.
13161         (MIPS_DEBUGGING_INFO): Ditto.
13162         (PREFERRED_DEBUGGING_TYPE): Ditto.
13163         * config/mips/elf.h (DWARF2_DEBUGGING_INFO): Remove.
13164         (PREFERRED_DEBUGGING_TYPE): Ditto.
13165         (SUBTARGET_ASM_DEBUGGING_SPEC): Ditto.
13166         * config/mips/elf64.h: Ditto.
13167
13168 2004-01-06  Jan Hubicka  <jh@suse.cz>
13169
13170         * Makefile.in (STAGEPROFILE_FLAGS_TO_PASS): Use -fprofile-generate.
13171         (STAGEFEEDBACK_FLAGS_TO_PASS): Use -fprofile-use.
13172
13173 2004-01-06  Geoffrey Keating  <geoffk@apple.com>
13174
13175         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Compile darwin-ldouble.c.
13176         (TARGET_LIBGCC2_CFLAGS): Use -mlong-double-128.
13177         * config/rs6000/darwin-ldouble.c: New.
13178
13179         * emit-rtl.c (gen_lowpart_common): Use simplify_gen_subreg
13180         for constants.
13181         (constant_subword): Delete.
13182         * rtl.h (constant_subword): Delete prototype.
13183         (immed_double_const): Is not in varasm.c.
13184         * simplify-rtx.c (simplify_immed_subreg): New.
13185         (simplify_subreg): Use simplify_immed_subreg.
13186
13187         * config/rs6000/rs6000.md (floatsitf2): Use expand_float rather
13188         than trying to generate RTL directly.
13189         (fix_trunctfsi2): Use expand_fix rather than trying to generate
13190         RTL directly.
13191
13192         * dwarf2out.c (add_const_value_attribute): Remove incorrect comment.
13193
13194 2004-01-06  David Edelsohn  <edelsohn@gnu.org>
13195
13196         * config/rs6000/xcoff.h (EXTRA_SECTION_FUNCTIONS): Split each
13197         function into a separate macro.
13198         (read_only_data_section): Add void argument.
13199         (private_data_section): Same.
13200         (read_only_private_data_section): Same.
13201         (toc_section): Same.
13202
13203 2004-01-06  Jan Hubicka  <jh@suse.cz>
13204
13205         * invoke.texi:  Remove typo in last change.
13206
13207         PR target/10301
13208         * config.gcc: Accept opteron and athlon-64 as variants
13209         of k8.
13210         * i386.c (override_options): Likewise.
13211         * invoke.texi (i386 -mtune): Expand documentation.
13212
13213 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
13214
13215         * alias.c: Fix comment typos.
13216         * builtins.c: Likewise.
13217         * cfg.c: Likewise.
13218         * df.c: Likewise.
13219         * dominance.c: Likewise.
13220         * dwarf2out.c: Likewise.
13221         * emit-rtl.c: Likewise.
13222         * expr.c: Likewise.
13223         * final.c: Likewise.
13224         * fold-const.c: Likewise.
13225         * gcse.c: Likewise.
13226         * genattrtab.c: Likewise.
13227         * genrecog.c: Likewise.
13228         * gensupport.c: Likewise.
13229         * ggc-zone.c: Likewise.
13230         * integrate.c: Likewise.
13231         * local-alloc.c: Likewise.
13232         * loop.c: Likewise.
13233         * recog.c: Likewise.
13234         * regmove.c: Likewise.
13235         * reg-stack.c: Likewise.
13236         * reorg.c: Likewise.
13237         * rtlanal.c: Likewise.
13238         * rtl.h: Likewise.
13239         * sched-ebb.c: Likewise.
13240         * simplify-rtx.c: Likewise.
13241         * toplev.c: Likewise.
13242         * varasm.c: Likewise.
13243
13244 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
13245
13246         * doc/install.texi: Fix typos.
13247         * doc/invoke.texi: Likewise.
13248         * doc/md.texi: Likewise.
13249
13250 2004-01-06  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
13251
13252         * config/m32r/m32r.h (TRAMPOLINE_LINE_SIZE): Changed
13253
13254 2004-01-06  Jan Hubicka  <jh@suse.cz>
13255
13256         * i386.c (init_cumulative_args):  Add handling of MMX_REGPARM.
13257         (function_arg_advance):  Do not pass aggregates in SSE; deal handling
13258         of MMX_REGPARM.
13259         (function_arg): Add new warnings about ABI changes;  fix SSE_REGPARM;
13260         add MMX_REGPARM.
13261         * i386.h (ix86_args): Add mmx_words/mmx_regs/mmx_regno fields.
13262         (SSE_REGPARM_MAX): Default to 3 on i386 -msse ABI.
13263         (MMX_REGPARM_MAX): Similarly for -mmmx.
13264
13265 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
13266
13267         * config/sh/linux.h: Fix comment formatting.
13268         * config/sh/netbsd-elf.h: Likewise.
13269         * config/sh/sh.c: Likewise.
13270         * config/sh/sh.h: Likewise.
13271         * config/sh/vxworks.h: Likewise.
13272
13273 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
13274
13275         * system.h (ASM_OUTPUT_MAIN_SOURCE_FILENAME): Poison.
13276         * toplev.c (output_file_directive): Don't use
13277         ASM_OUTPUT_MAIN_SOURCE_FILENAME.
13278
13279 2004-01-05  Steven Bosscher <s.bosscher@student.tudelft.nl>
13280
13281         * toplev.c: Fix broken checkin of 2003-12-30.
13282
13283 2004-01-05  Daniel Berlin  <dberlin@dberlin.org>
13284
13285         * ggc-zone.c: Remove everything in #ifdef USING_MALLOC_PAGE_GROUPS
13286         (USING_MMAP): We don't support non-mmap.
13287         (struct alloc_chunk): Steal 1 bit from typecode, use it to mark
13288         large objects.
13289         (struct page_entry): Remove bytes_free.
13290         (struct page_table_chain): Remove.
13291         (struct globals): Remove page_table member.
13292         (loookup_page_table_entry): Function deleted.
13293         (set_page_table_entry): Ditto.
13294         (ggc_allocated_p): No longer need page table lookups.
13295         (ggc_marked_p): Ditto.
13296         (alloc_small_page): Don't care about bytes_free anymore.
13297         (alloc_large_page): Round up size.
13298         (ggc_alloc_zone_1): Mark large objects as such, and calculate
13299         their size the new way.
13300         Remove page table lookups and setting.
13301         (ggc_get_size): Calculate large object size the new way.
13302         (sweep_pages): Redo to account for fact that we no longer have
13303         bytes_free.
13304         (ggc_collect): No longer need to reincrement bytes_free.
13305         (ggc_pch_alloc_object): Handle new large objects properly.
13306         (ggc_pch_read): Put PCH stuff into it's own uncollected zone.
13307
13308 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
13309
13310         * doc/invoke.texi: Remove a page break.
13311
13312 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
13313
13314         * config/avr/avr.c (avr_output_function_prologue): Remove an
13315         extra pair of curly braces.
13316
13317 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
13318
13319         * config/mn10300/mn10300.c: Fix comment formatting.
13320         * config/mn10300/mn10300.h: Likewise.
13321
13322 2004-01-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13323
13324         * tree.h: Update documentation on nothrow_flag.
13325         * print-tree.c (print_node): Print TREE_NOTHROW as "align-ok" for
13326         types.
13327
13328 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
13329
13330         * doc/invoke.texi: Remove traces of dead ports.
13331
13332 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
13333
13334         * doc/invoke.texi: Add documentation for the MIPS -mexplicit-relocs
13335         option.
13336
13337 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
13338
13339         PR target/12945
13340         * coverage.c (coverage_counter_alloc): Set SYMBOL_FLAG_LOCAL for
13341         counter labels.
13342         * config/mips/mips.c (INTERNAL_SYMBOL_P): Delete.
13343         (mips_classify_symbol): Always treat SYMBOL_REF_FLAG as indicating
13344         string constants if TARGET_MIPS16.  Use SYMBOL_REF_DECL to check
13345         the binding of decl symbols, otherwise check SYMBOL_REF_LOCAL_P.
13346         (mips_symbol_insns): Don't trust the local/global classification.
13347         (m16_usym8_4, m16_usym5_4): Same mips16 change as mips_classify_symbol.
13348         (override_options): Make -mabicalls -fno-unit-at-a-time imply
13349         -mno-explicit-relocs.
13350         (mips_encode_section_info): Don't use SYMBOL_REF_FLAG to distinguish
13351         between local and global symbols.
13352
13353 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
13354
13355         * config/mips/mips-protos.h (mips_dangerous_for_la25_p): Declare.
13356         (mips_preferred_reload_class): Declare.
13357         * config/mips/mips.h (DANGEROUS_FOR_LA25_P): Replace with function.
13358         (EXTRA_CONSTRAINT): Update accordingly.
13359         (PREFERRED_RELOAD_CLASS): Use mips_preferred_reload_class.
13360         * config/mips/mips.c (mips_dangerous_for_la25_p): New function.
13361         (mips_preferred_reload_class): New function.  Prefer LEA_REGS if
13362         mips_dangerous_for_la25_p.
13363         (mips_secondary_reload_class): Use LEA_REGS rather than GR_REGS
13364         if mips_dangerous_for_la25_p.
13365
13366 2004-01-05  Bernardo Innocenti  <bernie@develer.com>
13367
13368         * config/m68k/m68k.c (output_andsi3): Fix signed/unsigned comparison
13369         warning.
13370
13371 2004-01-04  Nathanael Nerode  <neroden@gcc.gnu.org>
13372
13373         * configure.ac: Use AC_PROG_CPP_WERROR.
13374         * configure: Regenerate.
13375
13376 2004-01-04  Zack Weinberg  <zack@codesourcery.com>
13377
13378         * .cvsignore: Add autom4te.cache.
13379
13380 2004-01-04  Richard Sandiford  <rsandifo@redhat.com>
13381
13382         * doc/invoke.texi: Revamp documentation of MIPS options.  Remove
13383         -mabi=meabi, -mabi-fake-default, -mmips-as, -mgas, -mmips-tfile,
13384         -m4650, -mfix7000 and -(m)no-crt0.  Put endianness options first,
13385         then architecture options, then ABI options.  General rewording.
13386
13387 2004-01-04  Joseph S. Myers  <jsm@polyomino.org.uk>
13388
13389         PR c/3414
13390         * doc/extend.texi: Clarify definition of malloc attribute.
13391
13392 2004-01-04  Jan Hubicka  <jh@suse.cz>
13393
13394         * Makefile.in (cgraph.o, cgraphunit.o): Add intl.h dependency.
13395         * cgraph.c (create_edge, dump_cgraph): Update to use inline_failed
13396         * cgraph.h (cgraph_edge): Replace inline_call by inline_failed
13397         (cgraph_inline_p): Add extra argument reason.
13398         * cgraphunit.c: Minor formating fixes.
13399         cgraph_first_inlined_callee): New functions.
13400         (record_call_1): Record builtins too.
13401         (cgraph_analyze_function): Update inline_failed messages.
13402         (cgraph_mark_functions_to_output, cgraph_expand_function, cgraph_inlined_into,
13403         cgraph_inlined_callees, cgraph_estimate_growth): Update to use inline_failed.
13404         (cgraph_check_inline_limits): Likewise; Add argument reason.
13405         (cgraph_set_inline_failed): New static function.
13406         (cgraph_decide_inlining_of_small_function, cgraph_decide_inlining): Set
13407         reasons.
13408         (cgraph_inline_p): Add new argument reason.
13409         * tree-inline.c (expand_call_inline):  Update warning.
13410
13411 2004-01-03  Nathanael Nerode  <neroden@gcc.gnu.org>
13412
13413         * configure.ac: Replace AC_INIT, AC_OUTPUT, AC_CANONICAL_SYSTEM
13414         with modern equivalents.
13415         * configure: Regenerate.
13416
13417         * configure.ac: Replace gcc_AC_CHECK_TYPE with AC_CHECK_TYPE.
13418         * aclocal.m4 (gcc_AC_CHECK_TYPE): Remove.
13419         * configure: Regenerate.
13420
13421         * doc/install.texi: Note that 'gcc' is now a 2.57 directory.
13422
13423         * configure.in: Rename to configure.ac.
13424         * configure.ac: Renamed from configure.in; make minimum necessary
13425         changes for autoconf 2.5x.
13426         * aclocal.m4: Make minimum necessary changes for autoconf 2.5x.
13427         * configure: Regenerate with autoconf 2.57.
13428
13429 2004-01-03  Kazu Hirata  <kazu@cs.umass.edu>
13430
13431         * config/mips/linux.h: Fix comment formatting.
13432         * config/mips/mips.c: Likewise.
13433         * config/mips/mips.h: Likewise.
13434         * config/mips/mips.md: Likewise.
13435         * config/mips/netbsd.h: Likewise.
13436         * config/mips/windiss.h: Likewise.
13437
13438 2004-01-02  Richard Henderson  <rth@redhat.com>
13439
13440         * config/i386/i386.md (fp constant pool splitter): Reorg suppression
13441         for sse and 387; add suppression for mmx.
13442
13443 2004-01-02  Andrew Pinski  <pinskia@physics.uc.edu>
13444
13445         * loop.c (loop_optimize): Free all loops_info's mems.
13446
13447         * c-typeck.c (finish_init): Free spelling_base before
13448         setting it again.
13449
13450         * cfgloop.c (flow_loops_find): Always free the sbitmap
13451         headers.
13452
13453         * predict.c (estimate_probability): Free bbs after being
13454         done with it.
13455
13456 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
13457
13458         * config/mn10300/mn10300.h (PREDICATE_CODES): Add
13459         const_8bit_operand and call_address_operand.
13460
13461 2004-01-02  Jan Hubicka  <jh@suse.cz>
13462
13463         * cgraphunit.c (cgraph_optimize_function):  Call optimize_inline_calls
13464         when there is nothing to inline but warnings are requested.
13465         (cgraph_decide_inlining):  Fix memory leak.
13466
13467 2004-01-02  Jan Hubicka  <jh@suse.cz>
13468
13469         * expr.c (store_constructor):  Fix pasto in previous patch.
13470
13471 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
13472
13473         * config/i386/cygming.h: Fix comment formatting.
13474         * config/i386/djgpp.h: Likewise.
13475         * config/i386/gthr-win32.c: Likewise.
13476         * config/i386/i386-interix.h: Likewise.
13477         * config/i386/i386.c: Likewise.
13478         * config/i386/i386.h: Likewise.
13479         * config/i386/openbsd.h: Likewise.
13480         * config/i386/winnt.c: Likewise.
13481         * config/i386/xm-mingw32.h: Likewise.
13482
13483 2004-01-02  Joseph S. Myers  <jsm@polyomino.org.uk>
13484
13485         * doc/gcc.texi, doc/invoke.texi, doc/install.texi: Update
13486         copyright and last modification dates.
13487
13488 2004-01-02  Andreas Jaeger  <aj@suse.de>, Gerald Pfeifer  <gp@suse.de>
13489
13490         * doc/install.texi (Specific): Mention x86_64.
13491
13492 2004-01-01  Hans-Peter Nilsson  <hp@bitrange.com>
13493
13494         * builtins.c (expand_builtin_apply_args_1) [STACK_GROWS_DOWNWARD]:
13495         Call force_operand on plus_constant result.
13496
13497 2004-01-01  Jan Hubicka  <jh@suse.cz>
13498
13499         * expmed.c (store_bit_field, extract_bit_field): Use new named patterns
13500         * expr.c (store_constructor): Use vec_init pattern.
13501         * genopinit.c (optabs): Initailize vec_set/vec_extract/vec_init.
13502         * optabs.h (optab_index): ADD OTI_vec_set/OTI_vec_extract/OTI_vec_init
13503         (vec_set_optab, vec_extract_optab, vec_init_optab): New.
13504         * i386.md (vec_setv2df, vec_extractv2df, vec_setv4sf, vec_extractv4sf):
13505         New patterns.
13506         (sse2_unpc?pd): Fix pattern.
13507         (sse2_movlpd): Kill.
13508         (sse2_movsd): Deal with movlpd too.
13509         * i386.c (ix86_expand_builtin): Use sse2_movsd instead of sse2_movlpd.
13510         (ix86_expand_vector_init): New.
13511         * emmintrin.h (__mm_set_pd, __mm_set_ps): Use vector extensions.
13512         * md.texi (vec_set, vec_extract): Document
13513
13514 2003-12-31  Jan Hubicka  <jh@suse.cz>
13515
13516         PR opt/13473
13517         * recog.c (validate_replace_rtx_1):  Take care for RTL sharing inside
13518         ASM input operands
13519
13520         PR opt/12617
13521         * toplev.c (dump_file_index): Reorder ce3 and bbro.
13522         (dump_file): Likewise.
13523         (rest_of_compilation): Likewise.
13524
13525         PR debug/13367
13526         * cgraph.c (cgraph_function_possibly_inlined):  Even with
13527         flag_really_no_inline we inline always_inline functions.
13528         * cgraphunit.c (cgraph_analyze_function): Clear inlinable flag
13529         for non-always_inline functions when there is flag_really_no_inline.
13530         (cgraph_decide_inlining): Limit work done when not inlining.
13531         (cgraph_decide_inlining_incrementally): Likewise.
13532         (cgraph_optimize_function): Check whether something got inlined.
13533         * c-objc-common.c (c_disregard_inline_limits): Do not always inline
13534         extern inline functions when not inlining.
13535
13536         * opts.c (decode_options):  Disable crossjumping at -O1
13537         * invoke.texi (-O1): Document change.
13538
13539 See ChangeLog.10 for earlier changes.