OSDN Git Service

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