OSDN Git Service

d3d205c9d28d4fe40cca570eb4697f9ebfbbce75
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2003-12-01  Zack Weinberg  <zack@codesourcery.com>
2
3         * common.opt: Remove -fgnu-linker.
4         * flags.h: Remove flag_gnu_linker.
5         * opts.c: Don't handle OPT_fgnu_linker.
6         * toplev.c: Don't initialize flag_gnu_linker.
7         Remove gnu-linker entry from f_options.
8         * config/dsp16xx/dsp16xx.h (OPTIMIZATION_OPTIONS):
9         Don't reset flag_gnu_linker.
10         * config/mips/mips.c (override_options): Likewise.
11         * doc/invoke.texi: Remove all mention of -fgnu-linker.
12
13 2003-12-01  Daniel Berlin  <dberlin@dberlin.org>
14
15         * ggc-zone.c (ggc_pch_write_object): Calculate object size using
16         ggc_get_size (which accounts for large objects properly).
17
18 2003-12-01  Jeff Sturm  <jsturm@one-point.com>
19
20         PR optimization/13024
21         * toplev.c (rest_of_handle_new_regalloc): Remove rebuild_notes
22         parameter.
23         (rest_of_handle_old_regalloc): Likewise.  Add rebuild_notes
24         declaration.  Rebuild jump labels following local_alloc if necessary.
25         (rest_of_compilation): Remove rebuild_label_notes_after_reload
26         declaration.  Don't pass rebuild_notes parameter to
27         rest_of_handle_new_regalloc and rest_of_handle_old_regalloc.
28         Don't rebuild jump labels.
29
30 2003-12-01  Jeff Law  <law@redhat.com>
31
32         * flow.c (count_or_remove_death_notes_bb): New.  Extracted from
33         count_or_remove_death_notes.
34         (count_or_remove_death_notes): Use EXECUTE_IF_SET_IN_SBITMAP.
35
36 2003-12-01  Andreas Krebbel  <krebbel1@de.ibm.com>
37
38         * builtins.c (expand_builtin_longjmp): Added two memory clobbers.
39
40 2003-12-01  Ulrich Weigand  <uweigand@de.ibm.com>
41
42         * reload.c (find_reloads_address): Split addresses of type
43         (plus (plus (reg) (reg)) (const_int)) only if one register
44         is either a valid base register or else one of the stack
45         frame related registers (sp/fp/ap).
46
47 2003-12-01  Steven Bosscher  <stevenb@suse.de>
48
49         * function.c (update_epilogue_consts): Don't use PARAMS.
50         * rtl.h (web_main): Ditto.
51         * target.h (is_costly_dependence): Ditto
52
53 2003-12-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
54
55         PR middle-end/7847
56         * expr.c (expand_expr) [normal_inner_ref]: When 'offset' is non-zero,
57         do not recheck that 'op0' is a MEM.  Move comment.  When testing for
58         unaligned objects, take also into account the alignment of 'op0' and
59         'mode1' if 'op0' is a MEM.
60
61 2003-12-01 Gabriel Dos Reis <gdr@integrable-solutions.net>
62
63         * doc/c-tree.texi (Function Bodies): Update HANDLER documentation.
64
65 2003-12-01  Kelley Cook  <kcook@gcc.gnu.org>
66
67         * doc/install.texi: Note that fastjar is built with automake 1.7.x
68         and autoconf 2.57.
69
70 2003-12-01  Alan Modra  <amodra@bigpond.net.au>
71
72         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Test
73         target_flags directly rather than using TARGET_* defines.
74
75 2003-11-30  Ben Elliston  <bje@wasabisystems.com>
76
77         * doschk.c: Remove.
78
79 2003-11-30  Richard Sandiford  <rsandifo@redhat.com>
80
81         PR target/12727
82         * config/mips/mips.c (mips_save_reg): Fix frame information for sdc1
83         on 32-bit big-endian targets.
84
85 2003-11-30  Kazu Hirata  <kazu@cs.umass.edu>
86
87         * genemit.c (register_constraints): Remove.
88
89 2003-11-30  Andreas Krebbel  <krebbel1@de.ibm.com>
90
91         * config/s390/s390.md ("tmdi_reg", "tmsi_reg", "*movdi_64", "*movdi_31",
92         "iordi3"): Insns now use multiple letter constraints.
93         ("*movdi_lhi", "*movdi_lli", "*movdi_lay"): Insns deleted. They are now
94         covered by "*movdi_64".
95         ("*movsi_lhi", "*movsi_lli", "*movsi_lay"): Insns deleted. They are now
96         covered by "*movsi_zarch" and "*movsi_esa".
97         ("*movsi_zarch", "*movsi_!zarch"): New insns.
98         ("*llgt_sisi_split", "*llgt_didi_split"): Insns deleted. Now covered
99         by "*andsi3_zarch" and "anddi3".
100         ("*anddi3_ni"): Insn merged with "anddi3".
101         ("*andsi3_ni"): Insn merged with "*andsi3_zarch".
102         ("*andsi3_zarch", "*andsi3_esa"): New insns.
103         ("*iordi3_oi"): Insn merged with "iordi3".
104         ("*iorsi3_oi"): Insn merged with "*iorsi3_zarch".
105         ("*iorsi3_zarch", "*iorsi3_esa"): New insns.
106
107         * config/s390/s390.c (s390_single_qi, s390_single_hi): Functions
108         merged to s390_single_part.
109         (s390_single_part): New function.
110         NOTE: Semantics have changed a bit. Now the value of the part must
111         be different from the others to get a non-negative return value.
112         (s390_extract_qi, s390_extract_hi): Functions merged to
113         s390_extract_part.
114         (s390_extract_part, s390_extra_constraint_str,
115         s390_const_ok_for_constraint_p): New functions. The L constraint got a
116         new meaning and the N constraint was added as a multiple letter
117         constraint.
118         (s390_extra_constraint): Function deleted.
119         (print_operand): New output modifier 'i' and 'j' added.
120         All uses of CONST_OK_FOR_LETTER_P were replaced by
121         CONST_OK_FOR_CONSTRAINT_P.
122
123         * config/s390/s390-protos.h: Function prototypes adapted.
124         * doc/md.texi: Documentation for new constraint letters added.
125
126 2003-11-30  Andreas Schwab  <schwab@suse.de>
127
128         * Makefile.in ($(DESTDIR)$(infodir)/%.info): Fix missing semicolon.
129
130 2003-11-29  James E Wilson  <wilson@specifixinc.com>
131
132         * gcc.c (init_spec): Pass -lunwind to init_gcc_specs in eh_name
133         instead of in shared_name.
134
135         * final.c (final_start_function): Delete code for NON_SAVING_SETJMP.
136         * reload1.c (reload): Re-add it here.
137
138 2003-11-30  Alan Modra  <amodra@bigpond.net.au>
139
140         * config/rs6000/rs6000.c (rs6000_elf_section_type_flags): Don't
141         set SECTION_WRITE on TARGET_RELOCATABLE.
142
143 2003-11-29  Kazu Hirata  <kazu@cs.umass.edu>
144
145         * config/h8300/h8300.h (LIBCALL_VALUE): Use R0_REG.
146
147 2003-11-28  Gunther Nikl  <gni@gecko.de>
148
149         * config/m68k/m68k.c (MOTOROLA): Move from here...
150         * config/m68k/m68k.h (MOTOROLA): ... to here.
151         (OUTPUT_JUMP): Use do {...} while (0).
152         * config/m68k/m68k.md: Replace #ifdef MOTOROLA with C statements.
153
154 2003-11-28  Gunther Nikl  <gni@gecko.de>
155
156         * config.gcc (m68020-*-elf*, m68k-*-elf*, m68010-*-netbsdelf*,
157         m68k*-*-netbsdelf*, m68k-*-rtems*): Add tm_defines containing
158         MOTOROLA and USE_GAS.
159         * config/m68k/rtemself.h (MOTOROLA): Delete.
160         * config/m68k/netbsd-elf.h (MOTOROLA, USE_GAS): Delete.
161         * config/m68k/m68kelf.h (MOTOROLA, USE_GAS, SGS_CMP_ORDER): Delete.
162
163 2003-11-29  Kazu Hirata  <kazu@cs.umass.edu>
164
165         * config/h8300/h8300.h (WORDS_BIG_ENDIAN): Update the comment.
166
167 2003-11-29  Kelley Cook  <kcook@gcc.gnu.org>
168
169         * Makefile.in (install-info): Install gccinstall.info too.
170
171 2003-11-29  Ulrich Weigand  <uweigand@de.ibm.com>
172
173         * config/s390/s390.md ("cmpint_di"): Fix incorrect instruction lengths.
174
175 2003-11-29  Ulrich Weigand  <uweigand@de.ibm.com>
176
177         * config/s390/s390.md ("movhi"): Do not emit extender pattern
178         when loading from a (MEM (ADDRESSOF ...)).
179         ("movqi"): Likewise.
180
181 2003-11-29  Joseph S. Myers  <jsm@polyomino.org.uk>
182
183         PR c/10333
184         * c-parse.in (typespec_reserved_nonattr): Reject typeof on
185         bit-fields.
186
187 2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
188
189         * stmt.c (expand_asm_operands): Check whether force_const_mem
190         succeeded.
191
192 2003-11-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
193
194         * config/gnu.h (HURD_TARGET_OS_CPP_BUILTINS): New.
195         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): New.
196
197         * config/alpha/gnu.h, config/alpha/linux.h,
198         config/arm/linux-elf.h, config/cris/cris.h, config/cris/linux.h,
199         config/i370/linux.h, config/i386/gnu.h, config/i386/i386.h,
200         config/i386/linux-aout.h, config/i386/linux.h,
201         config/i386/linux64.h, config/ia64/linux.h, config/m68k/linux.h,
202         config/m68k/uclinux.h, config/mips/linux.h,
203         config/mn10300/linux.h, config/pa/pa-linux.h,
204         config/rs6000/sysv4.h, config/s390/linux.h, config/sh/linux.h,
205         config/sparc/linux.h, config/sparc/linux64.h,
206         config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Use
207         HURD_TARGET_OS_CPP_BUILTINS/LINUX_TARGET_OS_CPP_BUILTINS or ensure
208         all necessary assertions are included.
209
210 2003-11-28  Jan Hubicka  <jh@suse.cz>
211
212         * emit-rtl.c (set_used_flags): New.
213         (verify_rtx_sharing, verify_rtl_sharing): New.
214         (unshare_all_rtl_1): Rename to....
215         (unshare_all_rtl_in_chain): ... this one; make static.
216         (copy_rtx_if_shared): LABEL_REF chan be shared.
217         * ifcvt.c (unshare_ifcvt_sequence): New.
218         (noce_try_move, noce_try_store_flag, noce_try_store_flag_constants,
219         noce_try_addcc, noce_try_addcc, noce_try_store_flag_mask,
220         noce_try_cmove, noce_try_store_flag_mask, noce_try_minmax,
221         noce_try_abs, noce_process_if_block, find_cond_trap
222         * rtl.h (verify_rtl_sharing, set_used_flags, unshare_all_rtl_in_chain):
223         Declare.
224
225 2003-11-28  Kazu Hirata  <kazu@cs.umass.edu>
226
227         * config/h8300/h8300.md: Fix a comment typo.
228
229 2003-11-28  Kazu Hirata  <kazu@cs.umass.edu>
230
231         * config/h8300/h8300.md (*movsf_h8300h): Change to
232         *movsf_h8300hs.
233         (addsi_h8300): Change to *addsi_h8300.
234         (addsi_h8300h): Change to *addsi_h8300hs.
235         (subsi3_h8300): Change to *subsi3_h8300.
236         (subsi3_h8300h): Change to *subsi3_h8300hs.
237         (neghi2_h8300h): Change to *neghi2_h8300hs.
238         (negsi2_h8300h): Change to *negsi2_h8300hs.
239
240 2003-11-28  Kazu Hirata  <kazu@cs.umass.edu>
241
242         * config/h8300/h8300.md (*subhi3_h8300): Remove '&' from the
243         constraint.
244         (*subhi3_h8300hs): Likewise.
245
246 2003-11-28  David Edelsohn  <edelsohn@gnu.org>
247
248         * config/rs6000/rs6000.h (MASK_MFCRF): New.
249         (TARGET_MFCRF): Test target_flags, not processor type.
250         (TARGET_SWITCHES): Add mfcrf and no-mfcrf.
251         Change Don't to Do not.
252         * config/rs6000/rs6000.c (processors_target_table): Add MASK_MFCRF
253         to power4, 970, G5.
254
255 2003-11-27  J"orn Rennecke <joern.rennecke@superh.com>
256
257         * cse.c (cse_set_around_loop): When changing a constant load
258         to a register -register copy, add a REG_EQUAL note.
259
260 2003-11-27  Randolph Chung  <tausq@debian.org>
261             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
262
263         * pa.c (hppa_profile_hook): Split gen_call_profiler into separate
264         insns.  Use the regular call expander for the call to the profiler.
265         * pa.md (call_profiler): Delete.
266         (load_offset_label_address): New insn to load the address of the
267         current function for the profiler.
268         (lcla1, lcla2): New insns to output a code label and load its address.
269
270 2003-11-27  Kazu Hirata  <kazu@cs.umass.edu>
271
272         * final.c (final_scan_insn): Remove commented-out code.
273
274 2003-11-27  Nathanael Nerode  <neroden@gcc.gnu.org>
275
276         * doc/install.texi: Remove ADAC reference and make accurate.
277
278 2003-11-27  Kazu Hirata  <kazu@cs.umass.edu>
279
280         * config/h8300/h8300.h (FUNCTION_VALUE): Use R0_REG.
281         (FUNCTION_VALUE_REGNO_P): Likewise.
282         * config/h8300/h8300.md: Define R0_REG.
283
284 2003-11-27  Kazu Hirata  <kazu@cs.umass.edu>
285
286         * config/h8300/h8300.c: Fix formatting.
287         * config/h8300/h8300.md: Likewise.
288
289 2003-11-27  Kazu Hirata  <kazu@cs.umass.edu>
290
291         * config/h8300/h8300.h (ELIMINABLE_REGS): Update a comment.
292
293 2003-11-27  Kazu Hirata  <kazu@cs.umass.edu>
294
295         * config/h8300/h8300.md: Give names to anonymous insns.
296
297 2003-11-27  Kazu Hirata  <kazu@cs.umass.edu>
298
299         * config/h8300/h8300.md (extendqisi2): Remove constraints.
300
301 2003-11-27  Gunther Nikl  <gni@gecko.de>
302
303         * doc/tm.texi (SYSROOT_HEADERS_SUFFIX_SPEC): Fix typo.
304
305 2003-11-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
306
307         PR optimization/13041
308         * final.c (frame_pointer_needed): Fix comment.
309         * reload1.c (reload): Decrease alignment of the frame
310         pointer if it was used for register allocation.
311
312 2003-11-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
313
314         PR target/12900
315         * reg-stack (move_for_stack_reg): New prototype.  Return
316         whether a control flow insn was deleted.
317         (subst_stack_regs_pat): Likewise, using the information provided
318         by move_for_stack_reg.
319         (subst_stack_regs): Likewise, using the information provided
320         by subst_stack_regs_pat.
321         (convert_regs_1): Record whether a control flow insn was deleted,
322         using the information provided by subst_stack_regs.  Purge dead
323         edges only if a control flow insn was deleted.
324
325 2003-11-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
326
327         PR middle-end/8028
328         PR middle-end/9890
329         PR middle-end/11151
330         PR middle-end/12210
331         PR middle-end/12503
332         PR middle-end/12692
333         * builtins.c (expand_builtin_apply): Use virtual_outgoing_args_rtx
334         as the base address to copy the memory arguments to.
335
336 2003-11-26  Danny Smith  <dannysmith@users.sourceforge.net>
337
338         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Declare
339         function aliases as functions.
340
341 2003-11-26  Nathanael Nerode  <neroden@gcc.gnu.org>
342
343         * aclocal.m4 (gcc_AC_PROG_GNAT): Rewrite to account for removal
344         of ADAC.
345         * configure: Regenerate.
346
347         * Makefile.in: Remove references to ADAC.
348
349         * configure.in: Remove check for whether ${ADAC} accepts -Wno-long-long.
350         * configure: Regenerate.
351
352 2003-11-26  Eric Botcazou  <ebotcazou@libertysurf.fr>
353             Olivier Hainque  <hainque@act-europe.fr>
354
355         PR target/6466
356         * config/sparc/sparc-protos.h (compute_frame_size): New prototype.
357         (sparc_flat_compute_frame_size): Likewise.
358         (sparc_flat_save_restore): Move prototype...
359         * config/sparc/sparc.c (sparc_flat_save_restore): ...here.
360         (save_regs): New prototype.
361         (build_big_number): Likewise.
362         (apparent_fsize): Change type to HOST_WIDE_INT.
363         (actual_fsize): Likewise.
364         (frame_base_offset): Likewise.
365         (build_big_number): Add support for HOST_BITS_PER_WIDE_INT == 64.
366         Change string descriptor to HOST_WIDE_INT_PRINT_DEC.
367         [TARGET_ARCH64]: Use the sequence of sparc_emit_set_const64_longway
368         to load a 64-bit constant.
369         (sparc_nonflat_function_prologue): Change string descriptor to
370         HOST_WIDE_INT_PRINT_DEC.  Change offset type to HOST_WIDE_INT.
371         (output_restore_regs): Change offset type to HOST_WIDE_INT.
372         (sparc_nonflat_function_epilogue): Change string descriptor to
373         HOST_WIDE_INT_PRINT_DEC.  Use build_big_number.
374         (output_sibcall): Change size type to HOST_WIDE_INT.  Use
375         build_big_number.  Change string descriptor to HOST_WIDE_INT_PRINT_DEC.
376         (sparc_frame_info): Change types for several components.
377         (sparc_flat_compute_frame_size): Update types according to previous
378         change.
379         (sparc_flat_function_prologue): Change string descriptor to
380         HOST_WIDE_INT_PRINT_DEC.  Change offset type to int.  Use
381         build_big_number.
382         (sparc_flat_function_epilogue): Change offset type to int.
383         Rename 'size1' into 'reg_offset1'.  Change string descriptor to
384         HOST_WIDE_INT_PRINT_DEC.  Use build_big_number.  Change big number
385         limit to 4096 instead of 4095.
386
387         * config/sparc/sparc.c (mems_ok_for_ldd_peep): Change offset type to
388         HOST_WIDE_INT.
389
390 2003-11-24  Waldek Hebisch <hebisch@math.uni.wroc.pl>
391
392         * function.c: Make outer_function-chain external.
393         * function.h: Likewise.
394
395 2003-11-24  Richard Sandiford  <rsandifo@redhat.com>
396
397         * config.gcc (mips-sgi-irix6*): Add t-iris6gld to tmake_file when
398         using GNU ld.
399         * config/mips/iris6.h (IRIX6_STARTFILE_SPEC): New, taking the
400         whole of the previous STARTFILE_SPEC except crtbegin.o%s.
401         (IRIX6_ENDFILE_SPEC): Likewise ENDFILE_SPEC and crtend.o%s.
402         (STARTFILE_SPEC, ENDFILE_SPEC): Define in terms of the above.
403         (SUBTARGET_EXTRA_SPECS): Define.
404         * config/mips/iris6gld.h (LINK_SPEC): Change -init function
405         to __gcc_init and -fini function to __gcc_fini.
406         (STARTFILE_SPEC): Redefine, including irix6-crti.o before crtbegin.o.
407         (ENDFILE_SPEC): Likewise, including irix6-crtn.o after crtend.o.
408         (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP): Define.
409         * config/mips/t-iris6gld,
410         * config/mips/irix6-crti.asm,
411         * config/mips/irix6-crtn.asm: New files.
412
413 2003-11-24  Eric Christopher  <echristo@redhat.com>
414
415         PR C/13014
416         * c-decl.c (c_in_iteration_stmt, c_in_case_stmt): New.
417         (start_function): Use.
418         (c_push_function_context): Ditto.
419         (c-pop_function_context): Ditto.
420         (language_function): Move...
421         * c-tree.h: ... here. Add x_in_iteration_stmt, and
422         x_in_case_stmt.
423         * c-parse.in (do_stmt_start, select_or_iter_stmt, stmt): Use
424         c_in_iteration_stmt, c_in_case_stmt for parser state. Move
425         check for valid break or continue statment here...
426         * c-semantics.c (genrtl_break_stmt, genrtl_continue_stmt): From
427         here. Change original errors to abort.
428
429 2003-11-24  Jan Hubicka  <jh@suse.cz>
430
431         * fold-const.c (fold):  Do not return early when optimizing
432         COMPONENT_REF and constant.
433
434 2003-11-24  Kazu Hirata  <kazu@cs.umass.edu>
435
436         * config/h8300/h8300.md (tablejump_h8300): Change to
437         *tablejump_h8300.
438         (tablejump_h8300h): Change to *tablejump_h8300hs_advanced.
439         (tablejump_normal_mode): Change to *tablejump_h8300hs_normal.
440         (indirect_jump_h8300): Change to *indirect_jump_h8300.
441         (indirect_jump_h8300h): Change to
442         *indirect_jump_h8300hs_advanced.
443         (indirect_jump_normal_mode): Change to
444         *indirect_jump_h8300hs_normal.
445
446 2003-11-24  Kazu Hirata  <kazu@cs.umass.edu>
447
448         * config/h8300/h8300.md: Remove constraints from expanders.
449
450 2003-11-24  Kazu Hirata  <kazu@cs.umass.edu>
451
452         * config/h8300/h8300.md: (stm_h8300s_2): Change the name to
453         stm_h8300s_2_advanced.
454         (stm_h8300s_2_normal): New.
455         (stm_h8300s_2): Likewise.
456         (stm_h8300s_3): Change the name to stm_h8300s_3_advanced.
457         (stm_h8300s_3_normal): New.
458         (stm_h8300s_3): Likewise.
459         (stm_h8300s_4): Change the name to stm_h8300s_4_advanced.
460         (stm_h8300s_4_normal): New.
461         (stm_h8300s_4): Likewise.
462         (ldm_h8300s_2): Change the name to ldm_h8300s_2_advanced.
463         (ldm_h8300s_2_normal): New.
464         (ldm_h8300s_2): Likewise.
465         (ldm_h8300s_3): Change the name to ldm_h8300s_3_advanced.
466         (ldm_h8300s_3_normal): New.
467         (ldm_h8300s_3): Likewise.
468         (ldm_h8300s_4): Change the name to ldm_h8300s_4_advanced.
469         (ldm_h8300s_4_normal): New.
470         (ldm_h8300s_4): Likewise.
471         (two peephole2's): Enable only with !TARGET_NORMAL_MODE.
472         (two peephole2's): New.
473
474 2003-11-24  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
475
476         * genattrtab.c (simplify_cond): Update indices correctly.
477         (attr_alt_subset_p, attr_alt_subset_of_compl_p, attr_alt_intersection,
478         attr_alt_union, attr_alt_complement, attr_alt_bit_p, mk_attr_alt): New.
479         (check_attr_test, encode_units_mask, compute_alternative_mask,
480         make_alternative_compare, simplify_and_tree,
481         attr_rtx_cost, simplify_test_exp, gen_attr,
482         write_test_expr, walk_attr_value): Handle EQ_ATTR_ALT.
483         * rtl.def (EQ_ATTR_ALT): New.
484
485 2003-11-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
486
487         * genattrtab.c (strcmp_check, DEF_ATTR_STRING): New macros.
488         (length_str, delay_type_str, delay_1_0_str, num_delay_slots_str):
489         New variables.
490         (main): Initialize them.
491         (find_attr): Canonicalize the attribute name string.
492         (attr_rtx_1, copy_boolean, expand_delays, gen_unit): Always canonicalize
493         string arguments.
494         (attr_printf, attr_eq): Use DEF_ATTR_STRING.
495         (check_attr_test, check_attr_value, make_length_attrs,
496         write_length_unit_log, simplify_by_exploding, gen_attr,
497         write_test_expr, write_attr_value, write_eligible_delay,
498         write_complex_function, make_internal_attr,
499         write_const_num_delay_slots): Changed due to change of type of
500         find_attr.
501         (fill_attr, evaluate_eq_attr, simplify_and_tree,
502         attr_rtx_cost, simplify_by_exploding, walk_attr_value): Use
503         strcmp_check.
504
505 2003-11-23  Kazu Hirata  <kazu@cs.umass.edu>
506
507         PR target/13122
508         * config/h8300/h8300.c (push): Call push_h8300hs_normal in
509         normal mode.
510         (pop): Call pop_h8300hs_normal in normal mode.
511         * config/h8300/h8300.md: Likewise.
512         (pushqi1_h8300hs_normal): New.
513         (pushqi1): Call pushqi1_h8300hs_normal in normal mode.
514         (pushhi1_h8300hs_normal): New.
515         (pushhi1): Call pushhi1_h8300hs_normal in normal mode.
516         (push_h8300hs_normal): New.
517         (pop_h8300hs_normal): Likewise.
518
519 2003-11-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
520
521         * genattrtab.c (count_sub_rtxs): Removed.
522
523 2003-11-23  Richard Earnshaw  <rearnsha@arm.com>
524
525         * recog.c (preprocess_constraints): Only zero those elements of
526         recog_op_alt that are needed for this insn.
527         * arm.c (note_invalid_constants): A function can't contain invalid
528         constants if it has no constraints.
529
530 2003-11-22  Jan Hubicka  <jh@suse.cz>
531
532         * i386.c (classify_argument): Pass __float128 in memory.
533         (ix86_return_in_memory): Likewise.
534         (ix86_libcall_value): Likewsie.
535
536 2003-11-22  Kazu Hirata  <kazu@cs.umass.edu>
537
538         * config/h8300/h8300.c (dosize): Convert to ISO-C.
539
540 2003-11-22  J"orn Rennecke <joern.rennecke@superh.com>
541
542         * flow.c (update_life_info): Amend comment about when a register
543         can become dead.
544
545 2003-11-21  Kelley Cook  <kcook@gcc.gnu.org>
546
547         * doc/.cvsignore: Delete.
548
549 2003-11-21  Daniel Berlin  <dberlin@dberlin.org>
550             David Edelsohn  <edelsohn@gnu.org>
551
552         * dwarf2out.c (add_location_or_const_value_attribute): Add support
553         for PARALLEL.
554
555 2003-11-21  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
556
557         * config/mips/t-iris6 (CRTSTUFF_T_CFLAGS): Add -Wno-error.
558         (TARGET_LIBGCC2_CFLAGS): Define.
559
560         * crtstuff.c [HAS_INIT_SECTION] (__do_global_dtors): Declare.
561         (__do_global_ctors): Likewise.
562
563 2003-11-21  Mark Wielaard  <mark@klomp.org>
564
565         * doc/invoke.texi (-O2): Doesn't enable -fweb.
566
567 2003-11-21  Kazu Hirata  <kazu@cs.umass.edu>
568
569         * doc/invoke.texi: Mention dV and dZ.
570
571 2003-11-21  Kazu Hirata  <kazu@cs.umass.edu>
572
573         * doc/invoke.texi: Update dump file names.
574         Remove de, dW, and dX.
575
576 2003-11-20  James E Wilson  <wilson@specifixinc.com>
577
578         PR c/13133
579         * reload1.c (reload): Delete special handling for setjmp.
580
581 2003-11-21  Andreas Tobler  <a.tobler@schweiz.ch>
582
583         * mklibgcc.in: Evaluate shlib_slibdir_qual during link
584         step too.
585         * config/t-slibgcc-darwin: Adjust install path.
586         * config/rs6000/t-darwin: Revert multilib matches since
587         it is not used on darwin.
588
589 2003-11-20  Richard Henderson  <rth@redhat.com>
590
591         * ssa.c, ssa-dce.c, ssa-ccp.c: Remove files.
592         * Makefile.in (OBJS-common, GTFILES): Don't reference them.
593         (gtype-desc.o, toplev.o, flow.o): Remove ssa.h.
594         (ssa.o, ssa-dce.o, ssa-ccp.o): Remove.
595         * flow.c: Don't include ssa.h.
596         (set_phi_alternative_reg): Remove.
597         (calculate_global_regs_live): Don't call it.
598         (mark_used_regs): Don't handle PHI.
599         * gengtype.c (open_base_files): Don't reference ssa.h.
600         * rtl.def (PHI): Remove.
601         * timevar.def (TV_TO_SSA, TV_SSA_CCP, TV_SSA_DCE, TV_FROM_SSA): Kill.
602         * common.opt: Remove -fssa, -fssa-ccp, -fssa-dce.
603         * opts.c (common_handle_option): Likewise.
604         * toplev.c (f_options): Likewise.
605         (DFI_ssa, DFI_ssa_ccp, DFI_ssa_dce, DFI_ussa): Remove.
606         (dump_file): Update to match.
607         (flag_ssa, flag_ssa_ccp, flag_ssa_dce): Remove.
608         (rest_of_handle_ssa): Remove.
609         (rest_of_compilation): Don't call it.
610         * toplev.h (flag_ssa, flag_ssa_dce, flag_ssa_ccp): Remove.
611         * doc/invoke.texi: Remove -fssa, -fssa-ccp, -fssa-dce.
612         * doc/passes.texi (SSA optimizations): Remove.
613
614 2003-11-20  Bob Wilson  <bob.wilson@acm.org>
615
616         * configure.in: Add xtensa-*-* targets to test for dwarf2 debug_line.
617         * configure: Regenerate.
618
619 2003-11-20  Kelley Cook  <kcook@gcc.gnu.org>
620
621         * Makefile.in (Makefile): Pass along CONFIG_SHELL.
622
623 2003-11-20 David Mosberger  <davidm@hpl.hp.com>
624
625         * config/t-libunwind (LIB2ADDEH): Add unwind-c.c.
626         (SHLIB_LC): Define.
627         * unwind-libunwind.c (_Unwind_GetCFA): Implement.
628         (_Unwind_GetBSP) [UNW_TARGET_IA64]: New function.
629
630 2003-11-20  Fariborz Jahanian  <fjahanian@apple.com>
631             David Edelsohn  <edelsohn@gnu.org>
632
633         * calls.c (expand_call): Allocate new temp in pass1.
634         (store_one_arg): If PARALLEL, calculate excess using mode size of
635         rtvec elt.
636         * expr.c (emit_push_insn): If PARALLEL, calculate offset using
637         mode size of rtvec elt.
638         * function.c (assign_parms): Use parm in register, if available.
639
640 2003-11-20  Kazu Hirata  <kazu@cs.umass.edu>
641
642         * config/h8300/lib1funcs.asm (MOVP): Remove.
643         (ADDP): Likewise.
644         (CMPP): Likewise.
645
646 2003-11-20  Richard Earnshaw  <rearnsha@arm.com>
647
648         * arm.c (use_return_insn): New argument, SIBLING.  Support returning
649         with a single instruction if the stack has been decremented by 4
650         and we have a frame pointer.  Update all callers.
651         (output_return_instruction): Likewise.
652         (arm_output_epilogue): Change argument to SIBLING.  Calculate
653         really_return from the new argument.  Update all callers.
654         * arm.h (USE_RETURN_INSN): Pass NULL for the sibling.
655         * arm.md (sibcall_epilogue): Call use_return_insn directly, and
656         pass the sibling call.
657         * arm-protos.h (use_return_insn, arm_output_epilogue): Update
658         prototypes.
659
660 2003-11-20  Joseph S. Myers  <jsm@polyomino.org.uk>
661
662         * Makefile.in (extraclean): Delete.
663         * configure.in (target_list): Remove extraclean.
664         * configure: Regenerate.
665         * doc/makefile.texi, doc/sourcebuild.texi: Update.
666         * objc/Make-lang.in (objc.extraclean): Delete.
667
668 2003-11-20  Joseph S. Myers  <jsm@polyomino.org.uk>
669
670         * Makefile.in (lang_checks): Add.
671         (check-c++, check-f77, check-java, check-g++, check-g77,
672         check-objc): Remove hardcoded targets.
673         * doc/sourcebuild.texi: Document testsuite hooks.
674         * objc/Make-lang.in (check-objc, lang_checks): Add.
675
676 2003-11-19  Scott Snyder  <snyder@fnal.gov>
677
678         PR target/13131
679         * dwarf2out.c (gen_array_type_die): DW_AT_declaration should be a
680         flag, not a constant.
681
682 2003-11-19  Kelley Cook  <kcook@gcc.gnu.org>
683
684         * config/arc/arc-protos.h: Update to C90 prototypes.
685         * config/arc/arc.c: Likewise.
686         * config/arc/initfini.c: Likewise.
687
688 2003-11-19  Andreas Krebbel  <krebbel1@de.ibm.com>
689
690         * stmt.c (expand_goto): Memory clobbers added.
691
692 2003-11-19  Andreas Krebbel  <krebbel1@de.ibm.com>
693
694         * reload.c (find_reloads): Added missing type casts.
695
696 2003-11-19  James E Wilson  <wilson@specifixinc.com>
697
698         * combine.c (sets_function_arg_p): Delete unused function.
699
700 2003-11-19  Eric Christopher  <echristo@redhat.com>
701
702         * reload1.c (reload): Revert 2 previous checkins.
703
704 2003-11-19  Nathanael Nerode  <neroden@gcc.gnu.org>
705
706         * cpptrad.c (_cpp_scan_out_logical_line): Improve test for
707         whether directive begins at the beginning of a line.
708
709 2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
710
711         * config/frv/frv.c (frv_init_libfuncs): Correct ufix_optab entries.
712
713 2003-11-19  Gerald Pfeifer  <gp@suse.de>
714
715         * doc/install.texi (Specific): Remove information on old versions
716         of glibc versus old versions of GCC.
717
718 2003-11-19  Richard SAndiford  <rsandifo@redhat.com>
719
720         * emit-rtl.c (gen_lowpart): Don't force MEMs into a register unless
721         the register lowpart is a TRULY_NOOP_TRUNCATION.
722
723 2003-11-19  Richard Henderson  <rth@redhat.com>
724
725         * config/i386/i386.c (print_reg): Handle QI and HI modes for
726         non Q regs.
727
728 2003-11-19  Andreas Tobler  <a.tobler@schweiz.ch>
729
730         * config/config.gcc (powerpc-*-darwin*): Add libgcc build
731         specification file.
732         * config/t-slibgcc-darwin: New file, libgcc build specification.
733         * config/t-darwin: Add libgcc2 flag -fPIC.
734         * config/rs6000/t-darwin: Multilib matches float.
735         * libgcc-darwin.ver: New file, contains libgcc symbols.
736
737 2003-11-18  Nathanael Nerode  <neroden@gcc.gnu.org>
738
739         * config/ns32k/ns32k.h: Remove obsolete comment.
740
741 2003-11-18  Roger Sayle  <roger@eyesopen.com>
742
743         PR middle-end/11821
744         * config/arm/arm.c (arm_rtx_costs_1): Improve estimate of the code
745         size for calls to libgcc's div & mod subroutines when using -Os.
746
747 2003-11-18  Jan Hubicka  <jh@suse.cz>
748
749         * cgraph.c (change_decl_assembler_name): Avoid bogus warnings.
750
751 2003-11-18  Marc Espie  <espie@openbsd.org>
752
753         * config/rs6000/sysv4.h: OpenBSD hooks.
754
755 2003-11-18  Richard Henderson  <rth@redhat.com>
756
757         * expr.c (expand_expr): Don't look through constant arrays if
758         they don't bind locally.
759
760 2003-11-17  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
761
762         * expr.c (convert_move): Use GET_MODE_PRECISION instead of bitsize
763         when seeing if truncation or extension.
764
765 2003-11-17  Eric Christopher  <echristo@redhat.com>
766
767         * reload1.c (reload): Fix previous change.
768
769 2003-11-17  Scott Snyder  <snyder@fnal.gov>
770
771         PR debug/11325
772         * dwarf2out.c (struct die_struct): Add die_definition field.
773         (add_AT_specification): New.
774         (gen_subprogram_die, gen_variable_die,
775         gen_struct_or_union_type_die): Use it.
776         (prune_unused_types_mark): If we're marking a forward declaration,
777         also mark the full definition, if it exists.
778
779 2003-11-16  Nick Clifton  <nickc@redhat.com>
780
781         * config/stormy16/stormy16.h (BUILD_VA_LIST_TYPE): Delete.
782         * config/stormy16/stormy16-protos.h (xstormy16_build_va_list):
783         Remove prototype.
784         * config/stormy16/stormy16.c (xstormy16_build_va_list): Rename
785         to xstormy16_build_builtin_va_list and make static.
786         (TARGET_BUILD_BUILTIN_VA_LIST): Define.
787
788 2003-11-16  Kazu Hirata  <kazu@cs.umass.edu>
789
790         * config/h8300/h8300-protos.h: Add the prototype for
791         same_cmp_following_p.
792         * config/h8300/h8300.c (same_cmp_following_p): New.
793         * config/h8300/h8300.md (peephole2): Use it.
794
795 2003-11-16  Kazu Hirata  <kazu@cs.umass.edu>
796
797         * config/h8300/h8300.md: Don't use REGNO when its operand is
798         not guaranteed to be a REG.
799
800 2003-11-16  Richard Sandiford  <rsandifo@redhat.com>
801
802         * Makefile.in (expr.o): Depend on $(TARGET_H).
803         * target.h (return_in_msb): New target hook.
804         * target-def.h (TARGET_RETURN_IN_MSB): New macro.
805         (TARGET_CALLS): Include it.
806         * calls.c (shift_returned_value): New function.
807         (expand_call): Use it.
808         * expr.c: Include target.h.
809         (copy_blkmode_from_reg): Check targetm.calls.return_in_msb when
810         deciding what padding is needed.  Change the name of the local
811         padding variable from big_endian_correction to padding_correction.
812         * stmt.c (shift_return_value): New function.
813         (expand_return): Use it.  Adjust memory->register copy in the same
814         way as copy_blkmode_from_reg.  Only change the return register's
815         mode if it was originally BLKmode.
816         * doc/tm.texi (TARGET_RETURN_IN_MSB): Document.
817         * config/mips/mips.c (TARGET_RETURN_IN_MSB): Define.
818         (mips_fpr_return_fields): New, split out from mips_function_value.
819         (mips_return_in_msb, mips_return_fpr_pair): New functions.
820         (mips_function_value): Rework to use the functions above.
821         * config/mips/irix6-libc-compat.c: Delete.
822         * config/mips/t-iris6 (LIB2FUNCS_STATIC_EXTRA): Undefine.
823
824 2003-11-16  Kazu Hirata  <kazu@cs.umass.edu>
825
826         * doc/install.texi (--enable-checking): Update valgrind's URL.
827
828 2003-11-16  Kazu Hirata  <kazu@cs.umass.edu>
829
830         * config/h8300/h8300.md: Fix warnings by replacing -2147483648
831         with -2147483647 - 1.
832
833 2003-11-16  Gerald Pfeifer  <gerald@pfeifer.com>
834
835         Fix links in online manuals.
836         * doc/invoke.texi (H8/300 Options): @xref to ld, not ld.info.
837         (Precompiled Headers): @pxref to cpp, not cpp.info.
838
839 2003-11-16  Jason Merrill  <jason@redhat.com>
840
841         * Makefile.in, objc/Make-lang.in (objc.tags): Create TAGS.sub
842         files in each directory and TAGS files that include them for each
843         front end.
844
845 2003-11-15  Kazu Hirata  <kazu@cs.umass.edu>
846
847         * config/h8300/lib1funcs.asm (divnorm): Store the sign in bit
848         3 of S2L.
849         (modnorm): Likewise.
850         (exitdiv): Look at bit 3 of S2L only.
851
852 2003-11-15  Kazu Hirata  <kazu@cs.umass.edu>
853
854         * config/h8300/h8300.h (DO_GLOBAL_CTORS_BODY): Fix warnings.
855         (DO_GLOBAL_DTORS_BODY): Likewise.
856
857 2003-11-15  Joseph S. Myers  <jsm@polyomino.org.uk>
858
859         * doc/install.texi (Prerequisites): Refine documentation of
860         autoconf, automake and perl requirements.  Document required
861         gettext version.
862
863 <2003-11-14  Jason Merrill  <jason@redhat.com>
864
865         * function.c (assign_parms): Use TREE_TYPE to determine the real
866         type of the argument object.
867
868 2003-11-14  Kazu Hirata  <kazu@cs.umass.edu>
869
870         * config/h8300/lib1funcs.asm (___udivsi3): Peel off the first
871         iteration.
872
873 2003-11-14  Fariborz Jahanian <fjahanian@apple.com>
874
875         * config/rs6000/rs6000.c (rs6000_move_block_from_reg):
876           New routine to save vararg registers on stack. Support for
877           -mpowerpc64 in mixed mode.
878
879 2003-11-14  Bernardo Innocenti  <bernie@develer.com>
880
881         * config/m68k/m68k.c: Use C statements instead of #ifdef's when testing
882         for MOTOROLA versus MIT syntax.  Improves readability and provides
883         better compile-time error checking for both code paths.
884
885 2003-11-14  Kelley Cook  <kcook@gcc.gnu.org>
886
887         * config/frv/frv-protos.h: Update for C90.
888         * config/frv/frv.h: Likewise.
889         * config/frv/frvbegin.c: Likewise.
890         * config/frv/frv.c: Likewise.
891         (frv_adjust_field_align): Delete unused variable.
892
893 2003-11-14  Geoffrey Keating  <geoffk@apple.com>
894
895         * config/rs6000/rs6000.md: Add 'DEFAULT_ABI == ABI_DARWIN'
896         to each place where TARGET_LONG_DOUBLE_128 is used with
897         DEFAULT_ABI == ABI_AIX.
898
899         * cppfiles.c (_cpp_find_file): Make 'one or more PCH files were found'
900         message comply with GNU standards.
901
902 2003-11-14  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
903
904         PR/6552
905         * function.c (struct epi_info): New field const_equiv.
906         (update_epilogue_consts): New function.
907         (keep_stack_depressed): Clear new field and verify scratch register
908         doesn't have it set.
909         Call new function via note_stores.
910         (handle_epilogue_set): Allow setting SP equiv reg in different mode.
911         Allow PLUS where second operand is register known set to constant.
912         (emit_equiv_load): Write load using proper mode if source different.
913         * config/mips/mips.md (return_internal): Put (return) first.
914
915 2003-11-14  Kazu Hirata  <kazu@cs.umass.edu>
916
917         * config/h8300/lib1funcs.asm (___udivsi3): Add a comment.
918
919 2003-11-14  Kazu Hirata  <kazu@cs.umass.edu>
920
921         * config/h8300/lib1funcs.asm (modsi3): Don't save unused
922         registers.
923         (divsi3): Likewise.
924         (reti): Don't restore unused registers.
925
926 2003-11-14  Nick Clifton  <nickc@redhat.com>
927
928         * config/fr30/fr30.c: Include toplev.h
929
930 2003-11-14  Richard Earnshaw  <rearnsha@arm.com>
931
932         * except.c (sjlj_emit_function_enter): Mark internal label as LOCAL.
933
934 2003-11-14  Richard Earnshaw  <rearnsha@arm.com>
935
936         * arm.c (arm_emit_vector_const, arm_output_load_gr): Use ISO C
937         function definition syntax.
938
939 2003-11-14  Eric Christopher  <echristo@redhat.com>
940
941         * reload1.c (reload): Revert previous patch. Make
942         check for assignment into reg_equiv_address stricter.
943
944 2003-11-14  Arnaud Charlet  <charlet@act-europe.fr>
945
946         * Makefile.in (POSTSTAGE1_FLAGS_TO_PASS): Pass ADAFLAGS.
947
948 2003-11-14  Richard Sandiford  <rsandifo@redhat.com>
949
950         * config/frv/frv.c (frv_in_small_data_p): Return false for unknown
951         section names.
952
953 2003-11-14  Jason Merrill  <jason@redhat.com>
954
955         PR middle-end/12526
956         * tree.c (build): A CALL_EXPR has side-effects if its arguments do.
957         * calls.c (call_expr_flags): New fn.
958         * tree.h: Declare it.
959
960 2003-11-13  Kazu Hirata  <kazu@cs.umass.edu>
961
962         * config/h8300/lib1funcs.asm (__udivsi3): Remove.
963         (divmodsi3): Change the name to ___udivsi3.
964         Update all callers.
965
966 2003-11-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
967
968         * libgcc2.c (__negdi2, __addvsi3, __addvdi3, __subvsi3, __subvdi3,
969         __mulvsi3, __negvsi2, __negvdi2, __mulvdi3, __lshrdi3, __ashldi3,
970         __ashrdi3, __ffsDI2, __muldi3, __clzDI2, __ctzDI2, __parityDI2,
971         __udivmoddi4, __divdi3, __moddi3, __cmpdi2, __ucmpdi2,
972         __fixunstfDI, __fixunsxfDI, __fixunsdfDI, __fixunssfDI,
973         __floatdixf, __floatditf, __floatdidf, __floatdisf, __gcc_bcmp):
974         Const-ify and/or initialize automatic variables at declaration.
975
976 2003-11-13  Kazu Hirata  <kazu@cs.umass.edu>
977
978         * config/h8300/lib1funcs.asm (divmodsi4): Replace all the uses
979         of er4 with er3.  Adjust all callers.
980
981 2003-11-13  Andrew Pinski <apinski@apple.com>
982
983         * config/darwin.c (machopic_output_possible_stub_label):
984         Allow stub symbol be not defined when outputting possible
985         stub label.
986
987 2003-11-13  Kazu Hirata  <kazu@cs.umass.edu>
988
989         * config/h8300/lib1funcs.asm (___udivsi3): Jump to reti
990         instead of exitdiv.
991         (___umodsi3): Likewise.
992         (exitdiv): Do not restore any register.
993         (reti): Restore registers.
994
995 2003-11-13  Steven Bosscher  <stevenb@suse.de>
996
997         * tree-inline.c (walk_tree): Handle PLACEHOLDER_EXPR.
998
999 2003-11-13  Kazu Hirata  <kazu@cs.umass.edu>
1000
1001         * config/h8300/lib1funcs.asm: Fix comment typos.
1002
1003 2003-11-13  Kazu Hirata  <kazu@cs.umass.edu>
1004
1005         * config/h8300/lib1funcs.asm (udivsi3): Don't save/restore
1006         unused registers.  Don't jump to exitdiv.
1007         (umodsi3): Likewise.
1008
1009 2003-11-13  Mark Mitchell  <mark@codesourcery.com>
1010             Kean Johnston <jkj@sco.com>
1011
1012         PR c/13029
1013         * toplev.c (check_global_declarations): Do not warn about unused
1014         static consts.
1015
1016 2003-11-13  Pavel Pisa  <pisa@cmp.felk.cvut.cz>
1017             Kazu Hirata  <kazu@cs.umass.edu>
1018
1019         * config/h8300/lib1funcs.asm (DenHighNonZero): Optimize using
1020         the approximate quotient method.
1021
1022 2003-11-13  Richard Earnshaw  <rearnsha@arm.com>
1023
1024         * combine.c (distribute_notes): When re-distributing the notes from
1025         an insn we are about to delete, ensure we can't end up with a cyclic
1026         list of notes.
1027
1028 2003-11-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
1029
1030         PR optimization/12926
1031         * expr.c (expand_assignment) [COMPONENT_REF]: Don't put
1032         the UNCHANGING_RTX_P flag on memory references to read-only
1033         components that are not addressable.
1034
1035 2003-11-12  Kazu Hirata  <kazu@cs.umass.edu>
1036
1037         * config/h8300/lib1funcs.asm (divmodsi4): Clear S0P in
1038         DenHighNonZero.
1039
1040 2003-11-13  Jan Hubicka  <jh@suse.cz>
1041
1042         PR opt/12275
1043         * c-decl.c (finish_decl): Use change_decl_assembler_name.
1044         * c-pragma.c (handle_pragma_redefine_extname): Likewise.
1045         * varasm.c (make_decl_rtl): Likewise.
1046         * cgraph.c (change_decl_assembler_name): New function.
1047         * tree.h (set_decl_assembler_name): Kill dead declaration.
1048         (change_decl_assembler_name): Declare.
1049
1050         * decl.c (make_rtl_for_nonlocal_decl): Use change_decl_assembler_name.
1051         * decl2.c (make_rtl_for_nonlocal_decl): Use change_decl_assembler_name.
1052
1053 2003-11-12  Kazu Hirata  <kazu@cs.umass.edu>
1054
1055         * config/h8300/lib1funcs.asm (___mulsi3): Don't save/restore
1056         an unused register.
1057
1058 2003-11-12  Richard Sandiford  <rsandifo@redhat.com>
1059
1060         PR bootstrap/12752
1061         * config/mips/t-iris6 (MULTILIB_OPTIONS): Put -mabi=n32 first.
1062         (MULTILIB_OSDIRNAMES): Reorder accordingly.
1063
1064 2003-11-12  Janis Johnson  <janis187@us.ibm.com>
1065
1066         * rs6000-protos.h (rs6000_initial_elimination_offset): Add.
1067         (rs6000_stack_info): Remove.  (debug_stack_info): Remove.
1068         (rs6000_emit_eh_reg_restore): Add
1069         * rs6000.c (rs6000_stack_t): Move from rs6000.h, change data type
1070         of vars_size and total_size to HOST_WIDE_INT.
1071         (emit_frame_save): Change parameter size to HOST_WIDE_INT.
1072         (rs6000_stack_info): Make static; change data size to HOST_WIDE_INT.
1073         (debug_stack_info): Make static; change output format of HOST_WIDE_INT
1074         values.
1075         (rs6000_emit_eh_reg_restore): New, with code formerly in rs6000.md.
1076         (rs6000_initial_elimination_offset): New, with code formerly in
1077         INITIAL_ELIMINATION_OFFSET.
1078         * rs6000.h (rs6000_stack_t): Remove.
1079         (INITIAL_ELIMINATION_OFFSET): Replace code with call to function
1080         rs6000_initial_elimination_offset.
1081         * rs6000.md (UNSPECV_EH_RR split): Replace code with call to
1082         rs6000_emit_eh_reg_restore.
1083
1084 2003-11-12  Mike Stump  <mrs@apple.com>
1085
1086         * c-typeck.c (c_convert_parm_for_inlining): Add argnum, which
1087         is the argumnt we are processing so that warnings and errors
1088         will have that information.
1089         * c-tree.h (c_convert_parm_for_inlining): Add argnum.
1090         * lang-hooks-def.h
1091         (lhd_tree_inlining_convert_parm_for_inlining): Likewse.
1092         * langhooks.c (lhd_tree_inlining_convert_parm_for_inlining): Likewise.
1093         * langhooks.h (convert_parm_for_inlining): Likewise.
1094         * tree-inline.c (initialize_inlined_parameters): Compute and
1095         pass argnum down.
1096
1097 2003-11-12  Alexey Starovoytov  <alexey.starovoytov@sun.com>
1098             Roger Sayle  <roger@eyesopen.com>
1099
1100         PR optimization/12953
1101         * tree-inline.c (inline_forbidden_p_1): Added check for BUILT_IN
1102         before switch by FUNCTION_CODE.
1103
1104 2003-11-12  Richard Earnshaw  <rearnsha@arm.com>
1105
1106         * arm.md (storehi): Avoid use of explicit subreg.
1107         (storehi_bigend, storeinthi, movhi_bigend): Likewise.
1108
1109 2003-11-12  J"orn Rennecke <joern.rennecke@superh.com>
1110
1111         * config/sh/sh.md (prefetch): New pattern.
1112
1113 2003-11-11  Eric Christopher  <echristo@redhat.com>
1114
1115         * reload1.c (reload): Verify that addresses for
1116         reg_equiv_* are valid for the architecture.
1117
1118 2003-11-11  Eric Christopher  <echristo@redhat.com>
1119
1120         * function.c (purge_addressof_1): Add libcall check.
1121         Remove test for cached replacements on fallback case.
1122         Simplify mode comparisons. Add libcall test for
1123         paradoxical subregs.
1124
1125 2003-11-11  Kazu Hirata  <kazu@cs.umass.edu>
1126
1127         * config/h8300/t-h8300: Fix an obsolete comment.
1128
1129 2003-11-11  James E Wilson  <wilson@specifixinc.com>
1130
1131         * expmed.c (store_bit_field, extract_bit_field): Revert last two
1132         changes.
1133
1134 2003-11-11  Kazu Hirata  <kazu@cs.umass.edu>
1135
1136         * config/h8300/lib1funcs.asm: Replace DenHighZero with
1137         DenHighNonZero.
1138
1139 2003-11-11  Jan Hubicka  <jh@suse.cz>
1140
1141         * cgraphunit.c (cgraph_function_possibly_inlined_p): Use
1142         really_no_inline.
1143
1144 2003-11-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1145
1146         * pa.h (TRAMPOLINE_TEMPLATE): Fix flushing of cache lines when
1147         generating 64-bit code.
1148
1149 2003-11-10  David Edelsohn  <edelsohn@gnu.org>
1150
1151         * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): Remove
1152         accidental commit in previous change.
1153
1154 2003-11-10  Fariborz Jahanian <fjahanian@apple.com>
1155
1156         * config/rs6000/rs6000.h (STACK_SIZE_MODE): Add definition.
1157         * config/rs6000/rs6000.c (reg_or_mem_operand): Add macho-style
1158         address recognition.
1159         (macho_lo_sum_memory_operand): Routine to recognize macho-style
1160         address recognition.
1161
1162 2003-11-10  Richard Henderson  <rth@redhat.com>
1163
1164         * dwarf2out.c (gen_label_die): Cope with DECL_RTL not set.
1165
1166 2003-11-10  Matt Austern  <austern@apple.com>
1167
1168         * config/darwin-protos.h (darwin_assemble_visibility): Declare.
1169         * config/darwin.c (darwin_assemble_visibility): Define.  Warn for
1170         anything other than VISIBILITY_DEFAULT and VISIBILITY_HIDDEN.
1171         * config/darwin.h (TARGET_ASM_ASSEMBLE_VISIBILITY): Use
1172         darwin_assemble_visibility instead of default.
1173
1174 2003-11-10  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
1175
1176         PR target/12865
1177         * config/sparc/sparc.c (sparc_initialize_trampoline): Call
1178         __enable_execute_stack only after writing onto the stack.
1179         (sparc64_initialize_trampoline): Likewise.
1180
1181 2003-11-09  Roger Sayle  <roger@eyesopen.com>
1182
1183         * loop.c (check_dbra_loop): Try swapping the comparison operands
1184         of the loop condition to identify a suitable induction variable.
1185         * unroll.c (loop_iterations): Likewise.
1186
1187 2003-11-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1188
1189         * config/sparc/sparc.h (TARGET_CPU_CPP_BUILTINS): Fix sparc vs
1190         sparc64 #cpu and #machine assertions.
1191
1192 2003-11-09  Richard Henderson  <rth@redhat.com>
1193
1194         * Makefile.in (rtlanal.o): Depend on BASIC_BLOCK_H.
1195
1196 2003-11-09  Jan Hubicka  <jh@suse.cz>
1197
1198         * tree-optimize.c (tree_rest_of_compilation): Fix warning.
1199
1200         * cgraphunit.c (cgraph_expand_function): Use
1201         cgraph_possibly_inlined_p.
1202         * tree-optimize.c (tree_rest_of_compilation): Do not kill saved tree.
1203
1204         * opts.c (common_handle_option): Do not set max-inline-insns.
1205         * params.def: Update comments.
1206         (PARAM_MAX_INLINE_INSNS): Kill.
1207         * invoke.texi (max-inline-insns): Kill.
1208
1209 2003-11-08  Joseph S. Myers  <jsm@polyomino.org.uk>
1210
1211         PR c/3190
1212         PR c/8714
1213         * c-format.c (set_Wformat): Do not enable -Wformat-y2k by default.
1214         * invoke.texi: Update.
1215
1216 2003-11-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1217
1218         PR optimization/12630
1219         * pa.c (compute_movstrsi_length): Rename to compute_movstr_length.
1220         Handle length computation 64-bit moves.
1221         (compute_clrstr_length, output_block_clear): Implement block clear.
1222         (output_block_move): Handle 64-bit moves.
1223         (pa_adjust_insn_length): Use compute_movstr_length and
1224         compute_clrstr_length.
1225         * pa.md (movstrsi): Revise operand order and comments.  Don't use
1226         match_scratch.
1227         (movstrsi_internal): Delete.
1228         (movstrsi_prereload, movstrsi_postreload): New insns.  Define splitter
1229         and peephole2 patterns to transform prereload to postreload form.
1230         (movstrdi, movstrdi_prereload, movstrdi_postreload, clrstrsi,
1231         clrstrsi_prereload, clrstrsi_postreload, clrstrdi, clrstrdi_prereload,
1232         clrstrdi_postreload): New patterns for 64-bit block move, and block
1233         clear.
1234         * pa-protos.h (output_block_clear): New prototype.
1235
1236 2003-11-08  Andreas Schwab  <schwab@suse.de>
1237
1238         * dbxout.c (current_file): Also wrap inside DBX_DEBUGGING_INFO ||
1239         XCOFF_DEBUGGING_INFO.
1240
1241 2003-11-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1242
1243         * dbxout.c (current_file): Wrap declaration in DBX_USE_BINCL.
1244
1245 2003-11-07  Geoffrey Keating  <geoffk@apple.com>
1246
1247         * config/rs6000/rs6000.c (rs6000_legitimize_address): Remove
1248         redundant parens.
1249
1250         * cppfiles.c (pch_open_file): New parameter 'invalid_pch', set it.
1251         (find_file_in_dir): Likewise.
1252         (_cpp_find_file): Print message if no header file is found
1253         but an invalid PCH file was.
1254
1255 2003-11-08  Joseph S. Myers  <jsm@polyomino.org.uk>
1256
1257         * c-typeck.c (pedantic_lvalue_warning): Deprecate compound
1258         expressions as lvalues.
1259         (internal_build_compound_expr): Remove special handling for
1260         non-pedantic case.
1261         * doc/extend.texi: Document that all extended lvalues are now
1262         deprecated.
1263
1264 2003-11-07  Geoffrey Keating  <geoffk@apple.com>
1265
1266         PR 11654
1267         * dbxout.c (struct dbx_file): Do not save for PCH.
1268         (current_file): Likewise.
1269         (dbxout_init): Don't allocate struct dbx_file using GC.
1270         (dbxout_start_source_file): Likewise.
1271
1272 2003-11-07  Falk Hueffner  <falk@debian.org>
1273
1274         * config/alpha/elf.h, config/alpha/unicosmk.h,
1275         config/alpha/vms.h: Convert to ISO C90.
1276
1277 2003-11-07  Nathanael Nerode  <neroden@gcc.gnu.org>
1278
1279         * config/arm/pe.h: Convert to ISO C90.
1280
1281 2003-11-07  J"orn Rennecke <joern.rennecke@superh.com>
1282
1283         * sh-protos.h (sh_pch_valid_p): Declare.
1284         * sh.c ("intl.h"): Include.
1285         (TARGET_PCH_VALID_P): Override.
1286         (sh_target_switches): New variable.
1287         (target_switches): Define.
1288         (sh_pch_valid_p): New function.
1289
1290         * sh.h (MODE_AFTER): Don't change mode unless TARGET_HITACHI.
1291
1292 2003-11-07  Jan Hubicka  <jh@suse.cz>
1293
1294         * i386.c (x86_64_sign_extended_value):  Return false from tls variables.
1295         (x86_64_zero_extended_value):  likewise.
1296
1297 2003-11-07  Richard Sandiford  <rsandifo@redhat.com>
1298
1299         * config/mips/mips.md (loadgp): Take $25 as a second operand.
1300         * config/mips/mips.c (mips_expand_prologue): Modify accordingly.
1301
1302 2003-11-06  Matt Austern <austern@apple.com>
1303
1304         * c-common.c (handle_visibility_attribute): Set DECL_VISIBILITY
1305         field instead of hanging an attribute object off the decl.
1306         * tree.h (DECL_VISIBLITY): New accessor macro for
1307         symbol_visibility field in struct tree_decl.
1308         (enum symbol_visibility): Move definition to before tree_decl.
1309         (struct tree_decl): Define new two-bit field, symbol_visibility.
1310         (decl_visibility): Remove declaration.
1311         * varasm.c (maybe_assemble_visibility): Use DECL_VISIBILITY
1312         instead of decl_visibility.
1313         (default_binds_local_p_1):  Use DECL_VISIBILITY instead of
1314         decl_visibility.
1315         (decl_visibility): Remove.
1316
1317 2003-11-06  Ulrich Weigand  <uweigand@de.ibm.com>
1318
1319         * config/s390/s390.c (s390_emit_epilogue): Recognize more cases
1320         where register 14 will be saved.
1321
1322 2003-11-06  Geoffrey Keating  <geoffk@apple.com>
1323
1324         * config/rs6000/rs6000.h (USE_FP_FOR_ARG_P): Move to rs6000.c.
1325         (USE_ALTIVEC_FOR_ARG_P): Likewise.
1326         * config/rs6000/rs6000.c (USE_FP_FOR_ARG_P): Move from rs6000.h.
1327         Take a pointer as the CUM parameter.  Update callers.
1328         (USE_ALTIVEC_FOR_ARG_P): Likewise.  Also correct for Darwin/AIX
1329         32-bit ABIs.
1330         (function_arg_advance): Use USE_ALTIVEC_FOR_ARG_P.  Correct case
1331         of vector parameters as named arguments of stdarg function.
1332         (function_arg): Likewise.
1333
1334         * config/rs6000/darwin.h (ASM_SPEC): Use -force_cpusubtype_ALL when
1335         -maltivec is specified, not the non-existent -faltivec.
1336
1337 2003-11-06  Ulrich Weigand  <uweigand@de.ibm.com>
1338
1339         * config/s390/s390-protos.h (s390_function_value): Declare.
1340         * config/s390/s390.c (TARGET_RETURN_IN_MEMORY): Define.
1341         (s390_return_in_memory): New function.
1342         (s390_function_value): New function.
1343         (s390_function_arg_float): Return false for all arguments larger
1344         than 8 bytes.
1345         (s390_function_arg_pass_by_reference): Likewise.  Return true for
1346         all vector arguments.
1347         (s390_function_arg_integer): New function.
1348         (s390_function_arg_advance): Call it.  Add sanity checks.
1349         (s390_function_arg): Likewise.
1350         * config/s390/s390.h (FUNCTION_VALUE): Call s390_function_value.
1351         (LIBCALL_VALUE): Likewise.
1352         (RET_REG): Remove.
1353         (RETURN_IN_MEMORY): Remove.
1354
1355 2003-11-06  Richard Sandiford  <rsandifo@redhat.com>
1356
1357         * config/mips/mips-protos.h (mips_initial_elimination_offset): Change
1358         return type to HOST_WIDE_INT.
1359         * config/mips/mips.c (mips_frame_info): Give sizes type HOST_WIDE_INT.
1360         Make initialized a bool.  Make register masks unsigned ints.
1361         (compute_frame_size): Make same mask change here.  Use HOST_WIDE_INT
1362         where appropriate.
1363         (mips_initial_elimination_offset): Return a HOST_WIDE_INT.
1364         (mips_output_function_prologue): Print sizes as HOST_WIDE_INTs.
1365
1366 2003-11-06  Richard Sandiford  <rsandifo@redhat.com>
1367
1368         * config/frv/frv.c (frv_initial_elimination_offset): Remove bogus
1369         negation.
1370
1371 2003-11-06  Richard Sandiford  <rsandifo@redhat.com>
1372
1373         * config/frv/frv.h (ASM_OUTPUT_ALIGN_WITH_NOP): Define.
1374
1375 2003-11-06  Momchil Velikov  <velco@fadata.bg>
1376
1377         * config/mips/mips.c (override_options): Set MASK_SOFT_FLOAT
1378         for VR4111 too.
1379
1380 2003-11-06  Jan Hubicka  <jh@suse.cz>
1381
1382         * builtins.c (simplify_builtin_strrchr, simplify_builtin_strpbrk): Add
1383         missing casts.
1384
1385 2003-11-06  Zack Weinberg  <zack@codesourcery.com>
1386
1387         * genmodes.c: Change the word "bitsize" to "precision" throughout.
1388         * machmode.def: Likewise.
1389         * machmode.h (GET_MODE_SIZE): Cast value to unsigned short.
1390         (GET_MODE_BITSIZE): Define as GET_MODE_SIZE * BITS_PER_UNIT.
1391         (GET_MODE_PRECISION): New macro.
1392         (mode_bitsize): Renamed mode_precision.
1393         * stor-layout.c (mode_for_size, smallest_mode_for_size):
1394         Use GET_MODE_PRECISION; clarify comments.
1395
1396 2003-11-05  Joseph S. Myers  <jsm@polyomino.org.uk>
1397
1398         * doc/install-old.texi: Remove old documentation of building
1399         cross-compilers.
1400         * doc/install.texi: Move some of it to here.
1401
1402 2003-11-05  Per Bothner  <pbothner@apple.com>
1403
1404         PR preprocessor/12891
1405         * c-opts.c (finish_options):  Set include_cursor to disable premature
1406         calls to push_command_line_include from cpp_scan_nooutput.
1407         Fixes bug reported by DJ Delorie.
1408
1409 2003-11-05  Geoffrey Keating  <geoffk@apple.com>
1410
1411         * config/rs6000/rs6000.c (setup_incoming_varargs): Remove
1412         code supporting old-style varargs.
1413
1414         * config/rs6000/rs6000.c (rs6000_machopic_legitimize_pic_address): Use
1415         an intermediate register for better optimisation.
1416
1417 2003-11-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1418
1419         PR optimization/10080
1420         * cfgloopanal.c (variable_initial_value, variable_initial_values,
1421         simple_loop_exit_p): Record the fact that initial value is extended
1422         from inner mode.
1423         (count_strange_loop_iterations, count_loop_iterations): Handle
1424         ivs that iterate in a narrower mode. Fix handling of overflows.
1425         Improve handling of NE conditions.
1426         (inverse, fits_in_mode_p): New static functions.
1427         (simple_increment): Detect variables that iterate in a narrower mode.
1428         * cfgloop.h (struct loop_desc): Fields inner_mode and extend added.
1429
1430 2003-11-05  Geoffrey Keating  <geoffk@apple.com>
1431
1432         * config/rs6000/rs6000.c (compute_vrsave_mask): Correct off-by-one
1433         error.
1434
1435         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Darwin
1436         needs VRSAVE.
1437
1438 2003-11-05  Joseph S. Myers  <jsm@polyomino.org.uk>
1439
1440         * c-typeck.c (pedantic_lvalue_warning): Deprecate use of
1441         conditional expressions as lvalues.
1442
1443 2003-11-05  Kazu Hirata  <kazu@cs.umass.edu>
1444
1445         * tsystem.h: Add the prototype of strlen.
1446         * unwind-pe.h (read_encoded_value_with_base): Add an
1447         appropriate cast to handle a case where the pointer size is
1448         smaller than sizeof (int).
1449
1450 2003-11-04  Richard Sandiford  <rsandifo@redhat.com>
1451
1452         * config/mips/mips-protos.h (mips_global_pic_constant_p): Delete.
1453         (mips_delegitimize_address): Delete.
1454         (mips_gotoff_global, mips_load_got_page): Declare.
1455         (mips_load_got_global, mips_rewrite_small_data): Declare.
1456
1457         * config/mips/mips.h (FIND_BASE_TERM): Remove definition.
1458         (DANGEROUS_FOR_LA25_P): Use global_got_operand.
1459         (PREDICATE_CODES): Add global_got_operand, local_got_operand and
1460         small_data_pattern.  Remove CONST from const_arith_operand's entry.
1461
1462         * config/mips/mips.c (UNSPEC_ADDRESS_P, CONST_GP_P): New macros.
1463         (UNSPEC_ADDRESS, UNSPEC_ADDRESS_TYPE): Likewise.
1464         (mips_constant_type): Delete.
1465         (mips_symbol_type): Add SYMBOL_GOTOFF_PAGE, SYMBOL_GOTOFF_GLOBAL,
1466         SYMBOL_GOTOFF_CALL and SYMBOL_GOTOFF_LOADGP.
1467         (NUM_SYMBOL_TYPES): New macro.
1468         (mips_address_type): Remove ADDRESS_INVALID.
1469         (machine_function): Add has_gp_insn_p.
1470         (mips_constant_info): Delete.
1471         (mips_address_info): Add the address type as an extra field.  Replace
1472         the c field with symbol_type.
1473         (mips_split_p, mips_lo_relocs, mips_hi_relocs): New arrays.
1474         (TARGET_DELEGITIMIZE_ADDRESS): Remove definition.
1475         (mips_reloc_offset_ok_p, mips_classify_constant): Delete.
1476         (mips_split_const, mips_symbolic_constant_p): New functions.
1477         (mips_symbolic_address_p): Take the symbol type and mode as arguments.
1478         (mips_classify_address): Return true if the address is valid, storing
1479         its type in INFO.  Use mips_symbolic_constant_p.  Use mips_lo_relocs[]
1480         to test whether a LO_SUM address is allowed.
1481         (mips_symbol_insns): Return 0 for general mips16 symbols.
1482         Reorder SYMBOL_GOT_GLOBAL case to match mips_symbol_type definition.
1483         Handle the new SYMBOL_GOTOFF_*s.
1484         (mips_address_insns): Update call to mips_classify_address.
1485         (mips_const_insns): Be more fussy about HIGH constants.  Remove use
1486         of mips_classify_constant.  Be more accurate about CONSTs.
1487         (mips_global_pic_constant_p): Delete.
1488         (const_arith_operand): Only accept CONST_INTs.
1489         (call_insn_operand): Remove call to mips_classify_constant.
1490         Let mips_symbolic_constant_p check for invalid offsets.
1491         (move_operand): Check for general_operands first.  Only accept symbolic
1492         constants if they satisfy mips_symbolic_constant_p and cannot be split.
1493         (symbolic_constant): Use mips_symbolic_constant_p.
1494         (global_got_operand, local_got_operand): New predicates.
1495         (stack_operand): Update call to mips_classify_address.
1496         (mips_legitimate_address_p): Likewise.
1497         (mips_reloc, mips_lui_reloc): Delete.
1498         (mips_force_temporary): Only use the given temporary if no_new_pseudos.
1499         Use emit_move_insn.
1500         (mips_split_symbol, mips_unspec_address): New functions.
1501         (mips_unspec_offset_high): New function.
1502         (mips_load_got): Replace reloc argument with a symbol_type.
1503         Use mips_unspec_address to create the address and put it in a
1504         LO_SUM with the base register.
1505         (mips_load_got16, mips_load_got32): Delete.
1506         (mips_emit_high, mips_legitimize_symbol): Delete.
1507         (mips_gotoff_global): New function.
1508         (mips_load_got_page, mips_load_got_global): New functions.
1509         (mips_legitimize_symbol): Inline handling of LO_SUM splits.
1510         (mips_legitimize_const_move): Likewise.  Remove HIGH handling.
1511         Inline code to handle constants plus invalid offsets.  Use
1512         mips_split_symbol to legitimize constant pool addresses.
1513         (mips_delegitimize_address): Delete.
1514         (mips_rtx_costs): Give legitimate symbolic constants and CONST_DOUBLEs
1515         a cost of 1 insn.  Give the rest a cost of CONSTANT_POOL_ADDRESS.
1516         (mips_subword): Pass memrefs through mips_rewrite_small_data.
1517         (mips_output_move): Remove use of mips_classify_constant.
1518         (mips_expand_call): Use mips_unspec_offset_high to calculate the
1519         high part of the GOT address for calls to global functions.
1520         (override_options): Initialize mips_split_p[], mips_lo_relocs[]
1521         and mips_hi_relocs[].
1522         (print_operand): Use print_operand_reloc to handle '%h' and '%R'.
1523         Remove use of mips_classify_constant.
1524         (mips_reloc_string): Delete.
1525         (print_operand_reloc): New function.
1526         (print_operand_address): Update call to mips_classify_address.
1527         (mips_rewrite_small_data_p, small_data_pattern_1): New functions.
1528         (small_data_pattern): New predicate.
1529         (mips_rewrite_small_data_1, mips_rewrite_small_data): New functions.
1530         (mips_function_has_gp_insn): New function.
1531         (mips_global_pointer): Use it.
1532         (mips_gp_insn): Delete.
1533         (mips_expand_prologue): When compiling for n32/n64 abicalls, use a
1534         single loadgp pattern to initialize $gp.  Pass it the offset of _gp
1535         from the start of the current function.
1536         (mips16_gp_pseudo_reg): Revert last patch.
1537
1538         * config/mips/mips.md (RELOC_*): Delete.
1539         (UNSPEC_LOADGP, UNSPEC_FIRST_ADDRESS): New constants.
1540         (got): New insn attribute.
1541         (type): Set to "load" if got == load.
1542         (length): Set to 4 if got == load, 8 if got == xgot_high.
1543         (lui[sd]i): Delete.
1544         (*xgot_hi[sd]i, *xgot_lo[sd]i): New patterns.
1545         (*got_disp[sd]i, *got_page[sd]i): Likewise.
1546         (*low[sd]i): Change constraints to "d".  Add a new define_split to
1547         rewrite small data constants into LO_SUMs.
1548         (loadgp): New insns.
1549
1550 2003-11-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1551
1552         * config/mips/_tilib.c: Use _ABI* in _MIPS_SIM tests.
1553
1554 2003-11-04  DJ Delorie  <dj@redhat.com>
1555
1556         * config/v850/v850.md (mulhisi3): Expand the const_int case
1557         separately to avoid trying to sign extend the const.
1558
1559 2003-11-04  Richard Sandiford  <rsandifo@redhat.com>
1560
1561         * emit-rtl.c (copy_rtx_if_shared): Don't allow MEMs with constant
1562         addresses to be shared.
1563         (force_const_mem): Return a copy of the pool entry.
1564
1565 2003-11-03  Andreas Jaeger  <aj@suse.de>
1566
1567         * Makefile.in (GCC_CFLAGS): Remove @WERROR@ again.
1568
1569 2003-11-03  Kelley Cook  <kcook@gcc.gnu.org>
1570
1571         * Makefile.in (cpp.dvi): New target split from cpp.info.
1572         (gcc.dvi):  New target split from gcc.info.
1573         (gccint.dvi): New target split from gccint.info.
1574         (cppinternals.dvi): New target split from cppinternals.info
1575         (gccinstall.info): New specific rule.
1576         (gccinstall.dvi): Likewise.
1577         (dvi): Move targets to $(docobjdir).
1578         ($(docobjdir)/%.dvi): New implicit rule.
1579
1580 2003-11-03  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1581
1582         * doc/gty.texi (tag, desc): Say more about role of desc values in
1583         selecting between tags.
1584
1585 2003-11-03  Alexander Kabaev  <ak03@gte.com>
1586
1587         * real.c (encode_ieee_single): Ensure proper promotion.
1588
1589 2003-11-03  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1590
1591         * doc/contrib.texi: Add Giovanni Bajo, Dara Hazeghi, Falk Hueffner,
1592         and Andrew Pinski.
1593
1594 2003-11-03  Syd Polk  <spolk@apple.com>
1595
1596         * config/rs6000/rs6000.c (rs6000_override_options): Add G3, G4, and G5
1597         marketing names to the list of supported processors.
1598         * config/rs6000/rs6000.h: Ditto.
1599         * doc/invoke.texi: Ditto.
1600         * config.gcc: Ditto.
1601
1602 2003-11-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1603
1604         * fixinc/inclhack.def (stdio_va_list): Allow tab before va_list.
1605         Merge two substitutions.
1606         * fixinc/fixincl.x: Regenerate.
1607         Fixes PR bootstrap/12666.
1608
1609 2003-11-03  Joseph S. Myers  <jsm@polyomino.org.uk>
1610
1611         * doc/install-old.texi: Remove VMS documentation.
1612
1613 2003-11-03  Jan Hubicka  <jh@suse.cz>
1614
1615         * i386.c (override_options):  Remove hack enabling 128bit long double
1616         commited by accident.
1617
1618 2003-11-02  Per Bothner  <per@bothner.com>
1619
1620         * c-opts.c (needValue):  Do cpp_find_main_file before processing
1621         any imacros flags, so pfile->main_file is set for the latter.
1622
1623 2003-11-03  Andreas Jaeger  <aj@suse.de>
1624             Zack Weinberg  <zack@codesourcery.com>
1625
1626         * Makefile.in (GCC_CFLAGS): Allow blacklisting of warnings.
1627         (SYSCALLS.c.X-warn): Suppress warnings.
1628
1629 2003-11-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1630
1631         PR optimization/12845
1632         * pa.c (output_cbranch): Use cmpb for DImode comparisons with 0.
1633
1634 2003-11-02  Zack Weinberg  <zack@codesourcery.com>
1635
1636         * print-rtl.c (print_rtx): Call PRINT_REG with second argument -1.
1637         * config/i386/i386.c (print_reg): Abort on a virtual register
1638         if code != -1; not if file == asm_out_file.
1639         * config/i386/i386.h (PRINT_REG): Document meaning of CODE == -1.
1640         (DEBUG_PRINT_REG): Delete, unused.
1641
1642 2003-11-02  Andreas Schwab  <schwab@suse.de>
1643
1644         * config/ia64/fde-glibc.c (_GNU_SOURCE): Define to 1 instead of
1645         empty to avoid conflict with the definition from configure.
1646
1647 2003-11-02  Roger Sayle  <roger@eyesopen.com>
1648
1649         PR optimization/10817
1650         * ifcvt.c (noce_emit_move_insn): Improve documentation comment.
1651         (noce_try_move): New function to optimize an if-the-else into an
1652         unconditional move, i.e. "if (a!=b) x=a; else x=b" into "x=a".
1653         (noce_process_if_block): Attempt simplification with noce_try_move.
1654
1655         * simplify-rtx.c (simplify_ternary_operation): Some minor fixes
1656         and improvements to the optimizations of IF_THEN_ELSE expressions.
1657         (simplify_subreg): Silence signed/unsigned comparison warning.
1658
1659 2003-11-02  Richard Sandiford  <rsandifo@redhat.com>
1660
1661         * Makefile.in (targhooks.o, reload.o): Update dependencies.
1662         (GTFILES): Add targhooks.c.
1663         (gt-targhooks.h): New rule; depend on s-gtype.
1664         * target.h (direct_pool_load_p): New hook.
1665         * target-def.h (TARGET_DIRECT_POOL_LOAD_P): New macro.
1666         (TARGET_INITIALIZER): Include it.
1667         * targhooks.h (default_direct_pool_load_p): Declare.
1668         (hook_bool_machine_mode_true): Declare.
1669         * targhooks.c: Include insn-config.h, recog.h, ggc.h and
1670         gt-targhooks.h.
1671         (pool_symbol): New variable.
1672         (default_direct_pool_load_p): New function.
1673         (hook_bool_machine_mode_true): New function.
1674         * reload.c: Include target.h.
1675         (find_reloads): If an alternative will force a constant into memory,
1676         count an extra reload if constant pool symbols are not valid
1677         addresses.  If an alternative uses memory to move values between
1678         registers, count the move as two reloads rather than one.
1679         * config/s390/s390.c (TARGET_DIRECT_POOL_LOAD_P): Define.
1680         * doc/tm.texi (TARGET_DIRECT_POOL_LOAD_P): Document.
1681
1682 2003-11-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
1683
1684         PR optimization/12799
1685         * postreload.c (reload_cse_move2add): Generate the add2
1686         patterns manually.
1687
1688 2003-11-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
1689
1690         * config/sparc/sparc.c (function_arg_partial_nregs) [TARGET_ARCH64]:
1691         Return 0 for all complex modes whose size is lesser or equal to
1692         a word.  Add a ??? comment for the condition used with 16-byte
1693         aligned modes.
1694
1695 2003-11-01  Kelley Cook  <kcook@gcc.gnu.org>
1696
1697         * .cvsignore: Remove c-parse* and tradcif.c.
1698         * objc/.cvsignore: Delete.
1699
1700 2003-11-01  Roger Sayle  <roger@eyesopen.com>
1701
1702         * unwind-sjlj.c (_Unwind_GetCFA): Return (_Unwind_Word)0 instead
1703         of NULL.
1704
1705 2003-11-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1706
1707         * som.h (DO_GLOBAL_DTORS_BODY): Change to C90 declaration.
1708
1709         * libgcc2.c (SYMBOL__MAIN): Provide C90 declaration.
1710
1711         * collect2.c (scan_libraries): Fix typos.
1712
1713         PR preprocessor/12847
1714         * cppfiles.c, cppexp.c, cpperror.c, cpplib.h, cpplib.c, cpplex.c,
1715         cppinit.c, cpptrad.c, cppmacro.c, fix-header.c, cpppch.c, c-pch.c,
1716         c-incpath.c, cppcharset.c (DL_WARNING, DL_WARNING_SYSHDR, DL_PEDWARN,
1717         DL_ERROR, DL_ICE, DL_EXTRACT, DL_WARNING_P): Prefix macro names with
1718         "CPP_".
1719
1720 2003-11-01  Fariborz Jahanian  <fjahanian@apple.com>
1721
1722         * config/rs6000/rs6000.c (rs6000_mixed_function_arg): Correct
1723         no_units calculation.
1724
1725 2003-11-01  Andreas Jaeger  <aj@suse.de>
1726
1727         * unwind-dw2.c (_Unwind_FrameState): Remove commas at end of
1728         enumeration list.
1729
1730 2003-11-01  Andreas Schwab  <schwab@suse.de>
1731
1732         * config/ia64/sysv4.h (SDATA_SECTION_FUNCTION): Update to C90
1733         prototypes.
1734         (SBSS_SECTION_FUNCTION): Likewise.
1735
1736 2003-11-01  Andreas Jaeger  <aj@suse.de>
1737
1738         * Makefile.in (GCC_CFLAGS): Add @WERROR@ for target files.
1739
1740 2003-11-01  Andreas Tobler  <a.tobler@schweiz.ch>
1741
1742         * config/rs6000/sysv4.h (EXTRA_SECTION_FUNCTIONS): Update to C90
1743         prototypes.
1744
1745 2003-11-01  Andreas Jaeger  <aj@suse.de>
1746
1747         * unwind-dw2.c (_Unwind_FindEnclosingFunction): Constify variable.
1748         (uw_frame_state_for): Constify variables.
1749         (extract_cie_info): Constify first argument.
1750
1751         * unwind-dw2-fde-darwin.c: Adjust prototype of
1752         _Unwind_Find_registered_FDE for recent changes.
1753         (examine_objects): Constify return value and local variable result.
1754         (_Unwind_Find_FDE): Constify return value and local variable ret.
1755
1756 2003-10-31  Per Bothner  <pbothner@apple.com>
1757
1758         * c-opts.c (finish_options):  Change to returns boolean - false iff
1759         the call to cpp_find_main_file fails.
1760         (c_common_init):  Skip preprocess_file if finish_options failed.
1761         (c_common_parse_file):  Break if finish_options failed.
1762         Fixes PR preprocessor/12545.
1763
1764 2003-10-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1765
1766         * aclocal.m4: Blacklist ultrix* for mmap file.
1767         * configure: Rebuilt.
1768
1769         * function.c (assign_parms): Add ATTRIBUTE_UNUSED to variable
1770         reg_parm_stack_space.
1771         * toplev.c (default_get_pch_validity): Fix warning.
1772
1773         * vax.c: Include toplev.h.
1774         (vax_init_libfuncs): Fix typo (umod).
1775         * vax.h (ASM_COMMENT_START): Define.
1776         (PRINT_OPERAND): Fix warning when HOST_WIDE_INT is a long long.
1777
1778 2003-10-31  Roger Sayle  <roger@eyesopen.com>
1779
1780         PR middle-end/11968
1781         * expr.c (expand_expr <MULT_EXPR>): Remove inappropriate and
1782         confusing comment; distributivity isn't handled in expand_expr.
1783         * fold-const.c (extract_muldiv_1 <PLUS_EXPR>):  Allow overflow
1784         in distributivity, if wrap-around semantics are specified with
1785         -fwrapv.
1786
1787 2003-11-01  Alan Modra  <amodra@bigpond.net.au>
1788
1789         PR 12315
1790         * final.c (profile_function): Allow for NULL svrtx.
1791
1792 2003-10-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1793
1794         * pa.c (pa_select_section): Use new style declaration.
1795         * som.h (readonly_data): Likewise.
1796
1797 2003-10-31  Kelley Cook  <kcook@gcc.gnu.org>
1798
1799         * config/rs6000/rs6000.c: Update to C90 prototypes.
1800
1801 2003-10-31  Richard Earnshaw  <rearnsha@arm.com>
1802
1803         PR target/7513
1804         * arm.h (CONDITIONAL_REGISTER_USAGE): Disable use of LR in Thumb
1805         code.
1806
1807 2003-10-31  Andreas Jaeger  <aj@suse.de>,
1808             Zack Weinberg  <zack@codesourcery.com>
1809
1810
1811         * crtstuff.c (__register_frame_info, __register_frame_info_bases)
1812         (__deregister_frame_info, __deregister_frame_info_bases):
1813         Constify void * argument.
1814         * unwind-dw2-fde.h (struct fde_vector):
1815         Constify 'orig_data' and 'array' fields.
1816         (__register_frame_info, __register_frame_info_bases)
1817         (__deregister_frame_info, __deregister_frame_info_bases):
1818         Constify void * argument.
1819         (get_cie, next_fde, _Unwind_Find_FDE): Constify arguments,
1820         return values, and casts of type fde *, struct dwarf_fde *,
1821         and struct dwarf_cie *.
1822         * unwind-dw2-fde.c (__register_frame_info, __register_frame_info_bases)
1823         (__deregister_frame_info, __deregister_frame_info_bases):
1824         Constify void * argument.
1825         (get_cie_encoding, ): Constify struct dwarf_cie * argument.
1826         (get_fde_encoding, fde_unencoded_compare, fde_single_encoding_compare)
1827         (fde_mixed_encoding_compare, fde_compare_t, start_fde_sort, fde_insert)
1828         fde_split, SWAP, frame_downheap, frame_heapsort)
1829         (classify_object_over_fdes, add_fdes, linear_search_fdes,
1830         binary_search_unencoded_fdes, binary_search_single_encoding_fdes,
1831         binary_search_mixed_encoding_fdes, search_object, _Unwind_Find_FDE):
1832         Constify arguments, local variables, return values, and casts
1833         of type fde *, fde **, struct dwarf_fde *, and struct dwarf_cie *.
1834         Use const pointer types in sizeof expressions, for clarity.
1835         * unwind-dw2-fde-glibc.c
1836         (_Unwind_find_registered_FDE, _Unwind_find_FDE): Constify return value.
1837         (struct unw_eh_callback_data): Constify 'ret' field.
1838
1839 2003-10-31  Fariborz Jahanian  <fjahanian@apple.com>
1840             David Edelsohn  <edelsohn@gnu.org>
1841
1842         * config/rs6000/rs6000.c (rs6000_mixed_function_arg): New.
1843         (function_arg): Call it.
1844         (rs6000_function_value): Widen integral return value to mode based
1845         on TARGET_32BIT, not word_mode.
1846         * config/rs6000/rs6000.h (PROMOTE_MODE): Likewise.
1847         (UNITS_PER_ARG): New.
1848         (RS6000_ARG_SIZE): Use it.
1849
1850 2003-10-31  Gerald Pfeifer  <gerald@pfeifer.com>
1851
1852         * .cvsignore: No longer ignore gengtype-lex.c, gengtype-yacc.c,
1853         and gengtype-yacc.h.
1854
1855 2003-10-31  Richard Earnshaw  <rearnsha@arm.com>
1856
1857         PR optimization/8896
1858         * postreload.c (reload_combine): Check that REGY doesn't die in an
1859         insn of the form (set (regx) (plus (regx) (regy))), ie REGX != REGY.
1860
1861 2003-10-31  Josef Zlomek  <zlomekj@suse.cz>
1862
1863         PR/10239
1864         * cfgrtl.c (delete_insn): Decrease LABEL_NUSES for all REG_LABEL notes.
1865
1866 2003-10-31  Josef Zlomek  <zlomekj@suse.cz>
1867
1868         PR/11640
1869         * cfgrtl.c (try_redirect_by_replacing_jump): Move jump
1870         immediatelly before BARRIER.
1871
1872 2003-10-31  Kelley Cook  <kcook@gcc.gnu.org>
1873
1874         * Makefile.in (STRICT2_WARN): Add -Wold-style-definition.
1875
1876 2003-10-31  Richard Earnshaw  <rearnsha@arm.com>
1877
1878         PR target/11271
1879         * reload.c (find_reloads_address): Handle any register in
1880         (PLUS (PLUS (REG) (REG)) (CONST_INT).
1881
1882 2003-10-31  Richard Earnshaw  <rearnsha@arm.com>
1883
1884         * ggc-page.c (ggc_pch_read): Wrap call to poison_pages in
1885         ENABLE_GC_CHECKING not in GGC_POISON.
1886
1887 2003-10-31  Nathanael Nerode  <neroden@gcc.gnu.org>
1888
1889         PR bootstrap/9863
1890         * configure.in: Bail out if awk is missing.
1891         * configure: Regenerate.
1892
1893         PR ada/12761
1894         * Makefile.in: Move default definitions of X_ADA_CFLAGS,
1895         T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS from ada/Make-lang.in to here.
1896
1897 2003-10-30  Richard Henderson  <rth@redhat.com>
1898
1899         * c-objc-common.c (c_tree_printer): Handle types correctly.
1900         Factor code a bit.
1901
1902 2003-10-30 Kelley Cook <kcook@gcc.gnu.org>
1903
1904         * value-prof.c, web.c: Update to C90.
1905
1906 2003-10-30  Eric Christopher  <echristo@redhat.com>
1907
1908         * function.c (purge_addressof_1): Add case for REG_RETVAL
1909         notes when modes are unequal.
1910
1911 2003-10-31  Jan Hubicka  <jh@suse.cz>
1912
1913         * i386-modes.def: Add XFmode format adjustment.
1914
1915 2003-10-30  Jan Hubicka  <jh@suse.cz>
1916
1917         * real.c (encode_ieee_extended): Back out previous patch.
1918
1919 2003-10-30  Jan Hubicka  <jh@suse.cz>
1920
1921         * real.c (encode_ieee_extended): Initialize whole array.
1922         * reg-stack.c (move_for_stack_reg0: Use always XFmode.
1923         * i386-modes.def: Change definitions of TFmode and XFmode.
1924         * i386.c (classify_argument): Rename TFmodes to XFmodes; add new TFmode
1925         code.
1926         (construct_container): Allow constructing of TFmode integer containers.
1927         (ix86_return_in_memory):  XFmode is not returned in memory.
1928         (init_ext_80387_constants): Always use XFmode.
1929         (print_operand): Likewise.
1930         (ix86_prepare_fp_compare_regs): Likewise.
1931         (split_to_parts): Deal with TFmode.
1932         (split_long_move): Simplify.
1933         (ix86_init_mmx_sse_builtins): Add __float80, __float128.
1934         (ix86_memory_move_cost): Do not confuse TFmode.
1935         * i386.h (LONG_DOUBLE_TYPE_SIZE): Set to 96.
1936         (IS_STACK_MODE): TFmode is not stack mode.
1937         (HARD_REGNO_NREGS, CLASS_MAX_NREGS): Deal nicely with XFmode.
1938         (VALID_SSE_REG_MODE): Allow TFmode.
1939         (VALID_FP_MODE_P): Disallow TFmode.
1940         (VALID_INT_MODE_P): Allow TFmode in 64bit mode.
1941         * i386.md (TFmode patterns): Kill.
1942         (movtf, motf_rex64): New patterns.
1943
1944 2003-10-30  Richard Sandiford  <rsandifo@redhat.com>
1945
1946         * config/mips/mips.md (adddi3): Fix typo in mips16 stack pointer code.
1947
1948 2003-10-30  Richard Sandiford  <rsandifo@redhat.com>
1949
1950         * config/mips/mips.md (mov_lwl): Use memory_operand where appropriate.
1951         (mov_lwr, mov_swl, mov_swr): Likewise.
1952         (mov_ldl, mov_ldr, mov_sdl, mov_sdr): Likewise.
1953
1954 2003-10-30  Richard Sandiford  <rsandifo@redhat.com>
1955
1956         * config/mips/mips.c (mips_global_pointer): Don't try to use $25.
1957
1958 2003-10-30  Richard Henderson  <rth@redhat.com>
1959
1960         * config/mips/mips.c (mips_build_builtin_va_list): Use runtime
1961         test for irix6 rather than preprocessor test.
1962
1963 2003-10-30  Richard Henderson  <rth@redhat.com>
1964
1965         * cppcharset.c (one_utf8_to_utf16): Initialize 's' to silence warning.
1966
1967 2003-10-30  Ulrich Weigand  <uweigand@de.ibm.com>
1968
1969         * config/s390/s390.c (struct machine_function): Use save_return_addr_p
1970         as a general flag that the return address register needs to be saved,
1971         not necessarily because of __builtin_return_addr (0).
1972         (s390_split_branches): Remove TEMP_REG and TEMP_USED arguments,
1973         remove special handling of zSeries machines.
1974         (s390_optimize_prolog): Remove TEMP_USED argument, treat the return
1975         register as a regular register on zSeries machines.
1976         (s390_reorg): Adjust calls to s390_split_branches and
1977         s390_optimize_prolog.
1978         (s390_frame_info): On zSeries machines, do not assume the return
1979         register is always used.  Update regs_ever_live with current data
1980         for the special registers.
1981         (s390_emit_epilogue): Use save_return_addr_p to determine whether
1982         the return register was saved.
1983         * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Do not mark
1984         RETURN_REGNUM fixed on zSeries machines.
1985         (REG_ALLOC_ORDER): Use RETURN_REGNUM last.
1986         * config/s390/s390.md ("*doloop_si"): Handle branch overflow
1987         via ahi-jgne pair on zSeries machines.
1988         ("*doloop_di"): Likewise.
1989         ("*doloop_di_long"): Remove.
1990
1991 2003-10-30  Richard Earnshaw  <rearnsha@arm.com>
1992
1993         * arm.c (arm_override_options): Revert change of arm_constant_limit
1994         when optimizing for size.
1995
1996 2003-10-29  Richard Henderson  <rth@redhat.com>
1997
1998         * fold-const.c (fold_single_bit_test): Convert the input to the
1999         operational intermediate type.
2000
2001 2003-10-29  Richard Henderson  <rth@redhat.com>
2002
2003         * builtins.c (std_build_builtin_va_list): New.
2004         * expr.h (std_build_builtin_va_list): Declare.
2005         * defaults.h (BUILD_VA_LIST_TYPE): New.
2006         * system.h (BUILD_VA_LIST_TYPE): Poison.
2007         * target-def.h (TARGET_BUILD_BUILTIN_VA_LIST): New.
2008         * target.h (struct gcc_target): Add build_builtin_va_list.
2009         * tree.c (build_common_tree_nodes_2): Use it.
2010
2011         * config/alpha/alpha-protos.h, config/alpha/alpha.c,
2012         config/alpha/alpha.h, config/alpha/unicosmk.h,
2013         config/d30v/d30v-protos.h, config/d30v/d30v.c, config/d30v/d30v.h,
2014         config/i386/i386-protos.h, config/i386/i386.c, config/i386/i386.h,
2015         config/i860/i860-protos.h, config/i860/i860.c, config/i860/i860.h,
2016         config/i960/i960-protos.h, config/i960/i960.c, config/i960/i960.h,
2017         config/mips/iris6.h, config/mips/mips-protos.h, config/mips/mips.c,
2018         config/mips/mips.h, config/rs6000/rs6000-protos.h,
2019         config/rs6000/rs6000.c, config/rs6000/rs6000.h,
2020         config/s390/s390-protos.h, config/s390/s390.c, config/s390/s390.h,
2021         config/sh/sh-protos.h, config/sh/sh.c, config/sh/sh.h,
2022         config/xtensa/xtensa-protos.h, config/xtensa/xtensa.c,
2023         config/xtensa/xtensa.h: Rename foo_build_va_list to
2024         foo_build_builtin_va_list; make it static.  Define
2025         TARGET_BUILD_BUILTIN_VA_LIST.  Remove BUILD_VA_LIST_TYPE.
2026         Update protos.
2027
2028         * config/i386/i386.c (ix86_expand_carry_flag_compare): Make static.
2029         * config/iq2000/iq2000.h (BUILD_VA_LIST_TYPE): Remove.
2030
2031 2003-10-29  James E Wilson  <wilson@specifixinc.com>
2032
2033         * recog.c (asm_operand_ok): Add missing break after case 'X'.
2034         Change if statements to else if statements in default case.
2035         (extract_constrain_insn_cached): Fix misspelling of constrain_operands
2036         in comment.
2037         (constrain_operands_cached): Likewise.
2038         (constrain_operands): Change if statements to else if statements in
2039         default case.
2040         * reload.c (find_reloads): Likewise.
2041
2042 2003-10-29  Richard Henderson  <rth@redhat.com>
2043
2044         * config/m68k/m68k.c (notice_update_cc): Clear cc status for
2045         shifts and rotates.
2046
2047 2003-10-30  Alan Modra  <amodra@bigpond.net.au>
2048
2049         * config/rs6000/rs6000.md: Remove duplicate pattern.
2050
2051 2003-10-29  Hans-Peter Nilsson  <hp@axis.com>
2052
2053         * real.c (do_divide): Initialize result with a 0.
2054
2055         * configure.in <enable-checking for valgrind>: Look for
2056         <valgrind/memcheck.h> first.  AC_DEFINE HAVE_VALGRIND_MEMCHECK_H
2057         if it exists.
2058         * configure, config.in: Regenerate.
2059         * ggc-common.c [ENABLE_VALGRIND_CHECKING &&
2060         HAVE_VALGRIND_MEMCHECK_H]: Include <valgrind/memcheck.h>.  Use
2061         #elif for other alternatives.
2062         * ggc-page.c: Ditto.
2063         * ggc-zone.c: Don't assume <valgrind/memcheck.h>; instead copy
2064         include structure from ggc-common.c.
2065
2066 2003-10-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2067
2068         * pa-linux.h (ASM_OUTPUT_ADDR_VEC_ELT): Use label in big switch ELTs.
2069         (ASM_OUTPUT_ADDR_DIFF_ELT): Use label difference in big switch ELTs.
2070         * pa.c (pa_adjust_insn_length): Check for btable branches using
2071         attribute TYPE_BTABLE_BRANCH.
2072         (pa_reorg): Simplify.
2073         * pa.h (CASE_VECTOR_MODE): Change big switch mode to SImode.
2074         (ASM_OUTPUT_ADDR_VEC_ELT): As above.
2075         (ASM_OUTPUT_ADDR_DIFF_ELT): As above.
2076         * pa.md (btable_branch): New instruction type.
2077         (in_branch_delay, in_nullified_branch_delay, in_call_delay): Disallow
2078         btable branches.
2079         (define_delay): Add btable branches to insn types that may have an
2080         insn in the delay position.
2081         (Z2, Z3): Add btable branch to list.
2082         Simplify unamed pattern set copy pic_label_operand to register.  Add
2083         PA 2.0 variant.
2084         (short_jump): New jump for use in branch tables.
2085         (casesi, casesi0): Revise for new branch table formats.
2086         (casesi32, casesi32p, casesi64p): New casesi patterns.
2087         (indirect_jump): Move.
2088
2089 2003-10-29  David Edelsohn  <edelsohn@gnu.org>
2090
2091         * config/rs6000/rs6000.h (UNITS_PER_WORD): Revert to
2092         !TARGET_POWERPC64.
2093         (UNITS_PER_GPR_WORD): Delete.
2094         (HARD_REGNO_NREGS): Revert to UNITS_PER_WORD.
2095         (HARD_REGNO_MODE_OK): Same.
2096         (CLASS_MAX_NREGS): Same.
2097
2098 2003-10-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2099
2100         * pa.h (ASM_COMMENT_START): Define.
2101
2102 2003-10-29  Zack Weinberg  <zack@codesourcery.com>
2103
2104         * genmodes.c (complete_mode): Record MODE_CC, MODE_INT,
2105         MODE_FLOAT, and MODE_PARTIAL_INT modes as having one
2106         component, not zero.
2107
2108 2003-10-29  Andreas Schwab  <schwab@suse.de>
2109
2110         * config/ia64/t-ia64 (LIB2ADDEH): Add $(srcdir)/gthr-gnat.c.
2111
2112 2003-10-29  Eric Botcazou  <ebotcazou@libertysurf.fr>
2113
2114         * config/sparc/sparc.c (function_arg_partial_nregs) [TARGET_ARCH64]:
2115         Never return 1 for complex integral modes whose size is lesser or
2116         equal to a word.
2117         (function_arg_pass_by_reference) [TARGET_ARCH64]: Mention CTImode
2118         in the comment.
2119         (function_arg_advance) [TARGET_ARCH64]: Don't special-case complex
2120         modes.
2121         (sparc_va_arg) [TARGET_ARCH64]: Handle any types whose size is
2122         greater than 16 bytes by reference.
2123
2124 2003-10-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2125
2126         * config/ia64/ia64.c (ia64_assemble_integer): Test POINTER_SIZE,
2127         not TARGET_ILP32.
2128         (ia64_initialize_trampoline): Use globalize_label target call.
2129
2130 2003-10-29  Andreas Schwab  <schwab@suse.de>
2131
2132         * doc/install.texi (Building): Add a sentence about building Ada
2133         for a canadian cross.
2134
2135 2003-10-28  Zack Weinberg  <zack@codesourcery.com>
2136
2137         * config/ia64/ia64.c (cmptf_libfunc): New static.
2138         (ia64_expand_compare): Add logic to open-code calls to
2139         _U_Qfcmp for TFmode comparisons.
2140         (ia64_hpux_init_libfuncs): Initialize cmptf_libfunc.
2141         Set libfuncs for TFmode eq/ne/gt/ge/lt/gt to 0; these should
2142         never be generated anymore.
2143         * config/ia64/ia64.md (cmptf): New expander.
2144
2145 2003-10-28  Zack Weinberg  <zack@codesourcery.com>
2146
2147         * ia64.md (UNSPEC_SETF_EXP,UNSPEC_FR_SQRT_RECIP_APPROX): New constants.
2148         (*sqrt_approx): New instruction pattern for approximate square roots.
2149         (*setf_exp_xf): New instruction pattern for exponentiation.
2150         (*maddxf4_alts_truncsf): New instruction pattern for truncation.
2151         (sqrtsf2_internal_thr): New define_and_split implementing
2152         throughput-optimized inline calculation of SFmode square root.
2153         (sqrtdf2_internal_thr): Likewise for DFmode.
2154         (sqrtxf2_internal_thr): Likewise for XFmode.
2155         (sqrtsf2, sqrtdf2, sqrtxf2): New expanders to choose between
2156         latency- and throughput-optimized square root algorithms.
2157         * ia64.h (MASK_INLINE_SQRT_LAT, MASK_INLINE_SQRT_THR,
2158         TARGET_INLINE_SQRT_LAT, TARGET_INLINE_SQRT_THR, TARGET_INLINE_SQRT):
2159         New macros.
2160         (TARGET_SWITCHES): Add -minline-sqrt-min-latency and
2161         -minline-sqrt-max-throughput.
2162         * ia64.c (ia64_override_options): If both -minline-sqrt-min-latency
2163         and -minline-sqrt-max-throughput are given, notify the user
2164         that both options cannot be used simultaneously.
2165         If -minline-sqrt-min-latency is given, notify the user that
2166         this mode is not yet implemented.
2167         (rtx_needs_barrier): Reformat initial comment to obey
2168         72-character width limit.  Support UNSPEC_SETF_EXP and
2169         UNSPEC_FR_SQRT_RECIP_APPROX.
2170
2171 2003-10-29  Alan Modra  <amodra@bigpond.net.au>
2172
2173         * config/rs6000/rs6000.md (movdf_softfloat64): Allow dummy ctr,ctr
2174         moves.
2175
2176 2003-10-28  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
2177
2178         PR target/11598
2179         PR libgcj/10610
2180         * config/rs6000/sysv4.h (PREFERRED_STACK_BOUNDARY): New macro.
2181
2182 2003-10-28  Richard Earnshaw  <rearnsha@arm.com>
2183
2184         * arm.c (arm_output_epilogue): When using a frame pointer, don't emit
2185         an extra stack adjustment insn if the stack pointer is already
2186         pointing at the right place.
2187         (use_return_insn): Allow a return insn to be used when we have a
2188         frame pointer if the stack pointer is in the right place.
2189         (output_return_instruction): Handle it.
2190
2191 2003-10-28  Andreas Jaeger  <aj@suse.de>
2192
2193         * ggc-zone.c (check_cookies): Add missing variable.
2194         Add void to prototypes.
2195
2196 2003-10-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2197
2198         * config/mips/irix6-libc-compat.c (inet_makeaddr): Prototype.
2199         * crtstuff.c (__do_global_ctors_1): Move prototype.
2200         * unwind-dw2.c (NO_SIZE_OF_ENCODED_VALUE): Define when
2201         appropriate.
2202         * unwind-sjlj.c (_Unwind_GetCFA, _Unwind_FindEnclosingFunction):
2203         Mark parameter with __attribute__((unused)).
2204
2205 2003-10-27  Zack Weinberg  <zack@codesourcery.com>
2206
2207         * c-decl.c (pushdecl): Clarify comment.
2208
2209 2003-10-27  Arnaud Charlet  <charlet@act-europe.fr>
2210
2211         * doc/install.texi: Update instructions for Ada cross builds
2212
2213         PR ada/5909:
2214         * doc/sourcebuild.texi: Document Ada test suite.
2215
2216 2003-10-27  Stephane Carrez  <stcarrez@nerim.fr>
2217
2218         * config/m68hc11/m68hc11.c: Convert to ISO C90.
2219         * config/m68hc11/m68hc11-protos.h: Likewise.
2220
2221 2003-10-27  Jan Hubicka  <jh@suse.cz>
2222             Eric Botcazou  <ebotcazou@libertysurf.fr>
2223
2224         * toplev.c (enum dump_file_index, dump_file): Fix ordering of
2225         webizer pass dump.
2226
2227 2003-10-27  Jakub Jelinek  <jakub@redhat.com>
2228             Jan Hubicka  <jh@suse.cz>
2229
2230         * reload1.c (struct elim_table): Change offset, initial_offset and
2231         previous_offset fields to HOST_WIDE_INT.
2232         (offsets_at): Change from int to HOST_WIDE_INT.
2233         (reload): Adjust offsets_at initialization.
2234         (eliminate_regs_in_insn): Change type of offset to HOST_WIDE_INT.
2235         (verify_initial_elim_offsets): Change type of t to HOST_WIDE_INT.
2236         * config/i386/i386.c (ix86_compute_frame_layout): Change offset type
2237         to HOST_WIDE_INT.  Don't save regs using mov for huge frame sizes
2238         if TARGET_64BIT.
2239         (pro_epilogue_adjust_stack): New function.
2240         (ix86_expand_prologue, ix86_expand_epilogue): Use it.
2241         * config/i386/i386.md (pro_epilogue_adjust_stack): Remove.
2242         (pro_epilogue_adjust_stack_1): Remove * in front of name.
2243         (pro_epilogue_adjust_stack_rex64): Handle -2147483648 properly.
2244         (pro_epilogue_adjust_stack_rex64_2): New insn.
2245
2246         * config/i386/i386.c (ix86_expand_epilogue): Fix comment typo.
2247
2248         * config/i386/i386.c (ix86_expand_call): Replace 40 with
2249         FIRST_REX_INT_REG + 3 /* R11 */.
2250
2251 2003-10-26  Richard Henderson  <rth@redhat.com>
2252
2253         * config/alpha/alpha.md (attr cannot_copy): New.
2254         (call_osf_2_er, call_value_osf_2_er, ldgp_er_1, ldgp_er_2,
2255         prologue_ldgp_er_2, prologue_ldgp_1): Set it.
2256         * config/alpha/alpha.c (alpha_cannot_copy_insn_p): Test it.
2257
2258 2003-10-26  Daniel Berlin  <dberlin@dberlin.org>
2259
2260         * ggc-zone.c:  New file, zone allocating collector.
2261         * configure: Accept zone option for --with-gc
2262         * configure.in: Ditto.
2263         * ggc.h (ggc_pch_count_object): Pass bool indicating
2264         stringiness. Update all callers.
2265         (ggc_pch_alloc_object): Ditto.
2266         (ggc_pch_write_object): Ditto.
2267         (ggc_alloc_rtx): Use typed allocation, since all RTX's are of a single
2268         type.
2269         (ggc_alloc_rtvec): Ditto.
2270         (ggc_alloc_tree): Use zone allocation, since some things using this macro
2271         aren't a single typecode.
2272         * ggc-none.c (ggc_alloc_typed): New function.
2273         (ggc_alloc_zone): Ditto.
2274         * ggc-page.c: Ditto on both functions.
2275
2276 2003-10-26  Gunther Nikl  <gni@gecko.de>
2277
2278         * config/m68k/m68k.c (m68k_compute_frame_layout): Ensure FPU related
2279         frame information is always valid.
2280         (m68k_output_function_prologue): Remove superfluous TARGET_68881
2281         test; fix formatting.
2282
2283 2003-10-26  Gunther Nikl  <gni@gecko.de>
2284
2285         * config/m68k/m68k.c (m68k_compute_frame_layout): Swap reg_mask and
2286         reg_rev_mask computation.
2287         (m68k_output_function_prologue): Fix usage of current_frame (one typo
2288         and one missing); use reg_rev_mask not reg_mask.
2289         (m68k_output_function_epilogue): Fix usage of current_frame;
2290         use fpu_rev_mask not fpu_mask.
2291
2292 2003-10-26  Bernardo Innocenti  <bernie@develer.com>
2293
2294         * config/m68k/m68k.c (m68k_output_function_prologue): Eliminate
2295         num_saved_regs, use current_frame.reg_no instead.
2296
2297 2003-10-26  Bernardo Innocenti  <bernie@develer.com>
2298             Paul Dale  <pauli@snapgear.com>
2299
2300         * doc/extend.texi (interrupt_handler): Add m68k to the
2301         list of processors implementing it.
2302         * doc/invoke.texi (-msep-data): Document new m68k option.
2303         (-mno-sep-data): Likewise.
2304         (-mid-shared-library): Likewise.
2305         (-mno-id-shared-library): Likewise.
2306         (-mshared-library-id): Likewise.
2307
2308 2003-10-26  Andreas Jaeger  <aj@suse.de>
2309
2310         * unwind-dw2.c (_Unwind_GetGR): Avoid warning about unsigned
2311         comparison.
2312         (_Unwind_SetGR): Likewise.
2313
2314 2003-10-26  Ottavio Campana <ottavio@campana.vi.it>
2315
2316         PR target/12690
2317         * config/i386/mmintrin.h (_mm_set1_pi8): Fix comment.
2318
2319 2003-10-26  Gunther Nikl  <gni@gecko.de>
2320
2321         * config/m68k/m68k.c (m68k_output_function_prologue): Move front
2322         comment from here to...
2323         (m68k_save_reg): ...here. Fix comment formatting.
2324         (m68k_output_function_prologue): Fix comment formatting.
2325         (m68k_output_function_epilogue): Likewise.
2326         (const_method): Likewise.
2327
2328 2003-10-26  Kazu Hirata  <kazu@cs.umass.edu>
2329
2330         * toplev.c (default_get_pch_validity): Guard the use of
2331         target_options with #ifdef TARGET_OPTIONS.
2332         (default_pch_valid_p): Likewise.
2333
2334 2003-10-26  Andreas Jaeger  <aj@suse.de>
2335             Zack Weinberg  <zack@codesourcery.com>
2336             Andreas Tobler <toa@pop.agri.ch>
2337
2338         * dwarf2out.c (output_cfi): Use HOST_WIDE_INT_PRINT.
2339         (output_die): Likewise.
2340         (print_die): Likewise.
2341
2342 2003-10-26  Andreas Jaeger  <aj@suse.de>
2343
2344         * tree.h (dwarf2out_def_cfa, dwarf2out_args_size,
2345         dwarf2out_reg_save, new_loc_descr): Update prototypes for recent
2346         dwarf2out.c change.
2347
2348         * toplev.c (default_pch_valid_p): Fix warning.
2349
2350 2003-10-25  Roger Sayle  <roger@eyesopen.com>
2351
2352         * simplify-rtx.c (simplify_replace_rtx): Avoid allocating duplicate
2353         RTL nodes.  If an operator's operands are unchanged, return the
2354         original argument unchanged.
2355
2356 2003-10-26  Graham Stott  <graham.stott@btinternet.com>
2357
2358         Fix bootstrap failure.
2359         * expmed.c (store_bit_field): Don't compare bitsize against
2360         modes with zero bit-size.
2361
2362         (extract_bit_field): Likewise
2363
2364 2003-10-25  Jan Hubicka  <jh@suse.cz>
2365
2366         * dwarf2out.c (dw_cfi_oprnd_struct): Offset is HOST_WIDE_INT.
2367         (cfa_loc): Likewise.
2368         (reg_save, stack_adjust_offset, queue_reg_save): Replace long by
2369         HOST_WIDE_INT.
2370         (args_size, old_args_size): change type to HOST_WIDE_INT.
2371         (dwarf2out_def_cfa, dwarf2out_args_size,
2372         dwarf2out_reg_save, new_loc_descr): offset is HOST_WIDE_INT.
2373         (dw_val_struct): integers, unsigneds and offsets are HOST_WIDE_INT.
2374         (add_AT_int, add_AT_unsigned, att_AT_offset, AT_int, AT_unsigned,
2375         AT_offset): Use HOST_WIDE_INT.
2376         (based_loc_descr): offset is HOST_WIDE_INT.
2377         (add_data_member): Likewise.
2378         (add_const_value_attribute): Simplify.
2379
2380 2003-10-25  Richard Henderson  <rth@redhat.com>
2381
2382         * config/i386/i386.c (ix86_eax_live_at_start_p): New.
2383         (ix86_expand_prologue): Save and restore eax around stack probe
2384         if it's live.
2385
2386 2003-10-25  Jan Hubicka  <jh@suse.cz>
2387
2388         * cppcharset.c (one_utf8_to_utf32): Initialize 's' to silence warning.
2389
2390 2003-10-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
2391
2392         PR target/12712
2393         * reg-stack.c (convert_regs_1): Create an arbitrary input stack
2394         if the block has no predecessors.
2395         (convert_regs_2): Document the problem with successors whose
2396         only predecessor is the block to be processed.
2397         (convert_regs): Don't create the arbitrary input stack here.
2398
2399 2003-10-24  Zack Weinberg  <zack@codesourcery.com>
2400
2401         * genmodes.c (struct mode_data): Add contained and next_cont
2402         fields.
2403         (complete_mode): Maintain linked list of modes that have a
2404         given component.
2405         (emit_mode_unit_size): Delete.
2406         (emit_mode_nunits): New.
2407         (emit_insn_modes_c): Update to match.
2408         (emit_mode_adjustments): Propagate size and alignment
2409         adjustments from component modes to their containers.
2410         * machmode.h (mode_unit_size): Delete.
2411         (mode_nunits): New.
2412         (GET_MODE_NUNITS): Just return the value in the table.
2413         (GET_MODE_UNIT_SIZE): Compute using GET_MODE_INNER and
2414         GET_MODE_SIZE.
2415         * expmed.c (store_bit_field, extract_bit_field): Can use a
2416         plain move instruction if bitsize >= GET_MODE_BITSIZE of
2417         destination/source mode, respectively.
2418         * varasm.c (assemble_real): Write out the full size of the
2419         constant, not just its bitsize.
2420         (output_constant): Honor TYPE_MODE of TREE_REAL_CSTs.
2421
2422         * config/ia64/ia64-modes.def: Define XFmode as well as TFmode.
2423         Use ADJUST_BYTESIZE and ADJUST_ALIGNMENT to set size and
2424         alignment of XF and TF modes in compliance with ia64 ABIs.
2425         Can now hardwire the format of both modes.
2426         * config/ia64/ia64.c: Change TFmode to XFmode wherever appropriate.
2427         (general_tfmode_operand, destination_tfmode_operand)
2428         (tfreg_or_fp01_operand, spill_tfmode_operand): Rename to
2429         general_xfmode_operand, destination_xfmode_operand,
2430         xfreg_or_fp01_operand, spill_xfmode_operand respectively.
2431         (ia64_init_builtins): Make TYPE_PRECISION of fpreg_type
2432         and float80_type be 96 so they get XFmode.  Use !TARGET_HPUX,
2433         not INTEL_EXTENDED_IEEE_FORMAT, to decide how to define
2434         __float128.
2435         * config/ia64/ia64.h: Default TARGET_HPUX to 0.
2436         Change TFmode to XFmode wherever appropriate.  Remove all
2437         references to INTEL_EXTENDED_IEEE_FORMAT.
2438         (LONG_DOUBLE_TYPE_SIZE): Varies with TARGET_HPUX.
2439         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define (always 96).
2440         (PREDICATE_CODES): Update to match function renames.
2441         * config/ia64/ia64.md: Change TF to XF throughout; rename all
2442         patterns to match.  Remove all references to
2443         INTEL_EXTENDED_IEEE_FORMAT.  Update predicate calls to match
2444         function renames.
2445         * config/ia64/ia64-protos.c: Update all prototypes to match
2446         renamed functions.
2447         * config/ia64/hpux.h: Redefine TARGET_HPUX to 1.
2448         Remove all references to INTEL_EXTENDED_IEEE_FORMAT.
2449         * config/ia64/lib1funcs.asm: Add __divxf3 as new name for
2450         __divtf3; keep old name for backward compatibility.
2451         (L__compat): New section providing forwarding stubs for
2452         __fixtfti, __fixunstfti, __floattitf.
2453         * config/ia64/t-ia64: Add __compat to LIB1ASMFUNCS.
2454
2455 2003-10-24  Geoffrey Keating  <geoffk@apple.com>
2456
2457         PR 10757
2458         * c-pch.c: Include target.h.  Improve comments.
2459         (struct c_pch_validity): Add target_data_length.
2460         (pch_init): Add target's validity data.
2461         (c_common_valid_pch): Check target's validity data.
2462         * target-def.h (TARGET_GET_PCH_VALIDITY): New.
2463         (TARGET_PCH_VALID_P): New.
2464         (TARGET_INITIALIZER): Add new fields.
2465         * target.h: Include tm.h.
2466         (struct gcc_target): Add get_pch_validity, pch_valid_p.
2467         * toplev.h (default_get_pch_validity): New prototype.
2468         (default_pch_valid_p): New prototype.
2469         * toplev.c (default_get_pch_validity): New routine.
2470         (default_pch_valid_p): New routine.
2471         * Makefile.in (TARGET_H): Add TM_H.  Replace all users of
2472         target.h with $(TARGET_H).
2473         (c-pch.o): Add TARGET_H.
2474         * doc/tm.texi (PCH Target): New node.
2475         (TARGET_GET_PCH_VALIDITY): Document.
2476         (TARGET_PCH_VALID_P): Document.
2477
2478 2003-10-24  Kelley Cook  <kcook@gcc.gnu.org>
2479
2480         * Makefile.in: Define a vpath for %.texi.  Remove explicit $(docdir)
2481         and $(docdir)/include from any *.texi dependencies.
2482         ($(docobjdir)/%.dvi): Depend on stmp-docobjdir.
2483         ($(docobjdir)/%.1): Depend on .pod instead of .texi.
2484         ($(docobjdir)/%.7): Likewise.
2485         (%.pod): New implicit rule.
2486         (cpp.pod): New dependency only rule.
2487         (gcc.pod): New intermediate rule with dependencies and commands.
2488         (gfdl.pod): Likewise.
2489         (fsf-funding.pod): Likewise.
2490
2491 2003-10-24  Nathanael Nerode  <neroden@gcc.gnu.org>
2492
2493         * fixinc/mkfixinc.sh: Remove special cases for svr4 and ptx, and
2494         related code.
2495         * fixinc/fixinc.ptx: Remove.
2496         * fixinc/fixinc.svr4: Remove.
2497
2498 2003-10-24  Ulrich Weigand  <uweigand@de.ibm.com>
2499
2500         * config/s390/s390.c (load_multiple_operation): Allow both SImode
2501         and DImode if word_mode is DImode.
2502         (store_multiple_operation): Likewise.
2503         * config/s390/s390.md ("load_multiple", "store_multiple"): Likewise.
2504         ("*load_multiple_di"): Allow only if word_mode == DImode.
2505         ("movqi"): Use LLGC whenever TARGET_ZARCH.
2506         ("fix_truncdfsi2"): Fix incorrect temporary size.
2507         ("fix_truncsfsi2"): Likewise.
2508         ("*bras_r", "*brasl_r", "*basr_r"): Remove predicate and constraint
2509         string for function return value operand.
2510         ("*bras_tls", "*brasl_tls", "*basr_tls"): Likewise.
2511
2512 2003-10-24  Joseph S. Myers  <jsm@polyomino.org.uk>
2513
2514         * c-parse.in (array_declarator): Use expr_no_commas.
2515         Fixes PR c/11943.
2516
2517 2003-10-24  Richard Sandiford  <rsandifo@redhat.com>
2518
2519         * config/mips/linux.h: Wrap MD_FALLBACK_FRAME_STATE_FOR and
2520         associated includes in #ifndef inhibit_libc.
2521
2522 2003-10-24  Roger Sayle  <roger@eyesopen.com>
2523
2524         * doc/libgcc.texi: Document some more of the libgcc API.
2525
2526 2003-10-24  Richard Earnshaw  <rearnsha@arm.com>
2527
2528         * arm.c (arm_rtx_costs_1, case TARGET_THUMB): Adjust costs for
2529         comparing a constant with small negative numbers and add costing
2530         for constants in conjunction with AND.
2531         (note_invalid_constants): Tidy previous change.
2532         (thumb_cmp_operand): Tidy.
2533         (thumb_cmpneg_operand): New function.
2534         * arm.h (CONDITIONAL_REGISTER_USAGE): Don't use HI regs if optimizing
2535         for size.
2536         (FIRST_LO_REGNUM, FIRST_HI_REGNUM, LAST_HI_REGNUM): Define.
2537         (PREDICATE_CODES): Add thumb_cmpneg_operand.
2538         * arm.md (cbranchsi4): Convert to define_expand.  Handle comparison
2539         with a negative constant.
2540         (cbranchsi4_insn): Matcher for cbranchsi4.
2541         (cbranchsi4_scratch): Similar, but a scratch is available for
2542         handling negative constants.
2543         (movsi_cbranchsi4): New pattern.
2544         (tstsi3_cbranch): Renamed from andsi3_cbranch_scratch, remove scratch
2545         and use the TST instruction.
2546         (andsi3_cbranch, orrsi3_cbranch, xorsi3_cbranch, cbranchne_decr1)
2547         (addsi3_cbranch, subsi3_cbranch): Ensure that register preferencing
2548         cannot see high regs or memory alternatives.
2549         (bicsi3_cbranch_scratch, bicsi3_cbranch): New patterns.
2550
2551 2003-10-24  Richard Earnshaw  <rearnsha@arm.com>
2552
2553         * arm.c (note_invalid_constants): Try to extract the constant
2554         pool value using avoid_constant_pool_reference; only use
2555         get_pool_constant if that returns the original reference.
2556
2557 2003-10-24  Jan Hubicka  <jh@suse.cz>
2558
2559         PR c++/12624
2560         * varasm.c (notice_global_symbol): Disqualify global registers.
2561
2562 2003-10-23  Roger Sayle  <roger@eyesopen.com>
2563
2564         PR middle-end/11414
2565         * loop.c (load_mems): Use redirect_jump to forward jumps from
2566         the original loop end label to the new "loop sink" block's label.
2567
2568 2003-10-23  Roger Sayle  <roger@eyesopen.com>
2569
2570         PR middle-end/12705
2571         * optabs.c (expand_binop): When expanding complex operations
2572         inline, always calculate result into a new temporary register.
2573         Minor code clean-ups.
2574
2575 2003-10-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2576
2577         * objc/lang-specs.h: Handle -print-objc-runtime-info.
2578         * doc/invoke.texi (Objective-C Dialect Options): Document it.
2579
2580 2003-10-24  Danny Smith  <dannysmith@users.sourceforge.net>
2581
2582         * config/i386/cygwin.asm: Add copyright notice. Add comment
2583         on why this code is needed.
2584
2585 2003-10-23  Kazu Hirata  <kazu@cs.umass.edu>
2586
2587         * config/h8300/clzhi2.c: Fix warnings.
2588         * config/h8300/ctzhi2.c: Likewise.
2589         * config/h8300/fixunssfsi.c: Likewise.
2590         * config/h8300/parityhi2.c: Likewise.
2591         * config/h8300/popcounthi2.c: Likewise.
2592
2593 2003-10-23  James E Wilson  <wilson@specifixinc.com>
2594
2595         * gcc.c (option_map): Delete --target and --use-version.
2596
2597 2003-10-23  Fariborz Jahanian  <fjahanian@apple.com>
2598             David Edelsohn  <edelsohn@gnu.org>
2599
2600         * config/rs6000/rs6000.h (UNITS_PER_WORD): Use TARGET_32BIT, not
2601         TARGET_POWREPC64.
2602         (UNITS_PER_GPR_WORD): Define.
2603         (HARD_REGNO_NREGS): Use UNITS_PER_GPR_WORD.
2604         (HARD_REGNO_CALL_PART_CLOBBERED): Define.
2605         (HARD_REGNO_MODE_OK): Use UNITS_PER_GPR_WORD.
2606         (CLASS_MAX_NREGS): Use UNITS_PER_GPR_WORD.
2607         * config/rs6000/rs6000.c (function_arg): Generate PARALLEL for
2608         DFmode and DImode in 32-bit ABI / 64-bit computation mode.
2609         (rs6000_emit_prologue): Select reg_mode and reg_size using
2610         TARGET_32BIT, not TARGET_POWERPC64.
2611         (rs6000_function_value): Generate PARALLEL for DImode in 32-bit
2612         ABI / 64-bit computation mode
2613
2614 2003-10-22  Andrew Haley  <aph@redhat.com>
2615
2616         * toplev.c (output_file_directive): Allow for null input_name.
2617
2618 2003-10-22  Waldek Hebisch <hebisch@math.uni.wroc.pl>
2619
2620         * config/i386/i386.c (classify_argument): Handle SET_TYPE.
2621
2622 2003-10-22  Chris Demetriou  <cgd@broadcom.com>
2623
2624         * configure.in: In --enable-generated-files-in-srcdir option
2625         handling, fix default case handling.
2626         * configure: Regenerate.
2627
2628 2003-10-22  Phil Edwards  <phil@codesourcery.com>
2629
2630         * config.gcc:  Update *-*-vxworks* generic hook and comments.
2631         (arm-wrs-vxworks, i[4567]86-wrs-vxworks, mips-wrs-vxworks,
2632         mips-wrs-windiss, sh-wrs-vxworks):  New stanzas.
2633         * genmultilib:  Allow the MULTILIB_OSDIRNAMES to be mapped directly.
2634         * config/svr4.h (SWITCH_TAKES_ARG):  Undefine it before redefining it.
2635         * config/windiss.h:  New file.
2636         * config/arm/t-vxworks:  New file.
2637         * config/arm/vxworks.h:  New file.
2638         * config/i386/t-vxworks:  New file.
2639         * config/i386/vxworks.h:  New file.
2640         * config/mips/t-vxworks:  New file.
2641         * config/mips/vxworks.h:  New file.
2642         * config/mips/windiss.h:  New file.
2643         * config/sh/t-vxworks:  New file.
2644         * config/sh/vxworks.h:  New file.
2645
2646 2003-10-22  Kazu Hirata  <kazu@cs.umass.edu>
2647
2648         * config/h8300/h8300.c (h8300_output_function_epilogue): Remove.
2649         (h8300_saveall_function_p): New.
2650         (h8300_insert_attributes): Insert the saveall attribute if
2651         #pragma saveall is specified.
2652         (h8300_attribute_table): Add saveall.
2653         (TARGET_ASM_FUNCTION_EPILOGUE): Remove.
2654         * doc/extend.texi: Mention the saveall attribute.
2655
2656 2003-10-22  Joseph S. Myers  <jsm@polyomino.org.uk>
2657
2658         * c-typeck.c (pedantic_lvalue_warning): Unconditionally warn of
2659         deprecation of casts as lvalues.
2660         * fixinc/inclhack.def (obstack_lvalue_cast): New fix.
2661         * fixinc/fixincl.x: Regenerate.
2662         * fixinc/tests/base/obstack.h: New test.
2663
2664 2003-10-22  Andreas Schwab  <schwab@suse.de>
2665
2666         PR target/12676
2667         * config/m68k/m68k.c (output_addsi3): Fix range check to work on
2668         LP64 platforms.
2669
2670 2003-10-22  Jan Hubicka  <jh@suse.cz>
2671
2672         * dwarf2out.c (dwarf2out_abstract_function): Use DW_AT to check
2673         presence of DW_AT_inline.
2674         (gen_subprogram_die): Likewise; do not abort instead of emitting
2675         DW_AT_not_inline.
2676
2677 2003-10-22  Jan Hubicka  <jh@suse.cz>
2678
2679         * cgraph.c (cgraph_function_possibly_inlined_p): Be conservative when
2680         global info is not ready.
2681
2682 2003-10-22  Kazu Hirata  <kazu@cs.umass.edu>
2683
2684         * doc/extend.texi: Mention H8S wherever H8/300H is mentioned.
2685
2686 2003-10-22  Ulrich Weigand  <uweigand@de.ibm.com>
2687
2688         * config/s390/s390.md ("movstr_short_64", "movstr_short_31"): Merge ...
2689         ("*movstr_short"): ... into this insn pattern.
2690         ("movstr_short"): New expander.
2691         ("*movstr_long_64"): Rename from "movstr_long_64", simplify.
2692         ("*movstr_long_31"): Rename from "movstr_long_31", simplify.
2693         ("movstr_long"): New expander.
2694         ("clrstr_short_64", "clrstr_short_31"): Merge ...
2695         ("*clrstr_short"): ... into this insn pattern.
2696         ("clrstr_short"): New expander.
2697         ("*clrstr_long_64"): Rename from "clrstr_long_64", simplify.
2698         ("*clrstr_long_31"): Rename from "clrstr_long_31", simplify.
2699         ("clrstr_long"): New expander.
2700         ("cmpmem_short_64", "cmpmem_short_31"): Merge ...
2701         ("*cmpmem_short"): ... into this insn pattern.
2702         ("cmpmem_short"): New expander.
2703         ("*cmpmem_long_64"): Rename from "cmpmem_long_64".
2704         ("*cmpmem_long_31"): Rename from "cmpmem_long_31".
2705         ("cmpmem_long"): New expander.
2706         * config/s390/s390.c (s390_expand_movstr): Use new expanders.
2707         (s390_expand_clrstr): Likewise.
2708         (s390_expand_cmpmem): Likewise.
2709
2710 2003-10-22  Mark Mitchell  <mark@codesourcery.com>
2711
2712         * c-pch.c (struct c_pch_validity): Add pch_init field.
2713         (pch_init): Set it.
2714         (c_common_valid_pch): Check it.
2715
2716 2003-10-22  David Taylor <dtaylor@emc.com>
2717
2718         PR debug/12500
2719         * dbxout.c (dbxout_typedefs): Use COMPLETE_OR_VOID_TYPE_P.
2720
2721 2003-10-22  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2722
2723         * config/alpha/alpha.c (function_value [ENABLE_CHECKING]): Don't call
2724         alpha_return_in_memory if no VALTYPE specified.
2725
2726 2003-10-22  Jan Hubicka  <jh@suse.cz>
2727
2728         PR debug/12389
2729         * Makefile.in (dwarf2out.o): Depend on cgraph.h.
2730         * cgraph.c (cgraph_function_possibly_inlined_p): New function.
2731         * cgraph.h (cgraph_function_possibly_inlined_p): Declare.
2732         (cgraph_global_info): Add flag inlined
2733         * dwarf2out.c (gen_subprogram_die, gen_decl_die): Use
2734         cgraph_function_possibly_inded_p
2735         * cgraphunit.c (mark_inline): Set inlined flag.
2736         * toplev.c (rest_of_decl_compilation): Call outlining_inline_function
2737         only for possibly inlined functions.
2738         * c-decl.c (duplicate_decls): Never output abstract DIE representing old
2739         body of function.
2740
2741 2003-10-22  Andrew Haley  <aph@redhat.com>
2742
2743         * varasm.c (output_constructor): Make constructor annotation
2744         conditional on ASM_COMMENT_START.
2745
2746 2003-10-21  Jason Merrill  <jason@redhat.com>
2747
2748         * tree.c (get_unwidened): Check TREE_UNSIGNED on the field's type.
2749         (get_narrower): Likewise.
2750
2751         * stor-layout.c (layout_decl): Do packed field alignment for
2752         bit-fields, too.
2753
2754 2003-10-21  Eric Christopher  <echristo@redhat.com>
2755
2756         * expr.c (convert_move): Use FLOAT_EXTEND for extensions.
2757
2758 2003-10-21  Geoffrey Keating  <geoffk@apple.com>
2759
2760         * c-pch.c: Add comments in various places.
2761         (struct c_pch_validity): Add the lengths of various strings.
2762         (host_machine): New static.
2763         (target_machine): New static.
2764         (get_ident): Bump version number.
2765         (pch_init): Write out version, host, target validity data.
2766         (c_common_valid_pch): Check version, host, target.
2767         * Makefile.in (c-pch.o): Add version.h; define HOST_MACHINE and
2768         TARGET_MACHINE.
2769
2770 2003-10-21  Jason Merrill  <jason@redhat.com>
2771
2772         * tree.h (IS_EXPR_CODE_CLASS): Use strchr.
2773         (EXPR_P): New macro.
2774
2775 2003-10-21  Zack Weinberg  <zack@codesourcery.com>
2776
2777         * config/ia64/ia64.md (cmpxchg_acq_si): Mark operand 3 as DImode.
2778         * config/ia64/ia64.c (ia64_expand_fetch_and_op,
2779         ia64_expand_op_and_fetch): Make sure the REG for ar.ccv is
2780         DImode.   Use convert_move to load ar.ccv.
2781         (ia64_expand_compare_and_swap): Likewise.
2782         If expand_expr doesn't put 'old' and 'new' in the proper
2783         modes, run them through convert_to_mode.
2784
2785 2003-10-21  Eric Christopher  <echristo@redhat.com>
2786
2787         * config/frv/frv.c (frv_adjust_field_align): Check DECL_ARTIFICIAL
2788         for too large bitfields.
2789
2790 2003-10-21  Mark Mitchell  <mark@codesourcery.com>
2791
2792         * Makefile.in ($(docobjdir)/%.info): Honor BUILD_INFO.
2793
2794 2003-10-21  Andrew Haley  <aph@redhat.com>
2795
2796         * varasm.c (output_constructor): Annotate constructor.
2797
2798 2003-10-21  Mark Mitchell  <mark@codesourcery.com>
2799
2800         * Makefile.in ($(DESTDIR)$(infodir)/%.info): Conditionalize chmod
2801         on existence of destination file.
2802
2803 2003-10-21  Jan Hubicka  <jh@suse.cz>
2804
2805         * haifa-sched.c (choose_ready): Initialize index.
2806
2807 2003-10-21  Jason Merrill  <jason@redhat.com>
2808
2809         * tree.c (build1): Fix off-by-one error.
2810
2811 2003-10-21  Robert Millan  <robertmh@gnu.org>
2812
2813         * config/i386/kfreebsdgnu.h: New. i386-*-kfreebsd-gnu definitions.
2814         * config/kfreebsdgnu.h: New. *-*-kfreebsd-gnu definitions.
2815         * config/t-kfreebsd-gnu: New. *-*-kfreebsd-gnu tmake_file.
2816         * config.gcc: Add *-*-kfreebsd*-gnu and i[34567]86-*-kfreebsd*-gnu.
2817
2818 2003-10-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
2819
2820         * web.c: Fix various comments.
2821
2822 2003-10-20  Nicolas Pitre <nico@cam.org>
2823
2824         * config/arm/arm.c (arm_override_options): Set arm_constant_limit
2825         to 2 instead of 1 when optimize_size is true.  Gather code based on
2826         optimize_size together.  Add comment about XScale load latency.
2827
2828 2003-10-21  Gunther Nikl  <gni@gecko.de>
2829
2830         * config/m68k/m68k.c (m68k_output_function_prologue): Remove
2831         obsolete comments.
2832
2833 2003-10-20  Kelley Cook  <kcook@gcc.gnu.org>
2834
2835         * Makefile.in: Get parsedir and docobjdir from configure.
2836         * configure.in: Recogonize --enable-generated-files-in-srcdir.
2837         Pass along parsedir and docobjdir.
2838         * configure: Regenerate.
2839         * doc/install.texi: Document --enable-generated-files-in-srcdir.
2840
2841 2003-10-20  Kelley Cook  <kcook@gcc.gnu.org>
2842
2843         * Makefile.in: Define $(docdir) before the Make-lang.in fragments are
2844         included.
2845
2846 2003-10-20  Joseph S. Myers  <jsm@polyomino.org.uk>
2847
2848         * c-common.c (expand_tree_builtin): Ensure creal and cimag
2849         functions do not return lvalues.
2850
2851 2003-10-20  Jason Merrill  <jason@redhat.com>
2852
2853         PR c/12553
2854         * tree.c (build1) <ADDR_EXPR>: Set TREE_SIDE_EFFECTS
2855         appropriately.
2856
2857         PR c/11446
2858         * stor-layout.c (layout_decl): Fix alignment handling.
2859
2860 2003-10-20  Joseph S. Myers  <jsm@polyomino.org.uk>
2861
2862         * doc/extend.texi: Deprecate casts as lvalues.
2863
2864 2003-10-20  Jan Hubicka  <jh@suse.cz>
2865
2866         * toplev.c (rest_of_compilation): Fix webizer pass ordering.
2867
2868         * cgraphunit.c (decide_is_function_needed):  Fix test dealing
2869         with functions implicitly made inline.
2870
2871         * cgraphunit.c (cgraph_decide_inlining_incrementally):  New function.
2872         (cgraph_finalize_function): Use it.
2873         (cgraph_mark_inline): Allow incrmental decisions
2874         * invoke.texi (max-inline-slope, min-inline-insns): Kill.
2875         * params.def (PARAM_MAX_INLINE_SLOPE, PARAM_MIN_INLINE_INSNS): Kill.
2876         * tree-inline.c (limits_allow_inlining): Kill.
2877         (expand_call_inline): Always use unit-at-a-time path.
2878
2879 2003-10-20  Zack Weinberg  <zack@codesourcery.com>
2880
2881         * fixinc/inclhack.def (hpux11_snprintf): New edit.
2882         * fixinc/fixincl.x: Regenerate.
2883         * fixinc/tests/base/stdio.h: Add test for hpux11_snprintf.
2884
2885 2003-10-20  Mark Mitchell  <mark@codesourcery.com>
2886
2887         * Makefile.in (install-info): Simplify.
2888         ($(DESTDIR)$(infodir)/%.info): New rule.
2889         * configure.in (target_list): Remove install-info.
2890         * doc/.cvsignore (gcc.info*): Remove.
2891         (gccint.info*): Likewise.
2892         (gccinstall.info*): Likewise.
2893         (cpp.info*): Likewise.
2894         (cppinternals.info*): Likewise.
2895         (*.info*): Add it.
2896         * doc/sourcebuild.texi: Update description of install-info.
2897         * objc/Make-lang.in (objc.install-info): Remove.
2898
2899 2003-10-20  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2900
2901         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Define _ABIO32.
2902         Use it in _MIPS_SIM definition.
2903         * config/mips/mips.h (CRT_CALL_STATIC_FUNCTION): Likewise.
2904
2905 2003-10-20  Zack Weinberg  <zack@codesourcery.com>
2906
2907         * config/i386/i386.c (print_reg): Abort if REGNO (x) is a
2908         virtual register, but only if file == asm_out_file.
2909         * config/i386/i386.h (HI_REGISTER_NAMES): Use "argp", not "",
2910         for ARG_POINTER_REGNUM.
2911
2912 2003-10-20  Zack Weinberg  <zack@codesourcery.com>
2913
2914         * c-common.c (registered_builtin_types): New static.
2915         (c_common_type_for_mode): Consult registered_builtin_types.
2916         (c_register_builtin_type): Add type to registered_builtin_types.
2917         * optabs.c (init_floating_libfuncs): Initialize libfuncs for
2918         all MODE_FLOAT modes, not just the ones corresponding to
2919         float_type_node, double_type_node, and long_double_type_node.
2920
2921 2003-10-20  Richard Henderson  <rth@redhat.com>
2922
2923         * config/alpha/alpha.h (PREDICATE_CODES): Add normal_memory_operand.
2924         * config/alpha/alpha-protos.h: Remove PREDICATE_CODES prototypes.
2925
2926 2003-10-20  Dorit Naishlos  <dorit@il.ibm.com>
2927
2928         * config/rs6000/rs6000.h: (rs6000_sched_insert_nops):
2929         support new flag -minsert-sched-nops.
2930         (DEFAULT_SCHED_FINISH_NOP_INSERTION_SCHEME): Define.
2931         * config/rs6000/rs6000.c: (rs6000_sched_insert_nops):
2932         support new flag -minsert-sched-nops.
2933         (is_cracked_insn, is_microcoded_insn): New functions.
2934         (rs6000_sched_finish): New function.
2935         (rs6000_issue_rate): Return 5 for power4.
2936         (get_next_active_insn, insn_terminates_group_p): New
2937         functions.
2938         (is_costly_group, force_new_group): New functions.
2939         (redefine_groups, pad_groups): New functions.
2940         (rs6000_variable_issue): Use new functions.
2941         * doc/invoke.texi (-minsert-sched-nops): Document new
2942         option.
2943
2944 2003-10-20  David S. Miller  <davem@redhat.com>
2945
2946         * config/sparc/sparc.md (type attribute): Add new insn types
2947         fpa, fpm_pack, fgm_mul, fgm_pdist, and fgm_cmp for VIS.
2948         (patterns emitting VIS insns): Use them.
2949         * config/sparc/ultra1_2.md: Add VIS scheduling rules.
2950         * config/sparc/ultra3.md: Likewise.
2951
2952 2003-10-20  Falk Hueffner  <falk@debian.org>
2953
2954         PR target/12654
2955         * config/alpha/alpha.c (alpha_emit_conditional_branch): Don't do
2956         comparison against constant by adjusting the argument except for
2957         EQ and NE.
2958
2959 2003-10-19  Mark Mitchell  <mark@codesourcery.com>
2960
2961         * config.gcc: Add support for arm926ejs, arm1026ejs, arm1136js,
2962         arm1136jfs, and armv6j.
2963         * config/arm/arm.c (FL_ARCH6J): New macro.
2964         (FL_VFPV2): Likewise.
2965         (all_cores): Add entries for arm926ejs, arm1026ejs, arm1136js,
2966         and arm1136jfs.
2967         (all_architectures): Add entry for armv6j.
2968         (arm_override_options): Add entries for arm926ejs, arm1026ejs,
2969         arm1136js, and arm1136jfs.
2970         * config/arm/arm.h (TARGET_CPU_arm926ej_s): New macro.
2971         (TARGET_CPU_arm1026ej_s): Likewise.
2972         (TARGET_CPU_arm1136j_s): Likewise.
2973         (TARGET_CPU_arm1136jf_s): Likewise.
2974         * doc/invoke.texi: Document new ARM cores and architecture
2975         variants.
2976
2977 2003-10-19  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2978
2979         * Makefile.in (toplev.o): Add value-prof.h dependency.
2980         (value-prof.o): Add REGS_H dependency.
2981         * common.opt (fprofile-values, fvpt): New.
2982         * flags.h (flag_value_profile_transformations): Declare.
2983         * opts.c (common_handle_option): Handle -fprofile_values and
2984         -fvpt.
2985         * profile.c (branch_prob): Don't remove death notes here.
2986         * timevar.def (TV_VPT): New.
2987         * value-prof.c: Include regs.h.
2988         (insn_divmod_values_to_profile, gen_divmod_fixed_value, gen_mod_pow2,
2989         gen_mod_subtract, divmod_fixed_value_transform,mod_pow2_value_transform,
2990         mod_subtract_transform, value_profile_transformations): New.
2991         (insn_values_to_profile): Call insn_divmod_values_to_profile.
2992         (find_values_to_profile): Add dumps.
2993         * value-prof.h (value_profile_transformations): Declare.
2994         * toplev.c: Include value-prof.h.
2995         (rest_of_handle_value_profile_transformations): New.
2996         (enum dump_file_index): Add DFI_vpt.
2997         (dump_file): Add vpt dump.
2998         (flag_value_profile_transformations): New.
2999         (lang_independent_options): Add flag_profile_values and
3000         flag_value_profile_transformations.
3001         (rest_of_compilation): Call
3002         rest_of_handle_value_profile_transformations.
3003         (process_options): Let -fvpt imply -fprofile-values.
3004         * doc/invoke.texi (-fvpt): Document.
3005
3006 2003-10-19  Jan Hubicka  <jh@suse.cz>
3007
3008         * i386.c (print_reg): Do not abort on certain registers.
3009
3010         PR optimization/12612
3011         * reg-stack.c (subst_stack_regs_pat):  Use st(1) for clobbers.
3012         * i386.md (fpatan, fyl2x, fscale patterns and expanders): Use
3013         match_scratch; avoid bogus paralles.
3014
3015         PR target/12674
3016         * i386.c (ix86_function_regparm): Disable implicit register passing
3017         conventions when profiling.
3018
3019 2003-10-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
3020             Richard Henderson  <rth@redhat.com>
3021
3022         PR optimization/8178
3023         * config/i386/i386.md (*movsi_zero): Delete.
3024         (*ffs_no_cmove): Use ix86_expand_clear to zero the third operand.
3025
3026 2003-10-19  Richard Henderson  <rth@redhat.com>
3027
3028         * config/alpha/alpha.c (fix_operator): New.
3029         (divmod_operator): Tidy.
3030         (alpha_emit_xfloating_cvt): Handle UNSIGNED_FIX.
3031         * config/alpha/alpha.h (FIXUNS_TRUNC_LIKE_FIX_TRUNC): Remove.
3032         (PREDICATE_CODES): Update.
3033         * config/alpha/alpha.md (fix_truncdfsi_ieee): Use match_operator.
3034         (fix_truncdfsi_internal, fix_truncdfdi_ieee): Likewise.
3035         (fix_truncsfsi_ieee, fix_truncsfsi_internal): Likewise.
3036         (fix_truncsfdi_ieee): Likewise.
3037         (fix_truncdfdi2, fix_truncsfdi2): Turn into define_expand.
3038         (fixuns_truncdfdi2, fixuns_truncsfdi2, fixuns_trunctfdi2): New.
3039         * config/alpha/alpha-protos.h: Update.
3040
3041 2003-10-19  Richard Sandiford  <rsandifo@redhat.com>
3042
3043         * config/mips/mips.h (INITIALIZE_TRAMPOLINE): Simplify.
3044         * config/mips/mips.c (mips_load_got): Assume Pmode == ptr_mode.
3045         * config/mips/mips.md (extendsidi2, *extendsidi2): Merge. Don't accept
3046         constant operands.
3047
3048 2003-10-18  Kazu Hirata  <kazu@cs.umass.edu>
3049
3050         * doc/extend.texi: Fix typos.
3051         * doc/invoke.texi: Likewise.
3052
3053 2003-10-18  Nicolas Pitre <nico@cam.org>
3054
3055         * config/arm/arm.c (arm_override_options): Use arm_tune_xscale for
3056         XScale optimizations not arm_arch_xscale.
3057         * config/arm/arm.h (CONSTANT_ALIGNMENT_FACTOR, MOVE_RATIO): Likewise.
3058
3059 2003-10-18  Ulrich Weigand  <uweigand@de.ibm.com>
3060
3061         * config/s390/s390-protos.h (shift_count_operand): Add prototype.
3062         * config/s390/s390.c (shift_count_operand): New function.
3063         (s390_extra_constraint): Use it to implement 'Y' constraint.
3064         (print_shift_count_operand): New function.
3065         (print_operand): Use it to implement '%Y'.
3066         * config/s390/s390.h (EXTRA_ADDRESS_CONSTRAINT): Add 'Y' constraint.
3067         (PREDICATE_CODES): Add shift_count_operand.
3068         * config/s390/s390.md ("rotldi3"): Merge alternatives,
3069         using "shift_count_operand" predicate and "Y" constraint,
3070         and "%Y" to output the combined shift count.
3071         ("rotlsi3"): Likewise.
3072         ("ashldi3", "*ashldi3_31", "*ashldi3_64"): Likewise.
3073         ("ashrdi3", "*ashrdi3_31", "*ashrdi3_64", "*ashrdi3_cc_31",
3074         "*ashrdi3_cc_64", "*ashrdi3_cconly_31", "*ashrdi3_cconly_64"): Likewise.
3075         ("ashlsi3", "ashrsi3", "*ashrsi3_cc", "*ashrsi3_cconly"): Likewise.
3076         ("lshrdi3", "*lshrdi3_31", "*lshrdi3_64"): Likewise.
3077         ("lshrsi3"): Likewise.
3078
3079 2003-10-18  Gunther Nikl  <gni@gecko.de>
3080
3081         * config/m68k/m68k.c (m68k_output_function_epilogue): Add missing
3082         argument to asm_fprintf statement.
3083
3084 2003-10-18  Fariborz Jahanian  <fjahanian@apple.com>
3085
3086         * rs6000.md: Separate TARGET_POWERPC64 patterns for TARGET_64BIT or TARGET_32BIT.
3087         (ashrdisi3_noppc64) Generate more efficient code for 32-bit right-shift of
3088         a "long long" argument.
3089
3090 2003-10-18  Alexandre Oliva  <aoliva@redhat.com>
3091
3092         * final.c (final_scan_insn): Run FINAL_PRESCAN_INSNS on asm insns
3093         as well.
3094
3095 2003-10-18  Richard Sandiford  <rsandifo@redhat.com>
3096
3097         * rtl.h (rtl_size): Declare.
3098         (rtunion): Remove rtwint.
3099         (rtx_def): Replace 'fld' with a union of an rtunion or a HOST_WIDE_INT.
3100         (RTX_HDR_SIZE, RTX_SIZE): New macros.
3101         (RTL_CHECK1): Adjust for new rtx_def layout.
3102         (RTL_CHECK2, RTL_CHECKC1, RTL_CHECKC2): Likewise.
3103         (XWINT, XCWINT): Likewise.  Access the rtx structure directly.
3104         (X0WINT): Remove.
3105         (X0ANY): New macro.
3106         * rtl.def: Adjust comments for new rtx_def layout.
3107         * ggc.h (ggc_alloc_rtx): Take the rtx code as argument, not the
3108         number of slots.
3109         * rtl.c (rtx_size): New array.
3110         (rtx_alloc): Adjust call to ggc_alloc_rtx.  Use RTX_HDR_SIZE.
3111         (copy_rtx): Use RTX_HDR_SIZE.  Adjust for new rtx_def layout.
3112         (shallow_copy_rtx): Adjust call to ggc_alloc_rtx.  Use RTX_SIZE.
3113         * integrate.c (copy_rtx_and_substitute): Use X0ANY to copy '0' fields.
3114         * emit-rtl.c (copy_most_rtx): Likewise.
3115         (copy_rtx_if_shared): Use RTX_SIZE.
3116         (copy_insn_1): Use RTX_HDR_SIZE.  Adjust for new rtx_def layout.
3117         * gengenrtl.c (gendef): Adjust ggc_alloc_rtx call.  Use RTX_HDR_SIZE.
3118         * gengtype.c (write_rtx_next): Use RTX_HDR_SIZE.
3119         (adjust_field_rtx_def): Expect "rtx_def" to be a union rather than
3120         an array.  Adjust output for new rtx_def layout.
3121         * ggc-page.c (RTL_SIZE): Use RTX_HDR_SIZE.
3122         * reload1.c (eliminate_regs): Use RTX_SIZE.
3123         * rtlanal.c (loc_mentioned_in_p): Adjust for new rtx_def layout.
3124         * gdbinit.in (pi): Likewise.
3125
3126 2003-10-18  Jan Hubicka  <jh@suse.cz>
3127
3128         * integrate.c (copy_decl_for_inlining): Revert previous patch.
3129
3130 2003-10-18  Jan Hubicka  <jh@suse.cz>
3131
3132         * integrate.c (copy_decl_for_inlining): Fix copying of copies.
3133
3134 2003-10-18  Roger Sayle  <roger@eyesopen.com>
3135
3136         * libgcc.texi: Group multi-word types, such as "long double" and
3137         "unsigned int", using braces in @deftypefn and @deftypefnx nodes.
3138         Document __unord?f2 as returning a non-zero value, not just one.
3139
3140 2003-10-18  Hans-Peter Nilsson  <hp@bitrange.com>
3141
3142         * config/mmix/t-mmix (CRTSTUFF_T_CFLAGS): Define.
3143         ($(T)crti.o, $(T)crtn.o): Pass CRTSTUFF_T_CFLAGS here too.
3144
3145 2003-10-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
3146
3147         * config/i386/k6.md (k6_alux): Use the 'mode' attribute instead of
3148         match_operand.
3149
3150 2003-10-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
3151
3152         * config/sparc/sparc.c (function_arg_record_value_1): New fourth
3153         parameter packed_p.  Search for a DECL_PACKED field only if
3154         packed_p is false.  Pass packed_p recursively.
3155         (function_arg_record_value_2): Likewise.
3156         (function_arg_record_value): Update calls to
3157         function_arg_record_value_1 and function_arg_record_value_2.
3158
3159 2003-10-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
3160
3161         * cse.c (cse_insn) [src_folded]: Check that the tentative replacement
3162         was successfully forced to memory before using the result.
3163
3164 2003-10-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
3165
3166         PR optimization/8178
3167         * config/i386/i386.md (*movsi_zero): New insn to set
3168         a register to zero on TARGET_USE_MOV0 targets.
3169
3170 2003-10-18  Kelley Cook  <kcook@gcc.gnu.org>
3171
3172         * Makefile.in (Makefile): Depend on the all Make-lang.in fragments.
3173         (POSTSTAGE1_FLAGS_TO_PASS): Pass down MAKEINFO and MAKEINFOFLAGS.
3174
3175 2003-10-17  David Edelsohn  <edelsohn@gnu.org>
3176
3177         * doc/invoke.texi (gcse-las): Fix typo.
3178
3179 2003-10-17  Andrew Pinski  <pinskia@physics.uc.edu>
3180
3181         * doc/install.texi: Remove first part of the sentence for
3182         zsh not working.  Change gcc to GCC.
3183
3184         PR bootstrap/12546
3185         * doc/install.texi: Document that zsh does not work when
3186         configuring gcc.
3187
3188 2003-10-17  Nathanael Nerode  <neroden@gcc.gnu.org>
3189
3190         * config/ptx4.h: Switch to DWARF 2; update comments.
3191
3192 2003-10-17  Segher Boessenkool  <boessen@de.ibm.com>
3193             Hartmut Penner  <hpenner@de.ibm.com>
3194
3195         PR 10404, partial 11591, partial 11601
3196         * config/rs6000/altivec.md ("altivec_dst", "altivec_dstt",
3197         "altivec_dstst", "altivec_dststt", "altivec_lvsl", "altivec_lvsr",
3198         "altivec_lvebx", "altivec_lvehx", "altivec_lvewx", "altivec_lvxl",
3199         "altivec_lvx", "altivec_stvx", "altivec_stvxl", "altivec_stvebx",
3200         "altivec_stvehx", "altivec_stvewx"): Use a memory_operand.
3201         * config/rs6000/rs6000.c (altivec_expand_lv_builtin): New function.
3202         (altivec_expand_stv_builtin): Adjust for the memory_operand.
3203         (altivec_expand_builtin): Call altivec_expand_lv_builtin.
3204         (altivec_init_builtins): Use `long int' for memory offsets.
3205
3206 2003-10-17  Jan Hubicka  <jh@suse.cz>
3207
3208         * opts.c  (common_handle_option): Handle OPT_fweb
3209         * invoke.texi (-fweb): Add missing parts of documentation.
3210
3211 2003-10-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3212
3213         * config/mips/linux.h (FUNCTION_NAME_ALREADY_DECLARED): Undef
3214         before redefinition.
3215
3216 2003-10-17  Mostafa Hagog  <mustafa@il.ibm.com>
3217
3218         * common.opt: Add description of the new -fgcse-las flag.
3219         * flags.h (flag_gcse_las): Declaration of global flag_gcse_las.
3220         * gcse.c (hash_scan_set): Handle the case of store expression and
3221         insert the memory expression to the hash table, this way we make it
3222         possible to discover redundant loads after stores and remove them.
3223         (pre_insert_copy_insn): moved the call to update_ld_motion_stores,
3224         to pre_insert_copies, it is not the correct place to call it after
3225         adding stores to be in the available expression hash table.
3226         (pre_insert_copies): Added the call to update_ld_motion_stores when
3227         one or more copies were inserted.
3228         * opts.c (common_handle_option): Handle the -fgcse-las flag.
3229         * toplev.c (flag_gcse_las): Initialization of flag_gcse_las.
3230
3231         * doc/invoke.tex: Document new -fgcse-las flag.
3232
3233 2003-10-18  Alan Modra  <amodra@bigpond.net.au>
3234
3235         * config/rs6000/crtsavres.asm: Correct alignment of powerpc64 code
3236         for posterity, then remove it.
3237
3238 2003-10-17  Richard Earnshaw <rearnsha@arm.com>
3239             Nathan Sidwell  <nathan@codesourcery.com>
3240
3241         * config/arm/arm.c (use_return_insn): Not a single instruction, if
3242         there's a frame pointer.
3243         (arm_output_epilogue): Protect stack pointer from being corrupted
3244         on interrupt.
3245
3246 2003-10-17  Ulrich Weigand  <uweigand@de.ibm.com>
3247
3248         * ifcvt.c (noce_try_addcc): Handle ifs with 'else' case.
3249
3250 2003-10-17  Ulrich Weigand  <uweigand@de.ibm.com>
3251
3252         * combine.c (simplify_set): Do not clear out undobuf.other_insn
3253         already set elsewhere.
3254
3255 2003-10-17  Kelley Cook  <kcook@gcc.gnu.org>
3256
3257         * config/i386/i386.c (ix86_expand_prologue):  Use
3258         gen_allocate_stack_worker.
3259
3260 2003-10-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3261
3262         * config.gcc (mips-sgi-irix6*o32): Only enable use_collect2
3263         without gas.
3264         (mips-sgi-irix6*): Likewise.
3265
3266         * config/mips/iris6gas.h: New file.
3267         * gcc/config.gcc (mips-sgi-irix6*): Use it.
3268
3269         * config/mips/mips.h (TARGET_IRIX): Provide default.
3270         (TARGET_IRIX5): Likewise.
3271         (TARGET_SGI_O32_AS): Likewise.
3272         * config/mips/iris5.h (TARGET_IRIX): Redefine as 1.
3273         (TARGET_IRIX5): Likewise.
3274         * config/mips/iris6.h (TARGET_IRIX6): Remove.
3275         (TARGET_IRIX5): Redefine as 0.
3276
3277         * config/mips/mips.c (mips_output_external): Test for IRIX 6 O32
3278         linker workaround with TARGET_IRIX and mips_abi instead of
3279         ASM_OUTPUT_UNDEF_FUNCTION.
3280         (mips_file_end): Inline old ASM_OUTPUT_UNDEF_FUNCTION definition,
3281         testing TARGET_IRIX and mips_abi explicitly.
3282         * config/mips/iris5.h (ASM_OUTPUT_UNDEF_FUNCTION): Remove.
3283         * config/mips/iris6.h (ASM_OUTPUT_UNDEF_FUNCTION): Remove undef.
3284
3285         * config/mips/mips.c (irix_output_external_libcall): Renamed from
3286         mips_output_external_libcall.
3287         Use new TARGET_IRIX in guard.
3288         * config/mips/mips-protos.h (irix_output_external_libcall): Match
3289         this.
3290         * config/mips/iris5.h (TARGET_ASM_EXTERNAL_LIBCALL): Likewise.
3291
3292         * config/mips/iris5gas.h (HAVE_GAS_SHF_MERGE): Update comment.
3293         Define as 0.
3294
3295         * config/mips/iris6.h (FUNCTION_NAME_ALREADY_DECLARED): Define
3296         depending on mips_abi.
3297         * config/mips/linux.h (FUNCTION_NAME_ALREADY_DECLARED): Define as 1.
3298         * config/mips/mips.c (mips_output_function_prologue): Test
3299         FUNCTION_NAME_ALREADY_DECLARED at runtime.
3300         (mips_output_function_epilogue): Likewise.
3301         (build_mips16_function_stub): Likewise.
3302         (build_mips16_call_stub): Likewise.
3303         * config/mips/mips.h (FUNCTION_NAME_ALREADY_DECLARED): Provide
3304         default.
3305
3306         * config/mips/iris6.h (DWARF2_UNWIND_INFO): Don't define for native
3307         IRIX 6 O32 assembler.
3308         (SUBTARGET_CC1_SPEC): Enforce mips2 ISA with O32 ABI.
3309         (TARGET_OS_CPP_BUILTINS): Define _ABIO32, use it to define
3310         _MIPS_SIM for O32 ABI.
3311         (DWARF2_FRAME_INFO): Don't define for native IRIX 6 O32 assembler.
3312         (ASM_DECLARE_FUNCTION_NAME): Integrate mips.h version.
3313         (ASM_DECLARE_FUNCTION_SIZE): Move undef before redefinition.
3314         Integrate O32 version.
3315         (SUBTARGET_ASM_SPEC): Handle -mabi=32.
3316         (SUBTARGET_ASM_DEBUGGING_SPEC): Add mdebug_asm_spec for gas with
3317         O32 ABI.
3318         (BSS_SECTION_ASM_OP_32): Define.
3319         (BSS_SECTION_ASM_OP_64): Likewise.
3320         (BSS_SECTION_ASM_OP): Define differently for O32 and N32/N64 ABIs
3321         using them.
3322         (TARGET_ASM_NAMED_SECTION): Reflect renaming.
3323         Move up to allow override for O32 ABI without GNU as.
3324         (EH_FRAME_SECTION_NAME): Define explicitly.
3325         (MUST_USE_SJLJ_EXCEPTIONS): Define.
3326         [_MIPS_SIM == _ABIO32 && !GAS] (CTORS_SECTION_ASM_OP,
3327         DTORS_SECTION_ASM_OP): Dummy definitions.
3328         (TARGET_ASM_NAMED_SECTION): Undef statically.
3329         (EH_FRAME_SECTION_NAME): Likewise.
3330         (ASM_OUTPUT_FILENAME): Integrate mips.h version.
3331         (LINK_SPEC): Only use default options -call_shared -no_unresolved
3332         without -r.
3333         Don't pass -init, -fini with -mabi=32.
3334         (COLLECT_PARSE_FLAG): Define.
3335
3336         * config/mips/mips.c (iris6_asm_named_section_1): Changed guard to
3337         TARGET_IRIX.
3338         Renamed to use irix_ prefix.
3339         (iris6_asm_named_section): Likewise.
3340         (iris_section_align_entry_eq): Likewise.
3341         (iris_section_align_entry_hash): Likewise.
3342         (iris6_file_start): Likewise.
3343         (iris6_section_align_1): Likewise.
3344         (iris6_file_end): Likewise.
3345         (iris6_section_type_flags): Likewise.
3346         (iris_section_align_htab): Likewise.
3347         (iris_orig_asm_out_file): Likewise.
3348         [TARGET_IRIX] (TARGET_ASM_FILE_START): Reflect rename.
3349         (TARGET_ASM_FILE_END): Likewise.
3350         (TARGET_SECTION_TYPE_FLAGS): Likewise.
3351
3352         * config/mips/mips.c [TARGET_IRIX5 && !TARGET_IRIX6]
3353         (TARGET_ASM_UNALIGNED_HI_OP): Use runtime initialization in
3354         override_options instead.
3355         (TARGET_ASM_UNALIGNED_SI_OP): Likewise.
3356         (TARGET_ASM_UNALIGNED_DI_OP): Likewise.
3357         * config/mips/mips.c (override_options) [USE_COLLECT2]: Restore
3358         flag_gnu_linker to defaults without USE_COLLECT2 for non-IRIX O32
3359         assemblers.
3360         Likewise for constructor/destructor handling.
3361         (override_options): Handle IRIX O32 assembler quirks.
3362         [TARGET_IRIX] (irix_asm_named_section): Handle O32 ABI with and
3363         without gas.
3364         (mips_file_start): Use new TARGET_IRIX.
3365         (mips_declare_object_name): No special processing for IRIX O32
3366         assembler.
3367         (mips_finish_declare_object): Likewise.
3368         (irix_asm_output_align): Renamed from iris6_asm_output_align.
3369         Don't record alignment for O32 ABI.
3370         (irix_file_start): Renamed from iris6_file_start.
3371         Return early for O32 ABI.
3372         (irix_file_end): Renamed from iris6_file_end.
3373         Don't emit .section directives for O32 ABI.
3374         * config/mips/iris6.h (ASM_OUTPUT_ALIGN): Reflect renaming.
3375         * config/mips/mips-protos.h (irix_asm_output_align): Likewise.
3376
3377         * config/mips/t-iris6 (MULTILIB_OPTIONS): Add mabi=32.
3378         (MULTILIB_OSDIRNAMES): Likewise.
3379
3380 2003-10-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3381
3382         * collect2.c (COLLECT_PARSE_FLAG): Provide default.
3383         (main): Use it.
3384         * doc/tm.texi (COLLECT_PARSE_FLAG): Document it.
3385
3386 2003-10-17  Richard Earnshaw  <rearnsha@arm.com>
3387
3388         * arm-modes.def (CC_Nmode): New condition code mode.
3389         * arm.c (thumb_condition_code): Delete.
3390         (arm_select_cc_mode): Handle single-bit test for Thumb.
3391         (arm_print_operand, cases 'd' and 'D'): Don't special case the
3392         condition code logic for Thumb.
3393         (get_arm_condition_code): Handle CC_Nmode.
3394         (thumb_cbrch_target_operand): New function.
3395         * arm.h (PREDICATE_CODES): Add thumb_cbrch_target_operand.
3396         * arm-protos.h (thumb_cbrch_target_operand): Add prototype.
3397         * arm.md: Add Thumb split patterns for zero_extract and
3398         sign_extract.
3399         (tbit_cbranch, andsi3_cbranch_scratch, andsi3_cbranch)
3400         (orrsi3_cbranch_scratch, orrsi3_cbranch, xorsi3_cbranch_scratch)
3401         (xorsi3_cbranch, addsi3_cbranch, addsi3_cbranch_scratch)
3402         (subsi3_cbranch, subsi3_cbranch_scratch): New Thumb patterns.
3403         (cbranchne_decr1): Re-work to use CC_Nmode.
3404
3405         * arm.c (thumb_expand_epilogue): Add clobbers of registers restored
3406         by the return instruction.  Add a use of the link register if it
3407         wasn't stored.
3408
3409 2003-10-17  Richard Earnshaw  <rearnsha@arm.com>
3410
3411         * flow.c (init_propagate_block_info): Don't abort if a conditional
3412         jump is not a comparison of a register.  Instead, just don't record
3413         conditional life information.
3414
3415 2003-10-16  Jan Hubicka  <jh@suse.cz>
3416
3417         PR optimization/12630
3418         * pa.md (movstrsi, movstrsi_internal): Use match_scratch in clobbers
3419         for operands 7 and 8.
3420
3421 2003-10-16  Kelley Cook  <kcook@gcc.gnu.org>
3422
3423         * objc/Make-lang.in (objc-parse.o): Honor $(parsedir) for objc-parse.c.
3424
3425 2003-10-16  Danny Smith  <dannysmith@users.sourceforge.net>
3426
3427         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Define.
3428
3429         * config/i386/winnt.c (gen_stdcall_suffix): Make static
3430         (gen_fastcall_suffix): Likewise.
3431         (i386_pe_dllexport_p): Likewise.
3432         (i386_pe_dllimport_p): Likewise.
3433         (i386_pe_mark_dllexport): Likewise.
3434         (i386_pe_mark_dllimport): Likewise.
3435         (i386_pe_asm_named_section): Fix formatting.
3436
3437 2003-10-16  Zack Weinberg  <zack@codesourcery.com>
3438
3439         * configure.in: Add snprintf to gcc_AC_CHECK_DECLS list.
3440         * system.h: Declare snprintf if necessary.
3441         * configure, config.in: Regenerate.
3442
3443 2003-10-15  David Edelsohn  <edelsohn@gnu.org>
3444
3445         * config/rs6000/rs6000.c (rs6000_va_arg): Only align vector
3446         arguments if TARGET_ALTIVEC_ABI.
3447
3448 2003-10-15  Roger Sayle  <roger@eyesopen.com>
3449
3450         * builtins.c (fold_builtin_memcpy, fold_builtin_mempcpy,
3451         fold_builtin_memmove, fold_builtin_strcpy, fold_builtin_strncpy,
3452         fold_builtin_memcmp, fold_builtin_strcmp, fold_builtin_strncmp):
3453         New functions.
3454         (expand_builtin_memcpy): Use integer_zerop instead of testing
3455         host_integerp and tree_low_cst directly.  Move misapplied hunk
3456         for optimization wher SRC and DEST point to the same location.
3457         (expand_builtin_mempcpy): From here.
3458         (expand_builtin_memmove): Use integer_zerop instead of testing
3459         host_integerp and tree_low_cst_directly.
3460         (expand_builtin_memset): Likewise.
3461         (expand_builtin_memcmp): Likewise (and for integer_onep).
3462         (expand_builtin_strncmp): Likewise.
3463         (fold_builtin): Call the appropriate fold_builtin_foo functions
3464         to optimize memcpy, mempcpy, memmove, strcpy, strncpy, memcmp,
3465         strcmp and strncmp.
3466
3467 2003-10-15  Geoffrey Keating  <geoffk@apple.com>
3468
3469         * config/darwin-protos.h (machopic_non_lazy_ptr_name): Delete
3470         prototype.  Clean up some whitespace.
3471         * config/darwin.c: Use gen_rtx_FOO (...) rather than
3472         gen_rtx (FOO, ...).
3473         (machopic_non_lazy_ptr_name): Make static.
3474         (name_needs_quotes): Allow '.' and '$' unquoted.
3475         (machopic_legitimize_pic_address): Improve codegen in dynamic-no-pic
3476         case.
3477
3478 2003-10-15  Gábor Lóki  <alga@rgai.hu>
3479
3480         * fold-const.c (tree_swap_operands_p): Disable some features
3481         when optimizing for size.
3482
3483 2003-10-15  David Daney  <ddaney@avtrex.com>
3484
3485         * config/mips/linux.h (MD_FALLBACK_FRAME_STATE_FOR): New
3486         * config/mips/mips.h (DWARF_FRAME_REGNUM): Fixed to allow unwind
3487         from leaf functions.
3488         (DWARF_FRAME_RETURN_COLUMN): Ditto.
3489         (SIGNAL_UNWIND_RETURN_COLUMN): New, used
3490         by MD_FALLBACK_FRAME_STATE_FOR.
3491         * testsuite/gcc.dg/cleanup-9.c: Added mips*-*-linux* target.
3492
3493 2003-10-15  Zack Weinberg  <zack@codesourcery.com>
3494
3495         * genmodes.c: Include hashtab.h.
3496         (modes_by_name, hash_mode, eq_mode, struct mode_adjust)
3497         (adj_bytesize, adj_alignment, adj_format, new_adjust)
3498         (_ADD_ADJUST, ADJUST_BYTESIZE, ADJUST_ALIGNMENT, ADJUST_FORMAT)
3499         (print_maybe_const_decl, emit_mode_adjustments): New.
3500         (known_modes): Rename to modes.
3501         (find_mode): Kill class argument; look up in hash table.
3502         (new_mode): Insert into hash table also.
3503         (new_adjust): New.
3504         (reset_float_format, make_partial_integer_mode)
3505         (make_vector_mode): Tweak error reporting.
3506         (reset_float_format): Correct type of fourth argument.
3507         (emit_insn_modes_h): Add #defines to help make mode_size,
3508         mode_base_align, and real_format_for_mode conditionally const.
3509         (emit_mode_size, emit_mode_base_align): Use print_maybe_const_decl.
3510         (emit_real_format_for_mode): Likewise, but temporarily disabled.
3511         (emit_insn_modes_c): Call emit_mode_adjustments.
3512         (main): Initialize modes_by_name.
3513         * Makefile.in: Update dependencies.
3514         * machmode.def: Document EXPR arguments and new ADJUST_* statements.
3515         * machmode.h: Use CONST_MODE_SIZE and CONST_MODE_BASE_ALIGN in
3516         declarations of mode_size and mode_base_align.  Declare
3517         init_adjust_machine_modes.
3518         * toplev.c (backend_init): Call init_adjust_machine_modes.
3519
3520 2003-10-15  Olivier Hainque  <hainque@act-europe.fr>
3521
3522         * genmodes.c (calc_wider_mode): Allocate enough room for all the
3523         entries we'll possibly assign in the sort buffer.
3524
3525 2003-10-15  Ulrich Weigand  <uweigand@de.ibm.com>
3526
3527         * config.gcc (s390x-ibm-tpf*): New target.
3528         * doc/install.texi: Document it.
3529         * config/s390/t-tpf: New file.
3530         * config/s390/tpf.h: New file.
3531
3532 2003-10-15  Hans-Peter Nilsson  <hp@axis.com>
3533
3534         PR target/12598
3535         * config/cris/cris.md (define_split "*mov_sidesi_biap_mem"+1)
3536         (define_splits "*mov_sidesi_mem"+1, "casesi"+9, +10, +11, +12):
3537         Use cris_mem_op and replace_equiv_address, not gen_rtx_MEM.
3538         ("call", "call_value", define_split "*mov_sidesi_mem"+19, +20)
3539         (define_split "*mov_sidesi_mem"+21, +22, +23, +24, +25, +26, +27)
3540         (define_split "*mov_sidesi_mem"+28, +29, +30): Use
3541         replace_equiv_address, not gen_rtx_MEM.
3542         * config/cris/cris.c (cris_mem_op): New match_operator function.
3543         (cris_notice_update_cc): Use replace_equiv_address, not
3544         gen_rtx_MEM.
3545         * config/cris/cris.h (PREDICATE_CODES): Add cris_mem_op.
3546
3547 2003-10-15  Bernardo Innocenti <bernie@develer.com>
3548
3549         * config/m68k/m68k.h (MASK_SEP_DATA, TARGET_SEP_DATA,
3550         MASK_ID_SHARED_LIBRARY, TARGET_ID_SHARED_LIBRARY): Move
3551         definitions after the other flags.
3552
3553 2003-10-14  Ziemowit Laski  <zlaski@apple.com>
3554
3555         * c-parse.in (methoddef, methodproto): Call objc_add_method()
3556         instead of add_method().
3557         * objc/objc-act.c (objc_check_decl): Do not check for
3558         constant_string_type.
3559         (add_method): Rename to objc_add_method().
3560         (really_start_method): Call objc_add_method() instead of
3561         add_method().
3562         * objc/objc-act.h (add_method): Rename to objc_add_method().
3563
3564 2003-10-14  Ulrich Weigand  <uweigand@de.ibm.com>
3565
3566         * config/s390/s390-protos.h (s390_alc_comparison): Add prototype.
3567         (s390_slb_comparison): Likewise.
3568         * config/s390/s390.c (s390_alc_comparison, s390_slb_comparison):
3569         New functions.
3570         * config/s390/s390.h (PREDICATE_CODES): Add s390_alc_comparison
3571         and s390_slb_comparison.
3572         * config/s390/s390.md ("*adddi3_31", "*subdi3_31"): Do not use on
3573         zSeries machines.
3574         ("*adddi3_31z", "*subdi3_31z"): New insns.
3575         ("*adddi3_alc_cc", "*adddi3_alc", "*subdi3_slb_cc", "*subdi3_slb",
3576         "*addsi3_alc_cc", "*addsi3_alc", "*subsi3_slb_cc", "*subsi3_slb"):
3577         New insns.
3578
3579 2003-10-14  Nathanael Nerode  <neroden@gcc.gnu.org>
3580
3581         * configure.in: Clean up some feedback echoes.
3582         * configure: Regenerate.
3583
3584         * aclocal.m4: Properly quote names of macros being defined.
3585
3586         * config.gcc (am33_2.0-*-linux*): Use t-slibgcc-elf-ver.
3587
3588 2003-10-14  Steve Ellcey  <sje@cup.hp.com>
3589
3590         * config/ia64/ia64.c (ia64_expand_call): Force function address
3591         to DImode.
3592         * config/ia64/ia64.md (call_gp): Put DImode on operand 0.
3593
3594 2003-10-14  Ulrich Weigand  <uweigand@de.ibm.com>
3595
3596         * config/s390/s390.md ("muldf3", "*muldf3", "*muldf3_ibm",
3597         "mulsf3", "*mulsf3", "*mulsf3_ibm"): Do not clobber CC.
3598         ("divdf3", "*divdf3", "*divdf3_ibm", "divsf3", "*divsf3",
3599         "*divsf3_ibm"): Likewise.
3600
3601 2003-10-14  Nathanael Nerode  <neroden@gcc.gnu.org>
3602
3603         * config.gcc, config/m68hc11/t-m68hc11-gas: Replace uses of
3604         target_alias with target_noncanonical.
3605
3606 2003-10-14  Geoffrey Keating  <geoffk@apple.com>
3607
3608         * expr.c (block_move_libcall_safe_for_call_parm): Clean up,
3609         and add case for machines where outgoing register parameters
3610         get stack space.
3611
3612         * config/darwin.c (machopic_indirect_data_reference): Use a scratch
3613         register when generating indirect address.
3614
3615 2003-10-14  Richard Earnshaw  <rearnsha@arm.com>
3616
3617         * arm.c (arm_addimm_operand): MODE arguemnt is unused.
3618         * arm.md (cbranchne_decr1): Fix bootstrap warning.
3619
3620 2003-10-14  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3621
3622         * fixinc/inclhack.def (alpha_pthread_gcc): New fix.
3623         * fixinc/fixincl.x: Regenerate.
3624         * fixinc/tests/base/pthread.h [ALPHA_PTHREAD_GCC_CHECK]: New
3625         testcase.
3626         Fixes PR bootstrap/9330.
3627
3628 2003-10-13  Eric Christopher  <echristo@redhat.com>
3629
3630         * config/frv/frv.c (frv_adjust_field_align): Redo check for
3631         too wide bitfields.
3632         (frv_hard_regno_mode_ok): Add SPR_P and AP_FIRST.
3633         * config/frv/frv.h (FUNCTION_PROFILER): Remove abort call.
3634         (SBSS_SECTION_ASM_OP): Remove.
3635         (EXTRA_SECTIONS): Remove in_sbss.
3636         (EXTRA_SECTION_FUNCTIONS): Remove SBSS_SECTION_FUNCTION.
3637         (SBSS_SECTION_FUNCTION, sbss_section): Remove.
3638         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Change sbss_section to
3639         named_section.
3640
3641 2003-10-13  Nathanael Nerode  <neroden@gcc.gnu.org>
3642
3643         * Makefile.in, configure.in, config.host, mkheaders.in: Replace
3644         uses of ${target_alias} for directory names (and other places which
3645         won't like the empty string) with ${target_noncanonical}.  Introduce
3646         call early in configure.in to _GCC_TOPLEV_NONCANONICAL_TARGET so it's
3647         available.
3648         * configure: Regenerate.
3649
3650 2003-10-13  Ian Lance Taylor  <ian@wasabisystems.com>
3651
3652         * config/arm/iwmmxt.md (cond_iwmmxt_movsi_insn): New pattern.
3653         * config/arm/arm.md: For splits which rely on conditional moves,
3654         remove ! TARGET_IWMMXT condition.
3655
3656 2003-10-13  David S. Miller  <davem@redhat.com>
3657
3658         * ifcvt.c (num_removed_blocks): Rename to num_true_changes.
3659         (find_cond_trap): Always increment if we emit a conditional
3660         trap insn.
3661
3662 2003-10-13  Zack Weinberg  <zack@codesourcery.com>
3663
3664         * Makefile.in (BUILD_RTL): Replace $(BUILD_PREFIX)insn-modes.o
3665         with min-insn-modes.o.
3666         (STAGESTUFF): Add min-insn-modes.c.
3667         (genobjs): Add genmodes.o.
3668         (print-rtl.o, print-rtl1.o): Depend on $(TM_P_H).
3669         (insn-modes.o): Depend on $(TM_H) not $(GTM_H); also real.h.
3670         (min-insn-modes.c, min-insn-modes.o): New rules.
3671         (s-modes): Also generate min-insn-modes.c.
3672         ($(BUILD_PREFIX_1)insn-modes.o): Kill.
3673         * genmodes.c (struct mode_data): Add format field.
3674         (blank_mode, validate_mode, complete_mode): Update to match.
3675         (make_scalar_mode): Separate into make_int_mode and make_float_mode.
3676         (_SCALAR_MODE): Kill.
3677         (FLOAT_MODE, FRACTIONAL_FLOAT_MODE): Add format argument.
3678         (emit_insn_modes_c_header): Adjust.
3679         (emit_min_insn_modes_c_header, emit_real_format_for_mode)
3680         (emit_min_insn_modes_c): New functions.
3681         (emit_insn_modes_c): Call emit_real_format_for_mode.
3682         (main): Add -m option to generate min-insn-modes.c.
3683         * machmode.h: Update documentation.  Add format argument to
3684         all uses of FLOAT_MODE.
3685         * real.c: Don't define real_format_for_mode here.
3686
3687         * dwarfout.c: Move default definition of PRINT_REG...
3688         * defaults.h: ...here.
3689         * print-rtl.c: Include tm_p.h.
3690         (DEBUG_PRINT_REG, DEBUG_REGISTER_NAMES, debug_reg_names, reg_names):
3691         Kill.
3692         (print_rtx): Use PRINT_REG, not DEBUG_PRINT_REG.  But surround
3693         this entire block with #ifndef GENERATOR_FILE.
3694         * regclass.c: Unconditionally define reg_names.
3695         * config/mips/mips.h, config/rs6000/rs6000.h, config/sh/sh.h
3696         Don't define DEBUG_REGISTER_NAMES.
3697         * config/rs6000/darwin.h: Don't use DEBUG_REGISTER_NAMES in
3698         redefinition of REGISTER_NAMES.
3699         * config/i386/i386.h: Don't define DEBUG_PRINT_REG.
3700
3701         * combine.c: Change all preprocessor conditionals on
3702         EXTRA_CC_MODES to use SELECT_CC_MODE instead; rearrange a bit
3703         for clarity.
3704         * genopinit.c: Remove mention of EXTRA_CC_MODES in comment.
3705         * configure.in: Don't define EXTRA_CC_MODES.
3706         * configure, config.in: Regenerate.
3707         * doc/tm.texi: Remove documentation of EXTRA_CC_MODES.
3708
3709         * config/arc/arc.c, config/m32r/m32r.c, config/sparc/sparc.c:
3710         May assume that GET_MODE_CLASS is accurate for extra CC modes
3711         at all times.
3712
3713         * config/i860/i860.h (INIT_CUMULATIVE_ARGS): Pass correct
3714         number of arguments to aggregate_value_p.
3715
3716         * genmodes.c (RESET_FLOAT_FORMAT, reset_float_format): New.
3717         * machmode.def: Explain ARCH-modes.def.  Document
3718         RESET_FLOAT_FORMAT.  Improve commentary on various mode
3719         clusters.  Do not define OI, PQI, PHI, PSI, PDI, QF, HF, TQF,
3720         XF, or TF modes here.  Remove backward-compatibility
3721         definition of CC.
3722
3723         * config/alpha/alpha-modes.def: New file; define TF mode.
3724         * config/arc/arm-modes.def: Define XF mode.
3725         * config/c4x/c4x-modes.def: Define QF and HF modes.  Unset
3726         float format for SF and DF modes.
3727         * config/dsp16xx/dsp16xx-modes.def: New file; define HF mode.
3728         * config/i386/i386-modes.def: Define XF and TF modes.
3729         * config/i960/i960-modes.def: Define TF mode.
3730         * config/ia64/ia64-modes.def: Define TF and OI modes.
3731         * config/m68k/m68k-modes.def: New file; define XF mode.
3732         * config/mips/mips-modes.def: New file; define TF mode, reset
3733         formats for SF and DF modes.
3734         * config/pa/pa-modes.def: Define TF mode.
3735         * config/rs6000/rs6000.c: Define TF and PSI modes.
3736         * config/s390/s390-modes.def: Define OI mode.
3737         * config/sh/sh-modes.def: New file; define PSI mode.
3738         * config/sparc/sparc-modes.def: Define TF mode.
3739         * config/vax/vax-modes.def: New file; reset formats for SF and
3740         DF modes.
3741
3742         * config/c4x/c4x.c (c4x_override_options): No need to mess
3743         with real_format_for_mode or set REAL_MODE_FORMATs.
3744         (c4x_immed_int_constant): Don't apply GET_MODE_CLASS to rtx
3745         variable.
3746         * config/i386/i386.c (override_options): No need to set
3747         REAL_MODE_FORMATs here.
3748         * config/i960/i960.c (i960_initialize): Likewise.
3749         * config/m68k/m68k.c (m68k_override_options): Likewise.
3750         * config/ia64/ia64.c (ia64_override_options): Set REAL_MODE_FORMAT
3751         for TFmode only if not the default.
3752         * config/mips/mips.c (override_options): Likewise.
3753         * config/vax/vax.c (override_optionms): Set REAL_MODE_FORMAT for
3754         DFmode only if not the default.
3755
3756         * config/i370/i370.h (RET_REG): Don't consider TFmode.
3757         * config/m68hc11/m68hc11.c (print_operand): Don't consider XFmode.
3758         * config/dsp16xx/dsp16xx.c (hard_regno_mode_ok): #if 0 out use
3759         of modes that don't appear anywhere in the machine description.
3760
3761         * config/arc/arc-modes.def, config/arm/arm-modes.def
3762         * config/c4x/c4x-modes.def, config/frv/frv-modes.def
3763         * config/i386/i386-modes.def, config/i960/i960-modes.def
3764         * config/ia64/ia64-modes.def, config/mmix/mmix-modes.def
3765         * config/pa/pa-modes.def, config/pdp11/pdp11-modes.def
3766         * config/rs6000/rs6000-modes.def, config/s390/s390-modes.def
3767         * config/sparc/sparc-modes.def: Convert to new style for
3768         declaring extra CC modes.
3769
3770 2003-10-13  Zack Weinberg  <zack@codesourcery.com>
3771
3772         * cpplex.c (_cpp_clean_line): In the common case of a line
3773         with no trigraphs and no \-newline, avoid writing to memory.
3774         (_cpp_skip_block_comment): Use a local 'cur' pointer instead
3775         of the buffer member.  Make c an uchar to avoid unnecessary
3776         sign extensions.
3777
3778 2003-10-13  Nathanael Nerode  <neroden@gcc.gnu.org>
3779
3780         * configure.in: Remove unnecessary test.
3781         * configure: Regenerate.
3782
3783         * configure.in: Fix grammatical error.  Move UWIN host error to...
3784         * config.host: Here.
3785         * configure: Regenerate.
3786
3787 2003-10-13  Andreas Krebbel  <krebbel1@de.ibm.com>
3788
3789         * config/s390/s390.md ("*fmadddf4", "*fmsubdf4", "*fmaddsf4",
3790         "*fmsubsf4"): Insns are now dependent on TARGET_FUSED_MADD instead
3791         of flag_unsafe_math_optimizations.
3792         * config/s390/s390.h ("MASK_NO_FUSED_MADD", "TARGET_NO_FUSED_MADD",
3793         "TARGET_FUSED_MADD", "TARGET_SWITCHES"): Introduced new target flags
3794         fused-madd and no-fused-madd.
3795         * doc/invoke.texi: Documented the new options fused-madd and
3796         no-fused-madd for S/390.
3797
3798 2003-10-14  Alan Modra  <amodra@bigpond.net.au>
3799
3800         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Choose
3801         MASK_ALIGN_NATURAL if rs6000_alignment_string not given.  Don't
3802         assign DEFAULT_ABI.
3803         (ADJUST_FIELD_ALIGN, ROUND_TYPE_ALIGN): Update comment.
3804         * config/rs6000/rs6000.c: Formatting.
3805         (rs6000_parse_alignment_option): Only set rs6000_alignment_flags
3806         when rs6000_alignment_string given.
3807
3808 2003-10-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
3809
3810         PR target/12538
3811         * config/sparc/sparc.c (MUST_SAVE_REGISTER): Delete.
3812         (sparc_flat_must_save_register_p): New function to decide whether
3813         a register must be saved/restored in the function prologue/epilogue.
3814         (sparc_flat_compute_frame_size): Use it instead of MUST_SAVE_REGISTER.
3815
3816 2003-10-12  Steven Bosscher  <steven@gcc.gnu.org>
3817
3818         * config/avr/avr.c, config/avr/avr-protos.h: Convert to
3819         ISO C90 function declarations and definitions.
3820         * config/sh/sh.c, config/sh/sh-protos.h: Likewise.
3821
3822 2003-10-12  Nathanael Nerode  <neroden@gcc.gnu.org>
3823
3824         * config.gcc (*-*-freebsd*): Use tm_defines instead of tiny
3825         config files which do the same thing.
3826         * config/freebsd3.h, config/freebsd4.h, config/freebsd5.h,
3827         config/freebsd6.h: Remove now unnecessary files.
3828
3829 2003-10-12  Steven Bosscher  <steven@gcc.gnu.org>
3830
3831         * c-common.c (c_common_truthvalue_conversion): Warn if the
3832         address of a non-weak function is used as a truth value.
3833
3834 2003-10-12  Kazu Hirata  <kazu@cs.umass.edu>
3835
3836         * config/h8300/h8300.c (WORD_REG_USED): Use SP_REG instead of
3837         a literal.
3838         * config/h8300/h8300.h (REGNO_OK_FOR_BASE_P): Use MAC_REG
3839         instead of a literal.
3840
3841 2003-10-12  Hans-Peter Nilsson  <hp@bitrange.com>
3842
3843         * doc/extend.texi (Function Attributes): Mention the exceptional
3844         path for noreturn-marked functions.
3845
3846 2003-10-12  Jan Hubicka  <jh@suse.cz>
3847
3848         * cgraphunit.c (cgraph_decide_inlining): Fix uninitialized variable
3849         warning.
3850
3851 2003-10-12  Danny Smith  <dannysmith@users.sourceforge.net>
3852
3853         * config/i386/i386.c (x86_this_parameter): Fix typo.
3854
3855 203-10-11  Jan Hubicka  <jh@suse.cz>
3856
3857         * Makefile.in (web.o): New.
3858         * web.c: New file.
3859         * rtl.h (web_main): Declare.
3860         * timervar.def (TV_WEB): New.
3861         * toplev.c (dump_file_index, dump_file_info): Add DFI_web.
3862         (rest_of_hanle_web): New.
3863         (flag_web): New static variable.
3864         (lang_independent_options): Add "web".
3865         (rest_of_compilation): Call rest_of_handle_web.
3866         * invoke.texi (-fweb): Document.
3867         * common.opt (fweb): New.
3868         * flags.h (flag_web): New.
3869         * opts.c (decode_options): Set flag_web at -O3.
3870
3871         * passes.texi (web construction):  Document.
3872         * invoke.texi (-O3): Document that -fweb is enabled.
3873
3874         * regrename.c (regrename_optimize): Deal better with situation when
3875         replacement failed.
3876
3877         * sched-ebb.c: Include params.h and profile.h
3878         (schedule_ebbs):  Use tracer parameters to discover superblocks
3879         * Makefile.in (sched-ebb.o):  Add dependencies.
3880
3881 2003-10-11  Roger Sayle  <roger@eyesopen.com>
3882
3883         * fold-const.c (negate_mathfn_p): New function to determine whether
3884         a built-in mathematical function is sign preserving, f(-x) == -f(x).
3885         Add support for BUILT_IN_ASIN, BUILT_IN_ASINF and BUILT_IN_ASINL.
3886         (tree_swap_operands_p): Change API to take an additional argument
3887         indicating that the swapped operands evaluate in reverse order.
3888         Canonicalize VAR_DECLs and PARM_DECLs last if we can, i.e. neither
3889         operand side-effects or we don't care about flag_evaluation_order.
3890         (reorder_operands_p): New function to check whether its safe to
3891         evaluate the given operands in reverse order.
3892         (negate_expr_p):  We can always negate integer constants unless
3893         we honor -ftrapv and the signed type would overflow.  Only allow
3894         -(A-B) into B-A if reorder_operands_p says that its OK.  Allow
3895         negation of COMPLEX_CST if both real and imaginary parts can be
3896         negated.  Allow negation through floating point extensions and
3897         sign-preserving built-in functions.
3898         (negate_expr):  Move the code to negate integers from "fold" to
3899         here.  Always negate integer constants unless we honor -ftrapv
3900         and the signed type would overflow.  Always negate real constants
3901         unless we honor -ftrapping-math.  Only convert -(A-B) into B-A
3902         if allowed by reorder_operands_p.  Add support for COMPLEX_CST.
3903         Optimize negation through floating point extensions and
3904         sign-preserving built-in functions (as defined by negate_mathfn_p).
3905         (fold): Adjust calls to tree_swap_operands_p.
3906         (fold <NEGATE_EXPR>): Move the remaining negation optimizations
3907         to negate_expr_p/negate_expr.
3908         (fold <MINUS_EXPR>): Use reorder_operands_p to check whether we're
3909         allowed to convert (-A) - B into (-B) - A.
3910
3911 2003-10-11  Roger Sayle  <roger@eyesopen.com>
3912
3913         * builtins.c (expand_builtin_strcmp): Defend against the possibility
3914         that gen_cmpstrsi may fail: Stabilize the argument list against
3915         re-evaluation and expand the library call directly using this saved
3916         argument list if a cmpstrsi sequence can't be generated.
3917         (expand_builtin_strncmp): Likewise.
3918
3919         * config/i386/i386.md (cmpstrsi, movstrsi): Disable with -Os.
3920
3921 2003-10-11  Roger Sayle  <roger@eyesopen.com>
3922
3923         PR optimization/12260
3924         * simplify-rtx.c (simplify_unary_operation): Simplify all unary
3925         operations through CONST nodes.  Optimize (neg (plus X C)) as
3926         (minus -C X) for constant values C.
3927         (simplify_binary_operation): Optimize (minus (neg X) C) as
3928         (minus -C X) for constant values C.
3929         (simplify_plus_minus): Avoid creating (neg (const (plus X C)),
3930         instead create (minus -C X).
3931
3932 2003-10-11  Roger Sayle  <roger@eyesopen.com>
3933
3934         * expr.c (expand_expr <PLUS_EXPR>): Let expand_operands call
3935         safe_from_p for us, once it chooses an evaluation order.
3936         (expand_expr <MULT_EXPR>): Likewise.
3937         (expand_expr <MIN_EXPR> <MAX_EXPR>): Likewise.  If expand_operands
3938         places the second operand in "target", swap the operands.
3939         (do_store_flag): Let expand_operands call safe_from_p for us.
3940
3941 2003-10-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
3942
3943         PR optimization/12544
3944         * function.c (put_var_into_stack): Don't generate ADDRESSOFs
3945         for DECL_NONLOCAL decls.
3946
3947 2003-10-11  Kazu Hirata  <kazu@cs.umass.edu>
3948
3949         * expr.c: Follow spelling conventions.
3950         * final.c: Likewise.
3951         * optabs.c: Likewise.
3952         * sched-deps.c: Likewise.
3953         * sdbout.c: Likewise.
3954
3955 Sat Oct 11 12:24:23 CEST 2003  Jan Hubicka  <jh@suse.cz>
3956
3957         * varasm.c (notice_global_symbol):  Fix handling of variables; avoid
3958         re-computing of variable.
3959
3960 2003-10-11  Richard Henderson  <rth@redhat.com>
3961
3962         * config/alpha/alpha.c (alpha_return_in_memory): Rename from
3963         return_in_memory, make static, change signature to match target hook.
3964         (alpha_setup_incoming_varargs): Make static, change signature to
3965         match target hook, add code for vms and unicos.
3966         (TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN,
3967         TARGET_PROMOTE_PROTOTYPES, TARGET_STRUCT_VALUE_RTX,
3968         TARGET_RETURN_IN_MEMORY, TARGET_SETUP_INCOMING_VARARGS,
3969         TARGET_STRICT_ARGUMENT_NAMING,
3970         TARGET_PRETEND_OUTGOING_VARARGS_NAMED): New.
3971         * config/alpha/alpha-protos.h: Update.
3972         * config/alpha/alpha.h (PROMOTE_FUNCTION_ARGS,
3973         PROMOTE_FUNCTION_RETURN, RETURN_IN_MEMORY,
3974         SETUP_INCOMING_VARARGS): Remove.
3975         * config/alpha/unicosmk.h (SETUP_INCOMING_VARARGS): Remove.
3976         * config/alpha/vms.h (SETUP_INCOMING_VARARGS): Remove.
3977
3978 2003-10-11  Ian Lance Taylor  <ian@wasabisystems.com>
3979
3980         * config/arm/arm.c (arm_regno_class): Handle IWMMXT_GR_REGS.
3981
3982 2003-10-11  Kazu Hirata  <kazu@cs.umass.edu>
3983
3984         * config/m68k/lb1sf68.asm: Follow spelling conventions.
3985         * config/m68k/m68k.c: Likewise.
3986         * config/m68k/m68k.h: Likewise.
3987         * config/m68k/m68k.md: Likewise.
3988
3989 2003-10-11  Roger Sayle  <roger@eyesopen.com>
3990
3991         * builtins.c (expand_builtin_memcpy): Optimize case when the two
3992         pointer arguments are the equal, non-volatile and side-effect free.
3993         (expand_builtin_mempcpy): Likewise.
3994         (expand_builtin_memmove): Likewise.
3995         (expand_builtin_strcpy): Likewise.
3996         (expand_builtin_memcmp): Likewise.
3997         (expand_builtin_strcmp): Likewise.
3998         (expand_builtin_strncmp): Likewise.
3999
4000 2003-10-11  Roger Sayle  <roger@eyesopen.com>
4001
4002         * combine.c (apply_distributive_law): Enable "distributive" floating
4003         point optimizations with -funsafe-math-optimizations.
4004
4005 2003-10-11  Andrew Pinski <pinskia@physics.uc.edu>
4006
4007         * genmodes.c (emit_mode_mask) Change MASK to MODE_MASK.
4008
4009 2003-10-11  Kazu Hirata  <kazu@cs.umass.edu>
4010
4011         * config/m68k/m68k-protos.h: Remove the prototype for
4012         finalize_pic.
4013
4014 2003-10-11  Kazu Hirata  <kazu@cs.umass.edu>
4015
4016         * config/m68k/m68k.c: Fix comment typos.
4017
4018 2003-10-11  Bernardo Innocenti  <bernie@develer.com>
4019
4020         * config/m68k/m68k-protos.h (use_return_insn): Change return type from
4021         int to bool.
4022         * config/m68k/m68k.c (struct m68k_frame): Add funcdef_no member.
4023         (current_frame): New global var.
4024         (m68k_compute_frame_layout): Cache computations in current_frame.
4025         (m68k_initial_elimination_offset): Use values from current_frame
4026         instead of recomputing them.
4027         (use_return_insn): Likewise.
4028         (m68k_output_function_prologue): Likewise.
4029         (m68k_output_function_epilogue): Likewise.
4030         * config/m68k/m68k.h (TARGET_CPU_CPP_PREDEFINES): Fold __PIC__ handling
4031         inside the block for __pic__.
4032
4033 2003-10-11  Peter Barada <peter@baradas.org>
4034             Bernardo Innocenti  <bernie@develer.com>
4035
4036         * config/m68k/m68k.c (m68k_frame): Move before protos referencing it.
4037         (m68k_save_reg): Add boolean parameter `interrupt_handler'.
4038         (m68k_interrupt_function_p): New function.
4039         (m68k_handle_fndecl_attribute): Ditto.
4040         (m68k_compute_frame_layout): Ditto.
4041         (m68k_attribute_table): Define back-end specific attributes.
4042         (m68k_output_function_epilogue): Emit RTE instruction for interrupt
4043         functions.
4044
4045 2003-10-11  Bernardo Innocenti  <bernie@develer.com>
4046
4047         * config/m68k/t-uclinux: New target Makefile fragment.
4048         * config/m68k/uclinux.h: New target macro file.
4049         * config.gcc (m68k-*-uclinux): New target definition.
4050
4051 2003-10-10  Roger Sayle  <roger@eyesopen.com>
4052
4053         * builtins.c (builtin_mathfn_code): Generalize to check whether
4054         the call is to any built-in function by comparing the call's
4055         argument list against the builtin decl's function type.
4056
4057 2003-10-10  Roger Sayle  <roger@eyesopen.com>
4058
4059         * cse.c (constant_pool_entries_regcost): New global variable to
4060         hold the register cost component of constant_pool_entries_cost.
4061         (fold_rtx): Calculate constant_pool_entries_regcost at the same
4062         time as constant_pool_entries_cost.
4063         (cse_insn): Set both src_folded_cost and src_folded_regcost from
4064         constant_pool_entries_cost and constant_pool_entries_regcost.