OSDN Git Service

libffi:
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2003-10-20  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2
3         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Define _ABIO32.
4         Use it in _MIPS_SIM definition.
5         * config/mips/mips.h (CRT_CALL_STATIC_FUNCTION): Likewise.
6
7 2003-10-20  Zack Weinberg  <zack@codesourcery.com>
8
9         * config/i386/i386.c (print_reg): Abort if REGNO (x) is a
10         virtual register, but only if file == asm_out_file.
11         * config/i386/i386.h (HI_REGISTER_NAMES): Use "argp", not "",
12         for ARG_POINTER_REGNUM.
13
14 2003-10-20  Zack Weinberg  <zack@codesourcery.com>
15
16         * c-common.c (registered_builtin_types): New static.
17         (c_common_type_for_mode): Consult registered_builtin_types.
18         (c_register_builtin_type): Add type to registered_builtin_types.
19         * optabs.c (init_floating_libfuncs): Initialize libfuncs for
20         all MODE_FLOAT modes, not just the ones corresponding to
21         float_type_node, double_type_node, and long_double_type_node.
22
23 2003-10-20  Richard Henderson  <rth@redhat.com>
24
25         * config/alpha/alpha.h (PREDICATE_CODES): Add normal_memory_operand.
26         * config/alpha/alpha-protos.h: Remove PREDICATE_CODES prototypes.
27
28 2003-10-20  Dorit Naishlos  <dorit@il.ibm.com>
29
30         * config/rs6000/rs6000.h: (rs6000_sched_insert_nops):
31         support new flag -minsert-sched-nops.
32         (DEFAULT_SCHED_FINISH_NOP_INSERTION_SCHEME): Define.
33         * config/rs6000/rs6000.c: (rs6000_sched_insert_nops):
34         support new flag -minsert-sched-nops.
35         (is_cracked_insn, is_microcoded_insn): New functions.
36         (rs6000_sched_finish): New function.
37         (rs6000_issue_rate): Return 5 for power4.
38         (get_next_active_insn, insn_terminates_group_p): New
39         functions.
40         (is_costly_group, force_new_group): New functions.
41         (redefine_groups, pad_groups): New functions.
42         (rs6000_variable_issue): Use new functions.
43         * doc/invoke.texi (-minsert-sched-nops): Document new
44         option.
45
46 2003-10-20  David S. Miller  <davem@redhat.com>
47
48         * config/sparc/sparc.md (type attribute): Add new insn types
49         fpa, fpm_pack, fgm_mul, fgm_pdist, and fgm_cmp for VIS.
50         (patterns emitting VIS insns): Use them.
51         * config/sparc/ultra1_2.md: Add VIS scheduling rules.
52         * config/sparc/ultra3.md: Likewise.
53
54 2003-10-20  Falk Hueffner  <falk@debian.org>
55
56         PR target/12654
57         * config/alpha/alpha.c (alpha_emit_conditional_branch): Don't do
58         comparison against constant by adjusting the argument except for
59         EQ and NE.
60
61 2003-10-19  Mark Mitchell  <mark@codesourcery.com>
62
63         * config.gcc: Add support for arm926ejs, arm1026ejs, arm1136js,
64         arm1136jfs, and armv6j.
65         * config/arm/arm.c (FL_ARCH6J): New macro.
66         (FL_VFPV2): Likewise.
67         (all_cores): Add entries for arm926ejs, arm1026ejs, arm1136js,
68         and arm1136jfs.
69         (all_architectures): Add entry for armv6j.
70         (arm_override_options): Add entries for arm926ejs, arm1026ejs,
71         arm1136js, and arm1136jfs.
72         * config/arm/arm.h (TARGET_CPU_arm926ej_s): New macro.
73         (TARGET_CPU_arm1026ej_s): Likewise.
74         (TARGET_CPU_arm1136j_s): Likewise.
75         (TARGET_CPU_arm1136jf_s): Likewise.
76         * doc/invoke.texi: Document new ARM cores and architecture
77         variants.
78
79 2003-10-19  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
80
81         * Makefile.in (toplev.o): Add value-prof.h dependency.
82         (value-prof.o): Add REGS_H dependency.
83         * common.opt (fprofile-values, fvpt): New.
84         * flags.h (flag_value_profile_transformations): Declare.
85         * opts.c (common_handle_option): Handle -fprofile_values and
86         -fvpt.
87         * profile.c (branch_prob): Don't remove death notes here.
88         * timevar.def (TV_VPT): New.
89         * value-prof.c: Include regs.h.
90         (insn_divmod_values_to_profile, gen_divmod_fixed_value, gen_mod_pow2,
91         gen_mod_subtract, divmod_fixed_value_transform,mod_pow2_value_transform,
92         mod_subtract_transform, value_profile_transformations): New.
93         (insn_values_to_profile): Call insn_divmod_values_to_profile.
94         (find_values_to_profile): Add dumps.
95         * value-prof.h (value_profile_transformations): Declare.
96         * toplev.c: Include value-prof.h.
97         (rest_of_handle_value_profile_transformations): New.
98         (enum dump_file_index): Add DFI_vpt.
99         (dump_file): Add vpt dump.
100         (flag_value_profile_transformations): New.
101         (lang_independent_options): Add flag_profile_values and
102         flag_value_profile_transformations.
103         (rest_of_compilation): Call
104         rest_of_handle_value_profile_transformations.
105         (process_options): Let -fvpt imply -fprofile-values.
106         * doc/invoke.texi (-fvpt): Document.
107
108 2003-10-19  Jan Hubicka  <jh@suse.cz>
109
110         * i386.c (print_reg): Do not abort on certain registers.
111
112         PR optimization/12612
113         * reg-stack.c (subst_stack_regs_pat):  Use st(1) for clobbers.
114         * i386.md (fpatan, fyl2x, fscale patterns and expanders): Use
115         match_scratch; avoid bogus paralles.
116
117         PR target/12674
118         * i386.c (ix86_function_regparm): Disable implicit register passing
119         conventions when profiling.
120
121 2003-10-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
122             Richard Henderson  <rth@redhat.com>
123
124         PR optimization/8178
125         * config/i386/i386.md (*movsi_zero): Delete.
126         (*ffs_no_cmove): Use ix86_expand_clear to zero the third operand.
127
128 2003-10-19  Richard Henderson  <rth@redhat.com>
129
130         * config/alpha/alpha.c (fix_operator): New.
131         (divmod_operator): Tidy.
132         (alpha_emit_xfloating_cvt): Handle UNSIGNED_FIX.
133         * config/alpha/alpha.h (FIXUNS_TRUNC_LIKE_FIX_TRUNC): Remove.
134         (PREDICATE_CODES): Update.
135         * config/alpha/alpha.md (fix_truncdfsi_ieee): Use match_operator.
136         (fix_truncdfsi_internal, fix_truncdfdi_ieee): Likewise.
137         (fix_truncsfsi_ieee, fix_truncsfsi_internal): Likewise.
138         (fix_truncsfdi_ieee): Likewise.
139         (fix_truncdfdi2, fix_truncsfdi2): Turn into define_expand.
140         (fixuns_truncdfdi2, fixuns_truncsfdi2, fixuns_trunctfdi2): New.
141         * config/alpha/alpha-protos.h: Update.
142
143 2003-10-19  Richard Sandiford  <rsandifo@redhat.com>
144
145         * config/mips/mips.h (INITIALIZE_TRAMPOLINE): Simplify.
146         * config/mips/mips.c (mips_load_got): Assume Pmode == ptr_mode.
147         * config/mips/mips.md (extendsidi2, *extendsidi2): Merge. Don't accept
148         constant operands.
149
150 2003-10-18  Kazu Hirata  <kazu@cs.umass.edu>
151
152         * doc/extend.texi: Fix typos.
153         * doc/invoke.texi: Likewise.
154
155 2003-10-18  Nicolas Pitre <nico@cam.org>
156
157         * config/arm/arm.c (arm_override_options): Use arm_tune_xscale for
158         XScale optimizations not arm_arch_xscale.
159         * config/arm/arm.h (CONSTANT_ALIGNMENT_FACTOR, MOVE_RATIO): Likewise.
160
161 2003-10-18  Ulrich Weigand  <uweigand@de.ibm.com>
162
163         * config/s390/s390-protos.h (shift_count_operand): Add prototype.
164         * config/s390/s390.c (shift_count_operand): New function.
165         (s390_extra_constraint): Use it to implement 'Y' constraint.
166         (print_shift_count_operand): New function.
167         (print_operand): Use it to implement '%Y'.
168         * config/s390/s390.h (EXTRA_ADDRESS_CONSTRAINT): Add 'Y' constraint.
169         (PREDICATE_CODES): Add shift_count_operand.
170         * config/s390/s390.md ("rotldi3"): Merge alternatives,
171         using "shift_count_operand" predicate and "Y" constraint,
172         and "%Y" to output the combined shift count.
173         ("rotlsi3"): Likewise.
174         ("ashldi3", "*ashldi3_31", "*ashldi3_64"): Likewise.
175         ("ashrdi3", "*ashrdi3_31", "*ashrdi3_64", "*ashrdi3_cc_31",
176         "*ashrdi3_cc_64", "*ashrdi3_cconly_31", "*ashrdi3_cconly_64"): Likewise.
177         ("ashlsi3", "ashrsi3", "*ashrsi3_cc", "*ashrsi3_cconly"): Likewise.
178         ("lshrdi3", "*lshrdi3_31", "*lshrdi3_64"): Likewise.
179         ("lshrsi3"): Likewise.
180
181 2003-10-18  Gunther Nikl  <gni@gecko.de>
182
183         * config/m68k/m68k.c (m68k_output_function_epilogue): Add missing
184         argument to asm_fprintf statement.
185
186 2003-10-18  Fariborz Jahanian  <fjahanian@apple.com>
187
188         * rs6000.md: Separate TARGET_POWERPC64 patterns for TARGET_64BIT or TARGET_32BIT.
189         (ashrdisi3_noppc64) Generate more efficient code for 32-bit right-shift of
190         a "long long" argument.
191
192 2003-10-18  Alexandre Oliva  <aoliva@redhat.com>
193
194         * final.c (final_scan_insn): Run FINAL_PRESCAN_INSNS on asm insns
195         as well.
196
197 2003-10-18  Richard Sandiford  <rsandifo@redhat.com>
198
199         * rtl.h (rtl_size): Declare.
200         (rtunion): Remove rtwint.
201         (rtx_def): Replace 'fld' with a union of an rtunion or a HOST_WIDE_INT.
202         (RTX_HDR_SIZE, RTX_SIZE): New macros.
203         (RTL_CHECK1): Adjust for new rtx_def layout.
204         (RTL_CHECK2, RTL_CHECKC1, RTL_CHECKC2): Likewise.
205         (XWINT, XCWINT): Likewise.  Access the rtx structure directly.
206         (X0WINT): Remove.
207         (X0ANY): New macro.
208         * rtl.def: Adjust comments for new rtx_def layout.
209         * ggc.h (ggc_alloc_rtx): Take the rtx code as argument, not the
210         number of slots.
211         * rtl.c (rtx_size): New array.
212         (rtx_alloc): Adjust call to ggc_alloc_rtx.  Use RTX_HDR_SIZE.
213         (copy_rtx): Use RTX_HDR_SIZE.  Adjust for new rtx_def layout.
214         (shallow_copy_rtx): Adjust call to ggc_alloc_rtx.  Use RTX_SIZE.
215         * integrate.c (copy_rtx_and_substitute): Use X0ANY to copy '0' fields.
216         * emit-rtl.c (copy_most_rtx): Likewise.
217         (copy_rtx_if_shared): Use RTX_SIZE.
218         (copy_insn_1): Use RTX_HDR_SIZE.  Adjust for new rtx_def layout.
219         * gengenrtl.c (gendef): Adjust ggc_alloc_rtx call.  Use RTX_HDR_SIZE.
220         * gengtype.c (write_rtx_next): Use RTX_HDR_SIZE.
221         (adjust_field_rtx_def): Expect "rtx_def" to be a union rather than
222         an array.  Adjust output for new rtx_def layout.
223         * ggc-page.c (RTL_SIZE): Use RTX_HDR_SIZE.
224         * reload1.c (eliminate_regs): Use RTX_SIZE.
225         * rtlanal.c (loc_mentioned_in_p): Adjust for new rtx_def layout.
226         * gdbinit.in (pi): Likewise.
227
228 2003-10-18  Jan Hubicka  <jh@suse.cz>
229
230         * integrate.c (copy_decl_for_inlining): Revert previous patch.
231
232 2003-10-18  Jan Hubicka  <jh@suse.cz>
233
234         * integrate.c (copy_decl_for_inlining): Fix copying of copies.
235
236 2003-10-18  Roger Sayle  <roger@eyesopen.com>
237
238         * libgcc.texi: Group multi-word types, such as "long double" and
239         "unsigned int", using braces in @deftypefn and @deftypefnx nodes.
240         Document __unord?f2 as returning a non-zero value, not just one.
241
242 2003-10-18  Hans-Peter Nilsson  <hp@bitrange.com>
243
244         * config/mmix/t-mmix (CRTSTUFF_T_CFLAGS): Define.
245         ($(T)crti.o, $(T)crtn.o): Pass CRTSTUFF_T_CFLAGS here too.
246
247 2003-10-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
248
249         * config/i386/k6.md (k6_alux): Use the 'mode' attribute instead of
250         match_operand.
251
252 2003-10-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
253
254         * config/sparc/sparc.c (function_arg_record_value_1): New fourth
255         parameter packed_p.  Search for a DECL_PACKED field only if
256         packed_p is false.  Pass packed_p recursively.
257         (function_arg_record_value_2): Likewise.
258         (function_arg_record_value): Update calls to
259         function_arg_record_value_1 and function_arg_record_value_2.
260
261 2003-10-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
262
263         * cse.c (cse_insn) [src_folded]: Check that the tentative replacement
264         was successfully forced to memory before using the result.
265
266 2003-10-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
267
268         PR optimization/8178
269         * config/i386/i386.md (*movsi_zero): New insn to set
270         a register to zero on TARGET_USE_MOV0 targets.
271
272 2003-10-18  Kelley Cook  <kcook@gcc.gnu.org>
273
274         * Makefile.in (Makefile): Depend on the all Make-lang.in fragments.
275         (POSTSTAGE1_FLAGS_TO_PASS): Pass down MAKEINFO and MAKEINFOFLAGS.
276
277 2003-10-17  David Edelsohn  <edelsohn@gnu.org>
278
279         * doc/invoke.texi (gcse-las): Fix typo.
280
281 2003-10-17  Andrew Pinski  <pinskia@physics.uc.edu>
282
283         * doc/install.texi: Remove first part of the sentence for
284         zsh not working.  Change gcc to GCC.
285
286         PR bootstrap/12546
287         * doc/install.texi: Document that zsh does not work when
288         configuring gcc.
289
290 2003-10-17  Nathanael Nerode  <neroden@gcc.gnu.org>
291
292         * config/ptx4.h: Switch to DWARF 2; update comments.
293
294 2003-10-17  Segher Boessenkool  <boessen@de.ibm.com>
295             Hartmut Penner  <hpenner@de.ibm.com>
296
297         PR 10404, partial 11591, partial 11601
298         * config/rs6000/altivec.md ("altivec_dst", "altivec_dstt",
299         "altivec_dstst", "altivec_dststt", "altivec_lvsl", "altivec_lvsr",
300         "altivec_lvebx", "altivec_lvehx", "altivec_lvewx", "altivec_lvxl",
301         "altivec_lvx", "altivec_stvx", "altivec_stvxl", "altivec_stvebx",
302         "altivec_stvehx", "altivec_stvewx"): Use a memory_operand.
303         * config/rs6000/rs6000.c (altivec_expand_lv_builtin): New function.
304         (altivec_expand_stv_builtin): Adjust for the memory_operand.
305         (altivec_expand_builtin): Call altivec_expand_lv_builtin.
306         (altivec_init_builtins): Use `long int' for memory offsets.
307
308 2003-10-17  Jan Hubicka  <jh@suse.cz>
309
310         * opts.c  (common_handle_option): Handle OPT_fweb
311         * invoke.texi (-fweb): Add missing parts of documentation.
312
313 2003-10-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
314
315         * config/mips/linux.h (FUNCTION_NAME_ALREADY_DECLARED): Undef
316         before redefinition.
317
318 2003-10-17  Mostafa Hagog  <mustafa@il.ibm.com>
319
320         * common.opt: Add description of the new -fgcse-las flag.
321         * flags.h (flag_gcse_las): Declaration of global flag_gcse_las.
322         * gcse.c (hash_scan_set): Handle the case of store expression and
323         insert the memory expression to the hash table, this way we make it
324         possible to discover redundant loads after stores and remove them.
325         (pre_insert_copy_insn): moved the call to update_ld_motion_stores,
326         to pre_insert_copies, it is not the correct place to call it after
327         adding stores to be in the available expression hash table.
328         (pre_insert_copies): Added the call to update_ld_motion_stores when
329         one or more copies were inserted.
330         * opts.c (common_handle_option): Handle the -fgcse-las flag.
331         * toplev.c (flag_gcse_las): Initialization of flag_gcse_las.
332
333         * doc/invoke.tex: Document new -fgcse-las flag.
334
335 2003-10-18  Alan Modra  <amodra@bigpond.net.au>
336
337         * config/rs6000/crtsavres.asm: Correct alignment of powerpc64 code
338         for posterity, then remove it.
339
340 2003-10-17  Richard Earnshaw <rearnsha@arm.com>
341             Nathan Sidwell  <nathan@codesourcery.com>
342
343         * config/arm/arm.c (use_return_insn): Not a single instruction, if
344         there's a frame pointer.
345         (arm_output_epilogue): Protect stack pointer from being corrupted
346         on interrupt.
347
348 2003-10-17  Ulrich Weigand  <uweigand@de.ibm.com>
349
350         * ifcvt.c (noce_try_addcc): Handle ifs with 'else' case.
351
352 2003-10-17  Ulrich Weigand  <uweigand@de.ibm.com>
353
354         * combine.c (simplify_set): Do not clear out undobuf.other_insn
355         already set elsewhere.
356
357 2003-10-17  Kelley Cook  <kcook@gcc.gnu.org>
358
359         * config/i386/i386.c (ix86_expand_prologue):  Use
360         gen_allocate_stack_worker.
361
362 2003-10-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
363
364         * config.gcc (mips-sgi-irix6*o32): Only enable use_collect2
365         without gas.
366         (mips-sgi-irix6*): Likewise.
367
368         * config/mips/iris6gas.h: New file.
369         * gcc/config.gcc (mips-sgi-irix6*): Use it.
370
371         * config/mips/mips.h (TARGET_IRIX): Provide default.
372         (TARGET_IRIX5): Likewise.
373         (TARGET_SGI_O32_AS): Likewise.
374         * config/mips/iris5.h (TARGET_IRIX): Redefine as 1.
375         (TARGET_IRIX5): Likewise.
376         * config/mips/iris6.h (TARGET_IRIX6): Remove.
377         (TARGET_IRIX5): Redefine as 0.
378
379         * config/mips/mips.c (mips_output_external): Test for IRIX 6 O32
380         linker workaround with TARGET_IRIX and mips_abi instead of
381         ASM_OUTPUT_UNDEF_FUNCTION.
382         (mips_file_end): Inline old ASM_OUTPUT_UNDEF_FUNCTION definition,
383         testing TARGET_IRIX and mips_abi explicitly.
384         * config/mips/iris5.h (ASM_OUTPUT_UNDEF_FUNCTION): Remove.
385         * config/mips/iris6.h (ASM_OUTPUT_UNDEF_FUNCTION): Remove undef.
386
387         * config/mips/mips.c (irix_output_external_libcall): Renamed from
388         mips_output_external_libcall.
389         Use new TARGET_IRIX in guard.
390         * config/mips/mips-protos.h (irix_output_external_libcall): Match
391         this.
392         * config/mips/iris5.h (TARGET_ASM_EXTERNAL_LIBCALL): Likewise.
393
394         * config/mips/iris5gas.h (HAVE_GAS_SHF_MERGE): Update comment.
395         Define as 0.
396
397         * config/mips/iris6.h (FUNCTION_NAME_ALREADY_DECLARED): Define
398         depending on mips_abi.
399         * config/mips/linux.h (FUNCTION_NAME_ALREADY_DECLARED): Define as 1.
400         * config/mips/mips.c (mips_output_function_prologue): Test
401         FUNCTION_NAME_ALREADY_DECLARED at runtime.
402         (mips_output_function_epilogue): Likewise.
403         (build_mips16_function_stub): Likewise.
404         (build_mips16_call_stub): Likewise.
405         * config/mips/mips.h (FUNCTION_NAME_ALREADY_DECLARED): Provide
406         default.
407
408         * config/mips/iris6.h (DWARF2_UNWIND_INFO): Don't define for native
409         IRIX 6 O32 assembler.
410         (SUBTARGET_CC1_SPEC): Enforce mips2 ISA with O32 ABI.
411         (TARGET_OS_CPP_BUILTINS): Define _ABIO32, use it to define
412         _MIPS_SIM for O32 ABI.
413         (DWARF2_FRAME_INFO): Don't define for native IRIX 6 O32 assembler.
414         (ASM_DECLARE_FUNCTION_NAME): Integrate mips.h version.
415         (ASM_DECLARE_FUNCTION_SIZE): Move undef before redefinition.
416         Integrate O32 version.
417         (SUBTARGET_ASM_SPEC): Handle -mabi=32.
418         (SUBTARGET_ASM_DEBUGGING_SPEC): Add mdebug_asm_spec for gas with
419         O32 ABI.
420         (BSS_SECTION_ASM_OP_32): Define.
421         (BSS_SECTION_ASM_OP_64): Likewise.
422         (BSS_SECTION_ASM_OP): Define differently for O32 and N32/N64 ABIs
423         using them.
424         (TARGET_ASM_NAMED_SECTION): Reflect renaming.
425         Move up to allow override for O32 ABI without GNU as.
426         (EH_FRAME_SECTION_NAME): Define explicitly.
427         (MUST_USE_SJLJ_EXCEPTIONS): Define.
428         [_MIPS_SIM == _ABIO32 && !GAS] (CTORS_SECTION_ASM_OP,
429         DTORS_SECTION_ASM_OP): Dummy definitions.
430         (TARGET_ASM_NAMED_SECTION): Undef statically.
431         (EH_FRAME_SECTION_NAME): Likewise.
432         (ASM_OUTPUT_FILENAME): Integrate mips.h version.
433         (LINK_SPEC): Only use default options -call_shared -no_unresolved
434         without -r.
435         Don't pass -init, -fini with -mabi=32.
436         (COLLECT_PARSE_FLAG): Define.
437
438         * config/mips/mips.c (iris6_asm_named_section_1): Changed guard to
439         TARGET_IRIX.
440         Renamed to use irix_ prefix.
441         (iris6_asm_named_section): Likewise.
442         (iris_section_align_entry_eq): Likewise.
443         (iris_section_align_entry_hash): Likewise.
444         (iris6_file_start): Likewise.
445         (iris6_section_align_1): Likewise.
446         (iris6_file_end): Likewise.
447         (iris6_section_type_flags): Likewise.
448         (iris_section_align_htab): Likewise.
449         (iris_orig_asm_out_file): Likewise.
450         [TARGET_IRIX] (TARGET_ASM_FILE_START): Reflect rename.
451         (TARGET_ASM_FILE_END): Likewise.
452         (TARGET_SECTION_TYPE_FLAGS): Likewise.
453
454         * config/mips/mips.c [TARGET_IRIX5 && !TARGET_IRIX6]
455         (TARGET_ASM_UNALIGNED_HI_OP): Use runtime initialization in
456         override_options instead.
457         (TARGET_ASM_UNALIGNED_SI_OP): Likewise.
458         (TARGET_ASM_UNALIGNED_DI_OP): Likewise.
459         * config/mips/mips.c (override_options) [USE_COLLECT2]: Restore
460         flag_gnu_linker to defaults without USE_COLLECT2 for non-IRIX O32
461         assemblers.
462         Likewise for constructor/destructor handling.
463         (override_options): Handle IRIX O32 assembler quirks.
464         [TARGET_IRIX] (irix_asm_named_section): Handle O32 ABI with and
465         without gas.
466         (mips_file_start): Use new TARGET_IRIX.
467         (mips_declare_object_name): No special processing for IRIX O32
468         assembler.
469         (mips_finish_declare_object): Likewise.
470         (irix_asm_output_align): Renamed from iris6_asm_output_align.
471         Don't record alignment for O32 ABI.
472         (irix_file_start): Renamed from iris6_file_start.
473         Return early for O32 ABI.
474         (irix_file_end): Renamed from iris6_file_end.
475         Don't emit .section directives for O32 ABI.
476         * config/mips/iris6.h (ASM_OUTPUT_ALIGN): Reflect renaming.
477         * config/mips/mips-protos.h (irix_asm_output_align): Likewise.
478
479         * config/mips/t-iris6 (MULTILIB_OPTIONS): Add mabi=32.
480         (MULTILIB_OSDIRNAMES): Likewise.
481
482 2003-10-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
483
484         * collect2.c (COLLECT_PARSE_FLAG): Provide default.
485         (main): Use it.
486         * doc/tm.texi (COLLECT_PARSE_FLAG): Document it.
487
488 2003-10-17  Richard Earnshaw  <rearnsha@arm.com>
489
490         * arm-modes.def (CC_Nmode): New condition code mode.
491         * arm.c (thumb_condition_code): Delete.
492         (arm_select_cc_mode): Handle single-bit test for Thumb.
493         (arm_print_operand, cases 'd' and 'D'): Don't special case the
494         condition code logic for Thumb.
495         (get_arm_condition_code): Handle CC_Nmode.
496         (thumb_cbrch_target_operand): New function.
497         * arm.h (PREDICATE_CODES): Add thumb_cbrch_target_operand.
498         * arm-protos.h (thumb_cbrch_target_operand): Add prototype.
499         * arm.md: Add Thumb split patterns for zero_extract and
500         sign_extract.
501         (tbit_cbranch, andsi3_cbranch_scratch, andsi3_cbranch)
502         (orrsi3_cbranch_scratch, orrsi3_cbranch, xorsi3_cbranch_scratch)
503         (xorsi3_cbranch, addsi3_cbranch, addsi3_cbranch_scratch)
504         (subsi3_cbranch, subsi3_cbranch_scratch): New Thumb patterns.
505         (cbranchne_decr1): Re-work to use CC_Nmode.
506
507         * arm.c (thumb_expand_epilogue): Add clobbers of registers restored
508         by the return instruction.  Add a use of the link register if it
509         wasn't stored.
510
511 2003-10-17  Richard Earnshaw  <rearnsha@arm.com>
512
513         * flow.c (init_propagate_block_info): Don't abort if a conditional
514         jump is not a comparison of a register.  Instead, just don't record
515         conditional life information.
516
517 2003-10-16  Jan Hubicka  <jh@suse.cz>
518
519         PR optimization/12630
520         * pa.md (movstrsi, movstrsi_internal): Use match_scratch in clobbers
521         for operands 7 and 8.
522
523 2003-10-16  Kelley Cook  <kcook@gcc.gnu.org>
524
525         * objc/Make-lang.in (objc-parse.o): Honor $(parsedir) for objc-parse.c.
526
527 2003-10-16  Danny Smith  <dannysmith@users.sourceforge.net>
528
529         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Define.
530
531         * config/i386/winnt.c (gen_stdcall_suffix): Make static
532         (gen_fastcall_suffix): Likewise.
533         (i386_pe_dllexport_p): Likewise.
534         (i386_pe_dllimport_p): Likewise.
535         (i386_pe_mark_dllexport): Likewise.
536         (i386_pe_mark_dllimport): Likewise.
537         (i386_pe_asm_named_section): Fix formatting.
538
539 2003-10-16  Zack Weinberg  <zack@codesourcery.com>
540
541         * configure.in: Add snprintf to gcc_AC_CHECK_DECLS list.
542         * system.h: Declare snprintf if necessary.
543         * configure, config.in: Regenerate.
544
545 2003-10-15  David Edelsohn  <edelsohn@gnu.org>
546
547         * config/rs6000/rs6000.c (rs6000_va_arg): Only align vector
548         arguments if TARGET_ALTIVEC_ABI.
549
550 2003-10-15  Roger Sayle  <roger@eyesopen.com>
551
552         * builtins.c (fold_builtin_memcpy, fold_builtin_mempcpy,
553         fold_builtin_memmove, fold_builtin_strcpy, fold_builtin_strncpy,
554         fold_builtin_memcmp, fold_builtin_strcmp, fold_builtin_strncmp):
555         New functions.
556         (expand_builtin_memcpy): Use integer_zerop instead of testing
557         host_integerp and tree_low_cst directly.  Move misapplied hunk
558         for optimization wher SRC and DEST point to the same location.
559         (expand_builtin_mempcpy): From here.
560         (expand_builtin_memmove): Use integer_zerop instead of testing
561         host_integerp and tree_low_cst_directly.
562         (expand_builtin_memset): Likewise.
563         (expand_builtin_memcmp): Likewise (and for integer_onep).
564         (expand_builtin_strncmp): Likewise.
565         (fold_builtin): Call the appropriate fold_builtin_foo functions
566         to optimize memcpy, mempcpy, memmove, strcpy, strncpy, memcmp,
567         strcmp and strncmp.
568
569 2003-10-15  Geoffrey Keating  <geoffk@apple.com>
570
571         * config/darwin-protos.h (machopic_non_lazy_ptr_name): Delete
572         prototype.  Clean up some whitespace.
573         * config/darwin.c: Use gen_rtx_FOO (...) rather than
574         gen_rtx (FOO, ...).
575         (machopic_non_lazy_ptr_name): Make static.
576         (name_needs_quotes): Allow '.' and '$' unquoted.
577         (machopic_legitimize_pic_address): Improve codegen in dynamic-no-pic
578         case.
579
580 2003-10-15  Gábor Lóki  <alga@rgai.hu>
581
582         * fold-const.c (tree_swap_operands_p): Disable some features
583         when optimizing for size.
584
585 2003-10-15  David Daney  <ddaney@avtrex.com>
586
587         * config/mips/linux.h (MD_FALLBACK_FRAME_STATE_FOR): New
588         * config/mips/mips.h (DWARF_FRAME_REGNUM): Fixed to allow unwind
589         from leaf functions.
590         (DWARF_FRAME_RETURN_COLUMN): Ditto.
591         (SIGNAL_UNWIND_RETURN_COLUMN): New, used
592         by MD_FALLBACK_FRAME_STATE_FOR.
593         * testsuite/gcc.dg/cleanup-9.c: Added mips*-*-linux* target.
594
595 2003-10-15  Zack Weinberg  <zack@codesourcery.com>
596
597         * genmodes.c: Include hashtab.h.
598         (modes_by_name, hash_mode, eq_mode, struct mode_adjust)
599         (adj_bytesize, adj_alignment, adj_format, new_adjust)
600         (_ADD_ADJUST, ADJUST_BYTESIZE, ADJUST_ALIGNMENT, ADJUST_FORMAT)
601         (print_maybe_const_decl, emit_mode_adjustments): New.
602         (known_modes): Rename to modes.
603         (find_mode): Kill class argument; look up in hash table.
604         (new_mode): Insert into hash table also.
605         (new_adjust): New.
606         (reset_float_format, make_partial_integer_mode)
607         (make_vector_mode): Tweak error reporting.
608         (reset_float_format): Correct type of fourth argument.
609         (emit_insn_modes_h): Add #defines to help make mode_size,
610         mode_base_align, and real_format_for_mode conditionally const.
611         (emit_mode_size, emit_mode_base_align): Use print_maybe_const_decl.
612         (emit_real_format_for_mode): Likewise, but temporarily disabled.
613         (emit_insn_modes_c): Call emit_mode_adjustments.
614         (main): Initialize modes_by_name.
615         * Makefile.in: Update dependencies.
616         * machmode.def: Document EXPR arguments and new ADJUST_* statements.
617         * machmode.h: Use CONST_MODE_SIZE and CONST_MODE_BASE_ALIGN in
618         declarations of mode_size and mode_base_align.  Declare
619         init_adjust_machine_modes.
620         * toplev.c (backend_init): Call init_adjust_machine_modes.
621
622 2003-10-15  Olivier Hainque  <hainque@act-europe.fr>
623
624         * genmodes.c (calc_wider_mode): Allocate enough room for all the
625         entries we'll possibly assign in the sort buffer.
626
627 2003-10-15  Ulrich Weigand  <uweigand@de.ibm.com>
628
629         * config.gcc (s390x-ibm-tpf*): New target.
630         * doc/install.texi: Document it.
631         * config/s390/t-tpf: New file.
632         * config/s390/tpf.h: New file.
633
634 2003-10-15  Hans-Peter Nilsson  <hp@axis.com>
635
636         PR target/12598
637         * config/cris/cris.md (define_split "*mov_sidesi_biap_mem"+1)
638         (define_splits "*mov_sidesi_mem"+1, "casesi"+9, +10, +11, +12):
639         Use cris_mem_op and replace_equiv_address, not gen_rtx_MEM.
640         ("call", "call_value", define_split "*mov_sidesi_mem"+19, +20)
641         (define_split "*mov_sidesi_mem"+21, +22, +23, +24, +25, +26, +27)
642         (define_split "*mov_sidesi_mem"+28, +29, +30): Use
643         replace_equiv_address, not gen_rtx_MEM.
644         * config/cris/cris.c (cris_mem_op): New match_operator function.
645         (cris_notice_update_cc): Use replace_equiv_address, not
646         gen_rtx_MEM.
647         * config/cris/cris.h (PREDICATE_CODES): Add cris_mem_op.
648
649 2003-10-15  Bernardo Innocenti <bernie@develer.com>
650
651         * config/m68k/m68k.h (MASK_SEP_DATA, TARGET_SEP_DATA,
652         MASK_ID_SHARED_LIBRARY, TARGET_ID_SHARED_LIBRARY): Move
653         definitions after the other flags.
654
655 2003-10-14  Ziemowit Laski  <zlaski@apple.com>
656
657         * c-parse.in (methoddef, methodproto): Call objc_add_method()
658         instead of add_method().
659         * objc/objc-act.c (objc_check_decl): Do not check for
660         constant_string_type.
661         (add_method): Rename to objc_add_method().
662         (really_start_method): Call objc_add_method() instead of
663         add_method().
664         * objc/objc-act.h (add_method): Rename to objc_add_method().
665
666 2003-10-14  Ulrich Weigand  <uweigand@de.ibm.com>
667
668         * config/s390/s390-protos.h (s390_alc_comparison): Add prototype.
669         (s390_slb_comparison): Likewise.
670         * config/s390/s390.c (s390_alc_comparison, s390_slb_comparison):
671         New functions.
672         * config/s390/s390.h (PREDICATE_CODES): Add s390_alc_comparison
673         and s390_slb_comparison.
674         * config/s390/s390.md ("*adddi3_31", "*subdi3_31"): Do not use on
675         zSeries machines.
676         ("*adddi3_31z", "*subdi3_31z"): New insns.
677         ("*adddi3_alc_cc", "*adddi3_alc", "*subdi3_slb_cc", "*subdi3_slb",
678         "*addsi3_alc_cc", "*addsi3_alc", "*subsi3_slb_cc", "*subsi3_slb"):
679         New insns.
680
681 2003-10-14  Nathanael Nerode  <neroden@gcc.gnu.org>
682
683         * configure.in: Clean up some feedback echoes.
684         * configure: Regenerate.
685
686         * aclocal.m4: Properly quote names of macros being defined.
687
688         * config.gcc (am33_2.0-*-linux*): Use t-slibgcc-elf-ver.
689
690 2003-10-14  Steve Ellcey  <sje@cup.hp.com>
691
692         * config/ia64/ia64.c (ia64_expand_call): Force function address
693         to DImode.
694         * config/ia64/ia64.md (call_gp): Put DImode on operand 0.
695
696 2003-10-14  Ulrich Weigand  <uweigand@de.ibm.com>
697
698         * config/s390/s390.md ("muldf3", "*muldf3", "*muldf3_ibm",
699         "mulsf3", "*mulsf3", "*mulsf3_ibm"): Do not clobber CC.
700         ("divdf3", "*divdf3", "*divdf3_ibm", "divsf3", "*divsf3",
701         "*divsf3_ibm"): Likewise.
702
703 2003-10-14  Nathanael Nerode  <neroden@gcc.gnu.org>
704
705         * config.gcc, config/m68hc11/t-m68hc11-gas: Replace uses of
706         target_alias with target_noncanonical.
707
708 2003-10-14  Geoffrey Keating  <geoffk@apple.com>
709
710         * expr.c (block_move_libcall_safe_for_call_parm): Clean up,
711         and add case for machines where outgoing register parameters
712         get stack space.
713
714         * config/darwin.c (machopic_indirect_data_reference): Use a scratch
715         register when generating indirect address.
716
717 2003-10-14  Richard Earnshaw  <rearnsha@arm.com>
718
719         * arm.c (arm_addimm_operand): MODE arguemnt is unused.
720         * arm.md (cbranchne_decr1): Fix bootstrap warning.
721
722 2003-10-14  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
723
724         * fixinc/inclhack.def (alpha_pthread_gcc): New fix.
725         * fixinc/fixincl.x: Regenerate.
726         * fixinc/tests/base/pthread.h [ALPHA_PTHREAD_GCC_CHECK]: New
727         testcase.
728         Fixes PR bootstrap/9330.
729
730 2003-10-13  Eric Christopher  <echristo@redhat.com>
731
732         * config/frv/frv.c (frv_adjust_field_align): Redo check for
733         too wide bitfields.
734         (frv_hard_regno_mode_ok): Add SPR_P and AP_FIRST.
735         * config/frv/frv.h (FUNCTION_PROFILER): Remove abort call.
736         (SBSS_SECTION_ASM_OP): Remove.
737         (EXTRA_SECTIONS): Remove in_sbss.
738         (EXTRA_SECTION_FUNCTIONS): Remove SBSS_SECTION_FUNCTION.
739         (SBSS_SECTION_FUNCTION, sbss_section): Remove.
740         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Change sbss_section to
741         named_section.
742
743 2003-10-13  Nathanael Nerode  <neroden@gcc.gnu.org>
744
745         * Makefile.in, configure.in, config.host, mkheaders.in: Replace
746         uses of ${target_alias} for directory names (and other places which
747         won't like the empty string) with ${target_noncanonical}.  Introduce
748         call early in configure.in to _GCC_TOPLEV_NONCANONICAL_TARGET so it's
749         available.
750         * configure: Regenerate.
751
752 2003-10-13  Ian Lance Taylor  <ian@wasabisystems.com>
753
754         * config/arm/iwmmxt.md (cond_iwmmxt_movsi_insn): New pattern.
755         * config/arm/arm.md: For splits which rely on conditional moves,
756         remove ! TARGET_IWMMXT condition.
757
758 2003-10-13  David S. Miller  <davem@redhat.com>
759
760         * ifcvt.c (num_removed_blocks): Rename to num_true_changes.
761         (find_cond_trap): Always increment if we emit a conditional
762         trap insn.
763
764 2003-10-13  Zack Weinberg  <zack@codesourcery.com>
765
766         * Makefile.in (BUILD_RTL): Replace $(BUILD_PREFIX)insn-modes.o
767         with min-insn-modes.o.
768         (STAGESTUFF): Add min-insn-modes.c.
769         (genobjs): Add genmodes.o.
770         (print-rtl.o, print-rtl1.o): Depend on $(TM_P_H).
771         (insn-modes.o): Depend on $(TM_H) not $(GTM_H); also real.h.
772         (min-insn-modes.c, min-insn-modes.o): New rules.
773         (s-modes): Also generate min-insn-modes.c.
774         ($(BUILD_PREFIX_1)insn-modes.o): Kill.
775         * genmodes.c (struct mode_data): Add format field.
776         (blank_mode, validate_mode, complete_mode): Update to match.
777         (make_scalar_mode): Separate into make_int_mode and make_float_mode.
778         (_SCALAR_MODE): Kill.
779         (FLOAT_MODE, FRACTIONAL_FLOAT_MODE): Add format argument.
780         (emit_insn_modes_c_header): Adjust.
781         (emit_min_insn_modes_c_header, emit_real_format_for_mode)
782         (emit_min_insn_modes_c): New functions.
783         (emit_insn_modes_c): Call emit_real_format_for_mode.
784         (main): Add -m option to generate min-insn-modes.c.
785         * machmode.h: Update documentation.  Add format argument to
786         all uses of FLOAT_MODE.
787         * real.c: Don't define real_format_for_mode here.
788
789         * dwarfout.c: Move default definition of PRINT_REG...
790         * defaults.h: ...here.
791         * print-rtl.c: Include tm_p.h.
792         (DEBUG_PRINT_REG, DEBUG_REGISTER_NAMES, debug_reg_names, reg_names):
793         Kill.
794         (print_rtx): Use PRINT_REG, not DEBUG_PRINT_REG.  But surround
795         this entire block with #ifndef GENERATOR_FILE.
796         * regclass.c: Unconditionally define reg_names.
797         * config/mips/mips.h, config/rs6000/rs6000.h, config/sh/sh.h
798         Don't define DEBUG_REGISTER_NAMES.
799         * config/rs6000/darwin.h: Don't use DEBUG_REGISTER_NAMES in
800         redefinition of REGISTER_NAMES.
801         * config/i386/i386.h: Don't define DEBUG_PRINT_REG.
802
803         * combine.c: Change all preprocessor conditionals on
804         EXTRA_CC_MODES to use SELECT_CC_MODE instead; rearrange a bit
805         for clarity.
806         * genopinit.c: Remove mention of EXTRA_CC_MODES in comment.
807         * configure.in: Don't define EXTRA_CC_MODES.
808         * configure, config.in: Regenerate.
809         * doc/tm.texi: Remove documentation of EXTRA_CC_MODES.
810
811         * config/arc/arc.c, config/m32r/m32r.c, config/sparc/sparc.c:
812         May assume that GET_MODE_CLASS is accurate for extra CC modes
813         at all times.
814
815         * config/i860/i860.h (INIT_CUMULATIVE_ARGS): Pass correct
816         number of arguments to aggregate_value_p.
817
818         * genmodes.c (RESET_FLOAT_FORMAT, reset_float_format): New.
819         * machmode.def: Explain ARCH-modes.def.  Document
820         RESET_FLOAT_FORMAT.  Improve commentary on various mode
821         clusters.  Do not define OI, PQI, PHI, PSI, PDI, QF, HF, TQF,
822         XF, or TF modes here.  Remove backward-compatibility
823         definition of CC.
824
825         * config/alpha/alpha-modes.def: New file; define TF mode.
826         * config/arc/arm-modes.def: Define XF mode.
827         * config/c4x/c4x-modes.def: Define QF and HF modes.  Unset
828         float format for SF and DF modes.
829         * config/dsp16xx/dsp16xx-modes.def: New file; define HF mode.
830         * config/i386/i386-modes.def: Define XF and TF modes.
831         * config/i960/i960-modes.def: Define TF mode.
832         * config/ia64/ia64-modes.def: Define TF and OI modes.
833         * config/m68k/m68k-modes.def: New file; define XF mode.
834         * config/mips/mips-modes.def: New file; define TF mode, reset
835         formats for SF and DF modes.
836         * config/pa/pa-modes.def: Define TF mode.
837         * config/rs6000/rs6000.c: Define TF and PSI modes.
838         * config/s390/s390-modes.def: Define OI mode.
839         * config/sh/sh-modes.def: New file; define PSI mode.
840         * config/sparc/sparc-modes.def: Define TF mode.
841         * config/vax/vax-modes.def: New file; reset formats for SF and
842         DF modes.
843
844         * config/c4x/c4x.c (c4x_override_options): No need to mess
845         with real_format_for_mode or set REAL_MODE_FORMATs.
846         (c4x_immed_int_constant): Don't apply GET_MODE_CLASS to rtx
847         variable.
848         * config/i386/i386.c (override_options): No need to set
849         REAL_MODE_FORMATs here.
850         * config/i960/i960.c (i960_initialize): Likewise.
851         * config/m68k/m68k.c (m68k_override_options): Likewise.
852         * config/ia64/ia64.c (ia64_override_options): Set REAL_MODE_FORMAT
853         for TFmode only if not the default.
854         * config/mips/mips.c (override_options): Likewise.
855         * config/vax/vax.c (override_optionms): Set REAL_MODE_FORMAT for
856         DFmode only if not the default.
857
858         * config/i370/i370.h (RET_REG): Don't consider TFmode.
859         * config/m68hc11/m68hc11.c (print_operand): Don't consider XFmode.
860         * config/dsp16xx/dsp16xx.c (hard_regno_mode_ok): #if 0 out use
861         of modes that don't appear anywhere in the machine description.
862
863         * config/arc/arc-modes.def, config/arm/arm-modes.def
864         * config/c4x/c4x-modes.def, config/frv/frv-modes.def
865         * config/i386/i386-modes.def, config/i960/i960-modes.def
866         * config/ia64/ia64-modes.def, config/mmix/mmix-modes.def
867         * config/pa/pa-modes.def, config/pdp11/pdp11-modes.def
868         * config/rs6000/rs6000-modes.def, config/s390/s390-modes.def
869         * config/sparc/sparc-modes.def: Convert to new style for
870         declaring extra CC modes.
871
872 2003-10-13  Zack Weinberg  <zack@codesourcery.com>
873
874         * cpplex.c (_cpp_clean_line): In the common case of a line
875         with no trigraphs and no \-newline, avoid writing to memory.
876         (_cpp_skip_block_comment): Use a local 'cur' pointer instead
877         of the buffer member.  Make c an uchar to avoid unnecessary
878         sign extensions.
879
880 2003-10-13  Nathanael Nerode  <neroden@gcc.gnu.org>
881
882         * configure.in: Remove unnecessary test.
883         * configure: Regenerate.
884
885         * configure.in: Fix grammatical error.  Move UWIN host error to...
886         * config.host: Here.
887         * configure: Regenerate.
888
889 2003-10-13  Andreas Krebbel  <krebbel1@de.ibm.com>
890
891         * config/s390/s390.md ("*fmadddf4", "*fmsubdf4", "*fmaddsf4",
892         "*fmsubsf4"): Insns are now dependent on TARGET_FUSED_MADD instead
893         of flag_unsafe_math_optimizations.
894         * config/s390/s390.h ("MASK_NO_FUSED_MADD", "TARGET_NO_FUSED_MADD",
895         "TARGET_FUSED_MADD", "TARGET_SWITCHES"): Introduced new target flags
896         fused-madd and no-fused-madd.
897         * doc/invoke.texi: Documented the new options fused-madd and
898         no-fused-madd for S/390.
899
900 2003-10-14  Alan Modra  <amodra@bigpond.net.au>
901
902         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Choose
903         MASK_ALIGN_NATURAL if rs6000_alignment_string not given.  Don't
904         assign DEFAULT_ABI.
905         (ADJUST_FIELD_ALIGN, ROUND_TYPE_ALIGN): Update comment.
906         * config/rs6000/rs6000.c: Formatting.
907         (rs6000_parse_alignment_option): Only set rs6000_alignment_flags
908         when rs6000_alignment_string given.
909
910 2003-10-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
911
912         PR target/12538
913         * config/sparc/sparc.c (MUST_SAVE_REGISTER): Delete.
914         (sparc_flat_must_save_register_p): New function to decide whether
915         a register must be saved/restored in the function prologue/epilogue.
916         (sparc_flat_compute_frame_size): Use it instead of MUST_SAVE_REGISTER.
917
918 2003-10-12  Steven Bosscher  <steven@gcc.gnu.org>
919
920         * config/avr/avr.c, config/avr/avr-protos.h: Convert to
921         ISO C90 function declarations and definitions.
922         * config/sh/sh.c, config/sh/sh-protos.h: Likewise.
923
924 2003-10-12  Nathanael Nerode  <neroden@gcc.gnu.org>
925
926         * config.gcc (*-*-freebsd*): Use tm_defines instead of tiny
927         config files which do the same thing.
928         * config/freebsd3.h, config/freebsd4.h, config/freebsd5.h,
929         config/freebsd6.h: Remove now unnecessary files.
930
931 2003-10-12  Steven Bosscher  <steven@gcc.gnu.org>
932
933         * c-common.c (c_common_truthvalue_conversion): Warn if the
934         address of a non-weak function is used as a truth value.
935
936 2003-10-12  Kazu Hirata  <kazu@cs.umass.edu>
937
938         * config/h8300/h8300.c (WORD_REG_USED): Use SP_REG instead of
939         a literal.
940         * config/h8300/h8300.h (REGNO_OK_FOR_BASE_P): Use MAC_REG
941         instead of a literal.
942
943 2003-10-12  Hans-Peter Nilsson  <hp@bitrange.com>
944
945         * doc/extend.texi (Function Attributes): Mention the exceptional
946         path for noreturn-marked functions.
947
948 2003-10-12  Jan Hubicka  <jh@suse.cz>
949
950         * cgraphunit.c (cgraph_decide_inlining): Fix uninitialized variable
951         warning.
952
953 2003-10-12  Danny Smith  <dannysmith@users.sourceforge.net>
954
955         * config/i386/i386.c (x86_this_parameter): Fix typo.
956
957 2003-10-11  Jan Hubicka  <jh@suse.cz>
958
959         * Makefile.in (web.o): New.
960         * web.c: New file.
961         * rtl.h (web_main): Declare.
962         * timervar.def (TV_WEB): New.
963         * toplev.c (dump_file_index, dump_file_info): Add DFI_web.
964         (rest_of_hanle_web): New.
965         (flag_web): New static variable.
966         (lang_independent_options): Add "web".
967         (rest_of_compilation): Call rest_of_handle_web.
968         * invoke.texi (-fweb): Document.
969         * common.opt (fweb): New.
970         * flags.h (flag_web): New.
971         * opts.c (decode_options): Set flag_web at -O3.
972
973         * passes.texi (web construction):  Document.
974         * invoke.texi (-O3): Document that -fweb is enabled.
975
976         * regrename.c (regrename_optimize): Deal better with situation when
977         replacement failed.
978
979         * sched-ebb.c: Include params.h and profile.h
980         (schedule_ebbs):  Use tracer parameters to discover superblocks
981         * Makefile.in (sched-ebb.o):  Add dependencies.
982
983 2003-10-11  Roger Sayle  <roger@eyesopen.com>
984
985         * fold-const.c (negate_mathfn_p): New function to determine whether
986         a built-in mathematical function is sign preserving, f(-x) == -f(x).
987         Add support for BUILT_IN_ASIN, BUILT_IN_ASINF and BUILT_IN_ASINL.
988         (tree_swap_operands_p): Change API to take an additional argument
989         indicating that the swapped operands evaluate in reverse order.
990         Canonicalize VAR_DECLs and PARM_DECLs last if we can, i.e. neither
991         operand side-effects or we don't care about flag_evaluation_order.
992         (reorder_operands_p): New function to check whether its safe to
993         evaluate the given operands in reverse order.
994         (negate_expr_p):  We can always negate integer constants unless
995         we honor -ftrapv and the signed type would overflow.  Only allow
996         -(A-B) into B-A if reorder_operands_p says that its OK.  Allow
997         negation of COMPLEX_CST if both real and imaginary parts can be
998         negated.  Allow negation through floating point extensions and
999         sign-preserving built-in functions.
1000         (negate_expr):  Move the code to negate integers from "fold" to
1001         here.  Always negate integer constants unless we honor -ftrapv
1002         and the signed type would overflow.  Always negate real constants
1003         unless we honor -ftrapping-math.  Only convert -(A-B) into B-A
1004         if allowed by reorder_operands_p.  Add support for COMPLEX_CST.
1005         Optimize negation through floating point extensions and
1006         sign-preserving built-in functions (as defined by negate_mathfn_p).
1007         (fold): Adjust calls to tree_swap_operands_p.
1008         (fold <NEGATE_EXPR>): Move the remaining negation optimizations
1009         to negate_expr_p/negate_expr.
1010         (fold <MINUS_EXPR>): Use reorder_operands_p to check whether we're
1011         allowed to convert (-A) - B into (-B) - A.
1012
1013 2003-10-11  Roger Sayle  <roger@eyesopen.com>
1014
1015         * builtins.c (expand_builtin_strcmp): Defend against the possibility
1016         that gen_cmpstrsi may fail: Stabilize the argument list against
1017         re-evaluation and expand the library call directly using this saved
1018         argument list if a cmpstrsi sequence can't be generated.
1019         (expand_builtin_strncmp): Likewise.
1020
1021         * config/i386/i386.md (cmpstrsi, movstrsi): Disable with -Os.
1022
1023 2003-10-11  Roger Sayle  <roger@eyesopen.com>
1024
1025         PR optimization/12260
1026         * simplify-rtx.c (simplify_unary_operation): Simplify all unary
1027         operations through CONST nodes.  Optimize (neg (plus X C)) as
1028         (minus -C X) for constant values C.
1029         (simplify_binary_operation): Optimize (minus (neg X) C) as
1030         (minus -C X) for constant values C.
1031         (simplify_plus_minus): Avoid creating (neg (const (plus X C)),
1032         instead create (minus -C X).
1033
1034 2003-10-11  Roger Sayle  <roger@eyesopen.com>
1035
1036         * expr.c (expand_expr <PLUS_EXPR>): Let expand_operands call
1037         safe_from_p for us, once it chooses an evaluation order.
1038         (expand_expr <MULT_EXPR>): Likewise.
1039         (expand_expr <MIN_EXPR> <MAX_EXPR>): Likewise.  If expand_operands
1040         places the second operand in "target", swap the operands.
1041         (do_store_flag): Let expand_operands call safe_from_p for us.
1042
1043 2003-10-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
1044
1045         PR optimization/12544
1046         * function.c (put_var_into_stack): Don't generate ADDRESSOFs
1047         for DECL_NONLOCAL decls.
1048
1049 2003-10-11  Kazu Hirata  <kazu@cs.umass.edu>
1050
1051         * expr.c: Follow spelling conventions.
1052         * final.c: Likewise.
1053         * optabs.c: Likewise.
1054         * sched-deps.c: Likewise.
1055         * sdbout.c: Likewise.
1056
1057 Sat Oct 11 12:24:23 CEST 2003  Jan Hubicka  <jh@suse.cz>
1058
1059         * varasm.c (notice_global_symbol):  Fix handling of variables; avoid
1060         re-computing of variable.
1061
1062 2003-10-11  Richard Henderson  <rth@redhat.com>
1063
1064         * config/alpha/alpha.c (alpha_return_in_memory): Rename from
1065         return_in_memory, make static, change signature to match target hook.
1066         (alpha_setup_incoming_varargs): Make static, change signature to
1067         match target hook, add code for vms and unicos.
1068         (TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN,
1069         TARGET_PROMOTE_PROTOTYPES, TARGET_STRUCT_VALUE_RTX,
1070         TARGET_RETURN_IN_MEMORY, TARGET_SETUP_INCOMING_VARARGS,
1071         TARGET_STRICT_ARGUMENT_NAMING,
1072         TARGET_PRETEND_OUTGOING_VARARGS_NAMED): New.
1073         * config/alpha/alpha-protos.h: Update.
1074         * config/alpha/alpha.h (PROMOTE_FUNCTION_ARGS,
1075         PROMOTE_FUNCTION_RETURN, RETURN_IN_MEMORY,
1076         SETUP_INCOMING_VARARGS): Remove.
1077         * config/alpha/unicosmk.h (SETUP_INCOMING_VARARGS): Remove.
1078         * config/alpha/vms.h (SETUP_INCOMING_VARARGS): Remove.
1079
1080 2003-10-11  Ian Lance Taylor  <ian@wasabisystems.com>
1081
1082         * config/arm/arm.c (arm_regno_class): Handle IWMMXT_GR_REGS.
1083
1084 2003-10-11  Kazu Hirata  <kazu@cs.umass.edu>
1085
1086         * config/m68k/lb1sf68.asm: Follow spelling conventions.
1087         * config/m68k/m68k.c: Likewise.
1088         * config/m68k/m68k.h: Likewise.
1089         * config/m68k/m68k.md: Likewise.
1090
1091 2003-10-11  Roger Sayle  <roger@eyesopen.com>
1092
1093         * builtins.c (expand_builtin_memcpy): Optimize case when the two
1094         pointer arguments are the equal, non-volatile and side-effect free.
1095         (expand_builtin_mempcpy): Likewise.
1096         (expand_builtin_memmove): Likewise.
1097         (expand_builtin_strcpy): Likewise.
1098         (expand_builtin_memcmp): Likewise.
1099         (expand_builtin_strcmp): Likewise.
1100         (expand_builtin_strncmp): Likewise.
1101
1102 2003-10-11  Roger Sayle  <roger@eyesopen.com>
1103
1104         * combine.c (apply_distributive_law): Enable "distributive" floating
1105         point optimizations with -funsafe-math-optimizations.
1106
1107 2003-10-11  Andrew Pinski <pinskia@physics.uc.edu>
1108
1109         * genmodes.c (emit_mode_mask) Change MASK to MODE_MASK.
1110
1111 2003-10-11  Kazu Hirata  <kazu@cs.umass.edu>
1112
1113         * config/m68k/m68k-protos.h: Remove the prototype for
1114         finalize_pic.
1115
1116 2003-10-11  Kazu Hirata  <kazu@cs.umass.edu>
1117
1118         * config/m68k/m68k.c: Fix comment typos.
1119
1120 2003-10-11  Bernardo Innocenti  <bernie@develer.com>
1121
1122         * config/m68k/m68k-protos.h (use_return_insn): Change return type from
1123         int to bool.
1124         * config/m68k/m68k.c (struct m68k_frame): Add funcdef_no member.
1125         (current_frame): New global var.
1126         (m68k_compute_frame_layout): Cache computations in current_frame.
1127         (m68k_initial_elimination_offset): Use values from current_frame
1128         instead of recomputing them.
1129         (use_return_insn): Likewise.
1130         (m68k_output_function_prologue): Likewise.
1131         (m68k_output_function_epilogue): Likewise.
1132         * config/m68k/m68k.h (TARGET_CPU_CPP_PREDEFINES): Fold __PIC__ handling
1133         inside the block for __pic__.
1134
1135 2003-10-11  Peter Barada <peter@baradas.org>
1136             Bernardo Innocenti  <bernie@develer.com>
1137
1138         * config/m68k/m68k.c (m68k_frame): Move before protos referencing it.
1139         (m68k_save_reg): Add boolean parameter `interrupt_handler'.
1140         (m68k_interrupt_function_p): New function.
1141         (m68k_handle_fndecl_attribute): Ditto.
1142         (m68k_compute_frame_layout): Ditto.
1143         (m68k_attribute_table): Define back-end specific attributes.
1144         (m68k_output_function_epilogue): Emit RTE instruction for interrupt
1145         functions.
1146
1147 2003-10-11  Bernardo Innocenti  <bernie@develer.com>
1148
1149         * config/m68k/t-uclinux: New target Makefile fragment.
1150         * config/m68k/uclinux.h: New target macro file.
1151         * config.gcc (m68k-*-uclinux): New target definition.
1152
1153 2003-10-10  Roger Sayle  <roger@eyesopen.com>
1154
1155         * builtins.c (builtin_mathfn_code): Generalize to check whether
1156         the call is to any built-in function by comparing the call's
1157         argument list against the builtin decl's function type.
1158
1159 2003-10-10  Roger Sayle  <roger@eyesopen.com>
1160
1161         * cse.c (constant_pool_entries_regcost): New global variable to
1162         hold the register cost component of constant_pool_entries_cost.
1163         (fold_rtx): Calculate constant_pool_entries_regcost at the same
1164         time as constant_pool_entries_cost.
1165         (cse_insn): Set both src_folded_cost and src_folded_regcost from
1166         constant_pool_entries_cost and constant_pool_entries_regcost.
1167         (cse_main): Initialize constant_pool_entries_regcost to zero.
1168
1169         * optabs.c (expand_unop): Attach a REG_EQUAL note describing
1170         the semantics of the sequence of bit operations used to negate
1171         a floating-point value.
1172         (expand_abs_nojump): Likewise attach a REG_EQUAL note describing
1173         the semantics of the bit operations used to abs a floating point
1174         value.
1175
1176 2003-10-11  Bernardo Innocenti  <bernie@develer.com>
1177             Paul Dale  <pauli@snapgear.com>
1178
1179         * config/m68k/lb1sf68.asm: Add __PIC__ and __ID_SHARED_LIBRARY__
1180         support.
1181         * config/m68k/m68k-none.h (ASM_SPEC): Pass --pcrel to assembler on
1182         -fpic, -fPIC, -msep-data and -mid-shared-library.
1183         * config/m68k/m68k.c (m68k_library_id_string): New global variable.
1184         (override_options): Add -msep-data and -mshared-library-id support.
1185         (m68k_output_function_prologue): Generate code to load A5 for
1186         TARGET_ID_SHARED_LIBRARY and TARGET_SEP_DATA.
1187         (m68k_output_mi_thunk): Emit indirect jump on TARGET_ID_SHARED_LIBRARY.
1188         (m68k_output_pic_call): New function.
1189         * gcc/config/m68k/m68k.h (TARGET_SEP_DATA): New target flag.
1190         (TARGET_ID_SHARED_LIBRARY): Ditto.
1191         (TARGET_SWITCHES): Add switches for -mid-shared-library and -msep-data.
1192         * gcc/config/m68k/m68k.md (call): Call m68k_output_pic_call().
1193         (call_value): Likewise.
1194
1195 2003-10-10  Zack Weinberg  <zack@codesourcery.com>
1196
1197         * gengenrtl.c (find_formats, genheader): Make i an unsigned
1198         int, remove cast of NUM_RTX_CODE.
1199         * machmode.h: Make the HAVE_MACHINE_MODES #ifdef encompass the
1200         entire file.  Remove the #ifs on GET_MODE_MASK etc and
1201         GET_MODE_WIDER_MODE etc.
1202
1203 2003-10-10  Eric Christopher  <echristo@redhat.com>
1204
1205         * lcm.c (optimize_mode_switching): Change NORMAL_MODE
1206         to MODE_ENTRY and MODE_EXIT. Add MODE_AFTER for insns
1207         that set mode.
1208         * config/sh/sh.h (MODE_ENTRY): New macro.
1209         (MODE_EXIT): Ditto.
1210         (MODE_AFTER): Ditto.
1211         * config/sh/sh.md: Change for MODE_AFTER. Add
1212         fp_set attribute.
1213         * doc/tm.texi: Document MODE_AFTER, MODE_ENTRY, and MODE_EXIT.
1214
1215 2003-10-10  Zack Weinberg  <zack@codesourcery.com>
1216
1217         * genmodes.c, mode-classes.def: New files.
1218         * machmode.def: Rewritten to genmodes.c interface.
1219         * Makefile.in (extra_modes_file): New substitution variable.
1220         (MACHMODE_H): No longer includes machmode.def or
1221         @extra_modes_file@; instead, mode-classes.def and insn-modes.h.
1222         (BUILD_RTL): Add $(BUILD_PREFIX)insn-modes.o.
1223         (OBJS-common): Add insn-modes.o.
1224         (STAGESTUFF): Add insn-modes.c, insn-modes.h, s-modes, and
1225         genmodes$(build_exeext).
1226         (insn-modes.o, insn-modes.c, insn-modes.h, s-modes, genmodes.o,
1227         genmodes$(build_exeext), $(BUILD_PREFIX_1)insn-modes.o): New targets.
1228         (s-genrtl): Don't depend on $(RTL_BASE_H).
1229         (gengenrtl.o): Don't depend on coretypes.h, $(GTM_H), real.h,
1230         or $(RTL_BASE_H); just rtl.def.
1231         * gengenrtl.c: Don't include coretypes.h, tm.h, rtl.h, or
1232         real.h.  Give fake definition of CONST_DOUBLE_FORMAT and
1233         substitute definition of NUM_RTX_CODE.  Add casts to avoid
1234         warnings.
1235         * machmode.h: Include insn-modes.h, not machmode.def.  Include
1236         mode-classes.def to define enum mode_class.  Tweak definitions
1237         of GET_MODE_CLASS, GET_MODE_SIZE, GET_MODE_BITSIZE, GET_MODE_MASK,
1238         GET_MODE_INNER, GET_MODE_WIDER_MODE, GET_CLASS_NARROWEST_MODE.
1239         (inner_mode_array): Renamed mode_inner.
1240         (mode_base_align): New.
1241         * rtl.c (mode_name, mode_class, mode_bitsize, mode_size,
1242         mode_unit_size, mode_wider_mode, mode_mask_array,
1243         inner_mode_array, class_narrowest_mode): Delete definitions.
1244         * stor-layout.c (get_mode_alignment): Use mode_base_align.
1245         * real.h: Use MIN_MODE_FLOAT and MAX_MODE_FLOAT, not QFmode
1246         and TFmode, in real_format_for_mode and REAL_MODE_FORMAT.
1247
1248         * config/ip2k/ip2k.h, config/iq2000/iq2000.h:
1249         No need to define BITS_PER_UNIT.
1250
1251 2003-10-10  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1252
1253         * config/ia64/ia64.c (ia64_vms_init_libfuncs): New function.
1254         (ia64_output_function_prologue): Only write .prologue if --with-gnu-as.
1255         (ia64_initialize_trampoline): If not using GAS, declare trampoline
1256         as global.
1257         * config/ia64/ia64.h (ASM_APP_ON, ASM_APP_OFF): Add vers for not GAS.
1258         (ASM_OUTPUT_DEBUG_LABEL): Likewise.
1259
1260         * stor-layout.c (compute_record_mode): Don't force BLKmode if
1261         field is zero-length BLKmode.
1262         * expr.c (expand_expr, case COMPONENT_REF): Handle case of BLKmode
1263         zero-size references.
1264
1265         * combine.c (distribute_links): Properly test for REG being set.
1266
1267         * config/alpha/alpha.c (alpha_expand_block_mode): Don't use
1268         gen_lowpart and company except for REG.
1269
1270 2003-10-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1271
1272         * pa64-hpux.h (LINK_SPEC): Use `-z' option with HP ld.
1273
1274 2003-10-10  Nathanael Nerode  <neroden@gcc.gnu.org>
1275
1276         * config.gcc (mips*-*-netbsd*): Remove content-free line.
1277
1278 2003-10-10  Herman A.J. ten Brugge <hermantenbrugge@home.nl>
1279
1280         * gcov-io.h: Check BITS_PER_UNIT when defining gcov_unsigned_t,
1281         gcov_position_t and gcov_type.
1282
1283 2003-10-09  Kaz Kojima  <kkojima@gcc.gnu.org>
1284
1285         * configure.in (HAVE_AS_TLS): Add sh-*-* and sh[34]*-*-* cases.
1286         * configure: Regenerate.
1287
1288 2003-10-09  Kazu Hirata  <kazu@cs.umass.edu>
1289
1290         * config/h8300/h8300.md (define_asm_attributes): Specify
1291         the length of an asm insn more precisely.
1292
1293 2003-10-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1294
1295         * config/mips/iris6.h (SUBTARGET_CPP_SPEC): Define.
1296
1297 2003-10-09  Bob Wilson  <bob.wilson@acm.org>
1298
1299         * config/xtensa/xtensa.c (xtensa_dbx_register_number): Change first
1300         FP register number to 48 and MAC16 accumulator to 0x210.
1301
1302 2003-10-09  Nathanael Nerode  <neroden@gcc.gnu.org>
1303
1304         * config.gcc: Remove redundant thread_file setting clauses for
1305         various *-*-linux* targets.
1306
1307 2003-10-09  Kazu Hirata  <kazu@cs.umass.edu>
1308
1309         * config/h8300/h8300.md (define_asm_attributes): New.
1310
1311 2003-10-09  Roger Sayle  <roger@eyesopen.com>
1312
1313         * optabs.c (prepare_float_lib_cmp): Always attach a REG_EQUAL note
1314         to the comparison, as emit_libcall_block calls copy_rtx on equiv.
1315
1316 2003-10-09  Dorit Naishlos  <dorit@il.ibm.com>
1317
1318         * haifa-sched.c (ok_for_early_schedule): New function.
1319         (early_queue_to_ready): New function.
1320         (schedule_block): Allow early removal of insns from Q.
1321         (schedule_insn): Update INSN_TICK in case of premature
1322         issue.
1323         * common.opt (sched_stalled_insns): New flag.
1324         (sched_stalled_insns_dep): New flag.
1325         * flags.h: Same above flags.
1326         * opts.c: Same as above.
1327         * toplev.c: Same as above.
1328         * target.h (targetm.sched.is_costly_dependence): New
1329         hook.
1330         * target-def.h: Same as above.
1331         * config/rs6000/rs6000.h: (rs6000_sched_costly_dep):
1332         Support new flag -msched-costly-dep.
1333         (DEFAULT_SCHED_COSTLY_DEP): Define.
1334         * config/rs6000/rs6000.c:
1335         (rs6000_is_costly_dependence): New function.
1336         (is_load_insn, is_store_insn): New functions.
1337         (is_load_insn1, is_store_insn1, is_mem_ref): New
1338         functions.
1339         * doc/invoke.texi (-fsched-stalled-insns-dep)
1340         (-fsched-stalled-insns, -msched-costly-dep): Document
1341         options.
1342         * doc/tm.texi (is_costly_dependence): Define new
1343         scheduler target hook.
1344
1345 2003-10-09  Jason Merrill  <jason@redhat.com>
1346
1347         PR c++/6392
1348         * c-common.c (c_build_qualified_type): Look through arrays first.
1349         (c_apply_type_quals_to_decl): Look through arrays.
1350
1351         * c-common.c (c_apply_type_quals_to_decl): Unset TREE_READONLY for
1352         types with constructors.
1353
1354         * coverage.c (build_ctr_info_value): Use build_decl to make a
1355         VAR_DECL.
1356         (create_coverage): Likewise.
1357
1358         * stmt.c (resolve_asm_operand_names): Call check_unique_operand_names
1359         here.
1360         (expand_asm_operands): Not here.
1361         (parse_input_constraint): No longer static.
1362         * tree.h: Declare it.
1363
1364 2003-10-08  Kaz Kojima  <kkojima@gcc.gnu.org>
1365
1366         * config/sh/t-linux (SHLIB_LINK): Override to use a linker script
1367         libgcc_s.so.
1368         (SHLIB_INSTALL): Likewise.
1369
1370 2003-10-08  Nathanael Nerode  <neroden@gcc.gnu.org>
1371
1372         * doc/install.texi: Remove reference to removed 'pthreads' thread
1373         option.
1374
1375 2003-10-08  Aldy Hernandez  <aldyh@redhat.com>
1376
1377         * config/rs6000/rs6000.md ("abssi2_isel"): Add early clobber to
1378         operand 2.
1379
1380 2003-10-08  Nathanael Nerode  <neroden@gcc.gnu.org>
1381
1382         * config.gcc: Don't accept --enable-threads=pthreads.  Clean
1383         up related case statements.
1384         * configure.in: Don't accept --enable-threads=pthreads,
1385         decosf1, mach, or os2 (none of which work anyway).  Alphabetize
1386         supported thread files in case clause.
1387         * configure: Regenerate.
1388
1389 2003-10-08  Geoffrey Keating  <geoffk@apple.com>
1390
1391         * function.c (pad_to_arg_alignment): Move 'boundary_in_bytes'
1392         definition to above SPARC_STACK_BOUNDARY_HACK.
1393
1394 2003-10-08  Jason Merrill  <jason@redhat.com>
1395
1396         * c-pretty-print.c (pp_c_postfix_expression)
1397         <COMPOUND_LITERAL_EXPR>: Fix thinko.
1398
1399 2003-10-08  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1400
1401         * mklibgcc.in: Don't hide undefined or typeless symbols.
1402
1403 2003-10-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1404
1405         PR optimization/12142
1406         * cse.c (count_reg_usage): In a SET with a REG SET_DEST, count the
1407         uses of the register in the SET_SRC.  Remove unnecessary argument.
1408         * pa.c (legitimize_pic_address): Before reload, use a scratch register
1409         for the intermediate result in loading the address of a SYMBOL_REF.
1410         Set the MEM_NOTRAP_P flag for the MEM.  Add a REG_EQUAL to the insn
1411         which loads the SYMBOL_REF address.
1412
1413 2003-10-08  Timo Kokkonen  <tjko@iki.fi>
1414             Eric Botcazou  <ebotcazou@libertysurf.fr>
1415
1416         PR bootstrap/12490
1417         * scan-decls.c (MAX_EXTERN_C_BRACES): New preprocessor constant
1418         to define the size of the extern_C_braces array.  Set it to 200.
1419         (scan_decls): Abort when extern_C_braces_length is out-of-bounds.
1420
1421 2003-10-08  Carlo Wood  <carlo@alinoe.com>
1422
1423         * Makefile.in (gengtype-lex.c): flex 2.5.4[a] doesn't understand
1424         a space after the -o option.  flex 2.5.31 understands both, with
1425         and without the space. Removed that space.
1426
1427 2003-10-08  Richard Sandiford  <rsandifo@redhat.com>
1428
1429         * config/mips/mips.c (mips_frame_info): Add cprestore_size field.
1430         (compute_frame_size): Initialize it.  Remove the .cprestore slot
1431         from args_size.
1432         (mips_output_function_prologue): Simplify accordingly.
1433         (mips_debugger_offset): Change the mips16 frame pointer offset from
1434         current_function_outgoing_args to cfun->machine->frame.args_size.
1435         (mips_initial_elimination_offset): Likewise.
1436         (mips_expand_prologue): Likewise.
1437         (mips_expand_epilogue): Likewise.
1438
1439 2003-10-08  Richard Sandiford  <rsandifo@redhat.com>
1440
1441         * config/mips/mips.h (EXTRA_CONSTRAINT): Add 'W' constraint.
1442         (EXTRA_MEMORY_CONSTRAINT): Define.
1443         (CAN_ELIMINATE): Remove lwu workaround.
1444         * config/mips/mips.md (*zero_extendsidi2_mem): Enable for mips16 too.
1445         Use a 'W' constraint for the source operand.
1446
1447 2003-10-08  Kazu Hirata  <kazu@cs.umass.edu>
1448
1449         * genopinit.c (main): Output code to declare undefined
1450         variables.
1451
1452 2003-10-07  Kelley Cook  <kcook@gcc.gnu.org>
1453
1454         * gengtype-lex.l: Remove -Wtraditional cruft.
1455         * Makefile.in (gengtype-lex.c): Likewise.
1456
1457 2003-10-07  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1458
1459         * cfgloopmanip.c (fix_irreducible_loops): Initialize e correctly.
1460
1461 2003-10-07  Jason Merrill  <jason@redhat.com>
1462
1463         PR c++/12519
1464         * c-semantics.c (genrtl_cleanup_stmt): Ignore the CLEANUP_DECL if
1465         it isn't a decl.
1466
1467 2003-10-07  Alexandre Oliva  <aoliva@redhat.com>
1468
1469         * gcc.c (cpp_options): Only pass -fworking-directory for -g* if
1470         not overridden.
1471         Fixes PR bootstrap/12173.
1472
1473 2003-10-07  Zack Weinberg  <zack@codesourcery.com>
1474
1475         * errors.c: Don't include coretypes.h or tm.h.
1476         (trim_filename): Use IS_DIR_SEPARATOR.
1477         * Makefile.in: Update dependencies of errors.o and
1478         $(BUILD_PREFIX_1)errors.o.
1479
1480 2003-10-07  Geoffrey Keating  <geoffk@apple.com>
1481
1482         * function.c (pad_to_arg_alignment): Take STACK_POINTER_OFFSET into
1483         account when aligning arguments.
1484         * calls.c (STACK_POINTER_OFFSET): Move default from here ...
1485         * defaults.h (STACK_POINTER_OFFSET): ... to here.
1486         * config/sparc/sparc.h (STACK_BOUNDARY): Add comment about how
1487         it's wrong when TARGET_ARCH64 && TARGET_STACK_BIAS.
1488         (SPARC_STACK_BOUNDARY_HACK): Define.
1489         * config/rs6000/rs6000.c (function_arg): On non-SVR4 systems,
1490         arrange for vector parameters to varargs functions to be passed
1491         in both memory and GPRs when appropriate.
1492         (rs6000_va_arg): Vector arguments passed in memory are 16-byte
1493         aligned.
1494
1495         * hooks.c (hook_bool_tree_true): New.
1496         (hook_rtx_tree_int_null): New.
1497         (hook_rtx_rtx_null): Use NULL, not 0.
1498         * hooks.h: Add 'extern' to everything.
1499         (hook_bool_tree_true): New.
1500         (hook_rtx_tree_int_null): New.
1501         * targhooks.c (hook_bool_CUMULATIVE_ARGS_true): New.
1502         * targhooks.h (hook_bool_CUMULATIVE_ARGS_true): New.
1503         * config/rs6000/rs6000-protos.h (setup_incoming_varargs): Remove
1504         prototype.
1505         * config/rs6000/rs6000.c (rs6000_return_in_memory): New.
1506         (setup_incoming_varargs): Prototype.
1507         (TARGET_PROMOTE_FUNCTION_ARGS): Define.
1508         (TARGET_PROMOTE_FUNCTION_RETURN): Define.
1509         (TARGET_STRUCT_VALUE_RTX): Define.
1510         (TARGET_RETURN_IN_MEMORY): Define.
1511         (TARGET_SETUP_INCOMING_VARARGS): Define.
1512         (TARGET_STRICT_ARGUMENT_NAMING): Define.
1513         (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Define.
1514         (init_cumulative_args): Use rs6000_return_in_memory.
1515         (setup_incoming_varargs): Make 'static'.
1516         * config/rs6000/rs6000.h (PROMOTE_FUNCTION_ARGS): Delete.
1517         (PROMOTE_FUNCTION_RETURN): Delete.
1518         (STRUCT_VALUE): Delete.
1519         (RETURN_IN_MEMORY): Delete.
1520         (SETUP_INCOMING_VARARGS): Delete.
1521
1522 2003-10-07  Gerald Pfeifer  <gerald@pfeifer.com>
1523
1524         * doc/invoke.texi (Warning Options): Simplify and clarify the
1525         descriptions of -Wnonnull and -Winit-self.
1526
1527 2003-10-07  Richard Earnshaw  <rearnsha@arm.com>
1528
1529         * optabs.c (init_intraclass_conv_libfuncs): Fix order of array
1530         indicees for floating-point conversersion libcalls.
1531
1532 2003-10-07  Nathanael Nerode  <neroden@gcc.gnu.org>
1533
1534         * Makefile.in: Add more comments separating large conceptually
1535         separate sections.
1536
1537         * configure.in: Clean up thread file logic.
1538         * configure: Regenerate.
1539
1540 2003-10-07  Danny Smith  <dannysmith@users.sourceforge.net>
1541
1542         * config/i386/cygming.h (READONLY_DATA_SECTION_ASM_OP): Define.
1543         (switch_to_section): Handle in_readonly_data.
1544         * config/i386/winnt.c (i386_pe_asm_named_section): Handle
1545         readonly data.
1546
1547 2003-10-07  Richard Earnshaw  <rearnsha@arm.com>
1548
1549         * arm.md (cmpsi2_addneg): New ARM pattern. Add peephole2 to generate
1550         it.
1551         (cbranchne_decr1): New Thumb pattern.
1552         * arm.c (arm_addimm_operand): New insn predicate.
1553         * arm-protos.h: Add a prototype for it.
1554         * arm.h (PREDICATE_CODES): Add it.
1555
1556 2003-10-07  Dorit Naishlos <dorit@il.ibm.com>
1557
1558         * sched-int.h (sched_info): New field
1559         sched_max_insns_priority.
1560         * sched-rgn.c (init_ready_list): Add invocations to
1561         targetm.sched.adjust_priority.
1562         (sched_max_insns_priority): Init new field.
1563         * sched-ebb.c (sched_max_insns_priority): Init new field.
1564         * haifa-sched.c (set_priorities): Set
1565         sched_info->sched_max_insns_priority.
1566         * config/rs6000/rs6000.h:
1567         (rs6000_sched_restricted_insns_priority_str): Support new
1568         flag -mprioritize-restricted-insns.
1569         (DEFAULT_RESTRICTED_INSNS_PRIORITY): Define.
1570         * config/rs6000/rs6000.c (is_dispatch_slot_restricted): New
1571         function.
1572         (rs6000_adjust_priority): Change priority of restricted
1573         insns, using above new function and new flag.
1574         * doc/invoke.texi (-mprioritize-restricted-insns): Document
1575         new option.
1576
1577 2003-10-07  Zack Weinberg  <zack@codesourcery.com>
1578
1579         * expr.c (cmpstr_optab, cmpmem_optab): New.
1580         * genopinit.c: Initialize them.
1581         * optabs.h: Declare them.
1582         * optabs.c (init_optabs): Clear them.
1583         (prepare_cmp_insn):  Use cmpstr_optab and cmpmem_optab to find
1584         block memory compare insns, not conditional chains.  Restructure
1585         the fallback generation of a call to memcmp/bcmp for better
1586         readability.
1587
1588 2003-10-07  Richard Sandiford  <rsandifo@redhat.com>
1589
1590         * config/mips/mips.c (MIPS_MAX_FIRST_STACK_STEP): New macro.
1591         (mips_save_restore_fn): New typedef.
1592         (mips_add_large_offset_to_sp, mips_emit_frame_related_store): Remove.
1593         (mips_set_frame_expr, mips_frame_set): Move above prologue code.
1594         (save_restore_insns): Remove, replacing with...
1595         (mips_save_restore_reg, mips_for_each_saved_reg): ...these new fns.
1596         (mips_save_reg, mips_restore_reg): New function.
1597         (mips_expand_prologue, mips_expand_epilogue): Rework.
1598         * config/mips/mips.h (MIPS_TEMP1_REGNUM, MIPS_TEMP2_REGNUM): Remove.
1599         (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): New macros.
1600         (MIPS_PROLOGUE_TEMP, MIPS_EPILOGUE_TEMP): New macros.
1601
1602 2003-10-07  Richard Sandiford  <rsandifo@redhat.com>
1603
1604         * config/mips/mips.c (mips_expand_prologue): Remove unused
1605         traversal of function arguments.
1606
1607 2003-10-07  Richard Sandiford  <rsandifo@redhat.com>
1608
1609         * doc/invoke.texi: Remove documentation of -mentry.
1610         * config/mips/mips.c (mips_entry_string, mips_entry): Remove.
1611         (override_options, mips_save_reg_p): Remove handling.
1612         (compute_frame_size, mips_output_function_prologue): Likewise.
1613         (mips_expand_prologue, mips_expand_epilogue): Likewise.
1614         * config/mips/mips.h (mips_entry_string): Remove declaration.
1615         (TARGET_OPTIONS): Remove -mentry.
1616         * config/mips/mips16.S: Remove mention of -mentry.
1617
1618 2003-10-06  Zack Weinberg  <zack@codesourcery.com>
1619
1620         * libfuncs.h (LTI_extendsfdf2, LTI_extendsfxf2, LTI_extendsftf2)
1621         (LTI_extenddfxf2, LTI_extenddftf2, LTI_truncdfsf2, LTI_truncxfsf2)
1622         (LTI_trunctfsf2, LTI_truncxfdf2, LTI_trunctfdf2, LTI_floatsisf)
1623         (LTI_floatdisf, LTI_floattisf, LTI_floatsidf, LTI_floatdidf)
1624         (LTI_floattidf, LTI_floatsixf, LTI_floatdixf, LTI_floattixf)
1625         (LTI_floatsitf, LTI_floatditf, LTI_floattitf, LTI_fixsfsi, LTI_fixsfdi)
1626         (LTI_fixsfti, LTI_fixdfsi, LTI_fixdfdi, LTI_fixdfti, LTI_fixxfsi)
1627         (LTI_fixxfdi, LTI_fixxfti, LTI_fixtfsi, LTI_fixtfdi, LTI_fixtfti)
1628         (LTI_fixunssfsi, LTI_fixunssfdi, LTI_fixunssfti, LTI_fixunsdfsi)
1629         (LTI_fixunsdfdi, LTI_fixunsdfti, LTI_fixunsxfsi, LTI_fixunsxfdi)
1630         (LTI_fixunsxfti, LTI_fixunstfsi, LTI_fixunstfdi, LTI_fixunstfti)
1631         (extendsfdf2_libfunc, extendsfxf2_libfunc, extendsftf2_libfunc)
1632         (extenddfxf2_libfunc, extenddftf2_libfunc, truncdfsf2_libfunc)
1633         (truncxfsf2_libfunc, trunctfsf2_libfunc, truncxfdf2_libfunc)
1634         (trunctfdf2_libfunc, floatsisf_libfunc, floatdisf_libfunc)
1635         (floattisf_libfunc, floatsidf_libfunc, floatdidf_libfunc)
1636         (floattidf_libfunc, floatsixf_libfunc, floatdixf_libfunc)
1637         (floattixf_libfunc, floatsitf_libfunc, floatditf_libfunc)
1638         (floattitf_libfunc, fixsfsi_libfunc, fixsfdi_libfunc, fixsfti_libfunc)
1639         (fixdfsi_libfunc, fixdfdi_libfunc, fixdfti_libfunc, fixxfsi_libfunc)
1640         (fixxfdi_libfunc, fixxfti_libfunc, fixtfsi_libfunc, fixtfdi_libfunc)
1641         (fixtfti_libfunc, fixunssfsi_libfunc, fixunssfdi_libfunc)
1642         (fixunssfti_libfunc, fixunsdfsi_libfunc, fixunsdfdi_libfunc)
1643         (fixunsdfti_libfunc, fixunsxfsi_libfunc, fixunsxfdi_libfunc)
1644         (fixunsxfti_libfunc, fixunstfsi_libfunc, fixunstfdi_libfunc)
1645         (fixunstfti_libfunc): Delete.
1646         * optabs.h (struct optab_handlers): Break out of struct optab.
1647         (struct convert_optab, convert_optab, enum convert_optab_index,
1648         convert_optab_table, sext_optab, zext_optab, trunc_optab,
1649         sfix_optab, ufix_optab, sfixtrunc_optab, ufixtrunc_optab,
1650         sfloat_optab, ufloat_optab): New.
1651         (set_conv_libfunc): Prototype.
1652         (GEN_FCN): Use C90 indirect call syntax, remove unnecessary cast.
1653         (trunc_optab): Renamed btrunc_optab.
1654         * builtins.c (expand_builtin_mathfn): Update to match.
1655         * optabs.c (extendtab, fixtab, fixtrunctab, floattab): Delete.
1656         (convert_optab_table, new_convert_optab, init_convert_optab)
1657         (init_interclass_conv_libfuncs, init_intraclass_conv_libfuncs)
1658         (set_conv_libfunc): New.
1659         (can_extend_p, gen_extend_insn, can_fix_p, can_float_p)
1660         (expand_float, expand_fix): Use new conversion optabs,
1661         not old insn code tables or long chains of ifs.
1662         (init_optabs): No need to clear old insn code tables.
1663         Initialize the new optabs, not the old libfunc array entries.
1664         Don't handle FIXUNS_TRUNC_LIKE_FIX_TRUNC here.
1665         * genopinit.c: Initialize conversion optabs, not the
1666         former insn code tables.  Remove unnecessary casts.
1667         Handle FIXUNS_TRUNC_LIKE_FIX_TRUNC here.
1668         * expr.c (convert_move): Remove redundant check that
1669         to_real==from_real.  Use the conversion optabs instead
1670         of long chains of tests of modes.  Move partial-integer-mode
1671         interconversion above all integer conversion.  Do not recurse
1672         on a value forced into a register in the original mode.
1673
1674         * config/gofast.h, config/frv/frv.c, config/ia64/ia64.c
1675         * config/mips/mips.c, config/pa/pa.c, config/rs6000/rs6000.c
1676         * config/sparc/sparc.c: Use set_conv_libfunc to adjust entries
1677         in new conversion optabs; do not reference the old libfunc
1678         array entries.  No need to include libfuncs.h.
1679
1680 2003-10-06  Roger Sayle  <roger@eyesopen.com>
1681
1682         * config/i386/i386.c (ix86_expand_setcc): Annotate the floating
1683         point comparison sequence with a REG_EQUAL note that describes
1684         the comparison's semantics.
1685
1686 2003-10-06  Roger Sayle  <roger@eyesopen.com>
1687
1688         * expr.c (expand_expr <COND_EXPR>): Handle the void type semantics
1689         of COND_EXPR when expanding the "A op 0 ? FOO : A" optimizations.
1690
1691 2003-10-06  Roger Sayle  <roger@eyesopen.com>
1692             Zack Weinberg  <zack@codesourcery.com>
1693
1694         * optabs.c (prepare_float_lib_cmp): Avoid searching for REG_RETVAL
1695         instruction by using LCT_CONST and then calling emit_libcall_block
1696         ourselves.
1697
1698 2003-10-06  Falk Hueffner  <falk.hueffner@student.uni-tuebingen.de>
1699
1700         PR optimization/11974
1701         * optabs.c (expand_unop): Promote libcall outmode according to
1702         hard_libcall_value.
1703
1704 2003-10-06  Zack Weinberg  <zack@codesourcery.com>
1705
1706         * real.h (REAL_MODE_FORMAT): New macro.
1707         * c-cppbuiltin.c, optabs.c, real.c, config/alpha/alpha.c
1708         * config/c4x/c4x.c, config/i370/i370.c, config/i386/freebsd.h
1709         * config/i386/i386.c, config/i960/i960.c, config/ia64/ia64.c
1710         * config/m68k/m68k.c, config/mips/mips.c, config/rs6000/rs6000.c
1711         * config/vax/vax.c: Use REAL_MODE_FORMAT instead of referring
1712         directly to real_format_for_mode array, wherever possible.
1713
1714 2003-10-06  Devang Patel  <dpatel@apple.com>
1715
1716         * dwarf2out.c (is_main_source): Remove variable.
1717         (dwarf2out_start_source_file): Do not check is_main_source.
1718         Do not reset is_main_source.
1719         (dwarf2out_init): Do not initialize is_main_source.
1720
1721 2003-10-06  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1722
1723         * fixinc/inclhack.def (stdio_va_list): Removed _ap fix.
1724         (irix_stdio_va_list): Don't require leading printf, IRIX 6.5.21
1725         introduced some multi-line prototypes.
1726         * fixinc/fixincl.x: Regenerate.
1727
1728 2003-10-06  Richard Sandiford  <rsandifo@redhat.com>
1729
1730         * config/mips/mips.h (PREDICATE_CODES): Add stack_operand.
1731         * config/mips/mips.c (stack_operand): New predicate.
1732         * config/mips/mips.md: Use it for the destination of mips16 insns
1733         that store $31.
1734
1735 2003-10-06  Richard Sandiford  <rsandifo@redhat.com>
1736
1737         * config/mips/mips.md (*lowsi): Renamed from lowsi.
1738         (*lowdi): Likewise lowdi.
1739         (*lowsi_mips16, *lowdi_mips16): New patterns.
1740         * config/mips/mips.c (mips_const_insns, mips_output_move): Remove
1741         mips16 CONSTANT_RELOC handling.
1742         (mips_delegitimize_address): Adjust for new sdata representation.
1743
1744 2003-10-06  Richard Sandiford  <rsandifo@redhat.com>
1745
1746         * config/mips/mips.c (mips_arg_info): If MUST_PASS_IN_STACK,
1747         skip any remaining register arguments.
1748
1749 2003-10-06  Ulrich Weigand  <uweigand@de.ibm.com>
1750
1751         * reload.c (find_reloads_subreg_address): Use correct offset for
1752         paradoxical MEM subregs on big-endian targets.
1753
1754 2003-10-06  Andrew Haley  <aph@redhat.com>
1755
1756         * tree.c (get_callee_fndecl): Call
1757         lang_hooks.lang_get_callee_fndecl.
1758         * langhooks-def.h (LANG_HOOKS_GET_CALLEE_FNDECL): New.
1759         (lhd_get_callee_fndecl): New.
1760
1761 2003-10-06  Andrew Pinski  <apinski@apple.com>
1762
1763         * config/darwin.c (machopic_non_lazy_ptr_name): Fix off by one
1764         error in calculating the length of the string.
1765         (machopic_stub_name): Likewise.
1766
1767 2003-10-06  Roger Sayle  <roger@eyesopen.com>
1768
1769         * optabs.c (prepare_float_lib_cmp):  Attach a REG_EQUAL note
1770         describing the return value of the comparison libcall to the
1771         REG_RETVAL instruction of the emitted sequence.
1772
1773 2003-10-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
1774
1775         PR optimization/12215
1776         * cse.c (cse_set_around_loop): Emit the move at the beginning
1777         of the next basic block for trapping sets.
1778
1779 2003-10-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
1780
1781         PR optimization/11637
1782         * combine.c (adjust_for_new_dest): New function to adjust the
1783         notes and LOG_LINKS when the dest of an insn has changed.
1784         (try_combine): Use it when deleting the first insn of a two-insn
1785         parallel or splitting a two-load parallel.
1786
1787 2003-10-06  Richard Sandiford  <rsandifo@redhat.com>
1788
1789         * config/mips/mips.c (mips_classify_constant): Only allow UNSPECs
1790         if TARGET_EXPLICIT_RELOCS.
1791
1792 2003-10-06  Mark Mitchell  <mark@codesourcery.com>
1793
1794         PR bootstrap/12512
1795         * Makefile.in (info): Use double-colon rules.
1796         (dvi): Likewise.
1797         (generated-manpages): Likewise.
1798         * configure.in: Do not create lang.info, lang.dvi, or
1799         lang.generated-manpages hooks.
1800         * configure: Regenerated.
1801         * objc/Make-lang.in (objc.info): Remove.
1802         (objc.dvi): Remove.
1803         (objc.generated-manpages): Remove.
1804         * doc/sourcebuild.texi: Update description of info, dvi, and
1805         generated-manpages hooks.
1806
1807 2003-10-06  Richard Sandiford  <rsandifo@redhat.com>
1808
1809         * config/mips/mips.md: Merge mips16 lw/srl pattern with its splitter.
1810
1811 2003-10-05  Andrew Pinski  <apinski@apple.com>
1812
1813         * config/darwin.c (machopic_non_lazy_ptr_name): Fix off by one
1814         errors in memcpy destinations.
1815         (machopic_stub_name): Likewise.
1816
1817 2003-10-05  Andrew Pinski <apinski@apple.com>
1818
1819         * config/darwin.c (machopic_non_lazy_ptr_name):
1820         Change strcat to memcpy and add length together.
1821         (machopic_stub_name): Likewise.
1822
1823 2003-10-05  Kaz Kojima  <kkojima@gcc.gnu.org>
1824
1825         * config/sh/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Handle new
1826         signal trampoline codes.
1827
1828 2003-10-05  Chris Demetriou  <cgd@broadcom.com>
1829
1830         * config/mips/mips.md (*divsf3): Move description of
1831         SB-1 F2 erratum from here to...
1832         (divsf3): Here.  Disable if TARGET_FIX_SB1 is set and
1833         flag_unsafe_math_optimizations is not.
1834
1835 2003-10-05  Aldy Hernandez  <aldyh@redhat.com>
1836
1837         * config/rs6000/linuxspe.h: Define TARGET_SPE_ABI, TARGET_SPE,
1838         TARGET_E500, TARGET_ISEL, and TARGET_FPRS.
1839
1840 2003-10-05  Kazu Hirata  <kazu@cs.umass.edu>
1841
1842         * c-pretty-print.c: Fix comment typos.
1843         * c-pretty-print.h: Likewise.
1844         * calls.c: Likewise.
1845         * cfgloopmanip.c: Likewise.
1846         * cgraphunit.c: Likewise.
1847         * cppfiles.c: Likewise.
1848         * final.c: Likewise.
1849         * function.c: Likewise.
1850         * gcov-io.h: Likewise.
1851         * gcse.c: Likewise.
1852         * genoutput.c: Likewise.
1853         * loop.c: Likewise.
1854         * postreload.c: Likewise.
1855         * reg-stack.c: Likewise.
1856         * regmove.c: Likewise.
1857         * sched-int.h: Likewise.
1858         * sched-rgn.c: Likewise.
1859         * simplify-rtx.c: Likewise.
1860         * tree-inline.c: Likewise.
1861         * config/m68hc11/m68hc11.h: Likewise.
1862         * config/mmix/mmix.c: Likewise.
1863         * config/mn10300/mn10300.md: Likewise.
1864         * config/sh/sh.h: Likewise.
1865
1866 2003-10-05  Richard Henderson  <rth@redhat.com>
1867
1868         * tree-inline.c (remap_type): New.
1869         (remap_decl): Use it.  Remap DECL_SIZE*.
1870         (copy_body_r): Use it.
1871         (walk_tree): Walk TREE_TYPE too.
1872         (copy_tree_r): Don't walk subtrees of types.
1873         * tree.c (variably_modified_type_p): Restructure.  Consider integer
1874         types with non-const bounds variably modified.
1875
1876 2003-10-05  Kazu Hirata  <kazu@cs.umass.edu>
1877
1878         * doc/invoke.texi: Fix typos.
1879
1880 2003-10-05  Kazu Hirata  <kazu@cs.umass.edu>
1881
1882         * fold-const.c: Follow spelling conventions.
1883         * function.c: Likewise.
1884         * config/c4x/c4x.h: Likewise.
1885         * config/c4x/c4x.md: Likewise.
1886         * config/frv/frv.md: Likewise.
1887         * config/rs6000/aix.h: Likewise.
1888         * config/rs6000/linux64.h: Likewise.
1889         * config/xtensa/xtensa.c: Likewise.
1890
1891 2003-10-05  Kazu Hirata  <kazu@cs.umass.edu>
1892
1893         * c-pretty-print.c: Fix comment formatting.
1894         * cfglayout.c: Likewise.
1895         * cfgloopanal.c: Likewise.
1896         * cppcharset.c: Likewise.
1897         * dbxout.c: Likewise.
1898         * ggc-page.c: Likewise.
1899         * ggc.h: Likewise.
1900         * target.h: Likewise.
1901
1902 2003-10-04  Kelley Cook  <kelleycook@wideopenwest.com>
1903
1904         * gengtype-lex.l: Recognize typedef of functions without PARAMS macro.
1905
1906 2003-10-04  Nathanael Nerode  <neroden@gcc.gnu.org>
1907
1908         * config/v850/v850-c.c, config/v850/v850-protos.h, config/v850/v850.c:
1909         Convert to ISO C90 function declarations and definitions.
1910
1911 2003-10-04  Zack Weinberg  <zack@codesourcery.com>
1912
1913         * libfuncs.h
1914         (LTI_eqhf2, LTI_nehf2, LTI_gthf2, LTI_gehf2, LTI_lthf2)
1915         (LTI_lehf2, LTI_unordhf2, LTI_eqsf2, LTI_nesf2, LTI_gtsf2)
1916         (LTI_gesf2, LTI_ltsf2, LTI_lesf2, LTI_unordsf2, LTI_eqdf2)
1917         (LTI_nedf2, LTI_gtdf2, LTI_gedf2, LTI_ltdf2, LTI_ledf2)
1918         (LTI_unorddf2, LTI_eqxf2, LTI_nexf2, LTI_gtxf2, LTI_gexf2)
1919         (LTI_ltxf2, LTI_lexf2, LTI_unordxf2, LTI_eqtf2, LTI_netf2)
1920         (LTI_gttf2, LTI_getf2, LTI_lttf2, LTI_letf2, LTI_unordtf2)
1921         (eqhf2_libfunc, nehf2_libfunc, gthf2_libfunc, gehf2_libfunc)
1922         (lthf2_libfunc, lehf2_libfunc, unordhf2_libfunc, eqsf2_libfunc)
1923         (nesf2_libfunc, gtsf2_libfunc, gesf2_libfunc, ltsf2_libfunc)
1924         (lesf2_libfunc, unordsf2_libfunc eqdf2_libfunc, nedf2_libfunc)
1925         (gtdf2_libfunc, gedf2_libfunc, ltdf2_libfunc, ledf2_libfunc)
1926         (unorddf2_libfunc eqxf2_libfunc, nexf2_libfunc, gtxf2_libfunc)
1927         (gexf2_libfunc, ltxf2_libfunc, lexf2_libfunc, unordxf2_libfunc
1928         (eqtf2_libfunc, netf2_libfunc, gttf2_libfunc, getf2_libfunc)
1929         (lttf2_libfunc, letf2_libfunc, unordtf2_libfunc):
1930         Delete.
1931         * optabs.h (OTI_eq, OTI_ne, OTI_gt, OTI_ge, OTI_lt, OTI_le)
1932         (OTI_unord, eq_optab, ne_optab, gt_optab, ge_optab, lt_optab)
1933         (le_optab, unord_optab): New.
1934
1935         * optabs.c (prepare_float_lib_cmp): Rewrite.  Get the libfuncs
1936         from the code_to_optab table, not a giant switch; use
1937         swap_condition; do widening only if a comparison function that
1938         we can call exists in a wider mode, not if a cmp_optab insn or
1939         libfunc exists in a wider mode; call protect_from_queue
1940         exactly once on each operand.
1941         (init_optabs): Initialize the new optabs, not the deleted libfuncs.
1942
1943         * config/gofast.h, config/ia64/ia64.c, config/mips/mips.c
1944         * config/pa/pa.c, config/rs6000/rs6000.c, config/sparc/sparc.c:
1945         Set floating point comparison libfuncs using set_optab_libfunc
1946         on the appropriate optab.
1947
1948         * config/ia64/ia64.c (ia64_hpux_init_libfuncs): Fix typo.
1949         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Correct ABI
1950         selector conditionals.
1951
1952 2003-10-04  Stephane Carrez  <stcarrez@nerim.fr>
1953
1954         * config/m68hc11/t-m68hc11-gas (MULTILIB_MATCHES): m68hcs12 is
1955         identical to m68hc12 as far as libraries are concerned.
1956
1957 2003-10-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
1958
1959         PR c/12446
1960         * c-typeck.c (convert_for_assignment): Issue an error for
1961         array to pointer assignment after default conversion.
1962         (digest_init): Likewise.
1963
1964 2003-10-04  Fariborz Jahanian  <fjahanian@apple.com>
1965
1966         * c-decl.c (duplicate_decls): retain DECL_COMMON of old declaration
1967
1968 2003-10-03  Gerald Pfeifer  <gerald@pfeifer.com>
1969
1970         * doc/extend.texi (Function Attributes): Fix title of GNU C
1971         Preprocessor manual.
1972         (C++ Extensions): Fix reference to "Predefined Macros" in the
1973         GNU C Preprocessor manual.
1974
1975 2003-10-04  Richard Earnshaw  <reanrsha@arm.com>
1976
1977         * doc/extend.texi: Document how GCC estimates and relies on the size
1978         of an asm.
1979
1980 2003-10-04  Richard Sandiford  <rsandifo@redhat.com>
1981
1982         * config/mips/mips.c (mips_pad_arg_upward): Pad floating-point
1983         arguments downward for big-endian o64.
1984
1985 2003-10-03  Robert Bowdidge <bowdidge@apple.com>
1986
1987         * ggc-page.c (ggc_pch_write_object): Replace fseek() with fwrite() in
1988         PCH generation, avoiding too-frequent flushes when writing to NFS
1989         file system.
1990
1991 2003-10-03  Ziemowit Laski  <zlaski@apple.com>
1992
1993         * objc/objc-act.c (lookup_category): Mark as 'inline'.
1994
1995 2003-10-03  Alexander Malmberg  <alexander@malmberg.org>
1996             Ziemowit Laski  <zlaski@apple.com>
1997
1998         * objc/objc-act.c (add_method_to_hash_list, lookup_category):
1999         New functions.
2000         (lookup_method_in_hash_lists): New parameter indicating whether
2001         we are messaging 'Class' or 'id'.
2002         (check_duplicates): Likewise; do not assume all methods will
2003         be either class or instance methods.
2004         (generate_category, finish_class): Use lookup_category().
2005         (add_method): Use add_method_to_hash_list(); insert instance
2006         methods of root classes into the global class method hash table.
2007         (add_category): Use lookup_category(); avoid constructing
2008         duplicate categories.
2009         (really_start_method): Add method to corresponding @interface,
2010         if not already there (and if the @interface exists).
2011         (finish_message_expr, finish_objc): Adjust calls to
2012         check_duplicates().
2013
2014 2003-10-03  Roger Sayle  <roger@eyesopen.com>
2015
2016         PR optimization/9325, PR java/6391
2017         * fold-const.c (fold_convert): For floating point to integer
2018         conversions, return the maximum/minimum representable integer
2019         value if the real constant overflows the destination type.
2020         * tree.c (real_value_from_int_cst): Allow the type to be NULL,
2021         meaning don't truncate the result to a floating point mode.
2022         Simplify the logic by calling real_from_integer directly.
2023         * simplify-rtx.c (simplify_unary_operation):  Implement the
2024         same semantics for folding floating point to integer conversions
2025         in RTL.
2026
2027 2003-10-03  Chris Demetriou  <cgd@broadcom.com>
2028
2029         * config/mips/mips.c (mips_emit_prefetch): Restructure
2030         to avoid use of arrays, handle indexed prefetch.
2031         * config/mips/mips.h (ISA_HAS_FP4, ISA_HAS_PREFETCH): Update comments.
2032         (ISA_HAS_PREFETCHX): New deffine.
2033         * config/mips/mips.md ("type" attr): Add new "prefetchx" value,
2034         update comments.
2035         (prefetch_indexed_di, prefetch_indexed_si): New insns.
2036
2037 2003-10-03  Jeff Sturm  <jsturm@one-point.com>
2038             Roger Sayle  <roger@eyesopen.com>
2039
2040         PR optimization/12289
2041         * calls.c (emit_call_1): Pretend to have popped the arguments
2042         to noreturn and longjmp functions instead of ignoring them.
2043         (expand_call): Don't adjust stack_pointer_dela while
2044         inhibit_defer_pop is set.
2045
2046 2003-10-03  Andreas Schwab  <schwab@suse.de>
2047
2048         PR bootstrap/12276
2049         * configure.in: Check for libunwind on the host only if building
2050         a native compiler.
2051         * configure: Regenerated.
2052
2053 2003-10-03  Paolo Carlini  <pcarlini@unitus.it>
2054
2055         * unwind-pe.h (read_encoded_value_with_base): Constify u and
2056         its inizialization cast.
2057
2058 2003-10-03  Richard Sandiford  <rsandifo@redhat.com>
2059
2060         PR target/12485
2061         * config/mips/mips.c (mips_load_got): GOT accesses can't trap.
2062
2063 2003-10-02  Mark Mitchell  <mark@codesourcery.com>
2064
2065         PR optimization/12180
2066         * tree-inline.c (inline_forbidden_p_1): Do not permit inlining of
2067         functions containing calls to __builtin_next_arg.
2068
2069 2003-10-02  Chris Demetriou  <cgd@broadcom.com>
2070
2071         * config/mips/mips.c (mips_emit_prefetch): Use operand 3
2072         in instructions being output.
2073         * config/mips/mips.md (prefetch_si_address): Change third
2074         operand's constraint letter to 'I'.
2075         (prefetch_di_address): Likewise.
2076         (prefetch_si, prefetch_di): Set third operand to const0_rtx.
2077
2078 2003-10-02  Zack Weinberg  <zack@codesourcery.com>
2079
2080         * system.h: Poison macros obsoleted by earlier patch.
2081         * config/cris/cris.c: C90-ify a function definition.
2082
2083 2003-10-02  Josef Zlomek  <zlomekj@suse.cz>
2084
2085         PR/12292
2086         * combine.c (make_field_assignment): Check whether rtx's code
2087         is CONST_INT before using INTVAL.
2088
2089 2003-10-02  Josef Zlomek  <zlomekj@suse.cz>
2090
2091         * cgraph.c (cgraph_node): Use INSERT instead of 1 in
2092         htab_find_slot_with_hash.
2093         (cgraph_node_for_identifier): Use NO_INSERT.
2094         (cgraph_remove_node): Use NO_INSERT.
2095         (cgraph_varpool_node): Use INSERT.
2096         (cgraph_varpool_node_for_identifier): Use NO_INSERT.
2097
2098 2003-10-02  Josef Zlomek  <zlomekj@suse.cz>
2099
2100         Waldek Hebisch <hebisch@math.uni.wroc.pl>
2101         PR/12072
2102         * varasm.c (compare_constant): Fix thinko.
2103
2104 2003-10-02  Richard Sandiford  <rsandifo@redhat.com>
2105
2106         * config/frv/frv.c (frv_issue_rate): New function.
2107         (frv_pack_insns): Use it.
2108         (TARGET_SCHED_ISSUE_RATE): Define.
2109
2110 2003-10-02  Steven Bosscher <s.bosscher@student.tudelft.nl>
2111
2112         * config/mcore/mcore.c: Convert to ISO C90 function declarations
2113         and definitions.
2114         * config/mcore/mcore.h: Likewise.
2115         * config/mcore/mcore-protos.h: Likewise.
2116
2117 2003-10-02  Richard Sandiford  <rsandifo@redhat.com>
2118
2119         * config/frv/frv.c (frv_use_dfa_pipeline_interface): New function.
2120         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define.
2121
2122 2003-10-01  Per Bothner  <pbothner@apple.com>
2123
2124         * c-lex.c (src_line):   Remove unneeded static variable.
2125         (cb_line_change):  Set input_line directly, instead of src_line.
2126         (get_non_padding_token):  We no longer need to compensate for the
2127         "horrible things" the C++ front-end does with the current line number,
2128
2129         * cpplib.c (_cpp_pop_buffer):  Do generate a _cpp_do_file_change
2130         callback even when popping the main file.
2131         * c-lex.c (fe_file_change):  Handle a NULL new_map.
2132         * fix-header.c (cb_file_change):  Likewise.
2133         * c-ppoutput.c (pp_file_change):  Likewise.
2134
2135         * cppinit.c (cpp_read_main_file):  Split into two functions:
2136         Distribute _cpp_stack_file call over the two functions.
2137         (cpp_find_main_file):  New function.
2138         Don't call _cpp_do_file_change even if working_directory flag set.
2139         (cpp_push_main_file):  New function.
2140         * cppfiles.c (_cpp_find_failed):  New helper function.
2141         (find_file):  Made non-static and renamed to _cpp_find_file.
2142         (_cpp_stack_file):  No longer needed.  But note the following.
2143         (stack_file):  Made non-static and renamed to _cpp_stack_file.
2144         * fix-header.c (cpp_read_main_file):  Replace cpp_read_main_file
2145         call with calls to cpp_find_main_file and cpp_push_main_file.
2146         (search_path_head):  If there is no current buffer, use main_file.
2147         * cpphash.h:  Update function declarations.
2148         * cpplib.h:  Update function declarations.
2149
2150         * c-opts.c (c_common_post_options):  Don't call cpp_find_main_file yet.
2151         (c_common_parse_file):  No longer need to call cpp_read_main_file
2152         when file_index > 0 (as in multi-file or server compiation).
2153         (finish_options):  Change to <built-in> is an LC_ENTER, not LC_RENAME
2154         as this now happens before cpp_push_main_file.
2155         (push_command_line_include):  When done with options, pass LC_LEAVE
2156         instead of LC_RENAME to cpp_change_file and finally cpp_push_main_file.
2157         (fe_file_change):  Handle NULL new_map, and simplify.
2158         * cpplex.c (_cpp_get_fresh_line):  Revert my no-longer-needed
2159         08-28 change, since we're never called with a NULL buffer.
2160         (_cpp_lex_direct):  Likewise.
2161         * cpptrad.c (_cpp_read_logical_line_trad):  Likewise.
2162         Return false if buffer is NULL at end.
2163
2164         * cpplex.c (_cpp_get_fresh_line):  Return value now just depends on
2165         whether pfile->buffer is NULL after pop, ignoring return_at_eof.
2166         * cpphash.h (struct cpp_buffer):  Remove unused return_at_eof field.
2167         * cpplib.c (cpp_push_buffer):  Since we no longer set return_at_eof,
2168         remove the unused return_at_eof parameter.
2169         * cppfiles.c, cpplib.c, cppmacro.c, cpppch.c, fix-header.c:
2170         Update callers of cpp_push_buffer.
2171
2172 2003-10-01  Zack Weinberg  <zack@codesourcery.com>
2173
2174         * target.h (init_libfuncs): New hook.
2175         * target-def.h: Default TARGET_INIT_BUILTINS and
2176         TARGET_INIT_LIBFUNCS to hook_void_void.  Add
2177         TARGET_INIT_LIBFUNCS to TARGET_INITIALIZER.
2178         * builtins.c (default_init_builtins): Delete.
2179         * expr.h (default_init_builtins): Delete prototype.
2180         * doc/tm.texi: Document TARGET_INIT_LIBFUNCS and US_SOFTWARE_GOFAST.
2181         Tweak documentation of TARGET_FLOAT_LIB_COMPARE_RETURNS_BOOL.
2182         Remove documentation of INIT_TARGET_OPTABS, MULSI3_LIBCALL,
2183         DIVSI3_LIBCALL, UDIVSI3_LIBCALL, MODSI3_LIBCALL, UMODSI3_LIBCALL,
2184         MULDI3_LIBCALL, DIVDI3_LIBCALL, UDIVDI3_LIBCALL, MODDI3_LIBCALL,
2185         and UMODDI3_LIBCALL,
2186
2187         * Makefile.in (optabs.o): Depends on target.h.
2188         * defaults.h: Provide default for FLOAT_LIB_COMPARE_RETURNS_BOOL.
2189         * optabs.c: Include target.h.
2190         (prepare_float_lib_cmp): No need for #ifdef around use of
2191         FLOAT_LIB_COMPARE_RETURNS_BOOL.
2192         (set_optab_libfunc): New function.
2193         (init_optabs): Delete use of all *_LIBCALL defines.
2194         Call targetm.init_libfuncs not INIT_TARGET_OPTABS.
2195         * optabs.h: Prototype set_optab_libfunc.
2196
2197         * config.gcc: Remove all references to pa/long_double.h,
2198         ia64/hpux_longdouble.h, and gofast.h.
2199         (mips-*-*): When --enable-gofast, just add US_SOFTWARE_GOFAST
2200         to tm_defines; don't set INIT_SUBTARGET_OPTABS or change tm_file.
2201
2202         * config/alpha/alpha.c, config/c4x/c4x.c, config/cris/cris.c
2203         * config/frv/frv.c, config/h8300/h8300.c, config/i860/i860.c
2204         * config/ia64/ia64.c, config/ip2k/ip2k.c, config/m68hc11/m68hc11.c
2205         * config/mips/mips.c, config/pa/pa.c, config/rs6000/rs6000.c
2206         * config/sparc/sparc.c, config/vax/vax.c:
2207         Provide a definition for TARGET_INIT_LIBFUNCS.  Where
2208         necessary, include optabs.h, libfuncs.h, and/or config/gofast.h.
2209
2210         * config/alpha/unicosmk.h, config/alpha/vms.h, config/c4x/c4x.h
2211         * config/avr/avr.h, config/cris/cris.h, config/frv/frv.h
2212         * config/h8300/h8300.h, config/i860/i860.h, config/ip2k/ip2k.h
2213         * config/iq2000/iq2000.h, config/m68hc11/m68hc11.h, config/mips/mips.h
2214         * config/rs6000/aix.h, config/rs6000/sysv4.h, config/sparc/elf.h
2215         * config/sparc/lite.h, config/sparc/netbsd-elf.h, config/sparc/sol2.h
2216         * config/sparc/sparc.h, config/v850/v850.h, config/vax/vax.h
2217         * config/vax/elf.h: Don't define or use INIT_TARGET_OPTABS,
2218         INIT_SUBTARGET_OPTABS, or any *_LIBCALL macros.
2219
2220         * config/ia64/hpux.h: Redefine INTEL_EXTENDED_IEEE_FORMAT to 0.
2221         Set TARGET_INIT_LIBFUNCS and FLOAT_LIB_COMPARE_RETURNS_BOOL here.
2222         * config/pa/pa-hpux.h: Define LONG_DOUBLE_TYPE_SIZE,
2223         HPUX_LONG_DOUBLE_LIBRARY, and FLOAT_LIB_COMPARE_RETURNS_BOOL here.
2224         * config/ia64/hpux_longdouble.h, config/pa/long_double.h: Delete.
2225
2226         * config/rs6000/xcoff.h: Don't define RS6000_ITRUNC nor RS6000_UITRUNC.
2227         * config/sparc/sparc.h: Default SUN_CONVERSION_LIBFUNCS and
2228         SUN_INTEGER_MULTIPLY_64 to 0.
2229         * config/sparc/sol2.h: Redefine SUN_CONVERSION_LIBFUNCS and
2230         SUN_INTEGER_MULTIPLY_64 to 1.
2231         * config/sparc/elf.h: Redefine SUN_CONVERSION_LIBFUNCS and
2232         SUN_INTEGER_MULTIPLY_64 to 0.
2233         * config/sparc/lite.h, config/sparc/liteelf.h, config/sparc/sp86x-elf.h:
2234         Define US_SOFTWARE_GOFAST.
2235         * config/vax/vax.h: Default TARGET_ELF to 0.
2236         * config/vax/elf.h: Redefine TARGET_ELF to 1.
2237
2238         * config/gofast.h: Don't define any macros here.  Provide one
2239         static function, gofast_maybe_init_libfuncs, which does what
2240         INIT_GOFAST_LIBFUNCS used to do but only if US_SOFTWARE_GOFAST
2241         is already defined.  Do not clear negation libfuncs.  Do
2242         not mess with HFmode, XFmode, or TFmode libfuncs.
2243
2244         * config/avr/avr.c (avr_init_once): #if 0 out; mark FIXME.
2245
2246 2003-10-01  Kelley Cook  <kelleycook@wideopenwest.com>
2247
2248         PR C/12466
2249         * c-parse.in (parmlist_2): Mark declaration with an ellipsis as ISO C.
2250
2251 2003-10-01  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2252
2253         * config/mips/xm-iris5.h: Remove, unnecessary.
2254         * config.build (mips-sgi-irix5*): Remove.
2255         (mips-sgi-irix6*o32): Likewise.
2256         * config.gcc (mips-sgi-irix6*o32): Remove xm_file.
2257         (mips-sgi-irix5cross64): Likewise.
2258         (mips-sgi-irix5*): Likewise.
2259         * config.host (mips-sgi-irix5*): Remove.
2260         (mips-sgi-irix6*o32): Likewise.
2261
2262 2003-10-01  Zack Weinberg  <zack@codesourcery.com>
2263
2264         * dbxout.c (dbxout_fptype_value): Delete.
2265         (dbxout_type): Emit R3 for all COMPLEX_TYPEs.
2266
2267 2003-10-01  Alexandre Oliva  <aoliva@redhat.com>
2268
2269         * output.h (compute_reloc_for_constant): Declare.
2270         * varasm.c (compute_reloc_for_constant): Extract from...
2271         (output_addressed_constants): ... here.  Adjust all callers.
2272
2273 2003-10-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2274
2275         * aclocal.m4: Add hpux10* and hpux11.00 to /dev/zero blacklist.
2276         * configure: Rebuilt.
2277
2278 2003-10-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2279
2280         * fold-const.c (make_range): When handling unsigned, don't reverse
2281         range if high bound is zero.
2282
2283 2003-09-30  Alexandre Oliva  <aoliva@redhat.com>
2284
2285         * config/frv/frv.h (PREDICATE_CODES): Added
2286         condexec_si_media_operator, condexec_sf_add_operator and
2287         condexec_sf_conv_operator.  Removed condexec_sf_binary_operator
2288         and condexec_sf_unary_operator.
2289
2290 2003-10-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2291
2292         * aclocal.m4: Add ultrix* to /dev/zero blacklist.
2293         * configure: Rebuilt.
2294
2295 2003-10-01  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2296
2297         * except.h (MUST_USE_SJLJ_EXCEPTIONS): Revert 2003-09-23 change.
2298         Allow override.
2299         * doc/tm.texi (MUST_USE_SJLJ_EXCEPTIONS): Document.
2300
2301 2003-09-23  David S. Miller  <davem@redhat.com>
2302
2303         * config/sparc/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Undefine
2304         before redefining.
2305         * config/sparc/linux64.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
2306
2307 2003-10-01  Steven Bosscher  <steven@gcc.gnu.org>
2308
2309         * config/cris/cris-protos.h, config/cris/cris.c: Convert to ISO
2310         C90 function declarations and definitions.
2311
2312 2003-10-01  Nathanael Nerode  <neroden@gcc.gnu.org>
2313
2314         * config.gcc (cris-*-linux*): Revert mistaken commit.
2315
2316 2003-10-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
2317
2318         PR optimization/11753
2319         * config/sparc/sparc.md (length attribute) [fcc branch]: Add 1 to
2320         the length in the non-V9 case.
2321
2322 2003-09-30  Richard Henderson  <rth@redhat.com>
2323
2324         * dwarf2out.c (expand_builtin_init_dwarf_reg_sizes): Honor
2325         DWARF_ALT_FRAME_RETURN_COLUMN.
2326         * unwind-dw2.c (dwarf_reg_size_table): Expand by one.
2327         (_Unwind_GetGR, _Unwind_SetGR): Validate lookup column.
2328         (uw_frame_state_for): Return end-of-stack for null return address.
2329         * doc/tm.texi (DWARF_ALT_FRAME_RETURN_COLUMN): Add.
2330
2331         * config/alpha/alpha.c (alpha_sa_mask): Add r31 for eh_return.
2332         (alpha_expand_prologue): Store a zero for it.
2333         (alpha_expand_epilogue): Don't reload it.
2334         * config/alpha/alpha.h (DWARF_ALT_FRAME_RETURN_COLUMN): New.
2335         * config/alpha/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Use column 64
2336         for the sigframe return address.
2337
2338 2003-09-30  Kelley Cook  <kelleycoook@wideopenwest.com>
2339
2340         * sdbout.c: Convert to ISO C90 prototypes.
2341         * objc/objc-act.c: Likewise.
2342
2343 2003-09-30  Kelley Cook  <kelleycoook@wideopenwest.com>
2344
2345         * config/i386/cygwin1.c: Convert to ISO C90 prototypes.
2346         * config/i386/winnt.c: Likewise.
2347         * config/i386/cygming.h: Likewise.
2348
2349 2003-09-30  Kazu Hirata  <kazu@cs.umass.edu>
2350
2351         * fold-const.c (fold): Fold (A & ~B) - (A & B) into
2352         (A ^ B) - B for any B.
2353
2354 2003-09-30  Nathanael Nerode  <neroden@gcc.gnu.org>
2355
2356         * config.gcc (arm*-*-kaos*, i[34567]86-*-kaos*, powerpc-*-kaos*,
2357         powerpcle-*-kaos*, strongarm-*-kaos*): Disable fixproto.
2358
2359 2003-09-30  Richard Earnshaw  <rearnsha@arm.com>
2360
2361         * arm/ieee754-sf.S: Tidy formatting.
2362
2363 2003-09-30  Nicolas Pitre  <nico@cam.org>
2364
2365         * arm/lib1funcs.asm (ARM_DIV_MOD_BODY): Split into ARM_DIV_BODY
2366         and ARM_MOD_BODY.
2367         (ARM_MOD_BODY): Rewritten. added clz insns for __ARM_ARCH__ >= 5.
2368         (ARM_DIV_BODY): Added clz insns for __ARM_ARCH__ >= 5,
2369         added better divisor alignment in the other case.
2370         (ARM_DIV2_ORDER): Added, finds the order of a single bit divisor.
2371         (__divsi3, __udivsi3, __modsi3, __umodsi3): rewritten using the
2372         macros above, add fast exits for divisor >= dividend, etc.
2373
2374 2003-09-30  Nicolas Pitre  <nico@cam.org>
2375
2376         * arm/ieee754-df.S: Split compilation of fixunsdfsi from
2377         L_fixdfsi target.
2378         * arm/t-arm-elf (LIB1ASMFUNCS): Add _fixunsdfsi.
2379
2380 2003-09-30  Nathanael Nerode  <neroden@gcc.gnu.org>
2381
2382         * config.gcc: Default use_fixproto to 'no'.
2383
2384 2003-09-30  Richard Sandiford  <rsandifo@redhat.com>
2385
2386         PR optimization/12345
2387         * config/mips/mips-protos.h (mips_restore_gp): Remove.
2388         (mips_gp_save_slot): Declare.
2389         * config/mips/mips.c (mips_restore_gp): Remove in favor of...
2390         (mips_gp_save_slot): ...this new function.
2391         * config/mips/mips.md (exception_receiver): Use mips_gp_save_slot
2392         and mips_output_move to generate the output template.
2393         (call_internal): Force splitting if TARGET_SPLIT_CALLS.  Don't emit
2394         a gp load after a noreturn call.  Load the gp using a move rather
2395         than an exception_receiver pattern.
2396         (call_value_internal, call_value_multiple_internal): Likewise.
2397         (call_split, call_value_split, call_value_multiple_split): Clobber $28.
2398
2399 2003-09-30  Carlo Wood  <carlo@alinoe.com>
2400
2401         PR debug/12319
2402         * cfglayout.c (insn_scope):  Use prologue_locator and
2403         epilogue_locator; return the outer function scope for
2404         pro- and epilogue insns.
2405
2406 2003-09-29  Zack Weinberg  <zack@codesourcery.com>
2407
2408         * objc/objc-act.c (encode_type): Encode INTEGER_TYPEs and
2409         REAL_TYPEs based on the bitsize of the type's mode, not the
2410         mode directly.
2411
2412 2003-09-29  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2413
2414         * dwarf2out.c (default_eh_frame_section): Split into ...
2415         (named_section_eh_frame_section, collect2_eh_frame_section): ... new
2416         functions.
2417         * output.h (named_section_eh_frame_section): Declare.
2418         (collect2_eh_frame_section): Likewise.
2419
2420 2003-09-29  Zack Weinberg  <zack@codesourcery.com>
2421
2422         * real.c (real_sqrt): Use get_canonical_qnan directly.
2423
2424         * dwarf2out.c (add_const_value_attribute): Use real_to_target.
2425
2426         * varasm.c (assemble_real): Use real_to_target directly,
2427         calculate the number of significant elements of the result
2428         array and write them out in a loop, instead of using a giant
2429         switch statement to pick the correct REAL_VALUE_TO_TARGET_*
2430         macro.
2431
2432 2003-09-29  Jan Hubicka  <jh@suse.cz>
2433
2434         PR c++/12175
2435         * varasm.c (notice_global_symbol): Discard external symbols.
2436
2437         PR optimization/12286
2438         * gcov-io.c (gcov_read_words): Fix memmove call.
2439         * profile.c (compute_branch_probabilities): Add extra sanity checks.
2440
2441 2003-09-29  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2442
2443         * config.gcc (sparc-*-solaris2*): Handle Solaris 10 and up like
2444         Solaris 7-9.
2445
2446         * fixinc/inclhack.def (solaris_widec): Replace solaris2.[0-5]* by
2447         wildcards which explicitly match micro versions.
2448         * fixinc/fixincl.x: Regenerate.
2449
2450 2003-09-29  Kazu Hirata  <kazu@cs.umass.edu>
2451
2452         * fold-const.c (fold): Fold (A & ~B) - (A & B) into
2453         (A ^ B) - B, where B is any power of 2 minus 1.
2454
2455 2003-09-29  Jan Hubicka  <jh@suse.cz>
2456
2457         * libgcov.c (gcov_exit): Fix two pastos.
2458
2459 2003-09-29  Kazu Hirata  <kazu@cs.umass.edu>
2460
2461         * config/h8300/h8300.md (*tst_extzv_1_n): Combine with the
2462         define_split immediately below to form define_insn_and_split.
2463
2464 2003-09-29  Kazu Hirata  <kazu@cs.umass.edu>
2465
2466         * config/h8300/h8300.md (*tstsi_variable_bit): New.
2467         (*tstsi_variable_bit_qi): Likewise.
2468
2469 2003-09-28  Phil Edwards  <phil@codesourcery.com>
2470
2471         * doc/cppopts.texi:  Use 'dashMP' instead of '-MP' as a cross-
2472         reference name.
2473
2474 2003-09-28  Richard Henderson  <rth@redhat.com>
2475
2476         * c-decl.c (duplicate_decls): Copy DECL_SOURCE_LOCATION, not
2477         file and line separately.
2478
2479 2003-09-28  Ulrich Weigand  <uweigand@de.ibm.com>
2480
2481         * config/s390/s390.md ("*adddi3_carry1_cc", "*adddi3_carry1_cconly",
2482         "*adddi3_carry2_cc", "*adddi3_carry2_cconly", "*subdi3_borrow_cc",
2483         "*subdi3_borrow_cconly"): New insns.
2484         ("*addsi3_sub", "*subsi3_sub"): Remove.
2485         ("*subdi3_cc", *subdi3_cconly"): Use only if TARGET_64BIT.
2486         ("*subsi3_cc"): Fix op_type attribute.
2487
2488 2003-09-28  Richard Henderson  <rth@redhat.com>
2489
2490         * stmt.c (expand_asm_operands): Take a location_t, instead of
2491         individual file and line.
2492         * c-typeck.c (c_expand_asm_operands): Likewise.
2493         * tree.h (expand_asm_operands): Update decl.
2494         * c-common.h (c_expand_asm_operands): Likewise.
2495         * c-semantics (genrtl_asm_stmt): Update call.
2496
2497 2003-09-28  Philip Blundell  <philb@gnu.org>
2498
2499         * config/arm/arm.c (legitimize_pic_address): Check
2500         SYMBOL_REF_LOCAL_P, not ENCODED_SHORT_CALL_ATTR_P.
2501         (arm_assemble_integer): Likewise.
2502
2503 2003-09-28  Steven Bosscher  <steven@gcc.gnu.org>
2504
2505         * config/pdp11/pdp11-protos.h, config/pdp11/pdp11.c,
2506         config/c4x/c4x-c.c, config/c4x/c4x-protos.h, config/c4x/c4x.c,
2507         config/c4x/c4x.h:
2508         Convert to ISO C90 function declarations and definitions.
2509
2510 2003-09-28  Steven Bosscher  <steven@gcc.gnu.org>
2511
2512         *  config/stormy16/stormy16.c, config/stormy16/stormy16-protos.h:
2513         Convert to ISO C90 function declarations and definitions.
2514
2515 2003-09-28  Richard Sandiford  <rsandifo@redhat.com>
2516
2517         * config/mips/mips.c (mips_constant_info): Add reloc field.
2518         (mips_classify_constant): Initialize it.  Always set SYMBOL to the
2519         underlying symbol, not to an unspec.
2520         (mips_delegitimize_address, print_operand): Clean up accordingly.
2521
2522 2003-09-28  Richard Sandiford  <rsandifo@redhat.com>
2523
2524         * config/mips/mips-protos.h (mips16_gp_pseudo_reg): Remove.
2525         * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Remove orphaned comment.
2526         * config/mips/mips.c (mips_reloc_offset_ok_p): New function.
2527         (mips_classify_constant): Use it.
2528         (mips_splittable_symbol_p): Add an offset argument.
2529         (mips_classify_address): Adjust call accordingly.
2530         (mips_legitimize_symbol): Handle sdata references with LO_SUM rather
2531         than a relocation unspec.  Update call to mips_splittable_symbol_p.
2532         Generalize the code that copes with symbols + invalid offsets.
2533         (print_operand): Allow '%R' to be applied to small data addresses.
2534         (mips_reloc_string): Remove RELOC_GPREL16.
2535         (mips_sdata_pointer): Renamed from mips16_gp_pseudo_reg.  Return $gp
2536         for TARGET_EXPLICIT_RELOCS.  Return null if we can't use gp-relative
2537         relocation operators.
2538         * config/mips/mips.md (RELOC_GPREL16): Remove.  Shuffle other reloc
2539         constants accordingly.
2540
2541 2003-09-27  Roger Sayle  <roger@eyesopen.com>
2542
2543         * toplev.c (flag_evaluation_order): New global variable.
2544         * flags.h (flag_evaluation_order): Prototype here.
2545         * expr.c (expand_operands): If we need to preserve observable
2546         evaluation order, protect exp1 from clobbering exp0's result.
2547
2548 2003-09-28  Andreas Jaeger  <aj@suse.de>
2549
2550         * c-decl.c (finish_function): Convert definition to ISO C90.
2551         * ifcvt.c (mark_loop_exit_edges): Likewise.
2552         * ra-rewrite.c (emit_colors): Likewise.
2553
2554 2003-09-27  Nathanael Nerode  <neroden@gcc.gnu.org>
2555
2556         * config.gcc (alpha*-dec-osf[45]*): Disable fixproto.
2557         * config.gcc (arm*-*-uclinux*): Disable fixproto.
2558         * config.gcc (powerpc-*-eabispe*, powerpc-*-eabisimaltivec*,
2559         powerpc-*-eabialtivec*): Disable fixproto.
2560
2561 2003-09-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
2562
2563         PR optimization/12340
2564         * loop.h (struct induction): Document the new semantics
2565         of the 'same' field for bivs.
2566         * unroll.c (biv_total_increment): Don't count the same
2567         biv increment several times.
2568         (loop_iterations) [GENERAL_INDUCT]: Likewise.
2569
2570 2003-09-27  Graham Stott  <graham.stott@btinternet.com>
2571
2572         * unroll.c (loop_interations)[GT]: Add missing break.
2573
2574 2003-09-27  Kelley Cook  <kcook@gcc.gnu.org>
2575
2576         * config/chorus.h, config/darwin-c.c, config/darwin-protos.h,
2577         config/darwin.c, config/darwin.h, config/dbx.h, config/dbxcoff.h,
2578         config/dbxelf.h, config/elfos.h, config/fp-bit.h,
2579         config/freebsd-nthr.h, config/freebsd-spec.h, config/freebsd.h,
2580         config/freebsd3.h, config/freebsd4.h, config/freebsd5.h,
2581         config/freebsd6.h, config/netbsd-aout.h, config/netbsd-elf.h,
2582         config/netbsd.h, config/netware.h, config/openbsd-oldgas.h,
2583         config/openbsd.h, config/ptx4.h, config/alpha/alpha-protos.h,
2584         config/alpha/alpha.c, config/alpha/alpha.h, config/alpha/alpha.md,
2585         config/alpha/elf.h, config/alpha/ev4.md, config/alpha/ev5.md,
2586         config/alpha/ev6.md, config/alpha/freebsd.h, config/alpha/linux-elf.h,
2587         config/alpha/linux.h, config/alpha/netbsd.h, config/alpha/openbsd.h,
2588         config/alpha/osf.h, config/alpha/osf5.h, config/alpha/unicosmk.h,
2589         config/alpha/vms-cc.c, config/alpha/vms-crt0-64.c,
2590         config/alpha/vms-crt0.c, config/alpha/vms-dwarf2.asm,
2591         config/alpha/vms-dwarf2eh.asm, config/alpha/vms-ld.c,
2592         config/alpha/vms-psxcrt0-64.c, config/alpha/vms-psxcrt0.c,
2593         config/alpha/vms.h, config/alpha/vms64.h, config/alpha/vms_tramp.asm,
2594         config/alpha/xm-vms.h, config/arc/arc-modes.def,
2595         config/arc/arc-protos.h, config/arc/arc.c, config/arc/arc.h,
2596         config/arc/arc.md, config/arc/initfini.c, config/arc/lib1funcs.asm,
2597         config/avr/avr-protos.h, config/avr/avr.c, config/avr/avr.h,
2598         config/avr/avr.md, config/d30v/d30v-protos.h, config/d30v/d30v.h,
2599         config/d30v/d30v.md, config/fr30/fr30-protos.h, config/fr30/fr30.c,
2600         config/fr30/fr30.h, config/fr30/fr30.md, config/fr30/lib1funcs.asm,
2601         config/frv/cmovd.c, config/frv/cmovh.c, config/frv/cmovw.c,
2602         config/frv/frv-abi.h, config/frv/frv-asm.h, config/frv/frv-modes.def,
2603         config/frv/frv-protos.h, config/frv/frv.c, config/frv/frv.h,
2604         config/frv/frv.md, config/frv/frvbegin.c, config/frv/frvend.c,
2605         config/frv/lib1funcs.asm, config/h8300/clzhi2.c, config/h8300/ctzhi2.c,
2606         config/h8300/parityhi2.c, config/h8300/popcounthi2.c,
2607         config/i370/i370-c.c, config/i370/i370-protos.h, config/i370/i370.c,
2608         config/i370/i370.h, config/i370/i370.md, config/i370/linux.h,
2609         config/i370/mvs.h, config/i370/oe.h, config/i386/darwin.h,
2610         config/i960/i960-c.c, config/i960/i960-coff.h,
2611         config/i960/i960-modes.def, config/i960/i960-protos.h,
2612         config/i960/i960.c, config/i960/i960.h, config/i960/i960.md,
2613         config/i960/rtems.h, config/ia64/elf.h, config/ia64/ia64.h,
2614         config/m32r/initfini.c, config/m32r/m32r-protos.h, config/m32r/m32r.c,
2615         config/m32r/m32r.h, config/m32r/m32r.md, config/m68hc11/larith.asm,
2616         config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c,
2617         config/m68hc11/m68hc11.h, config/m68hc11/m68hc11.md,
2618         config/m68hc11/m68hc12.h, config/m68k/coff.h, config/m68k/crti.s,
2619         config/m68k/crtn.s, config/m68k/hp320.h, config/m68k/hp320base.h,
2620         config/m68k/lb1sf68.asm, config/m68k/linux.h, config/m68k/m68020-elf.h,
2621         config/m68k/m68k-aout.h, config/m68k/m68k-none.h,
2622         config/m68k/m68k-protos.h, config/m68k/m68k.c, config/m68k/m68k.h,
2623         config/m68k/m68k.md, config/m68k/m68kelf.h, config/m68k/m68kv4.h,
2624         config/m68k/netbsd-elf.h, config/m68k/openbsd.h,
2625         config/m68k/rtemself.h, config/m68k/sgs.h, config/mcore/lib1.asm,
2626         config/mcore/mcore-elf.h, config/mcore/mcore-pe.h,
2627         config/mcore/mcore-protos.h, config/mcore/mcore.c,
2628         config/mcore/mcore.md, config/mips/elf.h, config/mips/elf64.h,
2629         config/mips/elforion.h, config/mips/iris5.h, config/mips/iris6.h,
2630         config/mips/iris6gld.h, config/mips/irix6-libc-compat.c,
2631         config/mips/linux.h, config/mips/mips-protos.h, config/mips/mips.c,
2632         config/mips/mips.h, config/mips/mips.md, config/mips/netbsd.h,
2633         config/mips/openbsd.h, config/mips/r3900.h, config/mips/rtems.h,
2634         config/mips/vr.h, config/mn10300/linux.h,
2635         config/mn10300/mn10300-protos.h, config/mn10300/mn10300.c,
2636         config/mn10300/mn10300.h, config/mn10300/mn10300.md,
2637         config/ns32k/__unorddf2.c, config/ns32k/__unordsf2.c,
2638         config/ns32k/netbsd.h, config/ns32k/ns32k-protos.h,
2639         config/ns32k/ns32k.c, config/ns32k/ns32k.h, config/ns32k/ns32k.md,
2640         config/pdp11/2bsd.h, config/pdp11/pdp11-modes.def,
2641         config/pdp11/pdp11-protos.h, config/pdp11/pdp11.c,
2642         config/pdp11/pdp11.h, config/pdp11/pdp11.md, config/rs6000/biarch64.h,
2643         config/rs6000/default64.h, config/sh/coff.h, config/sh/crt1.asm,
2644         config/sh/crti.asm, config/sh/crtn.asm, config/sh/elf.h,
2645         config/sh/embed-elf.h, config/sh/linux.h, config/sh/little.h,
2646         config/sh/netbsd-elf.h, config/sh/rtems.h, config/sh/rtemself.h,
2647         config/sh/sh-protos.h, config/sh/sh.c, config/sh/sh.h,
2648         config/sh/sh.md, config/sh/sh64.h, config/sh/shmedia.h,
2649         config/sh/sshmedia.h, config/sh/ushmedia.h, config/sparc/pbd.h,
2650         config/sparc/sparc.h, doc/install-old.texi, fixinc/fixinc.ptx,
2651         fixinc/fixinc.svr4: GNU CC -> GCC.
2652
2653 2003-09-26  Loren James Rittle  <ljrittle@acm.org>
2654
2655         * objc/objc-act.c (tm_p.h): Tweak order.
2656         * objc/Make-lang.in (objc/objc-act.o): Add $(TM_P_H).
2657
2658 2003-09-26  Nathanael Nerode  <neroden@gcc.gnu.org>
2659
2660         * config.gcc (hppa*64*-*-linux* | parisc*64*-*-linux*):
2661         Include t-slibgcc-elf-ver and t-linux in tmake_file.
2662         * config.gcc (hppa*64*-*-linux* | parisc*64-*-linux*):
2663         Disable fixproto.
2664         * config.gcc (i960-*-coff*, m68k-*-aout*, sparclite-*-coff*):
2665         Disable fixproto.
2666         * config.gcc (i[34567]86-*-solaris2*, sparc64-*-solaris2*,
2667         sparcv9-*-solaris2*, sparc-*-solaris2*): Disable fixproto.
2668
2669         * config/i386/unix.h: Remove (unused) DEFAULT_ASSEMBLER_DIALECT.
2670
2671 2003-09-26  Loren James Rittle  <ljrittle@acm.org>
2672
2673         * config/i386/i386.h (ix86_return_in_memory): Revert my last patch.
2674         * objc/objc-act.c (tm_p.h): Include.
2675
2676 2003-09-26  Per Bothner  <pbothner@apple.com>
2677
2678         * dbxout.c (dbxout_typedefs):  Output typedefs in forward order.
2679         No longer any need to reverse by recursion.
2680
2681 2003-09-26  Roger Sayle  <roger@eyesopen.com>
2682             Richard Henderson  <rth@redhat.com>
2683
2684         PR optimization/11741
2685         * gcse.c (pre_insert_copy_insn): Tweak the logic for finding the
2686         appropriate set to match that in hash_scan_insn.  Fall back to
2687         the original copy method, if we can't validate changing insn.
2688         (pre_delete): Only delete instructions that have a single_set,
2689         instead of aborting when we encounter an PARALLEL insn with more
2690         then one SET.
2691
2692 2003-09-26  Andreas Krebbel  <krebbel1@de.ibm.com>
2693
2694         * config/s390/s390.md ("builtin_setjmp_setup"): Insn deleted.
2695         ("builtin_longjmp"): Insn deleted.
2696         ("save_stack_nonlocal"): Save literal pool base pointer behind
2697         backchain and stack pointer.
2698         ("restore_stack_nonlocal"): Restore literal pool base pointer.
2699         * config/s390/s390.h (STACK_SAVEAREA_MODE): Double size of
2700         the stack save area for the nonlocal goto case.
2701
2702 2003-09-26  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2703
2704         PR bootstrap/12358
2705         * pa.c (output_bvb): Fix typo.
2706
2707 2003-09-26  Richard Sandiford  <rsandifo@redhat.com>
2708
2709         * expmed.c (store_bit_field): Don't search for an integer mode
2710         unless we need the result.
2711
2712 2003-09-26  Richard Sandiford  <rsandifo@redhat.com>
2713
2714         * expr.c (emit_move_insn_1): If there is no move pattern for the
2715         original mode, try using a pattern for the corresponding integer mode.
2716
2717 2003-09-26  Richard Sandiford  <rsandifo@redhat.com>
2718
2719         PR middle-end/9200
2720         * combine.c (if_then_else_cond): Tighten mode check.
2721
2722 2003-09-25  Nathanael Nerode  <neroden@gcc.gnu.org>
2723
2724         * cppcharset.c, cpphash.h: Rename 'struct strbuf' to
2725         'struct _cpp_strbuf'.
2726
2727         * config/i386/netbsd-elf.h, config/i386/netbsd64.h,
2728         config/i386/netware.h, config/i386/nto.h, config/i386/openbsd.h,
2729         config/i386/pentium.md, config/i386/pmmintrin.h, config/i386/ppro.md,
2730         config/i386/ptx4-i.h, config/i386/rtemself.h, config/i386/sco5.h,
2731         config/i386/sol2.h, config/i386/svr3gas.h, config/i386/sysv3.h,
2732         config/i386/sysv4-cpp.h, config/i386/sysv4.h, config/i386/sysv5.h,
2733         config/i386/unix.h, config/i386/uwin.h, config/i386/vsta.h,
2734         config/i386/xm-cygwin.h, config/i386/xm-djgpp.h,
2735         config/i386/xm-mingw32.h, config/i386/xmmintrin.h: Replace
2736         "GNU CC", "GNU compiler", and "GNU C-compiler" with "GCC".
2737         * config/i386/i386-aout.h, config/i386/i386-coff.h,
2738         config/i386/i386-interix.h, config/i386/i386-interix3.h,
2739         config/i386/i386-modes.def, config/i386/i386-protos.h,
2740         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
2741         config/i386/i386elf.h, config/i386/k6.md, config/i386/kaos-i386.h,
2742         config/i386/linux-aout.h, config/i386/linux.h, config/i386/linux64.h,
2743         config/i386/lynx-ng.h, config/i386/lynx.h, config/i386/mingw32.h,
2744         config/i386/mmintrin.h, config/i386/moss.h: GNU CC -> GCC.
2745         "GNU compiler" -> GCC.
2746         * config/i386/att.h, config/i386/beos-elf.h, config/i386/biarch64.h,
2747         config/i386/bsd.h, config/i386/crtdll.h, config/i386/cygming.h,
2748         config/i386/cygwin.h, config/i386/cygwin1.c, config/i386/cygwin2.c,
2749         config/i386/darwin.h, config/i386/djgpp.h, config/i386/emmintrin.h,
2750         config/i386/freebsd-aout.h, config/i386/freebsd.h,
2751         config/i386/freebsd64.h, config/i386/gas.h: GNU CC -> GCC.
2752
2753 2003-09-25  Kelley Cook  <kelleycook@wideopenwest.com>
2754
2755         * cgraph.c (dump_cgraph):  Don't output newline before dump.  Add in
2756         "local" to the callgraph dump.  Output "after inlining" earlier.
2757         * cgraphunit.c: Fix dumpfile whitespace and commonize headers of the
2758         callgraph dumps.  Correct misspellings.
2759         (cgraph_decide_inlining):  Output number of insns before inlining.
2760         Output the calling function into which a function is inlined.
2761         (cgraph_decide_small_functions): Format dump file like always_inline.
2762
2763 2003-09-25  Loren James Rittle  <ljrittle@acm.org>
2764
2765         * config/i386/i386.h (ix86_return_in_memory): Add prototype.
2766
2767 2003-09-25  Ulrich Weigand  <uweigand@de.ibm.com>
2768
2769         * config/s390/s390.c (s390_emit_prologue): Simplify accesses to
2770         FPR slots in the save area.
2771         (s390_emit_epilogue): Likewise.
2772
2773 2003-09-25  Richard Sandiford  <rsandifo@redhat.com>
2774
2775         * cgraph.h (cgraph_remove_edge): Declare.
2776         * cgraph.c (cgraph_remove_edge): Make extern.
2777         * cgraphunit.c (cgraph_finalize_function): Call cgraph_remove_edge
2778         instead of cgraph_remove_call.
2779
2780 2003-09-25  Ulrich Weigand  <uweigand@de.ibm.com>
2781
2782         * objc/objc-act.c (gen_declaration_1): Fix printf format.
2783
2784 2003-09-25  Richard Earnshaw  <rearnsha@arm.com>
2785
2786         * arm.c (all_cores): arm710t, arm720t and arm740t are all based on the
2787         arm7tdmi core.
2788
2789 2003-09-25  Ziemowit Laski  <zlaski@apple.com>
2790
2791         * config/darwin-protos.h (objc_image_info_section):
2792         New prototype.
2793
2794 2003-09-25  Ziemowit Laski  <zlaski@apple.com>
2795
2796         * Makefile.in (stub-objc.o): Depend on $(GGC_H).
2797
2798 2003-09-25  Nathanael Nerode  <neroden@gcc.gnu.org>
2799
2800         * config.gcc: Get rid of more gratuitious 'x'es.  Actually allow
2801         tsc701 as a --with-cpu, --with-tune setting for sparc.
2802
2803 2003-09-25  Ziemowit Laski  <zlaski@apple.com>
2804
2805         * c-parse.in (objc_try_stmt): Do not specify a %type.
2806
2807 2003-09-25  Nathanael Nerode  <neroden@gcc.gnu.org>
2808
2809         * config.gcc: New 'widely ported system' clause for rtems.
2810         Set thread file there, not in individual clauses.
2811
2812 2003-09-25  Richard Sandiford  <rsandifo@redhat.com>
2813
2814         PR target/6222
2815         * config/mips/mips.c (mips_va_arg): Handle arguments that must be
2816         passed on the stack.
2817
2818 2003-09-25  Nathanael Nerode  <neroden@gcc.gnu.org>
2819
2820         * config.gcc (widely ported systems section): Mostly alphabetize
2821         by system.  Comment the case where we can't.
2822         * config.gcc (widely ported systems section): Reindent and clean up.
2823
2824         * config.gcc: Remove some unnecessary uses of 'x' in case statements.
2825         Actually allow ep9312 as an arm --with-arch setting.
2826
2827         * config.gcc (*-hpux11): Disable fixproto.
2828
2829 2003-09-24  Phil Edwards  <phil@codesourcery.com>
2830
2831         PR pch/12112
2832         * gcc/cppfiles.c (pch_open_file): Return based on combined
2833         result of all files.
2834         (validate_pch): Return validate flag for current file.
2835
2836 2003-09-24  Roger Sayle  <roger@eyesopen.com>
2837
2838         PR bootstrap/12358
2839         * fold-const.c (tree_swap_operands_p): Only reorder operands when
2840         one of the operands is constant.
2841
2842 2003-09-24  Ziemowit Laski  <zlaski@apple.com>
2843
2844         MERGE OF objc-improvements-branch into MAINLINE:
2845         * Makefile.in (C_OBJS): Add in stub-objc.o.
2846         (c-parse.y): Change sed demarcations to begin with '@@'.
2847         (stub-objc.o): New rule.
2848         * c-common.c (flag_nil_receivers, flag_objc_exceptions, flag_zero_link,
2849         flag_replace_objc_classes): New flags.
2850         * c-common.h (RID_AT_THROW, RID_AT_TRY, RID_AT_CATCH, RID_AT_FINALLY,
2851         RID_AT_SYNCHRONIZED): New keywords.
2852         (flag_nil_receivers, flag_objc_exceptions, flag_zero_link,
2853         flag_replace_objc_classes): New flags.
2854         (lookup_interface, is_class_name, objc_is_object_ptr, objc_check_decl,
2855         objc_comptypes, objc_message_selector, lookup_objc_ivar,
2856         get_current_scope, objc_mark_locals_volatile): New prototypes,
2857         some moved from c-tree.h.
2858         * c-decl.c (get_current_scope, objc_mark_locals_volatile): New functions.
2859         (finish_decl): Adjust where objc_check_decl() gets called.
2860         * c-lang.c (lookup_interface, is_class_name, objc_is_id,  objc_check_decl,
2861         objc_comptypes, objc_message_selector, lookup_objc_ivar): Remove stubs.
2862         * c-opts.c (c_common_handle_option): Add handling for  flag_nil_receivers,
2863         flag_objc_exceptions, flag_replace_objc_classes and flag_zero_link.
2864         * c-parse.in: Replace 'ifc' and 'end ifc' sed markers with '@@ifc' and
2865         '@@end_ifc', respectively.
2866         (AT_THROW, AT_TRY, AT_CATCH, AT_FINALLY, AT_SYNCHRONIZED): New %tokens.
2867         (objc_try_stmt, superclass, class_ivars, objc_try_catch-stmt,
2868         objc_finally_block): New rules.
2869         (component_decl_list2): Clean up semantic action for @defs construct.
2870         (component_decl, c99_block_start): Remove call to add_objc_decls().
2871         (poplevel): Add call to objc_clear_super_receiver().
2872         (stmt): Add rules for @throw, @try..@catch..@finally and @synchronized
2873         constructs.
2874         (classdef, methodprotolist): Clean up/simplify.
2875         (methodprotolist2): Eliminate.
2876         (methodproto): Call add_method() instead of add_class_method() and
2877         add_instance_method().
2878         (receiver): Add TYPENAME production.
2879         (reswords): Add "throw", "try", "catch", "finally" and "synchronized".
2880         (rid_to_yy): Add AT_THROW, AT_TRY, AT_CATCH, AT_FINALLY and
2881         AT_SYNCHRONIZED.
2882         * c-tree.h (lookup_interface, is_class_name, objc_is_id, objc_check_decl,
2883         objc_comptypes, objc_message_selector)
2884         * c-typeck.c (comptypes): In ObjC mode, call objc_comptypes() for
2885         struct and pointer types.
2886         (build_c_cast): Do not discard ObjC protocol qualifiers.
2887         (convert_for_assignment): Cache result of comp_target_types() instead
2888         of calling it more than once.
2889         * c.opt (fnext-runtime): Update description string.
2890         (fnil-receivers, fobjc-exceptions, freplace-objc-classes, fzero-link):
2891         New ObjC/ObjC++-specific flags.
2892         * function.h (GCC_FUNCTION_H): Header guard.
2893         * gengtype-lex.l: Teach lexer about new @@... sed demarcations.
2894         * stub-objc.c: New file, to be used to satisfy references to ObjC
2895         functions by the C and C++ front-ends.
2896         * config/darwin.c (_OBJC_IMAGE_INFO): New global metadata.
2897         * config/darwin.h (FUNCTION): Add in_objc_image_info.
2898         (SECTION_FUNCTION): Add objc_image_info_section.
2899         * doc/invoke.texi: Link to GCC web site for Objective-C information.
2900         (-fconstant-string-class): Update documentation.
2901         (-fno-nil-receivers, -fobjc-exceptions, -freplace-objc-classes,
2902         -fzero-link): New documentation.
2903         * objc/Make-lang.in (objc-parse.y): Change sed demarcations to begin
2904         with '@@'.
2905         * objc/lang-specs.h (@objective-c-header): Fix -E spec.
2906         * objc/objc/objc-act.c: Replace TYPE_NAME with OBJC_TYPE_NAME
2907         throughout; provide casts for return values from memory allocation
2908         functions (xmalloc, alloca, ggc_alloc, etc.).
2909         (OBJC_VOID_AT_END): New macro.
2910         (rtl.h): Do not #include any more.
2911         (STRING_OBJECT_GLOBAL_NAME): Replaced with STRING_OBJECT_GLOBAL_FORMAT.
2912         (TAG_MSGSEND_STRET, TAG_MSGSENDSUPER_STRET, TAG_MSGSEND_NONNIL,
2913         TAG_MSGSEND_NONNIL_STRET, TAG_EXCEPTIONEXTRACT, TAG_EXCEPTIONTRYENTER,
2914         TAG_EXCEPTIONTRYEXIT, TAG_EXCEPTIONMATCH, TAG_EXCEPTIONTHROW,
2915         TAG_SYNCENTER, TAG_SYNCEXIT): New NeXT runtime entry points.
2916         (struct val_stack, catch_count_stack, exc_binding_stack,  val_stack_push,
2917         val_stack_pop): New.
2918         (objc_check_decl): Fix precondition for error message, along with
2919         the message itself.
2920         (lookup_and_install_protocols): Remove nonexistent protocols from
2921         protocol list instead of returning error_mark_node.
2922         (create_builtin_decl): Use DECL_ARTIFICIAL only for VAR_DECLs.
2923         (setup_string_decl): Generalize to use STRING_OBJECT_GLOBAL_FORMAT.
2924         (synth_module_prologue): General clean-up; construct NeXT-specific
2925         runtime API prototypes if needed.
2926         (build_string_class_template): Remove.
2927         (check_string_class_template, string_layout_checked): New.
2928         (build_objc_string_object): Generalize to work with
2929         -fconstant-string-class.
2930         (build_objc_symtab_template): Fix layout for the NeXT runtime.
2931         (build_metadata_decl): New.
2932         (forward_declare_categories): Call build_metadata_decl() instead of
2933         create_builtin_decl() et al.
2934         (build_module_descriptor): Use OBJC_VOID_AT_END instead of
2935         void_list_node_1.
2936         (build_selector_reference_decl, build_class_reference_decl,
2937         build_objc_string_decl): Do not set TREE_READONLY.
2938         (get_proto_encoding): Do not call hack_method_prototype().
2939         (get_class_reference): Add failure mode for invalid class names;
2940         support -fzero-link; defer if in an ObjC++ template declaration.
2941         (objc_declare_alias, objc_declare_class): Fix up duplicate name
2942         lookup; check for global scope if in ObjC++.
2943         (is_class_name): Generalize to work with various tree nodes (TYPE_DECL,
2944         RECORD_TYPE, IDENTIFIER_NODE, etc.)
2945         (objc_is_id): Removed.
2946         (objc_is_object_ptr): New function.
2947         (get_class_ivars_from_name): New function, used for @defs construct.
2948         (get_class_ivars): Add option to return raw ivars; create a
2949         ClASS_OWN_IVARS list for each class as needed.
2950         (objc_enter_block, objc_exit_block, objc_declare_variable,
2951         objc_build_throw_stmt, val_stack_push, val_stack_pop,
2952         objc_build_try_enter_fragment, objc_build_extract_expr,
2953         objc_build_try_exit_fragment, objc_build_extract_fragment,
2954         objc_build_try_prologue, objc_build_try_epilogue,
2955         objc_build_catch_stmt, objc_build_catch_epilogue,
2956         objc_build_finally_prologue, objc_build_finally_epilogue,
2957         objc_build_try_catch_finally_stmt, objc_build_synchronized_prologue,
2958         objc_build_synchronized_epilogue, build_objc_exception_stuff):
2959         New functions.
2960         (_JBLEN): _setjmp jmpbuf size (needs to be made a target hook in
2961         the future).
2962         (build_private_template): Fix up calls to get_class_ivars().
2963         (offset_is_register, forwarding_offset): Remove.
2964         (objc_method_parm_type, objc_encoded_type_size): New functions.
2965         (encode_method_prototype): Simplify to no longer depend on
2966         back-end information.
2967         (build_tmp_function_decl_xxx, build_tmp_function_decl,
2968         hack_method_prototype): Removed.
2969         (generate_protocol_references): Remove calls to
2970         build_tmp_function_decl().
2971         (generate_protocols): Adjust calls to encode_method_prototype().
2972         (build_class_template): Generate sel_id' and 'gc_object_type' fields
2973         for the NeXT runtime.
2974         (synth_forward_declarations): Call build_metadata_decl().
2975         (check_ivars): Check that the number of ivars matches also.
2976         (build_super_template): Modify super_type directly; disable debugging
2977         output while generating decl.
2978         (build_ivar_list_initializer): Skip list elements that are not
2979         FIELD_DECLs.
2980         (ivar_list_length): New function.
2981         (generate_ivar_lists): Call ivar_list_length() instead of list_length()
2982         and encode_method_prototype() instead of encode_method_def().
2983         (build_shared_structure_initializer): Generate 'sel_id' field for
2984         the NeXT runtime.
2985         (generate_category): Do not set TREE_USED.
2986         (build_keyword_selector): Ditto; transform into a function argument
2987         chain.
2988         (get_arg_type_list): If there are no user-specified arguments, use
2989         '...'; use OBJC_VOID_AT_END.
2990         (check_duplicates): Add a parameter indicating whether methods or
2991         selectors are being checked.
2992         (receiver_is_class_object): Add parameters indicating whether
2993         receiver is 'self' or 'super'; robustify.
2994         (build_message_expr): Defer call to finish_message_expr() if
2995         inside an ObjC++ template.
2996         (lookup_method_in_hash_lists): New function.
2997         (finish_message_expr): Complete rewrite/fix.
2998         (build_objc_method_call): Ditto; factor out commonalities between
2999         the GNU and NeXT runtimes; acccommodate ..._stret and ...NonNil
3000         messenger variants on the NeXT.
3001         (lookup_instance_method_static, lookup_class_method_static):
3002         Fold into a single lookup_method_static() function with an
3003         additional parameter.
3004         (add_class_method, add_instance_method): Fold into a single
3005         add_method() function with an additional parameter.
3006         (add_category): Make duplicate categories a hard error in ObjC++.
3007         (add_instance_variable): Properly handle unnamed ivars, arrays of
3008         zero or no size and bitfields.  In ObjC++, check for nontrivial
3009         C++ class instances.
3010         (is_public): Allow C functions to access non-@public ivars, with
3011         a warning.
3012         (start_class): Move common initializations to
3013         synth_module_prologue(); check for global scope if in ObjC++.
3014         (continue_class): Fix calls to finish_struct().
3015         (objc_declare_protocols, start_protocol): Check for global scope
3016         if in ObjC++.
3017         (encode_pointer): Encode 'BOOL *' specially on the NeXT.
3018         (encode_aggregate_within): Rewrite to properly distinguish
3019         struct tags from typedefs in both ObjC and ObjC++.
3020         (encode_bitfield, encode_complete_bitfield): Remove.
3021         (encode_next_bitfield, encode_gnu_bitfield): New functions.
3022         (encode_field_decl): Call encode_next_bitfield() or
3023         encode_gnu_bitfield() as needed.
3024         (synth_self_and_ucmd_args): New function.
3025         (start_method_def): Use it.
3026         (objc_types_are_equivalent): New function.
3027         (comp_proto_with_proto): Use it instead of comptypes(), since
3028         we need symmetry.
3029         (really_start_method): Use lookup_method_static() instead of
3030         lookup_class_method_static() and lookup_instance_method_static();
3031         Emit 'extern "C"' if in ObjC++ mode.
3032         (add_objc_decls): Removed.
3033         (UOBJC_SUPER_scope): New variable.
3034         (get_super_receiver): Move construction of 'super' from
3035         add_objc_decls(); remove dependency on struct objc_class.
3036         (encode_method_def): Removed; encode_method_prototype() is
3037         used instead.
3038         (objc_clear_super_receiver): New function.
3039         (objc_expand_function_end): Do not do anything for ordinary
3040         C functions.
3041         (finish_method_def): Mark ObjC methods as un-inlinable.
3042         (gen_declaration_1): Emit widths of bitfields.
3043         (finish_objc): Call generate_objc_image_info() if needed;
3044         use check_duplicates() when checking for selector duplicates.
3045         (generate_objc_image_info): New function.
3046         * objc/objc-act.h (add_instance_method, add_class_method,
3047         get_class_ivars): Remove prototypes.
3048         (objc_build_throw_stmt, objc_build_try_catch_finally_stmt,
3049         objc_build_synchronized_prologue, objc_build_synchronized_epilogue,
3050         objc_build_catch_stmt, objc_build_catch_epilogue,
3051         objc_build_finally_prologue, objc_build_finally_epilogue,
3052         add_method, get_class_ivars_from_name): New prototypes.
3053         (CLASS_BINFO_ELTS, PROTOCOL_BINFO_ELTS): New.
3054         (TYPE_PROTOCOL_LIST): Robustify to distinguish from
3055         TRANSLATION_UNIT_DECLs.
3056         (OBJC_TYPE_NAME): New.
3057         (objc_tree_code): Ensure that either <c-tree.h> or <cp/cp-tree.h>
3058         got included.
3059         (IS_SUPER): Robustify.
3060         (umsg_stret_decl, umsg_super_stret_decl, umsg_nonnil_decl,
3061         umsg_nonnil_stret_decl, objc_storage_class, objc_exception_extract_decl,
3062         objc_exception_try_enter_decl, objc_exception_try_exit_decl,
3063         objc_exception_match_decl, objc_exception_throw_decl,
3064         objc_sync_enter_decl, objc_sync_exit_decl, objc_exception_data_template,
3065         objc_setjmp_decl, objc_stack_exception_data, objc_caught_exception,
3066         objc_rethrow_exception, objc_eval_once, objc_exception_block_stack,
3067         objc_catch_type): New ObjC/ObjC++ roots.
3068         * objc/objc-tree.def (MESSAGE_SEND_EXPR, CLASS_REFERENCE_EXPR): New
3069         ObjC/ObjC++ tree node codes.
3070
3071 2003-09-24  Alexandre Oliva  <aoliva@redhat.com>
3072
3073         * cpplib.c (do_pragma): Reintroduce cb_line_change call in the
3074         code path that calls a handler.
3075
3076 2003-09-24  Nathanael Nerode  <neroden@gcc.gnu.org>
3077
3078         * config.gcc (c4x-*, tic4x-*, d30v-*, mmix-knuth-mmixware):
3079         Disable fixproto.
3080
3081         * config.gcc: Clean up and reindent $with_cpu=yes|no clause and
3082         the section giving $with_cpu defaults by target.
3083
3084         * config.gcc (arm-*-coff*, armel-*-coff*, arm*-*-ecos-elf,
3085         arm*-*-elf, ep9312-*-elf, arm*-wince-pe*, arm*-*-pe*, arm*-*-pe*,
3086         rs6000-ibm-aix4.[3456789]*, powerpc-ibm-aix4.[3456789]*,
3087         rs6000-ibm-aix5.1.*, powerpc-ibm-aix5.1.*,
3088         rs6000-ibm-aix[56789].*, powerpc-ibm-aix[56789].*,
3089         i[34567]86-pc-msdosdjgpp*): Disable fixproto.
3090
3091 2003-09-24  David Edelsohn  <edelsohn@gnu.org>
3092
3093         * config/rs6000/rs6000.md (movti_power): Collapse case 1 and 2
3094         together.  Protect load string instruction with TARGET_STRING.
3095         (movti_string): Collapse case 1 and 2 together.
3096
3097 2003-09-24  Nathan Sidwell  <nathan@codesourcery.com>
3098
3099         * c-common.c (c_common_type_for_mode): Check for VOIDmode.
3100
3101 2003-09-24  Richard Earnshaw  <rearnsha@arm.com>
3102
3103         * arm.h (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Wrap in
3104         do...while(0)
3105
3106 2003-09-23  Nathanael Nerode  <neroden@gcc.gnu.org>
3107
3108         * config.gcc: Move use_fixproto=no from generic vxworks clause to
3109         specific one.
3110
3111         * config.gcc (powerpc-*-gnu-gnualtivec*): Disable fixproto
3112         (accidentally missed in last pass).
3113
3114 2003-09-23  Andrew Pinski  <apinski@apple.com>
3115
3116         PR bootstrap/12383
3117         * configure: Regenerate.
3118
3119 2003-09-23  Nathanael Nerode  <neroden@gcc.gnu.org>
3120
3121         * config.gcc (x86_64-*-freebsd*): Disable fixproto (accidentally
3122         missed in last pass).
3123
3124 2003-09-23  Alexandre Oliva  <aoliva@redhat.com>
3125
3126         * config/mn10300/mn10300.md (andsi3): Fix cut&pasto in 0xfffffffe
3127         constant.
3128
3129 2003-09-23  Nathanael Nerode  <neroden@gcc.gnu.org>
3130
3131         * config.gcc: Move vax-*-vms* unsupported notice up with the rest.
3132
3133         * config.gcc (alpha64*-dec-*vms*, alpha*-dec-*vms*,
3134         powerpc-*-eabisim*, powerpc-*-eabi*, powerpcle-*-eabisim*,
3135         powerpcle-*-eabi*): Disable fixproto.
3136
3137         * config.gcc: Move use_fixproto=no from generic FreeBSD clause to
3138         specific FreeBSD clauses.
3139         * config.gcc: Move use_fixproto=no from generic NetBSD clause to
3140         specific NetBSD clauses.
3141         * config.gcc: Move use_fixproto=no from generic OpenBSD clause
3142         to specific OpenBSD clauses.
3143
3144 2003-09-23  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3145
3146         * pa.c (hppa_expand_prologue): Do pic register save in frame marker
3147         without adding a frame note.
3148         * pa.md (allocate_stack): Save pic register in new frame marker when
3149         generating pic code.
3150
3151 2003-09-23  Kelley Cook  <kelleycook@wideopenwest.com>
3152
3153         * cgraphunit.c (cgraph_expand_all_functions): Renamed from
3154         cgraph_expand_functions.
3155
3156 2003-09-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3157
3158         * Makefile.in (gnucompare*): Merge into ...
3159         (slowcompare*): ... here.
3160         (fastcompare*): New targets.
3161         * aclocal.m4 (gcc_AC_PROG_CMP_IGNORE_INITIAL): Add checks for
3162         other "fast" cmp programs.
3163         * configure: Regenerate.
3164
3165 2003-09-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3166
3167         * targhooks.c: Include output.h.
3168         * Makefile.in (targhooks.o): Add output.h to dependency list.
3169
3170 2003-09-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3171
3172         * config.host: Removed superfluous newline.
3173
3174 2003-09-23  Nathanael Nerode  <neroden@gcc.gnu.org>
3175
3176         * config.gcc: Use ${target}, not $machine.
3177         * configure.in: Don't set $machine.
3178         * configure: Regenerate.
3179
3180 2003-09-23  Geoffrey Keating  <geoffk@apple.com>
3181
3182         * config/t-darwin (crt2.o): Add stmp-int-hdrs to dependencies.
3183
3184         * config/rs6000/rs6000.c (function_arg_pass_by_reference): Don't
3185         pass zero-size arrays by reference.
3186         (rs6000_va_arg): Likewise.
3187
3188 2003-09-23  Nathanael Nerode  <neroden@gcc.gnu.org>
3189
3190         * config.gcc: Set use_fixproto=no in each specific *-gnu*
3191         configuration, rather than the generic one.
3192
3193 2003-09-23  Richard Henderson  <rth@redhat.com>
3194
3195         * tree-inline.c (remap_save_expr): Map new save_expr to identity
3196         rather than to error_mark_node.
3197
3198 2003-09-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3199
3200         * configure.in (HAVE_GAS_SHF_MERGE): Always define to test result.
3201         Update description.
3202         * configure: Regenerate.
3203         * config.in: Likewise.
3204         * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test for
3205         HAVE_GAS_SHF_MERGE value.
3206         * varasm.c (mergeable_string_section): Likewise.
3207         (mergeable_constant_section): Likewise.
3208
3209 2003-09-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3210
3211         * except.h (MUST_USE_SJLJ_EXCEPTIONS): Test for DWARF2_UNWIND_INFO
3212         value.
3213
3214 2003-09-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3215
3216         * target.h (struct gcc_target): New member external_libcall.
3217         * target-def.h (TARGET_ASM_EXTERNAL_LIBCALL): Provide default.
3218         (TARGET_ASM_OUT): Use it.
3219         * doc/tm.texi (TARGET_ASM_EXTERNAL_LIBCALL): Document.
3220         * targhooks.c: Convert to ISO C 90.
3221         (default_external_libcall): New function.
3222         * targhooks.h (default_external_libcall): Declare.
3223         * varasm.c (assemble_external_libcall): Use
3224         targetm.asm_out.external_libcall instead of
3225         ASM_OUTPUT_EXTERNAL_LIBCALL.
3226         * config/mips/mips-protos.h [TARGET_IRIX5 || TARGET_IRIX 6]
3227         (mips_output_external_libcall): Declare.
3228         * config/mips/mips.c (mips_output_external_libcall): Change
3229         definition guard.
3230         Change to match TARGET_ASM_EXTERNAL_LIBCALL.
3231         Only operate for O32 ABI.
3232         * config/mips/iris5.h (TARGET_ASM_EXTERNAL_LIBCALL): Define
3233         instead of ASM_OUTPUT_EXTERNAL_LIBCALL.
3234         * config/mips/iris6.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Don't undef,
3235         superceded by TARGET_ASM_EXTERNAL_LIBCALL.
3236
3237 2003-09-22  Nathnael Nerode  <neroden@gcc.gnu.org>
3238
3239         * config.gcc: Do per-target disabling of fixproto here in clauses,
3240         not in t- fragments.
3241         * configure.in: Adjust to set STMP_FIXPROTO correctly.
3242         * configure: Regenerate.
3243         * config/arm/t-semi, config/cris/t-cris, config/i386/t-beos,
3244         config/i386/t-cygming, config/i386/t-nto, config/ia64/t-hpux,
3245         t-freebsd, t-linux, t-netbsd, t-openbsd, t-rtems, t-vxworks,
3246         xtensa/t-xtensa: Remove setting of STMP_FIXPROTO.
3247         * config/i370/t-oe, config/i386/t-netware, config/pa/t-bsd,
3248         t-interix, t-linux-aout:  Delete files consisting only of
3249         setting of STMP_FIXPROTO.
3250
3251         * config.host: Allow unknown hosts (not targets).  Allow
3252         ns32k-*-netbsdelf* as a host (not a target).  Remove redundant
3253         empty clauses.  Remove useless obsolete-configuration clause.
3254         Prune unsupported configuration list.  Collapse identical
3255         clauses for closely related systems.  Rewrite comment for
3256         unsupported hosts list.  Reorganize a little.
3257
3258 2003-09-22  Richard Henderson  <rth@redhat.com>
3259
3260         * c-common.c (c_common_signed_or_unsigned_type): Examine mode,
3261         not precision.
3262
3263 2003-09-22  David Edelsohn  <edelsohn@gnu.org>
3264             Hartmut Penner  <hpenner@de.ibm.com>
3265             Segher Boessenkool  <boessen@de.ibm.com>
3266
3267         * config/rs6000/rs6000.c (altivec_in_gprs_p): Rename to ...
3268         (gpr_or_gpr_p): Test INT_REGNO_P and convert to boolean.
3269         (rs6000_split_altivec_in_gprs): Rename to ...
3270         (rs6000_split_multireg_move): Add support for update addressing.
3271         * config/rs6000/rs6000-protos.h: Same.
3272         * config/rs6000/altivec.md: Same.
3273         * config/rs6000/rs6000.md (movdi_internal32): Use new splitter for
3274         multiple GPRs.
3275         (movti): Remove TARGET_STRING || TARGET_POWERPC64 final condition.
3276         (movti_power): Use new splitter for multiple GPRs.
3277         (movti_string): Same.
3278         (movti_ppc64): Same.
3279
3280 2003-09-22  Bob Wilson  <bob.wilson@acm.org>
3281
3282         * config/xtensa/xtensa-protos.h: Convert to ISO C90.
3283         * config/xtensa/xtensa.c: Convert to ISO C90.  Minor formatting fixes.
3284
3285 2003-09-22  Alexandre Oliva  <aoliva@redhat.com>
3286
3287         * config/mn10300/mn10300.md: Revert 2003-09-17's patch.
3288         (andsi3): Set attr cc to set_zn when using shifts or adds.
3289
3290 2003-09-22  Bernardo Innocenti <bernie@develer.com>
3291
3292         * doc/contrib.texi: Add Peter Barada, Paul Dale and myself.
3293
3294 2003-09-22  Bernardo Innocenti  <bernie@develer.com>
3295
3296         * config/m68k/m68k.h (MASK_RTD, TARGET_RTD, RETURN_POPS_ARGS):
3297         Resurrect -mrtd option.
3298
3299 2003-09-21  Andrew Pinski  <pinskia@physics.uc.edu>
3300
3301         PR target/12281
3302         * config/darwin.c (machopic_validate_stub_or_non_lazy_ptr): Call
3303         mark_referenced instead of setting TREE_SYMBOL_REFERENCED.
3304
3305 2003-09-22  Olivier Hainque  <hainque@act-europe.fr>
3306
3307         PR target/9786
3308         * reg-stack.c (convert_regs_1): Purge possible dead eh edges
3309         after potential deletion of trapping insn. Avoids later ICE
3310         from call to fixup_abnormal_edges.
3311         (convert_regs_2): Stack the current block successors before
3312         processing this block, that is, before the potential deletion of
3313         dead edges by convert_regs_1, because these edges have been used
3314         to initialize the predecessors count.
3315
3316 2003-09-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
3317
3318         * real.c: Fix several nits in the head comment.
3319
3320 2003-09-21  Richard Henderson  <rth@redhat.com>
3321
3322         * tree.h c-aux-info.c, c-decl.c, c-parse.in, coverage.c, dbxout.c,
3323         diagnostic.c, dwarf2out.c, dwarfout.c, function.c, integrate.c,
3324         print-tree.c, stmt.c, toplev.c, tree-dump.c, tree-inline.c,
3325         tree-optimize.c, tree.c, tree.def, xcoffout.c, config/alpha/alpha.c,
3326         config/mips/mips.c, doc/c-tree.texi, objc/objc-act.c: Revert.
3327
3328 2003-09-21  Richard Henderson  <rth@redhat.com>
3329
3330         * tree.h (TREE_LOCUS): Rename from DECL_SOURCE_LOCATION; make const.
3331         (TREE_FILENAME, TREE_LINENO): Likewise.
3332         (set_tree_locus, copy_tree_locus, set_tree_file_line): New.
3333         (TREE_LOCUS_SET_P): New.
3334         * c-aux-info.c, c-decl.c, c-parse.in, coverage.c, dbxout.c,
3335         diagnostic.c, dwarf2out.c, dwarfout.c, function.c, integrate.c,
3336         print-tree.c, stmt.c, toplev.c, tree-dump.c, tree-inline.c,
3337         tree-optimize.c, tree.c, tree.def, xcoffout.c, config/alpha/alpha.c,
3338         config/mips/mips.c, doc/c-tree.texi, objc/objc-act.c: Update to match.
3339
3340 2003-09-21  Nathanael Nerode  <neroden@gcc.gnu.org>
3341
3342         * config/vax/vax-protos.h: Convert to ISO C90.
3343         * config/vax/vax.c: Convert to ISO C90.
3344
3345 2003-09-21  Graham Stott  <grahams@btinternet.com>
3346
3347        PR target/12353
3348        * config/i386/i386.md(ffs_no_cmove): Fix operand 2 constraint.
3349
3350 2003-09-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
3351
3352         PR target/12301
3353         * reorg.c (stop_search_p): Return 1 for insns that can
3354         throw internally.
3355
3356 2003-09-20  Richard Henderson  <rth@redhat.com>
3357
3358         * c-format.c (gcc_diag_char_table): Add %J.
3359         (gcc_cdiag_char_table, gcc_cxxdiag_char_table): Likewise.
3360         (check_format_types): Fix wanted_type name lookup.
3361         (init_dynamic_diag_info): Setup %J.
3362         * diagnostic.c (text_specifies_location): Implement %J.
3363         * c-common.c, c-decl.c, c-objc-common.c, c-pragma.c, calls.c,
3364         dwarfout.c, expr.c, function.c, stmt.c, stor-layout.c, toplev.c,
3365         tree-inline.c, tree-optimize.c, varasm.c, config/arm/pe.c,
3366         config/i386/winnt.c, config/ia64/ia64.c, config/mcore/mcore.c,
3367         config/v850/v850.c, objc/objc-act.c: Use %J in diagnostics.
3368
3369         * tree-inline.c: Include intl.h
3370         (inline_forbidden_p_1): Fix i18n of inline_forbidden_reason.
3371         * Makefile.in (tree-inline.o): Update.
3372
3373 2003-09-20  Roger Sayle  <roger@eyesopen.com>
3374
3375         * config/i386/i386.c (ix86_expand_carry_flag_compare): Fix
3376         transformation of a>=0 into (unsigned)a<0x80000000.
3377
3378 2003-09-20  Andrew Pinski <apinski@apple.com>
3379
3380         * config/darwin.c (machopic_select_rtx_section): Fix check for PIC code.
3381
3382 2003-09-20  Nathanael Nerode  <neroden@gcc.gnu.org>
3383
3384         * Makefile.in: Don't set (unused) DLLTOOL.
3385
3386         * config/arm/t-linux, config/arm/t-netbsd, config/arm-t-semi:
3387         Remove obsolete references to ENQUIRE.
3388
3389 2003-09-19  Nathanael Nerode  <neroden@gcc.gnu.org>
3390
3391         * configure.in: Remove --with-elf, which doesn't work.
3392         * configure: Regenerate.
3393         * config.gcc: Remove references to $elf, which does nothing.
3394
3395         * config/i386/xm-vsta.h: Remove xm-file believed useless.
3396         * config.build (i386-vsta): Remove reference to it.
3397         * config.host (i386-vsta): Remove reference to it.
3398
3399 2003-09-19  Phil Edwards  <phil@codesourcery.com>
3400
3401         * doc/install.texi:  Document the multiple testsuite options.
3402
3403 2003-09-19  Gerald Pfeifer  <gerald@pfeifer.com>
3404
3405         * doc/install.texi (Specific): Add the specific versions of GCC
3406         where support for FreeBSD 1, HP-UX version 9 and older, and AIX
3407         version 3 and older was discontinued.
3408
3409 2003-09-19      Joel Sherrill <joel@oarcorp.com>
3410
3411     &n