OSDN Git Service

Revert
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2004-04-22  Josef Zlomek  <zlomekj@suse.cz>
2
3         Revert
4         2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
5
6                 * var-tracking.c (variable_part_different_p): Variable parts
7                 differ when the most recent locations differ.
8
9 2004-04-22  Richard Sandiford  <rsandifo@redhat.com>
10
11         * doc/invoke.texi: Remove the MIPS -membedded-pic option.
12         * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): Delete.
13         (embedded_pic_offset): Delete.
14         * config/mips/mips.h (MASK_EMBEDDED_PIC): Delete.  Shuffle other
15         MASK_* constants.
16         (TARGET_EMBEDDED_PIC): Delete.
17         (TARGET_SWITCHES): Remove -m{no-,}embedded-pic.
18         (ASM_SPEC): Remove -membedded-pic.
19         (ASM_OUTPUT_ADDR_DIFF_ELT): Remove embedded-pic handling.
20         (ASM_OUTPUT_CASE_LABEL): Likewise.
21         * config/mips/vxworks.h (ASM_SPEC): Remove -membedded-pic.
22         * config/mips/windiss.h (ASM_SPEC): Likewise.
23         * config/mips/mips.c (struct machine_function): Remove
24         embedded_pic_fnaddr_rtx.
25         (TARGET_ENCODE_SECTION_INFO): Remove override.
26         (embedded_pic_fnaddr_reg, embedded_pic_offset): Delete.
27         (override_options): Remove -membedded-pic handling.
28         (print_operand): Remove handling of '%S'.
29         (mips_select_section: Remove -membedded-pic handling.
30         (mips_encode_section_info): Delete.
31         (mips_output_conditional_branch): Remove mention of -membedded-pic.
32         * config/mips/mips.md (define_attr length, movsi, movdi, jump): Remove
33         -membedded-pic handling.
34         (casesi, casesi_internal, casesi_internal_di, get_fnaddr): Delete.
35
36 2004-04-22  Alan Modra  <amodra@bigpond.net.au>
37
38         * var-tracking.c (frame_base_decl): Remove useless GTY.
39
40 2004-04-21  Aldy Hernandez  <aldyh@redhat.com>
41
42         * config/rs6000/rs6000.c (rs6000_override_options): Error when
43         user wants altivec and e500 instructions.
44
45 2004-04-21  H.J. Lu  <hongjiu.lu@intel.com>
46
47         PR target/14813
48         * config/ia64/crtend.asm: Move pointer to __do_global_ctors_aux
49         in .init_array section to ...
50         * config/ia64/crtbegin.asm: Here.
51
52         * config/ia64/crtend.asm: Mark __do_global_ctors_aux global
53         and hidden if HAVE_INITFINI_ARRAY is defined.
54
55 2004-04-21  James E Wilson  <wilson@specifixinc.com>
56
57         * config/mips/mips-protos.h (fp_register_operand, lo_operand): Declare.
58         * config/mips/mips.c (mips_multipass_dfa_lookahead): Declare.
59         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): New.
60         (fp_register_operand, lo_operand): New.
61         (mips_rtx_costs): Add TUNE_SB1 support.
62         (mips_issue_rate): Add comment.  Add PROCESSOR_SB1 support.
63         (mips_use_dfa_pipeline_interface): Add PROCESSOR_SB1 support.
64         (mips_multipass_dfa_lookahead): New.
65         * config/mips/mips.h (MASK_FP_EXCEPTIONS, TARGET_FP_EXCEPTIONS,
66         TUNE_SB1): New.
67         (TARGET_SWITCHES): Add -mfp-exceptions support.
68         (TARGET_FP_EXCEPTIONS_DEFAULT): New.
69         (BRANCH_COST): Fix whitespace.
70         * config/mips/mips.md: Include sb1.md.
71         * config/mips/sb1.md: New file.
72         * doc/invoke.texi: Document -mfp-exceptions.
73
74         * Makefile.in (fixinc.sh): Don't set or export WARN_CFLAGS.  Fix
75         comment.
76         * fixinc/Makefile.in (FL_LIST): Don't mention WARN_CFLAGS.
77         (fixincl.o-warn): Delete.
78
79 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
80
81         * config/rs6000/rs6000 (print_operand) ['z']:
82         Change ifdef of TARGET_MACHO to if TARGET_MACHO.
83
84 2004-04-21 Daniel Jacobowitz  <drow@mvista.com>
85
86         * config.gcc: Support --with-arch=iwmmxt for ARM.
87
88 2004-04-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
89
90         * expmed.c (expand_mult_highpart_optab): Use narrower version of OP1
91         in two more places; remove unneeded force_reg
92
93 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
94
95         * config/rs6000/rs6000.c (symbol_ref_operand): Remove hack
96         for TARGET_MACHO.
97         (print_operand): For TARGET_MACHO check to see if we need a stub
98         and output one if we need it.
99
100         PR debug/15033
101         * dwarf2out.c (rtl_for_decl_location): Check for NULL
102         rtl.
103
104 2004-04-20  James E Wilson  <wilson@specifixinc.com>
105
106         * config/ia64/ia64.md (call_value_nogp): Add constraints for op0.
107         (vall_value_gp): Likewise.
108
109 2004-04-20  DJ Delorie  <dj@redhat.com>
110         
111         * dwarf2out.c (rtl_for_decl_location): Adjust rtl for byte
112         variables stored in word registers, then in memory.
113
114 2004-04-20  Eric Christopher  <echristo@redhat.com>
115
116         * cp/parser.c (cp_parser_declaration): Move translate
117         up before tokens are lexed.
118
119 2004-04-20  Uros Bizjak  <uros@kss-loka.si>
120
121         * optabs.h (enum optab_index): Add new OTI_asin and OTI_acos.
122         (asin_optab, acos_optab): Define corresponding macros.
123         * optabs.c (init_optabs): Initialize asin_optab and acos_optab.
124         * genopinit.c (optabs): Implement asin_optab and acos_optab
125         using asin?f2 and acos?f2 patterns.
126         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_ASIN{,F,L}
127         using asin_optab, and BUILT_IN_ACOS{,F,L} using acos_optab.
128         (expand_builtin): Expand BUILT_IN_ASIN{,F,L} and BUILT_IN_ACOS{,F,L}
129         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
130
131         * config/i386/i386.md (asindf2, asinsf2, asinxf2, acosdf2,
132         acossf2, acosxf2): New expanders to implement asin, asinf, asinl,
133         acos, acosf and acosl built-ins as inline x87 intrinsics.
134
135 2004-04-20  Paul Brook  <paul@codesourcery.com>
136
137         * config/arm/arm.c (arm_legitimate_address_p): Use rtx_equal_p.
138
139 2004-04-20  Paul Brook  <paul@codesourcery.com>
140
141         * config/arm/arm.c (arm_expand_prologue): Fix size calculation.
142
143 2004-04-20  Paolo Bonzini  <bonzini@gnu.org>
144
145         Revert part of 2004-04-17 change that moved -frename-registers
146         to -O1.  -frename-registers is buggy.
147
148         * toplev.c (flag_rename_registers): Initialize to 0.
149         * doc/invoke.texi (Optimize options): Move -frename-registers
150         to "Not triggered by any -O level" section.  Adjust commentary
151         accordingly.
152
153 2004-04-20  Anil Paranjpe   <anilp1@kpitcummins.com>
154
155         * toplev.c (compile_file): Move targetm.asm_out.file_end call to end.
156
157 2004-04-20  Richard Sandiford  <rsandifo@redhat.com>
158
159         * config/mips/mips.c (mips_legitimize_move): Generate special patterns
160         for mflo and mfhi instructions.
161         (mips_output_move): Remove mflo and mfhi handling.
162         * config/mips/mips.md (UNSPEC_MFHILO): New unspec.
163         (*mulsidi3_64bit): Update for new mfhi/mflo representation.
164         Likewise various define_peephole2s.
165         (*movdi_32bit, *movdi_64bit, *movsi_internal): Merge x<-J and x<-d
166         alternatives.
167         (*movdi_64bit, *movdi_64bit_mips16, *mov[shq]i_internal)
168         (*mov[shq]i_mips16): Remove mflo and mfhi alternatives.
169         (mfhilo_di, mfhilo_si): New patterns.
170
171 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
172
173         * function.c (assign_parms): Force
174         MEM_EXPR (DECL_INCOMING_RTL (parm)) == parm.
175
176 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
177
178         * var-tracking.c (variable_part_different_p): Variable parts differ
179         when the most recent locations differ.
180
181 2004-04-19  James E Wilson  <wilson@specifixinc.com>
182
183         * rtl.h (reg_set_last): Delete declaration.
184         * rtlanal.c (reg_set_last): Delete.
185
186 2004-04-19  Roger Sayle  <roger@eyesopen.com>
187
188         * fold-const.c (fold_convert): Make function extern/public.
189         * tree.h (fold_convert): Prototype here.
190         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
191         expand_builtin_strrchr, expand_builtin_strpbrk,
192         expand_builtin_mempcpy, expand_builtin_bcopy,
193         expand_builtin_bzero, expand_builtin_memcmp,
194         expand_builtin_strcmp, expand_builtin_strncmp,
195         stabilize_va_list, expand_builtin_sprintf,
196         fold_trunc_transparent_mathfn, fold_builtin_logarithm,
197         fold_builtin_exponent, fold_builtin_mempcpy,
198         fold_builtin_strcpy, fold_builtin_strcmp, fold_builtin_strncmp,
199         fold_builtin_signbit, fold_builtin_isdigit, fold_builtin): Prefer
200         fold_convert to "convert" or "fold (build1 (NOP_EXPR, ...))".
201
202 2004-04-19  Aldy Hernandez  <aldyh@redhat.com>
203
204         * config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): New constant.
205         (move_from_CR_gt_bit): New.
206         (cceq_ior_compare): Name previously unnamed pattern.  Disable for
207         E500.
208         (cceq_rev_compare): Name previously unnamed pattern.  Allow for
209         E500.
210
211         * config/rs6000/spe.md (cmpsfeq_gpr): Rewrite as unspec.
212         (tstsfeq_gpr): Same.
213         (cmpsfgt_gpr): Same.
214         (tstsfgt_gpr): Same.
215         (cmpsflt_gpr): Same.
216         (tstsflt_gpr): Same.
217         (e500_cceq_ior_compare): New.
218         (e500_flip_gt_bit): New.
219
220         * config/rs6000/rs6000.c (ccr_bit): Remove E500 specific code.
221         (print_operand): Add 'c' and 'D'.
222         (rs6000_generate_compare): Rewrite to generate correct rtl.
223         (rs6000_emit_sCOND): Handle E500.
224         (output_cbranch): Adjust for changes in rs6000_generate_compare.
225         (output_e500_flip_gt_bit): New.
226
227         * config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit):
228         Protoize.
229
230 2004-04-19  Eric Christopher  <echristo@redhat.com>
231
232         * config/mips/mips.h (DWARF2_ADDR_SIZE): New.
233
234 2004-04-19  David Edelsohn  <edelsohn@gnu.org>
235
236         * doc/install.texi (*-ibm-aix*): Add AIX 5.1 assembler and archiver
237         fix information.
238
239 2004-04-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
240
241         * doc/install.texi (Specific, mips-sgi-irix5): Fix IRIX 5.3 IDO
242         download URL.
243
244 2004-04-19  Daniel Jacobowitz  <drow@mvista.com>
245
246         * stor-layout.c (layout_decl): Check DECL_PACKED before calling
247         ADJUST_FIELD_ALIGN.  Check maximum_field_alignment after.
248
249 2004-04-19  Andrew PInski  <pinskia@physics.uc.edu>
250
251         * builtins.c (fold_builtin_cabs): Remove fndecl parameter.
252         (fold_builtin): Update caller to match.
253
254         PR bootstrap/15009
255         * bb-reorder.c (fix_up_fall_thru_edges): Init cond_jump.
256
257         PR bootstrap/14999
258         * builtins.c (fold_builtin_cabs): Mark fndecl as unused.
259
260 2004-04-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
261
262         * varasm.c (compare_constant, case VIEW_CONVERT_EXPR): Add case.
263
264         * expmed.c (expand_mult_highpart_adjust): Make OP1 valid for MODE.
265         (expand_mult_highpart_optab): Likewise.
266         (expand_mult_highpart): Make OP1 valid for WIDER_MODE, not MODE.
267
268 2004-04-19  Paul Brook  <paul@codesourcery.com>
269
270         * config/arm/arm.md (fixuns_truncsfsi2, fixuns_truncdfsi2,
271         floatunssisf2, floatunssidf2): New patterns.
272
273 2004-04-18  Mark Mitchell  <mark@codesourcery.com>
274
275         PR other/14918
276         * doc/invoke.texi (-fprofile-generate): Document requirement to
277         use -fprofile-generate when linking.
278
279         * doc/extend.texi (Strong Using): Warn users against using this
280         feature.
281
282 2004-04-18  Richard Sandiford  <rsandifo@redhat.com>
283
284         * config/mips/mips-protos.h (m16_usym8_4, m16_usym5_4): Delete.
285         * config/mips/mips.h (mips_entry, mips_string_length): Delete.
286         (CONSTANT_POOL_BEFORE_FUNCTION, ASM_OUTPUT_POOL_EPILOGUE): Undefine.
287         * config/mips/mips.c (struct mips16_constant): Renamed from struct
288         constant.  Propogate change throughout file.
289         (struct machine_function): Remove insns_len.
290         (mips_string_length, mips16_strings, string_constants): Delete.
291         (mips_classify_symbol): Return SYMBOL_CONSTANT_POOL for LABEL_REFs
292         when generating mips16 code.  Remove special mips16 treatment of
293         string constants.
294         (mips_symbolic_constant_p): Allow mips16 constant pool accesses
295         to have the form LABEL+CONSTANT.
296         (mips_symbolic_address_p): Fix comment.
297         (m16_usym8_4, m16_usym5_4): Delete.
298         (mips_output_function_epilogue): Remove mips16 string handling.
299         (mips_output_mi_thunk): Call mips16_lay_out_constants.
300         (mips_select_section, mips_encode_section_info): Remove mips16
301         string handling.
302         (struct mips16_constant_pool): New.
303         (add_constant): Take a mips16_constant_pool structure.  Keep pool
304         sorted into order of ascending mode size.  Keep track of the highest
305         possible start address, taking padding and the masking of the base PC
306         value into account.
307         (dump_constants_1): New function, split out from dump_constants.
308         Handle vector constants.  Use gen_consttable_{int,float} rather than
309         separate functions for each mode.
310         (dump_constants): Simplify.  Use GET_MODE_ALIGNMENT.  Use gen_align
311         rather than separate functions for each alignment.
312         (mips_find_symbol): Delete.
313         (mips16_insn_length): New function, split out from
314         mips16_lay_out_constants.
315         (mips16_rewrite_pool_refs): New function.
316         (mips16_lay_out_constants): Rework. Remove string handling.
317         Always create an inline constant pool.
318         * config/mips/mips.md (UNSPEC_CONSTTABLE_INT, UNSPEC_CONSTTABLE_FLOAT)
319         (UNSPEC_ALIGN): New constants.
320         (UNSPEC_CONSTTABLE_[QHSD]I, UNSPEC_CONSTTABLE_[SD]F): Delete.
321         (UNSPEC_ALIGN_[248]): Delete.
322         (consttable_int, consttable_float, align): New patterns.
323         (consttable_[qhsd]i, consttable_[sd]f, align_[248]): Delete.
324
325 2004-04-17  Aldy Hernandez  <aldyh@redhat.com>
326
327         * config/rs6000/altivec.h (vec_any_numeric): Correct typo in
328         __unn_args_eq.
329
330 2004-04-17  Alan Modra  <amodra@bigpond.net.au>
331
332         PR target/14715
333         * config/rs6000/rs6000.c (rs6000_stack_info): Make parm_size agree
334         with STARTING_FRAME_OFFSET.
335
336 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
337
338         * config/mips/mips.h (PREDICATE_CODES): Add macc_msac_operand.
339         * config/mips/mips.c (macc_msac_operand): New function.
340         * config/mips/mips.md (*msac): Move after *macc.
341         (*msac2): New.  Generalize macc-related peepholes so that they apply
342         to msac too.
343
344 2004-04-17  Paolo Bonzini  <bonzini@gnu.org>
345
346         * opts.c (decode_options): Do not enable flag_rename_registers
347         and flag_web at -O3.
348         * toplev.c (flag_rename_registers): Initialize
349         flag_rename_registers and flag_web to
350         AUTODETECT_FLAG_VAR_TRACKING.
351         (default_debug_hooks): New global.
352         (process_options): Initialize default_debug_hooks.  Warn if
353         -fvar-tracking specified but not supported by the current
354         debug format.  Do not run var tracking at -O0 or if not
355         supported by the current debug format, even if
356         -fvar-tracking was given.  If -fno-rename-registers
357         is not specified, always run register renaming if var
358         tracking is supported by the default debugging information
359         format for the target, and we are at -O1 or higher; similarly
360         for -fweb, but only at -O2 or higher.
361         * doc/invoke.texi (Optimize Options): Document this.
362
363 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
364
365         * configure.ac (gcc_cv_ld_as_needed): Use AC_CACHE_CHECK.
366         * configure: Regenerate.
367
368 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
369
370         * gcc.c (used_arg): Check whether an option has been removed.
371
372 2004-04-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
373
374         * config.gcc (i[34567]86-*-solaris2*): Default to DWARF-2
375         debugging on Solaris 7 and up.
376
377 2004-04-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
378
379         * doc/install.texi (Specific, mips-sgi-irix5): Reflect working
380         IRIX 5 port.
381         Remove -save-temps workaround, handled automatically.
382         Require GNU binutils 2.15 for debugging.
383         Remove SGI make warnings since GNU make is now required.
384         (Specific, mips-sgi-irix6): Some markup fixes.
385         Describe MIPSpro C problems and workarounds.
386         Mention working O32 ABI support.
387         Recommend GNU as 2.15 for O32 with debugging.
388         Remove description of fixed structure pass/return bug.
389
390 2004-04-16  DJ Delorie  <dj@redhat.com>
391
392         * sdbout.c (sdbout_one_type): Use TYPE_VALUES for enums, not
393         TYPE_FIELDS.
394         (sdbout_finish): Don't free deferred_global_decls; it's GC'd.
395
396 2004-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
397
398         * pa.md: Remove unnecessary declarations for asm_out_file.
399
400         * pa64-regs.h (DBX_REGISTER_NUMBER): Simplify and correct mapping of
401         SAR register.  Fix comment.
402         (ADDITIONAL_REGISTER_NAMES): Correct register number of SAR register
403         (%cr11).
404
405         * pa64-hpux.h (LIB_SPEC): Fix library specification used with GNU ld.
406
407 2004-04-16  Nick Clifton  <nickc@redhat.com>
408
409         * config/arm/arm.c (arm_override_options): Revert previous patch.
410         * config/arm/t-xscale-elf: Disable iwmmxt multilibs until they can
411         be safely built.
412
413 2004-04-16  Kazuhiro Inaoka <inaoka dot kazuhiro at renesas dot com>
414
415         * config/m32r/m32r.h (BIG_ENDIAN_BIT): Deleted to fix endian
416         bug.
417         (TARGET_LITTLE_ENDIAN, TARGET_BIG_ENDIAN,
418         TARGET_DEFAULT): Changed. Ditto.
419         (LITTLE_ENDIAN_BIT, TARGET_CPU_DEFAULT,
420         TARGET_ENDIAN_DEFAULT): Added. Ditto.
421         * config/m32r/little.h (TARGET_LITTLE_ENDIAN): Deleted.
422         (TARGET_ENDIAN_DEFAULT): Added.
423
424 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
425
426         * builtins.def (BUILT_IN_ISDIGIT, BUILT_IN_ISXDIGIT): Mark with
427         ATTR_CONST_NOTHROW_LIST.
428
429 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
430
431         PR/middle-end 14915
432         * builtins.c (expand_builtin_signbit): Test BYTES_BIG_ENDIAN, not
433         BITS_BIG_ENDIAN.
434
435 2004-04-15  Pat Haugen  <pthaugen@us.ibm.com>
436
437         * ra-debug.c (ra_print_rtx): Add break's to case legs.
438
439 2004-04-14  James E Wilson  <wilson@specifixinc.com>
440
441         * Makefile.in (fixinc.sh): Set WARN_CFLAGS to empty string.
442
443 2004-04-14  Nathanael Nerode  <neroden@gcc.gnu.org>
444
445         * libada-mk.in: New file.
446         * configure.ac: Create libada-mk from libada-mk.in.
447         * configure: Regenerate.
448
449 2004-04-14  Uros Bizjak  <uros@kss-loka.si>
450
451         * optabs.h (enum optab_index): Add new OTI_logb and OTI_ilogb.
452         (logb_optab, ilogb_optab): Define corresponding macros.
453         * optabs.c (init_optabs): Initialize logb_optab and ilogb_optab.
454         * genopinit.c (optabs): Implement logb_optab and ilogb_optab
455         using logb?f2 and ilogb?i2 patterns.
456         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOGB{,F,L}
457         using logb_optab, and BUILT_IN_ILOGB{,F,L} using ilogb_optab.
458         (expand_builtin): Expand BUILT_IN_LOGB{,F,L} and BUILT_IN_ILOGB{,F,L}
459         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
460
461         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_XTRACT_FRACT
462         and UNSPEC_XTRACT_EXP.
463
464         * config/i386/i386.md (*fxtractdf3, *fxtractsf3, *fxtractxf3): New
465         patterns to implement fxtract x87 instruction.
466         (logbdf2, logbsf2, logbxf2, ilogbsi2): New expanders to implement
467         logb, logbf, logbl, ilogb, ilogbf and ilogbl built-ins as inline x87
468         intrinsics.
469         (UNSPEC_XTRACT_FRACT, UNSPEC_XTRACT_EXP): New unspecs to represent
470         x87's fxtract insn.
471
472 2004-04-14  Eric Christopher  <echristo@redhat.com>
473
474         * config/mips/t-elf: Enable multilibs by default.
475
476 2004-04-14  Andreas Tobler  <a.tobler@schweiz.ch>
477
478         * bb-reorder.c (fix_crossing_conditional_branches): Adjust the
479         previous fix to check HAVE_return at runtime too.
480
481 2004-04-14  Nick Clifton  <nickc@redhat.com>
482
483         * config/arm/arm.c (arm_override_options): If the user has not
484         specified an ABI, then default to AAPCS for the iWMMXt processor.
485         * config/arm/t-xscale-elf: Remove redundant multilib specifications.
486         * config/arm/t-xscale-coff: Likewise.
487
488 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
489
490         * builtins.c (fold_builtin_isdigit): New.
491         (fold_builtin): Handle BUILT_IN_ISDIGIT.
492         * defaults.h: Add TARGET_DIGIT0 and sort.
493         * doc/tm.texi: Add TARGET_BS and TARGET_DIGIT0.
494
495 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
496
497         * builtins.c (fold_builtin_cabs, fold_builtin): Use
498         `mathfn_built_in' to determine the new builtin.
499         * fold-const.c (fold): Likewise.
500
501 2004-04-14  Richard Sandiford  <rsandifo@redhat.com>
502
503         * doc/invoke.texi: Rename MIPS's -mfix-vr4122-bugs to -mfix-vr4120.
504         * config/mips/mips.h (MASK_FIX_VR4120): Renamed from MASK_FIX_VR4122.
505         (TARGET_FIX_VR4120): Likewise TARGET_FIX_VR4122.
506         (TARGET_SWITCHES): Replace -mfix-vr4122-bugs with -mfix-vr4120.
507         (ASM_SPEC): Update accordingly.
508         * config/mips/mips.c: Update after above renaming.
509         * config/mips/mips.md, config/mips/t-vr, config/mips/vr.h: Likewise.
510         * config/mips/vr4120-div.S: Renamed from vr4122-div.S.
511
512 2004-04-13  James E Wilson  <wilson@specifixinc.com>
513
514         * c-opt.c (c_common_post_options): If this_input_filename is NULL,
515         increment errorcount and return false instead of true.
516
517 2004-04-13  Uros Bizjak  <uros@kss-loka.si>:
518
519         * optabs.c (expand_twoval_unop): Reorder function arguments.
520         * builtins.c (expand_builtin_mathfn_3): Update calls to
521         expand_twoval_unop.
522
523         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_TAN_ONE
524         and UNSPEC_TAN_TAN. Add missing comment.
525
526         * config/i386/i386.md (*tandf3_1, *tansf3_1, *tanxf3_1): New
527         patterns to implement fptan x87 instruction.
528         (tandf2, tansf2, tanxf2): New expanders to implement tan, tanf
529         and tanl built-ins as inline x87 intrinsics. Define corresponding
530         peephole2 optimizers for 'fptan; fstp %st(0); fld1' sequence.
531         (UNSPEC_TAN_ONE, UNSPEC_TAN_TAN): New unspecs to represent
532         x87's fptan insn.
533
534 2004-03-13  Richard Henderson  <rth@redhat.com>
535
536         * bb-reorder.c (fix_crossing_unconditional_branches): Use Pmode
537         for LABEL_REFs.
538
539         * defaults.h (HOT_TEXT_SECTION_NAME): Add leading dot.
540         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Likewise.
541         * doc/invoke.texi: Update to match.
542
543         * varasm.c (unlikely_text_section): Use assemble_align instead of
544         ASM_OUTPUT_ALIGN.  Use it in the correct place with an approximately
545         correct alignment argument.
546
547 2004-04-13  Ulrich Weigand  <uweigand@de.ibm.com>
548
549         * reload1.c (emit_reload_insns): Set reg_has_output_reload to one
550         after setting reg_last_reload_reg for optional output reloads.
551
552 2004-04-12  Fariborz Jahanian <fjahanian@apple.com>
553
554         * config/rs6000/altivec.h (vec_mergeh, vec_mergel):
555         Definition of these two macros are corrected by adding
556         matchine right paren.
557
558 2004-04-12  Jonathan Larmour  <jifl@eCosCentric.com>
559
560         * fix-header.c: kill(), putenv() and tzset() are POSIX not ANSI.
561
562 2004-04-12  Roger Sayle  <roger@eyesopen.com>
563
564         * config/i386/i386.c (output_387_reg_move): New function.
565         * config/i386/i386-protos.h (output_387_reg_move): Prototype here.
566         * config/i386/i386.md (*movsf_1, *movsf1_nointerunit,
567         *movdf_nointeger, *movdf_integer, *movxf_nointeger, *movxf_integer,
568         *extendsfdf2_1,  *extendsfxf2_1, *extenddfxf2_1, truncdfsf2_noop,
569         truncxfsf2_noop, truncxfdf2_noop): Call output_387_reg_move.
570
571 2004-04-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
572
573         * c-decl.c (finish_decl): Make a decl_stmt for a variable-sized
574         TYPE_DECL.
575         * c-semantics.c (genrtl_decl_stmt): Handle TYPE_DECL.
576         * stmt.c (expand_decl): Remove redundant expansion of TYPE_DOMAIN.
577         * stor-layout.c (variable_size): Don't check for MINUS_EXPR.
578         Use skip_simple_arithmetic to find SAVE_EXPR.
579         (force_type_save_exprs, force_type_save_exprs_1): New functions.
580         * tree-inline.c (remap_type, case POINTER_TYPE, case REFERENCE_TYPE):
581         Properly chain multiple pointers.
582         (copy_tree_r): Copy a TYPE_DECL.
583         * tree.c (variably_modified_type_p): Add some missing tests and
584         make some other minor changes.
585         * tree.h (force_type_save_exprs): New declaration.
586
587 2004-04-12  Roger Sayle  <roger@eyesopen.com>
588
589         * simplify-rtx.c (simplify_binary_operation) <UDIV, DIV, UMOD, MOD>:
590         Remove fall throughs.  Convert 0/x and 0%x into x&0 when x has
591         side-effects.  Don't convert x/1.0 into x if we honor signaling NaNs.
592         Convert x/-1.0 into -x if we don't honor signaling NaNs.  Convert
593         x/-1 into -x.  Optimize x%1 into x&0 if x has side-effects.  Optimize
594         x%-1 into 0 (or x&0 if x has side-effects).
595
596 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
597
598         * config/rs6000/rs6000.md: Document why a pattern is not
599         available.
600
601         * config/rs6000/rs6000.c (rs6000_emit_cmove): Disable comparisons
602         of floats on the E500.
603         (branch_positive_comparison_operator): Do not allow NE even on the
604         E500.
605
606 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
607
608         * config/rs6000/rs6000.c (rs6000_assemble_integer): Change
609         in_text_unlikely_section to in_unlikely_text_section.
610
611 2004-04-11  Roger Sayle  <roger@eyesopen.com>
612
613         * fold-const.c (fold_binary_op_with_conditional_arg):  Tweak
614         calling convention to allow a NULL_TREE to be returned.  Factor
615         sanity checks from callers, return NULL_TREE when appropriate.
616         (fold): Handle COMPOUND_EXPR operands of binary expressions
617         before COND_EXPR operands.  Use reorder_operands_p(a,b) to check
618         whether a op (b,c) can be rewritten as (b, a op c).  Simplify
619         calls to fold_binary_op_with_conditional_arg.
620
621 2004-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
622
623         * config/mips/iris5.h (current_section_flags):  Add
624         in_unlikely_executed_text and default case.
625
626 2004-04-11  Andreas Tobler  <a.tobler@schweiz.ch>
627
628         * bb-reorder.c (fix_crossing_conditional_branches): Fix bootstrap
629         failure on solaris. Place ifdef HAVE_return around gen_ret call.
630         * cfgrtl.c (force_nonfallthru_and_redirect): Remove ifdef
631         HAVE_return and place it around the place where it is needed.
632
633 2004-04-11  Andrew Pinski  <pinskia@physics.uc.edu>
634
635         * varasm.c (text_section): Use TEXT_SECTION_ASM_OP and
636         ASM_OUTPUT_ALIGN instead of SECTION_FORMAT_STRING
637         and NORMAL_TEXT_SECTION_NAME.
638         (unlikely_text_section): Check targetm.have_named_sections
639         instead of TARGET_ASM_NAMED_SECTION and use TEXT_SECTION_ASM_OP
640         instead of SECTION_FORMAT_STRING.
641         * config/mips/iris5.h (current_section_name): Add
642         in_unlikely_executed_text case and move the abort into the switch.
643         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME): Remove.
644         (NORMAL_TEXT_SECTION_NAME): Remove.
645         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
646         (SECTION_FORMAT_STRING): Remove.
647         * defaults.h (SECTION_FORMAT_STRING): Remove.
648         * tm.texi (NORMAL_TEXT_SECTION_NAME): Remove.
649         (SECTION_FORMAT_STRING): Remove.
650
651 2004-04-10  Joseph S. Myers  <jsm@polyomino.org.uk>
652
653         * c-typeck.c (common_type): Prefer long long to long when same
654         precision.
655
656 2004-04-09  Zack Weinberg  <zack@codesourcery.com>
657
658         PR 14887
659         * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Look only at
660         mode argument.
661         * config/ia64/ia64.c (ia64_hpux_file_end): Check
662         TREE_SYMBOL_REFERENCED on DECL_ASSEMBLER_NAME, not DECL_NAME.
663
664 2004-04-09  Roger Sayle  <roger@eyesopen.com>
665
666         * simplify-rtx.c (mode_signbit_p): New function to check whether
667         an RTX is an immediate constant that represents the most significant
668         bit of a given machine mode.
669         (simplify_unary_operation) <NOT>: Optimize ~(X+C) as X ^ ~C, where
670         C is the sign bit.
671         (simplify_binary_operation) <PLUS>: Optimize (X^C1) + C2 as X^(C1^C2)
672         when C2 is the sign bit.
673         (simplify_binary_operation) <XOR>: Canonicalize X^C as X+C when C
674         is the sign bit.  Optimize (X+C1) ^ C2 as X^(C1^C2) when C1 is the
675         sign bit.
676
677 2004-04-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
678
679         * builtins.c (mathfn_built_in): Check TYPE_MAIN_VARIANT, not
680         TYPE_MODE.
681
682 2004-04-09  Andrew Pinski  <pinskia@physics.uc.edu>
683
684         * c-common.c (handle_noreturn_attribute): Use TYPE_READONLY instead
685         of TREE_READONLY for types.
686
687 2004-04-09  Caroline Tice  <ctice@apple.com>
688
689         * basic-block.h (struct edge_def):  Add new field, crossing_edge.
690         (struct basic_block_def):  Add new field, partition.
691         (UNPARTITIONED, HOT_PARTITION, COLD_PARTITION):  New constant macro
692         definitions.
693         (partition_hot_cold_basic_blocks): Add extern function
694         declaration.
695         * bb-reorder.c (function.h, obstack.h, expr.h, regs.h):  Add four new
696         include statements.
697         (N_ROUNDS): Increase the maximum number of rounds by 1.
698         (branch_threshold): Add array value for new round.
699         (exec_threshold): Add array value for new round.
700         (push_to_next_round_p): New function.
701         (add_unlikely_executed_notes): New function.
702         (find_rarely_executed_basic_blocks_and_crossing_edges): New function.
703         (mark_bb_for_unlikely_executed_section): New function.
704         (add_labels_and_missing_jumps): New function.
705         (add_reg_crossing_jump_notes): New function.
706         (fix_up_fall_thru_edges): New function.
707         (find_jump_block): New function.
708         (fix_crossing_conditional_branches): New function.
709         (fix_crossing_unconditional_branches): New function.
710         (fix_edges_for_rarely_executed_code): New function.
711         (partition_hot_cold_basic_blocks): New function.
712         (find_traces):  Add an extra round for partitioning hot/cold
713         basic blocks.
714         (find_traces_1_round): Add a parameter.  Modify to push all cold blocks,
715         and only cold blocks, into the last (extra) round of collecting traces.
716         (better_edge_p): Add a parameter.  Modify to favor non-crossing edges
717         over crossing edges.
718         (bb_to_key):  Add code to correctly identify cold blocks when
719         doing partitioning.
720         (connect_traces): Modify to connect all the non-cold traces first, then
721         go back and connect up all the cold traces.
722         (reorder_basic_blocks):  Add call to add_unlikely_executed_notes.
723         * cfg.c (entry_exit_blocks): Add initialization for partition field in
724         entry and exit blocks.
725         * cfgbuild.c (make_edges): Update current_function_has_computed_jump
726         if we are doing hot/cold partitioning.
727         * cfgcleanup.c (cfglayout.h): Add new include statement.
728         (try_simplify_condjump): Modify to not attempt on blocks with jumps
729         that cross section boundaries.
730         (try_forward_edges): Likewise.
731         (merge_blocks_move_predecessor_nojumps): Likewise.
732         (merge_blocks_move_successor_nojumps): Likewise.
733         (merge_blocks_move): Likewise.
734         (try_crossjump_to_edge): Modify to not attempt after we have done
735         the block partitioning.
736         (try_crossjump_bb): Modify to not attempt on blocks with jumps that
737         cross section boundaries.
738         (try_optimize_cfg): Likewise.
739         * cfghooks.c (tidy_fallthru_edges): Modify to not remove indirect
740         jumps that cross section boundaries.
741         * cfglayout.c (flags.h): Add new include statement.
742         (update_unlikely_executed_notes):  New function.
743         (fixup_reorder_chain):  Add code so when a new jumping basic block is
744         added, it's UNLIKELY_EXECUTED_CODE and REG_CROSSING_JUMP notes are
745         updated appropriately.
746         (duplicate_insn_chain):  Add code to duplicate the new NOTE insn
747         introduced by this optimization.
748         * cfglayout.h (scan_ahead_for_unlikely_executed_note):  Add new
749         extern function declaration.
750         * cfgrtl.c (can_delete_note_p):  Add NOTE_INSN_UNLIKELY_EXECUTED_CODE to
751         list of notes that can be deleted.
752         (create_basic_block_structure):  Add initialization for partition field.
753         (rtl_can_merge_blocks):  Modify to test blocks for jumps that cross
754         section boundaries.
755         (try_redirect_by_replacing_jump):  Modify to not attempt on jumps that
756         cross section boundaries.
757         (commit_one_edge_insertion): Add code so newly created basic block
758         ends up in correct (hot or cold) section.  Modify to disallow
759         insertions before NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
760         (rtl_verify_flow_info_1):  Add code to verify that no fall_thru edge
761         crosses section boundaries.
762         (cfg_layout_can_merge_blocks_p): Modify to test blocks for jumps that
763         cross section boundaries.
764         (force_nonfallthru_and_redirect): Modify to make sure new basic block
765         ends up in correct section, with correct notes attached.
766         * common.opt (freorder-blocks-and-partition):  Add new flag for this
767         optimization.
768         * dbxout.c (dbx_function_end):  Add code to make sure scope labels at
769         the end of functions are written into the correct (hot or cold)
770         section.
771         (dbx_source_file): Add code so writing debug file information
772         doesn't incorrectly change sections.
773         * defaults.h (NORMAL_TEXT_SECTION_NAME): New constant macro, for use
774         in partitioning hot/cold basic blocks into separate sections.
775         (SECTION_FORMAT_STRING): New constant macro, for linux/i386 hot/cold
776         section partitioning.
777         (HAS_LONG_COND_BRANCH): New constant macro, indicating whether or not
778         conditional branches can span all of memory.
779         (HAS_LONG_UNCOND_BRANCH): New constant macro, indicationg whether or not
780         unconditional branches can span all of memory.
781         * final.c (scan_ahead_for_unlikely_executed_note):  New function.
782         (final_scan_insn):  Add code to check for NOTE instruction indicating
783         whether basic block belongs in hot or cold section, and to make sure
784         the current basic block is being written to the appropriate section.
785         Also added code to ensure that jump table basic blocks end up in the
786         correct section.
787         * flags.h (flag_reorder_blocks_and_partition):  New flag.
788         * ifcvt.c (find_if_case_1):  Modify to not attempt if conversion if
789         one of the branches has a jump that crosses between sections.
790         (find_if_case_2): Likewise.
791         (ifcvt): Modify to not attempt to mark loop exit edges after
792         hot/cold partitioning has occurred.
793         * opts.c (decode_options): Code to handle new flag,
794         flag_reorder_blocks_and_partition; also to turn it off if
795         flag_exceptions is on.
796         (common_handle_option): Code to handle new flag,
797         flag_reorder_blocks_and_partition.
798         * output.h (unlikely_text_section): New extern function declaration.
799         (in_unlikely_text_section): New extern function declaration.
800         * passes.c (rest_of_handle_stack_regs):  Add
801         flag_reorder_blocks_and_partition as an 'or' condition for calling
802         reorder_basic_blocks.
803         (rest_of_handle_reorder_blocks):  Add flag_reorder_blocks_and_partition
804         as an 'or' condition for calling reorder_basic_blocks.
805         (rest_of_compilation):  Add call to partition_hot_cold_basic_blocks.
806         * print-rtl.c (print_rtx): Add code for handling new note,
807         NOTE_INSN_UNLIKELY_EXECUTED_CODE
808         * rtl.c  (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note insn (see below).
809         (REG_CROSSING_JUMP): New kind of reg_note, to mark jumps that
810         cross between section boundaries.
811         * rtl.h (NOTE_INSN_UNLIKELY_EXECUTED_CODE):  New note instruction,
812         indicating the basic block containing it belongs in the cold section.
813         (REG_CROSSING_JUMP): New type of reg_note, to mark jumps that cross
814         between hot and cold sections.
815         * toplev.c (flag_reorder_blocks_and_partition):  Add code to
816         initialize this flag, and to tie it to the command-line option
817         freorder-blocks-and-partition.
818         * varasm.c (cfglayout.h):  Add new include statement.
819         (unlikely_section_label_printed):  New global variable, used for
820         determining when to output section name labels for cold sections.
821         (in_section):  Add in_unlikely_executed_text to enum data structure.
822         (text_section):  Modify code to use SECTION_FORMAT_STRING and
823         NORMAL_TEXT_SECTION_NAME macros.
824         (unlikely_text_section):  New function.
825         (in_unlikely_text_section):  New function.
826         (function_section):  Add code to make sure beginning of function is
827         written into correct section (hot or cold).
828         (assemble_start_function):  Add code to make sure stuff is written to
829         the correct section.
830         (assemble_zeros):  Add in_unlikely_text_section as an 'or' condition
831         to an if statement that was checking 'in_text_section'.
832         (assemble_variable):  Add 'in_unlikely_text_section' as an 'or'
833         condition to an if statement that was checking 'in_text_section'.
834         (default_section_type_flags_1):  Add check: if in cold section
835         flags = SECTION_CODE.
836         * config/darwin.c (darwin_asm_named_section):  Modify to use
837         SECTION_FORMAT_STRING if we are partitioning hot/cold blocks.
838         * config/i386/i386.h (HAS_LONG_COND_BRANCH): Defined this macro
839         specifically for the i386.
840         (HAS_LONG_UNCOND_BRANCH):  Defined this macro specifically for the i386.
841         * config/rs6000/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Change
842         text string to something more informative.
843         (NORMAL_TEXT_SECTION_NAME): Add new definition.
844         (SECTION_FORMAT_STRING):  Add new definition.
845         * config/rs6000/rs6000.c (rs6000_assemble_integer):  Add
846         '!in_unlikely_text_section' as an 'and' condition to an if statement
847         that was already checking '!in_text_section'.
848         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME,NORMAL_TEXT_SECTION_NAME,
849         UNLIKELY_EXECUTED_TEXT_SECTION_NAME,SECTION_FORMAT_STRING): Make
850         sure these are properly defined for linux on ppc.
851         * doc/invoke.texi  (freorder-blocks-and-partition): Add documentation
852         for this new flag.
853         * doc/rtl.texi (REG_CROSSING_JUMP):  Add documentation for new
854         reg_note.
855         * doc/tm.texi (NORMAL_TEXT_SECTION_NAME, SECTION_FORMAT_STRING,
856         HAS_LONG_COND_BRANCH, HAS_LONG_UNCOND_BRANCH): Add documentation for
857         these new macros.
858
859 2004-04-08  Roger Sayle  <roger@eyesopen.com>
860
861         * function.c (gen_mem_addressof): When changing the RTX from a REG
862         to a MEM, clear MEM_VOLATILE_P which was formerly REG_USERVAR_P.
863
864 2004-04-08  Roger Sayle  <roger@eyesopen.com>
865
866         PR target/14888
867         * config/i386/i386.md (truncdfsf2_noop, truncxfsf2_noop,
868         truncxfdf2_noop): Provide dummy "fmov" implementations.
869
870 2004-04-08  Ian Lance Taylor  <ian@wasabisystems.com>
871
872         * gcc.c (default_compilers): Add missing initializers.
873
874         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
875         Return 1 if file was successfully mapped.
876
877 2004-04-08  Geoffrey Keating  <geoffk@apple.com>
878
879         PR pch/13419
880         PR pch/14137
881         Radar #: 3315288
882         * doc/invoke.texi (Precompiled Headers): Suggest -o
883         to put an output file in a particular place.  Be more detailed
884         about which options affect PCH validity and which options
885         might not work.
886         * c-pch.c (pch_matching): New.
887         (MATCH_SIZE): New.
888         (struct c_pch_validity): New field 'match'.
889         (pch_init): Handle pch_matching.
890         (c_common_valid_pch): Check pch_matching.
891
892         * explow.c: Fix typo defining default of PROMOTE_FUNCTION_MODE.
893
894 2004-04-08  Mark Mitchell  <mark@codesourcery.com>
895
896         * doc/invoke.texi (Precompiled Headers): Warn about known
897         problems.
898
899 2004-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
900
901         PR c++/14808
902         * defaults.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): New macro. Default
903         to 1 if ASM_OUTPUT_DEF is defined.
904         * doc/tm.texi (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document.
905         * config/i386/cygming.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): Define.
906         Set to non-zero iff not a one_only decl.
907
908 2004-04-08  Paul Brook  <paul@codesourcery.com>
909
910         * arm.h (CLASS_LIKELY_SPILLED_P): Define.
911
912 2004-04-08  Paul Brook  <paul@codesourcery.com>
913
914         * explow.c (promote_mode): Use PROMOTE_FUNCTION_MODE instead of
915         PROMOTE_FOR_CALL_ONLY.
916         * config/arm/arm-protos.h (arm_function_value): Declare.
917         * config/arm/arm.h (TARGET_PROMOTE_FUNCTION_ARGS): Define.
918         (TARGET_PROMOTE_PROTOTYPES): Return false.
919         (arm_function_value): New function.
920         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Define.
921         (FUNCTION_VALUE): Call arm_function_value.
922         * config/cris/cris.h (PROMOTE_MODE): Rename ...
923         (PROMOTE_FUNCTION_MODE): ... to this.
924         (PROMOTE_FOR_CALL_ONLY): Remove.
925         * config/mmix/mmix.h: Likewise.
926         * config/s390/s390.h: Likewise.
927         * config/sparc/sparc.h: Likewise.
928         * config/sparc/sparc.c: Update comments about PROMOTE_MODE.
929         * doc/tm.texi (PROMOTE_FUNCTION_MODE): Document.
930         (TARGET_PROMOTE_FUNCTION_MODE, TARGET_PROMOTE_FUNCTION_RETURN): Update.
931         (PROMOTE_FOR_CALL_ONLY): Remove.
932
933 2004-04-08  Joel Sherrill <joel@oarcorp.com>
934
935         PR ada/14538
936         * ada/5rosinte.adb: Remove fake mprotect() body.
937         * ada/5rosinte.ads: Add SA_SIGINFO.
938         * ada/5rtpopsp.adb: Rewrite to use new interface.
939         * ada/init.c: Reorder so the simple single OS conditional __rtems__
940         is tested before more complex ones which mix UNIX and embedded
941         systems in the conditional.
942
943 2004-04-08  Joel Sherrill  <joel@oarcorp.com>
944
945         PR ada/14665
946         * ada/osint.adb (Find_Program_Name): Rework to properly handle
947         filenames which end in .exe or have versioning suffixes like VMS.
948
949 2004-04-08  Andrew Pinski  <pinskia@physics.uc.edu>
950
951         PR target/10129
952         * config/darwin.c (darwin_encode_section_info): When the decl has
953         a DECL_INITIAL, it is only defined also when it is not a common.
954
955 2004-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
956
957         * builtins.c (fold_builtin_isascii, fold_builtin_toascii): New.
958         (fold_builtin): Handle BUILT_IN_ISASCII and BUILT_IN_TOASCII.
959
960 2004-04-07  H.J. Lu  <hongjiu.lu@intel.com>
961
962         * config/ia64/ia64.c (ia64_encode_section_info): Don't prod
963         global register variables.
964
965 2004-04-07  Joseph S. Myers  <jsm@polyomino.org.uk>
966
967         * fixinc/inclhack.def (rpc_xdr_lvalue_cast_a,
968         rpc_xdr_lvalue_cast_b): New fixes.
969         * fixinc/fixincl.x: Regenerate.
970         * fixinc/tests/base/rpc/xdr.h: Add new tests.
971
972 2004-04-07  David Edelsohn  <edelsohn@gnu.org>
973
974         * config/rs6000/rs6000.c (processor_target_table): Add MASK_MFCRF
975         to power4 and power5 entries.
976
977 2004-04-06  Geoffrey Keating  <geoffk@apple.com>
978
979         * c-common.h (pending_lang_change): Mark for PCH.
980
981 2004-04-07  Caroline Tice  <ctice@apple.com>
982
983         * gcc.c (main): Move 'break' in main loops (on an error)
984         to wait until error processing has occurred.
985
986 2004-04-06  Nathanael Nerode  <neroden@gcc.gnu.org>
987
988         * config.gcc: Stop changing enable_threads midstream.
989         Replace uses of enable_threads_flag with enable_threads.
990         * configure.ac: Replace uses of enable_threads_flag with
991         enable_threads.  Improve autoconf quotation in one place.
992         * configure: Regenerate.
993
994 2004-04-06  Uros Bizjak  <uros@kss-loka.si>
995
996         * builtins.c: Implement support for sincos function.
997         (expand_builtin_mathfn): Remove BUILT_IN_SIN{,F,L} and
998         BUILT_IN_COS{,F,L}.
999         (expand_builtin_mathfn_3): New function.
1000         (expand_builtin): Expand BUILT_IN_SIN{,F,L} and
1001         BUILT_IN_COS{,F,L} using expand_builtin_mathfn_3 if
1002         flag_unsafe_math_optimization is set.
1003
1004         * optabs.h (enum optab_index): Add new OTI_sincos.
1005         (sincos_optab): Define corresponding macro.
1006
1007         * optabs.c (init_optabs): Initialize sincos_optab.
1008         (expand_twoval_unop): New function.
1009
1010         * genopinit.c (optabs): Implement sincos_optab using sincos?f3
1011         patterns.
1012
1013         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_SINCOS_COS
1014         and UNSPEC_SINCOS_SIN.
1015
1016         * config/i386/i386.md (sincosdf3, sincossf3, *sincosextendsfdf3,
1017         sincosxf3): New patterns to implement sincos, sincosf and sincosl
1018         built-ins as inline x87 intrinsics. Define splits for
1019         sindf2, sinsf2, *sinextendsfdf2, sinxf2, cosdf2,
1020         cossf2, *cosextendsfdf2 and cosxf2 patterns from corresponding
1021         sincos patterns.
1022         (sindf2, sinsf2, sinxf2): Rename to *sindf2, *sinsf2, *sinxf2.
1023         (cosdf2, cossf2, cosxf2): Rename to *cosdf2, *cossf2, *cosxf2.
1024
1025         (UNSPEC_SINCOS_SIN, UNSPEC_SINCOS_COS): New unspecs to represent
1026         x87's fsincos insn.
1027
1028 2004-04-06  Devang Patel  <dpatel@apple.com>
1029
1030         PR 14467
1031         * config/darwin.h (LINK_COMMAND_SPEC): Use c++filt instead of c++filt3.
1032
1033 2004-04-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1034
1035         * doc/install.texi: Update HP-UX 11 installation procedure.
1036
1037 2004-04-06  Paul Brook  <paul@codesourcery.com>
1038
1039         * doc/sourcebuild.texi: Remove obsolete contraint on testcases.
1040
1041 2004-04-05  Kaz Kojima  <kkojima@gcc.gnu.org>
1042
1043         * config/sh/sh.c (prepare_move_operands): Use emit_call_insn
1044         when the TLS address is generated by a function call.
1045         * config/sh/sh.md (tls_global_dynamic): Use a call expression.
1046         (tls_local_dynamic): Likewise.
1047
1048 2004-04-05  Andrew Pinski  <pinskia@physics.uc.edu>
1049
1050         * tree.c (reconstruct_complex_type): Use TYPE_READONLY
1051         and TYPE_VOLATILE.
1052
1053 2004-04-05  Caroline Tice  <ctice@apple.com>
1054
1055         * gcc.c (combine_flag): New global variable, for new driver option.
1056         (struct compiler): Add two new fields, to be used when
1057         combining multiple input files in a single pass (IMA).
1058         (default_compilers):  Add values for the new fields to all
1059         compiler entries. Modify the "@c" compiler entry for doing IMA
1060         properly with "-save-temps" and the "combine" flag.
1061         (option_map):  Add new driver option, "--combine", to tell driver
1062         to pass multiple input files to compiler at one time.
1063         (have_o_argbuf_index): New global variable.
1064         (store_arg): Modify to assign value to have_o_argbuf_index.
1065         (struct infile):  Add three new fields, to help with IMA.
1066         (display_help): Add help for new "combine" option.
1067         (process_command): Remove local variable have_o; add code to check
1068         for new "combine" option; remove assignment to combine_inputs.
1069         (do_spec_1):  Modify to deal with IMA better.
1070         (main): Make variable 'lang_n_infiles' local to entire function
1071         rather than to a single block.  Use flag combine_flag to
1072         determine whether to do IMA or not; Modify loop initializing
1073         infiles to deal properly with linker files.
1074         Add code for doing preprocessing in presence of
1075         IMA with "-save-temps" flag.  Modify "main" loop to handle
1076         multiple input files, in multiple languages, with or without
1077         preprocessing,  gracefully.
1078         * toplev.c (set_src_pwd): Modify to not complain if attempting to
1079         re-set it to same directory it's previously been set to (avoid
1080         irritating, meaningless warning messages when doing IMA with
1081         save-temps).
1082         * doc/invoke.texi: Add "-combine" to list of Overall Options;
1083         remove documentation about IMA that is no longer accurate; Add
1084         documentation explaining what "-combine" does.
1085         * ada/lang-specs.h: Add initialization values for new fields in
1086         "struct compiler".
1087         * cp/lang-specs.h: Likewise.
1088         * f/lang-specs.h: Likewise.
1089         * java/lang-specs.h: Likewise.
1090         * objc/lang-specs.h: Likewise.
1091         * treelang/lang-specs.h: Likewise.
1092
1093 2004-04-05  David Edelsohn
1094
1095         * config/rs6000/rs6000.c (VTABLE_NAME_P): Add _ZTI to special
1096         symbol handling.
1097
1098 2004-04-05  Jakub Jelinek  <jakub@redhat.com>
1099             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1100
1101         PR optimization/13424 (hppa), bootstrap/14462, c/14828
1102         * pa.md: Use replace_equiv_address to retain the attributes of the
1103         memory operands used in the split and peephole2 patterns for optimizing
1104         the pre-reload movstrsi, movstrdi, clrstrsi and clrstrdi patterns.
1105
1106 2004-04-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1107
1108         * c-decl.c (build_compound_literal): Use TYPE_READONLY.
1109         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
1110         * objc/objc-act.c (adorn_decl, gen_declspecs): Likewise.
1111         * c-typeck.c (decl_constant_value): Don't access DECL_INITIAL of a
1112         PARM_DECL.
1113         * calls.c (flags_from_decl_or_type): Use TYPE_READONLY and do so only
1114         for a type.
1115         * print-tree.c (print_node): Properly handle side-effects, readonly,
1116         and constant flags.
1117         * tree.c (build1_stat, build_expr_wfl): Only look at TREE_SIDE_EFFECTS
1118         and TREE_CONSTANT if not a type.
1119         * tree.h (IS_NON_TYPE_CODE_CLASS): New macro.
1120         (IS_EXPR_CODE_CLASS): Write 'E', not 'e'.
1121         (NON_TYPE_CHECK): New macro.
1122         (TREE_SIDE_EFFECT, TREE_READONLY, TREE_CONSTANT: Add check.
1123
1124 2004-04-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
1125
1126         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Set
1127         to DWARF2_DEBUG unconditionally.
1128         (ASM_DEBUG_SPEC): Set the default to --gdwarf2 unconditionally.
1129
1130 2004-04-04  Ian Lance Taylor  <ian@wasabisystems.com>
1131             Nathanael Nerode  <neroden@gcc.gnu.org>
1132
1133         PR target/14548
1134         * config.host: Set the shell variable host_can_use_collect2.
1135         Set it to yes by default, and to no for alpha*-dec-*vms*,
1136         i[34567]86-*-mingw32*, and powerpc-*-beos*.
1137         * configure.ac: Set and substitute the shell variable collect2.
1138         Give an error if use_collect2 is yes and host_can_use_collect2 is
1139         no.
1140         * Makefile.in (COLLECT2): Rename from USE_COLLECT2.  Change all
1141         uses.  Initialize to @collect2@.
1142         (STAGESTUFF): Remove $(USE_COLLECT2).
1143         * config/alpha/x-vms (USE_COLLECT2): Don't set.
1144         * config/i386/t-mingw32 (USE_COLLECT2): Likewise.
1145         * config/rs6000/t-beos (USE_COLLECT2): Likewise.
1146         * config/pa/t-pa64: Remove commented out USE_COLLECT2.
1147         * configure: Regenerate.
1148
1149 2004-04-04  Roger Sayle  <roger@eyesopen.com>
1150
1151         * simplify-rtx.c (simplify_binary_operation): Constant fold
1152         DIV, MOD, UDIV and UMOD using div_and_round_double.
1153
1154 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
1155
1156         PR c++/14804
1157         * varasm.c (initializer_constant_valid_p): Allow NOP_EXPRs to
1158         RECORD_TYPEs.
1159
1160 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
1161
1162         * doc/invoke.texi (-mabi=o64): Create link to O64 ABI
1163         documentation.
1164
1165 2004-04-04  Roger Sayle  <roger@eyesopen.com>
1166
1167         * cse.c (cse_insn): Correct usage of simplify_replace_rtx when
1168         updating the REG_EQUAL note on an insn's libcall_insn.
1169
1170 2004-04-04  Roger Sayle  <roger@eyesopen.com>
1171
1172         * df.h: Tidy up whitespace in the definitions of the DF_ flags.
1173
1174 2004-04-03  Roger Sayle  <roger@eyesopen.com>
1175
1176         * fold-const.c (fold) <PLUS_EXPR>: Guard (-A)+B -> B-A transformation
1177         with reorder_operands_p.
1178
1179 2004-04-03  Jan Hubicka  <jh@suse.cz>
1180
1181         * md.texi (vec_set, vec_extract, vec_init): Document.
1182
1183 2004-04-02  Gabor Loki <loki@inf.u-szeged.hu>
1184
1185        * opts.c (decode_options): Do function inlining with very small
1186        max-inline-insns-* parameters when optimizing for size.
1187
1188 2004-04-02  Vladimir Makarov  <vmakarov@redhat.com>
1189
1190         * config/i386/i386.h (TARGET_NOCONA): New macro.
1191         (TARGET_CPU_CPP_BUILTINS): Add code for Nocona.
1192         (processor_type): Add PROCESSOR_NOCONA.
1193
1194         * config/i386/i386.md (cpu): Add nocona to the attribute values.
1195
1196         * config/i386/i386.c (nocona_cost): New variable.
1197         (m_NOCONA): New macro.
1198         (x86_push_memory, x86_movx, x86_cmove, x86_deep_branch,
1199         x86_branch_hints, x86_use_sahf, x86_single_stringop,
1200         x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8,
1201         x86_integer_DFmode_moves, x86_partial_reg_dependency,
1202         x86_memory_mismatch_stall, x86_accumulate_outgoing_args,
1203         x86_decompose_lea, x86_arch_always_fancy_math_387,
1204         x86_sse_partial_reg_dependency, x86_sse_load0_by_pxor,
1205         x86_ext_80387_constants, x86_four_jump_limit):
1206         (override_options): Add nocona_cost to processor_target_table.
1207         Set up PROCESSOR_NOCONA for Nocona entry in processor_alias_table.
1208         (incdec_operand): Prevent inc/dec generation for Nocona too.
1209         (ix86_issue_rate): Add PROCESSOR_NOCONA.
1210
1211 2004-04-01  Andrew Pinski  <pinskia@physics.uc.edu>
1212
1213         * rtlanal.c (find_reg_note): Manually
1214         unswitch the loop.
1215
1216 2004-04-01  Mark Mitchell  <mark@codesourcery.com>
1217
1218         * genemit.c (gen_split): Change prototype of generated code.
1219         * genrecog.c (write_action): Adjust prototype for and calls to
1220         gen_split_*.
1221         * gensupport.c (struct queue_elem): Add split field.
1222         (queue_pattern): Return a value.  Clear the split field.
1223         (process_rtx): Maintain an association between an insn and the
1224         split generated from it for a define_insn_and_split.
1225         (process_one_cond_exec): Generate a new split for a
1226         define_insn_and_split.
1227         * config/arm/arm-protos.h (arm_split_constant): Add insn
1228         parameter.
1229         (emit_constant_insn): New function.
1230         (arm_gen_constant): Use it.
1231         * config/arm/arm.md: Adjust calls to arm_split_constant.
1232
1233 2004-04-02  Jan Hubicka  <jh@suse.cz>
1234
1235         * cgraph.c: Add overall comment.
1236         (cgraph_inline_hash): New global variable.
1237         (cgraph_create_node): Break out from ...
1238         (cgraph_node): ... here.
1239         (cgraph_edge): New function.
1240         (cgraph_create_edge): New CALL_EXPR argument; some sanity checking.
1241         (cgraph_remove_edge): Accept edge, intead of source and destination.
1242         (cgraph_redirect_edge_callee): New.
1243         (cgraph_remove_node): Update all new datastructures.
1244         (cgraph_record_call, cgraph_remove_call): Kill.
1245         (dump_cgraph_node): Break out from ... ; dump new datastructures.
1246         (dump_cgraph): ... here.
1247         (cgraph_function_possibly_inlined_p): Use new hashtable.
1248         (cgraph_clone_edge, cgraph_clone_node): New.
1249         * cgraph.h: Include hashtab.h
1250         (struct cgraph_global_info): Kill cloned_times, inline_once, will_be_output
1251         fields, add inlined_to pointer.
1252         (cgraph_node): Add pointer to next_clone.
1253         (cgraph_remove_edge, cgraph_create_edge): Update prototype.
1254         (cgraph_remove_call, cgraph_record_call): Kill.
1255         (cgraph_inline_hash): Declare.
1256         (dump_cgraph_node, cgraph_edge, cg4raph_clone_edge, cgraph_clone_node,
1257         cgraph_redirect_edge_callee): Declare.
1258         (cgraph_create_edges, cgraph_inline_p): Update prorotype.
1259         (cgraph_preserve_function_body_p, verify_cgraph, verify_cgraph_node,
1260         cgraph_mark_inline_edge, cgraph_clone_inlined_nodes): Declare.
1261         * cgraphunit.c: Add overall comment.
1262         (cgraph_optimize_function): Kill.
1263         (cgraph_assemble_pending_functions): Do not assemble inline clones.
1264         (cgraph_finalize_function): Update call of cgraph_remove_node
1265         (record_call_1): Record call sites.
1266         (cgraph_create_edges): Accept node instead of decl argument.
1267         (error_found): New static variable.
1268         (verify_cgraph_node_1, verify_cgraph_node, verify_cgraph): New functions.
1269         (cgraph_analyze_function): Update for new datastructures.
1270         (cgraph_finalize_compilation_unit): Plug memory leak.
1271         (cgraph_optimize_function): Kill.
1272         (cgraph_expand_function): Do not use cgraph_optimize_function.
1273         (INLINED_TIMES, SET_INLINED_TIMES, cgraph_inlined_into,
1274         cgraph_inlined_callees): Kill.
1275         (cgraph_remove_unreachable_nodes): Verify cgraph; update handling of
1276         clones.
1277         (estimate_growth): Simplify.
1278         (cgraph_clone_inlined_nodes): New function.
1279         (cgraph_mark_inline_edge): Re-implement.
1280         (cgraph_mark_inline): Likewise.
1281         (cgraph_check_inline_limits): Simplify.
1282         (cgraph_recursive_inlining_p): New.
1283         (update_callee_keys): Break out from ...
1284         (cgraph_decide_inlining_of_small_functions): ... here; simplify.
1285         (cgraph_decide_inlining, cgraph_decide_inlining_incrementally):
1286         Likewise.
1287         (cgraph_expand_all_functions):  Remove inline clones from the ordered
1288         list.
1289         (cgraph_preserve_function_body_p): New predicate.
1290         (cgraph_optimize): Verify cgraph.
1291         * function.h (struct function): Add fields saved_tree/saved_args.
1292         * timevar.def (TV_CGRAPH_VERIFY): Use verifier.
1293         * toplev.c (rest_of_compilation): Do not free cfun.
1294         * tree-inline.c: Include function.h
1295         (struct inline_data): Add saving_p field; replace decl/current_decl by
1296         node/current_node.
1297         (insert_decl_map): New function.
1298         (copy_body_r): Handle saving; update cgraph datastructure.
1299         (copy_body): Handle recursive inlining.
1300         (initialize_inlined_parameters): Likewise.
1301         (expand_call_inline): Propagate node attributes; update cgraph.
1302         (optimize_inline_calls): Verify that datastructure still match.
1303         (save_body): New function.
1304         * tree-inline.h (save_body): New.
1305         * tree-optimize.c (tree_rest_of_compilation): preserve function body; do inlining.
1306         * langhooks-def.c (LANG_HOOKS_UPDATE_DECL_AFTER_SAVING): New.
1307         * langhooks.c (lang_hooks): Add update_decl_after_saving.
1308
1309 2004-04-01  Serge Belyshev  <1319@bot.ru>
1310
1311         PR target/14702
1312         * config/i386/i386.md: fix source operand constraints in
1313         mmx_pshufw, sse2_pshufd, sse2_pshuflw, sse2_pshufhw
1314
1315 2004-04-01  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
1316
1317         * fold-const.c (folda): Preserve types of comparisons.
1318
1319 2004-04-01  Richard Henderson  <rth@redhat.com>
1320
1321         * toplev.c (backend_init): Move init_optimization_passes call ...
1322         (lang_dependent_init): ... here.
1323
1324 2004-04-01  Alan Modra  <amodra@bigpond.net.au>
1325             Jakub Jelinek  <jakub@redhat.com>
1326
1327         * gcc.c (init_gcc_specs): If HAVE_LD_AS_NEEDED, link with
1328         -lgcc --as-needed -lgcc_s --no-as-needed by default.
1329         * configure.ac (HAVE_LD_AS_NEEDED): Check for ld --as-needed.
1330         * configure: Rebuilt.
1331         * config.in: Rebuilt.
1332         * Makefile.in (stage1-start): Copy also libgcc_s*$(SHLIB_EXT).
1333         (stage2-start, stage3-start, stage4-start): Likewise.
1334         (stageprofile-start, stagefeedback-start): Likewise.
1335
1336 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
1337
1338         * config/sparc/sparc.h (DITF_CONVERSION_LIBFUNCS): Define to 0.
1339         * config/sparc/linux.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
1340         * config/sparc/linux64.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
1341         * config/sparc/sol2.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
1342         (SOLARIS_CONVERSION_LIBFUNCS): Rename to SUN_CONVERSION_LIBFUNCS.
1343         * config/sparc/sparc.c (sparc_init_libfuncs): Initialize optabs
1344         with _Q_qtoll, _Q_qtoull and _Q_lltoq if DITF_CONVERSION_LIBFUNCS.
1345         * config.gcc (sparc-*-linux*): Revert 2004-03-23 change.
1346         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Likewise.
1347         * config/sparc/t-linux: Removed.
1348
1349 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
1350
1351         PR c++/14755
1352         * fold-const.c (fold) <EQ_EXPR>: Properly compute newconst in
1353         "bitfld++ == const" to "++bitfld == const + incr" transformations.
1354
1355 2004-04-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1356
1357         * expr.c (get_inner_reference): Use DECL_UNSIGNED, not TREE_UNSIGNED.
1358         * stor-layout.c (layout_decl): Likewise.
1359         * tree.c (get_narrower): Likewise and also use BIT_FIELD_REF_UNSIGNED.
1360         * fold-const.c (make_bit_field_ref): Use BIT_FIELD_REF_UNSIGNED.
1361         * print-tree.c (print_node): Handle various used of unsigned_flag.
1362         * tree.def (BIT_FIELD_REF): Update comment.
1363         * tree.h (TREE_UNSIGNED): Deleted.
1364         (DECL_UNSIGNED, BIT_FIELD_REF_UNSIGNED): New macros.
1365
1366 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1367
1368         * builtins.c, c-aux-info.c, c-common.c, c-cppbuiltin.c, c-decl.c:
1369         Change most occurrences of TREE_UNSIGNED to TYPE_UNSIGNED.
1370         * c-format.c, c-opts.c, c-pretty-print.c, c-typeck.c: Likewise.
1371         * calls.c, convert.c, dbxout.c, dojump.c, dwarf2out.c: Likewise.
1372         * expmed.c, expr.c, fold-const.c, function.c, integrate.c: Likewise.
1373         * optabs.c, sdbout.c, stmt.c, stor-layout.c, tree-dump.c: Likewise.
1374         * tree.c, config/iq2000/iq2000.c, config/m32r/m32r.c: Likewise.
1375         * config/mips/mips.c, config/rs6000/rs6000.c: Likewise.
1376         * config/s390/s390.c, config/sparc/sparc.c, objc/objc-act.c: Likewise.
1377         * stor-layout.c (layout_type, case COMPLEX_TYPE): Test for
1378         REAL_TYPE, not INTEGER_TYPE.
1379         (layout_type, case VECTOR_TYPE): Simplify code.
1380         * tree.c (build_vector_type_for_mode): Remove dup unsigned setting.
1381         * tree.h: Update comments.
1382         (STRIP_NOPS): Use TYPE_UNSIGNED.
1383         (TYPE_UNSIGNED): New macro.
1384         (TYPE_TRAP_SIGNED): Remove now redundant check.
1385         (SAVE_EXPR_NOPLACEHOLDER): Don't use TREE_UNSIGNED.
1386
1387 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1388
1389         * function.c (put_var_into_stack): Properly set orig_reg for indirect.
1390
1391 2004-03-31  Andrew Pinski  <pinskia@physics.uc.edu>
1392
1393         * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA):
1394         Add darwin-fpsave.asm, darwin-vecsave.asm,
1395         and darwin-world.asm.
1396         (TARGET_LIBGCC2_CFLAGS): Add -Wa,-force_cpusubtype_ALL
1397         as the asm files contain altivec instructions.
1398         * config/rs6000/darwin-fpsave.asm: New file.
1399         * config/rs6000/darwin-vecsave.asm: New file.
1400         * config/rs6000/darwin-world.asm: New file.
1401
1402 2004-03-31  Zack Weinberg  <zack@codesourcery.com>
1403
1404         * gengtype-yacc.y (option, stringseq): Add missing
1405         terminating semicolon.
1406
1407 2004-03-30  David Edelsohn  <edelsohn@gnu.org>
1408
1409         * config/rs6000/rs6000.md (tls_gd_32, tls_gd_64,
1410         tls_ld_32, tls_ld_64, tls_dtprel_32, tls_dtprel_64,
1411         tls_dtprel_ha_32, tls_dtprel_ha_64,
1412         tls_dtprel_lo_32, tls_dtprel_lo_64,
1413         tls_got_dtprel_64, tls_tprel_32, tls_tprel_64,
1414         tls_tprel_ha_32, tls_tprel_ha_64,
1415         tls_tprel_lo_32, tls_tprel_lo_64,
1416         tls_got_tprel_32, tls_got_tprel_64,
1417         tls_tls_32, tls_tls_64): Replace register_operand with
1418         gpc_reg_operand.
1419
1420 2004-03-30  Mostafa Hagog  <mustafa@il.ibm.com>
1421
1422         * config/rs6000/rs6000.md (*ctrsi_internal1, *ctrsi_internal2,
1423         *ctrdi_internal1, *ctrdi_internal2, *ctrsi_internal3,
1424         *ctrsi_internal4, *ctrdi_internal3, *ctrdi_internal4,
1425         *ctrsi_internal5, *ctrsi_internal6, *ctrdi_internal5,
1426         *ctrdi_internal6): Replace register_operand with
1427         nonimmediate_operand.
1428
1429 2004-03-29  Fariborz Jahanian <fjahanian@apple.com>
1430
1431         * fold-const.c (fold): Reassociate multiply expression
1432         with an adjacent non-multiply expression to use
1433         architecture's multiply-add instruction.
1434
1435 2004-03-30  Zack Weinberg  <zack@codesourcery.com>
1436
1437         * gengtype.c (create_option): New function.
1438         * gengtype.h: Prototype it.
1439         * gengtype-yacc.y (stringseq): New rule.
1440         (option): Use create_option.  Add new bare ID production.  Use
1441         stringseq, not STRING directly.
1442
1443         * alias.c, bitmap.c, c-decl.c, cgraph.h, cpplib.h, cselib.h
1444         * dwarf2out.c, emit-rtl.c, function.h, lists.c, tree.h
1445         * varray.h, config/alpha/alpha.c:
1446         Use new shorter form of GTY markers.
1447
1448         * doc/gty.texi: Rewrite.
1449
1450 2004-03-30  Andrew Pinski  <pinskia@physics.uc.edu>
1451
1452         * config/darwin.c (machopic_function_base_name):
1453         Remove current_name and getting the name of the
1454         current function.
1455
1456 2004-03-30  Nick Clifton  <nickc@redhat.com>
1457
1458         * config/arm/arm.md (thumb_jump): Reduce the backward branch
1459         range, and increase the forward branch range, to allow for
1460         the fact that the PC will be off by 4.
1461
1462 2004-03-30  Alan Modra  <amodra@bigpond.net.au>
1463
1464         * .cvsignore: Add GPATH, GRTAGS, GSYMS and GTAGS (GNU GLOBAL)
1465
1466 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
1467
1468         * config/rs6000/rs6000.c (output_vec_const_move):
1469         Find all cases of EASY_VECTOR_15_ADD_SELF.
1470         (easy_vector_constant_add_self): Accept
1471         all vector constant loadable by vsplt* and vadd*.
1472         (easy_vector_same): Use easy_vector_splat_const.
1473         (easy_vector_const): Use easy_vector_splat_const.
1474         (easy_vector_splat_const): New function.
1475         (gen_easy_vector_constant_add_self): New function.
1476
1477         * config/rs6000/rs6000-protos.c (gen_easy_vector_constant_add_self):
1478         New prototype.
1479
1480         * config/rs6000/altivec.md (movv4si splitter): Change to
1481         emit move insn with halfed vector constant.
1482         (*movv8hi splitter): Likewise.
1483         (*movv16qi splitter): Likewise.
1484
1485 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
1486
1487         PR 11591
1488         * config/rs6000/rs6000.c (rs6000_legitimate_address):
1489         Allow any offset to argument pointer in no-strict case.
1490
1491 2004-03-30  Jan Hubicka  <jh@suse.cz>
1492
1493         * toplev.c (backend_init): Add missing call to inint_optimization_passes.
1494         * passes.c (init_optimization_passes, finish_optimization_passes): Output cgraph
1495         dump file in non-unit-at-a-time mode.
1496
1497 2004-03-29  Hans-Peter Nilsson  <hp@axis.com>
1498
1499         * config/cris/cris.h: Correct #ifdef to test for
1500         HAVE_AS_NO_MUL_BUG_ABORT_OPTION, not
1501         HAVE_AS_MUL_BUG_ABORT_OPTION.
1502
1503 2004-03-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1504
1505         * function.c (put_var_into_stack): If old RTL was ADDRESSOF, update
1506         the address inside the old RTL.
1507
1508 2004-03-28  Zack Weinberg  <zack@codesourcery.com>
1509
1510         * c-decl.c: Verify that C_SIZEOF_STRUCT_LANG_IDENTIFIER is correct.
1511         (struct c_binding, struct c_scope): Add chain_next
1512         attributes to GTY markers.
1513         (struct lang_identifier, struct lang_tree_node): Define
1514         here...
1515         * c-tree.h: ... not here.  No longer need to declare struct
1516         c_binding either.  Do define C_SIZEOF_STRUCT_LANG_IDENTIFIER.
1517         * c-lang.c, objc/objc-lang.c: Set LANG_HOOKS_IDENTIFIER_SIZE
1518         to C_SIZEOF_STRUCT_LANG_IDENTIFIER.
1519
1520         PR 14734, 11944
1521         * c-decl.c (get_parm_info): If error_mark_node is encountered
1522         in the bindings chain, unbind and discard it; don't abort.
1523
1524 2004-03-28  Olga Golovonevsky <olga@il.ibm.com>
1525             Dorit Naishlos <dorit@il.ibm.com>
1526
1527         * config/rs6000/altivec.md: (andvv16qi3, andv8hi3, one_cmplv16qi2,
1528         one_cmplv8hi2, one_cmplv4si2, iorv16qi3, iorv8hi3,): New modelling.
1529
1530 2004-03-28  Stephane Carrez  <stcarrez@nerim.fr>
1531
1532         * config/m68hc11/m68hc11-protos.h (m68hc11_page0_symbol_p): Declare.
1533
1534         * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute): New.
1535         (m68hc11_attribute_table): New attribute "page0" to mark a global
1536         variable as being allocated from within page0 section.
1537         (m68hc11_encode_label): New function.
1538         (m68hc11_strip_name_encoding): New function.
1539         (m68hc11_page0_symbol_p): New function.
1540         (m68hc11_indirect_p): Accept global variables marked in page0.
1541         (m68hc11_encode_section_info): Lookup "page0" attribute.
1542
1543         * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): 'R' constraint also
1544         represents access to page0 variables.
1545
1546         * config/m68hc11/m68hc11.md ("*logicalsi3_zexthi"): Use gen_rtx_REG.
1547         ("*logicalsi3_silshl16_zext"): Likewise.
1548         ("*ashldi3_const32"): Likewise.
1549         (peephole2 ashift): Likewise.
1550
1551 2004-03-28  Joseph S. Myers  <jsm@polyomino.org.uk>
1552
1553         * c-tree.h (C_DECL_REGISTER): New.
1554         * c-aux-info.c (gen_decl), c-decl.c (objc_mark_locals_volatile,
1555         finish_decl, grokdeclarator, get_parm_info), c-typeck.c
1556         (build_array_ref, c_mark_addressable): Set and use it.
1557         * c-decl.c (grokdeclarator), c-typeck.c (c_mark_addressable):
1558         Allow structures with volatile fields to be declared register.
1559         Don't check TREE_ADDRESSABLE before warning about taking address
1560         of register.
1561         * c-decl.c (finish_decl): Don't allow structures with volatile
1562         fields to be placed in named register.
1563         * doc/trouble.texi: Remove reference to structures with volatile
1564         fields in registers.
1565
1566 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
1567
1568         * function.c (thread_prologue_and_epilogue): Move
1569         NOTE_INSN_FUNCTION_END and NOTE_INSN_FUNCTION_BEG notes
1570         before the epilogue.
1571
1572 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
1573
1574         * expr.c (store_constructor): Use gen_int_mode to correctly
1575         sign-extend CONST_INT value.
1576
1577 2004-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1578
1579         * builtin-types.def (BT_WINT, BT_FN_INT_WINT, BT_FN_WINT_WINT): New.
1580         * builtins.def (DEF_C94_BUILTIN): New.  Add wctype builtins.
1581         * doc/extend.texi: Likewise.
1582
1583 2004-03-26  Diego Novillo  <dnovillo@redhat.com>
1584
1585         * c-typeck.c (comptypes): Replace calls to TYPE_DOMAIN
1586           with TYPE_ORIG_SIZE_TYPE.
1587
1588 2004-03-25  Aldy Hernandez  <aldyh@redhat.com>
1589
1590         PR 14219
1591         * c-typeck.c (build_binary_op): Do not allow comparisons of
1592         vectors.
1593
1594 2004-03-26  James A. Morrison  <ja2morri@uwaterloo.ca>
1595
1596         * config.gcc: Remove sparc-tti-*.
1597         * config/sparc/pbd.h: Delete.
1598
1599         * config/sparc/sol2.h: Remove note about Sun OS 4.x.
1600         * config/sparc/aout.h: Likewise.
1601
1602         * config/sparc/sparc.h: Remove if 0'd code.
1603         * config/sparc/sparc.md (call): Remove if 0'd code.
1604         (call_value): Likewise.
1605         (nonlocal_goto): Likewise.
1606         (unimp_insn): Delete.
1607
1608 2004-03-25  Roger Sayle  <roger@eyesopen.com>
1609
1610         * fold-const.c (tree_expr_nonnegative_p): Handle BIT_XOR_EXPR like
1611         BIT_IOR_EXPR; A^B is nonnegative when A and B are nonnegative.
1612
1613 2004-03-25  Richard Henderson  <rth@redhat.com>
1614
1615         PR 11527
1616         * c-typeck.c (pop_init_level): Emit pending init elements earlier
1617         rather than later.
1618
1619 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1620
1621         * builtins.c (fold_builtin): Fix error in last change.
1622
1623 2004-03-25  Richard Sandiford  <rsandifo@redhat.com>
1624
1625         * config/mips/mips.h: Formatting fix.
1626
1627 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1628
1629         * builtins.def: Add ctype builtins.
1630         * doc/extend.texi: Likewise.
1631
1632 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1633
1634         * builtins.c (fold_builtin): Add new builtin optimizations for
1635         sqrt and/or cbrt.
1636         * fold-const.c (fold): Likewise.
1637
1638 2004-03-25  David Edelsohn  <edelsohn@gnu.org>
1639
1640         * config/rs6000/rs6000.c (rs6000_always_hint): New variable.
1641         (rs6000_sched_groups): New variable.
1642         (processor_target_table): Add power5.
1643         (rs6000_override_options): Set rs6000_sched_insert_nops,
1644         rs6000_sched_costly_dep and rs6000_sched_restricted_insns_priority
1645         from rs6000_sched_groups.
1646         (output_cbranch): Use rs6000_always_hint.
1647         (rs6000_variable_issue): Use rs6000_sched_groups.
1648         (rs6000_adjust_cost): Add CPU_POWER5.
1649         (is_microcoded_insn): Use rs6000_sched_groups.
1650         (is_dispatch_slot_restricted): Use rs6000_sched_groups.
1651         Return 2 for POWER5 cracked instructions.
1652         (is_cracked_insn): Use rs6000_sched_groups.
1653         (is_branch_slot_insn): Use rs6000_sched_groups.
1654         (rs6000_issue_rate): Add CPU_POWER5.
1655         (rs6000_sched_finish): Use rs6000_sched_groups.
1656         (rs6000_rtx_costs): Add PROCESSOR_POWER5.
1657         * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER5.
1658         (DEFAULT_SCHED_COSTLY_DEP): Delete.
1659         (DEFAULT_RESTRICTED_INSNS_PRIORITY): Delete.
1660         (DEFAULT_SCHED_FINISH_NOP_INSERTION_SCHEME): Delete.
1661         * config/rs6000/rs6000.md (define_attr "cpu"): Add power5.
1662         * config/rs6000/power5.md: New file.
1663         * doc/invoke.texi: Add power5 option.
1664
1665 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
1666
1667         * cfgrtl.c, dbxout.c, tree.def, config/darwin.h,
1668         config/arm/arm.c, objc/objc-act.c: Fix comment typos.
1669         * doc/invoke.texi: Fix a typo.
1670
1671 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
1672
1673         PR optimization/9707.
1674         * stmt.c (emit_case_nodes): Emit equality comparisons instead
1675         of recursing if both children are single-valued cases with no
1676         children.
1677
1678 2004-03-25  Paul Brook  <paul@codesourcery.com>
1679
1680         * config/arm/arm.c (vfp_print_multi): Remove.
1681         (arm_output_fldmx): New function.
1682         (vfp_emit_fstmx): Return block size, not insn. Add ARM10 VFPr1 bugfix.
1683         (arm_expand_prologue): Update to match.
1684         (arm_get_vfp_saved_size): New Function.
1685         (arm_get_frame_offsets): Use it.
1686         (arm_output_epilogue): Use new functions.
1687
1688 2004-03-24  Richard Henderson  <rth@redhat.com>
1689
1690         * alias.c (alias_invariant, alias_invariant_size): Mark GTY.
1691         (reg_known_value, reg_known_value_size): Likewise; make static.
1692         (reg_known_equiv_p): Make static.
1693         (clear_reg_alias_info): Update for new indexing.
1694         (get_reg_known_value, set_reg_known_value): New.
1695         (get_reg_known_equiv_p, set_reg_known_equiv_p): New.
1696         (canon_rtx): Use them.
1697         (init_alias_analysis): Likewise.  Allocate reg_known_value with gc.
1698         Don't play queer offsetting games with reg_known_value and
1699         reg_known_equiv_p.
1700         (end_alias_analysis): Free reg_known_value with gc.
1701         * rtl.h (get_reg_known_value, get_reg_known_equiv_p): Declare.
1702         * sched-deps.c (reg_known_equiv_p, reg_known_value): Remove.
1703         (deps_may_trap_p, sched_analyze_1, sched_analyze_2): Use the new
1704         functions instead.
1705
1706 2004-03-24  Kazu Hirata  <kazu@cs.umass.edu>
1707
1708         * dwarf2asm.c, loop.h, pretty-print.c, pretty-print.h,
1709         config/i386/mmintrin.h: Update copyright.
1710
1711 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
1712
1713         * configure.ac: Add --enable-werror-always (for top level bootstrap
1714         support).
1715         * configure: Regenerate.
1716
1717 2004-03-24  Ziemowit Laski  <zlaski@apple.com>
1718
1719         * objc/objc-act.c (objc_comptypes): Treat comparisons
1720         between 'Class' and '<class> *' as explicitly invalid.
1721
1722 2004-03-24  David Edelsohn  <edelsohn@gnu.org>
1723
1724         * doc/invoke.texi (-frename-registers: Add enabled at -O3.
1725         (-fprofile-values): Add enabled with profile-{generate,use}.
1726         (-fvpt): Same.
1727         (-ftracer): Add enabled with profile-use.
1728         (-funit-at-a-time): Add enabled at -O2,-O3.
1729         (-funroll-loops): Add enabled with profile-use.
1730         (-funswitch-loops): Add enabled with profile-use.  Remove duplicates.
1731         (max-gcse-passes): Mention default.
1732         (max-cse-path-length): Mention default.
1733
1734 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
1735
1736         * Makefile.in (STRICT2_WARN): Reorder.
1737         * configure.ac: Check for -Wold-style-definition, and use it
1738         in strict1_warn if it's available.
1739         * configure: Regnerate.
1740
1741 2004-03-24  Paul Brook  <paul@nowt.org>
1742
1743         * config.gcc <arm>: Add --with-abi=
1744         * config/arm/arm-protos.h (arm_get_frame_size, thumb_get_frame_size,
1745         thumb_far_jump_used): Remove prototypes.
1746         (arm_needs_doubleword_align): Add prototype.
1747         (thumb_compute_initial_elimination_offset): Ditto.
1748         * config/arm/arm.c (arm_get_frame_offsets): New function.
1749         (use_return_insn, output_return_instruction, arm_output_epilogue,
1750         arm_output_function_epilogue, arm_compute_initial_elimination_offset,
1751         arm_expand_prologue, thumb_expand_epilogue): Use it.
1752         (arm_abi, target_abi_name, all_arm_abis): New variables.
1753         (arm_override_options): Set them.  Set structure padding for AAPCS.
1754         (arm_return_in_memory): Update ABI check.
1755         (arm_init_cumulative_args): Initialize can_split.
1756         (arm_needs_doubleword_align): New function.
1757         (arm_function_arg): Don't split args after pushing to stack. Handle
1758         doubleword/even reg alignment.
1759         (arm_va_arg): Handle all doubleword aligned args.
1760         (add_minpoolforward ref, dump_minpool, push_minpool_fix): Align based
1761         on ABI, not CPU.
1762         (arm_compute_save_reg0_reg12_mask): Fix comment.
1763         (thumb_get_frame_size, thumb_get_frame_size): Remove.
1764         (thumb_jump_far_used_p): Remove superfluous argument.  Return save
1765         value for alignment.
1766         (thumb_unexpanded_epilogue, thumb_output_function_prologue): Change
1767         to match.
1768         (thumb_compute_initial_elimination_offset): New function.
1769         (thumb_expand_prologue): Use arm_get_frame_offsets.  Remove
1770         unneccessary rounding.
1771         * config/arm/arm.h (target_abi_name): Declare.
1772         (ARM_DOUBLEWORD_ALIGN, DOUBLEWORD_ALIGNMENT, TARGET_IWMMXT_ABI,
1773         arm_abi_type, ARM_DEFAULT_ABI): Define.
1774         (ARM_FLAG_ATPCS): Remove.
1775         (TARGET_OPTIONS, OPTION_DEFAULT_SPECS): Add -mabi=.
1776         (BIGGEST_ALIGNMENT, PREFERRED_STACK_BOUNDARY, STACK_BOUNDARY): Use it.
1777         (ADJUST_FIELD_ALIGN, DATA_ALIGNMENT, LOCAL_ALIGNMENT,
1778         TYPE_NEEDS_IWMMXT_ALIGNMENT): Remove.
1779         (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P, FUNCTION_ARG_REGNO_P):
1780         Contitionalize on ABI, not CPU.
1781         (struct arm_stack_offsets): Define.
1782         (struct machine_function): Add stack_offsets.  Remove frame_size.
1783         (FUNCTION_ARG_PARTIAL_NREGS): Don't split if previous args have been
1784         pushed.
1785         (FUNCTION_ARG_ADVANCE, FUNCTION_ARG_BOUNDARY): Handle general
1786         doubleword alignment.
1787         (THUMB_INITIAL_ELIMINATION_OFFSET,
1788         ARM_INITIAL_ELIMINATION_OFFSET): Remove.
1789         (INITIAL_ELIMINATION_OFFSET): Call functions directly.
1790         * config/arm/arm.md (align_8): Enable for all targets.
1791         * config/arm/netbsd-elf.h (TARGET_DEFAULT): Remove TARGET_ATPCS.
1792         (ARM_DEFAULT_ABI): Define.
1793         * doc/invoke.texi <ARM>: Document -mabi=. Update documentation for
1794         -mstructure-size-boundary.
1795
1796 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
1797
1798         * configure.ac: Check for -Wno-variadic-macros; don't use
1799         -pedantic (in stage 1 or a simple 'make all') unless it's available,
1800         and if it's available, use it.  Also, clean up check for
1801         -Wno-long-long.
1802         * configure: Regenerate.
1803
1804 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
1805
1806         * config.gcc (mips64vr-*-elf*, mips64vrel-*-elf*): Remove tm_defines.
1807         * config/mips/vr.h (DEFAULT_VR_ARCH): New macro, defined to vr4130.
1808         (MULTILIB_DEFAULTS): Use it.
1809         (MIPS_CPU_STRING_DEFAULT): Remove.
1810         (MIPS_ABI_DEFAULT, MIPS_MARCH_CONTROLS_SOFT_FLOAT): Define.
1811         (DRIVER_SELF_SPECS): Make -mfix-vr4122-bugs imply -march=vr4120.  Make
1812         EABI64 -mlong32 the default ABI.  Enforce the default architecture.
1813         * config/mips/t-vr (MULTILIB_OPTIONS): Add mfix-vr4122-bugs,
1814         march=vr4130, march=vr4300, march=vr5000 and march=vr5500.
1815         (MULTILIB_MATCHES): Use -mfix-vr4122-bugs multilibs for -march=vr4120.
1816         (MULTILIB_EXCEPTIONS): Change choice of multilibs.  Update comments
1817         accordingly.
1818
1819 2004-03-24  DJ Delorie  <dj@redhat.com>
1820             Richard Sandiford  <rsandifo@redhat.com>
1821
1822         * config/mips/mips.h (MASK_FIX_VR4122, TARGET_FIX_VR4122): New macros.
1823         (TARGET_SWITCHES): Add -mfix-vr4122-bugs and -mno-fix-vr4122-bugs.
1824         (ASM_SPEC): Pass down -mfix-vr4122-bugs.
1825         * config/mips/mips.c (mips_avoid_hazards): Don't emit whole functions
1826         in .set noreorder and .set nomacro if TARGET_FIX_VR4122.
1827         (mips_init_libfuncs): Use special functions for divsi3 and modsi3
1828         if TARGET_FIX_VR4122.
1829         * config/mips/mips.md (define_attr length): Account for nops inserted
1830         after macc and dmult when using -mfix-vr4122-bugs.
1831         (umuldi3_highpart, divmodsi4, divmoddi4): Disable if TARGET_FIX_VR4122.
1832         * config/mips/t-vr (LIB2FUNCS_STATIC_EXTRA): Define instead of
1833         LIB2FUNCS_EXTRA.  Add config/mips/vr4122-div.S.
1834         * config/mips/vr4122-div.S: New file.
1835         * doc/invoke.texi: Document -mfix-vr4122-bugs.
1836
1837 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
1838
1839         * config/mips/mips.h (PROCESSOR_R4130): New processor_type.
1840         (TARGET_MIPS4130): New macro.
1841         (ISA_HAS_MACC): Return true if TARGET_MIPS4130 && !TARGET_MIPS16.
1842         * config/mips/mips.c (mips_cpu_info_table): Add a vr4130 entry.
1843         (override_options): Extend MIPS_MARCH_CONTROLS_SOFT_FLOAT to deal
1844         with PROCESSOR_R4130.
1845         * config/mips/mips.md (define_attr cpu): Add r4130.
1846         * doc/invoke.texi: Document vr4130 as a supported MIPS architecture.
1847
1848 2004-03-24  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
1849             Richard Sandiford  <rsandifo@redhat.com>
1850
1851         * doc/invoke.texi: Apply missed hunk from 2004-03-03 change.
1852
1853 2004-03-24  Alexandre Oliva  <aoliva@redhat.com>
1854
1855         PR preprocessor/14438
1856         * cpplib.c (do_pragma): Remove line_change call after pragma
1857         handler.
1858
1859 2004-03-23  Ian Lance Taylor  <ian@wasabisystems.com>
1860
1861         * doc/extend.texi (ARM Built-in Functions): Replace with correct
1862         declarations.
1863
1864 2004-03-23  Roger Sayle  <roger@eyesopen.com>
1865
1866         * reg-stack.c (get_true_reg): Handle FLOAT_TRUNCATE like FLOAT_EXTEND
1867         if flag_unsafe_math_optimizations.
1868         * config/i386/i386.md (truncdfsf2): If flag_unsafe_math_optimizations
1869         and TARGET_80387 expand using truncdfsf2_noop pattern.
1870         (truncxfsf2): Likewise using truncxfsf2_noop.
1871         (truncxfdf2): Likewise using truncxfdf2_noop.
1872         (truncdfsf2_noop, truncxfsf2_noop, truncxfdf2_noop): New patterns.
1873
1874 2004-03-23  Ziemowit Laski  <zlaski@apple.com>
1875
1876         * hooks.c (hook_constcharptr_tree_null): New hook.
1877         * hooks.h (hook_constcharptr_tree_null): New prototype.
1878         * target-def.h (TARGET_MANGLE_FUNDAMENTAL_TYPE): New target hook.
1879         * target.h (mangle_fundamental_type): New target hook.
1880         * config/rs6000/rs6000.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Point
1881         target hook at rs6000_mangle_fundamental_type.
1882         (rs6000_mangle_fundamental_type): New function.
1883         * doc/tm.texi (TARGET_MANGLE_FUNDAMENTAL_TYPE): Document.
1884
1885 2004-03-23  Zack Weinberg  <zack@codesourcery.com>
1886
1887         PR 12267, 12391, 12560, 13129, 14114, 14133
1888         * c-tree.h: Forward declare struct c_binding.  Declare
1889         c_override_bindings_to_false.  Update prototypes.
1890         (struct lang_identifier): Update comments.  Change fields to be
1891         struct c_binding *.
1892         (IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE)
1893         (IDENTIFIER_LABEL_VALUE, C_DECL_INVISIBLE)
1894         (KEEP_NO, KEEP_YES, KEEP_MAYBE): Delete.
1895         (C_DECL_IN_EXTERNAL_SCOPE, C_DECL_DECLARED_BUILTIN): New.
1896         * c-common.h: Update prototypes.
1897         * c-decl.c (struct c_scope): Update commentary.  Remove names,
1898         names_last, parms, parms_last, tags, and shadowed fields.  Add
1899         bindings and depth fields.
1900         (scope_freelist): Move to more appropriate location.
1901         (c_print_identifier): Update for changes to struct lang_identifier.
1902         (objc_mark_locals_volatile): Update for new bindings structures.
1903         (global_bindings_p): Honor c_override_global_bindings_to_false.
1904         (pushlevel): Rename to push_scope; take no arguments; use the
1905         scope_freelist; initialize scope->depth and check for overflow.
1906         (poplevel): Rename to pop_scope; totally rewritten for new bindings
1907         structures.
1908         (diagnose_mismatched_decls): Use C_DECL_DECLARED_BUILTIN, not
1909         C_DECL_INVISIBLE, for certain decisions.  Adjust some diagnostics.
1910         Improve some commentary.  Adjust handling of forward parm decls.
1911         (merge_decls): Set C_DECL_DECLARED_BUILTIN when appropriate.
1912         Preserve C_DECL_IN_EXTERNAL_SCOPE.
1913         (warn_if_shadowing): Correct indentation.  Improve diagnostics.
1914         (pushdecl): Remove unnecessary assertion.  Short-circuit anonymous
1915         decls.  Rewrite for new bindings structures.  Improve commentary.
1916         Eliminate the copy_node call.
1917         (implicit_decl_warning): Use the "diag" idiom (as seen in
1918         locate_old_decl) to reduce code duplication; call locate_old_decl
1919         if appropriate.  Relocate to remove need for forward declaration.
1920         (implicitly_declare): Adjust for new bindings structures.  Kludge
1921         around Objective-C not-really-builtin functions.
1922         (undeclared_variable): Improve diagnostics.  If current_function_decl
1923         is nonnull but current_function_scope is null, use current_scope.
1924         Use bind.
1925         (lookup_tag): Adjust for new bindings structures.  Kludge around
1926         Objective-C's tag declarations that wind up in the external scope.
1927         (lookup_name): Adjust for new bindings structures.  Kludge around
1928         c-common.c's pseudo-typedefs that wind up in the external scope.
1929         (lookup_name_current_level): Rename lookup_name_in_scope; take a
1930         second argument indicating the scope to examine; rewrite for
1931         new bindings structures.
1932         (c_init_decl_processing): Adjust for renamed functions.  Do not
1933         initialize current_file_decl, first_builtin_decl, last_builtin_decl.
1934         First scope pushed is the external scope, not the global scope.
1935         (builtin_function): Use bind, not pushdecl.  Adjust other bits
1936         for new data structures.  Keep track of builtins that should be
1937         made visible automatically.
1938         (start_decl): Adjust diagnostics.  Remove unnecessary call to
1939         expand_decl.
1940         (grokparms): Return 0 if arg_types is error_mark_node.
1941         (get_parm_info): Rename "void_at_end" argument to "ellipsis", with
1942         reversed sense.  Rewrite for new bindings structures.  Do not
1943         leave any decls in the scope, to prevent pop_scope from doing
1944         contradictory things with them.
1945         (finish_struct, finish_enum): Remove redundant diagnostics.
1946         (build_enumerator): Don't cascade diagnostics for error_mark_node.
1947         Mark location where -pedantic changes the meaning of the program.
1948         (store_parm_decls_newstyle, store_parm_decls_oldstyle): Load the
1949         parameter decls into the function's scope structure using bind.
1950         Warn here about function definitions in the wrong style.
1951         Adjust diagnostics.
1952         (store_parm_decls): Correct the determination of whether a
1953         function was defined with a prototype.
1954         (c_write_global_declarations): Operate on all file decls and on
1955         the external scope.  Split body of the loop to...
1956         (c_write_global_declarations_1): ... this new function, to avoid
1957         code duplication.
1958         (truly_local_externals, first_builtin_decl, last_builtin_decl)
1959         (make_scope, pop_scope, in_parm_level_p, set_block)
1960         (any_external_decl, record_external_decl, bind_label, getdecls)
1961         (link_hash_hash, link_hash_eq, merge_translation_unit_decls)
1962         (c_reset_state): Delete.
1963         (visible_builtins, c_override_global_bindings_to_false)
1964         (c_binding, I_SYMBOL_BINDING, I_SYMBOL_DECL, I_TAG_BINDING)
1965         (I_TAG_DECL, I_LABEL_BINDING, I_LABEL_DECL, file_scope)
1966         (external_scope, binding_freelist, bind, free_binding_and_advance)
1967         (push_file_scope, pop_file_scope): New.
1968         (pushtag, pushdecl_top_level, lookup_label, declare_label)
1969         (define_label, c_make_fname_decl, finish_decl)
1970         (mark_forward_parm_decls, build_compound_literal)
1971         (grokdeclarator, start_function, check_for_loop_decls)
1972         (identifier_global_value, record_builtin_type): Minor adjustments
1973         for new bindings structures.  Improve diagnostics and commentary.
1974         * c-objc-common.c (start_cdtor, finish_cdtor): Adjust calls to
1975         pushlevel/poplevel respectively.
1976         (c_objc_common_finish_file): Don't call merge_translation_unit_decls.
1977         * c-opts.c (c_common_parse_file): Remove spurious ATTRIBUTE_UNUSED.
1978         Warn about YYDEBUG not being defined only if -dy.  Remove no-longer-
1979         correct loop over multiple translation units; call fatal_error if
1980         requested to compile more than one file at once.  (This disables
1981         IMA temporarily - an up-front error being preferable to a crash.)
1982         * c-parse.in (pushlevel, poplevel rules): Rename push_scope, pop_scope.
1983         (all actions): Adjust calls to pushlevel/poplevel.
1984         (parsing_iso_function_signature): Delete.
1985         (extdef_1): Fold into extdef.
1986         (old_style_parm_decls_1): Fold into old_style_parm_decls.  Don't
1987         warn here about function definitions in the wrong style.
1988         (after_tyle_declarator, parm_declarator_starttypename)
1989         (parm_declarator_nostarttypename, notype_declarator): Remove
1990         commented-out productions.
1991         (parmlist_1, parmlist_2): Use make_node, not tree_cons, to create
1992         an empty TREE_LIST node.  Adjust calls to get_parm_info.
1993         (parmlist_2 : ELLIPSIS): Tag the arg-info block with error_mark_node
1994         to suppress -Wold-style-definition after this error.
1995         (c_parse_file): Don't clear the binding stack or call
1996         finish_fname_decls here.  Correct comment.
1997         * c-typeck.c (same_translation_unit_p): Export.
1998         (common_type): Use c_override_global_bindings_to_false, not
1999         pushlevel/poplevel/declare_parm_level.
2000         * c-lang.c: Override LANG_HOOKS_CLEAR_BINDING_STACK,
2001         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK,
2002         and LANG_HOOKS_GETDECLS with do-nothing stubs.
2003         * objc/objc-lang.c: Likewise.
2004         * objc/objc-act.c: Adjust all calls to pushlevel, poplevel,
2005         get_parm_info.
2006         (OBJC_VOID_AT_END): Delete; replace all uses
2007         with void_list_node.
2008         (generate_forward_declaration_to_string_table): Delete.
2009         * objc/objc-act.h (OCTI_STRG_DECL, UOBJC_STRINGS_decl): Delete.
2010
2011         * coverage.c (create_coverage): Don't pushdecl anything.
2012         * langhooks.c (lhd_clear_binding_stack): Call
2013         lang_hooks.decls.poplevel, not poplevel.
2014         * tree.c (list_length): If ENABLE_TREE_CHECKING, abort on a
2015         circular list rather than going into an infinite loop.
2016
2017 2004-03-23  Olivier Hainque  <hainque@act-europe.fr>
2018
2019         * optabs.c (expand_binop): When synthesizing double word rotates
2020         from single word shifts, use a new register target if the provided
2021         target is not a REG already.
2022
2023 2004-03-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2024
2025         * alias.c (get_alias_set): Add support for TYPE_REF_CAN_ALIAS_ALL.
2026         * c-common.c (handle_mode_attribute): Add extra arg to
2027         build_pointer_type_for_mode and build_reference_type_for_mode.
2028         * c-typeck.c (build_c_cast): Only look at TREE_CONSTANT_OVERFLOW
2029         for INTEGER_CST.
2030         * tree.c (build_pointer_type_for_mode): Add arg CAN_ALIAS_ALL.
2031         Chain pointers via TYPE_NEXT_PTR_TO.
2032         (build_reference_type_for_mode): Similarly.
2033         (build_type_no_quals): Add extra arg to build_pointer_type_for_mode
2034         and build_reference_type_for_mode.
2035         (tree_check4_failed): New function.
2036         * tree.h (TREE_CHECK4, PTR_OR_REF_CHECK): New macros.
2037         (TYPE_REF_CAN_ALIAS_ALL, TYPE_NEXT_PTR_TO, TYPE_NEXT_REF_TO): Likewise.
2038         (TREE_NO_UNSUED_WARNING, TREE_VIA_VIRTUAL, TREE_CONSTANT_OVERFLOW):
2039         Add check.
2040
2041 2004-03-23  Roger Sayle  <roger@eyesopen.com>
2042
2043         * fold-const.c (tree_expr_nonnegative_p): A&B is nonnegative when
2044         A is nonnegative or B is nonnegative.  Similarly A|B is nonnegative
2045         when both A and B are nonnegative.
2046         (tree_expr_nonzero_p): A|B is nonzero when A is nonzero or B is
2047         nonzero.
2048
2049 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
2050
2051         * fold-const.c (fold): Remove cases for INTEGER_CST, REAL_CST,
2052         VECTOR_CST, STRING_CST, COMPLEX_CST, and CONSTRUCTOR.
2053
2054 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
2055
2056         PR optimization/14669
2057         * fold-const.c (fold): Only unwiden integer comparisons for equality
2058         and inequality operators, or when the signedness doesn't change.
2059
2060 2004-03-23  Jakub Jelinek  <jakub@redhat.com>
2061
2062         * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
2063         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Set.
2064         * config/sparc/t-linux: New file.
2065
2066 2004-03-23  Richard Sandiford  <rsandifo@redhat.com>
2067
2068         * gcse.c (can_assign_to_reg_p): New function, split out from...
2069         (want_to_gcse_p): ...here.
2070         (compute_ld_motion_mems): Use can_assign_to_reg_p to validate
2071         the rhs of a store.
2072
2073 2004-03-22  Diego Novillo  <dnovillo@redhat.com>
2074
2075         * c-typeck.c (same_translation_unit_p): Fix pasto.
2076
2077 2004-03-22  David Edelsohn  <edelsohn@gnu.org>
2078
2079         * params.def (PARAM_MAX_SCHED_REGION_BLOCKS): New.
2080         (PARAM_MAX_SCHED_REGION_INSNS): New.
2081         * sched-rgn.c: Include params.h
2082         (MAX_RGN_BLOCKS): Delete.
2083         (MAX_RGN_INSNS): Delete.
2084         (too_large): Return bool.  Convert to PARAM_VALUE.
2085         * Makefile.in (sched-rgn.o): Depend on $(PARAMS_H).
2086         * doc/invoke.texi (param): Document max-sched-region-blocks and
2087         max-sched-region-insns.
2088
2089 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
2090
2091         * dwarf2out.c (is_subrange_type): Do not emit a subrange_type DIE
2092         for base types.
2093
2094 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
2095
2096         * dwarf2out.c (is_subrange_type): Minor code rework. No behavior
2097         change.
2098
2099 2004-03-22  Jakub Jelinek  <jakub@redhat.com>
2100
2101         PR c/14069
2102         * c-decl.c (finish_struct): Change type of incorrect flexible array
2103         field into error_mark_node.
2104
2105 2004-03-22  Andrew Pinski  <pinskia@physics.uc.edu>
2106
2107         PR target/14580
2108         * config/rs6000/rs6000.c (symbol_ref_operand): Reject symbols
2109         who are not local for Darwin PIC.
2110
2111 2004-03-22  Ulrich Weigand  <uweigand@de.ibm.com>
2112
2113         * regrename.c (regrename_optimize): Set regs_ever_live for all
2114         registers introduced as replacement.
2115
2116 2004-03-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
2117
2118         PR middle-end/14470
2119         * expr.c (mark_queue): New function.
2120         (emit_insns_enqueued_after_mark): New function replacing
2121         emit_queue.  Clear the body of emitted queued insns.
2122         (emit_queue): Call emit_insns_enqueued_after_mark.
2123         (store_expr): Mark the increment queue on entry.  Emit
2124         only the incrementations queued when expanding the source.
2125
2126 2004-03-22  Nathanael Nerode  <neroden@gcc.gnu.org>
2127
2128         * configure.ac: Allow --disable-coverage-flags (for the future benefit
2129         of top level bootstrap, and consistency).  Reindent.
2130         * configure: Regenerate.
2131
2132 2004-03-21  Kazu Hirata  <kazu@cs.umass.edu>
2133
2134         * bt-load.c, builtins.c, cfghooks.c, cfgrtl.c, gcse.c,
2135         ggc-page.c, integrate.c, var-tracking.c, web.c: Remove
2136         unnecessary casts.
2137
2138 2004-03-22  Danny Smith  <dannysmith@users.sourceforge.net>
2139
2140         PR target/14291
2141         * gcov-io.h (gcov_truncate): Define ftruncate as _chsize for
2142         __MINGW32__.
2143
2144 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
2145
2146         * config/s390/s390.md ("*doloop_si"): Change predicate for operand 2
2147         to nonimmediate_operand.
2148         ("*doloop_di"): Likewise.
2149
2150 2004-03-21  Alexandre Oliva  <aoliva@redhat.com>
2151
2152         * real.h (struct real_value): Use the same type for all
2153         bitfields.  Rename exp to uexp.
2154         (REAL_EXP, SET_REAL_EXP): New accessor macros for uexp.
2155         Adjust all uses of exp...
2156         * builtins.c: ... here, ...
2157         * emit-rtl.c: ... here, and ...
2158         * real.c: ... and here.
2159
2160 2004-03-21  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2161
2162         * pretty-print.c (pp_base_maybe_space): New function.
2163         * pretty-print.h (pp_base_maybe_space): Declare.
2164         (pp_maybe_space): New macro.
2165
2166 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
2167
2168         * config/s390/s390.md ("addti3", "subti3"): New insns and splitters.
2169
2170 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
2171
2172         * expmed.c (choose_mult_variant): Pass MULT_COST as argument instead
2173         of using register multiplication cost.
2174         (expand_mult): Adapt choose_mult_variant call.
2175         (expand_mult_highpart): Call choose_mult_variant with WIDER_MODE
2176         of MODE; pass appropriate cost bound.  Adjust result when
2177         performing signed multiplication by a negative constant.
2178         Don't use intermediate modes larger than word_mode.
2179
2180 2004-03-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2181
2182         * alias.c (get_alias_set): Remove handling of PLACEHOLDER_EXPR.
2183         * emit-rtl.c (component_ref_for_mem_expr): Likewise.
2184         (set_mem_attributes_minus_bitpos): Call SUBSTITUTE_PLACEHOLDER_IN_EXPR.
2185         * explow.c (expr_size): Likewise.
2186         * expr.h (placeholder_list, find_placeholder): Deleted.
2187         * expr.c (store_constructor): Likewise.
2188         (get_inner_reference): Likewise.  Also don't call find_placeholder.
2189         (placeholder_list, find_placeholder): Deleted.
2190         (is_aligning_offset): Don't handle WITH_RECORD_EXPR, PLACEHOLDER_EXPR.
2191         (expand_expr_real, cases PLACEHOLDER_EXPR, WITH_RECORD_EXPR): Likewise.
2192         (highest_pow2_factor, case WITH_RECORD_EXPR): Remove.
2193         * dojump.c (do_jump, case WITH_RECORD_EXPR): Likewise.
2194         * dwarf2out.c (loc_descriptor_from_tree, case WITH_RECORD_EXPR):
2195         Likewise.
2196         * fold-const.c (invert_truthvalue, case WITH_RECORD_EXPR): Likewise.
2197         (extract_muldiv, case WITH_RECORD_EXPR): Likewise.
2198         * tree.c (expr_align, case WITH_RECORD_EXPR): Likewise.
2199         (contains_placeholder_p): Don't handle WITH_RECORD_EXPR.
2200         Clean up by using first_rtl_op.
2201         (substitute_in_expr): Use SUBSTITUTE_IN_EXPR for recursive call.
2202         (substitute_placeholder_in_expr): New function.
2203         * tree.def (WITH_RECORD_EXPR): Deleted.
2204         * tree.h (SUBSTITUTE_IN_EXPR, SUBSTITUTE_PLACEHOLDER_IN_EXPR): New.
2205         (substitute_placeholder_in_expr): New.
2206
2207 2004-03-21  Andrew Pinski  <pinskia@gcc.gnu.org>
2208
2209         * dojump.c (prefer_and_bit_test): Fix which part of
2210         the and_test is replaced.
2211
2212 2004-03-21  Joseph S. Myers  <jsm@polyomino.org.uk>
2213
2214         * frontends.texi: Add missing line.
2215
2216 2004-03-21  Zack Weinberg  <zack@codesourcery.com>
2217             Chris Devers  <cdevers@pobox.com>
2218             Joseph S. Myers  <jsm@polyomino.org.uk>
2219
2220         * doc/frontends.texi: Rewrite.
2221         * doc/gcc.texi: Update last modification date.
2222
2223 2004-03-21  Josef Zlomek  <zlomekj@suse.cz>
2224
2225         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Print the debug
2226         message before redirecting the edge.
2227
2228 2004-03-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2229
2230         * emit-rtl.c (set_mem_attributes_minus_bitpos): Set MEM_POINTER
2231         flag.
2232         * explow.c (force_not_mem): Set REG_POINTER flag according to
2233         MEM_POINTER one.
2234         * rtl.h (MEM_POINTER): New macro.
2235         (struct rtx_def): Use integrated for MEM_SCALAR_P and frame_related
2236         for MEM_POINTER.
2237
2238 2004-03-20  Roger Sayle  <roger@eyesopen.com>
2239
2240         PR target/13889
2241         * cse.c (fold_rtx): Avoid substituting constants into unary
2242         conversion operations.
2243
2244 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
2245
2246         * fold-const.c (fold): Replace "expr" with "t".
2247
2248 2004-03-20  Ian Lance Taylor  <ian@wasabisystems.com>
2249
2250         PR c/12373
2251         * c-typeck.c (tagged_types_tu_compatible_p): Don't use
2252         DECL_ORIGINAL_TYPE if there isn't one.
2253
2254 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
2255
2256         * fold-const.c (fold): Replace "final_type" with "type".
2257         Remove variable "final_type".
2258
2259 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
2260
2261         * fold-const.c (fold): Constify "type".
2262         Replace "TREE_TYPE (t)" with "type".
2263
2264 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
2265
2266         * bb-reorder.c, bt-load.c, c-decl.c, cfgcleanup.c, coverage.c,
2267         dwarf2asm.c, ifcvt.c, stor-layout.c, varasm.c: Replace calls
2268         via (*targetm.foo) () with targetm.foo ().
2269
2270 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
2271
2272         PR other/14630
2273         * doc/install.texi: Add info directory category and entry.
2274
2275 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
2276
2277         * fold-const.c (fold): Replace "t" with "tem" where it is used
2278         as a temporary variable.  Remove "orig_t" and all of its uses.
2279
2280 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
2281
2282         * fold-const.c (fold): Remove variable "invert".
2283         Move the handling of relational expressions that can be folded
2284         to a constant ...
2285         (fold_relational_const): ... here.
2286         (tree_expr_nonzero_p): New.
2287
2288 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
2289
2290         PR c/14635
2291         * builtins.def (nan, nanf, nanl, nans, nansf, nansl): Change to
2292         DEF_GCC_BUILTIN.
2293
2294 2004-03-20  Richard Sandiford  <rsandifo@redhat.com>
2295
2296         * Makefile.in (dojump.o): Depend on $(GGC_H) and dojump.h.
2297         (GTFILES): Add $(srcdir)/dojump.h.
2298         (gt-dojump.h): New dependency.
2299         * dojump.c (and_reg, and_test, shift_test): New static variables.
2300         (prefer_and_bit_test): New function.
2301         (do_jump): Use it to choose between (X & (1 << C)) and (X >> C) & 1.
2302
2303 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
2304
2305         * c-common.c, cfgcleanup.c, cgraphunit.c, c-pretty-print.c,
2306         expmed.c, ggc-common.c, jump.c, passes.c, recog.c, regmove.c,
2307         reorg.c, tree.h: Fix comment typos.
2308
2309 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
2310
2311         * alias.c, attribs.c, bt-load.c, builtins.c, c-common.c,
2312         c-decl.c, c-objc-common.c, c-typeck.c, calls.c, cfglayout.c,
2313         cse.c, dbxout.c, dwarf2out.c, except.c, final.c,
2314         haifa-sched.c, integrate.c, passes.c, rtlanal.c, sched-rgn.c,
2315         sched-vis.c, simplify-rtx.c, stor-layout.c, tree.c, varasm.c,
2316         vmsdbgout.c: Replace calls via (*targetm.foo) () with
2317         targetm.foo ().
2318
2319 2004-03-19  Ziemowit Laski  <zlaski@apple.com>
2320
2321         * config/rs6000/altivec.h (vec_dst, vec_dstst, vec_dststt,
2322         vec_dstt, vec_sld, vec_splat): Add prototypes, marked with
2323         always_inline attribute.
2324         * config/rs6000/rs6000.c (altivec_expand_dst_builtin):
2325         Treat expansion as completed even if literal argument is
2326         invalid (so that other expansions are not tried in vain).
2327
2328 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
2329
2330         * loop-doloop.c (add_test): Replace GEN_INT (0) with
2331         const0_rtx.
2332
2333 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
2334
2335         * fold-const.c (fold) <ABS_EXPR>: Move the handling of constants
2336         ...
2337         (fold_abs_const): ... here.
2338
2339 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2340
2341         * tree.h (TYPE_ARRAY_MAX_SIZE): Use type.maxval directly.
2342
2343 2004-03-19  Denis Chertykov  <denisc@overta.ru>
2344
2345         PR target/11520
2346         * config/avr/avr.md ("call_insn"): Handle explicit integer
2347         specially.
2348         (call_value_insn): Likewise.
2349
2350 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2351
2352         * tree.c (substitute_in_expr): Rewrite to simplify and be more generic.
2353
2354 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
2355
2356         * fold-const.c (negate_expr): Move the handling of constants
2357         ...
2358         (fold_negate_const): ... here.
2359
2360 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2361
2362         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): New macro and hook.
2363         * langhooks.h (struct lang_hooks_for_types): New field hash_types.
2364         * tree.c (debug_no_type_hash): Deleted.
2365         (type_hash_canon): Abort if passed a variant.
2366         Check lang_hooks.types.hash_types.
2367         (build_type_no_quals): Copy mode of POINTER_TYPE and REFERENCE_TYPE.
2368         (build_array_type): Remove unnecessary allocation of pointer type.
2369         (build_complex_type): Properly qualify resulting type.
2370
2371 2004-03-19  Paolo Bonzini  <bonzini@gnu.org>
2372
2373         * config/rs6000/rs6000.c (rs6000_init_builtins): Fix typo.
2374
2375 2004-03-19  Richard Sandiford  <rsandifo@redhat.com>
2376
2377         * expmed.c (choose_mult_variant, expand_mult_const): New, split from...
2378         (expand_mult): ...here.
2379         (extract_high_half): New, split out from expand_mult_highpart.
2380         (expand_highpart_optab): Likewise.  Don't clobber target prematurely.
2381         (expand_highpart): Evaluate the cost of a shift/add sequence,
2382         then see if any of the specialized optabs are cheaper.
2383
2384 2004-03-18  Ian Lance Taylor  <ian@wasabisystems.com>
2385
2386         * mklibgcc.in: Remove obsolete MAYBE_USE_COLLECT2.
2387
2388 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2389
2390         * convert.c (convert_to_real): Add more math builtins.
2391
2392 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2393
2394         * convert.c (convert_to_real): Reformat using switch stmt.
2395
2396 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
2397
2398         * c-common.c (pointer_int_sum): Do not complain about using
2399         pointers to pointers-to-members.
2400
2401 2004-03-18  Kazu Hirata  <kazu@cs.umass.edu>
2402
2403         * system.h (MD_ASM_CLOBBERS): Move to "Old target macros that
2404         have moved to the target hooks structure".
2405
2406 2004-03-18  James E Wilson  <wilson@specifixinc.com>
2407
2408         * config/mips/mips.md (type): Split move into arith and fmove.  Split
2409         hilo into mthilo and mfhilo.  Add trap.  Delete icmp.  Fix all uses.
2410         * config/mips/5400.md (ir_vr54_hilo, ir_vr54_arith, ir_vr54_fabs):
2411         Likewise.
2412         * config/mips/5500.md (ir_vr55_hilo, ir_vr55_arith, ir_vr55_fabs):
2413         Likewise.
2414         * config/mips/7000.md (rm7_int_other, rm7_mthilo, rm7_mfhilo,
2415         rm7_fp_quick): Likewise.
2416         * config/mips/9000.md (rm9k_int, rm9k_mfhilo, rm9k_mthilo,
2417         rm9k_fquick): Likewise.
2418         * config/mips/sr71k.md (ir_sr70_hilo, ir_sr70_arith, ir_sr70_fabs):
2419         Likewise.
2420         (ir_sr70_icmp): Delete.
2421
2422 2004-03-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2423
2424         * tree.h (TREE_CHECK2, TREE_CHECK3, TREE_CHECK5): New macros.
2425         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New decl.
2426         (FUNC_OR_METHOD_CHECK, SET_ARRAY_OR_VECTOR_CHECK): New macros.
2427         (REC_OR_UNION_CHECK, NUMERICAL_TYPE_CHECK): Likewise.
2428         (TYPE_VALUES, TYPE_DOMAIN, TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD):
2429         Protect with proper check.
2430         (TYPE_ARG_TYPES, TYPE_METHOD_BASETYPE, TYPE_OFFSET_BASETYPE): Likewise.
2431         (TYPE_MIN_VALUE, TYPE_MAX_VALUE): Likewise.
2432         * tree.c (type_hash_eq): Rewrite to access proper fields for each type.
2433         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New.
2434         * c-typeck.c (build_array_ref): Use TYPE_DOMAIN, not TYPE_VALUES.
2435         * dwarf2out.c (gen_enumeration_type_die): Use TYPE_VALUES,
2436         not TYPE_FIELDS.
2437         * stor-layout.c (set_sizetype): Use TYPE_ORIG_SIZE_TYPE.
2438
2439 2004-03-18  Mostafa Hagog  <mustafa@il.ibm.com>
2440
2441         * gcse.c (eliminate_partially_redundant_loads): Reject change if
2442         dest is set between beginning and current insn.
2443
2444 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
2445
2446         * c-decl.c (grokdeclarator): Do not complain about redeclaring
2447         visible "static" identifiers "extern" in a local scope.
2448         * dwarf2out.c (loc_descriptor_from_tree): Handle pre- and
2449         post-increments/decrements.
2450
2451 2004-03-18  Bob Wilson  <bob.wilson@acm.org>
2452
2453         * config/xtensa/xtensa.c (current_function_arg_words): Delete.
2454         (xtensa_builtin_saveregs): Use current_function_args_info.arg_words.
2455         (xtensa_va_start): Remove assignment to current_function_arg_words.
2456
2457 2004-03-18  Richard Sandiford  <rsandifo@redhat.com>
2458
2459         * alias.c (record_set): Detect the case where a register is assigned
2460         a new value that has the same base term as the old one.
2461
2462 2004-03-18  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2463
2464         * doloop.c: Removed.
2465         * loop-doloop.c: New file.
2466         * Makefile.in (doloop.o): Remove.
2467         (loop-doloop.o): New.
2468         * cfgloop.h (get_loop_level, doloop_optimize_loops): Declare.
2469         * cfgloopanal.c (get_loop_level): New function.
2470         * loop-iv.c (iv_number_of_iterations): Handle case when loop
2471         is leaved immediatelly.
2472         * loop.c (strength_reduce): Do not call doloop optimization.
2473         * loop.h (LOOP_BCT): Removed.
2474         * passes.c (rest_of_handle_loop_optimize): Do not use LOOP_BCT.
2475         (rest_of_handle_loop2): Call doloop_optimize_loops.
2476         (rest_of_compilation): Test for optimizations moved to
2477         rest_of_handle_loop2.
2478
2479 2004-03-17  Fariborz Jahanian <fjahanian@apple.com>
2480
2481         * config/rs6000/rs6000.c (rs6000_stack_info): correct reg_size
2482         for mixed mode.
2483         (rs6000_emit_prologue): Ditto.
2484         (rs6000_emit_epilogue): Ditto.
2485         * config/rs6000/rs6000.h: Definition of DWARF_CIE_DATA_ALIGNMENT
2486         macro for mixed mode.
2487
2488 2004-03-18  Jan Hubicka  <jh@suse.cz>
2489
2490         * predict.c (propagate_freq): Compute correctly frequency of
2491         EXIT_BLOCK.
2492
2493 2004-03-17  Eric Christopher  <echristo@redhat.com>
2494
2495         * builtins.c (apply_args_size): Use reg_raw_mode.
2496         (apply_result_size): Ditto.
2497
2498 2004-03-17  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
2499
2500         PR target/14620
2501         * config/rtems.h: Add STD_LIB_SPEC and LIB_SPEC.
2502
2503 2004-03-17  Jakub Jelinek  <jakub@redhat.com>
2504
2505         * config/rs6000/t-linux64 (bispecs): Don't add -mlong-double-128 for
2506         32-bit builds when defaulting to 32-bit.
2507
2508 2004-03-17  Jan Hubicka  <jh@suse.cz>
2509
2510         * cfgrtl.c (rtl_create_basic_block): Pre-allocate basic_block_info
2511         array.
2512
2513 2004-03-17  James E Wilson  <wilson@specifixinc.com>
2514
2515         * config/mips/mips.md (zero_extendsidi2): Add length attribute.
2516         (hazard_nop): Change type to nop.
2517         (type): Split arith into arith, shift, slt, clz.  Delete darith.
2518         Fix all uses.  Change arith to multi if more than one insn emitted.
2519         * config/mips/5400.md (ir_vr54_arith): Likewise.
2520         * config/mips/5500.md (ir_vr55_arith): Likewise.
2521         * config/mips/7000.md (rm7_int_other): Likewise.
2522         * config/mips/9000.md (rm9k_int): Likewise.
2523         * config/mips/sr71k.md (ir_sr70_arith): Likewise.
2524
2525 2004-03-17  Joel Brobecker  <brobecker@gnat.com>
2526
2527         * dwarf2out.c (subrange_type_die): Define new variable "subtype"
2528         to hold the subtype tree instead of recomputing it several times.
2529
2530 2004-03-17  Kazu Hirata  <kazu@cs.umass.edu>
2531
2532         * config/mn10300/mn10300.c (notice_update_cc): Don't handle
2533         CC_INVERT.
2534         * config/mn10300/mn10300.md (cc): Remove "invert".
2535
2536 2004-03-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2537
2538         * builtins.c (integer_valued_real_p): Add builtin rint.
2539         (fold_builtin): Likewise.
2540         * convert.c (convert_to_real): Likewise.
2541
2542         * convert.c (convert_to_real): Fix typos in `long double'
2543         builtins.
2544
2545 2004-03-16  Mark Mitchell  <mark@codesourcery.com>
2546
2547         PR c++/14481
2548         * fold-const.c (fold): Set TREE_NO_UNUSED_WARNING on implicitly
2549         generated COMPOUND_EXPRs.
2550
2551 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
2552
2553         * config/h8300/t-rtems (h8300-*-rtems*): New.
2554
2555 2004-03-16  Eric Christopher  <echristo@redhat.com>
2556
2557         * doc/cppopts.texi(fwide-exec-charset): Fix typo.
2558
2559 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
2560
2561         * config/i386/i386-protos.h: Add a prototype for
2562         ix86_reverse_condition.
2563         * config/i386/i386.c (ix86_reverse_condition): New.
2564         * config/i386/i386.h (REVERSE_CONDITION): Use
2565         ix86_reverse_condition.
2566         * config/i386/i386.md: Use ix86_reverse_condition instead of
2567         REVERSE_CONDITION.
2568
2569 2004-03-16  J. Brobecker  <brobecker@gnat.com>
2570
2571         * dwarf2out.c (loc_descriptor_from_tree): Add handling for MIN_EXPR.
2572
2573 2004-03-16  Nathanael Nerode  <neroden@gcc.gnu.org>
2574
2575         PR bootstrap/12974
2576         * Makefile.in: Pass $(INCLUDES) down to libgcc.mk explicitly.
2577
2578 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
2579
2580         * c-common.c (c_common_type_for_mode): Build vector types on
2581         demand.
2582         (handle_mode_attribute): Deprecate using the mode attribute
2583         to create vector types.  Fix indentation.
2584         (vector_type_node_list): Remove.
2585         (handle_vector_size_attribute): Create vector types on demand.
2586         Strip a NON_LVALUE_EXPR from the attribute if there is one.
2587         * c-typeck.c (comptypes): Make vector types compatible if they
2588         have the same underlying mode.
2589         (convert_for_assignment): Use comptypes to convert between
2590         vector types.
2591         * tree.c (build_common_tree_nodes_2): Do not create vector types.
2592         * config/arm/arm.c (arm_init_iwmmxt_builtins): Create necessary
2593         vector types.
2594         * tree.h: Remove vector types.
2595         * config/i386/i386.c (i386_init_mmx_sse_builtins): Likewise.
2596         * config/rs6000/rs6000.c (rs6000_init_builtins): Likewise.
2597         (V16QI_type_node, V2SI_type_node, V2SF_type_node, V4HI_type_node,
2598         V4SI_type_node, V4SF_type_node, V8HI_type_node): New globals.
2599         * doc/extend.texi (Vector Types): Document how to use the
2600         vector_size attribute to create vectors, rather than mode.
2601
2602         * config/arm/mmintrin.h: Use vector_size attribute, not mode.
2603         * config/i386/emmintrin.h: Likewise.
2604         * config/i386/mmintrin.h: Likewise.
2605         * config/i386/xmmintrin.h: Likewise.
2606         * config/sh/ushmedia.h: Likewise.
2607
2608 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
2609
2610         * config/freebsd-spec.h, config/arc/arc-protos.h,
2611         config/arm/aout.h, config/arm/elf.h, config/arm/freebsd.h,
2612         config/arm/linux-gas.h, config/arm/semi.h,
2613         config/cris/cris-protos.h, config/i386/xm-djgpp.h,
2614         config/ia64/freebsd.h, config/mips/7000.md,
2615         config/mips/9000.md, config/ns32k/ns32k-protos.h,
2616         config/sparc/pbd.h: Update copyright.
2617
2618 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
2619
2620         PR target/14577
2621         * config.gcc: Switch sh-*-rtems* to ELF.  Add sh-*-rtemscoff.
2622
2623 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
2624
2625         * combine.c (combine_simplify_rtx): Remove the "last"
2626         parameter and its documentation.  Adjust recursive calls.
2627         (simplify_logical): Always perform the only simplification
2628         controlled by "last", if the simplified expression is
2629         actually different.
2630         (try_combine): Do not pass the "last" parameter to
2631         combine_simplify_rtx.
2632
2633 2004-03-16  Richard Sandiford  <rsandifo@redhat.com>
2634
2635         PR target/14599
2636         * config/mips/mips.md (UNSPEC_GP): New constant.
2637         * config/mips/mips.c (CONST_GP_P): Expect the CONST to contain
2638         an UNSPEC instead of (reg $gp).
2639         (mips16_gp_pseudo_reg): Change accordingly.
2640         (print_operand): Print $gp directly when handling CONST_GP_P.
2641
2642 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
2643
2644         * config.gcc, config/m68k/linux.h: Implement with-cpu for m68k-linux.
2645         * longlong.h: Make code 68060 clean when compiling for m68060.
2646
2647 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
2648
2649         * config/m68k/m68k.md: Fix constraints for bitfield instructions.
2650         * doc/md.texi: Clarify description of "i" constraint.
2651
2652 2004-03-15  James E Wilson  <wilson@specifixinc.com>
2653
2654         * config/mips/mips.md (type): Split load into load, fpload, fpidxload.
2655         Split store into store, fpstore, fpidxstore.  Fix all uses.
2656         * config/mips/5400.md (ir_vr54_load, ir_vr54_store, ir_vr54_fstore):
2657         Likewise.
2658         * config/mips/5500.md (ir_vr55_load, i5_vr55_store): Likewise.
2659         * config/mips/7000.md (rm7_ld, rm7_st): Likewise.
2660         * config/mips/9000.md (rm9k_load, rm9k_store): Likewise.
2661         * config/mips/sr71k.md (ir_sr70_load, ir_sr70_store, ir_sr70_fload,
2662         ir_sr70_fstore): Likewise.
2663
2664 2004-03-15  Richard Henderson  <rth@redhat.com>
2665
2666         PR middle-end/14535
2667         * except.c (collect_one_action_chain): Record action for cleanup
2668         outer of exception spec.
2669
2670 2004-03-15  Ian Lance Taylor  <ian@wasabisystems.com>
2671
2672         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
2673         Fix the check for abort and only do the mmap if we can.
2674
2675 2004-03-15  Eric Botcazou  <ebotcazou@act-europe.fr>
2676
2677         * config/sparc/sparc.h: Rework comments about the code model
2678         in 64-bit environment and the mode 'Pmode'.
2679         * doc/invoke.texi (SPARC options): Rework description of the
2680         different code models supported in 64-bit environment.
2681
2682 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
2683
2684         * defaults.h (REVERSIBLE_CC_MODE): Define.
2685         * jump.c (reversed_comparison_code_parts): Don't check if
2686         REVERSIBLE_CC_MODE is defined.
2687
2688 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
2689
2690         * c-incpath.c, c-incpath.h, c-pch.c, c.opt, cppexp.c,
2691         et-forest.h, genattr.c, ggc-none.c, hosthooks-def.h,
2692         hosthooks.h, params.h, ra-colorize.c, web.c,
2693         config/darwin-c.c, config/alpha/freebsd.h, config/arm/pe.c,
2694         config/avr/avr-protos.h, config/avr/avr.md,
2695         config/fr30/fr30-protos.h, config/fr30/fr30.md,
2696         config/h8300/fixunssfsi.c, config/i386/darwin.h,
2697         config/i386/freebsd.h, config/i386/freebsd64.h,
2698         config/ia64/hpux.h, config/ia64/unwind-ia64.c,
2699         config/ip2k/libgcc.S, config/m32r/xm-m32r.h,
2700         config/mmix/mmix-modes.def, config/ns32k/netbsd.h,
2701         config/ns32k/ns32k.md, config/pa/pa64-hpux.h,
2702         config/pa/pa64-regs.h, config/rs6000/aix41.h,
2703         config/rs6000/aix43.h, config/rs6000/host-darwin.c,
2704         config/sparc/aout.h, config/sparc/freebsd.h,
2705         config/sparc/litecoff.h, config/vax/vax-protos.h,
2706         doc/hostconfig.texi, doc/include/gcc-common.texi: Update
2707         copyright.
2708
2709 2004-03-15  Paul Brook  <paul@codesourcery.com>
2710
2711         * config/arm/arm.c (thumb_expand_prologue): Tie prologue insns to fp.
2712
2713 2004-03-15  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2714
2715         * c-pretty-print.c (pp_c_semicolon): Fix formatting.
2716         (pp_c_cv_qualifier): Document.
2717         (pp_c_space_for_pointer_operator): Likewise.
2718         (pp_c_integer_constant): Likewise.
2719         (pp_c_identifier): Likewise.
2720         (pp_c_init_declarator): Don't print function body.
2721
2722 2004-03-14  Joseph S. Myers  <jsm@polyomino.org.uk>
2723
2724         * doc/contrib.texi, doc/extend.texi, doc/gcov.texi,
2725         doc/install.texi, doc/invoke.texi, doc/makefile.texi,
2726         doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi: Capitalize
2727         "gcc", "g++" and "g77" or mark up with appropriate markup.  Adjust
2728         wording and grammar.
2729
2730 2004-03-14  Roger Sayle  <roger@eyesopen.com>
2731
2732         * alias.c (get_alias_set): Replace calls via (*lang_hooks.foo) ()
2733         with lang_hooks.foo ().
2734         * builtins.c (expand_builtin_va_arg): Likewise.
2735         * c-common.c (fname_as_string, c_common_truthvalue_conversion,
2736         c_common_type_for_mode, c_common_nodes_and_builtins,
2737         handle_mode_attribute, handle_vector_size_attribute): Likewise.
2738         * c-convert.c (convert): Likewise.
2739         * c-format.c (check_format_types): Likewise.
2740         * c-objc-common.c (c_tree_printer): Likewise.
2741         * c-typeck.c (build_unary_op, build_conditional_expr,
2742         build_binary_op): Likewise.
2743         * calls.c (try_to_integrate, expand_call,
2744         emit_library_call_value_1): Likewise.
2745         * cgraph.c (cgraph_node_name, cgraph_function_possibly_inlined_p):
2746         Likewise.
2747         * cgraphunit.c (record_call_1, cgraph_analyze_function,
2748         cgraph_expand_function): Likewise.
2749         * convert.c (convert_to_pointer, convert_to_integer): Likewise.
2750         * coverage.c (build_fn_info_type, build_ctr_info_type,
2751         build_gcov_info, create_coverage): Likewise.
2752         * dbxout.c (dbxout_init): Likewise.
2753         * diagnostic.c (diagnostic_report_current_function): Likewise.
2754         * dojump.c (do_jump): Likewise.
2755         * dwarf2out.c (dwarf2_name): Likewise.
2756         * except.c (init_eh): Likewise.
2757         * explow.c (expr_size, int_expr_size): Likewise.
2758         * expmed.c (make_tree, const_mult_add_overflow_p, expand_mult_add):
2759         Likewise.
2760         * expr.c (store_expr, store_constructor, safe_from_p,
2761         expand_expr_real, do_store_flag, try_casesi): Likewise.
2762         * function.c (push_function_context_to, pop_function_context_from,
2763         free_after_parsing, assign_stack_local_1, assign_stack_temp_for_type,
2764         put_var_into_stack, allocate_struct_function, current_function_name):
2765         Likewise.
2766         * integrate.c (copy_decl_for_inlining, expand_inline_function):
2767         Likewise.
2768         * langhooks.c (lhd_clear_binding_stack, write_global_declarations,
2769         lhd_print_error_function): Likewise.
2770         * opts.c (handle_option, decode_options): Likewise.
2771         * passes.c (open_dump_file): Likewise.
2772         * print-tree.c (print_node): Likewise.
2773         * stmt.c (expand_fixup, fixup_gotos, expand_asm_operands,
2774         expand_decl_cleanup, emit_case_nodes): Likewise.
2775         * stor-layout.c (variable_size): Likewise.
2776         * toplev.c (announce_function, wrapup_global_declarations,
2777         check_global_declarations, compile_file, default_tree_printer,
2778         process_options, lang_dependent_init, finalize): Likewise.
2779         * tree-dump.c (dequeue_and_dump): Likewise.
2780         * tree-inline.c (remap_decl, remap_block, copy_body_r,
2781         initialize_inlined_parameters, declare_return_variable,
2782         inlinable_function_p, expand_call_inline, optimize_inline_calls,
2783         walk_tree, copy_tree_r): Likewise.
2784         * tree-optimize.c (tree_rest_of_compilation): Likewise.
2785         * tree.c (decl_assembler_name, tree_size, size_in_bytes, staticp,
2786         unsafe_for_reeval, get_unwidened, get_narrower, get_callee_fndecl,
2787         variably_modified_type_p, dump_tree_statistics): Likewise.
2788         * varasm.c (assemble_variable, compare_constant, copy_constant,
2789         force_const_mem, compute_reloc_for_constant, output_constant,
2790         output_addressed_constants, initializer_constant_valid_p): Likewise.
2791
2792 2004-03-14  Kelley Cook  <kcook@gcc.gnu.org>
2793
2794         * doc/install.texi: Make autoconf 2.13 the exception, not the rule.
2795
2796 2004-03-14  Andreas Tobler  <a.tobler@schweiz.ch>
2797
2798         * doc/install.texi: Reflect autoconf and automake version for
2799         libffi. Update autoconf version to 2.59.
2800
2801 2004-03-13  Roger Sayle  <roger@eyesopen.com>
2802
2803         * fold-const.c (negate_expr, operand_equal_for_comparison_p,
2804         optimize_bit_field_compare, decode_field_reference, all_ones_mask_p,
2805         make_range, build_range_check, fold_range_test, unextend,
2806         constant_boolean_node, fold_binary_op_with_conditional_arg,
2807         fold_truthop, fold_mathfn_compare, fold_inf_compare,
2808         fold_single_bit_test, fold): Replace calls via (*lang_hooks.foo) ()
2809         with lang_hooks.foo ().
2810
2811 2004-03-14  Richard Earnshaw  <rearnsha@arm.com>
2812
2813         * arm.h (EXTRA_CONSTRAINT_STR_ARM): Update comment.
2814
2815 2004-03-13  Dara Hazeghi  <dhazeghi@yahoo.com>
2816
2817         * doc/install.texi: Note status of -fnew-ra.
2818
2819 2004-03-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
2820
2821         PR middle-end/14470
2822         * expr.c (store_expr): Call emit_queue before generating the move
2823         from the temporary to the original target.  Protect the temporary
2824         from emit_queue.
2825
2826 2004-03-13  Jakub Jelinek  <jakub@redhat.com>
2827
2828         PR target/14533
2829         * config/s390/s390.c (legitimize_pic_address): Don't abort on UNSPEC
2830         other than UNSPEC_GOTOFF.
2831
2832 2004-03-13  Richard Earnshaw  <rearnsha@arm.com>
2833
2834         * arm.c (arm_legitimate_address_p): New argument, OUTER.  Pass through
2835         to arm_legitimate_index_p.  Update all callers with SET as default
2836         value.
2837         (arm_legitimate_index_p): New argument, OUTER.  Restrict the index
2838         range if OUTER is a sign-extend operation on QImode.  Correctly
2839         reject shift operations on sign-extended QImode addresses.
2840         (bad_signed_byte_operand): Delete.
2841         (arm_extendqisi_mem_op): New function.
2842         * arm.h (EXTRA_CONSTRAINT_ARM): Delete.  Replace with...
2843         (EXTRA_CONSTRAINT_STR_ARM): ... this.  Handle extended address
2844         constraints.
2845         (CONSTRAINT_LEN): New.
2846         (EXTRA_CONSTRAINT): Delete.  Replace with...
2847         (EXTRA_CONSTRAINT_STR): ... this.
2848         (PREDICATE_CODES): Remove bad_signed_byte_operand.
2849         * arm.md (extendqihi_insn): Use new constraint Uq.  Rework.  Length
2850         is now always default.
2851         (define_splits for bad sign-extend loads): Delete.
2852         (arm_extendqisi, arm_extendqisi_v5): Likewise.
2853         * arm/vfp.md (arm_movsi_vfp, arm_movdi_vfp, movsf_vfp, movdf_vfp):
2854         Rework 'U' constraint to 'Uv'.
2855         * arm-protos.h: Remove bad_signed_byte_operand.  Add
2856         arm_extendqisi_mem_op.
2857         * doc/md.texi (ARM constraints): Rename VFP constraint (now Uv).
2858         Add Uq constraint.
2859
2860 2004-03-13  Alan Modra  <amodra@bigpond.net.au>
2861
2862         * config/rs6000/rs6000.c (rs6000_va_arg): Replace SPLIT_COMPLEX_ARGS
2863         with targetm version.
2864
2865         PR target/14567
2866         * config/rs6000/rs6000.h (UNITS_PER_ARG, RS6000_ARG_SIZE): Delete.
2867         (HARD_REGNO_MODE_OK): Disallow TFmode for fp31.
2868         * config/rs6000/rs6000.c (rs6000_arg_size): New function.
2869         Update all users of RS6000_ARG_SIZE.
2870         (function_arg_advance): Count fregno using mode size.
2871         (function_arg): Handle long double split over regs and memory.
2872         (function_arg_partial_nregs): Likewise.
2873         (rs6000_va_arg): Repackage complex args.
2874
2875 2004-03-13  Dean Ferreyra <dferreyra@igc.org>
2876
2877         PR target/14047
2878         * config/avr/avr.c (avr_progmem_p): Add "attributes" parameter.
2879         (avr_insert_attributes): Pass "attributes" to avr_progmem_p.
2880         * config/avr/avr-protos.h (avr_progmem_p): Change prototype.
2881
2882 2004-03-12  Jakub Jelinek  <jakub@redhat.com>
2883
2884         * config/rs6000/rs6000-protos.h (rs6000_output_dwarf_dtprel): Add
2885         prototype.
2886         * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): New.
2887         * config/rs6000/rs6000.h (ASM_OUTPUT_DWARF_DTPREL): Define.
2888
2889 2003-03-12  Andrew Pinski  <apinski@apple.com>
2890
2891         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
2892         Use ret instead of result. Use addr instead of base.
2893
2894 2004-03-12  David Edelsohn  <edelsohn@gnu.org>
2895
2896         * doc/install.texi (*-ibm-aix*): Document assembler and achiver
2897         fixes required by libstdc++ and update installation instructions
2898         for libstdc++.a.
2899
2900 2004-03-12  Danny Smith  <dannysmith@users.sourceforge.net>
2901
2902         * config/i386/winnt.c (i386_pe_strip_name_encoding_full): Strip
2903         leading '@' on fastcall symbols before stripping suffix.
2904
2905 2004-03-12  Roger Sayle  <roger@eyesopen.com>
2906
2907         * combine.c (unmentioned_reg_p): New function to check whether an
2908         expression is a "specialization" of another, i.e. that there are
2909         no registers or memory references mentioned in the first that don't
2910         appear in the second.
2911         (unmentioned_reg_p_1): New helper subroutine of unmentioned_reg_p.
2912         (combine_instructions): Also try combining instructions using the
2913         REG_EQUAL note from a preceding log-linked instruction.
2914
2915 2004-03-12  Roger Sayle  <roger@eyesopen.com>
2916
2917         * config/i386/i386.c (ix86_split_ashrdi): Optimize shift by 63.
2918
2919 2004-03-12  Matt Austern  <austern@apple.com>
2920
2921         * target.h (struct gcc_target): New target hook, unwind_label.
2922         * target-def.h (TARGET_ASM_EMIT_UNWIND_LABEL): New hook.
2923         * output.h (default_emit_unwind_label): New function.
2924         * default.h (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): New macro.
2925         (TARGET_USES_WEAK_UNWIND_INFO): New target macro.
2926         (TARGET_SUPPORTS_HIDDEN): New target macro.
2927         * dwarf2out.c (struct dw_fde_struct): Add field for function decl
2928         that corresponds to this FDE.
2929         (FRAME_BEGIN_LABEL): Allow target to override default label.
2930         (output_call_frame_info): If FDEs are linknonce, then use extra
2931         indirection for FDE encoding, output a label for each FDE, and
2932         output an empty label for each function without an FDE.
2933         (dwarf2out_begin_prologue): Set up decl field when creating an FDE.
2934         * varasm.c (globalize_decl): Call ASM_MAKE_LABEL_LINKONCE for
2935         decls with DECL_ONE_ONLY set, if that macro is defined.
2936         (make_decl_one_only): Don't use DECL_COMMON if we're compiling
2937         for a SUPPORTS_ONE_ONLY target.
2938         * config/darwin-protos.h (darwin_unique_section): Declare.
2939         (darwin_asm_named_section): Likewise.
2940         (darwin_section_type_flags): Likewise.
2941         (darwin_non_lazy_pcrel): Likewise.
2942         (darwin_emit_unwind_label): Likewise.
2943         (darwin_make_decl_one_only): Likewise.
2944         * config/darwin.c (machopic_finish): Get rid of tweak that
2945         eliminate stubs for symbols that are defined.
2946         (darwin_encode_section_info): Don't treat weak functions as defined.
2947         (darwin_make_decl_one_only): Define.
2948         (darwin_asm_named_section): Likewise.
2949         (darwin_section_type_flags): Likewise.
2950         (darwin_unique_section): Likewise.
2951         (darwin_emit_unwind_label): Likewise.
2952         (darwin_non_lazy_pcrel): Likewise.
2953         (darwin_asm_output_dwarf_delta): Difference between two labels is
2954         local only if both labels are local.
2955         * config/darwin.h (MAKE_DECL_ONE_ONLY): Define.
2956         (ASM_MAKE_LABEL_LINKONCE): Likewise.
2957         (TARGET_SUPPORTS_HIDDEN): Likewise.
2958         (TARGET_USES_WEAK_UNWIND_INFO): Likewise.
2959         (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): Likewise.
2960         (FRAME_BEGIN_LABEL): Likewise.
2961         (ASM_DECLARE_OBJECT_NAME): Make references to weak symbols indirect.
2962         (ASM_DECLARE_FUNCTION_NAME): Likewise.
2963         (darwin_eh_frame_section): Give __eh_frame section the coalesced flag.
2964         (TARGET_ASM_UNIQUE_SECTION): Define.
2965         (EH_FRAME_SECTION_NAME): Define.
2966         (EH_FRAME_SECTION_ATTR): Likewise.
2967         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
2968         (TARGET_ASM_NAMED_SECTION): Likewise.
2969         (TARGET_SECTION_TYPE_FLAGS): Likewise.
2970         * doc/tm.texi: Document TARGET_USES_WEAK_UNWIND_INFO,
2971         TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, TARGET_SUPPORTS_HIDDEN,
2972         TARGET_ASM_EMIT_UNWIND_LABEL.
2973
2974 2004-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2975
2976         * builtins.c (expand_builtin_mathfn): Add pow10* to the
2977         existing exp10* case.
2978         (expand_builtin): Likewise.
2979
2980 2004-03-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
2981
2982         * doc/tm.texi (registers) <Values in Registers>: Add
2983         entry for REGMODE_NATURAL_SIZE.
2984
2985 2004-03-12  Richard Henderson  <rth@redhat.com>
2986
2987         PR target/14547
2988         * target.h (struct gcc_target): Move calls substructure before
2989         booleans.  Add split_complex_arg.
2990         * function.c (assign_parms, split_complex_args): Use it.
2991         * calls.c (expand_call): Likewise.
2992         (split_complex_values): Likewise.  Check for splittable types
2993         before allocating memory.
2994         (split_complex_types): Likewise.
2995         * system.h (SPLIT_COMPLEX_ARGS): Poison.
2996         * expr.h (SPLIT_COMPLEX_ARGS): Remove.
2997         * target-def.h (TARGET_SPLIT_COMPLEX_ARG): New.
2998         * config/alpha/alpha.c (alpha_split_complex_arg): New.
2999         (TARGET_SPLIT_COMPLEX_ARG): New.
3000         * config/alpha/alpha.h (SPLIT_COMPLEX_ARGS): Remove.
3001         * config/rs6000/rs6000.c (TARGET_SPLIT_COMPLEX_ARG): New.
3002         (rs6000_override_options): Zap it for non-AIX.
3003         (rs6000_function_value): Use targetm.calls.split_complex_arg.
3004         * config/rs6000/rs6000.h (SPLIT_COMPLEX_ARGS): Remove.
3005         * config/xtensa/xtensa.c (TARGET_SPLIT_COMPLEX_ARG): New.
3006         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Remove.
3007         * doc/tm.texi (TARGET_SPLIT_COMPLEX_ARG): Modify from old
3008         SPLIT_COMPLEX_ARGS entry.
3009
3010 2004-03-11  Richard Henderson  <rth@redhat.com>
3011
3012         * config/alpha/alpha.c (xfloating_ops, vax_cvt_ops): New.
3013         (alpha_lookup_xfloating_lib_func): Use them, return rtx.
3014         (alpha_emit_xfloating_arith): Update to match.
3015         (alpha_emit_xfloating_compare): Likewise.
3016         (alpha_emit_xfloating_cvt): Likewise.
3017         (alpha_emit_xfloating_libcall): Take already built symbol,
3018         mark call const.
3019         * config/alpha/alpha.md (extendsftf2, extenddftf2): Take
3020         op1 in a register.
3021
3022 2004-03-11  Richard Henderson  <rth@redhat.com>
3023
3024         PR target/14539
3025         * config/alpha/alpha.h (STACK_BOUNDARY): Set to 128.
3026
3027         * simplify-rtx.c (simplify_relational_operation): Fix typo.
3028
3029 2004-03-11  Richard Henderson  <rth@redhat.com>
3030
3031         PR middle-end/14477
3032         * except.c (remove_unreachable_regions): Look thru CALL_PLACEHOLDER.
3033
3034 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
3035
3036         PR target/14262
3037         * calls.c (load_register_parameters): If BLOCK_REG_PADDING is not
3038         defined, pass small BLKmode values in registers in the low-order part.
3039
3040 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
3041
3042         * combine.c (if_then_else_cond): Check for NULL return value of
3043         simplify_gen_subreg.
3044
3045 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
3046
3047         PR target/14496
3048         * config/mips/mips.h (UNITS_PER_FPVALUE): Fix value for
3049         TARGET_SINGLE_FLOAT.
3050
3051 2004-03-11  Steve Ellcey  <sje@cup.hp.com>
3052
3053         * config/ia64/hpux.h (TARGET_INIT_LIBFUNCS): Add undef.
3054         * config/ia64/ia64.h (TARGET_INIT_LIBFUNCS): Add define.
3055         * config/ia64/ia64.c (ia64_init_libfuncs): New.
3056         (ia64_hpux_init_libfuncs): Add call to ia64_init_libfuncs.
3057
3058 2004-03-11  Roger Sayle  <roger@eyesopen.com>
3059
3060         * fold-const.c (negate_expr_p) <RSHIFT_EXPR>: We can optimize
3061         -((int)X>>C) where C is an integer constant one bit less than the
3062         size of X into (unsigned)X>>C.  Similarly for unsigned->signed.
3063         (negate_expr) <RSHIFT_EXPR>: Implement the above transformations.
3064
3065         * simplify-rtx.c (simplify_unary_operation): Also implement the
3066         above transformations at the RTL level.
3067
3068 2004-03-11  Alan Modra  <amodra@bigpond.net.au>
3069
3070         * real.c (encode_ibm_extended): Do round low word.
3071
3072 2004-03-11  Ben Elliston  <bje@wasabisystems.com>
3073
3074         * config/arm/arm.md (is_xscale): Comment this attribute and move
3075         it a bit further up in the file, closer to related attributes.
3076
3077 2004-03-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
3078
3079         * config/host-solaris.c (sol_gt_pch_use_address): Add
3080         missing terminating marker to comment.
3081
3082 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
3083
3084         * config/mips/mips.md: Use move_operand in splitters for 64-bit moves.
3085         (movdi, movsi, movhi, movqi, movsf, movdf): Remove predicates.
3086         (*movdi_32bit_mips16, *movsi_mips16, *movhi_mips16, *movqi_mips16)
3087         (*movsf_mips16, *movdf_mips16):  Name unnamed patterns.  Use
3088         move_operand as source predicate in all cases.
3089         (*movdi_32bit): Renamed from movdi_internal.  Remove 'F' constraint.
3090         Test reg_or_0_operand.  Use move_operand as source predicate.
3091         (*movdi_64bit): Renamed from movdi_internal2.  Test reg_or_0_operand.
3092         (*movdi_64bit_mips16): Renamed from movdi_internal2_mips16.
3093         (*movsi_internal): Renamed from movsi_internal.  Test reg_or_0_operand.
3094         (movhi, movqi, movsf, movdf): Use mips_legitimize_move.
3095         (*movhi_internal): Renamed from movhi_internal.  Test reg_or_0_operand.
3096         Use move_operand as source predicate.  Remove 'K' constraint.
3097         (*movqi_internal): Likewise movqi_internal.
3098         (*movsf_hardfloat): Renamed from movsf_internal1.  Test
3099         reg_or_0_operand.  Use move_operand as source predicate.
3100         (*movsf_softfloat): Likewise movsf_internal2.
3101         (*movdf_hardfloat_64bit): Likewise movsf_internal1a.
3102         (*movdf_hardfloat_32bit): Likewise movsf_internal1b.
3103         (*movdf_softfloat): Likewise movdf_internal2.
3104         * config/mips/mips.c (move_operand): Match arbitrary CONST_INTs
3105         for DImode if !TARGET_64BIT.
3106         (mips_legitimize_move): Simplify accordingly.
3107
3108 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
3109
3110         PR/14362
3111         * var-tracking.c (struct variable_def): Added field refcount.
3112         (variable_htab_free): Decrease the refcount and delete variable
3113         only if there are no more references.
3114         (unshare_variable): New function.
3115         (vars_copy_1): Increase refcount instead of copying the variable.
3116         (variable_union): Share the variables where possible, unshare
3117         the variables if needed.
3118         (variable_different_p): Return false if var1 and var2 are
3119         the same structure.
3120         (variable_was_changed): Init the refcount of new variable.
3121         (set_frame_base_location): Unshare variable if needed.
3122         (set_variable_part): Init the refcount of new variable.
3123         Unshare the variables if needed.
3124         (delete_variable_part): Unshare the variables if needed.
3125         (emit_notes_for_differences_1): Init the refcount of new variable.
3126         (vt_add_function_parameters): Do not add function parameters to
3127         IN set of ENTRY_BLOCK_PTR because it is unused anyway.
3128         (vt_initialize): Do not add frame_base_decl to IN set of
3129         ENTRY_BLOCK_PTR because it is unused anyway.
3130
3131 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
3132
3133         * var-tracking.c (vars_copy_1): Cleanup and speedup chain operations.
3134         (vars_copy): Likewise.
3135         (variable_union): Likewise.
3136         (set_variable_part): Likewise.
3137         (delete_variable_part): Likewise.
3138
3139 2004-03-11  Kazu Hirata  <kazu@cs.umass.edu>
3140
3141         * c-typeck.c, combine.c, cse.c, dominance.c, et-forest.h,
3142         ggc-page.c, var-tracking.c, config/fp-bit.c, config/c4x/c4x.c,
3143         config/cris/cris.c, config/i386/ppro.md, config/i860/i860.c,
3144         config/i860/i860.h, config/m32r/m32r.h, config/m32r/xm-m32r.h,
3145         config/m68hc11/m68hc11.h, config/m68hc11/m68hc11.md,
3146         config/mips/mips.c, config/mmix/mmix.c, config/ns32k/ns32k.h,
3147         config/pa/pa.c, config/pa/pa32-regs.h, config/pa/pa64-regs.h,
3148         config/pdp11/pdp11.h, config/rs6000/rs6000.c,
3149         config/stormy16/stormy16.c: Fix comment typos and formatting.
3150
3151 2004-03-11  Nathanael Nerode  <neroden@gcc.gnu.org>
3152
3153         * configure: Regenerate, since I forgot to while committing Paolo's
3154         changes.
3155
3156 2004-03-08  Paolo Bonzini  <bonzini@gnu.org>
3157
3158         PR ada/14131
3159         Move language detection to the top level.
3160         * configure.ac: Remove code to detect languages,
3161         it now lives exclusively in the top level.
3162         * aclocal.m4 (gcc_AC_PROG_GNAT): Moved to the
3163         top level, renamed to ACX_PROG_GNAT.
3164
3165 2004-03-10  Richard Henderson  <rth@redhat.com>
3166
3167         * c-pch.c (c_common_no_more_pch): Update for gt_pch_use_address
3168         extra arguments.
3169         * config.host (*-*-solaris2*, *-*-linux*): Add out_host_hook_obj
3170         and host_xmake_file fragments.
3171         * ggc-common.c (gt_pch_save): Update for gt_pch_get_address change.
3172         (gt_pch_restore): Similarly for gt_pch_use_address.
3173         (default_gt_pch_get_address): New.
3174         (mmap_gt_pch_get_address): Split out of gt_pch_save.
3175         (default_gt_pch_use_address): Split out of gt_pch_restore.
3176         (mmap_gt_pch_use_address): Likewise.
3177         * hooks.c (hook_voidp_size_t_null): Remove.
3178         (hook_bool_voidp_size_t_false): Remove.
3179         * hooks.h: Likewise.
3180         * hosthooks-def.h (HOST_HOOKS_GT_PCH_GET_ADDRESS): Use one of the
3181         default_ or mmap_ definitions.
3182         (HOST_HOOKS_GT_PCH_USE_ADDRESS): Likewise.
3183         * hosthooks.h (struct host_hooks): Update gt_pch_get_address
3184         and gt_pch_use_address.
3185         * config/host-linux.c, config/host-solaris.c: New files.
3186         * config/x-linux, config/x-solaris: New files.
3187         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_get_address):
3188         Update for changed definition.
3189         (darwin_rs6000_gt_pch_use_address): Likewise.
3190         * doc/hostconfig.texi: Update docs.
3191
3192 2004-03-10  Richard Henderson  <rth@redhat.com>
3193
3194         PR c/14517
3195         * c-decl.c (grokdeclarator): Don't warn for duplicate qualifiers
3196         except for pedantic c90 mode.
3197
3198 2004-03-10  Kelley Cook  <kcook@gcc.gnu.org>
3199
3200         * configure.ac: Bump AC_PREREQ to 2.59.
3201         * configure: Regenerate.
3202
3203 2004-03-10  Uros Bizjak  <uros@kss-loka.si>
3204
3205         * optabs.h (enum optab_index): Add new OTI_exp10 and OTI_exp2.
3206         (exp10_optab, exp2_optab): Define corresponding macros.
3207         * optabs.c (init_optabs): Initialize exp10_optab and exp2_optab.
3208         * genopinit.c (optabs): Implement exp10_optab and exp2_optab
3209         using exp10?f2 and exp2?f2 patterns.
3210         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXP10{,F,L}
3211         using exp10_optab, and BUILT_IN_EXP2{,F,L} using exp2_optab.
3212         (expand_builtin): Expand BUILT_IN_EXP10{,F,L} and BUILT_IN_EXP2{,F,L}
3213         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
3214
3215         * config/i386/i386.md (exp10sf2, exp10df2, exp10xf2, exp2sf2,
3216         exp2df2, exp2xf2): New patterns to implement exp10, exp10f, exp10l,
3217         exp2, exp2f and exp2l built-ins as inline x87 intrinsics.
3218
3219 2004-03-10  Anthony Green  <green@redhat.com>
3220
3221         * doc/invoke.texi (ARM Options): Fix -mpfu typo.
3222
3223 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
3224
3225         * config/rs6000/aix.h (TARGET_OS_CPP_BUILTINS): Rename to ...
3226         (TARGET_OS_AIX_CPP_BUILTINS): this.  Conditionally define
3227         __LONGDOUBLE128.
3228         * config/rs6000/aix41.h (TARGET_OS_CPP_BUILTINS): Use
3229         TARGET_OS_AIX_CPP_BUILTINS.
3230         * config/rs6000/aix43.h (TARGET_OS_CPP_BUILTINS): Same.
3231         * config/rs6000/aix51.h (TARGET_OS_CPP_BUILTINS): Same.
3232         * config/rs6000/aix52.h (TARGET_OS_CPP_BUILTINS): Same.
3233         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Revert
3234         previous change.
3235
3236 2004-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3237
3238         * fold-const.c (tree_expr_nonnegative_p): Add more builtin cases.
3239
3240 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
3241
3242         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
3243         __LONGDOUBLE128 on AIX.
3244
3245 2004-03-10  Andrew Haley  <aph@redhat.com>
3246
3247         PR optimization/14381
3248         * function.c (expand_function_end): Emit a blockage insn before
3249         the epilogue when -fnon-call-exceptions is used.
3250
3251         * except.c (expand_start_all_catch): Make comment more accurate.
3252
3253 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
3254
3255         PR target/14480
3256         * config/rs6000/t-rtems: Add missing file on branch.
3257
3258 2004-03-10  Ulrich Weigand  <uweigand@de.ibm.com>
3259
3260         * dbxout.c (dbxout_symbol_location): Do not output references
3261         to optimized-out constant pool symbols.
3262
3263 2004-03-10  Andreas Schwab  <schwab@suse.de>
3264
3265         * config/ia64/ia64.md (divsi3, udivsi3): Remove unused variable
3266         twon34_r.
3267
3268 2004-03-09  James E Wilson  <wilson@specifixinc.com>
3269
3270         * alias.c (alias_sets_might_conflict_p): New.
3271         * c-typeck.c (build_c_cast): Call it if warn_strict_aliasing > 1.
3272         * common.opt (Wstrict-aliasing=): New.
3273         * flags.h (warn_strict_aliasing): Change type to int.
3274         * opts.c (warn_strict_aliasing): Change type to int.
3275         (common_handle_option): Handle OPT_Wstrict_aliasing_.
3276         * tree.h (alias_sets_might_conflict_p): Declare it.
3277         * doc/invoke.tex (-Wstrict-aliasing=2): Document it.
3278
3279 2004-03-10  Roman Zippel  <zippel@linux-m68k.org>
3280
3281         PR bootstrap/12371
3282         * config/m68k/m68k.h (FIXED_REGISTERS): Add arg pointer.
3283         (CALL_USED_REGISTERS): Likewise.
3284         (REG_CLASS_CONTENTS): Likewise.
3285         (REG_ALLOC_ORDER): New.
3286         (REGNO_REG_CLASS): Use regno_reg_class.
3287         * config/m68k/m68k.c: Add regno_reg_class array.
3288
3289 2004-03-09  Steve Ellcey  <sje@cup.hp.com>
3290
3291         * config/ia64/ia64.md (divsi3): Fix algorithm.
3292           (udivsi3): Ditto.
3293           (setf_exp_xf): Remove '*' from name.
3294         * testsuite/gcc.dg/20040309-1.c: New test.
3295
3296 2004-03-09  Ian Lance Taylor  <ian@wasabisystems.com>
3297
3298         * system.h (SUNOS4_SHARED_LIBRARIES): Poison.
3299         * collect2.c: Remove SUNOS4_SHARED_LIBRARIES code.
3300         * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): Don't define.
3301         * config/sparc/sparc.c (sparc_aout_select_section): Remove.
3302         (sparc_aout_select_rtx_section): Don't check
3303         SUNOS4_SHARED_LIBRARIES.
3304         * config/sparc/sparc.h (SUNOS4_SHARED_LIBRARIES): Don't define.
3305
3306 2004-03-10  Hans-Peter Nilsson  <hp@axis.com>
3307
3308         PR other/14474
3309         * doc/md.texi (Pattern Ordering, Dependent Patterns)
3310         (Jump Patterns, Looping Patterns): Wrap in separate "@ifset
3311         INTERNALS".
3312
3313 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
3314
3315         * config/ia64/hpux.h (MULTILIB_DEFAULTS): Define.
3316         (LIBGCC_SPEC): Update to match.
3317
3318 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
3319
3320         * c-decl.c (last_function_parms, last_function_parm_tags)
3321         (last_function_parm_others, current_function_parms)
3322         (current_function_parm_tags, current_function_parm_others):
3323         Delete.
3324         (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES, ARG_INFO_OTHERS):
3325         New macros.
3326         (grokdeclarator): For function definitions, save the arg-info
3327         block from the declarator in DECL_ARGUMENTS.
3328         (grokparms): Do not write to last_function_parm*.  Use ARG_INFO_*
3329         macros to operate on arg-info block.  Can assume ARG_INFO_PARMS
3330         contains only PARM_DECLs.  Improve diagnostics.
3331         (get_parm_info): Use ARG_INFO_* macros.  Improve comments and
3332         diagnostics.  Disable some expensive checks if not ENABLE_CHECKING.
3333         (store_parm_decls_newstyle): Take the function to operate on,
3334         and an arg-info block, as arguments; don't get anything from
3335         current_function_* globals.
3336         (store_parm_decls_oldstyle): Likewise.
3337         (store_parm_decls): Pass fndecl and its arg-info block down to
3338         store_parm_decls_newstyle/oldstyle.  Send functions with empty
3339         argument lists through store_parm_decls_newstyle to reduce
3340         overhead.
3341         (pushdecl): Comment on the problems with the call to copy_node.
3342         Clear DECL_ARGUMENTS of the old node after copying it, if it
3343         is an arg-info block instead of a chain of decls.
3344         (start_function): Do not manipulate current_function_parm* or
3345         last_function_parm*.
3346
3347 2004-03-09  Roger Sayle  <roger@eyesopen.com>
3348             Andrew Pinski  <pinskia@physics.uc.edu>
3349
3350         * ifcvt.c (noce_try_sign_mask): New function to transform
3351         "x = (y < 0) ? z : 0" into the equivalent "x = (y >> C) & z".
3352         (noce_process_if_block): Call noce_try_sign_mask.
3353
3354 2004-03-09  Andrew Pinski  <apinski@apple.com>
3355
3356         * c-typeck.c (tagged_types_tu_compatible_p):
3357         Fix typo.
3358
3359 2004-03-09  Roger Sayle  <roger@eyesopen.com>
3360
3361         * simplify-rtx.c (simplify_const_relational_operation): New function
3362         renamed from simplify_relational_operation.
3363         (simplify_relational_operation): Change prototype to accept an
3364         additional mode argument.  Call simplify_const_relational_operation.
3365         (simplify_gen_relational): Update simplify_relational_operation call.
3366         (simplify_ternary_operation): Update simplify_relational_operation
3367         subroutine call to use simplify_const_relational_operation instead.
3368
3369         * rtl.h (simplify_const_relational_operation): Prototype here.
3370         (simplify_relational_operation): Add addtional mode argument.
3371
3372         * combine.c (combine_simplify_rtx): Update calls to
3373         simplify_relational_operation.
3374         (simplify_set): Likewise.
3375         (gen_binary): Likewise.
3376         * cse.c (fold_rtx): Likewise.
3377         * dojump.c (compare_from_rtx): Likewise.
3378         (do_compare_rtx_and_jump): Likewise.
3379         * integrate.c (subst_constants): Likewise.
3380         * unroll.c (simplify_cmp_and_jump_insns): Likewise.
3381
3382 2004-03-09  Kazu Hirata  <kazu@cs.umass.edu>
3383
3384         * config/m32r/m32r.md: Remove all define_peephole's.
3385
3386 2004-03-09  Alan Modra  <amodra@bigpond.net.au>
3387
3388         * config/rs6000/rs6000.md: Remove trailing whitespace.
3389
3390 2004-03-08  Eric Christopher  <echristo@redhat.com>
3391
3392         * Makefile.in (site.exp): Add libiconv variable definition.
3393
3394 2004-03-09  Hans-Peter Nilsson  <hp@axis.com>
3395
3396         * configure: Regenerate for config/accross.m4 correction.
3397
3398 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
3399
3400         PR target/14480
3401         * config/rs6000/t-rtems: Add missing file on branch.
3402
3403 2004-03-08  Roger Sayle  <roger@eyesopen.com>
3404
3405         PR middle-end/14289
3406         * c-typeck.c (c_mark_addressable): A register variable should
3407         be considered global if its not automatic, i.e. TREE_PUBLIC,
3408         TREE_STATIC or DECL_EXTERNAL.
3409         * function.c (put_var_into_stack): Call abort when placing a
3410         hard register into the stack, if x_parm_reg_stack_loc is NULL.
3411
3412 2004-03-08  Ulrich Weigand  <uweigand@de.ibm.com>
3413
3414         * config/s390/s390.md ("*extendqidi2_short_displ"): Add CC clobber.
3415         ("*extendqisi2_short_displ"): Likewise.
3416
3417 2004-03-08  Kazu Hirata  <kazu@cs.umass.edu>
3418
3419         * config/pdp11/pdp11.c (comparison_operator_index): Remove.
3420         (comp_operator): Likewise.
3421         * config/pdp11/pdp11-protos.h: Remove corresponding
3422         prototypes.
3423
3424 2004-03-08  Eric Botcazou  <ebotcazou@act-europe.fr>
3425
3426         * expr.c (highest_pow2_factor_for_type): Rename into
3427         highest_pow2_factor_for_target.  Use DECL_ALIGN instead of
3428         TYPE_ALIGN when the target is a COMPONENT_REF.
3429         (expand_assignment): Ajust call to highest_pow2_factor_for_type.
3430
3431 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
3432
3433         * config/rs6000/rs6000.c: Formatting fix.
3434         (legitimate_offset_address_p): Correct offset range check.
3435
3436         * config/rs6000/rs6000.c (rs6000_override_options): Don't override
3437         -msoft-float by -mcpu.  Consolidate similar code for MASK_MULTIPLE
3438         and MASK_STRING.
3439
3440 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
3441
3442         * config/rs6000/rs6000.md (ashrdi3): Do not call ashrdi3_no_power
3443         for little endian.
3444         ("ashrdi3_no_power"): Disable for little endian.
3445         (ashrdi3): Same.
3446
3447 2004-03-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3448
3449         * fold-const.c (tree_expr_nonnegative_p): Reformat checks for
3450         builtins.
3451
3452 2004-03-08  Hans-Peter Nilsson  <hp@axis.com>
3453
3454         PR target/14471
3455         * configure.ac (Target-specific assembler checks) <cris-*-*>: New
3456         case, checking for -no-mul-bug-abort option.
3457         * configure, config.in: Regenerate.
3458         * doc/invoke.texi (CRIS Options): Document -mmul-bug-workaround
3459         and -mno-mul-bug-workaround.
3460         * config/cris/cris.md ("smulsi3_highpart", "umulsi3_highpart")
3461         ("mulsidi3", "umulsidi3"): Prefix output template with "%!".
3462         ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3"):
3463         Ditto.  Make attribute "slottable" dependent on TARGET_MUL_BUG.
3464         * config/cris/mulsi3.asm (__Mul) [__CRIS_arch_version >= 10]: Make
3465         sure mulu.d is not last on cache-line.
3466         * config/cris/cris.h (ASM_SPEC): Translate -mno-mul-bug-workaround
3467         into -no-mul-bug-abort depending on HAVE_AS_MUL_BUG_ABORT_OPTION.
3468         (TARGET_MASK_MUL_BUG, TARGET_MUL_BUG): New macros.
3469         (TARGET_SWITCHES): New options -mmul-bug-workaround and
3470         -mno-mul-bug-workaround.
3471         (TARGET_DEFAULT): Include TARGET_MASK_MUL_BUG.
3472         (PRINT_OPERAND_PUNCT_VALID_P): Include '!'.
3473         * config/cris/cris.c (cris_operand_extend_operator): Clarify
3474         relation to MULT in head comment.
3475         (cris_op_str): Abort for MULT.
3476         (cris_print_operand) <case '!'>: New case.
3477
3478 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
3479
3480         PR debug/11983
3481         * dwarf2out.c (enum dw_val_class): Rename dw_val_class_float to
3482         dw_val_class_vec.  Replace use throughout file.
3483         (dw_float_const): Delete.
3484         (dw_vec_const): New.
3485         (dw_val_struct_union): Rename val_float to val_vec.  Replace use
3486         throughout file.
3487         (add_AT_vec): Rename from add_AT_float.  Add elt_size param.
3488         (same_dw_val_p): Adjust vec comparison.  Use memcmp.
3489         (size_of_die): Adjust dw_val_class_vec sizing.
3490         (output_die): Output dw_val_class_vec.
3491         (insert_int, extract_int, insert_float): New functions.
3492         (add_const_value_attribute): Use insert_float for CONST_DOUBLE.
3493         Handle CONST_VECTOR.
3494         (add_location_or_const_value_attribute): Handle CONST_VECTOR.
3495
3496 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
3497
3498         * config/rs6000/rs6000.c (rs6000_parse_abi_options): SPE and
3499         AltiVec abi cannot co-exist.
3500
3501         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Same.
3502
3503 2004-03-07  Jan Hubicka  <jh@suse.cz>
3504
3505         * except.c (emit_to_new_bb_before):  Break fallthru edges.
3506
3507 2004-03-07  Stephane Carrez  <stcarrez@nerim.fr>
3508
3509         * config/m68hc11/m68hc11.md ("*lshrsi3_const"): Disable for 68HC12.
3510         ("*lshrsi3"): Also accept an immediate for 68HC12.
3511         ("*ashrsi3_const"): Likewise.
3512         ("*ashrsi3"): Likewise.
3513         ("*ashlsi3_const"): Likewise.
3514         ("*ashlsi3"): Likewise.
3515         ("cmphi_1_hc12"): Compare two hard register by pushing them and
3516         comparing with a pop; don't use a split for that.
3517         ("cmphi split"): Disable compare split for 68HC12.
3518
3519         * config/m68hc11/m68hc11.c (m68hc11_notice_update_cc): Invalidate
3520         the status operands if they have side effects.
3521
3522 2004-03-07  Kazu Hirata  <kazu@cs.umass.edu>
3523
3524         * defaults.h (LEGITIMIZE_ADDRESS): Provide a default
3525         definition.
3526         * config/arc/arc.h, config/fr30/fr30.h, config/frv/frv.h,
3527         config/h8300/h8300.h, config/ia64/ia64.h,
3528         config/mcore/mcore.h, config/mmix/mmix.h,
3529         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
3530         config/stormy16/stormy16.h, config/v850/v850.h,
3531         config/vax/vax.h (LEGITIMIZE_ADDRESS): Remove.
3532         * doc/tm.texi (LEGITIMIZE_ADDRESS): Mention the default
3533         definition.
3534
3535 2004-03-07  Roger Sayle  <roger@eyesopen.com>
3536
3537         * fold-const.c (fold) <IOR_EXPR>: Fold x | x as x.
3538         <XOR_EXPR>: Fold x ^ x as zero.
3539         <AND_EXPR>: Fold x & x as x.
3540
3541 2004-03-07  Roger Sayle  <roger@eyesopen.com>
3542
3543         * fold-const.c (fold) <EQ_EXPR>: Rewrite optimization to transform
3544         "foo++ == const" into "++foo == const+incr".
3545
3546 2004-03-07  Richard Sandiford  <rsandifo@redhat.com>
3547
3548         * config/mips/mips.c (mips_in_small_data_p): Return false if
3549         TARGET_ABICALLS.
3550
3551 2004-03-06  Stephane Carrez  <stcarrez@nerim.fr>
3552
3553         * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Use 2,-sp to push
3554         the stack register.
3555         (expand_prologue): Don't make an interrupt or a trap handler a far
3556         symbol.
3557         (m68hc11_initial_elimination_offset): Likewise.
3558
3559 2004-03-06  Richard Henderson  <rth@redhat.com>
3560
3561         * config/alpha/alpha.c (alpha_in_small_data_p): False for functions.
3562
3563 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
3564
3565         * config/ns32k/ns32k-protos.h: Add a prototype for
3566         ns32k_notice_update_cc.
3567         * config/ns32k/ns32k.c (ns32k_notice_update_cc): New.
3568         * config/ns32k/ns32k.h (NOTICE_UPDATE_CC): Call
3569         ns32k_notice_update_cc.
3570
3571 2004-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
3572
3573         * config/s390/s390.md ("load_multiple", "*load_multiple_di",
3574         "*load_multiple_si"): Allow only if reload_completed.
3575         ("store_multiple", "*store_multiple_di", "*store_multiple_si"):
3576         Likewise.
3577
3578 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
3579
3580         * config/vax/vax-protos.h: Add a prototype for
3581         vax_notice_update_cc.
3582         * config/vax/vax.c (vax_notice_update_cc): New.
3583         * config/vax/vax.h (NOTICE_UPDATE_CC): Call
3584         vax_notice_update_cc.
3585
3586 2004-03-06  David Edelsohn  <edelsohn@gnu.org>
3587
3588         * collect2.c (main): Only export initfunc and finifunc if
3589         LD_INIT_SWITCH not defined.
3590         (scan_prog_file): Only export constructors and destructors if
3591         LD_INIT_SWITCH not defined.  Only export symbols not found in
3592         shared objects.
3593
3594 2004-03-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3595
3596         * pa.md (icacheflush): Reorder operands to make match_scratch operand
3597         last.
3598         * pa.h (INITIALIZE_TRAMPOLINE): Remove unnecessary scratch argument
3599         from calls to gen_icacheflush.
3600
3601 2004-03-06  Richard Henderson  <rth@redhat.com>
3602
3603         * config/alpha/alpha.h (MASK_LONG_DOUBLE_128): New.
3604         (TARGET_LONG_DOUBLE_128): New.
3605         (TARGET_SWITCHES): Add long-double-{128,64}.
3606         (TARGET_HAS_XFLOATING_LIBS): Default to TARGET_LONG_DOUBLE_128.
3607         (LONG_DOUBLE_TYPE_SIZE): Honor TARGET_LONG_DOUBLE_128.
3608         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): New.
3609         (WIDEST_HARDWARE_FP_SIZE): New.
3610         (TARGET_CPU_CPP_BUILTINS): Define __LONG_DOUBLE_128__.
3611         * config/alpha/alpha.c (override_options): Clear MASK_LONG_DOUBLE_128
3612         if TARGET_VAX_FLOAT.
3613         * config/alpha/osf5.h (LONG_DOUBLE_TYPE_SIZE): Remove.
3614         (TARGET_DEFAULT): Set MASK_LONG_DOUBLE_128.
3615
3616 2004-03-06  Richard Henderson  <rth@redhat.com>
3617
3618         * config/alpha/alpha.c (alpha_swapped_comparison_operator): Fix
3619         botched rtx class conversion.
3620
3621 2004-03-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3622
3623         * tree.h (BUILTIN_EXP10_P, BUILTIN_EXPONENT_P, BUILTIN_SQRT_P,
3624         BUILTIN_CBRT_P, BUILTIN_ROOT_P): New macros.
3625
3626         * builtins.c (fold_builtin_logarithm, fold_builtin): Use new
3627         macros.
3628         * fold-const.c (fold_mathfn_compare, fold): Likewise.
3629
3630 2004-03-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
3631
3632         PR target/14343
3633         * config/i386/i386.md (movv2di_internal): Conditionalize on
3634         TARGET_SSE, not TARGET_SSE2.
3635
3636 2004-03-05  Chris Demetriou  <cgd@broadcom.com>
3637
3638         * config.gcc (mips64orion-*-elf*, mips64orionel-*-elf*): Delete
3639         duplicated line.
3640
3641 2004-03-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3642
3643         * builtins.c: Consistently use logN not log* in comments.
3644
3645 2004-03-05  Andreas Krebbel  <krebbel1@de.ibm.com>
3646
3647         * rtl.h (mem_expr_equal_p): Function prototype added.
3648         * cfgcleanup.c (merge_memattrs): New function.
3649         (flow_find_cross_jump): Call merge_memattrs for matching insns.
3650         * emit-rtl.c (mem_expr_equal_p): New function.
3651
3652 2004-03-05  Ziemowit Laski  <zlaski@apple.com>
3653
3654         * objc/objc-act.c (synth_module_prologue): Const-qualify
3655         objc_selector type if using the GNU runtime; fix generated
3656         signatures for objc_msg_lookup and objc_msg_lookup_super
3657         to match what GNU ObjC headers provide; reformat and clean up.
3658         (synth_self_and_ucmd_args): Use previously constructed (and
3659         hence possibly const-qualified) objc_selector type.
3660
3661 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
3662
3663         * doc/tm.texi (HARD_REGNO_RENAME_OK): Document.
3664
3665 2004-03-05  Jason Merrill  <jason@redhat.com>
3666
3667         * tree.h (TYPE_HASH): Use TYPE_UID.
3668         (TREE_HASH): New macro with old definition of TYPE_HASH.
3669         * tree.c (build_type_attribute_variant): Use iterative_hash_object.
3670         (build_array_type, build_function_type): Likewise.
3671         (build_method_type_directly): Likewise.
3672         (build_offset_type, build_complex_type): Likewise.
3673         (type_hash_list, attribute_hash_list): Likewise. Now static.
3674         * except.c: s/TYPE_HASH/TREE_HASH/.
3675
3676 2004-03-05  Bob Wilson  <bob.wilson@acm.org>
3677
3678         * config/xtensa/xtensa.c (function_arg): Handle 16-byte aligned args.
3679         (xtensa_va_start): Initialize __va_stk to ($arg_ptr - 32).  Adjust
3680         __va_ndx by 2 words when referencing an argument on the stack.
3681         (xtensa_va_arg): Handle 16-byte aligned args.  Adjust __va_ndx by 2
3682         words when an arg on the stack is first seen.
3683
3684 2004-03-05  Paul Brook  <paul@codesourcery.com>
3685
3686         * arm.h (ARM_FLAG_VFP): Remove.
3687         (ARM_FLAG_ATPCS, CIRRUS_FIX_INVALID_INSNS): Renumber.
3688         * netbsd-elf.h (ARM_FLAG_VFP): Remove.
3689
3690 2004-03-05  Paul Brook  <paul@codesourcery.com>
3691
3692         * function.c (assign_parms): Include pretend alignment offset.
3693
3694 2004-03-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3695
3696         * stor-layout.c (layout_type, case FUNCTION_TYPE): Make size
3697         FUNCTION_BOUNDARY, not POINTER_SIZE * 2.
3698
3699 2004-03-05  Ian Lance Taylor  <ian@wasabisystems.com>
3700
3701         * configure.ac: When passing --enable-languages to subdir
3702         configure when host != build, make sure we don't pass an empty
3703         value.
3704         * configure: Regenerate.
3705
3706 2004-03-05  Nathan Sidwell  <nathan@codesourcery.com>
3707
3708         PR 13577
3709         * gcc.c (cc1_options): Robustify -auxbase-strip from multiple -o
3710         options.
3711
3712 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
3713
3714         * simplify-rtx.c (simplify_relational_operation): If
3715         flag_wrapv is set, do not move terms between the two
3716         side of a relational operator.
3717
3718 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
3719
3720         * rtlanal.c: Include target.h and output.h
3721         (rtx_cost, address_cost, default_address_cost): Move from...
3722         * cse.c (rtx_cost, address_cost, default_address_cost):
3723         ... this file.
3724         * rtl.h (rtx_cost, address_cost): Move under rtlanal.c.
3725         * Makefile.in: Adjust dependencies.
3726
3727 2004-03-05  Paolo Bonzini <bonzini@gnu.org>
3728
3729         * cse.c (cse_end_of_basic_block): Make static.
3730         * local-alloc.c (function_invariant_p): Move to
3731         reload1.c.
3732         * loop.c (libcall_other_reg, record_excess_regs):
3733         Make static.
3734         * reload1.c (function_invariant_p): Moved here
3735         from local-alloc.c, made static.
3736         * rtl.h (cse_end_of_basic_block, function_invariant_p,
3737         libcall_other_reg, record_excess_regs): Remove
3738         declarations.
3739
3740 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
3741
3742         * config/m32r/m32r.c (signed_comparison_operator): Add a
3743         missing parenthesis.
3744
3745 2004-03-04  Ian Lance Taylor  <ian@wasabisystems.com>
3746
3747         * ggc-common.c (gt_pch_restore): Don't unmap addr unless we are
3748         going to call mmap again.  Read the file into the right place.
3749         Give a fatal error if we have to relocate.
3750
3751 2004-03-04  Bob Wilson  <bob.wilson@acm.org>
3752
3753         * config/xtensa/xtensa.c (xtensa_return_in_msb): New function.
3754         (TARGET_RETURN_IN_MSB): Define to xtensa_return_in_msb.
3755
3756 2004-03-05  Hans-Peter Nilsson  <hp@axis.com>
3757
3758         PR other/14354
3759         * config/fp-bit.c (_fpdiv_parts): Do not round when pack_d would
3760         round the same.  When rounding, clear bits that would cause a
3761         second rounding in pack_d.
3762         (_fpmul_parts): Ditto.  Remove #if 0:d code.
3763
3764 2004-03-04  Ziemowit Laski  <zlaski@apple.com>
3765
3766         PR c++/14425, c++/14426
3767         * config/rs6000/altivec.h (vec_splat_s8, vec_splat_s16,
3768         vec_splat_s32, vec_splat_u8, vec_splat_u16, vec_splat_u32):
3769         Change C++ definitions to accept a 'const int' argument;
3770         the prototypes already do.
3771         * config/rs6000/rs6000.c (rs6000_common_init_builtins):
3772         Rename v4si_ftype_char, v8hi_ftype_char, v16qi_ftype_char,
3773         v4sf_ftype_v4si_char, v4si_ftype_v4sf_char, v4si_ftype_v4si_char,
3774         v8hi_ftype_v8hi_char, v16qi_ftype_v16qi_char,
3775         v16qi_ftype_v16qi_v16qi_char, v8hi_ftype_v8hi_v8hi_char,
3776         v4si_ftype_v4si_v4si_char and v4sf_ftype_v4sf_v4sf_char to
3777         end in ..._int; change them to accept an int instead of a char
3778         as the last parameter.
3779
3780 2004-03-04  Phil Edwards  <phil@codesourcery.com>
3781
3782         * genmultilib:  Change '=' to '-' when translating option names
3783         to directory names.
3784
3785 2004-03-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3786
3787         * expr.c (expand_expr_real, case COMPONENT_REF): Get proper type of
3788         stack slot for temp used for result of BLKmode but in integral mode.
3789
3790 2004-03-04  Jan Hubicka  <jh@suse.cz>
3791
3792         * reload.c (find_reloads): Reorganize if seqeunce to switch.
3793
3794         * cfgrtl.c (rtl_redirect_edge_and_branch):  Set the source BB as dirty.
3795         (cfglayout_redirect_edge_and_branch):  Set the source BB as dirty.
3796
3797 2004-03-04  Steve Ellcey  <sje@cup.hp.com>
3798
3799         * config/ia64/ia64.md (divdf3_internal_thr): Fix algorithm.
3800         * testsuite/gcc.dg/20040303-1.c: New test.
3801
3802 2004-03-04  Steven Bosscher  <stevenb@suse.de>
3803
3804         * ppro.md: Rewrite as a DFA pipeline description.
3805         * i386.md: Remove all uses of the ppro_uops attribute.
3806         * i386.c: (ix86_safe_ppro_uops, ix86_dump_ppro_packet,
3807         ix86_reorder_insn, ix86_sched_reorder_ppro, ix86_sched_init,
3808         ix86_sched_reorder, ix86_variable_issue,
3809         struct ix86_sched_data, TARGET_SCHED_VARIABLE_ISSUE,
3810         TARGET_SCHED_INIT, TARGET_SCHED_REORDER): Remove.
3811         (ia32_use_dfa_pipeline_interface): Add TARGET_PENTIUMPRO.
3812         (ia32_multipass_dfa_lookahead): Add TARGET_PENTIUMPRO.
3813         * athlon.md (athlon_ssecmp_load): Fix comment
3814
3815 2004-03-04  Stuart Hastings  <stuart@apple.com>
3816
3817         * gcc/doc/invoke.texi: Document -mlongcall for Darwin/PPC.
3818
3819 2004-03-04  Stuart Hastings  <stuart@apple.com>
3820
3821         * gcc/config/i386/darwin.h: Darwin/x86 doesn't support CPUs before
3822         686, tell Darwin assembler to allow prefetch insns, non-empty def
3823         of SUBTARGET_OPTION_TRANSLATE_TABLE.
3824
3825 2004-03-04  DJ Delorie  <dj@redhat.com>
3826
3827         PR optimization/14282
3828         * sched-deps.c (sched_analyze_insn): Allow a stack adjustment
3829         between a call and the assignment of its return value.
3830
3831 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
3832
3833         * config/h8300/h8300.c: Put a comment for every function.
3834
3835 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
3836
3837         * config/h8300/h8300.md: Add comments about peephole2's.
3838
3839 2004-03-04  Steven Bosscher  <stevenb@suse.de>
3840
3841         * i386.h (TARGET_CPU_DEFAULT_nocona): Fix value.
3842
3843 2004-03-04  Jan Hubicka  <jh@suse.cz>
3844
3845         * cfgcleanup.c (thread_jump): Update call of cselib_init.
3846         * cselib.c (cselib_record_memory): New static variable.
3847         (cselib_lookup_mem, cselib_record_set, cselib_record_sets):
3848         Give up on memories when asked for.
3849         (cselib_init): Accept new argument.
3850         * cselib.h (cselib_init): Update prototype.
3851         * gcse.c (local_cprop_pass): Update call of cselib_init.
3852         * loop.c (load_mems): Update call of cselib_init.
3853         * postreload.c (reload_cse_regs_1): Update call of cselib_init.
3854         * sched-deps.c (sched_analyze): Update call of cselib_init.
3855
3856 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
3857             GP <gp@qnx.com>
3858
3859         * config/rs6000/rs6000.c (output_function_profiler): Append @plt
3860         when compiling PIC.
3861
3862 2004-03-04  Josef Zlomek  <zlomekj@suse.cz>
3863
3864         PR/14362
3865         * var-tracking.c (track_expr_p): Do not track variables which
3866         should be ignored for debugging purposes.
3867
3868 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
3869
3870         * real.c (encode_ibm_extended): Don't bother rounding low double.
3871         * c-cppbuiltin.c (builtin_define_float_constants): Tweak MAX
3872         when fmt->pnan < fmt->p.
3873
3874 2004-03-04  Eric Christopher  <echristo@redhat.com>
3875
3876         * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Fix to check
3877         only range of valid arg registers and fixed_regs.
3878
3879 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
3880
3881         PR target/14406
3882         * config/rs6000/rs6000.md (abstf2, abstf2+1): Delete define_insn.
3883         (abstf2, abstf2_internal): New define_expand.
3884
3885 2004-03-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
3886
3887         PR optimization/14235
3888         * expr.c (convert_move): Copy the source to a new pseudo
3889         when converting from a sub-word source to a larger-than-word
3890         register which conflicts with the source.
3891
3892 2004-03-03  Zack Weinberg  <zack@codesourcery.com>
3893
3894         PR 13728
3895         * c-decl.c (diagnose_mismatched_decls): Issue an error for two
3896         parameters with the same name, unless one is a forward decl.
3897         Do not issue a redundant-redeclaration warning for forward
3898         decls of parameters.
3899
3900 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
3901
3902         * doc/install.texi (*-ibm-aix*): Document use of Bash to speed up
3903         configuration.
3904
3905 2004-03-03  Ian Lance Taylor  <ian@wasabisystems.com>
3906
3907         * ggc-zone.c (ggc_pch_write_object): Don't align file pointer.
3908
3909 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
3910
3911         * target-def.h (TARGET_OPTF): Delete.
3912         * c-opts.c (TARGET_OPTF): Define.
3913
3914 2004-03-04  Jan Hubicka  <jh@suse.cz>
3915
3916         * cselib.c (cselib_finish): Fix another miss-application of my previous
3917         patch.
3918
3919 2004-03-03  Mike Stump  <mrs@apple.com>
3920
3921         Add framework support for darwin.
3922
3923         * c-incpath.c: Include target.h and machmode.h.
3924         (add_path): Use a consistent style for cpp_dir.  Initialize
3925         p->construct to 0.
3926         (add_cpp_dir_path): New.
3927         (register_include_chains): Add use of extra_includes callback.
3928         (hook_void_int): Add.
3929         (target_c_incpath): Add.
3930         * c-incpath.h (add_cpp_dir_path): New.
3931         (target_c_incpath_s): Add.
3932         (target_c_incpath): Add.
3933         (C_INCPATH_INIT): Add.
3934         * c-opts.c (c_common_missing_argument,
3935         c_common_handle_option): Add -F argument processing.
3936         * c.opt: Add -F argument processing.
3937         * gcc.c (trad_capable_cpp): Add -F argument processing.
3938         * cppfiles.c (find_file_in_dir): Update to use construct
3939         callback.
3940         (search_path_exhausted, cpp_get_path, cpp_get_buffer,
3941         cpp_get_prev): New.
3942         (_cpp_find_file): Use search_path_exhausted.
3943         (make_cpp_dir): Initialize construct to 0.
3944         * cpplib.h (missing_header_cb
3945         cpp_get_path, cpp_get_buffer, cpp_get_file, cpp_get_prev): New.
3946         (cpp_callbacks): Add missing_header
3947         (cpp_dir): Add construct.
3948         * target-def.h: (TARGET_OPTF): New.
3949         * hooks.c (hook_void_int, hook_void_charptr): Add.
3950         * hooks.h (hook_void_int, hook_void_charptr): Add.
3951         * Makefile.in (c-incpath.o) : Add $(TARGET_H) and
3952         $(MACHMODE_H) dependencies.
3953         * doc/invoke.texi (Darwin Options): Document -F.
3954         * doc/tm.texi (TARGET_EXTRA_INCLUDES): Add.
3955         (TARGET_OPTF): Add.
3956         * fix-header.c (target_c_incpath): Add.
3957
3958         * config/darwin-c.c: Add c-incpath.h include.
3959         (using_frameworks, find_subframework_file,
3960         find_subframework_header, add_system_framework_path,
3961         frameworks_in_use, num_frameworks, max_frameworks,
3962         add_framework, find_framework, struct framework_header,
3963         framework_header_dirs, framework_construct_pathname,
3964         find_subframework_file, add_system_framework_path,
3965         add_framework_path, framework_defaults,
3966         darwin_register_frameworks, find_subframework_header): Add.
3967         * config/darwin.h (TARGET_EXTRA_INCLUDES, TARGET_OPTF): New.
3968         (TARGET_OPTION_TRANSLATE_TABLE): Add -framework support.
3969         (CPP_SPEC): Add __APPLE_CC__ support.
3970         * t-darwin (darwin-c.o): Add c-incpath.h dependency.
3971
3972 2004-03-04  Jan Hubicka  <jh@suse.cz>
3973
3974         * cselib.c (cselib_finish): Fix miss-application of my previous
3975         patch.
3976
3977 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
3978
3979         * hooks.c (hook_tree_tree_identity): New.
3980         * hooks.h: Add a prototype for hook_tree_tree_identity.
3981         * stmt.c (expand_asm_operands): Use targetm.md_asm_clobbers
3982         instead of MD_ASM_CLOBBERS.
3983         * system.h (MD_ASM_CLOBBERS): Poison.
3984         * target-def.h (TARGET_MD_ASM_CLOBBERS): New.
3985         (TARGET_INITIALIZER): Add TARGET_MD_ASM_CLOBBERS.
3986         * target.h (gcc_target): Add md_asm_clobbers.
3987         * config/i386/i386.c (TARGET_MD_ASM_CLOBBERS): New.
3988         (ix86_md_asm_clobbers): New.
3989         * config/i386/i386.h (MD_ASM_CLOBBERS): Remove.
3990         * doc/tm.texi (MD_ASM_CLOBBERS): Change to
3991         TARGET_MD_ASM_CLOBBERS.
3992
3993 2004-03-03  Stuart Hastings  <stuart@apple.com>
3994
3995         * gcc/config.gcc: Arrange for Darwin/x86 to build libgcc_eh.a.
3996
3997 2004-03-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
3998
3999         * config/sparc/sparc.c (noov_compare64_op): Fix typo.
4000
4001         * config/sparc/sparc.h (ASM_FLOAT): Delete.
4002         (ASM_DOUBLE): Likewise.
4003         (ASM_LONGDOUBLE): Likewise.
4004         * config/sparc/pbd.h (ASM_INT_OP): Delete.
4005
4006 2003-03-03  Richard Henderson  <rth@redhat.com>
4007
4008         PR opt/13862
4009         * cselib.c (cselib_record_sets): Don't record multiple sets in
4010         asm insns.
4011
4012 2004-03-03  Mostafa Hagog  <mustafa@il.ibm.com>
4013
4014         * common.opt: Add description of the new -fgcse-after-reload flag.
4015
4016         * flags.h (flag_gcse_after_reload): Declaration of global variable.
4017
4018         * gcse.c (reg_used_on_edge ,reg_set_between_after_reload_p,
4019         reg_used_between_after_reload_p, rtx get_avail_load_store_reg,
4020         is_jump_table_basic_block, bb_has_well_behaved_predecessors,
4021         get_bb_avail_insn, hash_scan_set_after_reload,
4022         compute_hash_table_after_reload, eliminate_partially_redundant_loads,
4023         gcse_after_reload, get_bb_avail_insn): New functions to implement
4024         gcse-after-reload.
4025         (gcse_after_reload_main): New function, the main entry point to
4026         gcse-after-reload.
4027
4028         * rtl.h (gcse_after_reload_main): Declaration of the new function.
4029
4030         * opts.c (common_handle_option): Handle the -fgcse-after-reload flag.
4031
4032         * toplev.c (flag_gcse_after_reload): Initialization.
4033
4034         * passes.c (rest_of_handl_gcse2): Call gcse_after_reload_main.
4035
4036         * params.def (PARAM_GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
4037         PARAM_GCSE_AFTER_RELOAD_CRITICAL_FRACTION): New parameters for tuning
4038         the gcse after reload optimization.
4039
4040         * params.h (GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
4041         GCSE_AFTER_RELOAD_CRITICAL_FRACTION): Two macros to access the tuning
4042         parameters.
4043
4044         * doc/invoke.texi: Documentation for the new flag gcse-after-reload.
4045
4046 2004-03-03  Nicolas Pitre <nico@cam.org>
4047
4048         * config/arm/ieee754-df.S (muldf3, divdf3): Fix denormalization of
4049         small negative values.
4050
4051 2004-03-03  Jan Hubicka  <jh@suse.cz>
4052
4053         * cselib.c (hash_table):  Remove GTY marker.
4054         (reg_values): Turn into array.
4055         (used_regs): Likewise.
4056         (n_used_regs): New static variable.
4057         (reg_values_old): Kill.
4058         (clear_table): Update uses of arrays.
4059         (cselib_lookup): Likewise.
4060         (cselib_record_set): Likewise.
4061         (cselib_init): Likewise.
4062         (cselib_finish): Likewise.
4063         (cselib_udpate_varray_sizes): Kill.
4064         * cselib.h (cselib_update_varray_sizes): Kill.
4065
4066 2004-03-03  Paul Brook  <paul@codesourcery.com>
4067
4068         * flow.c (ior_reg_cond, and_reg_cond): Remove stray ")".
4069
4070 2004-03-03  Jan Hubicka  <jh@suse.cz>
4071
4072         * ggc-common.c (ggc_alloc_cleared_stat, ggc_realloc_stat):
4073         Rename from ...; make statistics transparent.
4074         (ggc_alloc_cleared, ggc_realloc_stat): ... these.
4075         (loc_descriptor): New structure.
4076         (hash_descriptor, eq_descriptor, loc_descriptor, cmp_statistics,
4077         add_statistics):
4078         New static function.
4079         (ggc_record_overhead, dump_statistics): New global function.
4080         * ggc-none.c (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
4081         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Rename
4082         from ...; accept locations
4083         (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
4084         ggc_realloc, ggc_alloc_typed):  ... this one.
4085         from ...; accept locations
4086         * ggc-page.c (ggc_alloc_typed_stat, ggc_alloc_zone_stat,
4087         ggc_alloc_stat): Rename from ... ; pass locations
4088         * ggc-page.c (ggc_alloc_typed, ggc_alloc_zone, ggc_alloc):
4089         ... this one.
4090         (ggc_alloc_stat): Record overehead.
4091         * ggc.h (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
4092         ggc_realloc, ggc_alloc_typed):  Turn to macros
4093         (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
4094         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Declare.
4095         (dump_ggc_loc_satistics, ggc_record_overehead): Declare.
4096         * langhooks.h (lhd_make_node): Declare.
4097         (LANG_HOOKS_MAKE_TYPE): Default to new function,
4098         * langhooks.c (lhd_make_node): New.
4099         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Rename from ... ; pass
4100         locations.
4101         (rtx_alloc, swallow_copy_rtx): ... this one.
4102         * rtl.h (rtx_alloc, swallow_copy_rtx): Turn to macros.
4103         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Declare.
4104         * toplpev.c (finalize): Dump stats.
4105         * tree.c (make_node_stat, copy_node_stat, make_tree_vec_stat,
4106         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
4107         Rename from ... ; pass locators.
4108         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
4109         build?,  build_decl): Declare.
4110         * tree.h (make_node_stat, copy_node_stat, make_tree_vec_stat,
4111         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
4112         Declare.
4113         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
4114         build?,  build_decl): New macros.
4115         * Makefile.in (RTL_H, TREE_H): Add statistics.h dependency.
4116         * statistics.h: New file.
4117
4118 2004-03-03  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
4119             Richard Sandiford  <rsandifo@redhat.com>
4120
4121         * config/mips/mips.h (MASK_FIX_SB1): Bump.
4122         (MASK_FIX_R4400, TARGET_FIX_R4400): New macros.
4123         (TARGET_SWITCHES): Add -mfix-r4400 and -mno-fix-r4400.
4124         * config/mips/mips.c (mips_output_division): Fill the branch delay
4125         slot with a nop if TARGET_FIX_R4000.  Extend R4000 workarounds to
4126         TARGET_FIX_R4400.
4127         (mips_output_division): Adjust accordingly.
4128         (override_options): Make -march=r4400 imply -mfix-r4400 by default.
4129         * doc/invoke.texi: Document -mfix-r4400 and new errata workarounds.
4130
4131 2004-03-03  Paolo Bonzini  <bonzini@gnu.org>
4132
4133         * alias.c (rtx_equal_for_memref_p): Use predicates
4134         to test rtx classes and new rtx class codes, possibly
4135         splitting conditionals that tested against '<' and 'o'.
4136         * caller-save.c (save_call_clobbered_regs): Likewise.
4137         * combine.c (contains_muldiv, find_split_point, subst,
4138         combine_simplify_rtx, simplify_if_then_else,
4139         simplify_set, simplify_logical, expand_compound_operation,
4140         make_compound_operation, if_then_else_cond, known_cond,
4141         apply_distributive_law, cached_nonzero_bits,
4142         cached_num_sign_bit_copies, simplify_shift_const,
4143         gen_binary, simplify_comparison, update_table_tick,
4144         record_value_for_reg, get_lsat_value_validate): Likewise.
4145         * cse.c (mention_regs, find_best_addr, find_comparison_args,
4146         fold_rtx, cse_insn, invalidate_memory, cse_basic_block):
4147         Likewise.
4148         * emit-rtl.c (copy_insn_1): Likewise.
4149         * expr.c (force_operand): Likewise.
4150         * final.c (final_scan_insn, get_mem_expr_from_op): Likewise.
4151         * flow.c (notice_stack_pointer_modification_1,
4152         invalidate_mems_from_autoinc, ior_reg_cond, not_reg_cond,
4153         and_reg_cond, elim_reg_cond): Likewise.
4154         * function.c (update_epilogue_consts): Likewise.
4155         * genattrtab.c (attr_rtx_1): Likewise.
4156         * genopinit.c (gen_insn): Likewise.
4157         * integrate.c (subst_constants): Likewise.
4158         * jump.c (reversed_comparison_code_parts,
4159         reversed_comparison_code, delete_related_insns,
4160         rtx_renumbered_equal_p): Likewise.
4161         * local-alloc.c (block_alloc): Likewise.
4162         * loop.c (rtx_equal_for_prefetch_p, maybe_eliminate_biv,
4163         canonicalize_condition): Likewise.
4164         * loop-iv.c (simplify_using_conditions, iv_number_of_iterations):
4165         Likewise.
4166         * optabs.c (add_equal_node, expand_binop): Likewise.
4167         * predict.c (estimate_probability): Likewise.
4168         * ra-debug.c (ra_print_rtx_2op, ra_print_rtx): Likewise.
4169         * recog.c (validate_replace_rtx_1, comparison_operator,
4170         offsettable_address_p, constrain_operands): Likewise.
4171         * reg-stack.c (swap_rtx_condition_1, subst_stack_regs_pat):
4172         Likewise.
4173         * regclass.c (scan_one_insn): Likewise.
4174         * regmove.c (stable_and_no_regs_but_for_p): Likewise.
4175         * regrename.c (kill_autoinc_value): Likewise.
4176         * reload.c (find_reusable_reload, find_reloads,
4177         reg_overlap_mentioned_for_reload_p): Likewise.
4178         * reload1.c (gen_reload, delete_address_reloads_1): Likewise.
4179         * rtl.c (copy_rtx): Likewise.
4180         * rtl.h (CONSTANT_P, INSN_P): Likewise.
4181         * rtlanal.c (commutative_operand_precedence): Likewise.
4182         * sched-deps.c (conditions_mutex_p): Likewise.
4183         * sched-rgn.c (is_cfg_nonregular): Likewise.
4184         * simplify-rtx.c (simplify_gen_binary,
4185         simplify_gen_relational, simplify_replace_rtx,
4186         simplify_unary_operation, simplify_binary_operation,
4187         simplify_ternary_operation, simplify_rtx): Likewise.
4188         * unroll.c (reg_dead_after_loop): Likewise.
4189         * config/alpha/alpha.c (alpha_swapped_comparison_operator,
4190         print_operand): Likewise.
4191         * config/arc/arc.c (proper_comparison_operator): Likewise.
4192         * config/arm/arm.c (arm_arm_address_cost, arm_select_cc_mode):
4193         Likewise.
4194         * config/avr/avr.c (_reg_unused_after): Likewise.
4195         * config/frv/frv.c (frv_ifcvt_modify_tests,
4196         frv_ifcvt_modify_insn, frv_pack_insn): Likewise.
4197         * config/i386/i386.c (ix86_comparison_operator,
4198         ix86_carry_flag_operator, fcmov_comparison_operator,
4199         arith_or_logical_operator, print_operand,
4200         ix86_expand_binary_operator, ix86_binary_operator_ok):
4201         Likewise.
4202         * config/i386/i386.md: Likewise.
4203         * config/ia64/ia64.c (not_postinc_memory_operand,
4204         ia64_print_operand, update_set_flags, errata_emit_nops):
4205         Likewise.
4206         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS,
4207         CONSTRAINT_OK_FOR_S): Likewise.
4208         * config/ip2k/ip2k.c (mdr_resequence_xy_yx,
4209         mdr_try_move_dp_reload, ip2k_check_can_adjust_stack_ref,
4210         ip2k_xexp_not_uses_reg_for_mem, ip2k_xexp_not_uses_reg_p,
4211         ip2k_composite_xexp_not_uses_reg_p, ip2k_unary_operator):
4212         Likewise.
4213         * config/iq2000/iq2000.c (cmp_op, symbolic_expression_p,
4214         eqne_comparison_operator, signed_comparison_operator):
4215         Likewise.
4216         * config/mips/mips.c (cmp_op, symbolic_expression_p):
4217         Likewise.
4218         * config/mmix/mmix (mmix_foldable_comparison_operator,
4219         mmix_comparison_operator): Likewise.
4220         * config/pa/pa.c (hppa_legitimize_address): Likewise.
4221         * config/rs6000/rs6000.c (stmw_operation,
4222         branch_comparison_operator, trap_comparison_operator,
4223         ccr_bit): Likewise.
4224         * config/rs6000/rs6000.h (SELECT_CC_MODE): Likewise.
4225         * config/s390/s390.c (s390_alc_comparison,
4226         s390_slb_comparison):L Likewise.
4227         * config/sh/sh.c (gen_block_redirect, reg_unused_after):
4228         Likewise.
4229         * config/sparc/sparc.c (eq_or_neq, normal_comp_operator,
4230         noov_compare_op, noov_compare64_op, v9_regcmp_op,
4231         emit_hard_tfmode_operation, reg_unused_after)
4232         * doc/md.texi, doc/rtl.texi: Likewise.
4233
4234         * ra-debug.c: Add 2004 to list of copyright years.
4235         * unroll.c: Likewise.
4236
4237         * combine.c (simplify_logical): Remove dummy test,
4238         (apply_distributive_law): Fix typo in comment.
4239         GET_CODE (x) == AND so x is a commutative binary op.
4240         * jump.c (delete_related_insns): simplify loop
4241         condition, move testing of RTX codes inside the loop.
4242         (rtx_renumbered_equal_p): do not use RTX_CODE.
4243         * rtl.c (rtx_class): Declare as enum rtx_class.
4244         * rtl.def (EQ, NE, UNEQ, LTGT, UNORDERED, ORDERED):
4245         Move to RTX_COMM_COMPARE class.
4246         (HIGH, SYMBOL_REF, LABEL_REF, CONST, CONST_INT, CONST_DOUBLE):
4247         Move to RTX_CONST_OBJ class.
4248         * rtl.h (enum rtx_class): New declaration,
4249         (RTX_OBJ_MASK, RTX_OBJ_RESULT, RTX_COMPARE_MASK,
4250         RTX_COMPARE_RESULT, RTX_ARITHMETIC_MASK, RTX_ARITHMETIC_RESULT,
4251         RTX_BINARY_MASK, RTX_BINARY_RESULT, RTX_COMMUTATIVE_MASK,
4252         RTX_COMMUTATIVE_RESULT, RTX_NON_COMMUTATIVE_RESULT,
4253         RTX_EXPR_FIRST, RTX_EXPR_LAST, UNARY_P, BINARY_P,
4254         ARITHMETIC_P, COMMUTATIVE_ARITHMETIC_P, COMPARISON_P,
4255         SWAPPABLE_OPERANDS_P, NON_COMMUTATIVE_P, COMMUTATIVE_P,
4256         OBJECT_P): New macros.
4257         * config/sparc/sparc.c (noov_compare_op): Remove register
4258         from parameter.
4259
4260 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
4261
4262         * target.h: Remove texi jargons in comments.
4263
4264 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
4265
4266         * config/h8300/lib1funcs.asm (___fixunssfsi): Change the
4267         threshold to 0x4f.
4268
4269         Revert:
4270         2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
4271         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
4272         as well.
4273         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
4274         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
4275
4276 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
4277
4278         * doc/md.texi (cbranchmode4): New.
4279
4280 2004-03-02  Eric Christopher  <echristo@redhat.com>
4281
4282         * config/mips/mips16.S: Change fixsfsi and fixdfsi to
4283         fix_trunc.
4284         * config/mips/mips.c (mips_init_libfuncs): Change accordingly.
4285         * config/mips/t-elf (LIB1ASMFUNCS): Ditto.
4286         * config/mips/t-isa3264 (LIB1ASMFUNCS): Ditto.
4287         * config/mips/t-r3900 (LIB1ASMFUNCS): Ditto.
4288
4289 2004-03-02  Richard Henderson  <rth@redhat.com>
4290
4291         PR middle-end/11767
4292         * coverage.c (coverage_counter_ref): Set MEM_NOTRAP_P.
4293         * optabs.c (prepare_cmp_insn): Force trapping memories to registers
4294         before the compare, if flag_non_call_exceptions.
4295
4296 2004-03-02  Richard Henderson  <rth@redhat.com>
4297
4298         PR middle-end/14327
4299         * stmt.c (expand_computed_goto): Do do_pending_stack_adjust before
4300         emitting the label, not after.
4301
4302 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
4303
4304         * config/m68hc11/m68hc11.c (m68hc11_addr_mode): New variable.
4305         (m68hc11_mov_addr_mode): Likewise.
4306         (m68hc11_override_options): Initialize them based on target.
4307         (register_indirect_p): Allow a MEM for indirect addressing modes and
4308         use flags to control what is allowed.
4309         (m68hc11_small_indexed_indirect_p): Use m68hc11_mov_addr_mode for
4310         supported addressing modes.
4311         (m68hc11_register_indirect_p): Use m68hc11_addr_mode.
4312         (go_if_legitimate_address_internal): Likewise.
4313         (m68hc11_indirect_p): Likewise and check the mode.
4314         (print_operand): Allow a (MEM (MEM)) and generate indirect addressing.
4315
4316 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
4317
4318         * builtins.c (BUILTIN_SETJMP_FRAME_VALUE): Remove.
4319         (expand_builtin_setjmp_setup): Use
4320         targetm.builtin_setjmp_frame_value instead of
4321         BUILTIN_SETJMP_FRAME_VALUE.
4322         * system.h (BUILTIN_SETJMP_FRAME_VALUE): Poison.
4323         * target-def.h (TARGET_BUILTIN_SETJMP_FRAME_VALUE): New.
4324         (TARGET_INITIALIZER): Add TARGET_BUILTIN_SETJMP_FRAME_VALUE.
4325         * target.h (gcc_target): Add builtin_setjmp_frame_value.
4326         * targhooks.c (default_builtin_setjmp_frame_value): New.
4327         * targhooks.h: Add a prototype for
4328         default_builtin_setjmp_frame_value.
4329         * doc/tm.texi (BUILTIN_SETJMP_FRAME_VALUE): Change to
4330         TARGET_BUILTIN_SETJMP_FRAME_VALUE.
4331
4332 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
4333
4334         * config/m68hc11/m68hc11.md (move peephole2): New peepholes to optimize
4335         sequences of moves.
4336         (add peepholes): New peepholes to optimize sequences adding small
4337         constants.
4338         (bset peepholes): New peepholes to transform an OR in a bset form
4339         (bclr peepholes): Likewise for bclr form.
4340         (cmp peepholes): New peepholes to avoid register copies when comparing.
4341
4342 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
4343
4344         * config/m68hc11/m68hc11.md ("*pushdi_internal"): New insn and split
4345         to separate push from moves.
4346         ("*pushdf_internal"): Likewise.
4347         ("*pushsf_internal"): Likewise.
4348         ("*pushsi_internal"): Likewise.
4349         ("movdi_internal"): Use define_insn_and_split; non push operand.
4350         ("movdf_internal"): Likewise.
4351         ("movsf_internal"): Likewise.
4352         ("movsi_internal"): Likewise.
4353         ("*movhi_68hc12", "*addhi3_68hc12"): Fix and tune constraints
4354         ("*addhi3", "*subhi3", "*andhi3_mem", "*iorhi3_mem"): Likewise.
4355         ("*ashlsi3_const1", "*lshrsi3_const1"): Likewise.
4356
4357 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
4358
4359         * config/m68hc11/m68hc11.md ("tstqi_z_used"): Use define_insn_and_split.
4360         ("cmphi_z_used", "cmpqi_z_used"): Likewise.
4361         ("movstrictsi", "movstricthi", "movstrictqi"): Likewise.
4362         ("anddi3", "andsi3", "iordi3", "iorsi3"): Likewise.
4363         ("xordi3", "xorsi3", "*logicalsi3_zexthi"): Likewise.
4364         ("*logicalsi3_zextqi", "*logicalhi3_zexthi_ashift8"): Likewise.
4365         ("logicalhi3_zexthi", "*logicalsi3_silshr16"): Likewise.
4366         ("*logicalsi3_silshl16", "*logicalsi3_silshl16_zext"): Likewise.
4367         ("*ashldi3_const32", "*ashldi3_const1", "addsi_silshr16"): Likewise.
4368         ("addsi_andshr16", "*ashlsi3_const16_zexthi"): Likewise.
4369         ("*lshrdi3_const32", "*lshrdi_const1"): Likewise.
4370
4371 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
4372
4373         * config/m68hc11/m68hc11.md (SOFT_TMP_REGNUM): Define.
4374         (SOFT_XY_REGNUM): Define.
4375         (cmp split): Use the above instead of hard coded numbers.
4376         (8-bit op split): No need to check the mode; allow Q_REG.
4377         (ashift split): Adjust the first operand if it uses the SP and we
4378         are pushing the shifted value.
4379         (plus shift split): Fix when a source is in register D+X.
4380         ("doloop_end"): Pass dummy arguments to gen_rtx_NE.
4381
4382 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
4383
4384         * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Fix when
4385         comparing with Z register.
4386
4387 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4388
4389         * cfgloop.h (struct loop_desc): Removed.
4390         (struct loop): Fields simple, desc and has_desc removed.
4391         (simple_loop_p, count_loop_iterations): Declaration removed.
4392         * cfgloopanal.c (struct unmark_altered_insn_data): Removed.
4393         (unmark_altered, blocks_invariant_registers, unmark_altered_insn
4394         blocks_single_set_registers, invariant_rtx_wrto_regs_p_helper,
4395         invariant_rtx_wrto_regs_p, test_for_iteration, constant_iterations,
4396         simple_loop_exit_p, variable_initial_value, variable_initial_values,
4397         simple_condition_p, simple_increment, count_strange_loop_iterations,
4398         inverse, fits_in_mode_p, simple_loop_p, count_loop_iterations):
4399         Removed.
4400         * loop-iv.c (check_simple_exit, find_simple_exit): Update comments.
4401
4402 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
4403
4404         * genattrtab.c: Don't handle MATCH_INSN.
4405         * genrecog.c: Likewise.
4406         * gensupport.c: Likewise.
4407         * rtl.def (match_insn): Remove.
4408         * doc/md.texi (match_insn, match_insn2): Remove.
4409
4410 2004-03-02  Mark Mitchell  <mark@codesourcery.com>
4411
4412         * doc/c-tree.texi (DECL_ASSEMBLER_NAME): Mention that using this
4413         macro results in memory allocation.
4414
4415 2004-03-02  David O'Brien  <obrien@FreeBSD.org>
4416
4417         * config/freebsd-spec.h (FBSD_DYNAMIC_LINKER): Add.
4418         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Define
4419         %(fbsd_dynamic_linker),
4420         (LINK_SPEC): Use %(fbsd_dynamic_linker), and sync style with
4421         config/i386/freebsd.h
4422         * config/arm/freebsd.h: Ditto.
4423         * config/i386/freebsd.h: Ditto.
4424         * config/i386/freebsd64.h: Ditto.
4425         * config/ia64/freebsd.h: Ditto.
4426         * config/rs6000/sysv4.h: Ditto.
4427         * config/sparc/freebsd.h: Ditto.
4428
4429 2004-03-02  Loren James Rittle  <ljrittle@acm.org>
4430
4431         * gcc/doc/install.texi (*-*-freebsd*): Update target information.
4432
4433 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
4434
4435         * rtl.def (define_combine): Remove.
4436
4437 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
4438
4439         * config/h8300/h8300.md: Tweak formatting.
4440
4441 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
4442
4443         * config/h8300/h8300.md (*cmphi_h8300): Rename to
4444         *cmphi_h8300_znvc.
4445         (*cmphi_h8300hs): Rename to *cmphi_h8300hs_znvc.
4446
4447 2004-03-01  Mark Mitchell  <mark@codesourcery.com>
4448
4449         PR bootstrap/14356
4450         * gcc.c (process_command): Remove const-qualification from argv.
4451         (main): Likewise.
4452
4453 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
4454
4455         * config/h8300/h8300.md (pushqi1_h8300hs): Rename to
4456         pushqi1_h8300hs_advanced.  Adjust its caller.
4457         (pushhi1_h8300hs): Rename to pushhi1_h8300hs_advanced.
4458         Adjust its caller.
4459
4460 2004-03-02  Nicolas Roche  <roche@act-europe.fr>
4461
4462         * Makefile.in (install-libgcc, install-multilib): Pass
4463         mkinstalldirs var to libgcc.mk.
4464
4465 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
4466
4467         * system.h (DBX_OUTPUT_STANDARD_TYPES): Poison.
4468         * doc/tm.texi (DBX_OUTPUT_STANDARD_TYPES): Remove.
4469
4470 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
4471
4472         * config/h8300/h8300.c (gtle_operator): Accept GT and LE.
4473         * config/h8300/h8300.md: Split several peephole2's, each into
4474         two.
4475
4476 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4477
4478         * dominance.c (recount_dominator): Handle postdominators.
4479
4480 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
4481
4482         * config/mips/mips-protos.h (enum mips_symbol_type): Move from mips.h.
4483         (NUM_SYMBOL_TYPES): Likewise.
4484         (SYMBOL_64_HIGH, SYMBOL_64_MID, SYMBOL_64_LOW): New symbol types.
4485         (mips_unspec_address): Declare.
4486         (mips_gotoff_page, mips_gotoff_global): Delete.
4487         * config/mips/mips.h (PREDICATE_CODES): Add general_symbolic_operand.
4488         * config/mips/mips.c (enum mips_symbol_type, NUM_SYMBOL_TYPES): Delete.
4489         (mips_symbolic_constant_p, mips_symbolic_address_p)
4490         (mips_symbol_insns): Handle new symbol types.
4491         (general_symbolic_operand): New predicate.
4492         (mips_unspec_address): Make extern.
4493         (mips_gotoff_page, mips_gotoff_global): Delete.
4494         (override_options): Allow -mabi=64 -mno-abicalls -mexplicit-relocs.
4495         Handle new symbol types.
4496         * config/mips/mips.md (*lea_high64, *lea64): New patterns.
4497         (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_disp[sd]i): Call
4498         mips_unspec_address directly.
4499         * doc/invoke.texi: Remove the -mabi=64 -mno-abicalls exception from
4500         the documentation of -mexplicit-relocs.
4501
4502 2004-03-01  Jeff Law  <law@redhat.com>
4503
4504         * fold-const.c (fold): An equality comparison of a non-weak object
4505         against zero has a known result.  Similarly an equality comparison
4506         of the address of two non-weak, unaliased symbols has a known result.
4507
4508         * ggc-page.c (struct page_entry): New field PREV.
4509         (ggc_alloc): Update PREV field appropriately.
4510         (sweep_pages): Likewise.
4511         (ggc_free): Likewise.  Use PREV field rather than loop to
4512         improve ggc_free performance.
4513
4514 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
4515
4516         * config/mips/mips.c (mips_output_division): Use the division
4517         instruction to fill the delay slot of a zero check.
4518         (mips_idiv_insns): Adjust accordingly.
4519
4520 2004-03-01  Nathanael Nerode  <neroden@gcc.gnu.org>
4521
4522         * config.gcc: Create a default tmake_file for linux, and use
4523         it in all but two linux clauses.  Comment those two.
4524
4525 2004-03-01  Paolo Bonzini  <bonzini@gnu.org>
4526
4527         * combine.c (try_combine):  Do not refer to is_replaced.
4528         (gen_lowpart_for_combine):  Perverse subregs now have a
4529         more politically correct name.
4530         * cse.c (cse_insn): Likewise.
4531         * jump.c: Fix bogus reference to delete_insn.
4532
4533 2004-02-29  Mark Mitchell  <mark@codesourcery.com>
4534
4535         PR debug/14328
4536         * dwarf2out.c (gen_enumeration_type_die): Output all enumeration
4537         constants as signed values.
4538
4539         PR middle-end/13448
4540         * c-tree.h (readonly_warning): Rename to ...
4541         (readonly_error): ... this.
4542         * c-typeck.c (build_unary_op): Adjust accordingly.
4543         (readonly_warning): Rename to ...
4544         (readonly_error): ... this and issue errors, not warnings.
4545         (build_modify_expr): Call readonly_error, not readonly_warning.
4546         (c_expand_asm_operands): Likewise.
4547         * tree-inline.c (optimize_inline_calls): Do not inline functions
4548         after errors have occurred.
4549
4550 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
4551
4552         * configure.ac: Rearrange some threading code for clarity;
4553         add section comment.
4554         * configure: Regenerate.
4555
4556 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
4557
4558         * passes.c, config/frv/frv.c, config/sh/sh.c: Fix comment
4559         typos.
4560         * doc/cppopts.texi: Fix a typo.
4561
4562 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
4563
4564         * config/i386/i386.md: Fix formatting.
4565
4566 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
4567
4568         * configure.ac: Add some comments delineating sections of code.
4569
4570         * doc/install.texi: Note that libada uses autoconf 2.57 also.
4571
4572         * doc/install.texi: Fix idiot typo in previous commit.
4573
4574         * doc/install.texi: Update for conversion of intl to autoconf 2.57.
4575
4576 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
4577
4578         * config/h8300/h8300.md: Add comments about peephole2's.
4579
4580 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
4581
4582         * config/h8300/h8300.md: Tweak operand numbers of some
4583         peephole2's.
4584
4585 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
4586
4587         * config/h8300/h8300.md: Tweak comments about peephole2's.
4588
4589 2004-02-29  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
4590
4591         PR middle-end/14203
4592         * function.c (uninitialized_vars_warning): Use DECL_RTL_SET_P
4593         instead of testing whether DECL_RTL is not NULL.
4594
4595 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
4596
4597         * config/sh/sh.c: Fix formatting.
4598
4599 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
4600
4601         * config/sh/sh.c: Convert to ISO-C.
4602
4603 2004-02-28  Andrew Pinski  <pinskia@physics.uc.edu>
4604
4605         * c-typeck.c (tagged_types_tu_compatible_p): Fix pasto in
4606         my previous patch.
4607
4608         * config/darwin.h (machopic_finish): Output stub even if the
4609         symbol is already defined.
4610
4611 2004-02-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4612
4613         * pa64-hpux.h (LIB_SPEC): Fix linking under HP-UX 11.00 with -p and -pg.
4614
4615 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
4616
4617         * genattr.c (main): Don't define
4618         TRADITIONAL_PIPELINE_INTERFACE or DFA_PIPELINE_INTERFACE.
4619         * system.h (TRADITIONAL_PIPELINE_INTERFACE): Poison.
4620         (DFA_PIPELINE_INTERFACE): Likewise.
4621         * doc/tm.texi (TRADITIONAL_PIPELINE_INTERFACE): Remove.
4622         (DFA_PIPELINE_INTERFACE): Likewise.
4623
4624 2004-02-28  Richard Sandiford  <rsandifo@redhat.com>
4625
4626         * config/mips/mips.md (tstsi, tstdi): Delete.
4627
4628 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
4629
4630         * config/mips/mips.c (override_options): Remove an obsolete
4631         duplicate definition of the "e" constraint.
4632         * config/mips/mips.h: Update a comment accordingly.
4633
4634 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
4635
4636         * config/mips/mips.md: Complete the unfinished R4000
4637         multiply/shift errata workaround.  Improve documentation.
4638         (hazard): Use TARGET_FIX_R4000 to decide whether an "imul" instruction
4639         has a hilo hazard.
4640         (mulsi3, mulsi3_internal, mulsi3_r4000): Use TARGET_FIX_R4000.
4641         (muldi3, muldi3_internal): Likewise.
4642         (muldi3_internal2): Remove, replacing with...
4643         (muldi3_mult3, muldi3_r4000): ...these new patterns.
4644         (mulsidi3): Take the errata into account.
4645         (mulsidi3_32bit): Remove, replacing with...
4646         (mulsidi3_32bit_internal, mulsidi3_32bit_r4000): ...these new patterns.
4647         (mulsidi3_64bit, mulsidi3_64bit_parts): Disable if TARGET_FIX_R4000.
4648         (umulsidi3): Take the errata into account.
4649         (umulsidi3_32bit): Remove, replacing with..
4650         (umulsidi3_32bit_internal, umulsidi3_32bit_r4000): ...these patterns.
4651         (umulsi3_highpart, umulsi3_highpart_internal): Disable if
4652         TARGET_FIX_R4000.
4653         (smulsi3_highpart, smulsi3_highpart_internal): Likewise.
4654         (smuldi3_highpart, umuldi3_highpart): Likewise.
4655         * doc/invoke.texi: Document the errata workaround.
4656
4657 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
4658
4659         * config/mips/mips-protos.h (mips_idiv_insns): Declare.
4660         * config/mips/mips.h (MASK_FIX_SB1): Bump.
4661         (MASK_FIX_R4000, TARGET_FIX_R4000): New macros.
4662         (TARGET_SWITCHES): Add -mfix-r4000 and -mno-fix-r4000.
4663         * config/mips/mips.c (mips_idiv_insns): New function.
4664         (override_options): Make -march=r4000 imply -mfix-r4000 by default.
4665         (mips_output_division): Add a workaround for the R4000 divide/shift
4666         errata.
4667         * config/mips/mips.md (length): Use mips_idiv_insns() to calculate
4668         the length of an "idiv" instruction.
4669         * doc/invoke.texi: Document the new switches.
4670
4671 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
4672
4673         * doc/tm.texi (IS_COSTLY_DEPENDENCE): Change to
4674         TARGET_SCHED_IS_COSTLY_DEPENDENCE.
4675
4676 2004-02-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4677
4678         PR optimization/14229
4679         * cfgrtl.c (rtl_tidy_fallthru_edge): Do not fail for !onlyjump jump.
4680
4681 2004-02-28  Eric Botcazou  <ebotcazou@act-europe.fr>
4682
4683         * fold-const.c (fold): Strip NOPs that change the signedness
4684         for RSHIFT too.  Expand comment.
4685
4686 2004-02-27  Ian Lance Taylor  <ian@wasabisystems.com>
4687
4688         PR optimization/7871
4689         * flow.c (mark_set_1): Don't add LOG_LINKS for global registers
4690         from or to call insns.
4691
4692 2004-02-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
4693
4694         PR optimization/7871
4695         * flow.c (propagate_one_insn): Interpret calls as setting global
4696         registers, not merely clobbering them.
4697
4698 2004-02-27  Dale Johannesen  <dalej@apple.com>
4699
4700         * config/darwin.c (machopic_output_possible_stub_label):  Remove.
4701         config/darwin-protos.h:  Ditto.
4702         config/darwin.h:  Remove call to it.
4703         * combine.c (distribute_notes): Do not place a REG_DEAD note
4704         when value is both set and used.
4705
4706 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
4707
4708         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
4709         as well.
4710         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
4711         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
4712
4713 2004-02-27  Andrew Pinski  <apinski@apple.com>
4714
4715         * c-typeck.c (tagged_types_tu_compatible_p) <ENUMERAL_TYPE>:
4716         Speedup common case of the type values being in the same order.
4717
4718 2004-02-27  Steve Ellcey  <sje@cup.hp.com>
4719
4720         * config/ia64/ia64.h (no-inline-float-divide): New option.
4721         * config/ia64/ia64.h (no-inline-int-divide): New option.
4722         * config/ia64/ia64.h (no-inline-sqrt): New option.
4723         (TARGET_DEFAULT): Add MASK_INLINE_FLOAT_DIV_THR to define.
4724         * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
4725         * config/ia64/ia64.c (ia64_override_options): Modify error
4726         checking for inlined division/sqrt.
4727
4728 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
4729
4730         * bb-reorder.c, cfgbuild.c, diagnostic.c, explow.c, profile.c,
4731         ra-build.c, read-rtl.c, tracer.c, unwind-dw2-fde-glibc.c,
4732         value-prof.c, config/darwin-protos.h, config/frv/frv-abi.h,
4733         config/i386/pmmintrin.h, config/pa/pa-hpux.h: Update
4734         copyright.
4735
4736 2004-02-27  Paul Brook  <paul@codesourcery.com>
4737
4738         * function.c (assign_parms): Don't count pretend args for alignment.
4739
4740 2004-02-27  Richard Henderson  <rth@redhat.com>
4741
4742         * passes.c: New file.
4743         * Makefile.in (OBJS-common): Add it.
4744         * diagnostic.c (rtl_dump_and_exit): Move decl ...
4745         * flags.h (rtl_dump_and_exit): ... here.
4746         * output.h (size_directive_output, last_assemble_variable_decl):
4747         Move from toplev.c.
4748         * rtl.h (reg_alloc): Move from toplev.c.
4749         * toplev.c (HAVE_conditional_execution, DUMPFILE_FORMAT,
4750         struct dump_file_info, enum dump_file_index, dump_file_tbl,
4751         open_dump_file, close_dump_file, rest_of_decl_compilation,
4752         rest_of_type_compilation, rest_of_handle_final,
4753         rest_of_handle_delay_slots, rest_of_handle_stack_regs,
4754         rest_of_handle_variable_tracking, rest_of_handle_machine_reorg,
4755         rest_of_handle_new_regalloc, rest_of_handle_old_regalloc,
4756         rest_of_handle_regrename, rest_of_handle_reorder_blocks,
4757         rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_regmove,
4758         rest_of_handle_tracer, rest_of_handle_if_conversion,
4759         rest_of_handle_if_after_combine, rest_of_handle_web,
4760         rest_of_handle_branch_prob,
4761         rest_of_handle_value_profile_transformations, rest_of_handle_cfg,
4762         rest_of_handle_addressof, rest_of_handle_sibling_calls,
4763         rest_of_handle_jump_bypass, rest_of_handle_inlining,
4764         rest_of_handle_null_pointer, rest_of_handle_combine,
4765         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
4766         rest_of_handle_gcse, rest_of_handle_loop_optimize,
4767         rest_of_handle_loop2, rest_of_compilation): Move to passes.c.
4768         (decode_d_option): Use enable_rtl_dump_file.
4769         (compile_file, finalize, do_compile): Move profile+combine+graph
4770         cleanup to finish_optimization_passes.
4771         * toplev.h (init_optimization_passes, finish_optimization_passes,
4772         enable_rtl_dump_file): Declare.
4773
4774 2004-02-27  Eric Botcazou  <ebotcazou@act-europe.fr>
4775             Roger Sayle  <roger@eyesopen.com>
4776
4777         * fold-const.c (fold): Revert 2004-02-25 change.  Use the original
4778         operands to build a tree with swapped operands.
4779         * expr.c (expand_expr_real) <MAX_EXPR>: Consistently use the
4780         'unsignedp' predicate to specify the signedness.
4781
4782 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
4783
4784         * c-decl.c, c-ppoutput.c, combine.c, cppfiles.c, dwarf2out.c,
4785         expr.c, fold-const.c, gcc.c, haifa-sched.c, loop-iv.c,
4786         params.def, read-rtl.c, rtl.c, rtlanal.c, toplev.c: Fix
4787         comment typos and formatting.  Follow spelling conventions.
4788
4789 2004-02-26  Aldy Hernandez  <aldyh@redhat.com>
4790
4791         * config/rs6000/rs6000.md: Add fixuns_truncsfsi2 and
4792         fix_truncsfsi2.
4793
4794         * config/rs6000/spe.md: Delete spe_efsctuiz.
4795         Add spe_fixuns_truncsfsi2.
4796         Add spe_fix_truncsfsi2.
4797
4798 2004-02-26  Eric Christopher  <echristo@redhat.com>
4799
4800         * c-lex.c (c_lex_string_translate): New variable.
4801         (lex_string): Use to determine string translation.
4802         * c-pragma.h: Prototype.
4803         * c-parse.in (start_string_translation): New. Set above.
4804         (stop_string_translation): Ditto.
4805         (attribute, attribute_list, asm_def, asm_stmt,
4806         asm_operand): Use above functions.
4807         * cp/parser.c (cp_parser_declaration): Translate strings
4808         unless token is RID_EXTERN. Set c_lex_string_translate
4809         for recursive use.
4810         (cp_parser_asm_definition): Only translate argument strings
4811         to asms.
4812         (cp_parser_asm_operand_list): Ditto.
4813         (cp_parser_attribute_list): Do not translate attribute strings.
4814
4815 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
4816
4817         * stmt.c (expand_start_case_dummy): Remove.
4818         * tree.h: Remove the corresponding prototype.
4819
4820 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
4821
4822         * builtins.c (apply_args_register_offset): Remove.
4823         * tree.h: Remove the corresponding prototype.
4824
4825 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
4826
4827         * stor-layout.c (is_pending_size): Remove.
4828         * tree.h: Remove the corresponding prototype.
4829
4830 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
4831
4832         * recog.c (validate_replace_src): Remove.
4833         * recog.h: Remove the corresponding prototype.
4834
4835 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
4836
4837         * calls.c: Don't reference FINAL_REG_PARM_STACK_SPACE or
4838         MAYBE_REG_PARM_STACK_SPACE.
4839         * function.c: Likewise.
4840         * system.h (FINAL_REG_PARM_STACK_SPACE): Poison.
4841         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
4842         * doc/tm.texi (FINAL_REG_PARM_STACK_SPACE): Remove.
4843         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
4844
4845 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
4846
4847         * c-decl.c (c_expand_deferred_function): Remove.
4848         * c-tree.h: Remove the corresponding prototype.
4849
4850 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
4851
4852         * postreload.c (reload_cse_move2add): Generate just a PLUS
4853         instead of an entire SET.
4854
4855 2004-02-26  Jan Hubicka  <jh@suse.cz>
4856
4857         * config.gcc: Add support for nocoma/prescott/pentium-m/pentium3m
4858         /pentium4m.
4859         * i386.c (override_options): Add support for new CPUs.
4860         * i386.h (TARGET_CPU_DEFAULT_NAMES): New names.
4861         (TARGET_CPU_DEFAULT_pentium_m, TARGET_CPU_DEFAULT_pentium4e): New
4862         constants.
4863         * invoke.texi: Extend documentation of -mtune/-march for new CPUs.
4864
4865 2004-02-26  Bob Wilson  <bob.wilson@acm.org>
4866
4867         * config/xtensa/xtensa.h (TARGET_CPU_CPP_BUILTINS): Define __xtensa__.
4868
4869 2004-02-26  Eric Botcazou  <ebotcazou@act-europe.fr>
4870
4871         * config/sparc/sparc-protos.h (sparc_emit_floatunsdi): Add 'mode'.
4872         (sparc_emit_fixunsdi): New prototype.
4873         * config/sparc/sparc.c (sparc_emit_floatunsdi): Use 'mode' argument.
4874         (sparc_emit_fixunsdi): New function.
4875         * config/sparc/sparc.md (floatunsdisf2): Use 'general_operand' for
4876         operand 1.  Pass SFmode to sparc_emit_floatunsdi.
4877         (floatunsdidf2): Use 'general_operand' for operand 1.  Pass DFmode
4878         to sparc_emit_floatunsdi.
4879         (fixuns_truncsfdi2): New expander.
4880         (fixuns_truncdfdi2): Likewise.
4881
4882 2004-02-26  Alan Modra  <amodra@bigpond.net.au>
4883
4884         * gcse.c (delete_null_pointer_checks_1): Do not delete CC setter
4885         unless HAVE_cc0.
4886
4887 2004-02-25  Richard Henderson  <rth@redhat.com>
4888
4889         * explow.c (force_reg): Call mark_reg_pointer as appropriate.
4890         * config/alpha/alpha.c (alpha_emit_conditional_branch): Don't
4891         use (op0-op1) == 0 if op0 is a pointer.
4892         * config/alpha/alpha.md (cmpdi): Use some_operand.
4893         (three comparison combine splits): Remove.
4894
4895 2004-02-25  Richard Henderson  <rth@redhat.com>
4896
4897         PR c/12794
4898         * c-common.c (handle_alias_attribute): Reject the attribute if
4899         current_function_decl is set.
4900
4901 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
4902
4903         * config.gcc: Add comment describing extra_gcc_objs.
4904         i[34567]86-*-cygwin*): Replace host_extra_gcc_objs with extra_gcc_objs.
4905         * configure.ac (extra_gcc_objs): New substitution variable.
4906         (host_extra_gcc_objs): Don't substitute.
4907         * configure: Regenerate.
4908         * Makefile.in: Use extra_gcc_objs.
4909
4910 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
4911
4912         * doc/contrib.texi: Add an entry for myself.
4913
4914 2004-02-25  Jan Hubicka  <jh@suse.cz>
4915
4916         * basic-block.h (make_eh_edge, break_superblocks): Declare.
4917         * cfgbuild.c (make_eh_edge):  Make global.
4918         * cfglayout.c (break_superblocks): Likewise; fix memory leak.
4919         * except.c (build_post_landing_pads, connect_post_landing_pads,
4920         dw2_build_landing_pads, sjlj_emit_function_enter,
4921         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
4922         sjlj_build_landing_pads): Update CFG.
4923         (emit_to_new_bb_before): New function.
4924         (finish_eh_generation): Do not rebuild the CFG.
4925
4926 2004-02-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4927
4928         * config.gcc (hppa*-*-*, parisc*-*-*): Add MASK_BIG_SWITCH to all
4929         target_cpu_default defines.
4930         * pa-hpux.h (TARGET_DEFAULT): Add MASK_BIG_SWITCH to define.
4931         * pa.h (TARGET_DEFAULT): Likewise.
4932
4933 2004-02-25  Eric Botcazou  <ebotcazou@act-europe.fr>
4934
4935         * fold-const.c (fold): Treat MAX_EXPR and MIN_EXPR like
4936         comparisons with regard to signedness.
4937
4938 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
4939
4940         * arm.c (thumb_legitimize_address): New function.
4941         * arm-protos.h: Prototype it.
4942         * arm.h (THUMB_LEGITIMIZE_ADDRESS): Define.
4943         (LEGITIMIZE_ADDRESS): Use it.
4944
4945 2004-02-25  J"orn Rennecke <joern.rennecke@superh.com>
4946
4947         * reload1.c (reload): Only spill eliminable register with multiple
4948         adjacent elimination alternatives if all alternatives fail.
4949
4950 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
4951
4952         * arm.c (arm_legitimate_index_p): For QImode the range of an offset
4953         is -4095...+4095 inclusive.
4954
4955 2004-02-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
4956
4957         * doc/install.texi (sparc-sun-solaris2* specific notes): Document
4958         the bootstrap failure with Sun CC 5.4 and 5.5.
4959
4960 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
4961
4962         * cse.c (cse_change_cc_mode_insns): Stop at any instruction
4963         which modifies NEWREG.
4964         (cse_condition_code_reg): Update the mode of CC_REG in
4965         CC_SRC_INSN on our own.
4966
4967 2004-02-24  Michael Matz  <matz@suse.de>
4968
4969         * config/i386/i386.c (ix86_comp_type_attributes): Check for
4970         regparm attributes.
4971
4972 2004-02-24  Richard Henderson  <rth@redhat.com>
4973
4974         * toplev.c (dump_file_tbl): Rename from dump_file.
4975         * bb-reorder.c, bt-load.c, cfgcleanup.c, cfglayout.c, cfgloopanal.c,
4976         cfgloopmanip.c, cfgrtl.c, config/arm/arm.c, config/frv/frv.c,
4977         config/i386/i386.c, config/ia64/ia64.c, config/mips/mips.c,
4978         config/sh/sh.c, cse.c, flow.c, ifcvt.c, loop-iv.c, loop-unroll.c,
4979         loop-unswitch.c, output.h, predict.c, profile.c, ra-build.c,
4980         ra-colorize.c, ra-debug.c, ra-rewrite.c, ra.c, regrename.c, reload1.c,
4981         toplev.c, tracer.c, value-prof.c, var-tracking.c, web.c:
4982         s/rtl_dump_file/dump_file/g.
4983
4984 2004-02-24  Aldy Hernandez  <aldyh@redhat.com>
4985
4986         * config/rs6000/spe.md (spe_fix_truncsfsi2): Delete.
4987         (spe_fixuns_truncsfsi2): Delete.
4988
4989         * config/rs6000/rs6000.md (fix_truncsfsi2): Delete.
4990         (fixuns_truncsfsi2): Delete.
4991
4992 2004-02-24  Josef Zlomek  <zlomekj@suse.cz>
4993
4994         PR/14240
4995         * rtlanal.c (replace_label): Fix replacing labels in constant pool.
4996
4997 2004-02-24  Geoffrey Keating  <geoffk@apple.com>
4998
4999         * config/darwin.h (TARGET_HAS_F_SETLKW): Define.
5000
5001 2004-02-24  Jason Merrill  <jason@redhat.com>
5002
5003         * tree.c (check_qualified_type): New fn.
5004         (get_qualified_type): Use it.  If type already has the desired
5005         quals, just return it.
5006         * tree.h: Declare it.
5007
5008 2003-02-24  Sanjiv Kumar Gupta  <sanjivg@noida.hcltech.com>
5009
5010         * target-def.h (TARGET_SCHED_INIT_GLOBAL,
5011         TARGET_SCHED_FINISH_GLOBAL): New macros.
5012
5013         * target.h (md_init_global, md_finish_global): Function
5014         declarations corresponding to new target macros.
5015
5016         * haifa-sched.c (sched_init, sched_finish): Allow target to
5017         call the new schedular hooks.
5018
5019         * flow.c (recompute_reg_usage): Add PROP_DEATH_NOTES flag in
5020         call to update_life_info.
5021
5022         * config/sh/sh.h (OVERRIDE_OPTIONS): Re-enable
5023         flag_schedule_insns for SH4.
5024
5025         * config/sh/sh.c (sh_md_init_global, sh_md_finish_global,
5026         find_set_regmode_weight, find_insn_regmode_weight,
5027         find_regmode_weight), sh_md_init, sh_dfa_new_cycle,
5028         sh_variable_issue, high_pressure, ready_reorder,
5029         rank_for_reorder, swap_reorder, sh_reorder, sh_reorder2): New
5030         functions used to throttle the insn movement in first
5031         scheduling pass for SH.
5032
5033         * gcc/doc/tm.texi: Document TARGET_SCHED_INIT_GLOBAL and
5034         TARGET_SCHED_FINISH_GLOBAL.
5035
5036 2004-02-24  Alexandre Oliva  <aoliva@redhat.com>
5037
5038         Implement FR-V FDPIC ABI support for frv-uclinux and frv-linux.
5039         2004-02-05  Alexandre Oliva  <aoliva@redhat.com>
5040         * config/frv/frv.c (frv_emit_movsi): Use GOT relocations for
5041         symbols in sections named by the user.
5042         2004-01-30  Alexandre Oliva  <aoliva@redhat.com>
5043         * config/frv/linux.h (TARGET_OS_CPP_BUILTINS): New.
5044         2004-01-27  Alexandre Oliva  <aoliva@redhat.com>
5045         * config.gcc (frv-*-*linux*): Handle like *-*-linux*.
5046         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Remove, obviated by
5047         the above.
5048         2004-01-20  Alexandre Oliva  <aoliva@redhat.com>
5049         * config/frv/frv.md (symGOT2reg_hilo, symGOTOFF2reg_hilo): Add
5050         one more pseudo to further improve code generation.
5051         2004-01-19  Alexandre Oliva  <aoliva@redhat.com>
5052         * config/frv/frv.md (movdi_ldd): Introduce explicit indirection
5053         inside UNSPEC.
5054         2004-01-16  Alexandre Oliva  <aoliva@redhat.com>
5055         * config/frv/frv.c (frv_legitimate_address_p): Added
5056         allow_double_reg_p argument.  Adjust all callers.  Use it to
5057         decide whether to enable double-register indirect addressing.
5058         (frv_funcdesc_alias_set): Remove.
5059         (frv_expand_fdpic_call): Force non-SYMBOL_REF operand into
5060         register.  Emit movdi_ldd.
5061         (ldd_address_operand): New.
5062         * config/frv/frv-protos.h (frv_legitimate_address_p): Adjust.
5063         * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Likewise.
5064         (PREDICATE_CODES): Add ldd_address_operand.
5065         * config/frv/frv.md (movdi_ldd): New.
5066         (symGOT2reg_hilo, symGOTOFF2reg_hilo): Use separate pseudo for
5067         intermediate computations if possible.
5068         (symGOTOFF2reg_i): Fix harmless typo.
5069         2003-12-18  Alexandre Oliva  <aoliva@redhat.com>
5070         * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Cast
5071         relocated p_vaddr to vaddr type.
5072         * config/frv/frv-protos.h (frv_expand_fdpic_call): Return void.
5073         * config/frv/frv.c (frv_get_funcdesc_alias_set): New.
5074         (frv_expand_fdpic_call): Propagate incoming MEM's expr to funcdesc
5075         MEM, or use a funcdesc alias set.  Use regular move instead of
5076         ldd.
5077         (dbl_memory_one_insn_operand): Recognize function descriptors by
5078         type or by alias set, and don't split them.
5079         * config/frv/frv.md (call, call_value): Never use call_internal
5080         for fdpic.
5081         (call_internal, call_value_internal): Never match for FDPIC.
5082         (call_fdpicdi, call_fdpicsi, call_value_fdpicdi,
5083         call_value_fdpicsi): Require FDPIC.
5084         (ldd): Removed.
5085         2003-12-17  Alexandre Oliva  <aoliva@redhat.com>
5086         * config/frv/frv.h (CRT_GET_RFIB_DATA): Define for __FRV_FDPIC__.
5087         * unwind-dw2-fde-glibc.c: Don't include elf-fdpic.h any more.
5088         (_Unwind_IteratePhdrCallback): Adjust type of load_base for FRV
5089         FDPIC.  Compute data base address.
5090         * config/frv/linux.h (SUBTARGET_DRIVER_SELF_SPECS): Enable -mfdpic
5091         before the other self-specs are processed.
5092         * config/frv/t-linux (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS):
5093         Build with -fPIC.
5094         2003-12-15  Alexandre Oliva  <aoliva@redhat.com>
5095         * unwind-dw2-fde-glibc.c: Don't include bits/elf-fdpic.h if
5096         inhibit_libc is defined.
5097         2003-12-12  Alexandre Oliva  <aoliva@redhat.com>
5098         * unwind-dw2-fde-glibc.c: Include bits/elf-fdpic.h for
5099         __FRV_FDPIC__.
5100         (__RELOC_POINTER): Define.
5101         (_Unwind_IteratePhdrCallback): Use it.
5102         * config/frv/frv.h (Twrite): Define.
5103         (TRANSFER_FROM_TRAMPOLINE): Use it.
5104         * config/frv/linux.h (INVOKE__main): Undefine.
5105         (Twrite): Override.
5106         2003-12-05  Richard Sandiford  <rsandifo@redhat.com>
5107         * doc/invoke.texi (-mlong-calls, -mlinked-fp): Document FRV options.
5108         (-mlibrary-pic): Emphasize that this option generates EABI code.
5109         (-mcpu): Add fr550.
5110         (-mpack): Remove.
5111         2003-11-30  Alexandre Oliva  <aoliva@redhat.com>
5112         * config/frv/frv.c (int_2word_operand): Reject LABELs, SYMBOL_REFs
5113         and CONSTs in FDPIC mode.
5114         * gcc/config.gcc (with_cpu): Default to fr400 on frv-*-*linux*.
5115         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
5116         * config/frv/frv.c (move_source_operand): Don't accept symbolic
5117         constants.
5118         * config/frv/frv.md (*movhi_internal, *movsi_internal): Use an 'n'
5119         rather than 'i' constraint for the 2-instruction alternative.
5120         (*movsi_2word): New, incorporating existing int_2word_operand splitter.
5121         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
5122         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Q): Renamed from
5123         EXTRA_CONSTRAINT_FOR_Y.
5124         (EXTRA_CONSTRAINT): Remove handling of 'Y'.
5125         * config/frv/frv.md (*movsi_internal): Remove 'Q' constraint.
5126         (addsi3): Change 'Y' constraint to 'Q'.
5127         2003-11-27  Richard Sandiford  <rsandifo@redhat.com>
5128         * reload.c (CONST_POOL_OK_P): New macro.
5129         (find_reloads): Use it to decide whether a constant can be forced
5130         into memory.
5131         * config/frv/frv.h (LEGITIMATE_PIC_OPERAND_P): Return true if the
5132         constant satisfies got12_operand.
5133         (frv_cannot_force_const_mem): Always return true for TARGET_FDPIC.
5134         (frv_legitimate_address_p): Check for valid unspec offsets using
5135         got12_operand rather than frv_legitimate_fdpic_operand_p.
5136         (frv_legitimate_fdpic_operand_p): Delete.
5137         (frv_emit_movsi): Abort if we try to use the FDPIC register during
5138         or after reload.
5139         (frv_legitimate_constant_p): Return LEGITIMATE_PIC_OPERAND_P if
5140         TARGET_FDPIC.
5141         * config/frv/frv.md (*movdf_double): Add alternatives for CONST_DOUBLE.
5142         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
5143         * config/frv/frv-protos.h (fdpic_operand, fdpic_got12_operand)
5144         (frv_fdpic_fptr_operand): Don't declare here.
5145         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Y): Call got12_operand
5146         rather than fdpic_got12_operand.
5147         (PREDICATE_CODES): Remove symbolic_operand entry.  Add entries for
5148         got12_operand and const_unspec_operand.
5149         * config/frv/frv.c (got12_operand): Renamed from fdpic_got12_operand.
5150         (gpr_or_int12_operand, dbl_memory_one_insn_operand): Update calls.
5151         (symbolic_operand): Remove.
5152         (const_unspec_operand): New predicate.
5153         * config/frv/frv.md (*movsi_got): Use got12_operand.
5154         (*movsi_high_got, *movsi_lo_sum_got): Use const_unspec_operand.
5155         2003-11-18  Richard Sandiford  <rsandifo@redhat.com>
5156         * config/frv/frv-protos.h (frv_output_addr_const_extra): Remove.
5157         * config/frv/frv.h (OUTPUT_ADDR_CONST_EXTRA): Remove definition.
5158         * config/frv/frv.c (frv_unspec): New structure.
5159         (frv_small_data_reloc_p, frv_const_unspec_p): New functions.
5160         (frv_print_operand_memory_reference): Use frv_const_unspec_p to
5161         validate CONST indices.  Use frv_output_const_unspec to print them.
5162         (frv_print_operand): Update call to unspec_got_name.  Use
5163         frv_output_const_unspec to print constant unspecs.
5164         (frv_legitimate_fdpic_operand_p): Return true if frv_const_unspec_p.
5165         Reject UNSPECs otherwise.
5166         (unspec_got_name): Take the relocation number as argument, not an
5167         rtx containing it.
5168         (frv_output_addr_const_extra): Remove, replacing with...
5169         (frv_output_const_unspec): ...this new function.
5170         (frv_find_base_term): Use frv_const_unspec_p & frv_small_data_reloc_p.
5171         (gpr_or_int12_operand): Use fdpic_got12_operand.
5172         (dbl_memory_one_insn_operand): Likewise.
5173         (fdpic_got12_operand): Use frv_const_unspec_p.
5174         (frv_emit_movsi): Use frv_const_unspec_p to check for CONSTs that
5175         are already legitimate.  Use frv_small_data_reloc_p when deciding
5176         whether to use HIGH/LO_SUM for R_FRV_GOTOFF12 and R_FRV_GPREL12.
5177         2003-11-18  Alexandre Oliva  <aoliva@redhat.com>
5178         * config/frv/t-linux (SHLIB_MAPFILES): Override so as to export...
5179         * config/frv/libgcc-frv.ver: ... frv-specific symbols.  New file.
5180         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
5181         label, for real this time.
5182         * config/frv/frv.c (frv_local_funcdesc_p): Update to new
5183         representation of visibility.
5184         (fdpic_got12_operand, symbolic_operand): Mark unused arguments as
5185         such.
5186         2003-11-17  Richard Sandiford  <rsandifo@redhat.com>
5187         * config/frv/frv.h (MASK_LINKED_FP, TARGET_LINKED_FP): New macros.
5188         (TARGET_SWITCHES): Add -mlinked-fp and -mno-linked-fp.
5189         * config/frv/frv.c (frv_override_options): Set MASK_LINKED_FP unless
5190         it was explicitly disabled.
5191         (frv_stack_info): There is no need to save the link register in every
5192         frame unless TARGET_LINKED_FP is true.
5193         (frv_frame_pointer_required): If !TARGET_LINKED_FP, only require a
5194         frame pointer if the stack pointer might change value.
5195         (frv_return_addr_rtx): Check and process "count" argument.
5196         2003-11-14  Richard Sandiford  <rsandifo@redhat.com>
5197         * config/frv/frv-protos.h (frv_legitimize_address): Remove.
5198         (frv_find_base_term): Declare.
5199         * config/frv/frv.h (LEGITIMIZE_ADDRESS): Do nothing.
5200         (FIND_BASE_TERM): Define.
5201         (PREDICATE_CODES): Remove pic_register_operand, pic_symbolic_operand,
5202         small_data_register_operand, small_data_symbolic_operand.  Add
5203         symbolic_operand.
5204         * config/frv/frv.c (const_small_data_p, plus_small_data_p): Delete.
5205         (frv_print_operand_memory_reference, output_move_single): Remove
5206         special handling for unlegitimized sdata addresses.
5207         (frv_legitimate_address_p): Don't allow sums of SDA_BASE_REG
5208         and symbolic addresses.
5209         (frv_legitimize_address, frv_legitimize_fdpic_address): Delete.
5210         (frv_find_base_term): New function.
5211         (int_2word_operand): Check specifically for symbolic address constants.
5212         (pic_register_operand, pic_symbolic_operand): Delete.
5213         (small_data_register_operand, small_data_symbolic_operand): Delete.
5214         (dbl_memory_one_insn_operand): Don't call plus_small_data_p.
5215         Allow UNSPEC_GOT constants if !TARGET_FDPIC.
5216         (move_source_operand): Only accept CONSTs if they're a two-insn
5217         symbolic constant.
5218         (fdpic_got12_operand): Don't require TARGET_FDPIC.
5219         (frv_emit_movsi): Legitimize sdata and -mlibrary-pic addresses
5220         using gen_symGOTOFF2reg*.
5221         (frv_ifcvt_rewrite_mem): Remove (plus gr16 ...) special cases.
5222         (frv_rtx_costs): Give all MEM addresses a cost of 0.  Give MEMs
5223         themselves a cost of 3 insns.
5224         * config/mips/mips.md (*movsi_got): Allow for !TARGET_FDPIC too.
5225         Change predicate to symbolic_operand.
5226         (*movsi_high_got, *movsi_lo_sum_got): Likewise.
5227         (*movsi_lda_sdata): Delete.
5228         (*movsi_pic, movsi_high_pic, movsi_lo_sum_pic): Delete.
5229         2003-11-05  Alexandre Oliva  <aoliva@redhat.com>
5230         * config.gcc: Add t-slibgcc-elf-ver and support --with-cpu for
5231         frv-*-*linux*.
5232         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
5233         label.
5234         * config/frv/frv.h (DRIVER_SELF_SPECS): Add blank before
5235         -multilib-library-pic.
5236         (LINK_SPEC): Add -z text for -mfdpic.
5237         * config/frv/frvbegin.c (__ROFIXUP_LIST__): Don't define on FDPIC.
5238         * config/frv/frvend.c (__ROFIXUP_END__): Likewise.
5239         * config/frv/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, LINK_SPEC):
5240         Override.
5241         (OPTION_DEFAULT_SPECS, HAS_INIT_SECTION, INIT_SECTION_ASM_OP,
5242         FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION): Define.
5243         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Use
5244         crtstuff-generated files.
5245         2003-10-31  Alexandre Oliva  <aoliva@redhat.com>
5246         * config.gcc: Add frv-*-*linux*.
5247         * config/frv/linux.h, config/frv/t-linux: New.
5248         2003-10-06  Alexandre Oliva  <aoliva@redhat.com>
5249         * config/frv/frv.h (LINK_SPEC): Pass -melf32frvfd to the linker
5250         when -mfdpic even if a linker script is explicitly listed.
5251         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
5252         * config/frv/frv.c (frv_override_options): Clear asm_out
5253         unaligned_op for SImode on FDPIC.
5254         (frv_emit_movsi): Use compute_reloc_for_constant to compute the
5255         argument passed to decl_readonly_section.
5256         (frv_assemble_integer): Revert 2003-09-30's change, but make the
5257         whole block run with FDPIC even with -fno-PIC.
5258         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
5259         * config/frv/frv.c (frv_cannot_force_const_mem): Don't force
5260         symbol or label plus offset to memory.
5261         (frv_emit_movsi): Emit GPREL only if -mgprel-ro.  Emit 32-bit
5262         GOTOFF and GPREL for LABEL_REF.
5263         * config/frv/frv.h (DRIVER_SELF_SPECS): Add -mgprel-ro with
5264         -mfdpic unless -mno-gprel-ro, -fpic or -fpie.
5265         (MASK_GPREL_RO, TARGET_GPREL_RO): New.
5266         (TARGET_SWITCHES): Added gprel-ro and no-gprel-ro.
5267         * doc/invoke.texi: Document them.
5268         2003-09-30  Alexandre Oliva  <aoliva@redhat.com>
5269         * config/frv/frv-protos.h (frv_gen_GPsym2reg): Declare.
5270         (frv_splittable_got_operand): Removed.
5271         * config/frv/frv.c (frv_cannot_force_const_mem): Reject HIGH and
5272         LO_SUM.  Add comments.
5273         (frv_override_options): Moved enabling of FDPIC to
5274         DRIVER_SELF_SPECS.  Don't enable MASK_DWORD.
5275         (frv_local_funcdesc_p): Remove unnecessary heck for flag_pie.
5276         (frv_legitimize_fdpic_address): Don't duplicate logic in
5277         frv_emit_movsi.
5278         (frv_gen_GPsym2reg): New.
5279         (unspec_got_name): Added gprel.
5280         (frv_expand_fdpic_call): Add support for inlining PLTs.
5281         (fdpic_fptr_operand): Renamed from frv_fdpic_fptr_operand.
5282         (gpr_or_int12_operand): Added GPREL12.
5283         (pic_symbolic_operand): Match even if !flag_pic for FDPIC.
5284         (small_data_symbolic_operand): Fail if FDPIC.
5285         (fdpic_splittable_got_operand): Removed.
5286         (fdpic_got12_operand): Added GPREL12.
5287         (frv_emit_movsi): Reorganize to avoid duplication.  Emit GPREL
5288         when appropriate.  Fix sdata GOTOFF.
5289         (frv_legitimate_constant_p): Require legitimate PIC operand for
5290         FDPIC with pic, but only a legitimate fdpic operand for non-pic.
5291         (frv_assemble_integer): Move FDPIC funcdesc handling out of
5292         flag_pic case.
5293         (frv_asm_out_constructor, frv_asm_out_destructor): Abort if
5294         frv_assemble_integer fails.
5295         * config/frv/frv.h (DRIVER_SELF_SPECS): New.
5296         (SUBTARGET_DRIVER_SELF_SPECS): New.
5297         (ASM_SPEC): Don't pass -mno-fdpic.
5298         (LINK_SPEC): Pass -melf32frvfd for FDPIC.
5299         (MASK_INLINE_PLT, TARGET_INLINE_PLT): New.
5300         (TARGET_SWITCHES): Add -minline-plt, -mno-inline-plt and
5301         -multilib-library-pic.
5302         (PREDICATE_CODES): Added fdpic_operand, fdpic_fptr_operand,
5303         condexec_si_media_operator, condexec_sf_add_operator and
5304         condexec_sf_conv_operator.  Removed condexec_sf_binary_operator
5305         and condexec_sf_unary_operator.
5306         * config/frv/frv.md (R_FRV_GPREL12, R_FRV_GPRELHI, R_FRV_GPRELLO):
5307         New.
5308         (movsi_got, movsi_high_got, movsi_lo_sum_got): Move before
5309         movsi_internal.  Give them internal names.  movsi_got has type
5310         int.
5311         (fdpic got splitters): Remove.
5312         (symGPREL2reg, symGPREL2reg_hilo): New.
5313         * config/frv/t-frv (MULTILIB_MATCHES): Don't map -fpic and -fPIC
5314         to -mlibrary-pic.  Map -multilib-library-pic to it.
5315         * doc/invoke.texi: -mfdpic, -minline-plt, -multilib-library-pic:
5316         Document.
5317         2003-09-28  Alexandre Oliva  <aoliva@redhat.com>
5318         * config/frv/frv.c (frv_function_symbol_referenced_p): Declare.
5319         (TARGET_CANNOT_FORCE_CONST_MEM): Define to...
5320         (frv_cannot_force_const_mem): New function.
5321         (const_small_data_p, plus_small_data_p): Update comments on sdata
5322         on FDPIC.
5323         (frv_override_options): Set flag_pie for FDPIC too.
5324         (frv_conditional_register_usage): Mark gr16 and gr17 as non-fixed,
5325         call-saved registers on FDPIC.
5326         (frv_stack_info): Don't preserve the PIC register on FDPIC, and
5327         don't force LR to be preserved.
5328         (frv_expand_prologue): Likewise.
5329         (frv_asm_output_mi_thunk): Use 12-bit funcdesc gotoff for -fpic.
5330         (frv_frame_pointer_required): Don't force it just because the
5331         FDPIC register is used.
5332         (frv_legitimate_address_p) <CONST>: Accept a legitimate FDPIC
5333         operand only if !condexec_p.
5334         (frv_legitimize_address): Return the FDPIC-legitimized address.
5335         Don't match small data here on FDPIC.
5336         (frv_legitimate_fdpic_operand_p): Don't accept unadorned function
5337         symbols.  Use TRUE/FALSE instead of 1/0.
5338         (frv_local_funcdesc_p): New.
5339         (frv_legitimize_fdpic_address): Rewrite to use GOTOFF and 12-bit
5340         immediates when possible.
5341         (pic_symbolic_operand): Accept SYMBOL_REFs and CONSTs in FDPIC.
5342         (dbl_memory_one_insn_operand): Accept addresses that add a REG and
5343         an UNSPEC_GOT.
5344         (frv_emit_movsi): Handle FDPIC before small data.  Use GOTOFF and
5345         12-bit immediates when possible.
5346         (frv_legitimate_constant_p): In FDPIC, reject SImode operands that
5347         are not legitimate pic operands.
5348         (frv_in_small_data_p): Re-enable for FDPIC.
5349         * config/frv/frv.h (SDA_BASE_REG): Remove comment about FDPIC.
5350         (FRV_GLOBAL_P): Removed.
5351         * config/frv/frv.md: Add modes to CONSTs.
5352         (movsi_got): New.
5353         (movsi_lo_sum_got): Use separate matches instead of match_dup.
5354         (movsi_high_pic, movsi_lo_sum_pic): Match on non-FDPIC only.
5355         (fdpic splittable operations): Match on flag_pic != 1.
5356         2003-09-22  Alexandre Oliva  <aoliva@redhat.com>
5357         * config/frv/frv.c (frv_asm_out_constructor,
5358         frv_asm_out_destructor): Pass to frv_assemble_integer the size in
5359         bytes, not bits.
5360         2003-09-19  Alexandre Oliva  <aoliva@redhat.com>
5361         * config/frv/frv.c (frv_assemble_integer): Reject complex
5362         expressions referencing function SYMBOL_REFs.
5363         * config/frv/frv.c (frv_function_symbol_referenced_p): New.
5364         (move_source_operand): Reject CONSTs that reference function
5365         SYMBOL_REFs on FDPIC.
5366         (frv_emit_movsi): If we get such a CONST, break it up.
5367         * config/frv/frv.h (CPP_SPEC): Define __FRV_FDPIC__ for -mfdpic.
5368         (TRANSFER_FROM_TRAMPOLINE): Use different definitions for FDPIC.
5369         * config/frv/frv.c (frv_print_operand) <I>: Recognize PLUS without
5370         MEM.
5371         (frv_assemble_integer): Don't use funcdesc for LABEL_REFs.
5372         (frv_trampoline_size): Increase for FDPIC.
5373         * config/frv/frv.h (TRAMPOLINE_ALIGNMENT): Bump to 64 for FDPIC.
5374         (TRANSFER_FROM_TRAMPOLINE): Handle FDPIC trampolines.
5375         * config/frv/frv.c (frv_legitimize_fdpic_address, frv_emit_movsi):
5376         Disable use of GOTOFF for now.
5377         (const_small_data_p, plus_small_data_p, frv_in_small_data_p):
5378         Disable use of small data in FDPIC for now.
5379         (frv_asm_output_mi_thunk): Implement for FDPIC.
5380         * config/frv/frv.h (SDA_BASE_REG): Set to -1 with FDPIC.
5381         * config/frv/frv.c (frv_asm_out_constructor): Use
5382         frv_assemble_integer for FDPIC pointers.
5383         (frv_asm_out_destructor): Likewise.
5384         * config/frv/frv.md (ldd): Fix order of operands.  Use
5385         address_operand for input.
5386         2003-09-18  DJ Delorie  <dj@redhat.com>
5387         * config/frv/frv.c (frv_legitimate_fdpic_operand_p): Remove UNSPEC_PIC.
5388         (unspec_got_name): Correct typo.
5389         (frv_emit_movsi): Pre-expand splittable GOTs.
5390         (frv_expand_fdpic_call): Rename gen_lddi to gen_ldd.
5391         * config/frv/frv.md (lddi): Fix syntax error, rename to ldd.
5392         (symGOT2reg_hilo, symGOTOFF2reg_hilo): New.
5393         * config/frv/t-frv: Add -mfdpic multilibs.
5394         * config/frv/frv.h (ASM_SPEC): Pass -mfdpic/-mno-fdpic.
5395         (TARGET_SWITCHES): Add -mno-fdpic, fix documentation.
5396         * config/frv/frv.c (frv_override_options): -mfdpic assumes
5397         flag_pic, default to 32-bit pics, require DWORD ops.
5398         (frv_override_options): Add W and Z constraints.
5399         (frv_expand_prologue): No pic prologue for -mfdpic.
5400         (frv_asm_output_mi_thunk): Support -mfdpic (soon).
5401         (frv_print_operand_memory_reference): Handle GOT constants.
5402         (frv_legitimate_address_p): Allow GOT constants.
5403         (frv_legitimize_address): Handle GOT addresses too.
5404         (frv_legitimate_fdpic_operand_p): New.
5405         (frv_legitimize_fdpic_address): New.
5406         (unspec_got_name): New.
5407         (frv_output_addr_const_extra): New.
5408         (frv_expand_fdpic_call): New.
5409         (frv_fdpic_fptr_operand): New.
5410         (gpr_or_int12_operand): Handle GOT operands.
5411         (int_2word_operand): Handle GOT operands.
5412         (fdpic_operand): New.
5413         (fdpic_splittable_got_operand): New.
5414         (fdpic_got12_operand): New.
5415         (frv_emit_movsi): Handle GOT operands.
5416         (frv_assemble_integer): -mfdpic doesn't use rofixups.
5417         (frv_print_operand): Support 'g' code for GOT operands.
5418         * config/frv/frv-protos.h: Add prototypes as needed.
5419         * config/frv/frv.md (R_FRV_GOT12, R_FRV_GOTHI, R_FRV_GOTLO,
5420         R_FRV_FUNCDESC, R_FRV_FUNCDESC_GOT12, R_FRV_FUNCDESC_GOTHI,
5421         R_FRV_FUNCDESC_GOTLO, R_FRV_FUNCDESC_VALUE,
5422         R_FRV_FUNCDESC_GOTOFF12, R_FRV_FUNCDESC_GOTOFFHI,
5423         R_FRV_FUNCDESC_GOTOFFLO, R_FRV_GOTOFF12, R_FRV_GOTOFFHI,
5424         R_FRV_GOTOFFLO): New.
5425         (movsi_high_got, movsi_lo_sum_got): New.
5426         (*movsi_pic): Don't use this splitter for -mfdpic.
5427         (addsi3): Allow GOT references also.
5428         (call, call_value): Handle -mfdpic separately.
5429         (call_fdpicdi, call_fdpicsi, lddi, call_value_fdpicdi,
5430         call_value_fdpicsi): New.
5431         (symGOT2reg, symGOT2reg_i, got splitters, symGOTOFF2reg,
5432         symGOTOFF2reg_i): New.
5433         * config/frv/frv.h (MASK_FDPIC): New.
5434         (TARGET_FDPIC): New.
5435         (TARGET_SWITCHES): Add -mfdpic.
5436         (FDPIC_FPTR_REGNO): New.
5437         (FDPIC_REGNO): New.
5438         (OUR_FDPIC_REG): New.
5439         (enum reg_class): Add FDPIC_REGS, FDPIC_FPTR_REGS, and
5440         FDPIC_CALL_REGS.
5441         (REG_CLASS_NAMES): Likewise.
5442         (REG_CLASS_CONTENTS): Likewise.
5443         (EXTRA_CONSTRAINT_FOR_Y): New, for 12-bit GOTs.
5444         (EXTRA_CONSTRAINT): Add it here.
5445         (FRV_GLOBAL_P): New.
5446         (OUTPUT_ADDR_CONST_EXTRA): New.
5447
5448 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
5449
5450         * config/sparc/sparc.h: Remove commented-out definitions of
5451         TARGET_EDOM and GEN_ERRNO_RTX.
5452
5453 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
5454
5455         * df.c, df.h, ra-build.c, ra-rewrite.c, ra.c, web.c: Replace
5456         df_analyse with df_analyze.
5457
5458 2004-02-24  Alan Modra  <amodra@bigpond.net.au>
5459
5460         * gcse.c (delete_null_pointer_checks_1): Set stop_insn to end, not
5461         beginning of block.
5462
5463 2004-02-23  James E Wilson  <wilson@specifixinc.com>
5464
5465         * calls.c (precompute_arguments): Update comment.
5466
5467 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
5468
5469         * et-forest.c: Replace et_occurences with et_occurrences.
5470
5471 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
5472
5473         * cfgloop.h, loop-iv.c, loop-unswitch.c: Replace iv_analyse
5474         with iv_analyze.
5475
5476 2004-02-23  Kelley Cook  <kcook@gcc.gnu.org>
5477
5478         * config/i386/i386.c: Rename pni to sse3.
5479         * config/i386/i386.h: Likewise.
5480         * config/i386/i386.md: Likewise.
5481         * config/i386/pmmintrin.h: Likewise.
5482         * doc/extend.texi: Likewise.
5483         * doc/invoke.texi: Likewise.
5484
5485 2004-02-23  Zack Weinberg  <zack@codesourcery.com>
5486             Kazu Hirata  <kazu@cs.umass.edu>
5487
5488         Remove -fwritable-strings.
5489         * c-common.c (fix_string_type): Don't check
5490         flag_writable_strings.
5491         (fix_string_type): Likewise.
5492         * c-opts.c (set_std_c89): Don't initialize
5493         flag_writable_strings.
5494         (set_std_c99): Likewise.
5495         * common.opt (fwritable-strings): Remove.
5496         * flags.h: Remove the external declaration of
5497         flag_writable_strings.
5498         * opts.c (common_handle_option) <OPT_fwritable_strings>:
5499         Remove.
5500         * toplev.c (flag_writable_strings): Remove.
5501         (f_options): Remove an entry for writable-strings.
5502         * varasm.c (const_hash_1) <STRING_CST>: Don't check
5503         flag_writable_strings.
5504         (compare_constant) <STRING_CST>: Likewise.
5505         (build_constant_desc): Likewise.
5506         * config/darwin.c (machopic_select_section): Likewise.
5507         * config/arm/arm.c (AOF_ASSEMBLER): Likewise.
5508         * config/arm/pe.c (arm_pe_encode_section_info): Likewise.
5509         * config/iq2000/iq2000.c (iq2000_select_section): Likewise.
5510         * config/mips/mips.c (mips_select_section): Likewise.
5511         (mips_encode_section_info): Likewise.
5512         * config/pa/pa.c (pa_select_section): Likewise.
5513         * config/pa/pa.h (TEXT_SPACE_P): Likewise.
5514         * config/v850/v850.c (v850_select_section): Likewise.
5515         * doc/invoke.texi (-fwritable-strings): Remove.
5516         (-fno-const-strings): Don't mention -fwritable-strings.
5517         * doc/trouble.texi: Don't mention -fwritable-strings.
5518
5519 2003-02-23  Nathanael Nerode  <neroden@gcc.gnu.org>
5520
5521         * doc/install.texi: Update for switch of boehm-gc to autoconf 2.57.
5522
5523 2004-02-23  Dale Johannesen  <dalej@apple.com>
5524
5525         * config/rs6000.md (movsf_hardfloat): Add POWER form of nop.
5526         (movdf_hardfloat64):  Ditto.
5527         (movdf_softfloat64):  Ditto.
5528
5529 2004-02-23  Fariborz Jahanian <fjahanian@apple.com>
5530         * config/rs6000/rs6000.c (function_arg): call to
5531         rs6000_mixed_function_arg for DFmode moved to allow
5532         normal DFmode incoming register assignment.
5533
5534 2004-02-23  Dale Johannesen  <dalej@apple.com>
5535
5536         * config/rs6000.md (movsf_hardfloat): Accept CTR-to-CTR copy.
5537         (movdf_hardfloat64):  Ditto.
5538
5539 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
5540
5541         * convert.c, gcov-io.c, libgcov.c, sched-int.h, sibcall.c,
5542         config/rs6000/linux.h, config/rs6000/rs6000-c.c: Update
5543         copyright.
5544
5545 2004-02-23  Andrew Pinski  <pinskia@physics.uc.edu>
5546
5547         PR c/14156
5548         * c-typeck.c (c_expand_return): Change check for VAR_DECL
5549         to use DECL_P instead.
5550
5551         * config/rs6000/linux.h (OS_MISSING_POWERPC64): Define.
5552         * config/rs6000/linux64.h (OS_MISSING_POWERPC64): Define.
5553
5554 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
5555
5556         * Makefile.in (opts.o): Depend on target.h.
5557         * opts.c (decode_options): Use targetm.default_short_enums
5558         instead of DEFAULT_SHORT_ENUMS.
5559         * system.h (DEFAULT_SHORT_ENUMS): Poison.
5560         * target-def.h (TARGET_DEFAULT_SHORT_ENUMS): New.
5561         (TARGET_INITIALIZER): Add TARGET_DEFAULT_SHORT_ENUMS.
5562         * target.h (gcc_target): Add default_short_enums.
5563         * config/cris/cris.h: Remove a comment about
5564         DEFAULT_SHORT_ENUMS.
5565         * config/ip2k/ip2k.h: Likewise.
5566         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Change to
5567         TARGET_DEFAULT_SHORT_ENUMS.  Update the description.
5568
5569 2004-02-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
5570             Falk Hueffner  <falk@debian.org>
5571
5572         PR c/14188
5573         * builtins.c (expand_builtin_va_arg): Emit an informative message
5574         if a trap is generated.
5575         * c-typeck.c (build_function_call): Likewise.
5576
5577 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
5578
5579         * gcov-io.c (gcov_open) [GCOV_LOCKED]: Use open + fdopen instead of
5580         fopen.
5581         * libgcov.c: Include sys/stat.h.
5582         * config/rs6000/linux.h (TARGET_HAS_F_SETLKW): Define.
5583         * config/rs6000/linux64.h (TARGET_HAS_F_SETLKW): Define.
5584         * config/sparc/linux.h (TARGET_HAS_F_SETLKW): Define.
5585         * config/sparc/linux64.h (TARGET_HAS_F_SETLKW): Define.
5586
5587 2004-02-22  Kazu Hirata  <kazu@cs.umass.edu>
5588
5589         * reorg.c: Remove comments about dead ports.
5590
5591 2004-02-22  Christopher Faylor  <cgf@redhat.com>
5592
5593         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): *Really* specify
5594         extra host object file when targetting cygwin rather than generic
5595         object files.
5596
5597 2004-02-22  Josef Zlomek  <zlomekj@suse.cz>
5598
5599         Merge from tree-ssa:
5600         2003-11-20  Richard Henderson  <rth@redhat.com>
5601
5602                 * tree-inline.c (insert_decl_map): New.
5603                 (remap_decl, remap_type, remap_block, copy_body_r,
5604                 initialize_inlined_parameters, declare_return_variable,
5605                 remap_save_expr): Use it.
5606
5607         * function.c (copy_body_r): Add mapping from id->ret_label to
5608         id->ret_label.  Revert test for ret_label.
5609
5610 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
5611
5612         * genoutput.c (process_template): Strip trailing whitespace in @
5613         templates and issue a warning if there was any.
5614
5615 2004-02-21  Christopher Faylor  <cgf@redhat.com>
5616
5617         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): Specify extra host
5618         object file when targetting cygwin.
5619         * config/i386/t-cygwin (EXTRA_GCC_OBJS): Remove definition since it is
5620         overridden by top-level Makefile.
5621
5622 2004-02-21  Roger Sayle  <roger@eyesopen.com>
5623
5624         * config/i386/i386.c (standard_80387_constant_p): Also prefer
5625         the x87's load constant instructions when optimizing for size.
5626
5627 2004-02-21  Kazu Hirata  <kazu@cs.umass.edu>
5628
5629         * combine.c (SHIFT_COUNT_TRUNCATED): Remove.
5630         * defaults.h (SHIFT_COUNT_TRUNCATED): Provide the default.
5631         * expmed.c: Assume SHIFT_COUNT_TRUNCATED is always defined.
5632         * fold-const.c: Likewise.
5633         * simplify-rtx.c: Likewise.
5634
5635 2004-02-21  Alan Modra  <amodra@bigpond.net.au>
5636
5637         * combine.c (can_combine_p): Don't ignore SETs marked with
5638         REG_EH_REGION notes.
5639         (try_combine): When attemting to fix unrecognized insns, don't
5640         split a PARALLEL that contains the original i2.
5641
5642 2004-02-21  Ziemowit Laski  <zlaski@apple.com>
5643
5644         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Refer to
5645         SUBTARGET_OPTION_TRANSLATE_TABLE for architecture-specific options.
5646         * config/i386/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): Define it.
5647         * config/rs6000/altivec.h: #error out if '-maltivec' not specified.
5648         (vector, pixel, bool): #define to __vector, __pixel and __bool.
5649         (__un_args_eq, __bin_args_eq, __tern_args_eq): Move to C-specific
5650         portion of header.
5651         (__altivec_link_error_invalid_argument): Remove prototype; will use
5652         __builtin_altivec_compiletime_error("vec_*") instead.
5653         (vec_*): Fix/complete set of available operation overloads given the
5654         existence of distinct 'vector bool ...' and 'vector pixel' types; tighten
5655         cv-correctness of pointer arguments; in C, always check for correct
5656         argument types before macro expansion.
5657         * config/rs6000/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): New macro
5658         defining Darwin/PowerPC-specific '-f[no-]altivec' and
5659         '-W[no-]altivec-long-deprecated' switches.
5660         * config/rs6000/rs6000-c (rs6000_cpu_cpp_builtins): Pre-define
5661         '__vector', '__pixel' and '__bool' macros using
5662         '__attribute__((altivec(...)))' types.
5663         * config/rs6000/rs6000.c (bool_char_type_node, bool_short_type_node,
5664         bool_int_type_node, pixel_type_node, bool_V16QI_type_node,
5665         bool_V8HI_type_node, bool_V4SI_type_node, pixel_V8HI_type_node):
5666         New type nodes.
5667         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): New, for
5668         handling '-W[no-]altivec-long-deprecated'.
5669         (rs6000_override_options): Handle '-W[no-]altivec-long-deprecated'.
5670         (rs6000_expand_binop_builtin, rs6000_expand_ternop_builtin,
5671         altivec_expand_dst_builtin): Remove casts from integer literals.
5672         (altivec_expand_builtin): Likewise; handle expansion of new
5673         '__builtin_altivec_compiletime_error' function.
5674         (rs6000_init_builtins): Initialize 'vector bool ...' and 'vector pixel'
5675         types, and make them distinct from other vector types; register
5676         '__builtin_altivec_compiletime_error' function.
5677         (print_operand): For 'P', print a full target register name instead of
5678         merely its number.
5679         (rs6000_attribute_table): Add "altivec" attribute.
5680         (rs6000_handle_altivec_attribute): New function.
5681         * config/rs6000/rs6000.h (TARGET_OPTIONS): Describe
5682         '-m[no-]-warn-altivec-long' (which '-W[no-]altivec-long-deprecated'
5683         maps to).
5684         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): Forward
5685         declare.
5686         (ALTIVEC_BUILTIN_COMPILETIME_ERROR): New built-in enumeration.
5687
5688 2004-02-20  James E Wilson  <wilson@specifixinc.com>
5689
5690         * config/ia64/ia64.md (shift_mix4left+1): Delete reload_completed
5691         check.
5692         (shift_mix4left+2): Delete redundant pattern.
5693
5694 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
5695
5696         * alias.c (OUTGOING_REGNO): Don't define the default.
5697         * builtins.c (OUTGOING_REGNO): Likewise.
5698         (INCOMING_REGNO): Likewise.
5699         (apply_args_register_offset): Always use OUTGOING_REGNO.
5700         * combine.c (OUTGOING_REGNO): Likewise.
5701         * sibcall.c (OUTGOING_REGNO): Likewise.
5702         * defaults.h (INCOMING_REGNO): Provide the default.
5703         (OUTGOING_REGNO): Likewise.
5704
5705 2004-02-21  Jan Hubicka  <jh@suse.cz>
5706
5707         * params.def (max-peeled-insns, max-completely-peeled-insns,
5708         max-once-peeled-insns): Set to 400.
5709
5710 2004-02-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5711
5712         PR c++/12007
5713         * dbxout.c (dbxout_parms): Check that DECL_RTL and DECL_INCOMING_RTL
5714         are set for parameters before outputing debugging information.
5715
5716 2004-02-20  Falk Hueffner  <falk@debian.org>
5717
5718         PR target/14201
5719         * config/alpha/alpha.md (*fix_truncsfsi_ieee): Fix typoed operand
5720         numbers.
5721
5722 2004-02-20  Per Bothner  <per@bothner.com>
5723
5724         * input.h:  Don't #include line-map.h.  It may cause link problems
5725         with undefined linemap_line_start when line-map.h is included but
5726         line-map.o is not linked, as currently happens with gengtype on
5727         compilers that don't support inline.
5728         * toplev.c:  So we do have to explicitly #include line-map.h here.
5729
5730 2004-02-20  Richard Henderson  <rth@redhat.com>
5731
5732         * doc/invoke.texi: Add -Wvariadic-macros.
5733
5734 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
5735
5736         * haifa-sched.c (sched_emit_insn): Remove.
5737         * sched-int.h: Remove the corresponding prototype.
5738
5739 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
5740
5741         Revert:
5742         2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
5743         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
5744         * system.h (DEFAULT_SHORT_ENUMS): Poison.
5745         * config/cris/cris.h: Remove a comment about
5746         DEFAULT_SHORT_ENUMS.
5747         * config/ip2k/ip2k.h: Likewise.
5748         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
5749
5750 2004-02-20  Mohan Embar  <gnustuff@thisiscool.com>
5751             Tom Tromey  <tromey@redhat.com>
5752
5753         * doc/install.texi: Moved --disable-libgcj and
5754         --with-system-zlib documentation to new section for
5755         Java-specific options.
5756         Added explicit Cross-Compiler-Specific Options subheading.
5757         Added section for Java-specific options.
5758
5759 2004-02-20  Matt Kraai  <kraai@alumni.cmu.edu>
5760
5761         * doc/install.texi (Building the Ada compiler): Remove
5762         example.
5763
5764 2004-02-20  James E Wilson  <wilson@specifixinc.com>
5765
5766         * toplev.c (dump_file_index, dump_file): Put ce3 before rnreg.
5767
5768 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
5769
5770         * gcc.c (process_command): Allow translation of the copyright
5771         symbol but not the rest of the copyright message.
5772         * gcov.c (print_version): Likewise.  Allow translation of the
5773         message about warranty.
5774
5775 2004-02-20  Hans-Peter Nilsson  <hp@axis.com>
5776
5777         * config/cris/cris.md ("*andsi_movu"): Correct parentheses in
5778         predicate.
5779         ("*andsi_clear"): Tweak constraints to not match postincrement.
5780         Adjust the predicate to exclude a volatile memory reference.
5781         ("*andhi_clear"): Ditto.  Rename from "*andhi_clear_signed".
5782         ("*andhi_clear_unsigned"): Remove, non-matching pattern.
5783
5784 2004-02-19  Matt Kraai  <kraai@alumni.cmu.edu>
5785
5786         * move-if-change: Remove.
5787         * Makefile.in (s-mlib, c-parse.y, s-check, s-gencheck)
5788         (s-specs, s-options, s-config, s-conditions, s-flags, s-codes)
5789         (s-constants, s-emit, s-recog, s-opinit, s-extract, s-peep)
5790         (s-attr, s-attrtab, s-output, s-genrtl, s-modes, s-preds)
5791         (s-gtyp-gen, s-iov): Use the top level move-if-change.
5792         * objc/Make-lang.in (objc/objc-parse.y): Likewise.
5793
5794 2004-02-19  James E Wilson  <wilson@specifixinc.com>
5795
5796         * config/i386/i386.md (doloop_end_internal): Use nonimmediate_operand
5797         for operand2.  Add condition that requires register_operand operand2
5798         before reload.
5799
5800 2004-02-19  Richard Sandiford  <rsandifo@redhat.com>
5801             Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
5802
5803         * config/mips/mips.c (mips_address_insns): Treat BLKmode specially.
5804         * config/mips/mips.md: Expand comment above unaligned loads and stores.
5805
5806 2004-02-19  Richard Henderson  <rth@redhat.com>
5807
5808         * Makefile.in (STRICT2_WARN): Add -Wno-variadic-macros.
5809         * tree.c (build0, build1, build2, build3, build4): Split out from...
5810         (build): ... here.  Call them.
5811         * tree.h (build, _buildN1, _buildN2, _buildC1, _buildC2): New.
5812
5813         * convert.c (convert_to_integer): Remove extra build argument.
5814         * tree-inline.c (expand_call_inline): Likewise.
5815
5816 2004-02-19  Richard Henderson  <rth@redhat.com>
5817
5818         * c-opts.c (warn_variadic_macros): New.
5819         (c_common_handle_option): Set it.
5820         (sanitize_cpp_opts): Copy it to cpp_opts.
5821         * c.opt (Wvariadic-macros): New.
5822         * cpplib.h (struct cpp_options): Add warn_variadic_macros.
5823         * cppinit.c (cpp_create_reader): Initialize it.
5824         * cppmacro.c (parse_params): Check it.
5825
5826 2004-02-19  David Daney <ddaney@avtrex.com>
5827
5828         PR preprocessor/14198
5829         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Add
5830         builtin_assert ("machine=mips")
5831
5832 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
5833
5834         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
5835         * system.h (DEFAULT_SHORT_ENUMS): Poison.
5836         * config/cris/cris.h: Remove a comment about
5837         DEFAULT_SHORT_ENUMS.
5838         * config/ip2k/ip2k.h: Likewise.
5839         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
5840
5841 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
5842
5843         * config/ia64/ia64.c (ia64_function_arg): In big-endian mode,
5844         when passing single SFmode quantities in general registers,
5845         put them in the high half.
5846
5847 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
5848
5849         * doc/md.texi (Standard Names): Document additional dependency on
5850         fix pattern.
5851
5852         * optabs.c (ftruncify): Remove.
5853         (expand_fix): Manually inline ftruncify above.
5854         (can_fix_p): Add FIXME note.
5855
5856 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
5857
5858         * config/rs6000/spe.md (spe_fixunssfsi2): Rename to
5859         spe_fixuns_truncsfsi2.
5860
5861         * config/rs6000/rs6000.md (fixunssfsi2): Rename to
5862         fixuns_truncsfsi2.
5863
5864 2004-02-19  Steve Ellcey  <sje@cup.hp.com>
5865
5866         * config/ia64/ia64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
5867         * testsuite/gcc.dg/20040219-1.c: New test.
5868
5869 2004-02-19  Ulrich Weigand  <uweigand@de.ibm.com>
5870
5871         * config/s390/s390.md ("*subdf3_cc", "*subdf3_cconly", "*subsf3_cc",
5872         "*subsf3_cconly"): Subtraction is not commutative.
5873
5874 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
5875
5876         * sdbout.c (preinit_symbols, sdbout_initialized): New statics.
5877         (sdbout_symbol): If called before sdbout_init, queue DECL for
5878         later and return.
5879         (sdbout_init): Set sdbout_initialized true, process decls
5880         queued earlier by sdbout_symbol.
5881         (sdbout_finish): Use size_t for index variable.
5882
5883 2004-02-19  Jeff Law  <law@redhat.com>
5884
5885         * fold-const.c (invert_truthvalue): Do not call invert_tree_comparison
5886         for unordered comparison codes.
5887
5888 2004-02-19  Ian Lance Taylor  <ian@wasabisystems.com>
5889
5890         * reload1.c (reload): Correct comment.
5891         (scan_paradoxical_subregs): Remove #if 0 and old comment.
5892         * doc/extend.texi (Local Reg Vars): Remove obsolete comment that
5893         register variables are not used by reload.
5894
5895 2004-02-19  Hans-Peter Nilsson  <hp@axis.com>
5896
5897         PR target/14209
5898         * config/cris/cris.md ("*andsi_movu", "*andhi_movu"): Tweak
5899         constraints to not match postincrement.  Adjust the predicate to
5900         exclude a volatile memory reference.
5901
5902 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
5903
5904         * config/mcore/mcore.h (ASM_OUTPUT_EXTERNAL): Remove.
5905
5906 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
5907
5908         * hooks.c (hook_void_tree_int): Remove.
5909         (hook_void_constcharptr): Likewise.
5910         (hook_int_void_0): Likewise.
5911         * hooks.h: Remove the prototypes for the above three
5912         functions.
5913         * targhooks.c (hook_bool_machine_mode_true): Remove.
5914         * targhooks.h: Remove the prototype for
5915         hook_bool_machine_mode_true.
5916
5917 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
5918
5919         * emit-rtl.c (subreg_realpart_p): Remove.
5920         (reorder_insns_with_line_notes): Likewise.
5921         (end_full_sequence): Likewise.
5922         * rtl.h: Remove the prototype for the above functions.
5923
5924 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
5925
5926         * config/arc/arc.h, config/arm/arm.h, config/frv/frv.h,
5927         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
5928         config/iq2000/iq2000.h, config/m32r/m32r.h,
5929         config/pdp11/pdp11.h, config/sparc/sparc.h,
5930         config/xtensa/xtensa.h: Remove commented-out or useless
5931         definitions of CASE_VECTOR_PC_RELATIVE.
5932
5933 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
5934
5935         * loop.c (all_sets_invariant_p): Remove.
5936
5937 2004-02-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
5938
5939         PR target/12916
5940         * config/sparc/sparc.h (NPARM_REGS): Delete.
5941         (BASE_RETURN_VALUE_REG): Likewise.
5942         (BASE_OUTGOING_VALUE_REG): Likewise.
5943         (BASE_PASSING_ARG_REG): Likewise.
5944         (BASE_INCOMING_ARG_REG): Likewise.
5945         * config/sparc/sparc.c (sparc_strict_argument_naming): Test
5946         TARGET_ARCH64, not TARGET_V9.
5947         (function_arg_slotno): Dispatch based on the mode class.
5948         Handle vector modes like floating-point modes.
5949         (function_arg_record_value_1): Handle vector types like
5950         floating-point types.
5951         (function_arg_record_value_2): Likewise.
5952         Calculate regno after mode transformation.
5953         (function_arg): Handle vector modes like floating-point modes.
5954         (function_arg_partial_nregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX.
5955         If ARCH64, do not recheck alignment.
5956         (function_arg_pass_by_reference): Reorder the conditions.
5957         (sparc_return_in_memory): Move after function_arg_padding.
5958         Implement calling conventions for vector modes.
5959         (sparc_struct_value_rtx): Move after sparc_return_in_memory.
5960         (function_value): Move scope of 'regbase'.
5961         Implement calling conventions for vector modes.
5962         (sparc_builtin_saveregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX
5963         and BASE_INCOMING_ARG_REG by SPARC_INCOMING_INT_ARG_FIRST.
5964         (sparc_va_arg): Use function_arg_pass_by_reference to test whether
5965         the argument is passed by reference.
5966         (sparc_type_code): Handle vector types.
5967
5968 2004-02-19  Alan Modra  <amodra@bigpond.net.au>
5969
5970         * function.c (assign_parms): When building decl_rtl for
5971         SPLIT_COMPLEX_ARGS, ensure inner modes of concat match outer.
5972
5973 2004-02-19  Olivier Hainque  <hainque@act-europe.fr>
5974
5975         * expr.c (is_aligning_offset): Check if we are aligning the
5976         expressions's address over BIGGEST_ALIGNMENT in bytes, not
5977         in bits.
5978
5979 2003-02-18  Matt Austern  <austern@apple.com>
5980
5981         * gcc.c (LIBGCC_SPEC): If REAL_LIBGCC_SPEC is defined, and
5982         LIBGCC_SPEC isn't, set LIBGCC_SPEC to REAL_LIBGCC_SPEC.
5983         (init_gcc_spec): Don't define or call if REAL_LIBGCC_SPEC is
5984         defined.  Instead use REAL_LIBGCC_SPEC, unmodifed, as the libgcc
5985         spec string.
5986         * doc/tm.texi (REAL_LIBGCC_SPEC): Document.
5987
5988 2004-02-18  Zack Weinberg  <zack@codesourcery.com>
5989
5990         * dwarf2out.c (loclabel_num): Move outside #ifdef
5991         DWARF2_DEBUGGING_INFO and mark with GTY(()).
5992         * config/ia64/ia64.c (struct extern_func_list,extern_func_head):
5993         Mark with GTY(()).
5994         (ia64_hpux_add_extern_decl): Save the decl, not the name string.
5995         Allocate memory with ggc_alloc.  No need to copy anything.
5996         (ia64_hpux_file_end): Update to match.
5997
5998 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
5999
6000         * config/i386/i386.c (override_options): Don't imply 3DNow! for -m64
6001         by default.
6002
6003 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
6004
6005         * config/s390/s390.md ("divmodtidi3"): Use canonical RTL.
6006         ("divmodtisi3"): Likewise.
6007         ("udivmoddi4", "udivmodtidi3"): Likewise.
6008         ("divmodsi4", "divmoddisi3"): Likewise.
6009         ("udivmodsi4", "udivmoddisi3"): Likewise.
6010         ("udivsi3", "umodsi3"): Likewise.
6011
6012 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
6013
6014         * config/s390/s390.c (s390_mainpool_start): Delete the main pool
6015         placeholder insn when chunkifying the pool.
6016
6017 2004-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6018
6019         * pa.h (PIC_OFFSET_TABLE_REGNUM): Define to INVALID_REGNUM when not
6020         generating PIC code.
6021
6022 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
6023
6024         * config/h8300/h8300-protos.h: Add a prototype for
6025         h8300_expand_branch.
6026         * config/h8300/h8300.c (h8300_expand_branch): New.
6027         * config/h8300/h8300.md (ble, bleu, bge, bgeu, blt, bltu, bgt,
6028         bgtu, beq, bne): Call h8300_expand_branch().
6029
6030 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
6031
6032         * config/h8300/h8300-protos.h: Add prototypes for
6033         h8300_hard_regno_nregs and h8300_hard_regno_mode_ok.
6034         * config/h8300/h8300.c (h8300_hard_regno_nregs): New.
6035         (h8300_hard_regno_mode_ok): Likewise.
6036         * config/h8300/h8300.h (HARD_REGNO_NREGS): Call
6037         h8300_hard_regno_nregs().
6038         (HARD_REGNO_MODE_OK): Call h8300_hard_regno_mode_ok().
6039
6040 2004-02-18  Per Bothner  <per@bothner.com>
6041
6042         * cpphash.h (struct cpp_buffer):  Restore return_at_eof field.  This
6043         partly reverts my 2003-10-01 change, because we're back to logically
6044         including <command line> inside the main line.
6045         * cpplex.c (_cpp_get_fresh_line):  Check return_at_eof field.
6046         * cppmacro.c (cpp_scan_nooutput):  Set return_at_eof of current buffer.
6047         Fixes PR preprocessor/14103.
6048
6049         * cppfiles.c (_cpp_stack_include):  When appropriate decrement
6050         line_table's highest_location, fixing LAST_SOURCE_LINE_LOCATION.
6051         (cpp_push_include):  Don't need to increment pfile's line field.
6052         * line-map.h (LAST_SOURCE_LINE_LOCATION):  Only decrement by 1.
6053
6054         * c-ppoutput.c (print struct):  New first_time field.
6055         (init_pp_output):  Set print.first_time.
6056         (pp_file_change):  Use print.first_time, rather than MAIN_FILE_P,
6057         which is set also for (say) <command line>.  Clear print.first_time.
6058
6059         * cppfiles.c (struct _cpp_file):  Comment and type for pch field
6060         does not match the code, so fix both.
6061         (should_stack_file):  Inline include_pch_p function.
6062         (include_pch_p):  Remove pointless function.
6063
6064         * cpphash.h (struct cpp_buffer):  Remove unused search_cached field.
6065
6066 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
6067
6068         * config/h8300/h8300.md (four define_peephole2's): Use
6069         h8300_regs_ok_for_stm().
6070
6071 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
6072
6073         * config/h8300/h8300-protos.h: Update the prototype for
6074         expand_a_rotate().
6075         * config/h8300/h8300.c (expand_a_rotate): Remove the first
6076         argument.
6077         * config/h8300/h8300.md: Update all callers.
6078
6079 2004-02-18  Jan Hubicka  <jh@suse.cz>
6080
6081         * simplify-rtx.c (simplify_unary_operation): Deal with logicals on
6082         floats.
6083         (simplify_binary_operation): Deal with logicals on floats.
6084
6085         * i386.md (SSE fabs splitters): Emit new patterns.
6086         (SSE cmov splitters): Likewise.
6087         (sse_andv4sf3, sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3
6088         (sse_andv2df3, sse_nandv2df3, sse_iorv2df3, sse_xorv2df3): Do not use
6089         subregs.
6090         (sse_andsf3, sse_nandsf3, sse_xorsf3): Kill.
6091         (sse_anddf3, sse_nanddf3, sse_xordf3): Kill.
6092
6093 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
6094
6095         * config/h8300/h8300.c (expand_a_rotate): Don't generate insns
6096         by hand.
6097         (output_a_rotate): Tweak a comment.
6098         * config/h8300/h8300.md (*rotlqi3_1): Change to rotlqi3_1.
6099         (*rotlhi3_1): Change to rotlhi3_1.
6100         (*rotlsi3_1): Change to rotlsi3_1.
6101
6102 2004-02-18  Richard Earnshaw  <rearnsha@arm.com>
6103
6104         PR target/13866
6105         * arm.c (load_multiple_operation): Don't insist that the source reg
6106         of a post-increment component is the same as the destination.
6107         (store_multiple_operation): Likewise.
6108
6109 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
6110
6111         * config/h8300/h8300.md: Move movsf patterns into one section
6112         of the file.
6113
6114 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
6115
6116         * cfgloop.h, cfgloopanal.c, cpplex.c, except.h, loop-init.c,
6117         loop-unroll.c, scan-decls.c, scan.h, stor-layout.c,
6118         xcoffout.c, xcoffout.h, config/arm/mmintrin.h,
6119         config/mips/linux64.h, config/pa/pa-64.h,
6120         config/rs6000/aix51.h, config/rs6000/aix52.h,
6121         config/rs6000/spe.md, config/sparc/linux.h,
6122         config/sparc/linux64.h: Update copyright.
6123
6124 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
6125
6126         * config/h8300/h8300.md: Move push patterns into one
6127         section of the file.
6128
6129 2004-02-18  Mark Mitchell <mark@codesourcery.com>
6130
6131         PR c++/11326
6132         * config/ia64/ia64.c (ia64_struct_value_rtx): Cope with NULL
6133         fntype.
6134
6135 2004-02-18  Paul Brook  <paul@codesourcery.com>
6136
6137         * rtlanal.c (rtx_varies_p): Return 0 for NULL_RTX
6138
6139 2004-02-18  Paul Brook  <paul@codesourcery.com>
6140
6141         PR debug/12934
6142         * dwarf2out.c (loc_descriptor_from_tree): Handle
6143         EXPR_WITH_FILE_LOCATION.
6144
6145 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
6146
6147         * config/i386/i386.md (zero_extendqidi2, zero_extendqidi2,
6148         testdi_1_rex64, anddi_2, xordi_1_rex64, xordi_2_rex64): Remove
6149         trailing whitespace from instructions.
6150
6151 2004-02-17  Geoffrey Keating  <geoffk@apple.com>
6152
6153         * configure.ac: When generating auto-build.h, pass
6154         --enable-languages to the sub-configure.
6155         Put quotes around ${program_transform_name} when generating
6156         name of as, ld, nm, objdump.
6157         * configure: Regenerate.
6158
6159 2004-02-17  Matt Kraai  <kraai@alumni.cmu.edu>
6160
6161         * Makefile.in (s-check, s-config, s-conditions, s-flags)
6162         (s-codes, s-constants, s-emit, s-recog, s-opinit, s-extract)
6163         (s-peep, s-attr, s-attrtab, s-output, s-genrtl, s-modes)
6164         (s-preds, s-iov): Do not depend on move-if-change.
6165
6166 2004-02-17  James E Wilson  <wilson@specifixinc.com>
6167
6168         * caller-save.c (insert_restore): Pass mem through copy_rtx.
6169         (insert_save): Likewise.
6170
6171 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
6172
6173         * config/h8300/h8300.c (h8300_emit_stack_adjustment): Fix a
6174         warning.
6175
6176 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
6177
6178         * config/h8300/h8300.md (*one_complsi2_h8300): Change to
6179         *one_cmplsi2_h8300.
6180         (*one_complsi2_h8300hs): Change to *one_cmplsi2_h8300hs.
6181
6182 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
6183
6184         * config/h8300/h8300-protos.h: Update the prototype of
6185         fix_bit_operand().
6186         * config/h8300/h8300.c (fix_bit_operand): Remove the second
6187         argument "what".
6188         * config/h8300/h8300.md: Update all callers.
6189
6190 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
6191
6192         * config/h8300/h8300.c (fix_bit_operand): Change the name of
6193         the last argument to "code" from "type".
6194
6195 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
6196
6197         * config/h8300/h8300.c: Remove an extern declaration of
6198         rtx_equal_function_value_matters.
6199
6200 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
6201
6202         * config/h8300/h8300.c (fix_bit_operand): Don't generate insns
6203         by hand.
6204         * config/h8300/h8300.md (*andqi3_1): Change to andqi3_1.
6205         (*iorqi3_1): Change to iorqi3_1.
6206         (*xorqi3_1): Change to xorqi3_1.
6207
6208 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
6209
6210         * c-common.c, cfghooks.c, rtlanal.c, varasm.c: Fix comment
6211         typos.
6212
6213 2004-02-17  Jan Hubicka  <jh@suse.cz>
6214
6215         * i386.c (x86_prologue_using_move, x86_epilogue_using_move): Disable for P4.
6216
6217 2004-02-18  Alan Modra  <amodra@bigpond.net.au>
6218
6219         PR optimization/14119
6220         * combine.c (try_combine): When attemting to fix unrecognized insns,
6221         don't delete SETs marked with REG_EH_REGION notes.
6222
6223 2004-02-17  Ulrich Weigand  <uweigand@de.ibm.com>
6224
6225         * combine.c (simplify_if_then_else): Do not replace
6226         (if_then_else (ne reg 0) (0) (const_int)) by (reg) if the
6227         modes differ.
6228
6229 2004-02017  Steven Bosscher  <stevenb@suse.de>
6230
6231         * (c-decl.c, c-semantics.c, calls.c, cgraph.c, cgraphunit.c,
6232         function.c, integrate.c, print-tree.c, toplev.c, tree-optimize.c,
6233         tree.h): Replace DECL_SAVED_INSNS with DECL_STRUCT_FUNCTION.
6234         * ada/utils.c: Likewise.
6235         * cp/decl.c: Likewise.
6236         * f/com.c: Likewise.
6237         * java/class.c: Likewise.
6238
6239 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
6240
6241         * config/h8300/h8300.md: Fix comment typos.
6242
6243 2004-02-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6244
6245         * config/mips/t-iris6gld: Renamed to ...
6246         * config/mips/t-irix-gld: ... this.
6247         * config.gcc (mips-sgi-irix6*): Reflect this
6248         (mips-sgi-irix5*): Use it with GNU ld.
6249
6250         * config/mips/irix6-crti.asm, config/mips/irix6-crtn.asm: Renamed
6251         to ...
6252         * config/mips/irix-crti.asm, config/mips/irix-crtn.asm: ... this.
6253         * config/mips/t-irix-gld: Reflect this.
6254         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
6255
6256         * config/mips/iris5gld.h: New file.
6257         * config.gcc (mips-sgi-irix5*): Use it with GNU ld.
6258         Only use collect2 without gas.
6259
6260         * config/mips/iris6.h (IRIX6_STARTFILE_SPEC, IRIX6_ENDFILE_SPEC):
6261         Renamed to IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
6262         (STARTFILE_SPEC, ENDFILE_SPEC, SUBTARGET_EXTRA_SPECS): Reflect this.
6263         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
6264
6265         * config/mips/iris6.h (SUBTARGET_EXTRA_SPECS): Moved ...
6266         * config/mips/iris5.h: ... here.
6267
6268         * config/mips/iris5.h (STARTFILE_SPEC, ENDFILE_SPEC): Renamed to
6269         IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
6270         (STARTFILE_SPEC, ENDFILE_SPEC): Define.
6271
6272         * config/mips/iris5gas.h (STARTFILE_SPEC, ENDFILE_SPEC): Simplify
6273         using irix_startfile_spec, irix_endfile_spec.
6274
6275 2004-02-16  Gunther Nikl  <gni@gecko.de>
6276
6277         * config/m68k/m68k.c: Remove obsolete support for HPUX_ASM.
6278
6279 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
6280
6281         * config/h8300/h8300.c (h8300_expand_prologue): Don't generate
6282         insns by hand.
6283
6284 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6285
6286         * cfghooks.c (split_edge): Speed up updating of dominators.
6287
6288 2004-02-17  Mark Mitchell  <mark@codesourcery.com>
6289
6290         PR c++/11326
6291         * c-common.c (flag_abi_version): Remove.
6292         * c-common.h (flag_abi_version): Likewise.
6293         * c-opts.c (c_common_handle_option): Remove OPT_fabi_version case.
6294         * c.opt (fabi-version): Remove.
6295         * calls.c (expand_call): Always pass a function type to
6296         struct_value_rtx.  Use convert_memory_address.
6297         * common.opt (fabi-version): Add it.
6298         * flags.h (flag_abi_version): Likewise.
6299         (abi_version_at_least): New macro.
6300         * opts.c (common_handle_option): Add OPT_fabi_version.
6301         * toplev.c (flag_abi_version): Define it.
6302         * config/ia64/ia64.c (ia64_struct_retval_addr_is_first_parm_p):
6303         New function.
6304         (ia64_output_mi_thunk): Use it.
6305         (ia64_struct_value_rtx): Likewise.
6306
6307 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
6308
6309         * config/h8300/h8300.c (h8300_emit_stack_adjustment):
6310         Don't generate insns by hand.
6311
6312 2004-02-17  Andrew Pinski  <pinskia@physics.uc.edu>
6313
6314         PR c++/14178
6315         * doc/invoke.texi (fabi-version): The default is 2 now.
6316
6317 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6318
6319         * loop-iv.c: New file.
6320         * Makefile.in (loop-iv.o): New.
6321         * basic_block.h (FOR_BB_INSNS, FOR_BB_INSNS_REVERSE): New macros.
6322         * cfgloop.c (fill_sons_in_loop, get_loop_body_in_dom_order,
6323         num_loop_branches): New functions.
6324         * cfgloop.h (get_loop_body_in_dom_order, num_loop_branches,
6325         iv_analysis_loop_init, iv_get_reaching_def, iv_analyse, get_iv_value,
6326         find_simple_exit, iv_number_of_iterations, iv_analysis_done,
6327         get_simple_loop_desc, free_simple_loop_desc): Declare.
6328         (simple_loop_desc): New inline function.
6329         (struct rtx_iv, struct niter_desc): New.
6330         * cfgloopmanip.c (loopify): Specify semantics more precisely.
6331         * expr.c (force_operand): Handle subregs of expressions created by
6332         loop unroller.
6333         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Move
6334         parts of the initialization to toplev.c
6335         * loop-unroll.c (loop_exit_at_end_p): New.
6336         (unroll_and_peel_loops): Call iv_analysis_done.
6337         (decide_peel_once_rolling, decide_peel_completely,
6338         decide_unroll_stupid, decide_unroll_constant_iterations,
6339         decide_unroll_runtime_iterations, decide_peel_simple,
6340         peel_loop_simple, unroll_loop_stupid, unroll_loop_constant_iterations,
6341         unroll_loop_runtime_iterations): Use new simple loop analysis.
6342         * loop-unswitch.c (compare_and_jump_seq): New.
6343         (may_unswitch_on_p): Renamed to ...
6344         (may_unswitch_on): Use new iv analysis.
6345         (reversed_condition): Export.
6346         (unswitch_single_loop, unswitch_loop): Use new iv analysis.
6347         * predict.c (estimate_probability): Use new simple loop analysis.
6348         * rtl.h (get_mode_bounds, reversed_condition,compare_and_jump_seq,
6349         canon_condition, simplify_using_condition): Declare.
6350         * stor-layout.c (get_mode_bounds): New.
6351         * toplev.c (rest_of_handle_loop2): Some parts of
6352         initialization/finalization moved here from loop-init.c.
6353
6354 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
6355
6356         * config/h8300/h8300.h (FIXED_REGISTERS): Add the soft frame
6357         pointer.
6358         (CALL_USED_REGISTERS): Likewise.
6359         (REG_ALLOC_ORDER): Likewise.
6360         (REG_CLASS) <GENERAL_REGS>: Likewise.
6361
6362 2004-02-16  Geoffrey Keating  <geoffk@apple.com>
6363
6364         * doc/md.texi (Insn Canonicalizations): Document left-chaining
6365         in associative operators.
6366         * rtlanal.c (commutative_operand_precedence): Create some new
6367         variables.  Prefer a commutative operand on the left, then
6368         binary expressions, then NEG and NOT.
6369
6370 2004-02-16  Matthias Klose  <doko@debian.org>
6371
6372         * config/t-slibgcc-elf-ver: Define SHLIB_NAME and SHLIB_SONAME
6373         in terms of SHLIB_SOVERSION.
6374         * config/m68k/t-slibgcc-elf-ver: New file.
6375         * config/pa/t-slibgcc-elf-ver: New file.
6376         * config.gcc (m68k-linux, parisc-linux): Use them when not
6377         sjlj exceptions are not configured.
6378
6379 2004-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
6380
6381         * config/sparc/sparc.c (get_pc_symbol_name): Mark with GTY(()).
6382
6383 2004-02-16  Zack Weinberg  <zack@codesourcery.com>
6384
6385         * sdbout.c (sdb_debug_hooks): Correct the type_decl entry.
6386
6387 2004-02-16  Joseph S. Myers  <jsm@polyomino.org.uk>
6388
6389         * doc/sourcebuild.texi: Mention backends.html.
6390
6391 2004-02-16  Kazu Hirata  <kazu@cs.umass.edu>
6392
6393         * c-decl.c, c-ppoutput.c, cpphash.h, cpplib.h, dbxout.c,
6394         line-map.c, line-map.h, var-tracking.c: Fix comment
6395         formatting.
6396
6397 2004-02-16  Richard Henderson  <rth@redhat.com>
6398
6399         * cse.c (cse_insn): Don't lose REG_NON_LOCAL_GOTO note.
6400
6401         * fold-const.c (operand_equal_p): Fix VECTOR_CST comparison.
6402
6403 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
6404
6405         * config/h8300/h8300.md: Remove unnecessary parallels from
6406         all define_insn and define_split patterns.
6407
6408 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
6409
6410         * config/h8300/h8300.md: Remove explicit (set_attr "cc"
6411         "clobber").
6412
6413 2004-02-15  Bernardo Innocenti  <bernie@develer.com>
6414
6415         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Restore support for
6416         '%#'.
6417
6418 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
6419
6420         * config/ia64/ia64.c, config/mips/mips.c,
6421         config/mmix/mmix-modes.def: Fix comment typos.
6422
6423 2004-02-15  Roger Sayle  <roger@eyesopen.com>
6424
6425         * c-common.h (GET_DIRECTIVE_LINE): Remove unused macro.
6426         (get_directive_line): Remove unused function prototype.
6427
6428 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
6429
6430         * tree-inline.c (copy_body_r): Do not replace ret_label.
6431
6432 2004-02-14  Jan Hubicka  <jh@suse.cz>
6433
6434         * i386.c (x86_four_jump_limit): New variable.
6435         (k8_avoid_jump_misspredicts): Rename to ...
6436         (ix86_avoid_jump_misspredicts): .. this one.
6437         (ix86_pad_returns): Break out from ...
6438         (ix86_reorg): ... this one; do ix86_avoid_jump_misspredicts when asked
6439         to.
6440         * i386.h (TARGET_FOUR_JUMP_LIMIT): New macro.
6441
6442 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
6443
6444         * emit-rtl.c (set_decl_incoming_rtl): Check whether the 0th element of
6445         PARALLEL is NULL.
6446
6447 2004-02-14  Per Bothner  <per@bothner.com>
6448
6449         * fix-header.c (line_table):  Move local variable in main to global.
6450         * scan.h (line_table):  Use it.
6451         * scan-decls.c (scan_decls):  Need to call linemap_lookup on token's
6452         line (recently renamed to src_loc) before calling recognized_function.
6453
6454 2004-02-14  Matt Kraai  <kraai@alumni.cmu.edu>
6455
6456         * Makefile.in: Fix comment typos.
6457
6458 2004-02-14  Olivier Hainque  <hainque@act-europe.fr>
6459
6460         * loop.c (check_dbra_loop): Use gen_int_mode instead of GEN_INT
6461         for start_value when it is directly moved into reg, and factorize
6462         the retrieval of GET_MODE (reg).
6463
6464 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
6465
6466         * config/mips/mips-protos.h (mips_load_got_page): Delete.
6467         (mips_load_got_global): Delete.
6468         (mips_gotoff_page): Declare.
6469         * config/mips/mips.md (UNSPEC_LOAD_GOT): New constant.
6470         (*xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i): Build an
6471         UNSPEC_LOAD_GOT pattern rather than a MEM.
6472         (*load_got[sd]i): New patterns.
6473         * config/mips/mips.c (mips_got_alias_set, mips_load_got): Delete.
6474         (mips_load_got_page, mips_load_got_global): Delete.
6475         (mips_gotoff_page): New function.
6476         (override_options): Don't initialize mips_got_alias_set.
6477
6478 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
6479
6480         * config/mips/mips.h (MASK_DEBUG_[ABEFI], TARGET_DEBUG_[ABEFI]_MODE)
6481         (TARGET_MIPS4100, TARGET_MIPS4300, TARGET_MIPS4KC, TARGET_MIPS5KC)
6482         (TARGET_SB1, TUNE_SB1, TUNE_SR71K, BIGGEST_MAX_ARGS_IN_REGISTERS)
6483         (GO_PRINTF, GO_PRINTF2, GO_DEBUG_RTX, DFMODE_NAN, SFMODE_NAN): Delete.
6484         (TARGET_SWITCHES): Remove MASK_DEBUG_[ABEFI].
6485         * config/mips/mips.c: Fix some overly-long lines.
6486         (SINGLE_WORD_MODE_P, PIC_OFFSET_TABLE_MASK): Delete.
6487         (init_cumulative_args): Remove TARGET_DEBUG_E_MODE handling.
6488
6489 2004-02-13  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6490
6491         * configure.ac: Search for as, ld below libexec/gcc.
6492         * configure: Regenerate.
6493
6494 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
6495
6496         * config/arm/mmintrin.h (_mm_setwcx): Reverse arguments in call to
6497         __builtin_arm_setwcx ().
6498         * config/arm/arm.c (arm_expand_builtin): Generate operands
6499         correctly and reverse their order in call to gen_iwmmxt_tmcr ().
6500
6501 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
6502
6503         * config/arm/arm.c (bdesc_2arg): Correct builtin names "wmulsh"
6504         and "wmuluh" to "wmulsm" and "wmulum", respectively.
6505         * config/arm/arm.h (enum arm_builtins): Rename enumerators to
6506         ARM_BUILTIN_WMULSM and ARM_BUILTIN_WMULUM.
6507         * config/arm/mmintrin.h (_mm_mulhi_pi16): Update intrinsic call.
6508         (_mm_mulhi_pu16): Likewise.
6509
6510 2004-02-13  Zack Weinberg  <zack@codesourcery.com>
6511
6512         * xcoffout.c (xcoff_assign_fundamental_type_number): Check
6513         DECL_NAME != 0 before dereferencing.
6514
6515 2004-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
6516
6517         * config/s390/s390-protos.h (s390_output_symbolic_const): Remove.
6518         (s390_output_addr_const_extra): Declare.
6519         (s390_output_pool_entry): Remove FILE * argument.
6520         * config/s390/s390.c (s390_output_symbolic_const): Remove.
6521         (s390_output_addr_const_extra): New function.
6522         (print_operand_address): Call output_addr_const instead of
6523         s390_output_symbolic_const.
6524         (print_operand): Likewise.
6525         (s390_output_pool_entry): Use assemble_integer for symbolic constants.
6526         Remove FILE * argument.
6527         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Define.
6528         * config/s390/s390.md ("*pool_entry"): Adapt s390_output_pool_entry
6529         call.
6530
6531 2004-02-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6532
6533         * cfgloopanal.c (mark_irreducible_loops): Rewriten.
6534         (struct edge, struct vertex, struct graph): New.
6535         (dump_graph, new_graph, add_edge, dfs, check_irred, for_each_edge,
6536         free_graph): New functions.
6537
6538 2004-02-12  Chris Demetriou  <cgd@broadcom.com>
6539
6540         * config/mips/mips.md (casesi_internal, casesi_internal_di):
6541         Use ".set macro" to avoid warnings about multi-instruction
6542         macros, since they're intentional.
6543
6544 2004-02-12  Geoffrey Keating  <geoffk@apple.com>
6545
6546         * config/darwin.h: Add include guards.  Remove old, now incorrect,
6547         comment about STANDARD_EXEC_PREFIX.
6548
6549         * Makefile.in (install-man): Use $(CPP_INSTALL_NAME) and
6550         $(GCOV_INSTALL_NAME) to install manpages.  Remove generic rule
6551         for installing .1 manpages.  Add rules for installing cpp
6552         and gcov manpages under their installed names.
6553
6554 2004-02-12  Alexandre Oliva  <aoliva@redhat.com>
6555
6556         * configure.ac (gcc_cv_ld): Don't set to LD if target is not
6557         host, but try LD_FOR_TARGET first.
6558         * configure: Rebuilt.
6559
6560 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
6561
6562         * dbxout.c: Move declaration of dbxout_type_decl outside
6563         #ifdef DBX_DEBUGGING_INFO.
6564         * c-parse.in: Don't give the asmdef production a type.
6565
6566 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
6567
6568         * debug.h (struct gcc_debug_hooks): Add type_decl field.
6569         (debug_nothing_tree_int): Prototype.
6570         (dwarf_debug_hooks): Delete, unused.
6571         * debug.c (do_nothing_debug_hooks): Update.
6572         (debug_nothing_tree_int): New function.
6573         * langhooks.h (struct lang_hooks_for_decls):
6574         Remove builtin_type_decls field.
6575         * langhooks-def.h (LANG_HOOKS_BUILTIN_TYPE_DECLS): Delete.
6576         (LANG_HOOKS_DECLS): Update.
6577         * toplev.c (rest_of_decl_compilation, rest_of_type_compilation):
6578         Use debug_hooks->type_decl.
6579         * dbxout.c (preinit_symbols): New static.
6580         (dbx_debug_hooks, xcoff_debug_hooks): Update.
6581         (dbxout_init): Don't call DBX_OUTPUT_STANDARD_TYPES or
6582         lang_hooks.decls.builtin_type_decls.  Do scan preinit_symbols
6583         for symbols to output.
6584         (dbxout_type_decl): New function.
6585         (dbxout_symbol): If called before dbxout_init has run, queue
6586         the symbol for later.  Apply DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER
6587         to TYPE_DECLs before emitting them.
6588         * xcoffout.c (assign_type_number): Delete.
6589         (xcoff_type_numbers): New static table.
6590         (xcoff_assign_fundamental_type_number): New function.
6591         * xcoffout.h: Define DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER, not
6592         DBX_OUTPUT_STANDARD_TYPES.  Remove unnecessary #ifdefs.
6593         * sdbout.c: Include varray.h.
6594         (deferred_global_decls): New static.
6595         (sdb_debug_hooks): Update.
6596         (sdbout_global_decl): If we can't emit something right now,
6597         remember it in deferred_global_decls.
6598         (sdbout_finish): Just scan deferred_global_decls; don't call getdecls.
6599         (sdbout_init): Initialize deferred_global_decls.
6600         * Makefile.in: Update dependencies of sdbout.o.
6601         * dwarf2out.c (dwarf2out_type_decl): New function.
6602         (dwarf2_debug_hooks): Update.
6603         * vmsdbgout.c (vmsdbg_debug_hooks): Update.
6604         * c-decl.c (getdecls): Just return 0.
6605         (check_for_loop_decls): Don't use getdecls.
6606         (record_builtin_type): Call debug_hooks->type_decl on the TYPE_DECL.
6607         * c-objc-common.c (c_objc_common_finish_file): Don't use getdecls.
6608
6609 2004-02-12  Ulrich Weigand  <uweigand@de.ibm.com>
6610
6611         * config/s390/s390.c (s390_sched_reorder2): Remove.
6612         (TARGET_SCHED_REORDER2): Do not redefine.
6613
6614 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
6615
6616         * c-parse.in (maybe_type_qual): Delete.
6617         (maybe_volatile, simple_asm_expr, asmdef, asm_stmt)
6618         (asm_argument): New grammar rules.
6619         (extdef_1): Use asmdef.
6620         (maybeasm): Move down with other asm rules; use simple_asm_expr.
6621         (xexpr): Move up with other expression rules.
6622         (stmt): Use asm_stmt.
6623
6624         * c-typeck.c (build_asm_expr): New function - body mostly
6625         pulled from build_asm_stmt.
6626         (build_asm_stmt): Just handle tacking on the volatile qualifier.
6627         * c-tree.h (build_asm_expr, build_asm_stmt): Update prototypes.
6628
6629 2004-02-12  Richard Sandiford  <rsandifo@redhat.com>
6630
6631         PR bootstrap/13617
6632         * config/mips/mips-protos.h (mips_output_aligned_decl_common): Declare.
6633         (mips_declare_object): Make variadic.
6634         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Use
6635         mips_output_aligned_decl_common.
6636         * config/mips/mips.c (mips_output_aligned_decl_common): New function.
6637         (mips_declare_object): Make variadic.
6638
6639 2004-02-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6640
6641         * function.c (update_epilogue_consts): Teach about binary operations.
6642
6643         * emit-rtl.c (set_mem_attributes_minus_bitpos): Don't kill
6644         previous MEM_VOLATILE in REF.
6645         * function.c (fixup_var_refs): Save volatile_ok and set to 1.
6646         * expr.c (emit_block_move_via_movstr): Save and restore volatile_ok.
6647
6648 2004-02-12  Gunther Nikl  <gni@gecko.de>
6649
6650         * config.gcc: Restore support for m68k-openbsd.
6651
6652 2004-02-12  Jan Hubicka  <jh@suse.cz>
6653
6654         * tree-optimize.c (tree_rest_of_compilation): Do not release
6655         DECL_ARGUMENTS.
6656
6657 2004-02-11  Matt Kraai  <kraai@alumni.cmu.edu>
6658
6659         * doc/install.texi: Fix the spelling of "explicitly".
6660
6661 2004-02-11  Eric Christopher  <echristo@redhat.com>
6662
6663         * cppcharset.c (_cpp_interpret_string_notranslate): Rename and
6664         duplicate argument structure of cpp_interpret_string.
6665         * cpphash.h: Move prototype...
6666         * cpplib.h: Here.
6667         * cpplib.c: Fix calls to match new function signature.
6668
6669 2004-02-11  Joseph S. Myers  <jsm@polyomino.org.uk>
6670
6671         PR c/456
6672         * cppexp.c (num_binary_op): Don't allow comma operators in #if
6673         constant expressions at all outside C99 mode if pedantic.
6674
6675 2004-02-11  Uros Bizjak  <uros@kss-loka.si>
6676
6677         * optabs.h (enum optab_index): Add new OTI_log10 and OTI_log2.
6678         (log10_optab, log2_optab): Define corresponding macros.
6679         * optabs.c (init_optabs): Initialize log10_optab and log2_optab.
6680         * genopinit.c (optabs): Implement log10_optab and log2_optab
6681         using log10?f2 and log2?f2 patterns.
6682         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG10{,F,L}
6683         using log10_optab, and BUILT_IN_LOG2{,F,L} using log2_optab.
6684         (expand_builtin): Expand BUILT_IN_LOG10{,F,L} and BUILT_IN_LOG2{,F,L}
6685         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
6686
6687         * config/i386/i386.md (log10sf2, log10df2, log10xf2, log2sf2,
6688         log2df2, log2xf2): New patterns to implement log10, log10f, log10l,
6689         log2, log2f and log2l built-ins as inline x87 intrinsics.
6690
6691 2004-02-11  Richard Henderson  <rth@redhat.com>
6692
6693         PR target/1532
6694         * flow.c (insn_dead_p): A clobber of a dead hard register is a
6695         dead insn after reload.
6696
6697 2004-02-11  Ulrich Weigand  <uweigand@de.ibm.com>
6698
6699         * tree.h (frame_base_decl): Add GTY marker.
6700         * var-tracking.c (frame_base_decl): Likewise.
6701
6702 2004-02-11  Daniel Berlin  <dberlin@dberlin.org>
6703
6704         * dwarf2out.c (output_loc_list): Remove no longer necessary, and now
6705         incorrect, hunk.
6706         (add_location_or_const_value_attribute): Use text_section_label,
6707         not TEXT_SECTION_NAME.
6708
6709 2004-02-11  Per Bothner  <per@bothner.com>
6710
6711         Represent column numbers using line-map's source_location.
6712         The "next available source_location" is now managed internally by
6713         line-maps.c rather than by clients.
6714         * line-map.h (struct line_map):  New field column_bits.
6715         <from_line>:  Rename field to start_location.
6716         (struct line_maps):  New fields highest_location and max_column_hint.
6717         (linemap_check_files_exited):  New declaration.
6718         (linemap_line_start):  New declaration.
6719         (linemap_add):  Remove from_line parameter; use highest_location field.
6720         (SOURCE_LINE, LAST_SOURCE_LINE):  Modify to use column_bits.
6721         (SOURCE_COLUMN, LAST_SOURCE_LINE_LOCATION):  New macros.
6722         (CURRENT_LINE_MAP):  Remove macro.
6723         (linemap_position_for_column):  New inline function.
6724         * line-map.c (linemap_init):  Clear new fields.
6725         (linemap_check_files_exited):  New function, extracted from ...
6726         (linemap_free):  Use linemap_check_files_exited.
6727         (linemap_add):  Remove from_line parameter.  Various updates.
6728         (linemap_line_start):  New function.
6729         (linemap_lookeup):  Update for new field names.
6730         * cpphash.h (struct cpp_reader) <map>:  Field removed.  Because
6731         linemap_position_for_column may unpredictably change the current map,
6732         it is cleaner and simpler for us to not cache it in cpp_reader.
6733         (struct cpp_buffer):  New sysp field.
6734         Changed warned_cplusplus_comments and from_stage3 to bitfields.
6735         * cppinit.c (cpp_read_min_file):  pfile->map no longer exists.
6736         * cpplib.c (do_line, do_linemarker, _cpp_do_file_change):  Get
6737         current map using linemap_lookup.
6738         (do_linemarker):  Also set buffer's sysp field.
6739         (destringize_and_run):  No longer need to decrement current line.
6740         * cppfiles.c (_cpp_stack_file):  Set sysp from and in buffer.
6741         (search_path_head, open_file_failed):  Use buffer's sysp.
6742         (cpp_make_system_header):  Get current map using linemap_lookup.
6743         Also set buffer's sysp flag.
6744         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use linemap_lookup.
6745         * cpphash.h (CPP_INCREMENT_LINE):  New macro.
6746         (struct cpp_buffer):  Moved fields saved_cur, saved_rlimit to ...
6747         (struct cpp_reader):  ... and adding saved_line_base field.
6748         * cpptrad.c (_cpp_overlay_buffer, _cpp_remove_overlay):
6749         Update accordingly.  Don't adjust line.
6750         (_cpp_scan_out_logical_line):  Use CPP_INCREMENT_LINE.
6751         * cpphash.c (CPP_IN_SYSTEM_HEADER):  Replaced macro by ...
6752         (cpp_in_system_header):  ... new inline function, using buffer's sysp.
6753         * cpperror.c (_cpp_begin_message):  Update to use cpp_in_system_header.
6754         * cpplex.c (_cpp_lex_direct):  Likewise.
6755         * cppmacro.c (_cpp_builtin_macro_text):  Likewise.
6756         * cppmacro.c (_cpp_create_definition):  Use buffer's sysp field.
6757         * cpplib.h (struct cpp_token):  Rename line field to src_loc.
6758         Remove col field as it is now subsumed by src_loc.
6759         * cpperror.c:  Update various field, parameter, and macro names.
6760         (print_location):  If col==0, try SOURCE_COLUMN of line.
6761         (cpp_error):  Use cur_token's src_loc field, rather than line+col.
6762         * cpplib.c (do_diagnostic):  Token's src_loc fields replaces line+col.
6763         * cpplex.c (_cpp_process_line_notes, _cpp_lex_direct,
6764         _cpp_skip_block_comment):  Use CPP_INCREMENT_LINE.
6765         (_cpp_temp_token):  Replace cpp_token's line+col fields by src_loc.
6766         (_cpp_get_fresh_line):  Don't need to adjust line for missing newline.
6767         (_cpp_lex_direct):  Use linemap_position_for_column.
6768         * c-ppoutput.c (maybe_print_line, print_line):  Don't take map
6769         parameter.  Instead get it from the line_table global.  Adjust callers.
6770         (print):  Remove map field.  Replace line field to src_line.
6771         (init_pp_output, account_for_newlines, maybe_print_line):  Adjust.
6772         (cb_line_change):  Use SOURCE_COLUMN.  Minor optimizations.
6773         (pp_file_change):  Use MAIN_FILE_P since we cannot checked print.map.
6774         Use LAST_SOURCE_LINE_LOCATION to "catch up" after #include.
6775         * cpptrad.c (copy_comment):  Rename variable.
6776         * c-lex.c (map):  Remove static variable, for same reason we removed
6777         cpp_reader's map field.
6778         (cb_line_change, cb_def_pragma, cb_define, cb_undef):  Hence we need
6779         to call linemap_lookup.
6780         (cb_line_change):  Token's line field replaced by src_loc.
6781         (fe_file_change):  Use MAINFILE_P and LAST_SOURCE_LINE macros.
6782         Don't save new_map.
6783
6784         * cpphash.h, cpperror.c, cpplib.h:  Some renames of fileline to
6785         source_location.
6786
6787 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
6788
6789         * config/rs6000/altivec.md (*movv4si_internal): At least one
6790         operand must be register_operand.
6791         (*movv8hi_internal1): Likewise.
6792         (*movv16qi_internal1): Likewise.
6793         (*movv4sf_internal1): Likewise.
6794
6795 2004-02-10  Aldy Hernandez  <aldyh@redhat.com>
6796
6797         * config/rs6000/spe.md ("*movv2si_internal"): Check for register
6798         operand.
6799         (movv4hi_internal): Same.
6800         (movv2sf_internal): Same.
6801         (movv1di_internal): Same.
6802
6803 2004-02-11  Thiemo Seufer  <seufer@csv.ica.uni-stuttgart.de>
6804
6805         * config/mips/mips.h (TARGET_OLDABI): Define. Use TARGET_NEWABI and
6806         TARGET_OLDABI consistently.
6807         * config/mips/mips.c (function_arg,mips_setup_incoming_varargs,
6808         mips_va_arg,override_options,compute_frame_size,
6809         mips_initial_elimination_offset,mips16_fp_args,build_mips16_call_stub
6810         ,mips_return_in_memory,mips_strict_argument_naming): Use TARGET_NEWABI
6811         and TARGET_OLDABI consistently.
6812         * config/mips/mips.md (exception_receiver): Likewise.
6813         * config/mips/linux64.h: Likewise.
6814
6815 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
6816
6817         * gcc/config/rs6000/rs6000.c (rs6000_override_options)
6818         Set AltiVec ABI and vrsave as default for ppc64 linux.
6819         (init_cumulative_args): Post error, if try to return
6820         value in AltiVec register without enable AltiVec.
6821         (function_arg_advance): Ditto for passing arguments.
6822
6823 2004-02-11  Richard Sandiford  <rsandifo@redhat.com>
6824
6825         * emit-rtl.c (mark_label_nuses): Check that a LABEL_REF refers to
6826         a label before updating its usage count.
6827
6828 2004-02-10  Matt Kraai  <kraai@alumni.cmu.edu>
6829
6830         * doc/install.texi: Remove extra cd.
6831
6832 2004-02-10  Ziemowit Laski  <zlaski@apple.com>
6833
6834         * c-common.c (vector_size_helper): Remove; call
6835         reconstruct_complex_type() instead.
6836         * tree.c (reconstruct_complex_type): New function
6837         (formerly vector_size_helper() in c-common.c).
6838         (make_vector): Make externally visible.
6839         * tree.h (reconstruct_complex_type, make_vector): Add prototypes.
6840
6841 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
6842
6843         * config/h8300/h8300-protos.h: Add a prototype for
6844         h8300_regs_ok_for_stm.
6845         * config/h8300/h8300.c (h8300_regs_ok_for_stm): New.
6846         * config/h8300/h8300.md (stm_h8300s_2_advanced,
6847         stm_h8300s_2_normal, stm_h8300s_2, stm_h8300s_3_advanced,
6848         stm_h8300s_3_normal, stm_h8300s_3, stm_h8300s_4_advanced,
6849         stm_h8300s_4_normal, stm_h8300s_4, ldm_h8300s_2_advanced,
6850         ldm_h8300s_2_normal, ldm_h8300s_2, ldm_h8300s_3_advanced,
6851         ldm_h8300s_3_normal, ldm_h8300s_3, ldm_h8300s_4_advanced,
6852         ldm_h8300s_4_normal, ldm_h8300s_4): Use
6853         h8300_regs_ok_for_stm().
6854
6855 2004-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
6856
6857         PR c/14088
6858         * real.c (real_from_string): Look for 'X' as well as 'x' in
6859         hexfloat strings.
6860
6861 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
6862
6863         * config/h8300/h8300.md: Remove an incorrect comment about
6864         peephole2.  Add comments.
6865
6866 2004-02-10  Josef Zlomek  <zlomekj@suse.cz>
6867
6868         PR/14058
6869         * emit-rtl.c (set_decl_incoming_rtl): New.
6870         * tree.h (set_decl_incoming_rtl): New.
6871         * function.c (assign_parms): Use set_decl_incoming_rtl for setting
6872         DECL_INCOMING_RTL.
6873         * ada/misc.c (adjust_decl_rtl): Likewise.
6874
6875 2004-02-10  Per Bothner  <per@bothner.com>
6876
6877         * c-opts.c (c_common_post_options):   Don't emit working directory
6878         in cpp output if -P was specified.
6879
6880 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
6881
6882         PR c/14092
6883         * fold-const.c (fold) <NEGATE_EXPR>: Convert result of
6884         negate_expr back to the original type.
6885
6886 2004-02-10  Alan Modra  <amodra@bigpond.net.au>
6887
6888         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Don't
6889         bump retaddr here.
6890
6891 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
6892
6893         * rtl.h (schedule_insns, schedule_ebbs, fix_sched_param,
6894         gen_lowpart_SUBREG): Move under the file in which they
6895         are actually declared.
6896
6897 2004-02-10  Arnaud Charlet  <charlet@act-europe.fr>
6898
6899         * doc/sourcebuild.texi: Add libada documentation.
6900
6901         * doc/install.texi: Update documentation on Ada build, now
6902         that the GNAT lib and tools are built automatically.
6903
6904 2004-02-10  Richard Sandiford  <rsandifo@redhat.com>
6905
6906         * config/mips/mips.h (TARGET_GPWORD): Return false for TARGET_NEWABI
6907         && TARGET_IRIX.
6908
6909 2004-02-09  Ziemowit Laski  <zlaski@apple.com>
6910
6911         * objc/objc-act.c (get_super_receiver): Move '#ifdef OBJCPLUS'
6912         boundaries outside build_component_ref() call (a macro in ObjC++).
6913
6914 2004-02-09  Bob Wilson  <bob.wilson@acm.org>
6915
6916         * config/xtensa/xtensa-protos.h (xtensa_copy_incoming_a7): Update.
6917         (init_cumulative_args): Likewise.
6918         (a7_overlap_mentioned_p): Delete prototype.
6919         * config/xtensa/xtensa.c (struct machine_function): Replace
6920         incoming_a7_copied field with need_a7_copy and vararg_a7 flags.
6921         Add set_frame_ptr_insn field.
6922         (xtensa_emit_move_sequence): Update call to xtensa_copy_incoming_a7.
6923         (xtensa_copy_incoming_a7): Rewrite to check need_a7_copy flag and check
6924         if the operand is an argument in a7.  If so, copy a7 to a new pseudo
6925         at the function entry and replace the operand with the pseudo.
6926         (init_cumulative_args): Remove unused arguments.  Add new "incoming"
6927         argument and record this flag in CUMULATIVE_ARGS.
6928         (function_arg): Remove result_mode and special-case code to handle
6929         arguments in a7.  Instead, set need_a7_copy flag when there is an
6930         incoming argument in a7.
6931         (xtensa_expand_prologue): Remove code to search for set_frame_ptr insn
6932         and use the value recorded in cfun->machine->set_frame_ptr_insn.
6933         (xtensa_builtin_saveregs): Check for negative gp_left value.  Set
6934         need_a7_copy and vararg_a7 flags.  Use move_block_from_reg instead of
6935         special-case code.
6936         (a7_overlap_mentioned_p): Delete.
6937         * config/xtensa/xtensa.h (CUMULATIVE_ARGS): Add "incoming" flag.
6938         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Remove useless
6939         arguments to init_cumulative_args and pass "incoming" flag instead.
6940         (BLOCK_REG_PADDING): Delete.
6941         * config/xtensa/xtensa.md (movdi, movsf, movdf): Remove unnecessary
6942         checks for reload_in_progress and reload_completed.  Update calls to
6943         xtensa_copy_incoming_a7.
6944         (ashlsi3): Rename existing insn to ashlsi3_internal.  Add expander
6945         to call xtensa_copy_incoming_a7.
6946
6947 2004-02-09  DJ Delorie  <dj@redhat.com>
6948
6949         * config/i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): No
6950         longer modify standard_exec_prefix, standard_bindir_prefix, or
6951         standard_startfile_prefix.
6952
6953 2004-02-09  James E Wilson  <wilson@specifixinc.com>
6954
6955         PR c++/11295
6956         * c-common.c (c_expand_expr, case STMT_EXPR): Change expand_expr call
6957         to expand_expr_real call, and pass in alt_rtl as last argument.
6958
6959         PR libstdc++/5625
6960         * builtin-types.def (BT_WORD, BT_FN_WORD_PTR): New.
6961         * builtins.c (expand_builtin): Handle BUILT_IN_EXTEND_POINTER.
6962         * builtins.def (BUILT_IN_EXTEND_POINTER): New.
6963         * except.c (expand_builtin_extend_pointer): New.
6964         * except.h (expand_builtin_extend_pointer): Declare.
6965
6966 2004-02-09  David Edelsohn  <edelsohn@gnu.org>
6967
6968         * config/rs6000/rs6000.c (rs6000_emit_move): Remove splitting slow
6969         unaligned loads and stores.
6970
6971 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6972
6973         * config/mips/iris5.h (BSS_SECTION_ASM_OP): Define.
6974         * config/mips/iris6.h (BSS_SECTION_ASM_OP): Undef.
6975
6976         * config/mips/iris6.h (TARGET_ASM_NAMED_SECTION): Moved ...
6977         * config/mips/iris5.h: ... here.
6978         * config/mips/iris5gas.h (TARGET_ASM_NAMED_SECTION): Remove.
6979
6980         * config/mips/iris6.h (EXTRA_SECTION_FUNCTIONS): Move ...
6981         * config/mips/iris5.h: ... here.
6982
6983 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6984
6985         * configure.ac: Remove default executable files before AC_PROG_CC.
6986         * configure: Regenerate.
6987
6988 2004-02-09  Kazu Hirata  <kazu@cs.umass.edu>
6989
6990         PR target/13721
6991         * config/h8300/h8300.c (byte_reg): Call abort() if asked to
6992         print a operand other than a register.
6993
6994 2004-02-09  Roger Sayle  <roger@eyesopen.com>
6995
6996         * fold-const.c (fold) <NOP_EXPR>: Use the original type conversion
6997         tree code rather than call fold_convert, which doesn't specify a
6998         default floating point to integer conversion.
6999
7000 2004-02-08  Bernardo Innocenti  <bernie@develer.com>
7001
7002         * config/m68k/m68k.c, config/m68k/m68k.md (SGS, SGS_CMP_ORDER): Remove
7003         code to support SGS assembler.  Reformat adjacent code where possible.
7004         * config/m68k/m68k.c (switch_table_difference_label_flag): Remove
7005         definition.
7006         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Remove support
7007         for '%#'.
7008         * config/m68k/linux.h, config/m68k/m68k.c,
7009         * config/m68k/math-68881.h: Replace `%#' with `#' in inline asm
7010         macros and asm_printf() format strings.
7011         * config/m68k/m68kelf.h (ASM_OUTPUT_CASE_END): Remove macro definition.
7012         * config/m68k/linux.h: Update copyright.
7013         * config/m68k/linux.h, config/m68k/m68k.c: Remove traling whitespace.
7014
7015 2004-02-08  Andreas Schwab  <schwab@suse.de>
7016             Bernardo Innocenti  <bernie@develer.com>
7017
7018         * config/m68k/m68k.h (REGISTER_NAMES): Prefix each name with
7019         REGISTER_PREFIX.
7020         * (M68K_FP_REG_NAME): New macro to specify an alternate name for the
7021         frame pointer register, overridable by OS targets.
7022         * (M68K_REGNAME): Macro to obtain register name for asm output,
7023         eventually replacing %a6 with M68K_FP_REG_NAME.
7024         * config/m68k/coff.h (REGISTER_NAMES): Don't redefine.
7025         * config/m68k/linux.h (REGISTER_NAMES): Likewise.
7026         * config/m68k/m68kelf.h (REGISTER_NAMES): Likewise.
7027         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Likewise.
7028         * config/m68k/m68k.c: Use M68K_REGNAME(x) in place of reg_names[x].
7029
7030 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
7031
7032         * target-def.h (TARGET_STRUCT_VALUE_RTX): Define as
7033         hook_rtx_tree_int_null.
7034         * targhooks.c (default_struct_value_rtx): Remove.
7035         * targhooks.h: Remove the prototype for
7036         default_struct_value_rtx.
7037         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
7038         config/fr30/fr30.c, config/h8300/h8300.c, config/i386/i386.c,
7039         config/ip2k/ip2k.c, config/iq2000/iq2000.c,
7040         config/m32r/m32r.c, config/mcore/mcore.c, config/mips/mips.c,
7041         config/mn10300/mn10300.c, config/pdp11/pdp11.c,
7042         config/rs6000/rs6000.c, config/s390/s390.c,
7043         config/stormy16/stormy16.c, config/v850/v850.c,
7044         config/xtensa/xtensa.c (TARGET_STRUCT_VALUE_RTX): Remove.
7045         * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document the default.
7046
7047 2004-02-08  Joseph S. Myers  <jsm@polyomino.org.uk>
7048
7049         * README.Portability: Change "ISO C89" to "ISO C90".
7050         * c-parse.in (primary, initelt): Likewise.
7051
7052 2004-02-08  Richard Sandiford  <rsandifo@redhat.com>
7053
7054         * real.c (encode_ibm_extended): Normalize the input value before
7055         converting it to a double.  Handle the case where a normal value
7056         rounds to infinity.
7057
7058 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
7059
7060         * c-objc-common.c (c_cannot_inline_tree_fn): Fix a typo in a
7061         warning.
7062         * cse.c (preferrable): Change to preferable. Update all of its
7063         callers.
7064         * genautomata.c (ainsn): Change
7065         first_ainsn_with_given_equialence_num to
7066         first_ainsn_with_given_equivalence_num.  Update all of its
7067         references.
7068
7069 2004-02-08  Jan Hubicka  <jh@suse.cz>
7070
7071         * schedule-ebb.c (schedule_ebbs): Do not allocate reg life data.
7072
7073 2004-02-07  David Edelsohn  <edelsohn@gnu.org>
7074
7075         * function.c (assign_parms): Fix formatting.
7076
7077 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
7078
7079         * default.h (PROMOTE_PROTOTYPES): Remove.
7080         * system.h (PROMOTE_FUNCTION_RETURN, PROMOTE_PROTOTYPES,
7081         STRUCT_VALUE_REGNUM, SETUP_INCOMING_VARARGS,
7082         EXPAND_BUILTIN_SAVEREGS): Poison.
7083         * target-def.h (TARGET_PROMOTE_FUNCTION_RETURN): Define as
7084         hook_bool_tree_false.
7085         (TARGET_PROMOTE_PROTOTYPES): Likewise.
7086         * target.h: Replace SETUP_INCOMING_VARARGS with
7087         targetm.calls.setup_incoming_varargs().
7088         * targhooks.c (default_promote_function_return): Remove.
7089         (default_promote_prototypes): Likewise.
7090         (default_struct_value_rtx): Always abort().
7091         (default_expand_builtin_saveregs): Always print an error
7092         message.
7093         (default_setup_incoming_varargs): Do nothing.
7094         (default_pretend_outgoing_varargs_named): Don't depend on
7095         SETUP_INCOMING_VARARGS.
7096         * targhooks.h: Remove the prototype for
7097         default_promote_function_return and
7098         default_promote_prototypes.
7099
7100 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
7101
7102         * system.h (SHARED_SECTION_ASM_OP): Poison.
7103         * varasm.c (data_section): Don't use SHARED_SECTION_ASM_OP.
7104         * doc/tm.texi (SHARED_SECTION_ASM_OP): Remove.
7105
7106 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
7107
7108         Bug 13856
7109         * c-decl.c (diagnose_mismatched_decls): Only give special
7110         treatment when olddecl is DECL_BUILT_IN, if C_DECL_INVISIBLE
7111         is also true.
7112         (merge_decls): Don't clear DECL_BUILT_IN_CLASS and
7113         DECL_FUNCTION_CODE when defining a built-in function.
7114         Don't update DECL_ESTIMATED_INSNS.
7115         * dwarf2out.c (dwarf2out_decl): Don't ignore built-in
7116         FUNCTION_DECLs.
7117         * tree.h: Delete DECL_ESTIMATED_INSNS.
7118         * tree-inline.c (struct inline_data): Delete inlined_insns field.
7119         (expand_call_inline, optimize_inline_calls): Don't update
7120         DECL_ESTIMATED_INSNS nor inlined_insns.
7121         * cgraphunit.c (cgraph_analyze_function): Don't update
7122         DECL_ESTIMATED_INSNS.
7123
7124 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
7125
7126         * c-common.c (shadow_warning): Delete.
7127         * c-common.h (free_parser_stacks, shadow_warning, sw_kind): Delete.
7128         * c-decl.c (warn_if_shadowing): Issue shadow warnings directly.
7129         * c-opts.c (c_common_parse_file): Don't call free_parser_stacks.
7130         * c-parse.in (free_parser_stacks): Delete.
7131
7132 2004-02-07  Nathanael Nerode  <neroden@gcc.gnu.org>
7133
7134         * Makefile.in, config/t-slibgcc-darwin, config/t-slibgcc-elf-ver,
7135         config/t-slibgcc-sld, config/mips/t-iris5-6, config/sh/t-linux:
7136         Use the top level mkinstalldirs, not the one in the gcc subdir.
7137         * mkinstalldirs: Remove (from the gcc subdir).
7138
7139 2004-02-07  Roger Sayle  <roger@eyesopen.com>
7140
7141         PR middle-end/13696
7142         * fold-const.c (fold_convert): New function to provide type
7143         conversion to the middle-end without using convert.
7144         (negate_expr, associate_trees, size_diffop, omit_one_operand,
7145         operand_equal_for_comparison_p, pedantic_omit_one_operand,
7146         invert_truthvalue, optimize_bit_field_compare, range_binop,
7147         decode_field_reference, make_range, build_range_check, unextend,
7148         fold_truthop, extract_muldiv_1, fold_mathfn_compare,
7149         fold_binary_op_with_conditional_arg, fold_inf_compare,
7150         fold_single_bit_test, fold, multiple_of_p): Replace all calls to
7151         convert with calls to fold_convert.
7152
7153 2004-02-07  Jan Hubicka  <jh@suse.cz>
7154
7155         * genrecog.c (find_operand): add extra argument stop.
7156         (validate_pattern): Verify that mach_dup is duplicating operand
7157         defined lexically earlier.
7158
7159 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
7160
7161         * config.gcc: Don't mention MAX_LONG_TYPE_SIZE.
7162         * system.h (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
7163         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Poison.
7164         * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
7165         config/ia64/ia64.h, config/ip2k/ip2k.h,
7166         config/iq2000/iq2000.h, config/mips/iris5.h,
7167         config/mips/mips.h, config/pa/pa-64.h, config/pa/pa.h,
7168         config/rs6000/aix51.h, config/rs6000/aix52.h,
7169         config/rs6000/darwin.h, config/rs6000/rs6000.h,
7170         config/s390/s390.h, config/sh/sh.h, config/sparc/freebsd.h,
7171         config/sparc/linux.h, config/sparc/linux64.h,
7172         config/sparc/netbsd-elf.h, config/sparc/sparc.h,
7173         config/xtensa/xtensa.h: Remove the definitions of
7174         MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE, and/or
7175         MAX_WCHAR_TYPE_SIZE.
7176         * doc/tm.texi (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
7177         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Remove.
7178
7179 2004-02-07  Stephane Carrez  <stcarrez@nerim.fr>
7180
7181         PR bootstrap/13990
7182         * config/m68hc11/m68hc11.md ("doloop_end"): Pass dummy arguments to
7183         gen_rtx_NE.
7184
7185 2004-02-07  Josef Zlomek  <zlomekj@suse.cz>
7186
7187         * var-tracking.c (vt_add_function_parameters): Surround checkings by
7188         #ifdef ENABLE_CHECKING and #endif.
7189
7190 2004-02-07  Roger Sayle  <roger@eyesopen.com>
7191
7192         * fold-const.c (negate_expr_p, negate_expr): Optimize -(A+B) into
7193         either (-A)-B or (-B)-A, if A or B is easily negated respectively.
7194         (fold) <MINUS_EXPR>: Optimize (A*C) - (B*C) -> (A-B)*C for both
7195         integer types and floating point with unsafe_math_optimizations.
7196         Add similar optimization for (A*C1) - (A*C2) -> A*(C1-C2).
7197         Optimize A - B as A + (-B), if B is easily negated.
7198
7199 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
7200
7201         * c-ppoutput.c, cfganal.c, diagnostic.h, print-rtl.c,
7202         config/darwin.c, config/darwin.h, config/ia64/ia64-c.c,
7203         config/m32r/linux.h, config/rs6000/ppc64-fp.c,
7204         config/sparc/openbsd.h, doc/makefile.texi, doc/passes.texi:
7205         Update copyright.
7206
7207 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
7208
7209         * c-ppoutput.c, var-tracking.c: Fix comment typos.
7210
7211 2004-02-06  James E Wilson  <wilson@specifixinc.com>
7212
7213         * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Only define for
7214         glibc 2.3 or better.
7215
7216 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
7217
7218         * doc/tm.texi (TARGET_FLOAT_LIB_COMPARE_RETURNS_BOOL): Change
7219         to FLOAT_LIB_COMPARE_RETURNS_BOOL.
7220
7221 2004-02-07  Alan Modra  <amodra@bigpond.net.au>
7222
7223         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Add darwin-ldouble.c.
7224         (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
7225         (SHLIB_MKMAP_OPTS): Delete.
7226         (TARGET_LIBGCC2_CFLAGS): Add -specs.
7227         (bispecs): Add rule.
7228         * config/rs6000/libgcc-ppc64.ver: New file.
7229         * config/rs6000/ppc64-fp.c (__fixtfdi, __floatditf): New functions.
7230         (__floatdidf, __floatdisf): Optimize multiply.
7231         (__fixunstfdi): New function.
7232         * config/rs6000/rs6000.c (rs6000_complex_function_value): Allow for
7233         real and imag parts larger than one register.
7234         (function_arg): Correct type of reg used when fp arg split partially
7235         to stack.
7236         * config/rs6000/darwin-ldouble.c: Protect with #if !_SOFT_FLOAT
7237         and __MACH__ or __powerpc64__.
7238
7239 2004-02-06  Roger Sayle  <roger@eyesopen.com>
7240             Ulrich Weigand  <uweigand@de.ibm.com>
7241
7242         * builtins.c (expand_builtin_signbit): Use extract_bit_field instead
7243         of gen_highpart or gen_lowpart when the floating point format is
7244         wider than the result mode.
7245
7246 2004-02-06  Andrew Pinski  <pinskia@physics.uc.edu>
7247
7248         * dwarf2out.c (loclabel_num): Move into #ifdef
7249         DWARF2_DEBUGGING_INFO.
7250
7251 2004-02-06  Ziemowit Laski  <zlaski@apple.com>
7252
7253         * objc/objc-act.c (build_super_template) the 'class' field of
7254         'struct _objc_super' shall be named 'super_class' #ifdef OBJCPLUS.
7255         (get_super_receiver): Likewise.
7256
7257 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
7258
7259         * reload1.c (check_eliminable_occurrences): Optimize the reset
7260         of can_eliminate.
7261         (eliminate_regs_in_insn): Likewise.
7262
7263 2004-02-06  Daniel Berlin <dberlin@dberlin.org>
7264             Josef Zlomek  <zlomekj@suse.cz>
7265
7266         * dwarf2out.c (struct gcc_debug_hooks): Call dwarf2out_begin_function
7267         at the beginning of function, call dwarf2out_var_location for
7268         NOTE_INSN_VAR_LOCATION note.
7269         (struct var_loc_node, struct var_loc_list_def, loclabel_num,
7270         decl_loc_table): New.
7271         (lookup_decl_loc): New function.
7272         (add_var_loc_to_decl): New function.
7273         (based_loc_descr): Added parameter can_use_fbreg, DW_OP_fbreg is used
7274         only if can_use_fbreg.
7275         (mem_loc_descriptor): Added parameter can_use_fbreg, pass it to other
7276         functions.
7277         (loc_descriptor): Likewise. Process VAR_LOCATION.
7278         (concat_loc_descriptor): Call loc_descriptor with can_use_fbreg == true.
7279         (loc_descriptor_from_tree): Call mem_loc_descriptor with
7280         can_use_fbreg == true.
7281         (add_location_or_const_value_attribute): Added parameter enum
7282         dwarf_attribute attr, generate attribute ATTR.  Create the location list.
7283         (add_bound_info): Call loc_descriptor with can_use_fbreg == true.
7284         (gen_formal_parameter_die): Call add_location_or_const_value_attribute
7285         with attr == DW_AT_location.
7286         (gen_subprogram_die): Generate the location list for DW_AT_frame_base
7287         if frame_base_decl is defined and has a location list.
7288         (gen_variable_die): Call add_location_or_const_value_attribute with
7289         attr == DW_AT_location.
7290         (dwarf2out_var_location): New function.
7291         (dwarf2out_begin_function): New function.
7292         (dwarf2out_init): Create decl_loc_table.
7293
7294 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
7295
7296         * loop.c (force_movables): Transitively increase the priorities of
7297         all insns forces by an insn, not just the first one.
7298
7299 2004-02-06  Josef Zlomek  <zlomekj@suse.cz>
7300             Daniel Berlin <dberlin@dberlin.org>
7301
7302         Josef Zlomek  <zlomekj@suse.cz>
7303         * Makefile.in (var-tracking.o): New.
7304         * common.opt (fvar-tracking): New.
7305         * flags.h (flag_var_tracking): New.
7306         * gengtype.c (adjust_field_rtx_def): NOTE_INSN_VAR_LOCATION was added.
7307         * opts.c (common_handle_option): Add OPT_fvar_tracking.
7308         * print-rtl.c (print_rtx): NOTE_INSN_VAR_LOCATION was added.
7309         * rtl.c (note_insn_name): Likewise.
7310         * rtl.def (VAR_LOCATION): New.
7311         * rtl.h (NOTE_VAR_LOCATION): New.
7312         (NOTE_VAR_LOCATION_DECL): New.
7313         (NOTE_VAR_LOCATION_LOC): New.
7314         (enum insn_note): NOTE_INSN_VAR_LOCATION was added.
7315         (variable_tracking_main): New exported function.
7316         * timevar.def (TV_VAR_TRACKING): New.
7317         * toplev.c (enum dump_file_index): Added DFI_vartrack.
7318         (dump_file): "vartrack" was added (-dV).
7319         (flag_var_tracking): New.
7320         (f_options): "var-tracking" was added.
7321         (rest_of_handle_variable_tracking): New function.
7322         (rest_of_compilation): Run variable tracking.
7323         (process_options): If user has not specified flag_var_tracking set it
7324         according to optimize, debug_info_level and debug_hooks.
7325         * tree.h (frame_base_decl): New.
7326         * var-tracking.c: New file.
7327         * config/ia64/ia64.c (ia64_flag_var_tracking): New variable.
7328         (ia64_override_options): Set flags to run variable tracking in machine
7329         dependent reorg instead of toplev.c.
7330         (ia64_reorg): Run variable tracking if wanted.
7331         * doc/invoke.texi: Mention variable tracking in -dV,
7332         add and -fvar-tracking.
7333         * doc/passes.texi: Added variable tracking pass.
7334
7335         Daniel Berlin <dberlin@dberlin.org>
7336         * debug.h (struct gcc_debug_hooks): Added var_location debug hook.
7337         * dbxout.c (dbx_debug_hooks): Likewise.
7338         (xcoff_debug): Likewise.
7339         * debug.c (do_nothing_debug_hooks): Likewise.
7340         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
7341         * dwarfout.c (dwarf_debug_hooks): Likewise.
7342         * sdbout.c (sdb_debug_hooks): Likewise.
7343         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
7344         * final.c (final_scan_insn): Call var_location debug hook for each
7345         NOTE_INSN_VAR_LOCATION.
7346
7347 2004-02-06  Jan Hubicka  <jh@suse.cz>
7348
7349         * flow.c (update_life_info): Allocate reg_deaths when called from
7350         scheudler.
7351         (attempt_auto_inc):  Update life ranges accordingly.
7352
7353 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
7354
7355         PR debug/11816
7356         * dwarf2out.c (gen_decl_die): Handle anonymous struct members.
7357
7358 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
7359
7360         * cfganal.c (flow_call_edges_add): Never split a libcall block.
7361
7362 2004-02-06  Daniel Berlin  <dberlin@dberlin.org>
7363
7364         * dwarf2out.c (output_loc_list): Don't use deltas if we have
7365         a separate line info table in use.
7366         Use the correct size for terminators.
7367         (output_die): Use offset, not delta.
7368
7369 2004-02-06  H.J. Lu  <hongjiu.lu@intel.com>
7370
7371         * doc/invoke.texi: Remove the pni option from -mfpmath=.
7372
7373 2004-02-06  Jan Hubicka  <jh@suse.cz>
7374
7375         * recog.c (split_all_insns): Do not update reg info.
7376         * regrename.c (regrename_optimize): Likewise.
7377         * toplev.c (rest_of_handle_reorder_blocks): Likewise.
7378         * flow.c (struct propagate_block_info): Add insn_num field.
7379         (reg_deaths): New array.
7380         (life_analysis): Free reg_deaths info.
7381         (allocate_reg_life_data): Allocate reg_deaths array.
7382         (propagate_one_insn): Use new array.
7383         (init_propagate_block): Initialize it.
7384         (free_propagate_block_info): Finish compuation of
7385         REG_LIVE_LENGTH
7386         (attempt_auto_inc): Sanity check that REG_INFO is not
7387         computed at same time.
7388         (mark_used_regs): Update new array.
7389
7390         * reg-stack.c (subst_stack_regs): Unshare clobbers before
7391         substitution.
7392
7393 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
7394
7395         * config/s390/s390.md (*extendsiqi2_short_displ): Change to
7396         *extendqisi2_short_displ.
7397
7398 2004-02-06  Alan Modra  <amodra@bigpond.net.au>
7399
7400         * doc/tm.texi (INIT_CUMULATIVE_ARGS): Update doco.
7401         * calls.c (expand_call): Pass n_named_args to INIT_CUMULATIVE_ARGS.
7402         (emit_library_call_value_1): Likewise pass nargs.
7403         * expr.c (block_move_libcall_safe_for_call_parm): Pass 3 here.
7404         * function.c (assign_parms): Pass -1 to INIT_CUMULATIVE_ARGS.
7405         * config/rs6000/rs6000.c (init_cumulative_args): Use n_named_args
7406         parameter instead of scanning TYPE_ARGS_TYPES to count args.
7407         * config/rs6000/rs6000-protos.h (init_cumulative_args): Update
7408         prototype.
7409         * config/rs6000/rs6000.h (INIT_CUMULATIVE_ARGS): Pass extra arg.
7410         (INIT_CUMULATIVE_INCOMING_ARGS): Set extra arg to 1000.
7411         (INIT_CUMULATIVE_LIBCALL_ARGS): Set extra arg to 0.
7412         * config/sh/sh.c (sh_output_mi_thunk): Pass 1 as n_named_args to
7413         INIT_CUMULATIVE_ARGS.
7414         * config/alpha/alpha.h (INIT_CUMULATIVE_ARGS): Update.
7415         * config/alpha/unicosmk.h, config/alpha/vms.h, config/arc/arc.h,
7416         config/arm/arm.h, config/avr/avr.h, config/c4x/c4x.h,
7417         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.h,
7418         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
7419         config/ia64/ia64.h, config/ip2k/ip2k.h, config/iq2000/iq2000.h,
7420         config/iq2000/iq2000.c, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
7421         config/m68k/m68k.h, config/mcore/mcore.h, config/mips/mips.h,
7422         config/mmix/mmix.h, config/mn10300/mn10300.h, config/ns32k/ns32k.h,
7423         config/pa/pa.h, config/pdp11/pdp11.h, config/s390/s390.h,
7424         config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
7425         config/v850/v850.h, config/vax/vax.h, config/xtensa/xtensa.h: Likewise.
7426
7427 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
7428
7429         * genemit.c (gen_exp) [CONST_INT]: Use const_int_rtx whenever
7430         possible.
7431
7432 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
7433
7434         * reload1.c (eliminate_regs_in_insn): If a set has a REG_EQUAL
7435         note containing (plus (reg) (const_int)), where reg is an
7436         eliminable reg, then perform the register elimination without
7437         depending on eliminate_regs().
7438
7439 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
7440
7441         * config/arc/arc.c (arc_return_in_memory): Check the return
7442         value of int_size_in_bytes against -1.  Don't check
7443         TREE_ADDRESSABLE.
7444         * config/avr/avr.c (avr_return_in_memory): Check the return
7445         value of int_size_in_bytes against -1.
7446         * config/ip2k/ip2k.c (ip2k_return_in_memory): Likewise.
7447         * config/m68hc11/m68hc11.c (m68hc11_return_in_memory):
7448         Likewise.
7449         * config/mcore/mcore.c (mcore_return_in_memory): Likewise.
7450         * config/stormy16/stormy16.c (xstormy16_return_in_memory):
7451         Likewise.
7452
7453 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
7454
7455         * config/frv/frv-protos.h: Remove the prototype for
7456         frv_setup_incoming_varargs.
7457         * config/frv/frv.c (TARGET_SETUP_INCOMING_VARARGS): New.
7458         (frv_setup_incoming_varargs): Make it static.
7459         * config/frv/frv.h (SETUP_INCOMING_VARARGS): Remove.
7460
7461 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
7462
7463         * config/fr30/fr30-protos.h: Remove the prototype for
7464         fr30_setup_incoming_varargs.
7465         Update the prototypes for fr30_num_arg_regs and
7466         fr30_function_arg_partial_nregs.
7467         * config/fr30/fr30.c (TARGET_STRUCT_VALUE_RTX): New.
7468         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
7469         (fr30_setup_incoming_varargs): Make it static.
7470         Add argument second_time.  Don't do anything when second_time
7471         is nonzero.
7472         (fr30_num_arg_regs): Change the type of the first argument to
7473         enum machine_mode.
7474         (fr30_function_arg_partial_nregs): Change the type of the
7475         second argument to enum machine_mode.
7476         * config/fr30/fr30.h (STRUCT_VALUE): Remove.
7477         (SETUP_INCOMING_VARARGS): Remove.
7478
7479 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
7480
7481         * config/arc/arc-protos.h: Remove the prototype for
7482         arc_setup_incoming_varargs.
7483         * config/arc/arc.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
7484         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
7485         (arc_setup_incoming_varargs): Make it static.
7486         (arc_external_libcall): Likewise.
7487         * config/arc/arc.h (SETUP_INCOMING_VARARGS): Remove.
7488         Remove the commented-out definition of
7489         ASM_OUTPUT_EXTERNAL_LIBCALL.
7490
7491 2004-02-05  SUGIOKA Toshinobu  <sugioka@itonet.co.jp>
7492
7493         * config/sh/t-linux (SHLIB_INSTALL): Prepend $$(DESTDIR)
7494         to $$(slibdir) in the installation commands.
7495
7496 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
7497
7498         * reload.c (refers_to_regno_for_reload_p): Index hard_regno_nregs
7499         with inner_regno, not regno.
7500         * rtlanal.c (refers_to_regno_p): Same.
7501
7502 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
7503
7504         * config.gcc: Remove i370 support.
7505
7506 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
7507
7508         * doc/install.texi:  Update automake and autoconf version
7509         requirements.  Note where to find gcj automake version.
7510
7511 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
7512
7513         * Makefile.in (generate-manpages): Move dependencies to ...
7514         (man): here.
7515         * doc/makefile.texi: Document new targets.
7516         * doc/sourcebuild.texi (Make-lang.in): Document new langhooks.
7517
7518 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
7519
7520         PR/13485
7521         Makefile.in (srcextra):  Add a level of indirection to ...
7522         (gcc.srcextra): ... here.
7523         (po-generated): Delete.
7524         (po/$(PACKAGE).pot: Use srcextra instead of po-generated.  Depend on
7525         options.c.
7526         (start.encap): Remove superfluous lang.srcextra dependency.
7527         objc/Make-lang.in (po-generated):  Delete.
7528
7529 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
7530
7531         * config/ia64/ia64.c (REG_GP): Remove.
7532
7533 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7534
7535         * config/mips/iris5gas.h (PREFERRED_DEBUGGING_TYPE): Define.
7536
7537 2004-02-05  Devang Patel  <dpatel@apple.com>
7538
7539         * dwarf2out.c (force_type_die): Look up input type itself
7540         instead of root_type() of type.
7541
7542 2004-02-05  Andreas Krebbel  <krebbel1@de.ibm.com>
7543
7544         * config/s390/s390.md ("*tmqidi_ext"): New insn.
7545         ("*extendqidi2_short_displ", "*extendsiqi2_short_displ"): Old
7546         pre-reload splitters are transformed to post-reload
7547         define_insn_and_split patterns.
7548         ("*tmqisi_ext"): Renamed old "*tmqi_ext".
7549
7550 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
7551
7552         * config/cris/cris.h: Replace PROMOTE_PROTOTYPES with
7553         TARGET_PROMOTE_PROTOTYPES.
7554
7555 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7556
7557         PR middle-end/13750
7558         Revert:
7559         2004-01-15  Geoffrey Keating  <geoffk@apple.com>
7560         PR pch/13361
7561         * c-typeck.c (constructor_asmspec): Delete.
7562         (struct initializer_stack): Delete field 'asmspec'.
7563         (start_init): Delete saving of asmspec.
7564         (finish_init): Don't update constructor_asmspec.
7565         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
7566         * stmt.c (expand_asm): Duplicate strings from tree.
7567         (expand_asm_operands): Likewise.
7568         * tree.c (tree_size): Update computation of size of STRING_CST.
7569         (make_node): Don't make STRING_CST nodes.
7570         (build_string): Allocate string with tree node.
7571         * tree.def (STRING_CST): Update comment.
7572         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
7573         (tree_string): Place contents of string in tree node.
7574         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
7575         from tree.
7576
7577 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
7578
7579         * diagnostic.h (DEFINE_DIAGNOSTIC_KIND): Change parameter M to
7580         msgid.
7581
7582 2004-02-05  Dorit Naishlos  <dorit@il.ibm.com>
7583
7584         * config/rs6000/altivec.md (*movv4si_internal): At least one
7585         operand must be altivec_register_operand.
7586         (*movv8hi_internal1): Likewise.
7587         (*movv16qi_internal1): Likewise.
7588         (*movv4sf_internal1): Likewise.
7589
7590 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
7591
7592         * configure.ac (gcc_cv_as_powerpc_mfcrf): Correct test for mfcr.
7593         * configure: Regenerate.
7594
7595 2004-02-05  Jonathan Wakely  <redi@gcc.gnu.org>
7596
7597         * doc/install.texi: Update description of --gxx-include-dir to
7598         give correct default value.
7599
7600 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
7601
7602         * config/h8300/h8300.h (REG_OK_FOR_BASE_NONSTRICT_P): Replace
7603         8 with MAC_REG.
7604
7605 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
7606
7607         * config/pa/pa.c (emit_hpdiv_const): Replace gen_rtx with
7608         gen_rtx_PARALLEL.
7609
7610 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
7611
7612         * emit-rtl.c: Update the comment about the file.
7613
7614 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
7615
7616         * sourcebuild.texi (Test Idioms): Update testcase naming
7617         conventions.
7618
7619 2004-02-04  Per Bothner  <per@bothner.com>
7620
7621         Partially revert/redo 2003-10-01 change; fix -fworking-directory.
7622         * c-ppoutput.c (pp_dir_change):  New function.
7623         * c-common.h (pp_dir_change):  New declaration.
7624         * cpplib.h (struct cpp_options):  Remove working_directory field.
7625         * cppinit.c (cpp_find_main_file, cpp_push_main_file):  Merge back to
7626         (cpp_read_main_file):  as before 10-01.  Call _cpp_stack_file.
7627         Don't handle -fworking_directory here, but in c_common_post_options.
7628         (read_original_directory): Don't back up when done.
7629         Don't clear no-longer used working_directory flag.
7630         * cpplib.h:  Update declarations to match.
7631         * c-lex.c (cb_dir_change):  Move to c-opts.c.
7632         (init_c_lex):  Don't set dir_change callback here, since we want
7633         to set it even if flag_preprocess_only.
7634         * c-opts.c (cb_dir_change):  Function moved from c-lex.c.
7635         (c_common_post_options):  Set dir_change callback.
7636         Call pp_dir_change if approporiate.
7637         (finish_options):  Don't call cpp_find_main_file here.  Hence remove
7638         unneeded parameter and result. Do LC_RENAME for <built-in>.
7639         (c_common_post_options):  Call cpp_read_main_file here instead.
7640         (c_common_init):  Update accordingly.
7641         (push_command_line_include):  Don't cpp_push_main_file.
7642         Do LC_RENAME rather than LC_LEASE to get back to main file.
7643         Compared to pre-10-01 version, inline cpp_rename_to_main_file.
7644         (c_common_parse_file):  Call cpp_read_main_file for subsequent main
7645         files, but call finish_options for all files.
7646         * c-opts.c (sanitize_cpp_opts):  Don't set cpp_opts->working_directory.
7647         * fix-header.c (read_scan_file):  Call cpp_read_main_file instead of
7648         cpp_find_main_file + cpp_push_main_file.
7649         * c-lex.c (fe_file_change):  Don't set main_input_filename here.
7650         * opts.c (handle_options):  Only set main_input_filename first time.
7651
7652 2004-02-05  Ian Lance Taylor  <ian@wasabisystems.com>
7653
7654         * config/arm/arm.h (REG_CLASS_NAMES): Add missing comma.
7655
7656 2004-02-04  Geoffrey Keating  <geoffk@apple.com>
7657
7658         * reload.c (find_equiv_reg): When checking for register overlap,
7659         don't index hard_regno_nregs with a pseudo-reg.
7660
7661 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
7662
7663         * config/s390/s390.c (s390_trampoline_template): Remove gen_rtx().
7664
7665 2004-02-04  David Edelsohn  <edelsohn@gnu.org>
7666
7667         * reload.c (refers_to_regno_for_reload_p): Test regno, not inner_regno,
7668         against FIRST_PSEUDO_REGISTER.
7669
7670 2004-02-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7671
7672         * Makefile.in: Move target, host overrides after per-language
7673         fragments.
7674
7675         * config/mips/t-iris5-as (FORCE_DEBUG_ADAFLAGS): Clear.
7676         (GNATLIBCFLAGS): Remove -g.
7677
7678 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
7679
7680         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
7681         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
7682         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
7683         config/m32r/m32r.c, config/ns32k/ns32k.c, config/pa/pa.c,
7684         config/pdp11/pdp11.c, config/rs6000/rs6000.c,
7685         config/sparc/sparc.c, config/vax/vax.c: Revert the
7686         replacements of "FALLTHRU" with "Fall through" done in the
7687         previous patch.
7688
7689 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
7690
7691         * config/darwin.c, config/darwin.h, config/freebsd-spec.h,
7692         config/arm/arm.c, config/arm/arm.md,
7693         config/cris/cris-protos.h, config/fr30/fr30.c,
7694         config/fr30/fr30.h, config/h8300/h8300.c, config/i386/i386.h,
7695         config/i860/i860.c, config/i860/i860.h, config/ia64/ia64-c.c,
7696         config/ia64/ia64.c, config/ia64/ia64.h, config/ip2k/ip2k.h,
7697         config/ip2k/ip2k.md, config/ip2k/libgcc.S,
7698         config/m32r/linux.h, config/m32r/m32r.c, config/m32r/m32r.h,
7699         config/m68k/m68k.c, config/m68k/netbsd-elf.h,
7700         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.md,
7701         config/ns32k/netbsd.h, config/ns32k/ns32k.c,
7702         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
7703         config/rs6000/darwin-ldouble.c, config/s390/s390.h,
7704         config/s390/s390.md, config/sparc/netbsd-elf.h,
7705         config/sparc/openbsd.h, config/sparc/sparc.c,
7706         config/xtensa/lib2funcs.S: Fix comment formatting.
7707
7708 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
7709
7710         * config/alpha/alpha.c, config/arc/arc.c,
7711         config/arm/arm-cores.def, config/arm/arm.c, config/arm/arm.h,
7712         config/arm/arm1026ejs.md, config/arm/arm1136jfs.md,
7713         config/arm/arm926ejs.md, config/arm/vfp.md, config/avr/avr.c,
7714         config/c4x/c4x.c, config/cris/cris.c, config/frv/frv.md,
7715         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
7716         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
7717         config/iq2000/iq2000.c, config/m32r/m32r.c,
7718         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.h,
7719         config/ns32k/ns32k.c, config/pa/pa.c, config/pdp11/pdp11.c,
7720         config/rs6000/darwin-ldouble.c, config/rs6000/rs6000.c,
7721         config/rs6000/rs6000.h, config/sparc/sparc.c,
7722         config/vax/vax.c: Fix comment typos.  Follow spelling
7723         conventions.
7724
7725 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
7726
7727         * alloc-pool.h, c-convert.c, c-lang.c, c-tree.h,
7728         caller-save.c, df.h, genconfig.c, global.c, lcm.c,
7729         ra-rewrite.c, ra.c, regclass.c, regs.h, resource.c,
7730         sched-rgn.c, config/arm/aof.h, config/arm/cirrus.md,
7731         config/arm/fpa.md, config/arm/iwmmxt.md,
7732         config/arm/netbsd-elf.h, config/arm/netbsd.h,
7733         config/m68hc11/m68hc11.md, config/mips/iris5.h,
7734         config/mn10300/mn10300.md, config/rs6000/altivec.md,
7735         config/sparc/netbsd-elf.h: Update copyright.
7736
7737 2004-02-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
7738
7739         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
7740         for all modes whose size is greater than 8 bytes if ARCH32.
7741         (sparc_va_arg): Handle all modes whose size is greater than 8 bytes
7742         by reference if ARCH32.
7743
7744 2004-02-04  Aldy Hernandez  <aldyh@redhat.com>
7745
7746         * cgraphunit.c (cgraph_postorder): Fix typo in comment.
7747
7748 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
7749
7750         * config/s390/s390.md ("*la_64" + peepholes, "reload_indi"): Move
7751         to before adddi3 insn patterns.
7752         ("*la_31" + peepholes, "*la_31_and", "*la_31_and_cc", "force_la_31",
7753         "reload_insi"): Move to before addsi3 insn patterns.
7754
7755 2004-02-04  Mark Mitchell  <mark@codesourcery.com>
7756
7757         * calls.c (initialize_argument_information): Add CALL_FROM_THUNK_P
7758         parameter.  Use it instead of current_function_is_thunk.
7759         * function.h (struct function): Update documentation for is_thunk.
7760         * tree.h (CALL_FROM_THUNK_P): New macro.
7761         * config/alpha/alpha.c (alpha_sa_mask): Do not check
7762         no_new_pseudos when testing current_function_is_thunk.
7763         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likeiwse.
7764
7765 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
7766
7767         * doc/tm.texi: Replace SETUP_INCOMING_VARARGS with
7768         TARGET_SETUP_INCOMING_VARARGS.
7769
7770 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
7771
7772         * emit-rtl.c (gen_rtx): Remove.
7773         * genattrtab.c: Don't mention gen_rtx in a comment.
7774         * rtl.h: Remove the prototype for gen_rtx.
7775         * doc/md.texi: Replace gen_rtx with gen_rtx_REG.
7776
7777 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
7778
7779         * config/arc/arc.h, config/fr30/fr30.h
7780         (SETUP_INCOMING_VARARGS): Remove the target-independent
7781         comments.
7782         * doc/tm.texi: Don't mention deprecated target macros.
7783
7784 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
7785
7786         * config/fr30/fr30.h (FUNCTION_VALUE): Remove the
7787         target-independent comment.
7788
7789 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
7790
7791         * doc/interface.texi, doc/tm.texi, doc/trouble.texi: Don't
7792         mention deprecated target macros.
7793
7794 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
7795
7796         * config.gcc: Remove obsolete ports and configurations.
7797         * config/linux-aout.h, config/netware.h,
7798         config/t-linux-gnulibc1, config/d30v/abi,
7799         config/d30v/d30v-protos.h, config/d30v/d30v.c,
7800         config/d30v/d30v.h, config/d30v/d30v.md,
7801         config/d30v/libgcc1.asm, config/d30v/t-d30v,
7802         config/dsp16xx/dsp16xx-modes.def,
7803         config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c,
7804         config/dsp16xx/dsp16xx.h, config/dsp16xx/dsp16xx.md,
7805         config/i370/README, config/i370/i370-c.c,
7806         config/i370/i370-protos.h, config/i370/i370.c,
7807         config/i370/i370.h, config/i370/i370.md, config/i370/linux.h,
7808         config/i370/mvs.h, config/i370/oe.h, config/i370/t-i370,
7809         config/i386/freebsd-aout.h, config/i386/linux-aout.h,
7810         config/i386/moss.h, config/i386/netware.h,
7811         config/i386/svr3.ifile, config/i386/svr3dbx.h,
7812         config/i386/svr3gas.h, config/i386/svr3z.ifile,
7813         config/i386/t-udk, config/i386/udk.h, config/i386/vsta.h,
7814         config/i960/i960-c.c, config/i960/i960-coff.h,
7815         config/i960/i960-modes.def, config/i960/i960-protos.h,
7816         config/i960/i960.c, config/i960/i960.h, config/i960/i960.md,
7817         config/i960/rtems.h, config/i960/t-960bare,
7818         config/m68k/hp310.h, config/m68k/hp320.h,
7819         config/m68k/hp320base.h, config/m68k/m68kv4.h,
7820         config/m68k/netbsd.h, config/m68k/sgs.h, config/m68k/t-hp320:
7821         Remove.
7822         * doc/extend.texi, doc/install.texi, doc/invoke.texi,
7823         doc/md.texi: Remove mentions of obsolete ports.
7824
7825 2004-02-04  Jan Hubicka  <jh@suse.cz>
7826
7827         * alias.c (find_base_term, get_addr):  Do not dereference NULL
7828         pointer when all VALUE's locations has been invalidated.
7829         (rtx_equal_for_memref_p): Simplify checking of VALUEs.
7830
7831 2004-02-03  Wolfgang Bangerth  <bangerth@dealii.org>
7832
7833         * doc/invoke.texi (x86 options): Fix spelling/wording.
7834
7835 2004-02-03  Richard Sandiford  <rsandifo@redhat.com>
7836
7837         * config/mips/iris5.h (ASM_OUTPUT_ASCII): Use mips_output_ascii to
7838         put the original string in a comment.
7839         * config/mips/mips-protos.h (mips_output_ascii): Add prefix argument.
7840         * config/mips/mips.c (mips_output_ascii): Likewise.
7841         * config/mips/mips.h (ASM_OUTPUT_ASCII): Adjust accordingly.
7842
7843 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
7844
7845         * system.h (GIV_SORT_CRITERION): Poison.
7846         * config/avr/avr.h (GIV_SORT_CRITERION): Remove.
7847         * config/ip2k/ip2k.h (GIV_SORT_CRITERION): Likewise.
7848
7849 2004-02-03  Roger Sayle  <roger@eyesopen.com>
7850
7851         PR target/9348
7852         * expr.c (expand_expr_real) <MULT_EXPR>:  When performing widening
7853         multiplies with a multiplication of the wrong signedness, its the
7854         signedness of the multiplication that we've performed that needs to
7855         be passed to expand_mult_highpart_adjust.  Avoid emitting a nop-move
7856         if expand_mult_highpart_adjust places the result in target.
7857
7858 2004-02-03  Richard Henderson  <rth@redhat.com>
7859
7860         * varasm.c (const_desc_rtx_sym_eq): Compare symbol strings.
7861
7862 2004-02-03  J"orn Rennecke <joern.rennecke@superh.com>
7863
7864         * config.gcc (sh[234]l): Use little endian fragments.
7865
7866 2004-02-03  Paul Koning  <pkoning@equallogic.com>
7867
7868         * config/pdp11/pdp11-modes.def: Add RESET_FLOAT_FORMAT calls.
7869         * config/pdp11/pdp11-protos.h (legitimate_const_double_p): Add.
7870         * config/pdp11/pdp11.c (encode_pdp11_f, decode_pdp11_f,
7871         encode_pdp11_d, decode_pdp11_d): New functions to handle PDP11
7872         floating point format.
7873         (pdp11_f_format, pdp11_d_format): New real_format descriptors for
7874         the above functions.
7875         (output_move_quad): Output float values in correct target format.
7876         (legitimate_const_double_p): New function.
7877         * config/pdp11/pdp11.h: Fix typos.
7878         (FLOAT_WORDS_BIG_ENDIAN): Add definition.
7879         (TARGET_FLOAT_FORMAT): Ditto.
7880         (pdp11_f_format, pdp11_d_format): Add external declarations.
7881         (MAX_REGS_PER_ADDRESS): Corrected.
7882         (LEGITIMATE_CONSTANT_P): Use legitimate_const_double_p().
7883         (PRINT_OPERAND): Output float literals in target format.
7884
7885 2004-02-03  Mark Mitchell  <mark@codesourcery.com>
7886
7887         PR c++/13975
7888         * tree.h (enum tree_index): Add TI_PUBLIC, TI_PROTECTED, and
7889         TI_PRIVATE.
7890         (access_public_node): Redefine.
7891         (access_protected_node): Likewise.
7892         (access_private_node): Likewise.
7893         * tree.c (build_common_tree_nodes): Create access_public_node,
7894         access_protected_node, and access_private_node.
7895
7896 2004-02-03  Steve Ellcey  <sje@cup.hp.com>
7897
7898         * config/ia64/ia64.h (MASK_INLINE_INT_DIV_LAT): Change value.
7899         (MASK_INLINE_INT_DIV_THR): Ditto.
7900         (MASK_INLINE_SQRT_LAT): Ditto.
7901         (MASK_INLINE_SQRT_THR): Ditto.
7902         (MASK_DWARF2_ASM): Ditto.
7903         (MASK_EARLY_STOP_BITS): Ditto.
7904
7905 2004-02-02  Paul Brook  <paul@codesourcery.com>
7906
7907         Merge from csl-arm-branch.
7908
7909         2004-01-30  Paul Brook  <paul@codesourcery.com>
7910
7911         * aof.h (REGISTER_NAMES): Add vfp reg names
7912         (ADDITIONAL_REGISTER_NAMES): Ditto.
7913         * aout.h (REGISTER_NAMES): Ditto.
7914         (ADDITIONAL_REGISTER_NAMES): Ditto.
7915         * arm-protos.h: Update/Add Prototypes.
7916         * arm.c (init_fp_table): Rename from init_fpa_table. Update users.
7917         Only allow 0.0 for VFP.
7918         (fp_consts_inited): Rename from fpa_consts_inited.  Update users.
7919         (values_fp): Rename from values_fpa.  Update Users.
7920         (arm_const_double_rtx): Rename from const_double_rtx_ok_for_fpa.
7921         Update users.  Only check valid constants for this hardware.
7922         (arm_float_rhs_operand): Rename from fpa_rhs_operand.  Update Users.
7923         Only allow consts for FPA.
7924         (arm_float_add_operand): Rename from fpa_add_operand.  Update users.
7925         Only allow consts for FPA.
7926         (use_return_insn): Check for saved VFP regs.
7927         (arm_legitimate_address_p): Handle VFP DFmode addressing.
7928         (arm_legitimize_address): Ditto.
7929         (arm_general_register_operand): New function.
7930         (vfp_mem_operand): New function.
7931         (vfp_compare_operand): New function.
7932         (vfp_secondary_reload_class): New function.
7933         (arm_float_compare_operand): New function.
7934         (vfp_print_multi): New function.
7935         (vfp_output_fstmx): New function.
7936         (vfp_emit_fstm): New function.
7937         (arm_output_epilogue): Output VPF reg restore code.
7938         (arm_expand_prologue): Output VFP reg save code.
7939         (arm_print_operand): Add 'P'.
7940         (arm_hard_regno_mode_ok): Return modes for VFP regs.
7941         (arm_regno_class): Return classes for VFP regs.
7942         (arm_compute_initial_elimination_offset): Include space for VFP regs.
7943         (arm_get_frame_size): Ditto.
7944         * arm.h (FIXED_REGISTERS): Add VFP regs.
7945         (CALL_USED_REGISTERS): Ditto.
7946         (CONDITIONAL_REGISTER_USAGE): Enable VFP regs.
7947         (FIRST_VFP_REGNUM): Define.
7948         (LAST_VFP_REGNUM): Define.
7949         (IS_VFP_REGNUM): Define.
7950         (FIRST_PSEUDO_REGISTER): Include VFP regs.
7951         (HARD_REGNO_NREGS): Handle VFP regs.
7952         (REG_ALLOC_ORDER): Add VFP regs.
7953         (enum reg_class): Add VFP_REGS.
7954         (REG_CLASS_NAMES): Ditto.
7955         (REG_CLASS_CONTENTS): Ditto.
7956         (CANNOT_CHANGE_MODE_CLASS) Handle VFP Regs.
7957         (REG_CLASS_FROM_LETTER): Add 'w'.
7958         (EXTRA_CONSTRAINT_ARM): Add 'U'.
7959         (EXTRA_MEMORY_CONSTRAINT): Define.
7960         (SECONDARY_OUTPUT_RELOAD_CLASS): Handle VFP regs.
7961         (SECONDARY_INPUT_RELOAD_CLASS): Ditto.
7962         (REGISTER_MOVE_COST): Ditto.
7963         (PREDICATE_CODES): Add arm_general_register_operand,
7964         arm_float_compare_operand and vfp_compare_operand.
7965         * arm.md (various): Rename as above.
7966         (divsf3): Enable when TARGET_VFP.
7967         (divdf3): Ditto.
7968         (movdfcc): Ditto.
7969         (sqrtsf2): Ditto.
7970         (sqrtdf2): Ditto.
7971         (arm_movdi): Disable when TARGET_VFP.
7972         (arm_movsi_insn): Ditto.
7973         (movsi): Only split with general regs.
7974         (cmpsf): Use arm_float_compare_operand.
7975         (push_fp_multi): Restrict to TARGET_FPA.
7976         (vfp.md): Include.
7977         * vfp.md: New file.
7978         * fpa.md (various): Rename as above.
7979         * doc/md.texi: Document ARM w and U constraints.
7980
7981         2004-01-15  Paul Brook  <paul@codesourcery.com>
7982
7983         * config.gcc: Add with_fpu.  Allow with-float=softfp.
7984         * config/arm/arm.c (arm_override_options): Rename *-s to *s.
7985         Break out of loop when we find a float-abi.  Fix typo.
7986         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "fpu".
7987         Set -mfloat-abi=.
7988         * doc/install.texi: Document --with-fpu.
7989
7990         2003-01-14  Paul Brook  <paul@codesourcery.com>
7991
7992         * config.gcc (with_arch): Add armv6.
7993         * config/arm/arm.h: Rename TARGET_CPU_*_s to TARGET_CPU_*s.
7994         * config/arm/arm.c (arm_overrride_options): Ditto.
7995
7996         2004-01-08  Richard Earnshaw  <rearnsha@arm.com>
7997
7998         * arm.c (FL_ARCH3M): Renamed from FL_FAST_MULT.
7999         (FL_ARCH6): Renamed from FL_ARCH6J.
8000         (arm_arch3m): Renamed from arm_fast_multiply.
8001         (arm_arch6): Renamed from arm_arch6j.
8002         * arm.h: Update all uses of above.
8003         * arm-cores.def: Likewise.
8004         * arm.md: Likewise.
8005
8006         * arm.h (CPP_CPU_ARCH_SPEC): Emit __ARM_ARCH_6J__ define for armV6j,
8007         not arm6j.  Add entry for arch armv6.
8008
8009         2004-01-07  Richard Earnshaw  <rearnsha@arm.com>
8010
8011         * arm.c (arm_emit_extendsi): Delete.
8012         * arm-protos.h (arm_emit_extendsi): Delete.
8013         * arm.md (zero_extendhisi2): Also handle zero-extension of
8014         non-subregs.
8015         (zero_extendqisi2, extendhisi2, extendqisi2): Likewise.
8016         (thumb_zero_extendhisi2): Only match if not v6.
8017         (arm_zero_extendhisi2, thumb_zero_extendqisi2, arm_zero_extendqisi2)
8018         (thumb_extendhisi2, arm_extendhisi2, arm_extendqisi)
8019         (thumb_extendqisi2): Likewise.
8020         (thumb_zero_extendhisi2_v6, arm_zero_extendhisi2_v6): New patterns.
8021         (thumb_zero_extendqisi2_v6, arm_zero_extendqisi2_v6): New patterns.
8022         (thumb_extendhisi2_insn_v6, arm_extendhisi2_v6): New patterns.
8023         (thumb_extendqisi2_v6, arm_extendqisi_v6): New patterns.
8024         (arm_zero_extendhisi2_reg, arm_zero_extendqisi2_reg): Delete.
8025         (arm_extendhisi2_reg, arm_extendqisi2_reg): Delete.
8026         (arm_zero_extendhisi2addsi): Remove subreg.  Add attributes.
8027         (arm_zero_extendqisi2addsi, arm_extendhisi2addsi): Likewise.
8028         (arm_extendqisi2addsi): Likewise.
8029
8030         2003-12-31  Mark Mitchell  <mark@codesourcery.com>
8031
8032         Revert this change:
8033         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
8034         + REG addressing modes.
8035
8036         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
8037         + REG addressing modes.
8038
8039         2003-12-30  Mark Mitchell  <mark@codesourcery.com>
8040
8041         * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept
8042         CONSTANT_P_RTX.
8043
8044         2003-30-12  Paul Brook  <paul@codesourcery.com>
8045
8046         * longlong.h: protect arm inlines with !defined (__thumb__)
8047
8048         2003-30-12  Paul Brook  <paul@codesourcery.com>
8049
8050         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Always define __arm__.
8051
8052         2003-12-30  Nathan Sidwell  <nathan@codesourcery.com>
8053
8054         * builtins.c (expand_builtin_apply_args_1): Fix typo in previous
8055         change.
8056
8057         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
8058
8059         * builtins.c (expand_builtin_apply_args_1): Add pretend args size
8060         to the virtual incoming args pointer for downward stacks.
8061
8062         2003-12-29  Paul Brook  <paul@codesourcery.com>
8063
8064         * config/arm/arm-cores.def: Add cost function.
8065         * config/arm/arm.c (arm_*_rtx_costs): New functions.
8066         (arm_rtx_costs): Remove
8067         (struct processors): Add rtx_costs field.
8068         (all_cores, all_architectures): Ditto.
8069         (arm_override_options): Set targetm.rtx_costs.
8070         (thumb_rtx_costs): New function.
8071         (arm_rtx_costs_1): Remove cases handled elsewhere.
8072         * config/arm/arm.h (processor_type): Add COSTS parameter.
8073
8074         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
8075
8076         * config/arm/arm.md (generic_sched): arm926 has its own scheduler.
8077         (arm926ejs.md): Include it.
8078         * config/arm/arm926ejs.md: New pipeline description.
8079
8080         2003-12-24  Paul Brook  <paul@codesourcery.com>
8081
8082         * config/arm/arm.c (arm_arch6j): New variable.
8083         (arm_override_options): Set it.
8084         (arm_emit_extendsi): New function.
8085         * config/arm/arm-protos.h (arm_emit_extendsi): Add prototype.
8086         * config/arm/arm.h (arm_arch6j): Declare.
8087         * config/arm/arm.md: Add sign/zero extend insns.
8088
8089         2003-12-23  Paul Brook  <paul@codesourcery.com>
8090
8091         * config/arm/arm.c (all_architectures): Add armv6.
8092         * doc/invoke.texi: Document it.
8093
8094         2003-12-19  Paul Brook  <paul@codesourcery.com>
8095
8096         * config/arm/arm.md: Add load1 and load_byte "type" attrs.  Modify
8097         insn patterns to match.
8098         * config/arm/arm-generic.md: Ditto.
8099         * config/arm/cirrus.md: Ditto.
8100         * config/arm/fpa.md: Ditto.
8101         * config/amm/iwmmxt.md: Ditto.
8102         * config/arm/arm1026ejs.md: Ditto.
8103         * config/arm/arm1135jfs.md: Ditto.  Add insn_reservation and bypasses
8104         for 11_loadb.
8105
8106         2003-12-18  Nathan Sidwell  <nathan@codesourcery.com>
8107
8108         * config/arm/arm-protos.h (arm_no_early_alu_shift_value_dep): Declare.
8109         * config/arm/arm.c (arm_adjust_cost): Check shift cost for
8110         TYPE_ALU_SHIFT and TYPE_ALU_SHIFT_REG.
8111         (arm_no_early_store_addr_dep, arm_no_early_alu_shift_dep,
8112         arm_no_early_mul_dep): Correctly deal with conditional execution,
8113         parallels and single shift operations.
8114         (arm_no_early_alu_shift_value_dep): Define.
8115         * arm.md (attr type): Replace 'normal' with 'alu',
8116         'alu_shift' and 'alu_shift_reg'.
8117         (attr core_cycles): Adjust.
8118         (*addsi3_carryin_shift, andsi_not_shiftsi_si, *arm_shiftsi3,
8119         *shiftsi3_compare0, *notsi_shiftsi, *notsi_shiftsi_compare0,
8120         *not_shiftsi_compare0_scratch, *cmpsi_shiftsi, *cmpsi_shiftsi_swp,
8121         *cmpsi_neg_shiftsi, *arith_shiftsi, *arith_shiftsi_compare0,
8122         *arith_shiftsi_compare0_scratch, *sub_shiftsi,
8123         *sub_shiftsi_compare0, *sub_shiftsi_compare0_scratch,
8124         *if_shift_move, *if_move_shift, *if_shift_shift): Set type
8125         attribute appropriately.
8126         * config/arm/arm1026ejs.md (alu_op): Adjust.
8127         (alu_shift_op, alu_shift_reg_op): New.
8128         * config/arm/arm1136.md: Add better bypasses for early
8129         registers. Remove load[234] and store[234] bypasses.
8130         (11_alu_op): Adjust.
8131         (11_alu_shift_op, 11_alu_shift_reg_op): New.
8132
8133         2003-12-15  Nathan Sidwell  <nathan@codesourcery.com>
8134
8135         * config/arm/arm-protos.h (arm_no_early_store_addr_dep,
8136         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Declare.
8137         * config/arm/arm.c (arm_no_early_store_addr_dep,
8138         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Define.
8139         * config/arm/arm1026ejs.md: Add load-store bypass.
8140         * config/arm/arm1136jfs.md (11_alu_op): Take 2 cycles.
8141         Add bypasses between instructions.
8142
8143         2003-12-10  Paul Brook  <paul@codesourcery.com>
8144
8145         * config/arm/arm.c (arm_fpu_model): New variable.
8146         (arm_fload_abi): New variable.
8147         (target_fpe_name): Rename from target_fp_name.
8148         (target_fpu_name): New variable.
8149         (arm_is_cirrus): Remove.
8150         (fpu_desc): New struct.
8151         (all_fpus): Define.
8152         (pf_model_for_fpu): Define.
8153         (all_loat_abis): Define.
8154         (arm_override_options): Set fp arch flags based on -mfpu=
8155         and -float-abi=.
8156         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
8157         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
8158         (*): Use new TARGET_* flags.
8159         * config/arm/arm.h (TARGET_ANY_HARD_FLOAT): Remove.
8160         (TARGET_HARD_FLOAT): No longer implies TARGET_FPA.
8161         (TARGET_SOFT_FLOAT): Ditto.
8162         (TARGET_SOFT_FLOAT_ABI): New.
8163         (TARGET_MAVERICK): Rename from TARGET_CIRRUS.  No longer implies
8164         TARGET_HARD_FLOAT.
8165         (TARGET_VFP): No longer implies TARGET_HARD_FLOAT.
8166         (TARGET_OPTIONS): Add -mfpu=.
8167         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
8168         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
8169         (arm_pf_model): Define.
8170         (arm_float_abi_type): Define.
8171         (fputype): Add FPUTYPE_VFP.  Change SOFT_FPA->NONE
8172         * config/arm/arm.md: Use new TARGET_* flags.
8173         * config/arm/cirrus.md: Ditto.
8174         * config/arm/fpa.md: Ditto.
8175         * config/arm/elf.h (ASM_SPEC): Pass -mfloat-abi= and -mfpu=.
8176         * config/arm/semi.h (ASM_SPEC): Ditto.
8177         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Specify vfp.
8178         (FPUTYPE_DEFAULT): Set to VFP.
8179         * doc/invoke.texi: Document -mfpu= and -mfloat-abi=.
8180
8181         2003-11-22  Phil Edwards  <phil@codesourcery.com>
8182
8183         PR target/12476
8184         * config/arm/arm.c (arm_output_mi_thunk):  In Thumb mode, use
8185         'bx' instead of 'b' to avoid branch range restrictions.  Output
8186         the thunk immediately before the thunked-to function.
8187         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME):  Do not emit
8188         .thumb_func if a thunk is being generated.  Emit .code 16 along
8189         with .thumb_func if a thunk is not being generated.
8190
8191         2003-11-15  Nicolas Pitre <nico@cam.org>
8192
8193         * config/arm/arm.md (ashldi3, arm_ashldi3_1bit, ashrdi3,
8194         arm_ashrdi3_1bit, lshrdi3, arm_lshrdi3_1bit): New patterns.
8195         * config/arm/iwmmxt.md (ashrdi3_iwmmxt): Renamed from ashrdi3.
8196         (lshrdi3_iwmmxt): Renamed from lshrdi3.
8197         * config/arm/arm.c (IWMMXT_BUILTIN2): Renamed argument accordingly.
8198
8199         2003-11-12  Steve Woodford  <scw@wasabisystems.com>
8200             Ian Lance Taylor  <ian@wasabisystems.com>
8201
8202         * config/arm/lib1funcs.asm (ARM_DIV_BODY, ARM_MOD_BODY): Add new
8203         code for __ARM_ARCH__ >= 5 && ! defined (__OPTIMIZE_SIZE__).
8204
8205         2003-11-05  Phil Edwards  <phil@codesourcery.com>
8206
8207         * config/arm/arm.md (insn):  Add new V6 instruction names.
8208         (generic_sched):  New attr.
8209         * config/arm/arm-generic.md:  Use generic_sched here.
8210         * config/arm/arm1026ejs.md:  Do not model fetch/issue/decode
8211         stages of pipeline.  Adjust latency counts accordingly.
8212         * config/arm/arm1136jfs.md:  New file.
8213
8214         2003-10-28  Mark Mitchell  <mark@codesourcery.com>
8215
8216         * config/arm/arm.h (processor_type): New enumeration type.
8217         (CPP_ARCH_DEFAULT_SPEC): Set appropriately for ARM 926EJ-S,
8218         ARM1026EJ-S, ARM1136J-S, and ARM1136JF-S processor cores.
8219         (CPP_CPU_ARCH_SPEC): Likewise.
8220         * config/arm/arm.c (arm_tune): New variable.
8221         (all_cores): Use cores.def.
8222         (all_architectures): Add representative processor.
8223         (arm_override_options): Restructure way in which tuning
8224         information is deduced.
8225         * arm.md: Update "insn" and "type" attributes throughout.
8226         (insn): New attribute.
8227         (type): Compute "mult" from "insn" attribute.  Add load2,
8228         load3, load4 alternatives.
8229         (arm automaton): Move to arm-generic.md.
8230         * config/arm/arm-cores.def: New file.
8231         * config/arm/arm-generic.md: Likewise.
8232         * config/arm/arm1026ejs.md: Likewise.
8233
8234 2004-02-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
8235
8236         * doc/invoke.texi (SPARC options): Remove -mflat and
8237         all -mxxx (xxx:chip) options.
8238         * config/sparc/aout.h (DBX_REGISTER_NUMBER): Delete.
8239         * config/sparc/litecoff.h (DBX_REGISTER_NUMBER): Likewise.
8240         * config/sparc/netbsd-elf.h (DBX_REGISTER_NUMBER): Likewise.
8241         * config/sparc/sol2.h (DBX_REGISTER_NUMBER): Likewise.
8242         * config/sparc/sparc-protos.h: Delete sparc_flat_* prototypes.
8243         * config/sparc/sparc.c: Likewise.
8244         (sparc_output_function_prologue): Remove TARGET_FLAT handling.
8245         (sparc_nonflat_function_prologue): Rename into sparc_function_prologue.
8246         (sparc_output_function_epilogue): Remove TARGET_FLAT handling.
8247         (sparc_nonflat_function_epilogue): Rename into sparc_function_epilogue.
8248         (struct sparc_frame_info, current_frame_info, zero_frame_info): Delete.
8249         (sparc_flat_must_save_register_p): Likewise.
8250         (sparc_flat_compute_frame_size): Likewise.
8251         (sparc_flat_save_restore): Likewise.
8252         (sparc_flat_function_prologue): Likewise.
8253         (sparc_flat_function_epilogue): Likewise.
8254         (sparc_flat_epilogue_delay_slots): Likewise.
8255         (sparc_flat_eligible_for_epilogue_delay): Likewise.
8256         (sparc_function_ok_for_sibcall): Remove TARGET_FLAT handling.
8257         * config/sparc/sparc.h (MASK_FLAT, TARGET_FLAT): Delete.
8258         (TARGET_SWITCHES): Remove -mflat and all -mxxx (xxx:chip) options.
8259         (SPARC_INCOMING_INT_ARG_FIRST): Remove TARGET_FLAT handling.
8260         (CONDITIONAL_REGISTER_USAGE): Likewise.
8261         (FRAME_POINTER_REQUIRED): Likewise.
8262         (INITIAL_ELIMINATION_OFFSET): Likewise.
8263         (BASE_RETURN_VALUE_REG): Likewise.
8264         (BASE_OUTGOING_VALUE_REG): Likewise.
8265         (BASE_PASSING_ARG_REG): Likewise.
8266         (BASE_INCOMING_ARG_REG): Likewise.
8267         (INCOMING_REGNO): Likewise.
8268         (OUTGOING_REGNO): Likewise.
8269         (LOCAL_REGNO): Likewise.
8270         (DELAY_SLOTS_FOR_EPILOGUE): Likewise.
8271         (ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise.
8272         (EPILOGUE_USES): Likewise.
8273         * config/sparc/sparc.md ("isa" attribute): Change "v6" into "v7".
8274         ("flat" attribute): Delete.
8275         (do_builtin_setjmp_setup): Remove TARGET_FLAT and "flat" attribute
8276         handling.
8277         (call followed by jump define_peephole's): Delete.
8278         (exception_receiver): Likewise.
8279         (builtin_setjmp_receiver): Likewise.
8280         * config/sparc/t-sparclite (MULTILIB_OPTIONS): Remove -mflat.
8281
8282 2004-02-03  Paolo Bonzini  <bonzini@gnu.org>
8283
8284         PR c/11658
8285         PR c/13994
8286         * Makefile.in (c-parse.o, c-convert.o, c-typeck.o): Depend
8287         on langhooks.h.
8288         * objc/Make-lang.in (objc-parse.o): Depend on langhooks.h.
8289         * c-parse.in, c-convert.c, c-typeck.c, objc/objc-act.c:
8290         Include langhooks.h.  Replace c_common_truthvalue_conversion
8291         with the truthvalue_conversion language hook throughout.
8292         (expr_no_commas): Call default_conversion before save_expr
8293         for the first term of the production 'x ? : y'.
8294         * c-common.c (c_common_truthvalue_conversion): Remove
8295         obsolete block.  Invoke recursively the hook instead
8296         of this function.
8297         * c-convert.c (convert): handle ERROR_MARK_NODE.
8298         * c-typeck.c (build_binary_op): handle ERROR_MARK_NODE
8299         returned by the truthvalue_conversion language hook.
8300         * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
8301         c_objc_common_truthvalue_conversion.
8302         * c-objc-common.c (c_objc_common_truthvalue_conversion):
8303         New function.
8304         * c-tree.h (c_objc_common_truthvalue_conversion): Declare it.
8305         * objc/objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
8306         c_objc_common_truthvalue_conversion.
8307
8308 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
8309
8310         * config/c4x/c4x.h (FUNCTION_VALUE): Use gen_rtx_REG instead
8311         of gen_rtx.
8312         (LIBCALL_VALUE): Likewise.
8313         * config/ip2k/ip2k.c (mdr_try_propagate_clr_sequence): Use
8314         gen_rtx_CC0 instead of gen_rtx.
8315         * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use
8316         gen_rtx_fmt_e and gen_rtx_fmt_ee instead of gen_rtx.
8317         (m68hc11_expand_compare): Use gen_rtx_fmt_ee instead of
8318         gen_rtx.
8319         (m68hc11_emit_logical): Likewise.
8320
8321 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
8322
8323         * config/alpha/alpha.c, config/arm/arm.c, config/c4x/c4x.c,
8324         config/fr30/fr30.md, config/frv/frv.c, config/frv/frv.md,
8325         config/h8300/h8300.c, config/ia64/ia64.c, config/ip2k/ip2k.md,
8326         config/m32r/m32r.md, config/m68hc11/m68hc11.c,
8327         config/mips/mips.md, config/mmix/mmix.c,
8328         config/mn10300/mn10300.c, config/mn10300/mn10300.md,
8329         config/ns32k/ns32k.c, config/pa/pa.md, config/pdp11/pdp11.c,
8330         config/rs6000/altivec.md, config/s390/s390.c,
8331         config/s390/s390.h, config/s390/s390.md, config/sh/sh.c,
8332         config/sh/sh.h, config/sh/sh.md, config/stormy16/stormy16.c:
8333         Use const0_rtx instead of GEN_INT (0).  Do the same for other
8334         constants that are readily available.
8335
8336 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
8337
8338         * doloop.c, optabs.c, regmove.c, sched-deps.c,
8339         config/i386/i386.c, config/i386/i386.md: Use const0_rtx
8340         instead of GEN_INT (0).  Do the same for other constants that
8341         are readily available.
8342
8343 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
8344
8345         * combine.c (simplify_set): Use gen_rtx_fmt_e instead of
8346         gen_rtx.
8347         * emit-rtl.c (init_emit_once): Use gen_rtx_PC and gen_rtx_CC0
8348         instead of gen_rtx.
8349         * reload1.c (init_elim_table): Use gen_rtx_fmt_e instead of
8350         gen_rtx.
8351         * config/ns32k/ns32k.md (udivmodhi4): Use gen_rtx_IOR and
8352         gen_rtx_ASHIFT instead of gen_rtx.
8353         (udivmodqi4): Likewise.
8354
8355 2004-02-02  Richard Henderson  <rth@redhat.com>
8356
8357         PR target/13789
8358         * expr.c (store_expr): Use force_operand before emit_move_insn.
8359
8360 2004-02-02  Jeff Law  <law@redhat.com>
8361             Roger Sayle  <roger@eyesopen.com>
8362
8363         * tree.c (commutative_tree_code, associative_tree_code): New
8364         functions.
8365         (iterative_hash_expr): Use commutative_tree_code.
8366         * tree.h (commutative_tree_code, associative_tree_code): Declare.
8367         * fold-const.c (operand_equal_p): Use commutative_tree_code
8368         rather than inlining the commutativity check.
8369         (fold): Likewise.
8370
8371 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
8372
8373         * system.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Poison.
8374         * config/frv/frv-protos.h: Remove the prototype for
8375         frv_function_arg_keep_as_reference.
8376         * config/frv/frv.c (frv_function_arg_keep_as_reference):
8377         Remove.
8378         * config/frv/frv.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Likewise.
8379         * config/stormy16/stormy16.h: Remove the commented-out
8380         definition of FUNCTION_ARG_KEEP_AS_REFERENCE.
8381
8382 2004-02-03  Alan Modra  <amodra@bigpond.net.au>
8383
8384         PR target/13914
8385         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Use ap
8386         for retaddr_column.
8387
8388 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
8389
8390         * genemit.c (gen_exp): Generate gen_rtx_fmt_e* instead of
8391         gen_rtx.
8392
8393 2004-02-02  Eric Christopher  <echristo@redhat.com>
8394             Zack Weinberg  <zack@codesourcery.com>
8395
8396         * c-opts.c (c_common_handle_option): Add -finput-charset.
8397         * c.opt: Ditto.
8398         * cppcharset.c (one_iso88591_to_utf8): Remove.
8399         (convert_iso88591_utf8): Ditto.
8400         (conversion_tab): Remove 8859-1 converter.
8401         (_cpp_input_to_utf8): Remove.
8402         (_cpp_init_iconv_buffer): Ditto.
8403         (_cpp_close_iconv_buffer): Ditto.
8404         (_cpp_convert_input): New function.
8405         (_cpp_default_encoding): Ditto.
8406         * cpphash.h: Add/remove prototypes for above.
8407         * cppfiles.c (read_file_guts): Use _cpp_convert_input.
8408         * cppinit.c (cpp_create_reader): Use _cpp_default_encoding
8409         for narrow execution and input character sets.
8410         * cpplib.c (cpp_push_buffer): Delete uses of removed functions.
8411         * doc/cppopts.texi: Document -finput-charset.
8412
8413 2004-02-02  David Edelsohn  <edelsohn@gnu.org>
8414
8415         * rtlanal.c (refers_to_regno_p): Test regno, not inner_regno,
8416         against FIRST_PSEUDO_REGISTER.
8417
8418 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
8419
8420         * doc/invoke.texi (SPARC options): Further improve.
8421
8422 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
8423
8424         * config/arm/arm.md, config/c4x/c4x.md, config/cris/cris.md,
8425         config/h8300/h8300.c, config/ip2k/ip2k.md,
8426         config/iq2000/iq2000.c, config/mips/mips.c,
8427         config/rs6000/rs6000.c, config/rs6000/rs6000.md,
8428         config/sh/sh.c, config/sh/sh.md, config/stormy16/stormy16.c,
8429         config/v850/v850.md: Fix indentation.
8430
8431 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
8432
8433         * config/sparc/sparc.c (function_arg_slotno): Align TImode
8434         arguments on a 16-byte boundary in the parameter array if ARCH64.
8435         Split handling of TFmode.
8436
8437 2004-02-02  Paolo Bonzini  <bonzini@gnu.org>
8438
8439         * rtlanal.c (reg_overlap_mentioned_p) [!ENABLE_CHECKING]:
8440         Don't test CONSTANT_P (x).
8441         (reg_overlap_mentioned_p): Merge check for STRICT_LOWPART,
8442         ZERO_EXTRACT, SIGN_EXTRACT with the switch statement.
8443         Fix misindentation.
8444
8445 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
8446
8447         * doc/invoke.texi (SPARC options): Document that -mflat is deprecated.
8448
8449 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
8450
8451         * config/arc/arc.md, config/arm/arm.c, config/arm/arm.md,
8452         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.md,
8453         config/frv/frv.c, config/h8300/h8300.c, config/ip2k/ip2k.md,
8454         config/iq2000/iq2000.c, config/m32r/m32r.c,
8455         config/mcore/mcore.c, config/mips/mips.c, config/mmix/mmix.md,
8456         config/mn10300/mn10300.c, config/rs6000/rs6000.c,
8457         config/rs6000/rs6000.md, config/sh/sh.c, config/sh/sh.md,
8458         config/stormy16/stormy16.c, config/v850/v850.md,
8459         config/xtensa/xtensa.c: Replace gen_rtx with gen_rtx_fmt_e*.
8460
8461 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
8462
8463         * config/mcore/mcore.c (block_move_sequence): Replace
8464         gen_rtx_CONST_INT with GEN_INT.
8465
8466 2004-02-02  Jan Hubicka  <jh@suse.cz>
8467
8468         * alias.c (record_set): Use hard_regno_nregs.
8469         * bt-load.c (find_btr_reference, note_btr_set): Likewise.
8470         * builtins.c (apply_args_size): Likewise.
8471         * caller-save.c (setup_save_areas, save_call_clobbered_regs,
8472         mark_set_regs, add_stored_regs, mark_referenced_regs,
8473         insert_restore, insert_save, insert_one_insn): Likewise.
8474         * cfgcleanup.c: Include regs.h
8475         (mark_effect, mentions_nonequal_regs): Likewise.
8476         * cfgrtl.c (mark_killed_regs): Likewise
8477         * combine.c (update_table_tick, record_value_for_reg,
8478         record_dead_and_set_regs, get_last_value_validate, use_crosses_set_p,
8479         reg_dead_at_p_1, reg_dead_at_p, mark_used_regs_combine, move_deaths,
8480         reg_bitfield_target_p, distribute_notes): Likewise.
8481         * cse.c (mention_regs, insert, invalidate, invalidate_for_call,
8482         exp_equiv_p, cse_insn): Likewise.
8483         * cselib.c (cselib_lookup): Likewise.
8484         (cselib_invalidate_regno, cselib_record_set): Likewise.
8485         * df.c (df_ref_record): Likewise.
8486         * dwarf2out.c (reg_loc_descriptor, multiple_reg_loc_descriptor):
8487         Likewise.
8488         * flow.c (mark_reg, insn_dead_p, mark_set_1, mark_used_reg,
8489         count_or_remove_death_notes_bb): Likewise.
8490         * function.c (aggregate_value_p, keep_stack_depressed): Likewise.
8491         * gloval.c (global_alloc, find_reg, mark_reg_store, mark_reg_conflicts,
8492         mark_reg_death, set_preference, reg_becomes_live, reg_dies): Likewise.
8493         * integrate.c (mark_stores): Likewise.
8494         * jump.c (delete_prior_computation): Likewise.
8495         * lcm.c (reg_dies, reg_becomes_live): Likewise.
8496         * local-alloc.c (combine_regs, find_free_reg, post_mark_life): Likewise.
8497         * loop.c (LOOP_REGNO_NREGS): Likewise.
8498         * postreload.c (reload_combine, reload_combine_note_store,
8499         reload_combine_note_use, reload_cse_move2add, move2add_note_store): Likewise.
8500         * ra-colorize.c (combine, color_usable_p, get_free_reg,
8501         calculate_dont_begin, calculate_dont_begin, colorize_one_web,
8502         try_recolor_web, insert_coalesced_conflicts, check_colors,
8503         break_precolored_alias): Likewise.
8504         * ra-debug.c: Include regs.h
8505         (ra_print_rtx_object): Likewise.
8506         * ra-rewrite (choose_spill_colors): Likewise.
8507         (spill_same_color_p, update_spill_colors, spill_is_free): Likewise.
8508         * ra.c (init_ra): Likewise.
8509         * recog.c (reg_fits_class_p, peep2_reg_dead_p,
8510         peep2_find_free_register): Likewise.
8511         * reg-stack.c (subst_stack_regs_pat, convert_regs_exit): Likewise.
8512         * regclass.c (hard_regno_nregs): New array.
8513         (init_reg_modes_once): Initialize it.
8514         (choose_hard_reg_mode): Use it.
8515         (record_reg_classes): Likewise.
8516         * regmove.c (mark_flags_life_zones): Likewise.
8517         * regrename.c (note_sets, clear_dead_regs, regrename_optimize,
8518         scan_rtx_reg, dump_def_use_chain, kill_value, set_value_regno,
8519         copy_value, maybe_mode_change, find_oldest_value_reg,
8520         copyprop_hardreg_forward_1):
8521         * regs.h (hard_regno_nregs): Declare.
8522         * realod.c (reload_inner_reg_of_subreg): Use it.
8523         (push_reload, combine_reloads, find_dummy_reload,
8524         hard_reg_set_here_p, operands_match_p, decompose, find_reloads,
8525         refers_to_regno_for_reload_p, find_equiv_reg, regno_clobbered_p,
8526         reload_adjust_reg_for_mode): Likewise.
8527         * reload1.c (compute_use_by_pseudos, count_pseudo,
8528         count_spilled_pseudo, find_reg, find_reload_regs, mark_home_live,
8529         spill_hard_reg, forget_old_reloads_1, mark_reload_reg_in_use,
8530         clear_reload_reg_in_use, reload_reg_free_for_value_p, free_for_value_p
8531         allocate_reload_reg, choose_reload_regs, emit_reload_insns,
8532         delete_output_reload): Likewise.
8533         * resource.c (update_live_status, mark_referenced_resources,
8534         mark_set_resources, mark_target_live_regs): Likewise.
8535         * rtlanal.c:  Include regs.h
8536         (refers_to_regno_p, reg_overlap_mentioned_p, dead_or_set_p,
8537         dead_or_set_regno_p, find_regno_note, find_reg_fusage,
8538         subreg_regno_offset, subreg_offset_representable_p,
8539         hoist_test_store): Likewise.
8540         * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
8541         * sched-rgn.c (check_live_1, update_live_1): Likewise.
8542         * stmt.c: Include regs.h
8543         (decl_conflicts_with_clobbers_p): Likewise.
8544         * varasm.c (make_decl_rtl): Likewise.
8545         * Makefile.in (cfgcleanup.o, rtlanal.o, ra-debug.o): Add regs.h dependnecy.
8546
8547 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
8548
8549         * config/arm/arm.c, config/arm/arm.h, config/arm/arm.md,
8550         config/arm/linux-gas.h, config/arm/netbsd-elf.h,
8551         config/arm/netbsd.h, config/arm/pe.c, config/avr/avr.c,
8552         config/avr/avr.h, config/avr/avr.md, config/c4x/c4x.h,
8553         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
8554         config/frv/frv.h, config/ip2k/ip2k.c, config/iq2000/iq2000.c,
8555         config/iq2000/iq2000.h, config/m32r/m32r.c,
8556         config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
8557         config/m68hc11/m68hc11.md, config/m68k/m68k.md,
8558         config/mcore/mcore.c, config/mcore/mcore.h,
8559         config/mcore/mcore.md, config/mips/mips.c,
8560         config/ns32k/ns32k.h, config/ns32k/ns32k.md,
8561         config/rs6000/rs6000.c, config/s390/s390.c,
8562         config/s390/s390.md, config/sparc/sparc.c, config/v850/v850.c,
8563         config/xtensa/xtensa.h, config/xtensa/xtensa.md: Replace
8564         "gen_rtx (FOO, " with "gen_rtx_FOO (".
8565
8566 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
8567
8568         * config/h8300/h8300.md (two peephole2's): New.
8569
8570 2004-02-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
8571
8572         * config/sparc/sol2-bi.h: Handle TARGET_CPU_ultrasparc3.
8573         (CPP_CPU_SPEC): Handle -mcpu=ultrasparc3.
8574         (ASM_CPU_SPEC): Likewise
8575         * config/sparc/sol2.h: Handle TARGET_CPU_ultrasparc3.
8576         (ASM_CPU_SPEC): Remove -mcpu=v8plus.  Handle -mcpu=ultrasparc3.
8577
8578 2004-02-01  Roger Sayle  <roger@eyesopen.com>
8579
8580         * builtins.c (expand_builtin_pow): If flag_unsafe_math_optimizations
8581         isn't set, don't call expand_builtin_mathfn_2 to use the pow optab.
8582         (expand_builtin): Always call expand_builtin_pow.
8583
8584 2004-02-01  Roger Sayle  <roger@eyesopen.com>
8585
8586         * builtins.def (BUILT_IN_SIGNBIT, BUILT_IN_SIGNBITF,
8587         BUILT_IN_SIGNBITL): New GCC builtins.
8588         * builtins.c (expand_builtin_signbit): New function to RTL expand
8589         calls to signbit, signbitf and signbitl as inline intrinsics.
8590         (expand_builtin): Call expand_builtin_signbit for BUILT_IN_SIGNBIT*.
8591         (fold_builtin_signbit): New function to perform constant folding
8592         of signbit, signbitf and signbitl.
8593         (fold_builtin): Call fold_builtin_signbit for BUILT_IN_SIGNBIT*.
8594
8595         * doc/extend.texi: Document new signbit{,f,l} builtins.
8596
8597 2004-02-01  Richard Sandiford  <rsandifo@redhat.com>
8598
8599         * config/mips/mips.md (adddi3_internal_2): Remove superfluous %s.
8600
8601 2004-02-01  Chris Demetriou  <cgd@broadcom.com>
8602
8603         * config/mips/mips.h (PREDICATE_CODES): Remove entries for
8604         "mips_const_double_ok" and "simple_memory_operand", which were
8605         removed from the MIPS port with the mips-3_4-rewrite branch merge.
8606         * config/mips/mips.c (mips16_lay_out_constants): Update comment
8607         for removal of simple_memory_operand.
8608
8609 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
8610
8611         * config/c4x/c4x.md: Use GEN_INT instead of
8612         gen_rtx (CONST_INT, ...).
8613
8614 2004-01-31  Richard Henderson  <rth@redhat.com>
8615
8616         * varasm.c (output_constant_pool): Don't zap the pool.
8617
8618 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
8619
8620         * genrecog.c (decision_type): Add DT_const_int.
8621         (write_cond) [DT_const_int]: Print a comparison against small
8622         constant.
8623         (write_node): Simplify comparisons against small constants
8624         before printing tests.
8625
8626 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
8627
8628         * config/m32r/m32r.c (m32r_load_pic_register): Use GEN_INT
8629         instead of gen_rtx_CONST_INT.
8630
8631 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
8632
8633         * config/xtensa/xtensa.h (DYNAMIC_CHAIN_ADDRESS): Use GEN_INT
8634         instead of gen_rtx_CONST_INT.
8635
8636 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
8637
8638         * target-def.h (TARGET_STRICT_ARGUMENT_NAMING): Define as
8639         hook_bool_CUMULATIVE_ARGS_false.
8640         * targhooks.c (default_strict_argument_naming): Rename to
8641         hook_bool_CUMULATIVE_ARGS_false.
8642         * targhooks.h: Update the prototype for
8643         default_strict_argument_naming.
8644
8645 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
8646
8647         * config/sh/sh.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
8648         * config/sh/sh.h: Likewise.
8649         * config/sh/sh.md: Likewise.
8650
8651 2004-01-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
8652
8653         * doc/invoke.texi (SPARC options): Restructure and update.
8654
8655 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
8656
8657         * system.h (PROMOTE_FUNCTION_ARGS, STRUCT_VALUE_INCOMING, and
8658         STRICT_ARGUMENT_NAMING): Poison.
8659         * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS): Define as
8660         hook_bool_tree_false.
8661         * targhooks.c (default_promote_function_args): Remove.
8662         (default_struct_value_rtx): Don't use STRUCT_VALUE_INCOMING.
8663         Don't check incoming.
8664         (default_strict_argument_naming): Don't use
8665         STRICT_ARGUMENT_NAMING.
8666         * targhooks.h: Remove the prototype for
8667         default_promote_function_args.
8668
8669 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
8670
8671         * config/i386/i386-protos.h: Remove the prototype for
8672         ix86_setup_incoming_varargs.
8673         * config/i386/i386.c (TARGET_SETUP_INCOMING_VARARGS): New.
8674         (ix86_setup_incoming_varargs): Make it static.
8675         * config/i386/i386.h (SETUP_INCOMING_VARARGS): Remove.
8676
8677 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
8678
8679         * alloc-pool.c: Fix comment typos.
8680         * builtin-types.def: Likewise.
8681         * builtins.def: Likewise.
8682         * c-pretty-print.c: Likewise.
8683         * df.h: Likewise.
8684         * reload1.c: Likewise.
8685
8686 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
8687
8688         * doc/invoke.texi: Follow spelling conventions.
8689         * doc/tm.texi: Likewise.
8690
8691 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
8692
8693         * doc/install.texi: Fix typos.
8694         * doc/invoke.texi: Likewise.
8695
8696 2004-01-31  Ulrich Weigand  <uweigand@de.ibm.com>
8697
8698         * config/s390/s390.c (s390_decompose_address): Do not treat virtual
8699         registers as pointers.
8700         * config/s390/s390.md ("*la_31" second peephole2): Fix incorrect mode.
8701
8702 2004-01-31  Paolo Bonzini  <bonzini@gnu.org>
8703
8704         * combine.c (cse_main): Set gen_lowpart to gen_lowpart_for_combine
8705         and restore it to gen_lowpart_general on exit.
8706         (gen_lowpart_for_combine): Adjust all callers to go through
8707         gen_lowpart.
8708         * cse.c (cse_main): Set gen_lowpart to gen_lowpart_if_possible
8709         and restore it to gen_lowpart_general on exit.
8710         (gen_lowpart_if_possible): Adjust all callers to go through
8711         gen_lowpart.
8712         * emit-rtl.c (gen_lowpart_general): New name of gen_lowpart.
8713         (gen_lowpart): Declare as pointer to function, initialized to
8714         gen_lowpart_general.
8715         * rtl.h (gen_lowpart): Declare as pointer to function.
8716
8717 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
8718
8719         * bt-load.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
8720         * calls.c: Likewise.
8721         * emit-rtl.c: Likewise.
8722         * function.c: Likewise.
8723         * reload1.c: Likewise.
8724         * config/i386/cygming.h: Likewise.
8725         * config/i386/i386.c: Likewise.
8726         * config/i386/winnt.c: Likewise.
8727
8728 2004-01-30  Dara Hazeghi  <dhazeghi@yahoo.com>
8729
8730         PR bootstrap/9249
8731         * doc/install.texi: document --enable-__cxa_atexit option.
8732         * configure.ac: Disable __cxa_atexit if not supported.
8733         * configure: Regenerate.
8734
8735 2003-01-30  Daniel Berlin  <dberlin@dberlin.org>
8736
8737         * ggc-zone.c (ggc_free): New function.
8738
8739 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
8740
8741         alloc-pool.c, c-lex.c, c-pragma.h, c-semantics.c, cfghooks.c,
8742         cfghooks.h, cfglayout.c, cfgloopmanip.c, debug.c, debug.h,
8743         flow.c, genextract.c, ggc-common.c, ggc-page.c, ggc.h,
8744         ifcvt.c, jump.c, loop-unswitch.c, timevar.c, timevar.def,
8745         tree-optimize.c, vmsdbgout.c, config/fp-bit.c,
8746         config/alpha/alpha.c, config/alpha/alpha.h,
8747         config/alpha/alpha.md, config/alpha/unicosmk.h,
8748         config/alpha/vms.h, config/arm/linux-elf.h, config/avr/avr.c,
8749         config/c4x/c4x-protos.h, config/c4x/c4x.md,
8750         config/d30v/d30v.h, config/frv/frv.md, config/frv/frvbegin.c,
8751         config/frv/frvend.c, config/i386/cygming.h,
8752         config/i386/djgpp.h, config/i386/emmintrin.h,
8753         config/i386/gthr-win32.c, config/i386/i386-interix.h,
8754         config/i386/i386-protos.h, config/i386/openbsd.h,
8755         config/i386/winnt.c, config/i386/xm-mingw32.h,
8756         config/i386/xmmintrin.h, config/ia64/ia64.md,
8757         config/iq2000/iq2000.md, config/m32r/m32r.md,
8758         config/m68k/m68k.md, config/mcore/mcore-elf.h,
8759         config/mcore/mcore.md, config/mips/elf.h, config/mips/elf64.h,
8760         config/mips/iris5gas.h, config/mips/iris6.h,
8761         config/mips/iris6gas.h, config/mips/linux.h,
8762         config/mips/mips.md, config/mips/netbsd.h,
8763         config/mips/openbsd.h, config/mips/windiss.h,
8764         config/pa/fptr.c, config/rs6000/aix.h,
8765         config/rs6000/altivec.h, config/rs6000/darwin.h,
8766         config/rs6000/xcoff.h, config/s390/s390-protos.h,
8767         config/s390/s390.c, config/s390/s390.h, config/s390/s390.md,
8768         config/sh/netbsd-elf.h, config/sh/sh.h, config/sh/vxworks.h,
8769         config/sparc/sol2.h: Update copyright.
8770
8771 2004-01-30  Kelley Cook  <kcook@gcc.gnu.org>
8772
8773         * Makefile.in (abs_docdir, abs_srcdir): Define.
8774         (doc/%.dvi, doc/gccinstall.dvi): Use $(abs_docdir).
8775
8776 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
8777
8778         * genconfig.c (main): Have CC0_P check its operand even on a
8779         target without cc0.
8780
8781 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
8782
8783         * config/alpha/alpha.c: Remove mentions of deprecates macros
8784         in comments, remove some target-independent comments about target
8785         macros, and/or add minimal function comments for target hook
8786         implementations.
8787         * config/avr/avr.c: Likewise.
8788         * config/ia64/ia64.h: Likewise.
8789         * config/ip2k/ip2k.c: Likewise.
8790         * config/iq2000/iq2000.c: Likewise.
8791         * config/m32r/m32r.h: Likewise.
8792         * config/m68hc11/m68hc11.c: Likewise.
8793         * config/mcore/mcore.c: Likewise.
8794         * config/mmix/mmix.c: Likewise.
8795         * config/mn10300/mn10300.c: Likewise.
8796         * config/pa/pa.c: Likewise.
8797         * config/pdp11/pdp11.c: Likewise.
8798         * config/rs6000/rs6000.h: Likewise.
8799         * config/sh/sh.c: Likewise.
8800         * config/sh/sh.h: Likewise.
8801         * config/sparc/sparc.c: Likewise.
8802         * config/sparc/sparc.h: Likewise.
8803         * config/stormy16/stormy16.c: Likewise.
8804         * config/xtensa/xtensa.c: Likewise.
8805
8806 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
8807
8808         PR optimization/12147
8809         * reload1.c (reload_reg_free_p): RELOAD_OTHER conflicts with
8810         RELOAD_FOR_OPADDR_ADDR.
8811         (reload_reg_reaches_end_p): RELOAD_FOR_OTHER_ADDRESS register
8812         might be reused as RELOAD_FOR_OPADDR_ADDR register.
8813
8814 2004-01-30  Jan Hubicka  <jh@suse.cz>
8815
8816         * reload.c (get_secondary_mem): Fix updating of
8817         secondary_memlocs_elim_used.
8818
8819 2004-01-30  Richard Henderson  <rth@redhat.com>
8820
8821         * varasm.c (struct rtx_const, struct pool_constant): Remove.
8822         (MAX_RTX_HASH_TABLE): Remove.
8823         (const_rtx_hash_table, const_rtx_sym_hash_table): Remove.
8824         (first_pool, last_pool, pool_offset): Remove.
8825         (struct rtx_constant_pool): Split out from ...
8826         (struct varasm_status): ... here.  Reference one via pointer.
8827         (struct constant_descriptor_rtx): Merge struct pool_constant.
8828         (SYMHASH): Remove.
8829         (decode_rtx_const): Remove.
8830         (const_hash_rtx, compare_constant_rtx): Remove.
8831         (record_constant_rtx): Remove.
8832         (const_desc_rtx_hash, const_desc_rtx_eq): New.
8833         (const_desc_rtx_sym_hash, const_desc_rtx_sym_eq): New.
8834         (const_rtx_hash_1, const_rtx_hash): New.
8835         (init_varasm_status): Allocate a rtx_constant_pool, and its hashes.
8836         (simplify_subtraction): Use simplify_rtx.
8837         (force_const_mem): Rewrite to use new data structures.
8838         (find_pool_constant): Likewise.
8839         (get_pool_constant, get_pool_constant_mark,
8840         get_pool_constant_for_function, get_pool_mode,
8841         get_pool_mode_for_function, get_pool_offset, get_pool_size): Likewise.
8842         (output_constant_pool_2): Split out from output_constant_pool.
8843         (output_constant_pool_1): Likewise.  Use new pool datastructures.
8844         (output_constant_pool): Zap entire pool datastructure.
8845         (mark_constant): Use new pool datastructures.
8846         (mark_constants): Use for_each_rtx.
8847         (mark_constant_pool): Use new pool datastructures.
8848
8849 2004-01-30  Fariborz Jahanian <fjahanian@apple.com>
8850
8851         * config/rs6000/rs6000.c (rs6000_emit_move): Remove #if 0.
8852         Copy operands[1] to pseudo for simplify_gen_subreg.
8853
8854 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
8855
8856         * gcse.c (bypass_block): Fix a typo in the previous check-in
8857         to the file.
8858
8859 2004-01-30  Andrew Pinski <pinskia@physics.uc.edu>
8860
8861         * toplev.c: Include alloc-pool.h.
8862         * Makefile.in (toplev.c): Update dependencies.
8863
8864 2004-01-30  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8865
8866         * combine.c (simplify_shift_const, case XOR): Be careful when
8867         commuting XOR with ASHIFTRT.
8868
8869 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
8870             Eric Botcazou  <ebotcazou@libertysurf.fr>
8871
8872         * config/sparc/sparc-protos.h: Remove the prototype for
8873         sparc_builtin_saveregs.
8874         * config/sparc/sparc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
8875         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
8876         (TARGET_PROMOTE_PROTOTYPES): Likewise.
8877         (TARGET_STRUCT_VALUE_RTX): Likewise.
8878         (TARGET_RETURN_IN_MEMORY): Likewise.
8879         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
8880         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
8881         (sparc_builtin_saveregs): Make it static.
8882         (sparc_promote_prototypes): New.
8883         (sparc_struct_value_rtx): Likewise.
8884         (sparc_return_in_memory): Likewise.
8885         * config/sparc/sparc.h: (PROMOTE_FUNCTION_ARGS): Remove.
8886         (PROMOTE_FUNCTION_RETURN): Likewise.
8887         (RETURN_IN_MEMORY): Likewise.
8888         (STRUCT_VALUE): Likewise.
8889         (STRUCT_VALUE_INCOMING): Likewise.
8890         (EXPAND_BUILTIN_SAVEREGS): Likewise.
8891         (STRICT_ARGUMENT_NAMING): Likewise.
8892         (PROMOTE_PROTOTYPES): Likewise.
8893
8894         * config/sparc/sparc.h (PROMOTE_MODE): Use word_mode.
8895
8896 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
8897
8898         PR c/12818
8899         * varasm.c (const_hash_1) <STRING_CST>: Use the
8900         address to compute the hash value if flag_writable_strings.
8901         (compare_constant) <STRING_CST>: Compare the addresses
8902         if flag_writable_strings.
8903         (build_constant_desc): Do not copy the expression for a
8904         STRING_CST if flag_writable_strings.
8905
8906 2004-01-30  Jan Hubicka  <jh@suse.cz>
8907
8908         * alloc-pool.c: Include hashtab.h
8909         (alloc_pool_descriptor): New structure
8910         (alloc_pool_hash): New global variable.
8911         (hash_descriptor, eq_descriptor, alloc_pool_descriptor): New.
8912         (create_alloc_pool): Update statistics.
8913         (free_alloc_pool): Likewise.
8914         (pool_alloc): Likewise.
8915         (output_info): New structure
8916         (print_statistics, dump_alloc_pool_statistics): New function.
8917         * alloc-pool.h (alloc_pool_def): Turn name to be constant.
8918         (dump_alloc_pool_statistics): Declare.
8919         * toplev.c (finalize):  Dump statistics.
8920
8921         * reload.c (secondary_memlocs_elim_used): New static variable.
8922         (get_secondary_mem): Update it.
8923         (find_reloads): Use it.
8924
8925 2004-01-30  Steven Bosscher <s.bosscher@student.tudelft.nl>
8926
8927         * toplev.c: Fix broken checkin of 2003-12-30, again.
8928
8929 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
8930
8931         * configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for
8932         s390*-*-* targets by specifying a 'nop' insn.
8933         * configure: Regenerate.
8934
8935 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
8936
8937         PR target/11475
8938         * config/sparc/sparc.md (movhi_lo_sum): Tighten predicates.
8939
8940 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
8941
8942         * emit-rtl.c (change_address): Use XEXP (memref, 0) instead
8943         of addr when creating MEM copy.
8944
8945 2004-01-29  Devang Patel  <dpatel@apple.com>
8946
8947         * dwarf2out.c (gen_field_die): Do not equate decl number to die.
8948
8949 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
8950
8951         PR inline-asm/6162
8952         * reload.c (find_reloads): Only support one pair of commutative
8953         operands.
8954
8955 2004-01-29  Roger Sayle  <roger@eyesopen.com>
8956
8957         PR java/13824
8958         * tree.c (unsafe_for_reeval): Handle EXIT_BLOCK_EXPR nodes specially
8959         as their EXIT_BLOCK_LABELED_BLOCK operands can lead to unbounded
8960         recursion.
8961
8962 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
8963
8964         * config/frv/frv.c: Don't mention deprecated macros in
8965         comments.  Remove some target-independent comments about
8966         target macros.
8967         * config/frv/frv.h: Likewise.
8968
8969 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8970
8971         * cfghooks.c (split_block): Set probability and count of the
8972         new edge.
8973
8974 2005-01-29  Josef Zlomek  <zlomekj@suse.cz>
8975
8976         * dwarf2out.c (struct die_struct): Added field decl_id.
8977         (decl_die_table): Changed to hash table.
8978         (decl_die_table_allocated): Deleted.
8979         (decl_die_table_in_use): Deleted.
8980         (DECL_DIE_TABLE_INCREMENT): Deleted.
8981         (decl_die_table_hash): New function.
8982         (decl_die_table_eq): New function.
8983         (lookup_decl_die): Lookup in a hash table.
8984         (equate_decl_number_to_die): Insert into a hash table.
8985         (dwarf2out_init): Init hash table decl_die_table.
8986
8987 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
8988
8989         PR optimization/13424
8990         * expr.c (store_constructor): Revert 2003-12-03 change.
8991
8992         * emit-rtl.c (change_address): Check also if MEM_ATTRS is set as
8993         expected before returning early.  Avoid sharing RTL if they
8994         need to be changed.
8995
8996         * config/i386/i386.c (ix86_expand_movstr): Rework rep_mov and strmov
8997         handling so that memory attributes are preserved.  Don't call
8998         ix86_set_move_mem_attrs.
8999         (ix86_set_move_mem_attrs_1, ix86_set_move_mem_attrs): Removed.
9000         (ix86_expand_clrstr): Rename src argument to
9001         dst.  Rework rep_stos and strset handling so that memory attributes
9002         are preserved.
9003         (ix86_expand_strlen): Pass src argument to
9004         ix86_expand_strlensi_unroll_1.  Rework strlenqi_1 handling so that
9005         memory attributes are preserved.
9006         (ix86_expand_strlensi_unroll_1): Add src argument.  Use
9007         change_address instead of gen_rtx_MEM.
9008         * config/i386/i386.md (strmov, strmov_singleop, rep_mov): New
9009         expanders.
9010         (strmovdi_rex64, strmovsi, strmovsi_rex64, strmovhi, strmovhi_rex64,
9011         strmovqi, strmovqi_rex64): Remove.
9012         (rep_mov*, strmov*): Prefix insn names with *.
9013         (strset, strset_singleop, rep_stos): New expanders.
9014         (strsetdi_rex64, strsetsi, strsetsi_rex64, strsethi, strsethi_rex64,
9015         strsetqi, strsetqi_rex64): Remove.
9016         (rep_stos*, strset*): Prefix insn names with *.
9017         (rep_stosqi_rex64): Likewise.  Fix mode of dirflag reg from DImode
9018         to SImode.
9019         (cmpstrsi): Rework cmpstrqi_1 handling so that memory attributes
9020         are preserved.
9021         (cmpstrqi_nz_1, cmpstrqi_nz_rex_1, cmpstrqi_1, cmpstrqi_rex_1):
9022         Prefix insn names with *.
9023         (cmpstrqi_nz_1, cmpstrqi_1): New expanders.
9024         (strlenqi_1, strlenqi_rex_1): Prefix insn names with *.
9025         (strlenqi_1): New expander.
9026         * config/i386/i386.h (ix86_set_move_mem_attrs): Remove prototype.
9027
9028 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9029
9030         * Makefile.in (cfghooks.o): Add TIMEVAR_H and toplev.h dependency.
9031         * basic-block.h (tidy_fallthru_edge, tidy_fallthru_edges, dump_bb,
9032         verify_flow_info): Declaration removed.
9033         * cfg.c (verify_flow_info, dump_bb): Moved to cfghooks.c.
9034         (debug_bb, debug_bb_n): Add argument to dump_bb call.
9035         * cfgcleanup.c (try_simplify_condjump, try_crossjump_to_edge,
9036         try_optimize_cfg, delete_unreachable_blocks): Use delete_basic_block
9037         instead of delete_block.
9038         * cfghooks.c: Include timevar.h and toplev.h.
9039         (cfg_hooks): Define here.
9040         (verify_flow_info, dump_bb): Moved from cfg.c.
9041         (redirect_edge_and_branch, redirect_edge_and_branch_force,
9042         split_block, split_block_after_labels, move_block_after,
9043         delete_basic_block, split_edge, create_basic_block,
9044         create_empty_bb, can_merge_blocks_p, merge_blocks,
9045         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
9046         New functions.
9047         * cfghooks.h (struct cfg_hooks): Added fields name,
9048         make_forwarder_block, tidy_fallthru_edge and
9049         move_block_after. Changed type of verify_flow_info, dump_bb,
9050         split_block fields. Renamed cfgh_split_edge and delete_block
9051         fields.
9052         (redirect_edge_and_branch, redirect_edge_and_branch_force,
9053         split_block, delete_block, split_edge, create_basic_block,
9054         can_merge_blocks_p, merge_blocks): Macros removed.
9055         (cfg_hooks): Do not export.
9056         (verify_flow_info, dump_bb, redirect_edge_and_branch,
9057         redirect_edge_and_branch_force, split_block, split_block_after_labels,
9058         move_block_after, delete_basic_block, split_edge, create_basic_block,
9059         create_empty_bb, can_merge_blocks_p, merge_blocks,
9060         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
9061         Declare.
9062         (cfg_layout_rtl_cfg_hooks): Declare.
9063         * cfgloop.c (update_latch_info, mfb_keep_just, mfb_keep_nonlatch):
9064         New functions.
9065         (canonicalize_loop_headers): Use new semantics of make_forwarder_block.
9066         (redirect_edge_with_latch_update): Removed.
9067         (make_forwarder_block): Moved to cfghooks.c, semantics changed.
9068         * cfgloopmanip.c (remove_bbs): Do not update dominators here.
9069         * cfgrtl.c (cfg_layout_split_block, rtl_split_block, rtl_dump_bb,
9070         rtl_delete_block, rtl_split_block, rtl_merge_blocks,
9071         tidy_fallthru_edge, rtl_split_edge, cfg_layout_delete_block,
9072         cfg_layout_merge_blocks, cfg_layout_split_edge): Partly moved to
9073         cfghooks.c.
9074         (rtl_create_basic_block): Coding style fix.
9075         (rtl_tidy_fallthru_edge, rtl_move_block_after,
9076         rtl_make_forwarder_block): New functions.
9077         (update_cfg_after_block_merging): Removed.
9078         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hooks): Fill in new entries.
9079         * flow.c (verify_wide_reg, verify_local_live_at_start): Add argument
9080         to dump_bb.
9081         * ifcvt.c (merge_if_block, find_cond_trap, find_if_case_1,
9082         find_if_case_2): Don't update dominators.
9083         * timevar.def (TV_CFG_VERIFY): New.
9084         * loop-unswitch.c (unswitch_loop): Don't call add_to_dominance_info.
9085         * cfglayout.c (copy_bbs): Don't call add_to_dominance_info.
9086         * cfgloopmanip.c (split_loop_bb): Don't update dominators.
9087         (remove_bbs): Don't call remove_bbs.
9088         (create_preheader): Use make_forwarder_block.
9089         (mfb_keep_just, mfb_update_loops): New static functions.
9090
9091 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
9092
9093         * config/avr/avr.h: Remove target-independent comments about
9094         target macros.
9095
9096 2004-01-28  Daniel Berlin  <dberlin@dberlin.org>
9097
9098         * timevar.c (timevar_print): Mention when checking is enabled.
9099
9100 2004-01-28  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
9101
9102         * c-lex.c (c_lex): Rename to...
9103         (c_lex_with_flags): Add new parameter to get CPP flags.
9104         (c_lex): Thunk to c_lex_with_flags while keeping the old interface.
9105         * c-pragma.h (c_lex_with_flags): Declare.
9106
9107 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
9108
9109         * config/mcore/mcore.c (mcore_external_libcall): Add a
9110         comment.
9111         (mcore_return_in_memory): Likewise.
9112
9113 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
9114
9115         * config/mcore/mcore-protos.h: Remove the prototype for
9116         mcore_setup_incoming_varargs.
9117         * config/mcore/mcore.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
9118         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
9119         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
9120         (TARGET_PROMOTE_PROTOTYPES): Likewise.
9121         (TARGET_STRUCT_VALUE_RTX): Likewise.
9122         (TARGET_RETURN_IN_MEMORY): Likewise.
9123         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
9124         (mcore_setup_incoming_varargs): Make it static.  Receive the
9125         first argument by reference.  Add argument second_time.
9126         (mcore_external_libcall): New.
9127         (mcore_return_in_memory): Likewise.
9128         * config/mcore/mcore.h (PROMOTE_FUNCTION_ARGS): New.
9129         (PROMOTE_FUNCTION_RETURN): Likewise.
9130         (STRUCT_VALUE): Likewise.
9131         (RETURN_IN_MEMORY): Likewise.
9132         (SETUP_INCOMING_VARARGS): Likewise.
9133         (PROMOTE_PROTOTYPES): Likewise.
9134         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
9135
9136 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
9137
9138         * config/m32r/m32r-protos.h: Remove the prototype for
9139         m32r_setup_incoming_varargs.
9140         * config/m32r/m32r.c (TARGET_PROMOTE_PROTOTYPES): New.
9141         (TARGET_STRUCT_VALUE_RTX): Likewise.
9142         (TARGET_RETURN_IN_MEMORY): Likewise.
9143         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
9144         (m32r_return_in_memory): New.
9145         (m32r_setup_incoming_varargs): Make it static.
9146         * config/m32r/m32r.h: Remove #undef of
9147         ASM_OUTPUT_EXTERNAL_LIBCALL.  Remove the commented-out
9148         definitions of PROMOTE_FUNCTION_ARGS and
9149         PROMOTE_FUNCTION_RETURN.
9150         (PROMOTE_PROTOTYPES): Remove.
9151         (RETURN_IN_MEMORY): Likewise.
9152         (STRUCT_VALUE): Likewise.
9153
9154 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
9155
9156         * config/m68k/m68k.c (TARGET_PROMOTE_PROTOTYPES): New.
9157         (TARGET_STRUCT_VALUE_RTX): Likewise.
9158         (m68k_struct_value_rtx): Likewise.
9159         * config/m68k/m68k.h (STRUCT_VALUE_REGNUM): Rename to
9160         STRUCT_VALUE_REGNUM.
9161         (PROMOTE_PROTOTYPES): Remove.
9162         * config/m68k/m68kelf.h (STRUCT_VALUE_REGNUM): Rename to
9163         STRUCT_VALUE_REGNUM.
9164         * config/m68k/m68kv4.h (STRUCT_VALUE_REGNUM): Likewise.
9165         * config/m68k/netbsd-elf.h (STRUCT_VALUE_REGNUM): Likewise.
9166
9167 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
9168
9169         * config/stormy16/stormy16.c
9170         (TARGET_BUILD_BUILTIN_VA_LIST_TYPE): Rename to
9171         TARGET_BUILD_BUILTIN_VA_LIST.
9172
9173 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
9174
9175         * config/v850/v850.c (TARGET_PROMOTE_PROTOTYPES): New.
9176         (TARGET_STRUCT_VALUE_RTX): Likewise.
9177         (TARGET_RETURN_IN_MEMORY): Likewise.
9178         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
9179         (v850_return_in_memory): Likewise.
9180         (v850_setup_incoming_varargs): Likewise.
9181         * config/v850/v850.h (PROMOTE_PROTOTYPES): Remove.
9182         (SETUP_INCOMING_VARARGS): Likewise.
9183         (RETURN_IN_MEMORY): Likewise.
9184         (STRUCT_VALUE): Likewise.
9185
9186 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
9187
9188         * config/fr30/fr30.c (TARGET_PROMOTE_PROTOTYPES): New.
9189         (fr30_setup_incoming_varargs): Don't use
9190         STRICT_ARGUMENT_NAMING.
9191         * config/fr30/fr30.h (PROMOTE_PROTOTYPES): Remove.
9192         (STRICT_ARGUMENT_NAMING): Likewise.
9193
9194 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
9195
9196         * config/frv/frv-protos.h: Remove the prototype for
9197         frv_expand_builtin_saveregs.
9198         * config/frv/frv.c (TARGET_STRUCT_VALUE_RTX): Likewise.
9199         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
9200         (frv_stack_info): Use FRV_STRUCT_VALUE_REGNUM instead of
9201         STRUCT_VALUE_REGNUM.
9202         (frv_expand_builtin_saveregs): Make it static.
9203         (frv_struct_value_rtx): New.
9204         * config/frv/frv.h (EXPAND_BUILTIN_SAVEREGS): Remove.
9205
9206 2004-01-29  Jan Hubicka  <jh@suse.cz>
9207
9208         PR c++/12850
9209         * cgraph.c (cgraph_remove_node): Clear out saved/insns/arguments and
9210         initial pointers.
9211         * cgraphunit.c (cgraph_finalize_function): Clear out DECL_SAVED_INSNS
9212         for functions that will be only inlined.
9213         (cgraph_mark_function_to_output): Likewise.
9214         (cgraph_expand_function): Sanity check that DECL_DEFER_OUTPUT is clear;
9215         do not clear function body.
9216         * tree-optimize.c (clear_decl_rtl): Use decl_function_context.
9217         (tree_rest_of_compilation): Reorganize the logic releasing function
9218         body to use callgraph datastructure.
9219
9220 2004-01-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9221
9222         * pa.md: Change predicate of a peephole2 pattern from reg_or_0_operand
9223         to register_operand.
9224
9225 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
9226
9227         * config/ia64/ia64.md (fetchadd_acq_si, fetchadd_acq_di)
9228         (cmpxchg_acq_si, cmpxchg_acq_di): Exchange match_dup and
9229         match_operand expressions so that all match_dups appear
9230         lexically after their corresponding match_operands.
9231
9232 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
9233
9234         * config/h8300/h8300.c (WORD_REG_USED): Use
9235         HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM.
9236         (compute_saved_regs): Likewise.
9237         (h8300_expand_prologue): Likewise.  Allocate locals after
9238         saving registers.
9239         (h8300_expand_epilogue): Use HARD_FRAME_POINTER_REGNUM instead
9240         of FRAME_POINTER_REGNUM.  Deallocate locals before saving
9241         registers.
9242         (h8300_initial_elimination_offset): Adjust for the new frame
9243         layout, which swaps flips the order of locals and saved
9244         registers.
9245         * config/h8300/h8300.h (FIRST_PSEUDO_REGISTER): Change to 12.
9246         (HARD_FRAME_POINTER_REGNUM): New.
9247         (ELIMINABLE_REGS): Add an elimination rule from
9248         FRAME_POINTER_REGNUM to HARD_FRAME_POINTER_REGNUM.
9249         (REGISTER_NAMES): Add fp.
9250         * config/h8300/h8300.md (FP_REG): Change to 11.
9251         (HFP_REG): New.
9252
9253 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
9254
9255         * genrecog.c (write_node): Remove a useless local variable.
9256
9257 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
9258
9259         * Makefile.in (options.c options.h): Use stamp file s-options to
9260         avoid unnecessary rebuilds.
9261         (options.o): New target listing dependencies.
9262         (gtyp-gen.h): Use stamp file s-gtyp-gen.
9263         (STAGESTUFF): Add s-gtyp-gen.
9264
9265 2004-01-28  Richard Henderson  <rth@redhat.com>
9266
9267         * ggc.h (ggc_free): Declare.
9268         * ggc-common.c (ggc_realloc): Use it.
9269         * ggc-page.c: Remove lots of inline markers.
9270         (globals): Add free_object_list.
9271         (ggc_alloc): Tidy.
9272         (ggc_free, validate_free_objects): New.
9273         (poison_pages): Provide default.
9274         (ggc_collect): Call validate_free_objects; emit markers to
9275         the debug file.
9276
9277 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
9278             Jim Wilson  <wilson@specifixinc.com>
9279
9280         * config/ia64/ia64.c (ia64_split_tmode, ia64_split_tmode_move):
9281         Rewrite to use POST_INC/POST_DEC/POST_MODIFY instead of a
9282         scratch pointer.
9283         (ia64_secondary_reload_class): Delete case GR_REGS.
9284         * config/ia64/ia64.md (movti, *movti_internal, movtf, *movtf_internal):
9285         Do not allocate a scratch register.
9286         (reload_inti, reload_outti, reload_intf, reload_outtf): Delete.
9287
9288 2004-01-28  Jan Hubicka  <jh@suse.cz>
9289
9290         * gcse.c (bypass_block): Prevent edges to be unified when we are
9291         about to emit compenstation code.
9292
9293 2004-01-28  Nick Clifton  <nickc@redhat.com>
9294
9295         * config/arm/arm.c (arm_expand_builtin): Force second argument of
9296         the setcwx insn into a register.
9297
9298 2004-01-28  Richard Sandiford  <rsandifo@redhat.com>
9299
9300         * config/fp-bit.c (pack_d): When using paired doubles to implement
9301         a long double, round the high part separately.
9302         (unpack_d): Fix the case in which the high part is a power of two
9303         and the low part is a nonzero value of the opposite sign.
9304
9305 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
9306
9307         * config/c4x/c4x.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
9308         (TARGET_STRUCT_VALUE_RTX): Likewise.
9309         (c4x_external_libcall): Likewise.
9310         (c4x_struct_value_rtx): Likewise.
9311         * config/c4x/c4x.h: Remove.
9312         (STRUCT_VALUE_REGNUM): Likewise.
9313         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
9314
9315 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
9316
9317         * config/i386/i386.c (TARGET_PROMOTE_PROTOTYPES): New.
9318         (TARGET_STRUCT_VALUE_RTX): Likewise.
9319         * config/i386/i386.h (STRUCT_VALUE_INCOMING): Remove.
9320         (STRUCT_VALUE): Likewise.
9321         (PROMOTE_PROTOTYPES): Likewise.
9322
9323 2004-01-27  Roger Sayle  <roger@eyesopen.com>
9324
9325         * config/pa/pa.c (emit_move_sequence): Check that operand1 is a
9326         CONST_INT before using INTVAL.
9327
9328 2004-01-27  Ulrich Weigand  <uweigand@de.ibm.com>
9329
9330         * config/s390/s390.h (TARGET_DEFAULT): Default to !TARGET_BACKCHAIN.
9331         * config/s390/s390.c (s390_return_addr_rtx): Fail for all but current
9332         frame if !TARGET_BACKCHAIN.
9333         * config/s390/s390.md ("allocate_stack"): Use pattern only if
9334         TARGET_BACKCHAIN.
9335         * doc/invoke.texi (-mbackchain/-mno-backchain): Document new default.
9336
9337 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
9338
9339         * ia64.c (ia64_function_arg): When placing HFAs in integer
9340         registers, do not special case the mode used for complex
9341         types.  Do not advance int_regs until the current register
9342         is full.
9343
9344 2004-01-27  Richard Sandiford  <rsandifo@redhat.com>
9345
9346         PR target/7297
9347         * except.c (init_eh): Use a 5-word __jbuf for __builtin_setjmp().
9348
9349 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
9350
9351         * config/rs6000/rs6000.c (rs6000_emit_move): #if 0 splitting
9352         slow, unaligned loads and stores while debugging.  Fix formatting.
9353
9354 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
9355
9356         * config/rs6000/rs6000.md (save_stack_nonlocal): Use Pmode instead
9357         of computing wmode.
9358         (restore_stack_nonlocal): Same.
9359
9360 2004-01-27  Devang Patel <dpatel@apple.com>
9361
9362         * Makefile.in (dwarf2out.o): Depend on input.h
9363         * dbxout.c (dbx_debug_hooks): Add new empty hook for
9364         imported_module_or_decl.
9365         (xcoff_debug_hooks): Same.
9366         * sdbout.c (sdb_debug_hooks): Same.
9367         * vmsdbgout.c (vmsdbg_debug_hooks): Same.
9368         * debug.c (do_nothing_debug_hooks): Same.
9369         (debug_nothing_tree_tree): New function.
9370         * debug.h (gcc_debug_hooks): New hook, imported_module_or_decl.
9371         * dwarf2out.c: Include input.h.
9372         (dwarf2_debug_hooks): Add new hook for imported_module_or_decl.
9373         (remove_child_TAG): New function.
9374         (dwarf_tag_name): Handle DW_TAG_imported_module.
9375         (gen_subprogram_die): Equate decl number to declaration die. Do not
9376         remove all children dies while reusing declaration die for definition.
9377         Instead, selectively remove only formal parameters.
9378         (gen_variable_die): Equate variable decl to declaration die.
9379         (gen_field_die): Equate field decl to line number.
9380         (force_namespace_die): Replace it with ...
9381         (force_decl_die): ... this.
9382         (force_type_die): New function.
9383         (setup_namespace_context): Replace use of force_namespace_die() with
9384         force_decl_die().
9385         (gen_namespace_die): Same.
9386         (dwarf2out_imported_module_or_decl): New function.
9387
9388 2004-01-27  Bob Wilson  <bob.wilson@acm.org>
9389
9390         * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Remove SUBREG
9391         on CQImode and CHImode incoming arguments in register a7.
9392         (function_arg): Wrap BLKmode argument in register a7 in a PARALLEL.
9393         * config/xtensa/xtensa.h (BLOCK_REG_PADDING): Define.
9394         * config/xtensa/xtensa.md (movdi, movdf): Only call force_reg or
9395         xtensa_copy_incoming_a7 before reload.
9396
9397 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
9398
9399         * coverage.c (get_coverage_counts): Give a different message
9400         if flag_guess_branch_prob is set.
9401         * predict.c (counts_to_freqs): Return an int.
9402         (estimate_bb_frequencies): If counts_to_freqs returns zero,
9403         calculate estimates.
9404
9405 2004-01-27  Kazu Hirata  <kazu@cs.umass.edu>
9406
9407         * config/iq2000/iq2000-protos.h: Remove the prototype for
9408         iq2000_setup_incoming_varargs.
9409         * config/iq2000/iq2000.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
9410         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
9411         (TARGET_PROMOTE_PROTOTYPES): Likewise.
9412         (TARGET_STRUCT_VALUE_RTX): Likewise.
9413         (TARGET_RETURN_IN_MEMORY): Likewise.
9414         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
9415         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
9416         (iq2000_return_in_memory): Likewise.
9417         (iq2000_setup_incoming_varargs): Make it static.  Receive the
9418         first argument by reference.
9419         * config/iq2000/iq2000.h (PROMOTE_FUNCTION_ARGS): Remove.
9420         (PROMOTE_FUNCTION_RETURN): Likewise.
9421         (PROMOTE_PROTOTYPES): Likewise.
9422         (RETURN_IN_MEMORY): Likewise.
9423         (STRUCT_VALUE): Likewise.
9424         (SETUP_INCOMING_VARARGS): Likewise.
9425         (STRICT_ARGUMENT_NAMING): Likewise.
9426
9427 2004-01-24  James A. Morrison  <ja2morri@uwaterloo.ca>
9428
9429         * fixinc/fixinc.c (test_test): Initialize res.
9430         (start_flexer): Initialize pz_cmd_save.
9431
9432 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
9433
9434         * doc/rtl.texi (Arithmetic): Rewrite entries for PLUS,
9435         SS_PLUS, US_PLUS, LO_SUM, MINUS, SS_MINUS, US_MINUS.
9436
9437 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
9438
9439         PR 7198
9440         * config/ia64/ia64.md (*nmaddsf4, *nmadddf4, *nmadddf4_alts)
9441         (*nmadddf4_trunc, *nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf)
9442         (*nmaddxf4_alts, *nmaddxf4_truncdf_alts):
9443         Rewrite pattern as (minus (op 3) (mult (op 1) (op 2))).
9444         Possibly rename pattern for consistency.
9445         Remove ??? comments suggesting that this be done.
9446         (*nmaddsf4_alts, *nmadddf4_truncsf_alts, *nmaddxf4_truncsf_alts):
9447         New patterns.
9448         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr)
9449         (divsf3_internal_lat, divsf3_internal_thr, sqrtsf2_internal_thr)
9450         (divdf3_internal_lat, divdf3_internal_thr, sqrtdf2_internal_thr)
9451         (divxf3_internal_lat, divxf3_internal_thr, sqrtxf2_internal_thr):
9452         Update to match.
9453
9454 2004-01-27  Ian Lance Taylor  <ian@wasabisystems.com>
9455
9456         * config/arm/arm.c (output_return_instruction): Only restore IP
9457         into SP if frame_pointer_needed.
9458
9459 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
9460
9461         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
9462         for SCmode and DCmode if ARCH32.
9463         (sparc_va_arg): Handle SCmode and DCmode by reference if ARCH32.
9464         * config/sparc/sparc.h (RETURN_IN_MEMORY): Return 0 for TCmode
9465         if ARCH32.
9466         (BASE_RETURN_VALUE_REG): Return 32 for all FP modes except TFmode
9467         if ARCH32.
9468         (BASE_OUTGOING_VALUE_REG): Likewise.
9469
9470 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
9471
9472         PR target/10904
9473         PR target/13058
9474         * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): New.
9475         Forbid mode changes from SImode for lower FP regs if ARCH64.
9476
9477 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
9478
9479         * Makefile.in (bt-load.o): Depend on except.h.
9480         * bt-load.c (except.h): #include.
9481         (compute_defs_uses_and_gen): If insn at end of BB can throw
9482         within this function, consider registers used by it unavailable for
9483         btr migration.
9484         (move_btr_def): If insn at end of BB can throw, insert before rather
9485         than after.
9486
9487         * flags.h (flag_btr_bb_exclusive): Declare.
9488         * toplev.c (flag_btr_bb_exclusive): New variable.
9489         (f_options): Add btr-bb-exclusive.
9490         * bt-load.c (augment_live_range): Restore old behaviour if
9491         flag_btr_bb_exclusive is set.
9492         * common.opt: Add entry for -fbtr-bb-exclusive.
9493         * opts.c (common_handle_options): Same.
9494         * doc/invoke.texi: Document -fbtr-bb-exclusive.
9495
9496         * bt-load.c (btrs_live_at_end): New variable.
9497         (compute_defs_uses_and_gen): Compute its pointed-to array.
9498         (clear_btr_from_live_range, add_btr_to_live_range): Update it.
9499         (augment_live_range): When augmenting with a new dominator,
9500         use only its btrs_live_at_end set, but also add in the full set
9501         of the old dominator.
9502         (btr_def_live_range): Use btrs_live_at_end.
9503         (move_btr_def): Set other_btr_uses_before_def, and move new set
9504         to the end of the basic block, if appropriate.
9505         (migrate_btr_defs): Allocate and free btrs_live_at_end.
9506
9507         * bt-load.c (basic_block_freq): Remove outdated comment.
9508
9509 2004-01-27  Alan Modra  <amodra@bigpond.net.au>
9510
9511         * config/rs6000/rs6000.h: Correct target_flags free bits comment.
9512         (PREDICATE_CODES): Remove duplicate.
9513         * config/rs6000/linux64.h (CPP_SYSV_SPEC): Don't define.
9514         (SUBSUBTARGET_OVERRIDE_OPTIONS): Disallow 32 bit TARGET_PROFILE_KERNEL.
9515         (MASK_PROFILE_KERNEL): Adjust define.
9516
9517 2004-01-27  Jakub Jelinek  <jakub@redhat.com>
9518
9519         * config/i386/i386.c (ix86_constant_alignment): Decrease alignment
9520         of long string literals from 32 bytes to sizeof (void *) when !-Os
9521         and to 1 with -Os.
9522
9523 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
9524
9525         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Accept
9526         constant addresses in the normal mode.
9527
9528 2004-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9529
9530         * system.h (CHAR_BITFIELD): Delete.
9531         (BOOL_BITFIELD): New.
9532         * c-decl.c (c_scope): Use BOOL_BITFIELD.
9533         * gengtype-lex.l: Recognize BOOL_BITFIELD instead of CHAR_BITFIELD.
9534
9535 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
9536
9537         * config/arc/arc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
9538         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
9539         (TARGET_PROMOTE_PROTOTYPES): Likewise.
9540         (TARGET_STRUCT_VALUE_RTX): Likewise.
9541         (TARGET_RETURN_IN_MEMORY): Likewise.
9542         (arc_return_in_memory): Likewise.
9543         * config/arc/arc.h (PROMOTE_FUNCTION_ARGS): Remove.
9544         (PROMOTE_FUNCTION_RETURN): Likewise.
9545         (RETURN_IN_MEMORY): Likewise.
9546         (STRUCT_VALUE): Likewise.
9547
9548 2004-01-26  Richard Henderson  <rth@redhat.com>
9549
9550         * c-parse.in (extension): Use itype.
9551         (SAVE_EXT_FLAGS): Don't allocate a tree.
9552         (RESTORE_EXT_FLAGS): Don't read a tree.
9553
9554 2004-01-26  Jan Hubicka  <jh@suse.cz>
9555
9556         * cselib.c (discard_useless_values):  Clear out value pointer pointing
9557         to datastructure to be recycled.
9558
9559 2004-01-25  Jan Hubicka  <jh@suse.cz>
9560
9561         * genextract.c (main): Do not output the memset when not checking.
9562
9563 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
9564
9565         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Use a
9566         switch statement instead of a chain of if statements.
9567
9568 2004-01-26  Jeff Law  <law@redhat.com>
9569
9570         * doc/contrib.texi: Minor cleanup for Paolo Carlini's entry.  Add
9571         acute accents for Petur Runolfsson's entry.
9572
9573 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
9574
9575         * config/pdp11/pdp11.c (TARGET_STRUCT_VALUE_RTX): New.
9576         (TARGET_RETURN_IN_MEMORY): Likewise.
9577         * config/pdp11/pdp11.h (STRUCT_VALUE): Remove.
9578         (RETURN_IN_MEMORY): Likewise.
9579
9580 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
9581
9582          * config/rs6000/rs6000.c (rs6000_emit_move): split slow
9583          unaligned load/store into smaller loads and stores.
9584
9585 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
9586
9587         * function.c (assign_parms): Do not assign
9588         long long argument to memory in prologue if
9589         is it loaded into register.
9590
9591 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
9592
9593          PR middle-end/13779
9594          * expr.c (emit_group_load): split constant
9595          correctly into register components of PARALLEL insn.
9596
9597 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
9598
9599         * gcc/config/rs6000/rs6000.md (save_stack_nonlocal):
9600         Use adjust_address_nv directly with appropriate mode.
9601         (restore_stack_nonlocal): Ditto.
9602
9603 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
9604
9605         * config/xtensa/xtensa-protos.h: Remove the prototype for
9606         xtensa_builtin_saveregs.
9607         * config/xtensa/xtensa.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
9608         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
9609         (TARGET_PROMOTE_PROTOTYPES): Likewise.
9610         (TARGET_STRUCT_VALUE_RTX): Likewise.
9611         (TARGET_RETURN_IN_MEMORY): Likewise.
9612         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
9613         (xtensa_builtin_saveregs): Make it static.
9614         (xtensa_return_in_memory): New.
9615         * config/xtensa/xtensa.h (PROMOTE_FUNCTION_ARGS: Remove.
9616         (PROMOTE_FUNCTION_RETURN): Likewise.
9617         (PROMOTE_PROTOTYPES): Likewise.
9618         (STRUCT_VALUE): Likewise.
9619         (RETURN_IN_MEMORY): Likewise.
9620         (EXPAND_BUILTIN_SAVEREGS): Likewise.
9621
9622 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
9623
9624         * config/arm/arm.c (TARGET_SETUP_INCOMING_VARARGS): New.
9625         (arm_setup_incoming_varargs): Likewise.
9626         * config/arm/arm.h (SETUP_INCOMING_VARARGS): Remove.
9627
9628 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
9629
9630         * config/cris/cris.c (TARGET_SETUP_INCOMING_VARARGS): New.
9631         (cris_setup_incoming_varargs): Likewise.
9632         * config/cris/cris.h (SETUP_INCOMING_VARARGS): Remove.
9633
9634 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
9635
9636         * config/ns32k/ns32k.c (TARGET_STRUCT_VALUE_RTX): New.
9637         (ns32k_struct_value_rtx): Likewise.
9638         * config/ns32k/ns32k.h (STRUCT_VALUE_REGNUM): Rename to
9639         NS32K_STRUCT_VALUE_REGNUM.
9640
9641 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
9642
9643         * config/arm/arm.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
9644         (TARGET_PROMOTE_PROTOTYPES): Likewise.
9645         (TARGET_STRUCT_VALUE_RTX): Likewise.
9646         (arm_struct_value_rtx): Likewise.
9647         * config/arm/arm.h (PROMOTE_FUNCTION_ARGS): Remove.
9648         (STRUCT_VALUE): Likewise.
9649         (STRUCT_VALUE_REGNUM): Likewise.
9650         (PROMOTE_PROTOTYPES): Likewise.
9651
9652 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
9653
9654         * config/ia64/ia64-protos.h: Remove the prototype for
9655         ia64_setup_incoming_varargs and ia64_return_in_memory.
9656         * config/ia64/ia64.c (TARGET_STRUCT_VALUE_RTX): New.
9657         (TARGET_RETURN_IN_MEMORY): Likewise.
9658         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
9659         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
9660         (ia64_setup_incoming_varargs): Adjust the arguments to meet
9661         the requirement of TARGET_SETUP_INCOMING_VARARGS.
9662         (ia64_return_in_memory): Make it static.  Change the return
9663         type to bool from int.  Add an argument.
9664         (ia64_struct_value_rtx): New.
9665         * config/ia64/ia64.h: Remove commented-out definitions of
9666         PROMOTE_FUNCTION_ARGS, PROMOTE_FUNCTION_RETURN, and
9667         PROMOTE_PROTOTYPES.
9668         (RETURN_IN_MEMORY): Remove.
9669         (STRUCT_VALUE_REGNUM): Likewise.
9670         (STRICT_ARGUMENT_NAMING): Likewise.
9671
9672 2004-01-26  Eric Botcazou  <ebotcazou@libertysurf.fr>
9673
9674         PR target/13666
9675         * config/sparc/sparc.c (function_arg_union_value): New function.
9676         (function_arg): Use it to deal with unions.
9677         (function_value): Likewise.  Define 'regbase' only for ARCH64.
9678         Replace a conditional statement by a simpler one.
9679
9680 2004-01-26  Richard Sandiford  <rsandifo@redhat.com>
9681
9682         * config/mips/mips.c (mips16_optimize_gp): Delete.
9683         (mips_reorg): Don't call it.
9684
9685 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9686
9687         * config/c4x/c4x.md (addqi3_noclobber): Move up pecking order.
9688         (floatunsqihf2): Remove operand 6.
9689         (fixhfqi_set, fix_trunchfqi2, fixuns_trunchfqi2): Group with other
9690         fix patterns.
9691         (ldi_conditional, ldf_conditional): Validate operands.
9692
9693 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9694
9695         * config/c4x/c4x.h (BCT_CHECK_LOOP_ITERATIONS): Remove.
9696         (HAVE_GAS_HIDDEN): Undefine as interim measure.
9697
9698 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9699
9700         * config/c4x/c4x.c (c4x_legitimate_address_p):  Invalidate direct
9701         memory references if TARGET_EXPOSE_LDP nonzero.
9702
9703 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9704
9705         * config/c4x/c4x.c (legitimize_operands): Truncate invalid shift counts.
9706
9707 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9708
9709         * config/c4x/c4x.c (c4x_valid_operands): More aggressively reject
9710         invalid operand combinations.
9711
9712 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9713
9714         * config/c4x/c4x.c (c4x_check_legit_addr): Rename to
9715         c4x_legitimate_address_p.  Fix post_modify check.
9716
9717         * config/c4x/c4x-protos.h (c4x_check_legit_addr): Adjust.
9718         * config/c4x/c4x.h (c4x_check_legit_addr): Adjust.
9719
9720 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
9721
9722         * config/pa/pa-protos.h: Remove the prototype for
9723         hppa_builtin_saveregs.  Add a prototype for
9724         pa_return_in_memory.
9725         * config/pa/pa.c (TARGET_PROMOTE_FUNCTION_RETURN): New.
9726         (TARGET_PROMOTE_PROTOTYPES): Likewise.
9727         (TARGET_STRUCT_VALUE_RTX): Likewise.
9728         (TARGET_RETURN_IN_MEMORY): Likewise.
9729         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
9730         (pa_struct_value_rtx): Likewise.
9731         (pa_return_in_memory): Likewise.
9732         * config/pa/pa.h (STRUCT_VALUE_REGNUM): Rename to
9733         PA_STRUCT_VALUE_REGNUM.
9734         (INIT_CUMULATIVE_ARGS): Use pa_return_in_memory.
9735         (EXPAND_BUILTIN_SAVEREGS): Remove.
9736         (PROMOTE_PROTOTYPES): Likewise.
9737         (PROMOTE_FUNCTION_RETURN): Likewise.
9738
9739 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
9740
9741         * config/vax/vax.c (TARGET_PROMOTE_PROTOTYPES): New.
9742         (TARGET_STRUCT_VALUE_RTX): Likewise.
9743         (vax_struct_value_rtx): Likewise.
9744         * config/vax/vax.h (STRUCT_VALUE_REGNUM): Rename to
9745         VAX_STRUCT_VALUE_REGNUM.
9746         (PROMOTE_PROTOTYPES): Remove.
9747
9748 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9749
9750         * config/c4x/c4x.h (LEGITIMIZE_RELOAD_ADDRESS):  Handle symref.
9751
9752 2003-04-25  Chris Demetriou  <cgd@broadcom.com>
9753
9754         * config/mips/mips.h (ISA_HAS_HILO_INTERLOCKS): MIPS32, MIPS32r2,
9755         and MIPS64 have HI/LO interlocks.  Update comment.
9756
9757 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
9758
9759         * config/stormy16/stormy16-protos.h: Remove the prototype for
9760         xstormy16_setup_incoming_varargs.
9761         * config/stormy16/stormy16.c
9762         (xstormy16_setup_incoming_varargs): Remove.
9763         (xstormy16_return_in_memory): New.
9764         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
9765         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
9766         (TARGET_PROMOTE_PROTOTYPES): Likewise.
9767         (TARGET_STRUCT_VALUE_RTX): Likewise.
9768         (TARGET_RETURN_IN_MEMORY): Likewise.
9769         * config/stormy16/stormy16.h (PROMOTE_FUNCTION_ARGS): Remove.
9770         (PROMOTE_FUNCTION_RETURN): Likewise
9771         (PROMOTE_PROTOTYPES): Likewise
9772         (RETURN_IN_MEMORY): Likewise
9773         (STRUCT_VALUE): Likewise
9774         (SETUP_INCOMING_VARARGS): Likewise
9775
9776 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
9777
9778         * config/mips/mips.c (mips_offset_within_object_p): New function.
9779         (mips_symbolic_constant_p): Use it in the SYMBOL_SMALL_DATA and
9780         SYMBOL_CONSTANT_POOL cases.  Also use it for SYMBOL_GENERAL if the
9781         ABI has 64-bit pointers and the object file only allows 32-bit symbols.
9782
9783 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
9784
9785         * config/sh/sh.h (PROMOTE_FUNCTION_ARGS): Remove.
9786         (PROMOTE_FUNCTION_RETURN): Likewise.
9787
9788 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
9789
9790         * config/mn10300/mn10300-protos.h: Remove the prototype for
9791         mn10300_builtin_saveregs.
9792         * config/mn10300/mn10300.c (TARGET_PROMOTE_PROTOTYPES): New.
9793         (TARGET_STRUCT_VALUE_RTX): Likewise.
9794         (TARGET_RETURN_IN_MEMORY): Likewise.
9795         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
9796         (mn10300_return_in_memory): Likewise.
9797         (mn10300_builtin_saveregs): Make it static.
9798         * config/mn10300/mn10300.h (PROMOTE_PROTOTYPES): Remove.
9799         (RETURN_IN_MEMORY): Likewise.
9800         (STRUCT_VALUE): Likewise.
9801         (EXPAND_BUILTIN_SAVEREGS): Likewise.
9802
9803 2004-01-25  Eric Botcazou  <ebotcazou@act-europe.fr>
9804
9805         PR bootstrap/13853
9806         * cfgcleanup.c (try_optimize_cfg): Explicitly test against 0.
9807
9808 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
9809
9810         * config/h8300/lib1funcs.asm (divnorm, modnorm): Optimize by
9811         using ccr.
9812
9813 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
9814
9815         * config/i860/i860-protos.h: Remove the prototype for
9816         i860_saveregs.
9817         * config/i860/i860.c (i860_saveregs): Make it static.
9818         (i860_struct_value_rtx): New.
9819         (TARGET_STRUCT_VALUE_RTX): Likewise.
9820         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
9821         * config/i860/i860.h (STRUCT_VALUE_REGNUM): Rename to
9822         I860_STRUCT_VALUE_REGNUM.
9823         (EXPAND_BUILTIN_SAVEREGS): Remove.
9824
9825 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
9826
9827         * config/m68hc11/m68hc11.c (TARGET_STRUCT_VALUE_RTX): New.
9828         (TARGET_RETURN_IN_MEMORY): Likewise.
9829         (m68hc11_struct_value_rtx): Likewise.
9830         (m68hc11_return_in_memory): Likewise.
9831         * config/m68hc11/m68hc11.h: Remove a commented-out definition
9832         of PROMOTE_PROTOTYPES.
9833         (RETURN_IN_MEMORY): Remove.
9834         (STRUCT_VALUE_REGNUM): Likewise.
9835
9836 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
9837
9838         * config/mmix/mmix-protos.h: Remove the prototype for
9839         mmix_setup_incoming_varargs.
9840         * config/mmix/mmix.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
9841         (TARGET_STRUCT_VALUE_RTX): Likewise.
9842         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
9843         (mmix_setup_incoming_varargs): Make it static.
9844         (mmix_struct_value_rtx): New.
9845         * config/mmix/mmix.h (PROMOTE_FUNCTION_ARGS): Remove.
9846         Remove a commented-out definition of PROMOTE_FUNCTION_RETURN.
9847         (STRUCT_VALUE_REGNUM): Remove.
9848         (SETUP_INCOMING_VARARGS): Likewise.
9849
9850 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
9851
9852         * config/mips/mips-protos.h: Remove the prototypes for
9853         mips_setup_incoming_varargs and mips_return_in_memory.
9854         * config/mips/mips.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
9855         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
9856         (TARGET_PROMOTE_PROTOTYPES): Likewise.
9857         (TARGET_STRUCT_VALUE_RTX): Likewise.
9858         (TARGET_RETURN_IN_MEMORY): Likewise.
9859         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
9860         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
9861         (mips_setup_incoming_varargs): Match the prototype for
9862         TARGET_SETUP_INCOMING_VARARGS.
9863         (mips_return_in_memory): Make it static.  Add argument fntype.
9864         (mips_strict_argument_naming): New.
9865         * config/mips/mips.h (PROMOTE_PROTOTYPES): Remove.
9866         (PROMOTE_FUNCTION_ARGS): Likewise.
9867         (PROMOTE_FUNCTION_RETURN): Likewise.
9868         (STRUCT_VALUE): Likewise.
9869         (RETURN_IN_MEMORY): Likewise.
9870         (SETUP_INCOMING_VARARGS): Likewise.
9871         (STRICT_ARGUMENT_NAMING): Likewise.
9872
9873 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
9874
9875         * config/ip2k/ip2k.c (TARGET_STRUCT_VALUE_RTX): New.
9876         (TARGET_RETURN_IN_MEMORY): Likewise.
9877         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
9878         (ip2k_return_in_memory): Likewise.
9879         (ip2k_setup_incoming_varargs): Likewise.
9880         * config/ip2k/ip2k.h (RETURN_IN_MEMORY): Remove.
9881         (STRUCT_VALUE): Likewise.
9882         (STRUCT_VALUE_INCOMING): Likewise.
9883         (SETUP_INCOMING_VARARGS): Likewise.
9884
9885 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
9886
9887         * config/avr/avr.c (TARGET_STRUCT_VALUE_RTX): New.
9888         (TARGET_RETURN_IN_MEMORY): Likewise.
9889         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
9890         (avr_return_in_memory): Remove.
9891         * config/avr/avr.h (RETURN_IN_MEMORY): Remove.
9892         (STRUCT_VALUE): Likewise.
9893         (STRUCT_VALUE_INCOMING): Likewise.
9894         (STRICT_ARGUMENT_NAMING): Likewise.
9895
9896 2004-01-25  Jan Hubicka  <jh@suse.cz>
9897
9898         * combine.c (recog_for_combine): Avoid allocating unnecesary RTX.
9899
9900 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
9901
9902         * config/mips/mips-protos.h (mips_reg_mode_ok_for_base_p): Delete.
9903         (mips_regno_mode_ok_for_base_p): Declare.
9904         * config/mips/mips.h (ARG_POINTER_REGNUM): Renumber to 77.
9905         (FRAME_POINTER_REGNUM): Renumber to 78.
9906         (FIRST_PSEUDO_REGISTER): Update comment accordingly.
9907         (BASE_REG_P, GP_REG_OR_PSEUDO_STRICT_P): Delete.
9908         (GP_REG_OR_PSEUDO_NONSTRICT_P): Delete.
9909         (REGNO_MODE_OK_FOR_BASE_P): Use mips_regno_mode_ok_for_base_p.
9910         (REG_MODE_OK_FOR_BASE_P): Likewise.
9911         * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Change
9912         entry for 77 to "$arg" and entry for 78 to "$frame".
9913         (mips_regno_to_class): Map 77 and 78 to ALL_REGS.
9914         (mips_reg_mode_ok_for_base_p): Remove.
9915         (mips_regno_mode_ok_for_base_p): New function, derived from old
9916         BASE_REG_P macro.  Don't enforce the mips16 stack pointer
9917         restrictions unless we're being strict.
9918         (mips_valid_base_register_p): Use mips_regno_mode_ok_for_base_p.
9919
9920 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
9921
9922         * c-common.h: Fix comment typos.
9923         * c-decl.c: Likewise.
9924         * cgraphunit.c: Likewise.
9925         * combine.c: Likewise.
9926         * et-forest.c: Likewise.
9927         * flow.c: Likewise.
9928         * function.c: Likewise.
9929         * ifcvt.c: Likewise.
9930         * integrate.c: Likewise.
9931         * jump.c: Likewise.
9932         * postreload.c: Likewise.
9933         * varray.c: Likewise.
9934
9935 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
9936
9937         * doc/frontends.texi: Update copyright.
9938         * doc/gcov.texi: Likewise.
9939         * doc/gty.texi: Likewise.
9940         * doc/sourcebuild.texi: Likewise.
9941         * doc/standards.texi: Likewise.
9942
9943 2004-01-24  Herman A.J. ten Brugge  <hermantenbrugge@home.nl>
9944
9945         PR target/12978
9946         * c4x.md: (movstrqi*) Use match_scratch instead of match_dup.
9947         Remove movstrqi_small because it conflicts with movstrqi_large.
9948
9949 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
9950
9951         * config/cris/cris.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
9952         (TARGET_STRUCT_VALUE_RTX): Likewise.
9953         (cris_struct_value_rtx): Likewise.
9954         * config/cris/cris.h (PROMOTE_FUNCTION_ARGS): Remove.
9955         (CRIS_STACKADJ_REG): Use CRIS_STRUCT_VALUE_REGNUM instead of
9956         STRUCT_VALUE_REGNUM.
9957         (STRUCT_VALUE_REGNUM): Rename to CRIS_STRUCT_VALUE_REGNUM.
9958
9959 2004-01-24  Ian Lance Taylor  <ian@wasabisystems.com>
9960
9961         PR bootstrap/13848
9962         * cse.c (cse_cc_succs): Change the mode of the source expression
9963         as soon as decide we need a new mode.  Don't permit changing modes
9964         if we found a match in a successor block.
9965         (cse_condition_code_reg): Save original mode of source expression
9966         so that we know whether we have to change the mode in other
9967         insns.
9968
9969 2004-01-24  Jan Hubicka  <jh@suse.cz>
9970
9971         * emit-rtl.c (change_address, adjust_address_1, offset_address,
9972         widen_memory_access):  Return early when there is nothing to change.
9973
9974 2004-01-24  Jakub Jelinek  <jakub@redhat.com>
9975
9976         * simplify-rtx.c (simplify_relational_operation): Don't
9977         simplify address == constant into address + -constant == 0.
9978
9979 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
9980
9981         * gcc.c (process_command): Don't internationalize the
9982         Copyright message.
9983         * mips-tfile.c (main): Likewise.
9984
9985 2004-01-24  Andreas Tobler  <a.tobler@schweiz.ch>
9986
9987         * cse.c: (cse_cc_succs) Fix comparison warning.
9988
9989 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
9990
9991         * config/h8300/h8300.md: Remove extraneous USE in expanders.
9992
9993 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
9994
9995         * config/h8300/h8300-protos.h: Provide prototypes for
9996         h8300_legitimate_constant_p and h8300_legitimate_address_p.
9997         * config/h8300/h8300.c (h8300_legitimate_constant_p): New.
9998         (h8300_rtx_ok_for_base_p): Likewise.
9999         (h8300_legitimate_address_p): Likewise.
10000         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Use
10001         h8300_legitimate_constant_p.
10002         (RTX_OK_FOR_BASE_P): Remove.
10003         (GO_IF_LEGITIMATE_ADDRESS): Use h8300_legitimate_address_p.
10004
10005 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
10006
10007         * config/h8300/h8300.h (REG_OK_FOR_INDEX_NONSTRICT_P): New.
10008         (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
10009         (REG_OK_FOR_INDEX_STRICT_P): Likewise.
10010         (REG_OK_FOR_BASE_STRICT_P): Likewise.
10011         (REG_OK_FOR_INDEX_STRICT_P): Use REGNO_OK_FOR_INDEX_P.
10012         (REG_OK_FOR_BASE_STRICT_P): Use REGNO_OK_FOR_BASE_P.
10013         (REG_OK_FOR_INDEX_P): Use REG_OK_FOR_INDEX_STRICT_P.
10014         (REG_OK_FOR_BASE_P): Use REG_OK_FOR_BASE_STRICT_P.
10015
10016 2004-01-24  Jan Hubicka  <jh@suse.cz>
10017
10018         * cselib.c (remove_useless_values):  Do not access discarded values.
10019
10020 2004-01-24  Joseph S. Myers  <jsm@polyomino.org.uk>
10021
10022         * c-typeck.c (build_conditional_expr): Do not allow non-lvalue
10023         arrays.
10024
10025 2004-01-23  Kazu Hirata  <kazu@cs.umass.edu>
10026
10027         * recog.c: Fix a typo in copyright.
10028
10029 2004-01-23  Andrew Pinski  <apinski@apple.com>
10030
10031         * config/rs6000/rs6000.md (call): Fix misappiled patch.
10032         (call_value): Likewise.
10033
10034 2004-01-23  Richard Henderson  <rth@redhat.com>
10035
10036         PR opt/12941
10037         * combine.c (SHIFT_COUNT_TRUNCATED): Provide default value.
10038         (simplify_comparison): Don't simplify (eq (zero_extract c 1 r) 0)
10039         if SHIFT_COUNT_TRUNCATED is set.
10040
10041 2004-01-23  Bob Wilson  <bob.wilson@acm.org>
10042
10043         * config/xtensa/xtensa.c (xtensa_va_arg): Handle complex values as
10044         separate real and imaginary parts.
10045         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Define.
10046
10047 2004-01-23  Hartmut Penner <hpenner@de.ibm.com>
10048
10049         PR target/13674
10050         * config/rs6000/rs6000.md (movdf_hardfloat64): Do not disparage
10051         loading into GPR.
10052
10053 2004-01-23  Jan Hubicka  <jh@suse.cz>
10054
10055         * emit-rtl.c (change_address_1):  Do not re-generate the RTX if nothing
10056         change.
10057
10058         * alloc-pool.c (align_four): Kill.
10059         (create_alloc_pool): Align size to eight.
10060         (free_alloc_pool, free_pool): Invalidate deallocated data.
10061
10062 2004-01-23  Ian Lance Taylor  <ian@wasabisystems.com>
10063
10064         PR gcc/1532
10065         * cse.c (cse_change_cc_mode): New static function.
10066         (cse_change_cc_mode_insns, cse_cc_succs): Likewise.
10067         (cse_condition_code_reg): New function.
10068         * rtl.h (cse_condition_code_reg): Declare.
10069         * toplev.c (rest_of_handle_cse2): Call cse_condition_code_reg.
10070         * target.h (struct gcc_target): Add fixed_condition_code_regs and
10071         cc_modes_compatible.
10072         * target-def.h (TARGET_FIXED_CONDITION_CODE_REGS): Define.
10073         (TARGET_CC_MODES_COMPATIBLE): Define.
10074         (TARGET_INITIALIZER): Add new initializers.
10075         * targhooks.c (default_cc_modes_compatible): New function.
10076         * targhooks.c (default_cc_modes_compatible): Declare.
10077         * hooks.c (hook_bool_intp_intp_false): New function.
10078         * hooks.h (hook_bool_intp_intp_false): Declare.
10079         * config/i386/i386.c (TARGET_FIXED_CONDITION_CODE_REGS): Define.
10080         (TARGET_CC_MODES_COMPATIBLE): Define.
10081         (ix86_fixed_condition_code_regs): New static function.
10082         (ix86_cc_modes_compatible): Likewise.
10083         * doc/tm.texi (Condition Code): Document new hooks.
10084
10085 2004-01-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10086
10087         * fixinc/inclhack.def (bad_lval): Renamed to ...
10088         (alpha_bad_lval): ... this.
10089         Removed file list.
10090         Restrict to alpha*-dec-osf*.
10091         * fixinc/fixincl.x: Regenerate.
10092         * fixinc/tests/base/dirent.h: Remove, moving test ...
10093         * fixinc/tests/base/testing.h: ... here, reflecting new name.
10094
10095 2004-01-23  Zack Weinberg  <zack@codesourcery.com>
10096
10097         PR c/13814
10098         * c-decl.c (diagnose_mismatched_decls): Also discard a
10099         built-in if we encounter an old-style definition with the
10100         same name.
10101
10102 2004-01-23  Jakub Jelinek  <jakub@redhat.com>
10103
10104         * config.gcc (powerpc*-*): Clear $with_cpu or $with_tune if it was
10105         set to default{32,64}.
10106
10107 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
10108
10109         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR)
10110         [!__powerpc64__]: Corrected to handle kernels with changed ucontext.
10111
10112 2004-01-23  Eric Botcazou  <ebotcazou@act-europe.fr>
10113             Olivier Hainque  <hainque@act-europe.fr>
10114
10115         * fold-const.c (fold_binary_op_with_conditional_arg): Only
10116         build a COMPOUND_EXPR if 'arg' is really a SAVE_EXPR.
10117
10118 2004-01-23  Daniel Jacobowitz  <drow@mvista.com>
10119
10120         * config/arm/arm.c (arm_legitimate_address_p): Don't check the mode
10121         size for minipool references.
10122
10123 2004-01-23  Roger Sayle  <roger@eyesopen.com>
10124
10125         * real.c (real_floor, real_ceil): Tweak to allow input and output
10126         arguments to overlap.
10127         (real_round): New function to implement round(3m) semantics.
10128         * real.h (real_round): Prototype here.
10129         * builtins.c (fold_builtin_round): New function to constant fold
10130         round, roundf and roundl.
10131         (fold_builtin): Call fold_builtin_round for BUILT_IN_ROUND{,F,L}.
10132
10133 2004-01-23  Alexandre Oliva  <aoliva@redhat.com>
10134
10135         PR optimization/13819
10136         * config/sh/sh.c (sh_reorg): Compensate for sharing of CLOBBERs
10137         introduced by 2004-01-20's Jan Hubicka's copy_insn change.
10138         (sh_handle_sp_switch_attribute): Remove warning.
10139
10140 2003-11-30  Jan Hubicka  <jh@suse.cz>
10141
10142         * i386.c (ix86_emit_restore_regs_using_mov):  Deal with large offsets.
10143
10144 2004-01-23  J"orn Rennecke <joern.rennecke@superh.com>
10145
10146         * doc/tm.texi: Insert some weasel words when LOAD_EXTEND_OP
10147         may or may not return non-NIL.
10148         * postreload.c (reload_cse_simplify_operands): In LOAD_EXTEND_OP code,
10149         check CANNOT_CHANGE_MODE_CLASS
10150
10151 2004-01-23  Jan Hubicka  <jh@suse.cz>
10152
10153         * basic-block.h (PROP_POSTRELOAD): New macro.
10154         (CLEANUP_LOG_LINKS): New.
10155         * cfgcleanup.c (cleanup_cfg): Only PROP_LOG_LINKS when asked to.
10156         * toplev.c (rest_of_handle_life):  Preserve LOG_LINKS trought cleanup_cfg.
10157
10158         * cselib.c (value_pool): New.
10159         (new_cselib_val): Use pool.
10160         (cselib_init): Initialize value_pool
10161         (cselib_finish): Free pool.
10162
10163 2004-01-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
10164
10165         * config/sparc/sparc.c (scan_record_type): New function.
10166         (function_arg_slotno): Use it to determine which kinds of
10167         registers the record can be passed in.
10168
10169 2004-01-22  James A. Mmorrison  <ja2morri@uwaterloo.ca>
10170
10171         * config/pa/fptr.c: Fix old-style definition.
10172
10173 2004-01-22  Paolo Bonzini  <bonzini@gnu.org>
10174
10175         PR optimization/13724
10176         * cse.c (fold_rtx) <SUBREG>:  Fold a SUBREG to zero if it
10177         represents the zero bits produced by a ZERO_EXTEND operation.
10178
10179 2004-01-22  Roger Sayle  <roger@eyesopen.com>
10180
10181         PR optimization/13821
10182         * simplify-rtx.c (simplify_subreg): Use subreg_lowpart_offset to
10183         correctly calculate the lowpart offset of the contracted subreg.
10184
10185 2004-01-22  Ian Lance Taylor  <ian@wasabisystems.com>
10186
10187         * doc/invoke.texi (Optimize Options): Note that --param arguments
10188         are subject to change without notice.
10189
10190 2004-01-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10191
10192         * config.gcc (mips-sgi-irix6*o32): Removed.
10193         * config/mips/iris6-o32-as.h: Likewise.
10194         * config/mips/iris6-o32-gas.h: Likewise.
10195         * config/mips/iris6-o32.h: Likewise.
10196
10197 2004-01-22  Jan Hubicka  <jh@suse.cz>
10198
10199         * cfgcleanup.c (first_pass): New static variable.
10200         (try_forward_edges):  Add work limiting check for threading.
10201         (try_crossjump_bb):  Add work limiting check for crossjumping.
10202         (try_optimize_cfg):  Maintain first pass variable.
10203
10204 2004-01-22  Bob Wilson  <bob.wilson@acm.org>
10205
10206         * config/xtensa/xtensa.c (function_arg): Generalize logic so that it
10207         handles complex and vector modes.
10208
10209 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
10210
10211         * config/h8300/h8300.h (REG_OK_FOR_INDEX_P_STRICT): Remove.
10212         (REG_OK_FOR_BASE_P_STRICT): Likewise.
10213         (STRICT): Likewise.
10214
10215 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
10216
10217         * c-semantics.c (genrtl_while_stmt, genrtl_do_stmt_1)
10218         (genrtl_for_stmt): Remove emit_nop calls.
10219
10220 2004-01-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10221
10222         PR target/13713
10223         PR target/13324
10224         * pa.md (movstrsi_prereload, movstrsi_postreload, movstrdi_prereload,
10225         movstrdi_postreload, clrstrsi_prereload, clrstrsi_postreload,
10226         clrstrdi_prereload, clrstrdi_postreload): Fix constraints.
10227
10228 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
10229
10230         * config/arm/arm.c: Include "debug.h".
10231         (thumb_pushpop): Take two new arguments.  Add some commentary.
10232         Output frame information when pushing.
10233         (thumb_exit, thumb_unexpanded_epilogue): Update calls to
10234         thumb_pushpop.
10235         (thumb_output_function_prologue): Likewise.  Accumulate a CFA
10236         offset, and pass it to thumb_pushpop.  Output CFI information.
10237         (thumb_expand_prologue): Add some frame-related markers and notes.
10238
10239 2004-01-22  Ulrich Weigand  <uweigand@de.ibm.com>
10240
10241         * config/s390/s390.c (s390_frame_info): Allow large frame sizes
10242         for TARGET_64BIT.
10243         (s390_arg_frame_offset): Change return type to HOST_WIDE_INT.
10244         * config/s390/s390-protos.h (s390_arg_frame_offset): Likewise.
10245
10246 2004-01-22  Roger Sayle  <roger@eyesopen.com>
10247             Paolo Bonzini  <bonzini@gnu.org>
10248
10249         * rtlanal.c (subreg_lsb_1): New function split out from subreg_lsb.
10250         (subreg_lsb): Change to call new subreg_lsb_1 helper function.
10251         * rtl.h (subreg_lsb_1): Prototype here.
10252         * simplify-rtx.c (simplify_subreg): Optimize subregs of zero and
10253         sign extensions.
10254
10255 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
10256
10257         * doc/tm.texi (CASE_VECTOR_PC_RELATIVE): Mention that the
10258         macro need not be defined if jump-tables should contain
10259         relative addresses only when -fPIC or -fPIC is in effect.
10260
10261 2004-01-22  Jan Hubicka  <jh@suse.cz>
10262
10263         * alias.c (reg_base_value): Turn into varray.
10264         (reg_base_value_size): Kill.
10265         (old_reg_base_value): New deletable varray.
10266         (alias_invariant_size): New variable.
10267         (REG_BASE_VALUE): Update to use varray.
10268         (find_base_value): Likewise.
10269         (record_set): Likewise.
10270         (record_base_value): Likewise.
10271         (memrefs_conflict_p): Likewise.
10272         (record_set): Likewise
10273         (record_base_value): Likewise.
10274         (memrefs_conflict_p): Use alias_invariant_size.
10275         (init_alias_analysis): Use varray; set alias_invariant_size;
10276         rescale other arrays to be sized by maxreg.
10277         (end_alias_analysis): Save reg_base_value; clear alias_invariant_size.
10278
10279 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
10280
10281         * config/sparc/sparc.c (function_arg_slotno): Use
10282         FLOAT_TYPE_P to detect FP fields in structures.
10283         (function_arg_record_value_1): Likewise.
10284         (function_arg_record_value_2): Likewise.
10285
10286 2004-01-22  Jan Hubicka  <jh@suse.cz>
10287
10288         * function.c (allocate_struct_function): Do not initialize expr, emit
10289         and varasm.
10290         (prepare_function_start): Do it here.
10291         * c-parse.in (maybe_type_qual): Do not produce line number notes.
10292
10293 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
10294
10295         PR target/13559
10296         * config/sparc/sparc.c (function_arg_record_value_3): Revert
10297         to 'word_mode' once the first slot has been filled.
10298
10299 2004-01-22  Olivier Hainque  <hainque@act-europe.fr>
10300
10301         * config/sparc/sparc.c (function_arg_record_value_1): Fix
10302         computation of the number of integer registers required.
10303
10304 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
10305
10306         * config/i386/i386.md: Simplify certain comparisons of
10307         const_int.
10308
10309 2004-01-21  Andrew Pinski  <apinski@apple.com>
10310
10311         PR target/13785
10312         * config/rs6000/rs6000.md (call_value): Force operand
10313         1 not operand 0 into a register.
10314
10315 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
10316
10317         * cpperror.c, cpptrad.c, longlong.h, params.def, rtl.def,
10318         unwind-dw2-fde.h: Update copyright.
10319
10320 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10321
10322         * pa-protos.h: Update copyright.
10323         * pa.h: Likewise.
10324         * pa.md: Likewise.
10325
10326 2004-01-21  Caroline Tice  <ctice@apple.com>
10327
10328         PR target/12308
10329         * config/i386/i386.md (fix_truncxfdi2): Add clause to clobber
10330         flags register.
10331         (fix_truncdfdi2): Likewise.
10332         (fix_truncsfdi2): Likewise.
10333         (*fix_truncdi_1): Likewise.
10334         (fix_truncxfsi2): Likewise.
10335         (fix_truncdfsi2): Likewise.
10336         (fix_truncsfsi2): Likewise.
10337         (*fix_truncsi_1): Likewise.
10338         (fix_truncxfhi2): Likewise.
10339         (fix_truncdfhi2): Likewise.
10340         (fix_truncsfhi2): Likewise.
10341         (*fix_trunchi_1): Likewise.
10342
10343 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
10344
10345         * alias.c, basic-block.h, c-common.c, c-common.h,
10346         c-cppbuiltin.c, c-opts.c, c-pragma.c, c-pretty-print.c,
10347         calls.c, cfg.c, cfgcleanup.c, cfgrtl.c, cgraph.h, collect2.c,
10348         combine.c, cppcharset.c, cpphash.h, cppinit.c, cpplib.c,
10349         cpplib.h, cppmacro.c, crtstuff.c, cselib.c, cselib.h,
10350         defaults.h, df.c, dominance.c, et-forest.c, expmed.c, expr.c,
10351         expr.h, fix-header.c, function.h, gcc.c, gcse.c, genattrtab.c,
10352         genautomata.c, genconditions.c, genemit.c, genflags.c,
10353         gengtype.c, gengtype.h, genopinit.c, genrecog.c, gensupport.c,
10354         ggc-zone.c, graph.c, haifa-sched.c, input.h, integrate.c,
10355         langhooks-def.h, langhooks.c, langhooks.h, line-map.c,
10356         line-map.h, local-alloc.c, optabs.c, optabs.h, postreload.c,
10357         ra.h, recog.c, reg-stack.c, regmove.c, reload.c, reorg.c,
10358         rtl.c, sched-deps.c, sched-ebb.c, sdbout.c, system.h,
10359         target.h, targhooks.c, toplev.h, tree-inline.c, unwind-pe.h,
10360         unwind.h, varray.c, varray.h: Update copyright.
10361
10362 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
10363
10364         * config/h8300/coff.h: Update copyright.
10365         * config/h8300/elf.h: Likewise.
10366         * config/h8300/h8300-protos.h: Likewise.
10367         * config/h8300/h8300.c: Likewise.
10368         * config/h8300/h8300.h: Likewise.
10369         * config/h8300/h8300.md: Likewise.
10370
10371 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10372
10373         * fixinc/inclhack.def (hpux10_stdio_declarations, ultrix_const3,
10374         ultrix_locale, ultrix_stdlib, ultrix_strings, ultrix_sys_time,
10375         ultrix_unistd): New hacks.
10376         * fixinc/tests/base/stdio.h (HPUX10_STDIO_DECLARATIONS_CHECK,
10377         ULTRIX_CONST2_CHECK): Add checks.
10378         * fixinc/tests/base/stdlib.h (ULTRIX_STDLIB_CHECK): Likewise.
10379         * fixinc/tests/base/strings.h (ULTRIX_STRINGS2_CHECK): Likewise.
10380         * fixinc/tests/base/unistd.h (ULTRIX_UNISTD_CHECK): Likewise.
10381         * fixinc/tests/base/sys/time.h (ULTRIX_SYS_TIME_CHECK): Likewise.
10382         * fixinc/tests/base/locale.h: New file.
10383         * fixinc/fixincl.x: Rebuilt.
10384
10385 2004-01-21  Andreas Jaeger  <aj@suse.de>
10386             Michael Matz  <matz@suse.de>
10387
10388         * doc/extend.texi (Extended Asm): Clarify memory clobber.
10389
10390 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
10391
10392         * crtstuff.c (frame_dummy, __do_global_ctors_1): Call
10393         _Jv_RegisterClasses through a function pointer.
10394
10395 2004-01-21  Falk Hueffner  <falk@debian.org>
10396
10397         PR target/12898
10398         * config/alpha/alpha.c (alpha_emit_set_const_1): If
10399         no_new_pseudos, use gen_rtx_SET directly for SImode constants
10400         which need multiple instructions to emit.
10401
10402 2004-01-21  Inaoka Kazuhiro  <inaoka.kazuhiro@renesas.com>
10403
10404         * config/m32r/m32r.h (CPP_SPEC): Define.
10405
10406 2004-01-21  Zack Weinberg  <zack@codesourcery.com>
10407
10408         * c-decl.c (merge_decls): Kill different_binding_level and
10409         different_tu arguments; simplify throughout.
10410         (duplicate_decls): Likewise.
10411         (pushdecl, merge_translation_unit_decls): Update calls to
10412         duplicate_decls.
10413
10414 2004-01-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10415
10416         * Makefile.in (pretty-print.o): Depend on $(CONFIG_H) and
10417         $(SYSTEM_H).
10418         (print-rtl1.o): Depend on $(SYSTEM_H).
10419
10420 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
10421
10422         PR bootstrap/12730
10423         * configure.ac: Delete definition and subsitution of docdir.
10424         Add info, man, srcman and srcinfo to target hooks. Create doc/
10425         directory.
10426         * configure: Regenerate.
10427         * Makefile.in: Don't substitute docdir and delete all references
10428         throughout.
10429         (MAKEINFOFLAGS): Define.
10430         (stmp-docobjdir): Delete.
10431         (INFOFILES, MANFILES): Define.
10432         (info): Call lang.info, srcinfo and lang.srcinfo.
10433         (generated-manpages): Call lang.man, srcman and lang.srcman.
10434         (srcinfo, srcman): New rules to copy back files to source directory.
10435         (doc/%.info, doc/%.dvi, doc/%.1, doc/%.7): New implict rule.
10436         (install-man): Revamp rule.
10437         (clean): Update dvi directory.
10438         (distclean): Delete TAGS from front end directorys.
10439         (maintainer-clean): Delete all document files in source directory.
10440
10441         objc/Make-lang.in (objc.man, objc.info): Dummy entries.
10442         (objc.srcman, objc.srcinfo): Likewise.
10443
10444 2004-01-20  Bruce Korb  <bkorb@gnu.org>
10445
10446         * fixinc/inclhack.def(math_exception): bypass only for glibc.
10447         (matherr_decl): rename & relocate as exception_structure.
10448         This fix must precede the math_exception fix.
10449
10450 2004-01-20  Roger Sayle  <roger@eyesopen.com>
10451
10452         * fold-const.c (fold_convert): Rename to fold_convert_const.
10453         (fold_convert_const): Change arguments to take a tree_code,
10454         a type and the operand/expression to be converted.  Return
10455         NULL_TREE if no simplification is possible.  Add support for
10456         FIX_CEIL_EXPR and FIX_FLOOR_EXPR in addition to FIX_TRUNC_EXPR.
10457         (fold): Handle FIX_CEIL_EXPR and FIX_FLOOR_EXPR.
10458         Adjust call to fold_convert to match new fold_convert_const.
10459         Avoid modifying the tree passed to fold in-place.
10460
10461 2004-01-21  Alan Modra  <amodra@bigpond.net.au>
10462
10463         * config/rs6000/sysv4.h (DWARF2_FRAME_REG_OUT): Define.
10464         * dwarf2out.c (output_cfi): Map regs using DWARF2_FRAME_REG_OUT.
10465         * doc/tm.texi (DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Document.
10466
10467 2004-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10468
10469         * pa-protos.h (compute_frame_size): Use HOST_WIDE_INT for frame sizes.
10470         * pa.c (store_reg, store_reg_modify, load_reg, set_reg_plus_d):
10471         Likewise.  Handle frames larger than 0x7fffffff on 64-bit ports.
10472         (emit_move_sequence): Check scratch_reg first in various if statements.
10473         Extend source simplification to handle all 64-bit CONST_INTs.
10474         (pa_output_function_prologue): Use HOST_WIDE_INT_PRINT_DEC for printing
10475         frame size.
10476         (hppa_expand_prologue, hppa_expand_epilogue): Use HOST_WIDE_INT for
10477         frame offset calculations.
10478         * pa.h (NEW_HP_ASSEMBLER): Add comment.
10479         (MAX_LEGIT_64BIT_CONST_INT, MIN_LEGIT_64BIT_CONST_INT,
10480         LEGITIMATE_64BIT_CONST_INT_P): Define.
10481         (LEGITIMATE_CONSTANT_P): Use LEGITIMATE_64BIT_CONST_INT_P.  Treat
10482         any CONST_INT as legitimate during and after reload.
10483         (VAL_32_BITS_P, INT_32_BITS): Define.
10484         (LEGITIMIZE_RELOAD_ADDRESS): Handle large frame offsets.
10485
10486 2004-01-20  Jan Hubicka  <jh@suse.cz>
10487
10488         * emit-rtl.c (verify_rtx_sharing, copy_insn_1,
10489         emit_copy_of_insn_after, emit_copy_of_insn_after): Clobbers
10490         containing hard regs are shared.
10491         (gen_hard_reg_clobber): New function.
10492         (hard_reg_clobbers): New array.
10493         * genemit.c (gen_exp): Use gen_hard_reg_clobber.
10494         (copy_rtx): Do not copy clobbers containing hard regs.
10495         * rtl.h (gen_hard_reg_clobber): Declare.
10496
10497 2004-01-20  Jan Hubicka  <jh@suse.cz>
10498
10499         * varray.c:  Include hashtab.h
10500         (varray_descriptor): New structure.
10501         (hash_descriptor, eq_descriptor, varray_descriptor,
10502         print_statistics): New static functions
10503         (varray_init, varray_grow): Update statistics
10504         (dump_varray_statistics): New function.
10505         * varray.h (dump_varray_statistics): Declare.
10506         * toplev.c (finalize): Call it.
10507         * Makefile.in (varray.o): Add dependency.
10508
10509 2004-01-20  Jan Hubicka  <jh@suse.cz>
10510
10511         * cselib.c: Include alloc-pool.h
10512         (empty_vals, empty_elt_lists, empty_elt_loc_lists): Kill.
10513         (elt_loc_list_pool, elt_list_pool, cselib_val_pool): Declare.
10514         (new_elt_list, new_elt_loc_list, unchain_one_elt_list,
10515         unchain_one_elt_loc_list_pool, unchain_one_value,
10516         new_cselib_val): Simplify using allocpool.
10517         (cselib_init): Initialize allocpools.
10518         (cselib_finish): Finish allocpools.
10519         * Makefile.in (cselib.o): Depend on alloc-pool.h
10520
10521 2004-01-20  Richard Sandiford  <rsandifo@redhat.com>
10522
10523         * config/mips/mips.c (mips_load_call_address): Make the call insn
10524         use $gp if it could be calling a lazy binding stub.
10525
10526 2004-01-20  Kazu Hirata  <kazu@cs.umass.edu>
10527
10528         * config/s390/s390.c (TARGET_PROMOTE_FUNCTION_ARGS): Define.
10529         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
10530         (TARGET_STRUCT_VALUE_RTX): Likewise.
10531         * config/s390/s390.h (PROMOTE_FUNCTION_ARGS): Remove.
10532         (PROMOTE_FUNCTION_RETURN): Remove.
10533         (STRUCT_VALUE): Remove.
10534
10535 2004-01-20  Denis Chertykov  <denisc@overta.ru>
10536
10537         PR bootstrap/13735
10538         * config/avr/avr.h (BASE_REG_CLASS): Don't permit to use X
10539         register as pointer after reload.
10540
10541 2004-01-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10542
10543         PR optimization/12440
10544         * loop.c: Include ggc.h.
10545         (loop_optimize): Run garbage collector between optimization of loops.
10546         * Makefile.in (loop.o): Add GGC_H dependency.
10547
10548 2004-01-20  Hartmut Penner  <hpenner@de.ibm.com>
10549
10550         * gcc/config/rs6000/rs6000.c (function_arg) Handle
10551         vector register special in function without prototype.
10552         (function_arg_advance): Vector parameters get always
10553         GPRs allocated for the linux64 target.
10554
10555 2004-01-20  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
10556
10557         * config/m32r/m32r.h (TARGET_M32R2). Test for TARGET_M32R2_MASK
10558         not TARGET_M32RX_MASK.
10559
10560 2004-01-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
10561
10562         PR target/13557
10563         * config/sparc/sparc.c (function_arg): Reorder the cases.
10564
10565 2004-01-19  Per Bothner  <per@bothner.com>
10566
10567         Move cpp_reader's line_maps field to a shared global.
10568         * cpphash.h (cpp_reader):  Rename line_maps field to line_table
10569         and change the type to a pointer rather than a struct.
10570         * cppinit.c (cpp_push_main_field):  Adjust accordingly.
10571         * cpplib.c (do_include_common, _cpp_do_file_change, cpp_get_callbacks):
10572         Likewise.
10573         * cppfiles.c (validate_pch):  Likewise.
10574         * cppmacro.c (_cpp_warn_if_unused_macro, _cpp_builtin_macro_text):
10575         Likewise.
10576         * cpperror.c (print_location):  Likewise.
10577         * cpplib.h (cpp_create_reader):  New line_maps pointer parameter.
10578         * cppinit.c (cpp_create_reader):  Handle new parameter.
10579         (cpp_destroy):  Don't free line_maps - that's no longer our job.
10580         * input.h (line_table):  New variable.
10581         * toplev.c (line_table):  Declare variable.
10582         (general_init):  Initialize line_table.
10583         * c-opts.c (c_common_init_options):  Pass line_table to
10584         cpp_create_reader.
10585         * fix-header.c (read_scan_file):  New local variable line_table.
10586         Initialize, and pass it to cpp_create_reader.
10587         * Makefile.in (LIBS, LIBDEPS):  Add libcpp.a.
10588         (C_AND_OBJC_OBJS, fix-header):  Remove redundant libcpp.a.
10589
10590 2004-01-19  Per Bothner  <per@bothner.com>
10591
10592         Implement a cache for linemap_lookup.
10593         * line-map.h (struct_line_maps):  Add cache field.
10594         * line-map.c (linemap_init):  Zero cache field.
10595         (linemap_add):  Set cache field to offset of newly allocated map.
10596         (linemap_lookup):  Use and set cache field.
10597
10598 2004-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
10599
10600         PR optimization/13567
10601         * cse.c (cse_basic_block): Call cse_insn with a non-null
10602         libcall_insn for the last SET insn of a no-confilict block.
10603
10604 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
10605
10606         * Makefile.in (target_noncanonical, program_transform_name): Use
10607         immediate define instead of deferred.
10608         (GCC_INSTALL_NAME, GCC_TARGET_INSTALL_NAME, CPP_INSTALL_NAME,
10609         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, GCOV_INSTALL_NAME,
10610         GCCBUG_INSTALL_NAME): Define via a immediate $(shell) instead of
10611         deferred backquote.
10612
10613 2004-01-20  Joseph S. Myers  <jsm@polyomino.org.uk>
10614
10615         * c-decl.c (c_init_decl_processing): Set pedantic_lvalues to
10616         true unconditionally.
10617         * c-typeck.c (unary_complex_lvalue, pedantic_lvalue_warning):
10618         Remove.
10619         (build_unary_op, build_modify_expr): Don't handle extended
10620         lvalues.
10621         (build_component_ref, build_conditional_expr): Call non_lvalue
10622         instead of pedantic_non_lvalue.
10623         (build_c_cast): Don't condition use of non_lvalue on pedantic.
10624         * fold-const.c (fold): Don't check pedantic directly for
10625         COMPOUND_EXPR.  Ensure that results for COMPOUND_EXPR are
10626         passed to pedantic_non_lvalue.
10627         * doc/extend.texi: Remove documentation of extended lvalues.
10628
10629 2004-01-19  Roger Sayle  <roger@eyesopen.com>
10630
10631         PR optimization/5263
10632         * simplify-rtx.c (associative_constant_p): Delete.
10633         (simplify_associative_operation): Rewrite to linearize terms, and
10634         attempt to simplify new term against both left and right subterms.
10635         (simplify_binary_operation): Call swap_commutative_operands_p on
10636         op0 and op1, not trueop0 and trueop1.  Move the initialization of
10637         trueop0 and trueop1 down to where first needed.
10638         (simplify_relational_operation): Likewise.
10639         * rtlanal.c (commutative_operand_precedence): Also order constant
10640         operands using avoid_constant_pool_reference.
10641
10642 2004-01-19  Richard Henderson  <rth@redhat.com>
10643
10644         * config/alpha/alpha.c (aligned_memory_operand): Check MEM_ALIGN,
10645         don't check memory mode.
10646         (unaligned_memory_operand): Likewise.
10647         (reload_inqi, reload_inhi, reload_outqi, reload_outhi): Don't
10648         abort for op0 not MEM.
10649
10650         * config/alpha/alpha.c (alpha_expand_mov_nobwx): If the destination
10651         is not a reg, copy to a scratch first.
10652         (aligned_loadqi, aligned_loadhi, unaligned_loadqi, unaligned_loadhi,
10653         unaligned_loadqi_le, unaligned_loadqi_be, unaligned_loadhi_le,
10654         unaligned_loadhi_be): Expect op0 in DImode; don't SUBREG.
10655         (reload_inqi, reload_inhi): Fix mode of op0.
10656         (reload_inqi_help, reload_inhi_help, reload_outqi_help,
10657         reload_outhi_help): Likewise.  Use define_insn_and_split.
10658
10659         * config/alpha/alpha.md (call peepholes): Check for REG_NORETURN
10660         as well as $29 dead.
10661
10662 2004-01-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
10663
10664         * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): New.  Emit
10665         "tls_object" for thread-local objects.
10666         * config/sparc/sparc.c (sparc_elf_asm_named_section): Emit
10667         "#tls" for thread-local sections.
10668         * configure.ac (thread-local checks): Specify --fatal-warnings in
10669         every binutils-specific checks.  For sparc*-*-*, test whether the
10670         OS is Solaris and the tools are native and act accordingly.
10671         * configure: Rebuild.
10672
10673 2004-01-19  Jeff Law  <law@redhat.com>
10674
10675         * contrib.texi: Update Paolo Carlini's entry.  New entries for
10676         Jerry Quinn and Petur Runolfsson.
10677
10678 2004-01-19  Roger Sayle  <roger@eyesopen.com>
10679
10680         * config/i386/i386.md (*movhi_1, *movqi_1): When optimizing for
10681         size, don't use the larger zero-extending loads.
10682
10683 2004-01-19  Richard Henderson  <rth@redhat.com>
10684
10685         * alpha.h (HARD_REGNO_MODE_OK): Disallow SImode in FP regs.
10686         * alpha.md (UNSPEC_NT_LDA): Remove.
10687         (UNSPEC_CVTLQ, cvtlq): New.
10688         (extendsidi2_1): Rename from extendsidi2_nofix; remove f/f.
10689         (extendsidi2_fix): Remove.
10690         (extendsidi2 splitter): Use cvtlq.
10691         (extendsidi2 fp peepholes): Remove.
10692         (cvtql): Use SFmode instead of SImode.
10693         (fix_trunc?fsi): Update to match.
10694         (floatsisf2_ieee, floatsisf2, floatsidf2_ieee, floatsidf2): New.
10695         (movsi): Rename from movsi_nofix, remove f alternatives.
10696         (movsi_nt_vms): Similarly.
10697         (movsi_fix, movsi_nt_vms_fix): Remove.
10698         (nt_lda): Remove.
10699         * alpha.c (alpha_expand_prologue): Use adddi3, not nt_lda.
10700
10701 2004-01-19  Jan Hubicka  <jh@suse.cz>
10702
10703         * cgraph.c (cgraph_remove_node): Fix removal from linked list.
10704         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear next_needed
10705         list.
10706         (cgraph_remove_unreachable_nodes): New function
10707         (cgraph_decide_inlining_of_small_function): Fix pasto.
10708         (cgraph_decide_inlining_incrementally): Fix pasto.
10709         (cgrpah_decide_inlining): Likewise; remove unreachable nodes.
10710
10711 2004-01-19  Steven Bosscher  <stevenb@suse.de>
10712
10713         * gengtype.c (header_file): Make it static.
10714         (write_types_process_field, write_enum_defn): Minor whitespace fixes.
10715         * gengtype.h (header_file): No longer extern.
10716
10717 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
10718
10719         * defaults.h (CASE_VECTOR_PC_RELATIVE): Provide the default.
10720         * expr.c (CASE_VECTOR_PC_RELATIVE): Remove.
10721         * stmt.c (CASE_VECTOR_PC_RELATIVE): Likewise.
10722
10723 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
10724
10725         * stmt.c (HAVE_casesi): Define it not already defined.
10726         (HAVE_tablejump): Likewise.
10727         (expand_end_case_type): Resort to the binary tree method if
10728         neither casesi or tablejump is available.
10729
10730 2004-01-18  Daniel Jacobowitz  <drow@mvista.com>
10731
10732         * final.c (final_scan_insn): Make non-static again.
10733         * output.h (final_scan_insn): Re-add prototype.
10734         * config/arc/arc.c (arc_output_function_epilogue): Add NULL
10735         to final_scan_insn call.
10736         * config/cris/cris.c (cris_target_asm_function_epilogue): Likewise.
10737         * config/mips/mips.c (mips_output_conditional_branch): Likewise.
10738         * config/pa/pa.c (output_lbranch, output_call): Likewise.
10739         * config/sh/sh.c (print_slot): Likewise.
10740         * config/sparc/sparc.c (sparc_nonflat_function_epilogue): Likewise.
10741         (output_sibcall, sparc_flat_function_epilogue): Likewise.
10742
10743 2004-01-18  Jan Hubicka  <jh@suse.cz>
10744
10745         * basic-block.h (try_redirect_by_replacing_jump): Declare.
10746         * cfgcleanup.c (try_optimize_cfg): Use it.
10747         * cfgrtl.c (try_redirect_by_replacing_jump): Export.
10748         (rtl_redirect_edge_and_branch, cfg_layout_redirect_edge_and_branch):
10749         Kill hack.
10750         (cfg_layout_merge_blocks): Use try_redirect_by_replacing_jump.
10751
10752         Revert:
10753         2004-01-16  Geoffrey Keating  <geoffk@apple.com>
10754
10755                 * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
10756                 even after reload, just don't remove the actual jump tables.
10757
10758 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
10759
10760         * config/rs6000/rs6000.h (STRICT_ARGUMENT_NAMING): Remove.
10761
10762 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
10763
10764         * defaults.h (ASM_OUTPUT_ADDR_VEC_ELT): Fix the computation of
10765         the size of a pointer in bytes.
10766
10767 2004-01-18  Roger Sayle  <roger@eyesopen.com>
10768
10769         * builtins.c (expand_builtin_expect_jump): Fix thinko of reusing
10770         live "next" variable, which could lead to an infinite loop.
10771
10772 2004-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
10773
10774         * config/rs6000/altivec.h: Wrap C++ functions in extern "C++"
10775         block.
10776
10777         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
10778         Check for NULL in the chain and remove repeated code.
10779
10780 2004-01-18  Jan Hubicka  <jh@suse.cz>
10781
10782         * coverage.c (checksum_string): Rename to ...
10783         (coverage_checksum_string): ... this one, Use crc32_string; recognize
10784         names containing random number and zero the number out in order to get
10785         match.
10786
10787 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
10788
10789         * config/mips/mips.c (mips_got_alias_set): Mark for PCH.
10790
10791 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
10792
10793         * doc/c-tree.texi, doc/cpp.texi, doc/extend.texi,
10794         doc/frontends.texi, doc/gcov.texi, doc/gty.texi, doc/install.texi,
10795         doc/invoke.texi, doc/libgcc.texi, doc/md.texi, doc/rtl.texi,
10796         doc/sourcebuild.texi, doc/standards.texi, doc/tm.texi,
10797         doc/trouble.texi: Remove trailing whitespace.
10798
10799 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
10800
10801         PR target/7618
10802         * config/mips/mips.c: Include cfglayout.h.
10803         (TARGET_ASM_OUTPUT_MI_THUNK, TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
10804         (mips_unspec_offset_high): Add temporary register argument.
10805         (mips_load_call_address): New function, split out from...
10806         (mips_expand_call): ...here.
10807         (mips_output_cplocal): New function.
10808         (mips_output_function_prologue, mips_output_function_epilogue): Use it.
10809         (mips_emit_loadgp): New function, split out from...
10810         (mips_expand_prologue): ...here.
10811         (mips_output_mi_thunk): New function.
10812
10813 2004-01-17  Bernardo Innocenti  <bernie@develer.com>
10814
10815         * longlong.h (mc68020, __mc68030__, mc68030, __mc68040__, mc68040,
10816         mcpu32): Remove redundant checks for implied target predefines.
10817
10818 2004-1-17  Andrew Pinski  <pinskia@physics.uc.edu>
10819
10820         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
10821         Return type is unsigned int not int.
10822         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
10823         Likewise.
10824
10825 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
10826
10827         * doc/contrib.texi, doc/cppenv.texi, doc/extend.texi,
10828         doc/install.texi, doc/invoke.texi, doc/tm.texi: Consistently use
10829         "GNU/Linux" and "Microsoft Windows" terminology.
10830
10831 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
10832
10833         * doc/c-tree.texi, doc/compat.texi, doc/cpp.texi,
10834         doc/cppopts.texi, doc/extend.texi, doc/install.texi,
10835         doc/interface.texi, doc/invoke.texi, doc/libgcc.texi, doc/md.texi,
10836         doc/objc.texi, doc/rtl.texi, doc/tm.texi, doc/trouble.texi: Use
10837         @smallexample instead of @example.
10838
10839 2004-01-17  Ziemowit Laski  <zlaski@apple.com>
10840
10841         * objc/objc-act.c (build_objc_method_call): Use target
10842         hooks instead of macros to determine if ..._stret
10843         dispatchers should be used (NeXT runtime only).
10844
10845 2004-01-17  Roger Sayle  <roger@eyesopen.com>
10846
10847         * builtins.c (expand_builtin_expect_jump): Fix mistake in my
10848         last patch.  Use XEXP (x, 0) to get a LABEL_REF's CODE_LABEL.
10849
10850 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
10851
10852         * rtl.h (emit_insn_before_sameloc, emit_jump_insn_before_sameloc)
10853         (emit_call_insn_before_sameloc, emit_insn_after_sameloc)
10854         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): New
10855         macros.
10856         * reload1.c (emit_reload_insns): Use them.
10857         * emit-rtl.c (emit_insn_before_sameloc, emit_insn_after_sameloc)
10858         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): Check
10859         for NULL PATTERN.
10860
10861 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
10862
10863         * final.c (SEEN_BB, SEEN_NOTE, SEEN_EMITTED): Define.
10864         (final_scan_insn): Update to take an additional SEEN argument.  Emit
10865         a line note after the prologue.  Make static.
10866         (line_note_exists): Remove.
10867         (final): Don't initialize line_note_exists.  Update call to
10868         final_scan_insn.
10869         * output.h (final_scan_insn): Remove prologue.
10870         * function.c (set_insn_locators): Update comment.
10871         (thread_prologue_and_epilogue_insns): Add a comment.
10872
10873 2004-01-17  Andrew Pinski  <pinskia@physics.uc.edu>
10874
10875         PR target/10781
10876         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
10877         Prototype.
10878         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
10879         New function.
10880         * config/rs6000/linux64.h (ROUND_TYPE_ALIGN): Use it.
10881         * config/rs6000/aix.h (ROUND_TYPE_ALIGN): Likewise.
10882         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Likewise.
10883
10884 2004-01-17  Jan Hubicka  <jh@suse.cz>
10885
10886         * toplev.c (rest_of_handle_reorder_blocks): Fix pasto in previous
10887         commit.
10888
10889         * toplev.c (HAVE_conditional_execution): Provide default.
10890         (rest_of_handle_reorder_blocks): For conditional_execution target
10891         update liveness once after all transformations
10892         (rest_of_compilation): Do crossjumping before ce3.
10893
10894 2004-01-17  Geoffrey Keating  <geoffk@apple.com>
10895
10896         * alias.c (new_alias_set): Mark last_alias_set for PCH.
10897         (get_varargs_alias_set): Rename 'set' to 'varargs_set' and mark it
10898         for PCH.
10899         (get_frame_alias_set): Likewise, except rename it to 'frame_set'.
10900         * config/rs6000/rs6000.c (rs6000_sr_alias_set): Mark for PCH.
10901         (get_TOC_alias_set): Mark 'set' for PCH.
10902
10903 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
10904
10905         * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
10906         even after reload, just don't remove the actual jump tables.
10907
10908 2004-01-17  J. Brobecker  <brobecker@gnat.com>
10909
10910         * dwarf2out.c (is_subrange_type): Renamed from is_ada_subrange_type().
10911         Remove checks for is_ada() and TREE_UNSIGNED.
10912         (subrange_type_die): Emit a byte_size attribute if the subrange
10913         type size is different from the base type size.
10914         (modified_type_die): Replace call to is_ada_subrange_type() by
10915         call to is_subrange_type().
10916
10917 2004-01-16  Andrew Pinski  <pinskia@physics.uc.edu>
10918
10919         * config/sh/sh.c: Include ggc.h.
10920
10921 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
10922
10923         * Makefile.in (MD5_H): New.
10924         (fold-const.o): Depend on md5.h.
10925         (dwarf2out.o): Likewise.
10926         (cppfiles.o): Likewise.
10927         * cppfiles.c: Include md5.h.
10928         (should_stack_file): Check against list read from PCH file.
10929         (struct pchf_data): New.
10930         (pchf): New variable.
10931         (struct pchf_adder_info): New.
10932         (pchf_adder): New.
10933         (pchf_save_compare): New.
10934         (_cpp_save_file_entries): New.
10935         (_cpp_read_file_entries): New.
10936         (struct pchf_compare_data): New.
10937         (pchf_compare): New.
10938         (check_file_against_entries): New.
10939         * cpphash.h (_cpp_save_file_entries): Prototype.
10940         (_cpp_read_file_entries): Prototype.
10941         * cpppch.c (cpp_write_pch_state): Write the list of headers.
10942         (cpp_read_state): Read the list of headers.
10943
10944 2004-01-17  Jan Hubicka  <jh@suse.cz>
10945
10946         * c-common.c (c_estimate_num_insns_1): Handle builtin_constant_p and
10947         builtin_expect specially.
10948         * params.def (PARAM_MAX_INLINE_INSNS_AUTO): Set to 100.
10949         (PARAM_LARGE_FUNCTION_INSNS): Set to 3000.
10950         * invoke.texi (max-inline-insns-single): Set to 100.
10951         (large-function-insns): Set to 3000.
10952
10953 2004-01-16  Eric Christopher  <echristo@redhat.com>
10954             Chandrakala Chavva <cchavva@redhat.com>
10955
10956         * cppcharset.c (one_iso88591_to_utf8): New function.
10957         (convert_iso88591_utf8): Ditto. Use.
10958         (conversion_tab): Use.
10959         (_cpp_input_to_utf8): New function.
10960         (_cpp_init_iconv_buffer): Ditto.
10961         (_cpp_close_iconv_buffer): Ditto.
10962         * cpphash.h: Prototype new functions.
10963         (cpp_buffer): Add input_cset_desc.
10964         * cppinit.c: Add input_charset default.
10965         * cpplib.c (cpp_push_buffer): Support init and
10966         close of iconv.
10967         * cpplib.h (cpp_options): Add input_charset.
10968
10969 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
10970
10971         * system.h (ASM_OUTPUT_SECTION_NAME): Poison.
10972         * config/alpha/unicosmk.h: Remove a commented-out definition
10973         of ASM_OUTPUT_SECTION_NAME.
10974         * config/stormy16/stormy16.h: Likewise.
10975
10976 2004-01-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10977
10978         * fixinc/inclhack.def (alpha___extern_prefix): Renamed to ...
10979         (alpha___extern_prefix_sys_stat): ... this.
10980         Apply to <sys/mount.h>, too.
10981         Tweak to match more variations.
10982         * fixinc/tests/base/sys/stat.h: Adapt for new hackname.
10983
10984         * fixinc/inclhack.def (alpha___extern_prefix,
10985         alpha___extern_prefix_standards): New hacks to obey
10986         __PRAGMA_EXTERN_PREFIX.
10987         * fixinc/tests/base/testing.h [ALPHA___EXTERN_PREFIX_CHECK]: New
10988         test.
10989         * fixinc/tests/base/standards.h: Likewise.
10990
10991         * fixincl/inclhack.def (alpha_pthread): Tweak to match more
10992         variations.
10993         New testcase.
10994         * fixinc/tests/base/pthread.h: Handle it.
10995
10996         * fixincl/inclhack.def (bad_lval): Sort file list.
10997         Add many missing files up to Tru64 UNIX V5.1B.
10998         * gcc/fixinc/tests/base/libgen.h: Renamed to ...
10999         * gcc/fixinc/tests/base/dirent.h: ... this to match new file list
11000         order.
11001
11002         * fixinc/fixincl.x: Regenerate.
11003
11004 2004-01-16  Mark Mitchell  <mark@codesourcery.com>
11005
11006         * version.c (version_string): Change to 3.5.0.
11007         * doc/include/gcc-common.texi (version-GCC): Likewise.
11008
11009 2004-01-16  Jan Hubicka  <jh@suse.cz>
11010
11011         * i386.md (load_tp_di): Fix pasto.
11012
11013         PR opt/13608
11014         * i386.c (ix86_compute_frame_layout): Fix for alloca on leaf function.
11015
11016         * c-pretty-print.c (pp_c_type_cast, pp_c_abstract_declarator,
11017         pp_c_character_constant, pp_c_floating_constant,
11018         pp_c_additive_expression, pp_c_shift_expression,
11019         pp_c_equality_expression, pp_c_and_expression,
11020         pp_c_exclusive_or_expression, pp_c_inclusive_or_expression,
11021         pp_c_logical_and_expression): Remove inline modifier.
11022         * dwarf2out.c (get_AT): Likewise.
11023         * et-forest.c (et_splay): Likewise.
11024         * ra.h (ra_alloc, ra_calloc): Likewise
11025
11026 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
11027
11028         * config/frv/frv-protos.h: Fix comment formatting.
11029         * config/frv/frv.c: Likewise.
11030         * config/frv/frv.h: Likewise.
11031         * config/frv/frv.md: Likewise.
11032         * config/frv/frvbegin.c: Likewise.
11033         * config/frv/frvend.c: Likewise.
11034
11035 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
11036
11037         * system.h (LINKER_DOES_NOT_WORK_WITH_DWARF2): Poison.
11038         * doc/tm.texi (PREFERRED_DEBUGGING_TYPE): Don't mention
11039         LINKER_DOES_NOT_WORK_WITH_DWARF2.
11040         (LINKER_DOES_NOT_WORK_WITH_DWARF2): Remove.
11041
11042 2004-01-16  J"orn Rennecke <joern.rennecke@superh.com>
11043
11044         PR 11864
11045         * postreload.c (reload_cse_simplify_operands): Don't remove
11046         implicit extension from LOAD_EXTEND_OP.
11047
11048 2004-01-16  Jan Hubicka  <jh@suse.cz>
11049
11050         PR opt/11350
11051         * cfgcleanup.c (try_optimize_cfg): Suppress tablejump removal
11052         after reload.
11053         * cfgrtl.c (rtl_can_merge_blocks, cfglayout_can_merge_blocks,
11054         rtl_try_redirect_by_replacing_branch): Likewise.
11055
11056 2004-01-15  Geoffrey Keating  <geoffk@apple.com>
11057
11058         PR pch/13689
11059         * alias.c (struct alias_set_entry): Mark for GC.
11060         (alias_sets): Make static, mark for GC.
11061         (record_alias_subset): Use GC to allocate alias structures.
11062         * varray.c (element): Make generic varrays GCed.
11063
11064         PR pch/13361
11065         * c-typeck.c (constructor_asmspec): Delete.
11066         (struct initializer_stack): Delete field 'asmspec'.
11067         (start_init): Delete saving of asmspec.
11068         (finish_init): Don't update constructor_asmspec.
11069         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
11070         * stmt.c (expand_asm): Duplicate strings from tree.
11071         (expand_asm_operands): Likewise.
11072         * tree.c (tree_size): Update computation of size of STRING_CST.
11073         (make_node): Don't make STRING_CST nodes.
11074         (build_string): Allocate string with tree node.
11075         * tree.def (STRING_CST): Update comment.
11076         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
11077         (tree_string): Place contents of string in tree node.
11078         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
11079         from tree.
11080
11081         * config/rs6000/rs6000.c (rs6000_va_arg): No need to special-case
11082         altivec operands.
11083
11084 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
11085
11086         * c-common.h: Fix comment formatting.
11087         * c-cppbuiltin.c: Likewise.
11088         * c-pragma.c: Likewise.
11089         * calls.c: Likewise.
11090         * collect2.c: Likewise.
11091         * cppcharset.c: Likewise.
11092         * cpptrad.c: Likewise.
11093         * dbxout.c: Likewise.
11094         * defaults.h: Likewise.
11095         * dwarf2out.c: Likewise.
11096         * fold-const.c: Likewise.
11097         * genautomata.c: Likewise.
11098         * genconditions.c: Likewise.
11099         * genflags.c: Likewise.
11100         * gengtype.c: Likewise.
11101         * integrate.c: Likewise.
11102         * loop.c: Likewise.
11103         * predict.c: Likewise.
11104         * sdbout.c: Likewise.
11105
11106 2004-01-15  Zack Weinberg  <zack@codesourcery.com>
11107
11108         * config/ia64/ia64.md (*movti_internal): C output template
11109         extracted to ia64.c.
11110         (*movti_internal_reg): Delete.
11111         (reload_inti, reload_outti): Use the correct mode on operand 2
11112         in the first place, don't fix it up in the output template.
11113         (movtf, reload_ointf, reload_outtf): New expanders.
11114         (*movtf_internal): New define_insn_and_split.
11115         * config/ia64/ia64.c (ia64_split_timode): Rename to ia64_split_tmode;
11116         make static; do not hand TFmode CONST_DOUBLEs to split_double.
11117         (ia64_split_tmode_move): New function, body mostly pulled
11118         from ia64.md:*movti_internal.
11119         (ia64_function_arg_words): New function, extracted common
11120         logic from ia64_function_arg et seq.
11121         (ia64_function_arg_offset): Likewise.  Handle correctly the
11122         case of a scalar quantity 16 bytes wide with only 8-byte alignment.
11123         (ia64_function_arg, ia64_function_arg_partial_nregs)
11124         (ia64_function_arg_advance): Use ia64_function_arg_words and
11125         ia64_function_arg_offset.
11126         (ia64_function_value): TCmode does not go in float regs.
11127         (ia64_secondary_reload_class): Also handle TFmode.
11128         * config/ia64/ia64-protos.h: Remove prototype for
11129         ia64_split_timode; add prototype for ia64_split_tmode_move.
11130
11131 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
11132
11133         * Makefile.in (MAINT): Make it an immediate assignment.
11134
11135 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
11136
11137         * config/m32r/m32r.md: Remove useless calls to gen_lowpart.
11138
11139 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
11140
11141         * config/h8300/coff.h: Replace Hitachi with Renesas.
11142         * config/h8300/elf.h: Likewise.
11143         * config/h8300/h8300-protos.h: Likewise.
11144         * config/h8300/h8300.c: Likewise.
11145         * config/h8300/h8300.h: Likewise.
11146         * config/h8300/h8300.md: Likewise.
11147         * config/h8300/lib1funcs.asm: Likewise.
11148
11149 2004-01-15  Andrew Pinski  <apinski@apple.com>
11150
11151         * config/rs6000/rs6000.c (uses_TOC): Wrap #if TARGET_ELF
11152         around it.
11153
11154 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
11155
11156         * config/h8300/h8300.c (h8300_return_in_memory): New.
11157         (TARGET_STRUCT_VALUE_RTX): Likewise.
11158         (TARGET_RETURN_IN_MEMORY): Likewise.
11159         * config/h8300/h8300.h (STRUCT_VALUE): Remove.
11160         (RETURN_IN_MEMORY): Likewise.
11161
11162 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
11163
11164         PR optimization/13375
11165         * gcse.c (handle_avail_expr): Just return if the source is not a
11166         single set.
11167
11168 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
11169             Daniel Jacobowitz  <drow@mvista.com>
11170
11171         * arm/lib1funcs.asm (ARM_FUNC_START): Correct interworking case.
11172         (EQUIV): Define.
11173         (ARM_FUNC_ALIAS): New macro.
11174         * arm/ieee754-df.S (gedf2, ledf2, nedf2, eqdf2): Use it.
11175         * arm/ieee754-sf.S (gesf2, lesf2, nesf2, eqsf2): Use it.
11176
11177 2004-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11178
11179         PR optimization/12372
11180         * calls.c (expand_call): Add call_fusage data for stack arguments in
11181         constant calls.
11182
11183 2004-01-15  Alan Modra  <amodra@bigpond.net.au>
11184
11185         * config/rs6000/rs6000.c (uses_TOC): Correct comment.  Make static.
11186         (rs6000_elf_declare_function_name): Formatting.
11187         * config/rs6000/rs6000-protos.h (uses_TOC): Remove declaration.
11188
11189 2004-01-15  Jan Hubicka  <jh@suse.cz>
11190
11191         PR bootstrap/13692
11192         * sched-deps.c (sched_analyze_1, sched_analyze_2): Fix thinko in
11193         previous patch.
11194
11195 2004-01-15  Richard Henderson  <rth@redhat.com>
11196
11197         * config/alpha/alpha.h (REG_ALLOC_ORDER): Reorder fp regs after
11198         integer regs of the same call-savedness.
11199
11200 2004-01-15  Andreas Schwab  <schwab@suse.de>
11201
11202         PR bootstrap/13562
11203         * config/m68k/m68k.c (output_move_const_into_data_reg): Clear cc
11204         status for NOTB/NOTW/NEGW methods.
11205
11206 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
11207
11208         * doc/invoke.texi: Update dump file names.  Fix a typo.
11209
11210 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
11211
11212         * builtins.c (expand_builtin_va_end): Don't use
11213         EXPAND_BUILTIN_VA_END.
11214         * system.h (EXPAND_BUILTIN_VA_END): Poison.
11215         * config/d30v/d30v.h: Remove a commented-out definition of
11216         EXPAND_BUILTIN_VA_END.
11217         * config/stormy16/stormy16.h: Likewise.
11218
11219 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
11220
11221         * system.h (STRUCT_VALUE_INCOMING_REGNUM): Poison.
11222         * targhooks.c (default_struct_value_rtx): Don't use
11223         STRUCT_VALUE_INCOMING_REGNUM.
11224
11225 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
11226
11227         PR bootstrap/12744
11228         * configure.in: Revamp enable-generated-files-in-srcdir rule to define
11229         GENINSRC and not parsedir.  Define srcextra as a langhook.
11230         * configure: Regenerate.
11231         * Makefile.in: Suppress default .l.c rule.  Don't substitute
11232         parsedir and delete all references throughout.  Conditionally define
11233         rule for srcextra dependent on GENINSRC.
11234         (stmp-docobjdir): Delete.
11235         (c-parse.o, gengtype-lex.o, gengtype-yacc.o): Use implicit build rule.
11236         (srcextra): Copy c-parse.y, c-parse.c, gengtype-lex.c, gengtype-yacc.c,
11237         and gengtype-yacc.h back to source directory.
11238         (maintainer-clean): Delete all parse files in source directory.
11239         (distclean): Delete generated files.
11240
11241         * objc/Make-lang.in (objc-parse.o): Use implicit build rule.
11242         (objc-parse.c, objc-parse.y): Don't use parsedir.
11243         (objc.srcextra): Copy objc-parse.y and objc-parse.c back to source
11244         directory if requested.
11245         (po-generated): Don't use parsedir.
11246         (objc.maintainer-clean): Delete above files from source directory.
11247
11248 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
11249
11250         * doc/tm.texi (FUNCTION_VALUE): Fix a typo.
11251
11252 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
11253
11254         * doc/tm.texi: Replace RETURN_IN_MEMORY with
11255         TARGET_RETURN_IN_MEMORY.
11256
11257 2004-01-15  Jan Hubicka  <jh@suse.cz>
11258
11259         * builtins.c (std_expand_builtin_va_arg): Align operand when needed.
11260         * i386.c (init_cumulative_args): Set warn_sse; fix handling of variadic
11261         functions accepting SSE arguments
11262         (function_arg): Warn only when asked to warn.
11263         * i386.h (ix86_args): Add warn_sse/warn_mmx fiels.
11264
11265 2004-01-14  Joseph S. Myers  <jsm@polyomino.org.uk>
11266
11267         * c-parse.in (stmts_and_decls): Make label at end of compound
11268         statement a hard error.
11269
11270 2004-01-14  Jan Hubicka  <jh@suse.cz>
11271
11272         * cgraph.c (create_edge): Use local.redefined_extern_inline.
11273         * cgraph.h (cgraph_local_info): Sort fields by size; add
11274         redefined_extern_inline
11275         (cgraph_global_info): Sort fields by size.
11276         (cgraph_node): Likewise.
11277         * cgraphunit.c (cgraph_finalize_function): Se
11278         local.redefined_extern_inline on redefinition.
11279         (cgraph_analyze_function): Use it; fix formating.
11280
11281 2004-01-14  Jan Hubicka  <jh@suse.cz>
11282
11283         PR c++/10776
11284         * sched-deps.c (trye_dependency_cache, anti_dependency_cache,
11285         outptu_dependency_cache, forward_dependency_cahe): Trun to vectors of
11286         bitmaps
11287         (cache_size): New variable
11288         (add_dependence): Update use; canonize early memory locations
11289         (sched_analyze_1): Likewise.
11290         (sched_analyze_2): Likewise.
11291         (init_dependency_caches): Initialize bitmaps.
11292         (free_dependency_caches): Free bitmaps
11293
11294 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
11295
11296         * calls.c: Replace STRICT_ARGUMENT_NAMING in comments with
11297         targetm.calls.strict_argument_naming().
11298         * target.h: Likewise.
11299
11300 2004-01-14  Richard Henderson  <rth@redhat.com>
11301
11302         PR debug/13231
11303         * dwarf2out.c (dwarf2out_stack_adjust): Skip prologue and epilogue
11304         instructions.
11305
11306 2004-01-14  Richard Henderson  <rth@redhat.com>
11307
11308         PR c++/12491
11309         * except.c (struct eh_region): Add u.fixup.resolved.
11310         (resolve_one_fixup_region): Split out from ...
11311         (resolve_fixup_regions): ... here.
11312
11313 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
11314
11315         * config/mn10300/mn10300.h (STRUCT_VALUE): Change to 0.
11316
11317 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
11318
11319         * config/alpha/alpha.h (STRUCT_VALUE): Remove.
11320         * config/alpha/vms.h (STRUCT_VALUE_REGNUM): Remove #undef.
11321         (STRUCT_VALUE): Remove.
11322
11323 2004-01-14  Steven Bosscher  <stevenb@suse.de>
11324
11325         * system.h: Poison PROMOTED_MODE
11326         * integrate.c (expand_inline_function): Don't mention the
11327         PROMOTED_MODE.
11328         * loop.c (update_giv_derive): Same.
11329         * tree.h (DECL_RTL): Same.
11330
11331 2004-01-14  J"orn Rennecke <joern.rennecke@superh.com>
11332
11333         PR target/9365
11334         * sh.c (gen_block_redirect): Add special handling of RETURN.
11335         (gen_far_branch) Don't call gen_stuff_delay_slot if there is no
11336         far branch target (i.e. it's a return).
11337
11338 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
11339
11340         * regrename.c (find_oldest_value_reg): Fix a warning.
11341
11342 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
11343
11344         PR bootstrap/12527
11345         * config.gcc (arm*-*-linux*): Don't include unknown-elf.h in tm_file.
11346         Move linux-gas.h and linux-elf.h before aout.h.
11347         * arm/arm.h (INITIALIZE_TRAMPOLINE): Only define if not already.
11348         * arm/linux-elf.h (SUBTARGET_CPU_DEFAULT): Define.
11349
11350 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
11351
11352         * config/m32r/m32r.md: Use GEN_INT instead of gen_rtx
11353         (CONST_INT, VOIDmode, ...).
11354
11355 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
11356
11357         * regrename.c (find_oldest_value_reg): If the replacement uses
11358         multiple hard registers, check that all of them are in CLASS.
11359
11360 2004-01-14  Jan Hubicka  <jh@suse.cz>
11361
11362         * alias.c (get_alias_set):  Initialize alias set to 0 when subset is
11363         impossible.
11364
11365 2004-01-14  Kelley Cook  <kcook@gcc.gnu.org>
11366
11367         * Makefile.in: Define MAINT from --enable-maintainer-mode.
11368
11369 2004-01-14  Hartmut Penner  <hpenner@de.ibm.com>
11370
11371         * gcc/config/rs6000/rs6000.c (rs6000_stack_info)
11372         Calculate always vrsave_mask if TARGET_ALTIVEC.
11373         (rs6000_emit_prologue): Emit code for vrsave
11374         only if TARGET_ALTIVEC_VRSAVE.
11375         (rs6000_emit_epilogue): Likewise.
11376
11377 2004-01-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
11378
11379         * config/sparc/sparc.md (tie_add32): Fix pasto.
11380         (tie_add64): Likewise.
11381
11382 2004-01-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11383
11384         * config/i386/i386.md (*addqi_1_slp): Do not access operands[2].
11385
11386 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
11387
11388         * config/iq2000/iq2000-protos.h: Fix comment formatting.
11389         * config/iq2000/iq2000.c: Likewise.
11390         * config/iq2000/iq2000.md: Likewise.
11391
11392 2004-01-14  J. Brobecker  <brobecker@gnat.com>
11393
11394         * dwarf2out.c (is_ada_subrange_type): No longer check the TYPE_NAME.
11395         (subrange_type_die): Add handle for nameless subrange types.
11396
11397 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
11398
11399         * config/h8300/h8300-protos.h: Replace do_movsi with
11400         h8300_expand_movsi.
11401         * config/h8300/h8300.c (do_movsi): Change to
11402         h8300_expand_movsi.
11403         * config/h8300/h8300.md (movsi): Replace do_movsi with
11404         h8300_expand_movsi.
11405         (movsf): Likewise.
11406
11407 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
11408
11409         * config/h8300/h8300.c (dosize): Change to
11410         h8300_emit_stack_adjustment.  Update callers.
11411
11412 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
11413
11414         * config/h8300/h8300.md (movstrictqi): Add an alternative with
11415         the source being post_inc.  Tighten the predicate for the
11416         destination to register_operand.
11417         (movstricthi): Likewise.
11418
11419 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
11420
11421         * system.h (SHARED_BSS_SECTION_ASM_OP): Poison.
11422         * varasm.c (bss_section): Don't use SHARED_BSS_SECTION_ASM_OP.
11423         * doc/tm.texi (SHARED_BSS_SECTION_ASM_OP): Remove.
11424
11425 2004-01-14  Jan Hubicka  <jh@suse.cz>
11426
11427         Partial fix PR c++/12850
11428         * cgraphunit.c (cgraph_finalize_function): Always ggc_collect when
11429         at zero nest level.
11430
11431 2004-01-13  Bernardo Innocenti  <bernie@develer.com>
11432
11433         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Add missing "argptr"
11434         pseudo-register.
11435
11436 2004-01-13  Devang Patel <dpatel@apple.com
11437
11438         PR debug/7078
11439         * dbxout.c (dbxout_symbol_name): Emit mangled names for
11440         NAMESPACE_DECL memebers.
11441
11442 2004-01-13  Andrew Pinski  <pinskia@physics.uc.edu>
11443
11444         PR c++/12709
11445         * c-common.c (finish_fname_decls): Use the chain only if the
11446         tree is an expr_stmt.
11447
11448 2004-01-13  Vladimir Makarov  <vmakarov@redhat.com>
11449
11450         * rtl.def: Add comment about new option in automata_option.
11451
11452         * genautomata.c (PROGRESS_OPTION): New macro.
11453         (progress_flag): New global variable.
11454         (gen_automata_option): Process `progress'.
11455         (transform_insn_regexps, check_unit_distributions_to_automata,
11456         make_automaton, NDFA_to_DFA, build_automaton, create_automata,
11457         expand_automata, write_automata): Print about the progress only if
11458         progress_flag.  Remove fflush.
11459         (initiate_automaton_gen): Process command line flag `-progress'.
11460
11461         * doc/md.texi: Describe the new option.
11462
11463 2004-01-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11464
11465         * cfg.c (dump_bb): Dump entry edges.
11466
11467 2004-01-13  Richard Earnshaw  <rearnsha@arm.com>
11468
11469         * arm.c (thumb_legitimate_address_p): Only allow constant pool
11470         references from SImode.
11471         * arm.md (thumb_movhi_insn): Don't allow minipool references.
11472
11473 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
11474
11475         * system.h (TEXT_SECTION): Poison.
11476         * varasm.c (text_section): Don't use TEXT_SECTION.
11477         * config/sh/sh.c (sh_file_start): Fix a comment typo.
11478         * doc/tm.texi (TEXT_SECTION): Remove.
11479
11480 2004-01-13  Ben Elliston  <bje@wasabisystems.com>
11481
11482         * doc/rtl.texi (Vector Operations): Remove defunct vec_const item.
11483
11484 2004-01-12  James E Wilson  <wilson@specifixinc.com>
11485
11486         * unwind-libunwind.c: Delete.
11487
11488 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
11489
11490         PR 13656
11491         * c-decl.c (diagnose_mismatched_decls): Whenever newtype or
11492         oldtype is set, set *newtypep or *oldtypep too.  Do not set
11493         them at the very end.
11494         (validate_proto_after_old_defn): Restructure for comprehensibility;
11495         make error messages clearer.
11496
11497 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
11498
11499         * varray.h (VARRAY_POP): Add checking variant, aborts on underflow.
11500         (VARRAY_TOP): Use VARRAY_CHECK so the access is bounds-checked.
11501         * varray.c: No need to prototype error.
11502         (varray_check_failed): Wrap long string onto two lines.
11503         (varray_underflow): New function.
11504
11505 2004-01-13  Steven Bosscher  <stevenb@suse.de>
11506
11507         PR c++/13376
11508         * function.h (struct function): Kill `name' field.
11509         (current_function_name): Make it an extern function.
11510         * function.c (current_function_name): New function.
11511         * graph.c: Update all uses of current_function_name.
11512         * gcse.c: Likewise.
11513         * config/alpha/alpha.c, config/avr/avr.c, config/c4x/c4x.c,
11514         config/mips/mips.c, config/pdp11/pdp11.c: Likewise.
11515         * config/ip2k/ip2k.c (function_prologue): Use MAIN_NAME_P
11516         instead of a strcmp with "main".
11517
11518 2004-01-13  Jan Hubicka  <jh@suse.cz>
11519
11520         * c-decl.c (diagnose_mismatched_decls):  Fix warning calls.
11521
11522         * cgraphunit.c (cgraph_optimize_function):  Always do
11523         optimize_inline_calls when there is always_inline callee.
11524         (cgraph_decide_inlining): Fix formating.
11525         * tree-inline.c (inlinable_function_p): Do sorry for alwaysinline
11526         functions.
11527         (expand_call_inline): Likewise.
11528         * toplev.h (sorry): Fix prototype.
11529
11530 2004-01-12  Roger Sayle  <roger@eyesopen.com>
11531
11532         * builtins.c (expand_builtin_expect_jump): Simplify logic. Handle
11533         conditional jumps that drop through to unconditional jumps or the
11534         end of the sequence.
11535
11536 2004-01-13  Jan Hubicka  <jh@suse.cz>
11537
11538         * alias.c (new_alias_set): Construct the alias_set varray.
11539         (init_alias_once): Don't do it here.
11540
11541 2004-01-12  Marc Espie <espie@openbsd.org>
11542
11543         * system.h: handle YYBYACC like YYBISON.
11544
11545 2004-01-12  Jonathan Merriman <jonm@dualitymedia.com>
11546
11547         PR target/10847
11548         * config.gcc: No longer includes conflicting header sparc/sol2.h when
11549         building on sparc64-*-openbsd*.
11550
11551 2004-01-12  Andrew Pinski  <pinskia@physics.uc.edu>
11552
11553         PR debug/13539
11554         * dbxout.c (dbxout_type): Protected inheritance is not
11555         private but protected.
11556
11557 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
11558
11559         * config/mips/mips.c (mips_symbolic_constant_p): Revert last patch.
11560
11561 2004-01-12  Kazu Hirata  <kazu@cs.umass.edu>
11562
11563         PR optimization/12508.
11564         * combine.c (try_combine): Remove a dead set in a parallel
11565         even if its destination is a subreg.
11566
11567         Revert:
11568         2003-06-03  Kazu Hirata  <kazu@cs.umass.edu>
11569         * combine.c (simplify_set): Don't move a subreg in SET_SRC to
11570         SET_DEST if WORD_REGISTER_OPERATIONS is not defined.
11571
11572 2004-01-12  Geoffrey Keating  <geoffk@apple.com>
11573
11574         * real.c: Update copyright date.
11575         * emit-rtl.c: Likewise.
11576         * rtl.h: Likewise.
11577         * dwarf2out.c: Likewise.
11578         * config/rs6000/darwin-ldouble.c: Likewise.
11579         * config/rs6000/rs6000.md: Likewise.
11580
11581 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
11582
11583         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Add AIX
11584         TFmode to SImode libfuncs.
11585
11586 2004-01-12  Roger Sayle  <roger@eyesopen.com>
11587
11588         PR middle-end/11397
11589         * varasm.c (assemble_alias): Remove weak aliases from weak_decls.
11590
11591 2004-01-12  Jan Hubicka  <jh@suse.cz>
11592
11593         PR opt/12826
11594         * loop.c (insert_loop_mem): Preffer VOLATILE memory references to be
11595         stored.
11596
11597         PR opt/12863
11598         * cfgcleanup.c (label_is_jump_target_p): Move to...
11599         * rtlanal.c (label_is_jump_target_p): ... here.
11600         * cfgrtl.c (cfg_layout_redirect_edge_and_branch):  Fix redirecting of fallthru
11601         edges unified with branch edges.
11602
11603 2004-01-12  Richard Earnshaw  <rearnsha@arm.com>
11604
11605         * simplify-rtx.c (simplify_immed_subreg): Correctly extract the
11606         high word of an integral CONST_DOUBLE.
11607
11608 2004-01-12  Paul Brook  <paul@codesourcery.com>
11609
11610         * simplify-rtx.c (simplify_plus_minus): Always generate canonical form.
11611
11612 2004-01-12  J"orn Rennecke <joern.rennecke@superh.com>
11613
11614         PR target/13585
11615         * sh-protos.h (check_use_sfunc_addr): Declare.
11616         * sh.c (extract_sfunc_addr, check_use_sfunc_addr): New functions.
11617         * sh.md (use_sfunc_addr): Use check_use_sfunc_addr in insn predicate.
11618
11619 2004-01-12  Jan Hubicka  <jh@suse.cz>
11620
11621         * alias.c:  Invlude varray.h
11622         (alias_sets): Turn into varray.
11623         (get_alias_set_entry): Use VARRAY; mark inline.
11624         (mems_in_disjoint_alias_sets_p): Mark inline.
11625         (record_alias_subset): Use varray.
11626         (init_alias_once): Initialize varray.
11627         (new_alias_set): Grow array.
11628         * varray.c: Make VARRAY_GENERIC_PTR non GTYized.
11629
11630 2004-01-12  Jan Hubicka  <jh@suse.cz>
11631
11632         Partial fix for PR opt/10776 II
11633         * cselib.c: Include params.h
11634         (cselib_invalidate_mem):  Limit amount of nonconflicting memory
11635         locations.
11636         * params.def (PARAM_MAX_CSELIB_MEMORY_LOCATIONS): New.
11637         * Makefile.in (cselib.o): Depend on params.h
11638
11639 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
11640
11641         * combine.c (combine_simplify_rtx): Don't pass VOIDmode to
11642         simplify_unary_operation if the operand has a known mode.
11643
11644 2004-01-12  Hartmut Penner  <hpenner@de.ibm.com>
11645
11646         PR target/13534
11647         * gcc/config/rs6000/rs6000.c (word_offset_memref_operand): New
11648         predicate to handle 'ld' conform addresses.
11649         * gcc/config/rs6000/rs6000.h (EXTRA_CONSTRAINT): New 'Y'
11650         contraint.
11651         (EXTRA_MEMORY_CONSTRAINT): Tell reload which constraint
11652         are memory contraints.
11653         * gcc/config/rs6000/rs6000-protos.h (word_offset_memref_operand):
11654         New prototype.
11655         * gcc/config/rs6000/rs6000.md (*movdf_hardfloat64):
11656         Change 'o' to 'Y' constraint.
11657         (*movdf_softfloat64): Ditto.
11658
11659 2004-01-12  Bernardo Innocenti  <bernie@develer.com>
11660
11661         * gcc/config/m68k/m68k.md: Switch from the "*..." syntax to the
11662         brace-enclosed syntax in all C output statements.
11663
11664 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
11665
11666         PR target/13401
11667         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
11668         Objective-C language type value is 14.
11669
11670 2004-01-12  Markus F.X.J. Oberhumer  <markus@oberhumer.com>
11671
11672         PR c/12148
11673         * config/m68k/fpgnulib.c: Fix `-mshort' bugs: Use `long' instead of
11674         `int' in a number of places to make sure we always have a SImode
11675         and not a HImode.  Add a 'L' suffix to a number of constants.
11676
11677 2004-01-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11678
11679         * pa.c: Don't include obstack.h.
11680
11681         * pa.md: Correct constraint in pattern for loading PIC label address.
11682
11683 2004-01-11  Kaz Kojima  <kkojima@gcc.gnu.org>
11684
11685         * config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine
11686          before defining.
11687
11688 2004-01-11  Steven Bosscher  <stevenb@suse.de>
11689
11690         PR fortran/9972
11691         * toplev.c (rest_of_handle_inline): Also consider functions
11692         for deferral if the language is GNU F77.
11693
11694 2004-01-11  Zack Weinberg  <zack@codesourcery.com>
11695
11696         * c-decl.c (diagnose_arglist_conflict): Add missing space to
11697         diagnostic messages.
11698
11699 2004-01-11  Jakub Jelinek  <jakub@redhat.com>
11700
11701         PR middle-end/13392
11702         * builtins.c (expand_builtin_expect_jump): Handle conditional jumps
11703         to drop through label.  Don't fall back to SCC even when conditional
11704         jump has not been found.
11705
11706 2004-01-11  Jan Hubicka  <jh@suse.cz>
11707
11708         * invoke.texi: Fix syntax error in previous patch.
11709
11710         Partial fix for PR opt/10776
11711         * Makefile.in (reload.o): Include param.h
11712         * params.def (PARAM_MAX_RELOAD_SEARCH_INSNS): New parameter.
11713         * reload.c: Include params.h.
11714         (find_equiv_reg): Work limiting check.
11715         * invoke.texi: Document.
11716
11717 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
11718
11719         * config/mips/mips.c (mips_symbolic_constant_p): Don't allow
11720         out-of-bounds accesses to string constants.  Simplify mips16
11721         case accordingly.
11722
11723 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
11724
11725         PR optimization/13469
11726         * toplev.c (rest_of_compilation): Call purge_all_dead_edges after
11727         reload_cse_regs (-fnon-call-exceptions only).
11728
11729 2004-01-11  Kazu Hirata  <kazu@cs.umass.edu>
11730
11731         * config/mcore/lib1.asm: Fix comment formatting.
11732         * config/mcore/mcore-elf.h: Likewise.
11733         * config/mcore/mcore.c: Likewise.
11734         * config/mcore/mcore.h: Likewise.
11735         * config/mcore/mcore.md: Likewise.
11736
11737 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
11738
11739         * c-decl.c (duplicate_decls): Break apart into...
11740         (diagnose_arglist_conflict, validate_proto_after_old_defn)
11741         (locate_old_defn, diagnose_mismatched_decls, merge_decls):
11742         ... these new functions.  Restructure for comprehensibility.
11743         Remove various archaic special cases.  Always report the
11744         location of the previous declaration when a diagnostic is issued.
11745         (redeclaration_error_message): Fold into diagnose_mismatched_decls.
11746         (match_builtin_function_types): Delete unnecessary forward declaration.
11747
11748 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
11749
11750         * genautomata.c (make_automaton, NDFA_to_DFA):
11751         Print progress bars with '.' characters instead of '*'.
11752         (build_automaton): Change notes to match.
11753
11754 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
11755
11756         * config/m32r/m32r.md: Use define_constants for unspec and
11757         unspec_volatile.
11758
11759 2004-01-10  Jan Hubicka  <jh@suse.cz>
11760
11761         PR opt/11635
11762         * expr.c (expand_expr_real):  More curefully expand union casts.
11763
11764 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
11765
11766         * config/m32r/m32r.md (flush_icache): Use 1 for
11767         unspec_volatile.
11768
11769 2004-01-10  David Edelsohn  <edelsohn@gnu.org>
11770             James E Wilson  <wilson@specifixinc.com>
11771
11772         PR debug/12860
11773         * dbxout.c (dbxout_symbol): Remove initialization of
11774         current_sym_code, current_sym_value, and current_sym_addr.
11775         (dbxout_symbol_location): Same.
11776         (dbxout_prepare_symbol): Zero current_sym_code,
11777         current_sym_value, and current_sym_addr.
11778
11779 2004-01-10  Richard Sandiford  <rsandifo@redhat.com>
11780
11781         * tree.c (get_unwidened): Reorder conditions so that the null pointer
11782         check is done first.
11783
11784 2004-01-09  Eric Christopher  <echristo@redhat.com>
11785
11786         * toplev.c (rest_of_handle_cfg): Add reg_scan pass
11787         if we're running mark_constant_function.
11788
11789 2004-01-09  Jeff Bailey  <jbailey@nisa.net>
11790
11791         PR target/12561
11792         * config/t-gnu: Rename SYSTEM_HEADER_DIR to NATIVE_SYSTEM_HEADER_DIR.
11793
11794 2004-01-09  Andrew Pinski <pinskia@physics.uc.edu>
11795
11796         PR debug/11231
11797         * dbxout.c (dbxout_type_fields): Return if any item is
11798         error_mark_node or the type is error_mark_node.
11799
11800 2004-01-09  Geoffrey Keating  <geoffk@apple.com>
11801
11802         * config/rs6000/darwin-ldouble.c: Add big comment explaining
11803         exactly what is expected as a 'long double'.
11804         (_xlqadd): When a value to be returned is representable as a
11805         'double', just return it directly, do not construct it using a union.
11806         Also, correct final fixup.
11807         (_xlqmul): Likewise.
11808         (_xlqdiv): Likewise.
11809         * real.c (encode_ibm_extended): Make consistent with darwin-ldouble.c.
11810
11811         * config/rs6000/rs6000.md (fix_trunctfdi2): Delete.
11812
11813 2004-01-09  Richard Henderson  <rth@redhat.com>
11814
11815         * recog.c (constrain_operands): Validate mem operands.
11816
11817 2004-01-09   James E Wilson  <wilson@specifixinc.com>
11818
11819         * gcc.c (init_spec): Remove -lunwind from shared case.
11820         * conifg/ia64/t-hpux (SHLIB_LINK): Add -lunwind.
11821
11822 2004-01-09  Steve Ellcey  <sje@cup.hp.com>
11823
11824         * configure.ac: (gcc_cv_ld_hidden) Set to true for ia64*-*-hpux*.
11825         * configure: Regenerate
11826
11827 2004-01-09  Joseph S. Myers  <jsm@polyomino.org.uk>
11828
11829         PR c/11234
11830         * c-typeck.c (build_c_cast): If pedantic, warn for conversions
11831         between function and object pointers.
11832         (digest_init): When comparing a pointer to function type to the
11833         target type, only apply TREE_TYPE once to the pointer to function
11834         type.
11835         * except.c (for_each_eh_label_1): Treat data as a pointer to a
11836         function pointer rather than casting it to a function pointer.
11837         (for_each_eh_label): Update caller.
11838         * recog.h (struct insn_data): Use a struct or union for output.
11839         * genoutput.c (output_insn_data): Update.
11840         * final.c (get_insn_template): Update.
11841
11842 2004-01-09  Mark Mitchell  <mark@codesourcery.com>
11843
11844         * expr.h (expand_expr): Make it a macro, not a function.
11845         (expand_expr_real): New function.
11846         * expr.c (store_expr): Adjust logic for deciding whether or not to
11847         copy the value returned by expand_expr.
11848         (expand_expr): Rename to ...
11849         (expand_expr_real): ... this.  Add alt_rtl parameter.  Adjust
11850         calls to language hooks.
11851         * c-common.h (c_expand_expr): Adjust prototype.
11852         * c-common.c (c_expand_expr): Add alt_rtl parameter.
11853         * langhooks-def.h (lhd_expand_expr): Change prototype.
11854         * langhooks.c (lhd_expand_expr): Add all_rtl parameter.
11855         * langhooks.h (lang_hooks): Change type of expand_expr.
11856         * stmt.c (stmt_status): Add x_last_expr_alt_rtl.
11857         (last_expr_alt_rtl): Likewise.
11858         (expand_expr_stmt_value): Set last_expr_alt_rtl.
11859         (clear_last_expr): Clear it.
11860         (expand_end_stmt_expr): Set RTL_EXPR_ATL_RTL.
11861         (expand_end_bindings): Save and restor last_expr_alt_rtl.
11862         * tree.def (RTL_EXPR): Give it an additional operand.
11863         * tree.h (RTL_EXPR_ALT_RTL): New macro.
11864
11865 2004-01-09  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
11866
11867         * config/m32r/m32r.h (TARGET_CPU_CPP_BUILTINS): Add __m32r__.
11868         * config/m32r/m32r.c (call26_operand): Allow in PIC mode.
11869
11870 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
11871
11872         PR target/13380.
11873         * config/m32r/m32r.md: Replace (reg:SI 17) with (reg:CC 17)
11874         or (ne:SI (reg:CC 17) (const_int 0)).
11875         Be specific about modes wherever possible.
11876
11877 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
11878
11879         * config/m32r/m32r.c (m32r_expand_block_move): Call
11880         gen_movestrsi_internal with two more arguments.
11881         (m32r_output_block_move): Adjust operand numbers.
11882         Properly update the source and destination pointers.
11883         * config/m32r/m32r.md (movstrsi_internal): Use 'r' instead of
11884         'r+'.  Change the set detinations to match_operand.
11885
11886 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
11887
11888         * final.c (FIRST_INSN_ADDRESS): Remove.
11889         (shorten_branches): Don't use FIRST_INSN_ADDRESS.
11890         * system.h (FIRST_INSN_ADDRESS): Poison.
11891         * config/avr/avr.h: Remove a comment about FIRST_INSN_ADDRESS.
11892         * config/m32r/m32r-protos.h: Remove the prototype for
11893         m32r_first_insn_address.
11894         * config/m32r/m32r.c (m32r_first_insn_address): Remove.
11895         * config/m32r/m32r.h (FIRST_INSN_ADDRESS): Likewise.
11896         * doc/md.texi (FIRST_INSN_ADDRESS): Likewise.
11897
11898 2004-01-09  J. Brobecker  <brobecker@gnat.com>
11899
11900         * dwarf2out.c (gen_enumeration_type_die): Return the DIE that
11901         we just created.
11902         (is_ada_subrange_type): DIEs for enumeration subtypes should be
11903         emitted as subrange types too.
11904         (subrange_type_die): Add handling of enumeration subtypes.
11905
11906 2004-01-08  Richard Henderson  <rth@redhat.com>
11907
11908         PR opt/12441
11909         Revert: Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>
11910         * i386.c (aligned_operand): Be prepared for SUBREGed registers.
11911         (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
11912         (ix86_address_cost): Be prepared for SUBREGed registers.
11913         (legitimate_address_p): Accept SUBREGed registers.
11914
11915 2004-01-08  Kelley Cook  <kcook@gcc.gnu.org>
11916
11917         * Makefile.in: Rename configure.in to configure.ac
11918         * doc/sourcebuild.texi: Likewise.
11919         * configure: Regenerate.
11920         * config.in: Regenerate.
11921
11922 2004-01-08  Stuart Hastings  <stuart@apple.com>
11923
11924         * config/i386/i386.md: Typos in MMX/SSE immediate shifts.
11925
11926 2004-01-08  Jan Hubicka  <jh@suse.cz>
11927
11928         * cgraphunit.c (cgraph_decide_inlining):  Fix typo.
11929
11930 2004-01-08  Geoffrey Keating  <geoffk@apple.com>
11931
11932         * config/rs6000/rs6000.md (cmptf_internal1): Correct branch offset.
11933         (UNSPEC_FIX_TRUNC_TF): New constant.
11934         (movtf_internal): Make splitter active only when insn is active.
11935         (extenddftf2): Rewrite to properly load zero into low part.
11936         (extenddftf2_internal): New.
11937         (extendsftf2): Rewrite.
11938         (truncdftf2): Correct length.
11939         (floatditf2): Delete.
11940         (fix_trunc_helper): New.
11941         (fix_trunctfdi2): Use fix_trunc_helper.
11942         (fix_trunctfsi2): Likewise.fix_trunc
11943         (fix_trunctfsi2_internal): New.
11944
11945         * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): lo_sum
11946         addresses are legitimate on Darwin even when flag_pic.
11947         (rs6000_legitimize_reload_address) [TARGET_MACHO]: Don't create
11948         non-offsettable addresses for loads of TFmode constants.
11949
11950 2004-01-08  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
11951
11952         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Actually emit
11953         variables in the appropriate bss section.
11954
11955 2004-01-09  Alan Modra  <amodra@bigpond.net.au>
11956
11957         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Ensure
11958         target_flags has MASK_POWERPC64 when -m64.
11959         * config/rs6000/rs6000.c (processor_target_table): Add MASK_POWERPC64
11960         to 620, 630, power3, power4 and rs64a entries.
11961         * config/rs6000/rs6000.h (MASK_64BIT): Expand comment.
11962
11963 2004-01-08  Richard Sandiford  <rsandifo@redhat.com>
11964
11965         * simplify-rtx.c (simplify_immed_subreg): Fix construction of
11966         floating-point constants.
11967
11968 2004-01-08  J. Brobecker  <brobecker@gnat.com>
11969
11970         * dwarf2out.c (subrange_type_die): Add context_die parameter.
11971         Create the subrange_type DIE using the given context DIE.
11972         (modified_type_die): Update call to subrange_type_die.
11973
11974 2004-01-08  Zack Weinberg  <zack@codesourcery.com>
11975
11976         * dwarf2.h, unwind-dw2-fde.h, unwind-pe.h, unwind.h:
11977         Add multiple-include guard.
11978
11979 2004-01-08  Hartmut Penner  <hpenner@de.ibm.com>
11980
11981         * gcc/config/rs6000/rs6000.c (easy_vector_constant): Accept
11982         all vector constant loadable by vsplt*.
11983         (output_vec_const_move): Likewise.
11984
11985 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
11986
11987         PR c/6024
11988         * c-typeck.c (comptypes): Only treat enumerated types in the same
11989         translation unit as compatible with each other when they are the
11990         same type.
11991         * doc/extend.texi: Update.
11992
11993 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
11994
11995         PR c/12165
11996         * c-decl.c (grokdeclarator): Take type qualifiers of typedefed
11997         array type from the array element type.
11998
11999 2004-01-07  Alan Modra  <amodra@bigpond.net.au>
12000
12001         * config/rs6000/rs6000.c (rs6000_dbx_register_number): New function.
12002         * config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Declare.
12003         * config/rs6000/rs6000.h (DWARF_FRAME_REGNUM): Define.
12004         (DWARF_REG_TO_UNWIND_COLUMN): Correct column adjustment and comment.
12005         * config/rs6000/sysv4.h (DBX_REGISTER_NUMBER): Define.
12006
12007 2004-01-06  Eric Christopher  <echristo@redhat.com>
12008
12009         * config/mips/mips.h (MDEBUG_ASM_SPEC): Change for dwarf2 default.
12010         (DWARF2_DEBUGGING_INFO): Define.
12011         (PREFERRED_DEBUGGING_TYPE): Set to dwarf2.
12012         * config/mips/openbsd.h (PREFERRED_DEBUGGING_TYPE): Remove.
12013         * config/mips/iris6.h (SUBTARGET_ASM_DEBUGGING_SPEC): Only pass -g0
12014         for irix as.
12015         (SUBTARGET_ASM_OPTIMIZING_SPEC): Only pass O0 for irix as.
12016         * config/mips/iris6gas.h (MDEBUG_ASM_SPEC): Remove.
12017         * config/mips/iris5gas.h: Ditto.
12018         (DBX_DEBUGGING_INFO): Remove.
12019         (DWARF2_DEBUGGING_INFO): Ditto.
12020         (MIPS_DEBUGGING_INFO): Ditto.
12021         (PREFERRED_DEBUGGING_TYPE): Ditto.
12022         * config/mips/elf.h (DWARF2_DEBUGGING_INFO): Remove.
12023         (PREFERRED_DEBUGGING_TYPE): Ditto.
12024         (SUBTARGET_ASM_DEBUGGING_SPEC): Ditto.
12025         * config/mips/elf64.h: Ditto.
12026
12027 2004-01-06  Jan Hubicka  <jh@suse.cz>
12028
12029         * Makefile.in (STAGEPROFILE_FLAGS_TO_PASS): Use -fprofile-generate.
12030         (STAGEFEEDBACK_FLAGS_TO_PASS): Use -fprofile-use.
12031
12032 2004-01-06  Geoffrey Keating  <geoffk@apple.com>
12033
12034         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Compile darwin-ldouble.c.
12035         (TARGET_LIBGCC2_CFLAGS): Use -mlong-double-128.
12036         * config/rs6000/darwin-ldouble.c: New.
12037
12038         * emit-rtl.c (gen_lowpart_common): Use simplify_gen_subreg
12039         for constants.
12040         (constant_subword): Delete.
12041         * rtl.h (constant_subword): Delete prototype.
12042         (immed_double_const): Is not in varasm.c.
12043         * simplify-rtx.c (simplify_immed_subreg): New.
12044         (simplify_subreg): Use simplify_immed_subreg.
12045
12046         * config/rs6000/rs6000.md (floatsitf2): Use expand_float rather
12047         than trying to generate RTL directly.
12048         (fix_trunctfsi2): Use expand_fix rather than trying to generate
12049         RTL directly.
12050
12051         * dwarf2out.c (add_const_value_attribute): Remove incorrect comment.
12052
12053 2004-01-06  David Edelsohn  <edelsohn@gnu.org>
12054
12055         * config/rs6000/xcoff.h (EXTRA_SECTION_FUNCTIONS): Split each
12056         function into a separate macro.
12057         (read_only_data_section): Add void argument.
12058         (private_data_section): Same.
12059         (read_only_private_data_section): Same.
12060         (toc_section): Same.
12061
12062 2004-01-06  Jan Hubicka  <jh@suse.cz>
12063
12064         * invoke.texi:  Remove typo in last change.
12065
12066         PR target/10301
12067         * config.gcc: Accept opteron and athlon-64 as variants
12068         of k8.
12069         * i386.c (override_options): Likewise.
12070         * invoke.texi (i386 -mtune): Expand documentation.
12071
12072 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
12073
12074         * alias.c: Fix comment typos.
12075         * builtins.c: Likewise.
12076         * cfg.c: Likewise.
12077         * df.c: Likewise.
12078         * dominance.c: Likewise.
12079         * dwarf2out.c: Likewise.
12080         * emit-rtl.c: Likewise.
12081         * expr.c: Likewise.
12082         * final.c: Likewise.
12083         * fold-const.c: Likewise.
12084         * gcse.c: Likewise.
12085         * genattrtab.c: Likewise.
12086         * genrecog.c: Likewise.
12087         * gensupport.c: Likewise.
12088         * ggc-zone.c: Likewise.
12089         * integrate.c: Likewise.
12090         * local-alloc.c: Likewise.
12091         * loop.c: Likewise.
12092         * recog.c: Likewise.
12093         * regmove.c: Likewise.
12094         * reg-stack.c: Likewise.
12095         * reorg.c: Likewise.
12096         * rtlanal.c: Likewise.
12097         * rtl.h: Likewise.
12098         * sched-ebb.c: Likewise.
12099         * simplify-rtx.c: Likewise.
12100         * toplev.c: Likewise.
12101         * varasm.c: Likewise.
12102
12103 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
12104
12105         * doc/install.texi: Fix typos.
12106         * doc/invoke.texi: Likewise.
12107         * doc/md.texi: Likewise.
12108
12109 2004-01-06  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
12110
12111         * config/m32r/m32r.h (TRAMPOLINE_LINE_SIZE): Changed
12112
12113 2004-01-06  Jan Hubicka  <jh@suse.cz>
12114
12115         * i386.c (init_cumulative_args):  Add handling of MMX_REGPARM.
12116         (function_arg_advance):  Do not pass aggregates in SSE; deal handling
12117         of MMX_REGPARM.
12118         (function_arg): Add new warnings about ABI changes;  fix SSE_REGPARM;
12119         add MMX_REGPARM.
12120         * i386.h (ix86_args): Add mmx_words/mmx_regs/mmx_regno fields.
12121         (SSE_REGPARM_MAX): Default to 3 on i386 -msse ABI.
12122         (MMX_REGPARM_MAX): Similarly for -mmmx.
12123
12124 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
12125
12126         * config/sh/linux.h: Fix comment formatting.
12127         * config/sh/netbsd-elf.h: Likewise.
12128         * config/sh/sh.c: Likewise.
12129         * config/sh/sh.h: Likewise.
12130         * config/sh/vxworks.h: Likewise.
12131
12132 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
12133
12134         * system.h (ASM_OUTPUT_MAIN_SOURCE_FILENAME): Poison.
12135         * toplev.c (output_file_directive): Don't use
12136         ASM_OUTPUT_MAIN_SOURCE_FILENAME.
12137
12138 2004-01-05  Steven Bosscher <s.bosscher@student.tudelft.nl>
12139
12140         * toplev.c: Fix broken checkin of 2003-12-30.
12141
12142 2004-01-05  Daniel Berlin  <dberlin@dberlin.org>
12143
12144         * ggc-zone.c: Remove everything in #ifdef USING_MALLOC_PAGE_GROUPS
12145         (USING_MMAP): We don't support non-mmap.
12146         (struct alloc_chunk): Steal 1 bit from typecode, use it to mark
12147         large objects.
12148         (struct page_entry): Remove bytes_free.
12149         (struct page_table_chain): Remove.
12150         (struct globals): Remove page_table member.
12151         (loookup_page_table_entry): Function deleted.
12152         (set_page_table_entry): Ditto.
12153         (ggc_allocated_p): No longer need page table lookups.
12154         (ggc_marked_p): Ditto.
12155         (alloc_small_page): Don't care about bytes_free anymore.
12156         (alloc_large_page): Round up size.
12157         (ggc_alloc_zone_1): Mark large objects as such, and calculate
12158         their size the new way.
12159         Remove page table lookups and setting.
12160         (ggc_get_size): Calculate large object size the new way.
12161         (sweep_pages): Redo to account for fact that we no longer have
12162         bytes_free.
12163         (ggc_collect): No longer need to reincrement bytes_free.
12164         (ggc_pch_alloc_object): Handle new large objects properly.
12165         (ggc_pch_read): Put PCH stuff into it's own uncollected zone.
12166
12167 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
12168
12169         * doc/invoke.texi: Remove a page break.
12170
12171 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
12172
12173         * config/avr/avr.c (avr_output_function_prologue): Remove an
12174         extra pair of curly braces.
12175
12176 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
12177
12178         * config/mn10300/mn10300.c: Fix comment formatting.
12179         * config/mn10300/mn10300.h: Likewise.
12180
12181 2004-01-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12182
12183         * tree.h: Update documentation on nothrow_flag.
12184         * print-tree.c (print_node): Print TREE_NOTHROW as "align-ok" for
12185         types.
12186
12187 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
12188
12189         * doc/invoke.texi: Remove traces of dead ports.
12190
12191 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
12192
12193         * doc/invoke.texi: Add documentation for the MIPS -mexplicit-relocs
12194         option.
12195
12196 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
12197
12198         PR target/12945
12199         * coverage.c (coverage_counter_alloc): Set SYMBOL_FLAG_LOCAL for
12200         counter labels.
12201         * config/mips/mips.c (INTERNAL_SYMBOL_P): Delete.
12202         (mips_classify_symbol): Always treat SYMBOL_REF_FLAG as indicating
12203         string constants if TARGET_MIPS16.  Use SYMBOL_REF_DECL to check
12204         the binding of decl symbols, otherwise check SYMBOL_REF_LOCAL_P.
12205         (mips_symbol_insns): Don't trust the local/global classification.
12206         (m16_usym8_4, m16_usym5_4): Same mips16 change as mips_classify_symbol.
12207         (override_options): Make -mabicalls -fno-unit-at-a-time imply
12208         -mno-explicit-relocs.
12209         (mips_encode_section_info): Don't use SYMBOL_REF_FLAG to distinguish
12210         between local and global symbols.
12211
12212 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
12213
12214         * config/mips/mips-protos.h (mips_dangerous_for_la25_p): Declare.
12215         (mips_preferred_reload_class): Declare.
12216         * config/mips/mips.h (DANGEROUS_FOR_LA25_P): Replace with function.
12217         (EXTRA_CONSTRAINT): Update accordingly.
12218         (PREFERRED_RELOAD_CLASS): Use mips_preferred_reload_class.
12219         * config/mips/mips.c (mips_dangerous_for_la25_p): New function.
12220         (mips_preferred_reload_class): New function.  Prefer LEA_REGS if
12221         mips_dangerous_for_la25_p.
12222         (mips_secondary_reload_class): Use LEA_REGS rather than GR_REGS
12223         if mips_dangerous_for_la25_p.
12224
12225 2004-01-05  Bernardo Innocenti  <bernie@develer.com>
12226
12227         * config/m68k/m68k.c (output_andsi3): Fix signed/unsigned comparison
12228         warning.
12229
12230 2004-01-04  Nathanael Nerode  <neroden@gcc.gnu.org>
12231
12232         * configure.ac: Use AC_PROG_CPP_WERROR.
12233         * configure: Regenerate.
12234
12235 2004-01-04  Zack Weinberg  <zack@codesourcery.com>
12236
12237         * .cvsignore: Add autom4te.cache.
12238
12239 2004-01-04  Richard Sandiford  <rsandifo@redhat.com>
12240
12241         * doc/invoke.texi: Revamp documentation of MIPS options.  Remove
12242         -mabi=meabi, -mabi-fake-default, -mmips-as, -mgas, -mmips-tfile,
12243         -m4650, -mfix7000 and -(m)no-crt0.  Put endianness options first,
12244         then architecture options, then ABI options.  General rewording.
12245
12246 2004-01-04  Joseph S. Myers  <jsm@polyomino.org.uk>
12247
12248         PR c/3414
12249         * doc/extend.texi: Clarify definition of malloc attribute.
12250
12251 2004-01-04  Jan Hubicka  <jh@suse.cz>
12252
12253         * Makefile.in (cgraph.o, cgraphunit.o): Add intl.h dependency.
12254         * cgraph.c (create_edge, dump_cgraph): Update to use inline_failed
12255         * cgraph.h (cgraph_edge): Replace inline_call by inline_failed
12256         (cgraph_inline_p): Add extra argument reason.
12257         * cgraphunit.c: Minor formating fixes.
12258         cgraph_first_inlined_callee): New functions.
12259         (record_call_1): Record builtins too.
12260         (cgraph_analyze_function): Update inline_failed messages.
12261         (cgraph_mark_functions_to_output, cgraph_expand_function, cgraph_inlined_into,
12262         cgraph_inlined_callees, cgraph_estimate_growth): Update to use inline_failed.
12263         (cgraph_check_inline_limits): Likewise; Add argument reason.
12264         (cgraph_set_inline_failed): New static function.
12265         (cgraph_decide_inlining_of_small_function, cgraph_decide_inlining): Set
12266         reasons.
12267         (cgraph_inline_p): Add new argument reason.
12268         * tree-inline.c (expand_call_inline):  Update warning.
12269
12270 2004-01-03  Nathanael Nerode  <neroden@gcc.gnu.org>
12271
12272         * configure.ac: Replace AC_INIT, AC_OUTPUT, AC_CANONICAL_SYSTEM
12273         with modern equivalents.
12274         * configure: Regenerate.
12275
12276         * configure.ac: Replace gcc_AC_CHECK_TYPE with AC_CHECK_TYPE.
12277         * aclocal.m4 (gcc_AC_CHECK_TYPE): Remove.
12278         * configure: Regenerate.
12279
12280         * doc/install.texi: Note that 'gcc' is now a 2.57 directory.
12281
12282         * configure.in: Rename to configure.ac.
12283         * configure.ac: Renamed from configure.in; make minimum necessary
12284         changes for autoconf 2.5x.
12285         * aclocal.m4: Make minimum necessary changes for autoconf 2.5x.
12286         * configure: Regenerate with autoconf 2.57.
12287
12288 2004-01-03  Kazu Hirata  <kazu@cs.umass.edu>
12289
12290         * config/mips/linux.h: Fix comment formatting.
12291         * config/mips/mips.c: Likewise.
12292         * config/mips/mips.h: Likewise.
12293         * config/mips/mips.md: Likewise.
12294         * config/mips/netbsd.h: Likewise.
12295         * config/mips/windiss.h: Likewise.
12296
12297 2004-01-02  Richard Henderson  <rth@redhat.com>
12298
12299         * config/i386/i386.md (fp constant pool splitter): Reorg suppression
12300         for sse and 387; add suppression for mmx.
12301
12302 2004-01-02  Andrew Pinski  <pinskia@physics.uc.edu>
12303
12304         * loop.c (loop_optimize): Free all loops_info's mems.
12305
12306         * c-typeck.c (finish_init): Free spelling_base before
12307         setting it again.
12308
12309         * cfgloop.c (flow_loops_find): Always free the sbitmap
12310         headers.
12311
12312         * predict.c (estimate_probability): Free bbs after being
12313         done with it.
12314
12315 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
12316
12317         * config/mn10300/mn10300.h (PREDICATE_CODES): Add
12318         const_8bit_operand and call_address_operand.
12319
12320 2004-01-02  Jan Hubicka  <jh@suse.cz>
12321
12322         * cgraphunit.c (cgraph_optimize_function):  Call optimize_inline_calls
12323         when there is nothing to inline but warnings are requested.
12324         (cgraph_decide_inlining):  Fix memory leak.
12325
12326 2004-01-02  Jan Hubicka  <jh@suse.cz>
12327
12328         * expr.c (store_constructor):  Fix pasto in previous patch.
12329
12330 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
12331
12332         * config/i386/cygming.h: Fix comment formatting.
12333         * config/i386/djgpp.h: Likewise.
12334         * config/i386/gthr-win32.c: Likewise.
12335         * config/i386/i386-interix.h: Likewise.
12336         * config/i386/i386.c: Likewise.
12337         * config/i386/i386.h: Likewise.
12338         * config/i386/openbsd.h: Likewise.
12339         * config/i386/winnt.c: Likewise.
12340         * config/i386/xm-mingw32.h: Likewise.
12341
12342 2004-01-02  Joseph S. Myers  <jsm@polyomino.org.uk>
12343
12344         * doc/gcc.texi, doc/invoke.texi, doc/install.texi: Update
12345         copyright and last modification dates.
12346
12347 2004-01-02  Andreas Jaeger  <aj@suse.de>, Gerald Pfeifer  <gp@suse.de>
12348
12349         * doc/install.texi (Specific): Mention x86_64.
12350
12351 2004-01-01  Hans-Peter Nilsson  <hp@bitrange.com>
12352
12353         * builtins.c (expand_builtin_apply_args_1) [STACK_GROWS_DOWNWARD]:
12354         Call force_operand on plus_constant result.
12355
12356 2004-01-01  Jan Hubicka  <jh@suse.cz>
12357
12358         * expmed.c (store_bit_field, extract_bit_field): Use new named patterns
12359         * expr.c (store_constructor): Use vec_init pattern.
12360         * genopinit.c (optabs): Initailize vec_set/vec_extract/vec_init.
12361         * optabs.h (optab_index): ADD OTI_vec_set/OTI_vec_extract/OTI_vec_init
12362         (vec_set_optab, vec_extract_optab, vec_init_optab): New.
12363         * i386.md (vec_setv2df, vec_extractv2df, vec_setv4sf, vec_extractv4sf):
12364         New patterns.
12365         (sse2_unpc?pd): Fix pattern.
12366         (sse2_movlpd): Kill.
12367         (sse2_movsd): Deal with movlpd too.
12368         * i386.c (ix86_expand_builtin): Use sse2_movsd instead of sse2_movlpd.
12369         (ix86_expand_vector_init): New.
12370         * emmintrin.h (__mm_set_pd, __mm_set_ps): Use vector extensions.
12371         * md.texi (vec_set, vec_extract): Document
12372
12373 2003-12-31  Jan Hubicka  <jh@suse.cz>
12374
12375         PR opt/13473
12376         * recog.c (validate_replace_rtx_1):  Take care for RTL sharing inside
12377         ASM input operands
12378
12379         PR opt/12617
12380         * toplev.c (dump_file_index): Reorder ce3 and bbro.
12381         (dump_file): Likewise.
12382         (rest_of_compilation): Likewise.
12383
12384         PR debug/13367
12385         * cgraph.c (cgraph_function_possibly_inlined):  Even with
12386         flag_really_no_inline we inline always_inline functions.
12387         * cgraphunit.c (cgraph_analyze_function): Clear inlinable flag
12388         for non-always_inline functions when there is flag_really_no_inline.
12389         (cgraph_decide_inlining): Limit work done when not inlining.
12390         (cgraph_decide_inlining_incrementally): Likewise.
12391         (cgraph_optimize_function): Check whether something got inlined.
12392         * c-objc-common.c (c_disregard_inline_limits): Do not always inline
12393         extern inline functions when not inlining.
12394
12395         * opts.c (decode_options):  Disable crossjumping at -O1
12396         * invoke.texi (-O1): Document change.
12397
12398 See ChangeLog.10 for earlier changes.