OSDN Git Service

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