1 2003-10-20 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
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.
7 2003-10-20 Zack Weinberg <zack@codesourcery.com>
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.
14 2003-10-20 Zack Weinberg <zack@codesourcery.com>
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.
23 2003-10-20 Richard Henderson <rth@redhat.com>
25 * config/alpha/alpha.h (PREDICATE_CODES): Add normal_memory_operand.
26 * config/alpha/alpha-protos.h: Remove PREDICATE_CODES prototypes.
28 2003-10-20 Dorit Naishlos <dorit@il.ibm.com>
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
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
46 2003-10-20 David S. Miller <davem@redhat.com>
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.
54 2003-10-20 Falk Hueffner <falk@debian.org>
57 * config/alpha/alpha.c (alpha_emit_conditional_branch): Don't do
58 comparison against constant by adjusting the argument except for
61 2003-10-19 Mark Mitchell <mark@codesourcery.com>
63 * config.gcc: Add support for arm926ejs, arm1026ejs, arm1136js,
64 arm1136jfs, and armv6j.
65 * config/arm/arm.c (FL_ARCH6J): New macro.
67 (all_cores): Add entries for arm926ejs, arm1026ejs, arm1136js,
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
79 2003-10-19 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
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
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.
108 2003-10-19 Jan Hubicka <jh@suse.cz>
110 * i386.c (print_reg): Do not abort on certain registers.
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.
118 * i386.c (ix86_function_regparm): Disable implicit register passing
119 conventions when profiling.
121 2003-10-19 Eric Botcazou <ebotcazou@libertysurf.fr>
122 Richard Henderson <rth@redhat.com>
125 * config/i386/i386.md (*movsi_zero): Delete.
126 (*ffs_no_cmove): Use ix86_expand_clear to zero the third operand.
128 2003-10-19 Richard Henderson <rth@redhat.com>
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.
143 2003-10-19 Richard Sandiford <rsandifo@redhat.com>
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
150 2003-10-18 Kazu Hirata <kazu@cs.umass.edu>
152 * doc/extend.texi: Fix typos.
153 * doc/invoke.texi: Likewise.
155 2003-10-18 Nicolas Pitre <nico@cam.org>
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.
161 2003-10-18 Ulrich Weigand <uweigand@de.ibm.com>
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.
181 2003-10-18 Gunther Nikl <gni@gecko.de>
183 * config/m68k/m68k.c (m68k_output_function_epilogue): Add missing
184 argument to asm_fprintf statement.
186 2003-10-18 Fariborz Jahanian <fjahanian@apple.com>
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.
192 2003-10-18 Alexandre Oliva <aoliva@redhat.com>
194 * final.c (final_scan_insn): Run FINAL_PRESCAN_INSNS on asm insns
197 2003-10-18 Richard Sandiford <rsandifo@redhat.com>
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.
208 * rtl.def: Adjust comments for new rtx_def layout.
209 * ggc.h (ggc_alloc_rtx): Take the rtx code as argument, not the
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.
228 2003-10-18 Jan Hubicka <jh@suse.cz>
230 * integrate.c (copy_decl_for_inlining): Revert previous patch.
232 2003-10-18 Jan Hubicka <jh@suse.cz>
234 * integrate.c (copy_decl_for_inlining): Fix copying of copies.
236 2003-10-18 Roger Sayle <roger@eyesopen.com>
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.
242 2003-10-18 Hans-Peter Nilsson <hp@bitrange.com>
244 * config/mmix/t-mmix (CRTSTUFF_T_CFLAGS): Define.
245 ($(T)crti.o, $(T)crtn.o): Pass CRTSTUFF_T_CFLAGS here too.
247 2003-10-18 Eric Botcazou <ebotcazou@libertysurf.fr>
249 * config/i386/k6.md (k6_alux): Use the 'mode' attribute instead of
252 2003-10-18 Eric Botcazou <ebotcazou@libertysurf.fr>
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.
261 2003-10-18 Eric Botcazou <ebotcazou@libertysurf.fr>
263 * cse.c (cse_insn) [src_folded]: Check that the tentative replacement
264 was successfully forced to memory before using the result.
266 2003-10-18 Eric Botcazou <ebotcazou@libertysurf.fr>
269 * config/i386/i386.md (*movsi_zero): New insn to set
270 a register to zero on TARGET_USE_MOV0 targets.
272 2003-10-18 Kelley Cook <kcook@gcc.gnu.org>
274 * Makefile.in (Makefile): Depend on the all Make-lang.in fragments.
275 (POSTSTAGE1_FLAGS_TO_PASS): Pass down MAKEINFO and MAKEINFOFLAGS.
277 2003-10-17 David Edelsohn <edelsohn@gnu.org>
279 * doc/invoke.texi (gcse-las): Fix typo.
281 2003-10-17 Andrew Pinski <pinskia@physics.uc.edu>
283 * doc/install.texi: Remove first part of the sentence for
284 zsh not working. Change gcc to GCC.
287 * doc/install.texi: Document that zsh does not work when
290 2003-10-17 Nathanael Nerode <neroden@gcc.gnu.org>
292 * config/ptx4.h: Switch to DWARF 2; update comments.
294 2003-10-17 Segher Boessenkool <boessen@de.ibm.com>
295 Hartmut Penner <hpenner@de.ibm.com>
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.
308 2003-10-17 Jan Hubicka <jh@suse.cz>
310 * opts.c (common_handle_option): Handle OPT_fweb
311 * invoke.texi (-fweb): Add missing parts of documentation.
313 2003-10-17 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
315 * config/mips/linux.h (FUNCTION_NAME_ALREADY_DECLARED): Undef
318 2003-10-17 Mostafa Hagog <mustafa@il.ibm.com>
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.
333 * doc/invoke.tex: Document new -fgcse-las flag.
335 2003-10-18 Alan Modra <amodra@bigpond.net.au>
337 * config/rs6000/crtsavres.asm: Correct alignment of powerpc64 code
338 for posterity, then remove it.
340 2003-10-17 Richard Earnshaw <rearnsha@arm.com>
341 Nathan Sidwell <nathan@codesourcery.com>
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
348 2003-10-17 Ulrich Weigand <uweigand@de.ibm.com>
350 * ifcvt.c (noce_try_addcc): Handle ifs with 'else' case.
352 2003-10-17 Ulrich Weigand <uweigand@de.ibm.com>
354 * combine.c (simplify_set): Do not clear out undobuf.other_insn
355 already set elsewhere.
357 2003-10-17 Kelley Cook <kcook@gcc.gnu.org>
359 * config/i386/i386.c (ix86_expand_prologue): Use
360 gen_allocate_stack_worker.
362 2003-10-17 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
364 * config.gcc (mips-sgi-irix6*o32): Only enable use_collect2
366 (mips-sgi-irix6*): Likewise.
368 * config/mips/iris6gas.h: New file.
369 * gcc/config.gcc (mips-sgi-irix6*): Use it.
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.
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.
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
392 * config/mips/iris5.h (TARGET_ASM_EXTERNAL_LIBCALL): Likewise.
394 * config/mips/iris5gas.h (HAVE_GAS_SHF_MERGE): Update comment.
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
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
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
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
435 Don't pass -init, -fini with -mabi=32.
436 (COLLECT_PARSE_FLAG): Define.
438 * config/mips/mips.c (iris6_asm_named_section_1): Changed guard to
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.
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
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
466 (mips_file_start): Use new TARGET_IRIX.
467 (mips_declare_object_name): No special processing for IRIX O32
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.
479 * config/mips/t-iris6 (MULTILIB_OPTIONS): Add mabi=32.
480 (MULTILIB_OSDIRNAMES): Likewise.
482 2003-10-17 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
484 * collect2.c (COLLECT_PARSE_FLAG): Provide default.
486 * doc/tm.texi (COLLECT_PARSE_FLAG): Document it.
488 2003-10-17 Richard Earnshaw <rearnsha@arm.com>
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
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.
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
511 2003-10-17 Richard Earnshaw <rearnsha@arm.com>
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.
517 2003-10-16 Jan Hubicka <jh@suse.cz>
519 PR optimization/12630
520 * pa.md (movstrsi, movstrsi_internal): Use match_scratch in clobbers
521 for operands 7 and 8.
523 2003-10-16 Kelley Cook <kcook@gcc.gnu.org>
525 * objc/Make-lang.in (objc-parse.o): Honor $(parsedir) for objc-parse.c.
527 2003-10-16 Danny Smith <dannysmith@users.sourceforge.net>
529 * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Define.
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.
539 2003-10-16 Zack Weinberg <zack@codesourcery.com>
541 * configure.in: Add snprintf to gcc_AC_CHECK_DECLS list.
542 * system.h: Declare snprintf if necessary.
543 * configure, config.in: Regenerate.
545 2003-10-15 David Edelsohn <edelsohn@gnu.org>
547 * config/rs6000/rs6000.c (rs6000_va_arg): Only align vector
548 arguments if TARGET_ALTIVEC_ABI.
550 2003-10-15 Roger Sayle <roger@eyesopen.com>
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):
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,
569 2003-10-15 Geoffrey Keating <geoffk@apple.com>
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
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
580 2003-10-15 Gábor Lóki <alga@rgai.hu>
582 * fold-const.c (tree_swap_operands_p): Disable some features
583 when optimizing for size.
585 2003-10-15 David Daney <ddaney@avtrex.com>
587 * config/mips/linux.h (MD_FALLBACK_FRAME_STATE_FOR): New
588 * config/mips/mips.h (DWARF_FRAME_REGNUM): Fixed to allow unwind
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.
595 2003-10-15 Zack Weinberg <zack@codesourcery.com>
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.
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.
622 2003-10-15 Olivier Hainque <hainque@act-europe.fr>
624 * genmodes.c (calc_wider_mode): Allocate enough room for all the
625 entries we'll possibly assign in the sort buffer.
627 2003-10-15 Ulrich Weigand <uweigand@de.ibm.com>
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.
634 2003-10-15 Hans-Peter Nilsson <hp@axis.com>
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
647 * config/cris/cris.h (PREDICATE_CODES): Add cris_mem_op.
649 2003-10-15 Bernardo Innocenti <bernie@develer.com>
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.
655 2003-10-14 Ziemowit Laski <zlaski@apple.com>
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
664 * objc/objc-act.h (add_method): Rename to objc_add_method().
666 2003-10-14 Ulrich Weigand <uweigand@de.ibm.com>
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):
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
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"):
681 2003-10-14 Nathanael Nerode <neroden@gcc.gnu.org>
683 * configure.in: Clean up some feedback echoes.
684 * configure: Regenerate.
686 * aclocal.m4: Properly quote names of macros being defined.
688 * config.gcc (am33_2.0-*-linux*): Use t-slibgcc-elf-ver.
690 2003-10-14 Steve Ellcey <sje@cup.hp.com>
692 * config/ia64/ia64.c (ia64_expand_call): Force function address
694 * config/ia64/ia64.md (call_gp): Put DImode on operand 0.
696 2003-10-14 Ulrich Weigand <uweigand@de.ibm.com>
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.
703 2003-10-14 Nathanael Nerode <neroden@gcc.gnu.org>
705 * config.gcc, config/m68hc11/t-m68hc11-gas: Replace uses of
706 target_alias with target_noncanonical.
708 2003-10-14 Geoffrey Keating <geoffk@apple.com>
710 * expr.c (block_move_libcall_safe_for_call_parm): Clean up,
711 and add case for machines where outgoing register parameters
714 * config/darwin.c (machopic_indirect_data_reference): Use a scratch
715 register when generating indirect address.
717 2003-10-14 Richard Earnshaw <rearnsha@arm.com>
719 * arm.c (arm_addimm_operand): MODE arguemnt is unused.
720 * arm.md (cbranchne_decr1): Fix bootstrap warning.
722 2003-10-14 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
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
728 Fixes PR bootstrap/9330.
730 2003-10-13 Eric Christopher <echristo@redhat.com>
732 * config/frv/frv.c (frv_adjust_field_align): Redo check for
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
743 2003-10-13 Nathanael Nerode <neroden@gcc.gnu.org>
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
750 * configure: Regenerate.
752 2003-10-13 Ian Lance Taylor <ian@wasabisystems.com>
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.
758 2003-10-13 David S. Miller <davem@redhat.com>
760 * ifcvt.c (num_removed_blocks): Rename to num_true_changes.
761 (find_cond_trap): Always increment if we emit a conditional
764 2003-10-13 Zack Weinberg <zack@codesourcery.com>
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.
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):
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.
803 * combine.c: Change all preprocessor conditionals on
804 EXTRA_CC_MODES to use SELECT_CC_MODE instead; rearrange a bit
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.
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
815 * config/i860/i860.h (INIT_CUMULATIVE_ARGS): Pass correct
816 number of arguments to aggregate_value_p.
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
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
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
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.
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.
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.
872 2003-10-13 Zack Weinberg <zack@codesourcery.com>
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
880 2003-10-13 Nathanael Nerode <neroden@gcc.gnu.org>
882 * configure.in: Remove unnecessary test.
883 * configure: Regenerate.
885 * configure.in: Fix grammatical error. Move UWIN host error to...
887 * configure: Regenerate.
889 2003-10-13 Andreas Krebbel <krebbel1@de.ibm.com>
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.
900 2003-10-14 Alan Modra <amodra@bigpond.net.au>
902 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Choose
903 MASK_ALIGN_NATURAL if rs6000_alignment_string not given. Don't
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.
910 2003-10-13 Eric Botcazou <ebotcazou@libertysurf.fr>
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.
918 2003-10-12 Steven Bosscher <steven@gcc.gnu.org>
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.
924 2003-10-12 Nathanael Nerode <neroden@gcc.gnu.org>
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.
931 2003-10-12 Steven Bosscher <steven@gcc.gnu.org>
933 * c-common.c (c_common_truthvalue_conversion): Warn if the
934 address of a non-weak function is used as a truth value.
936 2003-10-12 Kazu Hirata <kazu@cs.umass.edu>
938 * config/h8300/h8300.c (WORD_REG_USED): Use SP_REG instead of
940 * config/h8300/h8300.h (REGNO_OK_FOR_BASE_P): Use MAC_REG
941 instead of a literal.
943 2003-10-12 Hans-Peter Nilsson <hp@bitrange.com>
945 * doc/extend.texi (Function Attributes): Mention the exceptional
946 path for noreturn-marked functions.
948 2003-10-12 Jan Hubicka <jh@suse.cz>
950 * cgraphunit.c (cgraph_decide_inlining): Fix uninitialized variable
953 2003-10-12 Danny Smith <dannysmith@users.sourceforge.net>
955 * config/i386/i386.c (x86_this_parameter): Fix typo.
957 2003-10-11 Jan Hubicka <jh@suse.cz>
959 * Makefile.in (web.o): New.
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.
973 * passes.texi (web construction): Document.
974 * invoke.texi (-O3): Document that -fweb is enabled.
976 * regrename.c (regrename_optimize): Deal better with situation when
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.
983 2003-10-11 Roger Sayle <roger@eyesopen.com>
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.
1013 2003-10-11 Roger Sayle <roger@eyesopen.com>
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.
1021 * config/i386/i386.md (cmpstrsi, movstrsi): Disable with -Os.
1023 2003-10-11 Roger Sayle <roger@eyesopen.com>
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).
1034 2003-10-11 Roger Sayle <roger@eyesopen.com>
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.
1043 2003-10-11 Eric Botcazou <ebotcazou@libertysurf.fr>
1045 PR optimization/12544
1046 * function.c (put_var_into_stack): Don't generate ADDRESSOFs
1047 for DECL_NONLOCAL decls.
1049 2003-10-11 Kazu Hirata <kazu@cs.umass.edu>
1051 * expr.c: Follow spelling conventions.
1052 * final.c: Likewise.
1053 * optabs.c: Likewise.
1054 * sched-deps.c: Likewise.
1055 * sdbout.c: Likewise.
1057 Sat Oct 11 12:24:23 CEST 2003 Jan Hubicka <jh@suse.cz>
1059 * varasm.c (notice_global_symbol): Fix handling of variables; avoid
1060 re-computing of variable.
1062 2003-10-11 Richard Henderson <rth@redhat.com>
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.
1080 2003-10-11 Ian Lance Taylor <ian@wasabisystems.com>
1082 * config/arm/arm.c (arm_regno_class): Handle IWMMXT_GR_REGS.
1084 2003-10-11 Kazu Hirata <kazu@cs.umass.edu>
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.
1091 2003-10-11 Roger Sayle <roger@eyesopen.com>
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.
1102 2003-10-11 Roger Sayle <roger@eyesopen.com>
1104 * combine.c (apply_distributive_law): Enable "distributive" floating
1105 point optimizations with -funsafe-math-optimizations.
1107 2003-10-11 Andrew Pinski <pinskia@physics.uc.edu>
1109 * genmodes.c (emit_mode_mask) Change MASK to MODE_MASK.
1111 2003-10-11 Kazu Hirata <kazu@cs.umass.edu>
1113 * config/m68k/m68k-protos.h: Remove the prototype for
1116 2003-10-11 Kazu Hirata <kazu@cs.umass.edu>
1118 * config/m68k/m68k.c: Fix comment typos.
1120 2003-10-11 Bernardo Innocenti <bernie@develer.com>
1122 * config/m68k/m68k-protos.h (use_return_insn): Change return type from
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__.
1135 2003-10-11 Peter Barada <peter@baradas.org>
1136 Bernardo Innocenti <bernie@develer.com>
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
1147 2003-10-11 Bernardo Innocenti <bernie@develer.com>
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.
1153 2003-10-10 Roger Sayle <roger@eyesopen.com>
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.
1159 2003-10-10 Roger Sayle <roger@eyesopen.com>
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.
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
1176 2003-10-11 Bernardo Innocenti <bernie@develer.com>
1177 Paul Dale <pauli@snapgear.com>
1179 * config/m68k/lb1sf68.asm: Add __PIC__ and __ID_SHARED_LIBRARY__
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.
1195 2003-10-10 Zack Weinberg <zack@codesourcery.com>
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.
1203 2003-10-10 Eric Christopher <echristo@redhat.com>
1205 * lcm.c (optimize_mode_switching): Change NORMAL_MODE
1206 to MODE_ENTRY and MODE_EXIT. Add MODE_AFTER for insns
1208 * config/sh/sh.h (MODE_ENTRY): New macro.
1210 (MODE_AFTER): Ditto.
1211 * config/sh/sh.md: Change for MODE_AFTER. Add
1213 * doc/tm.texi: Document MODE_AFTER, MODE_ENTRY, and MODE_EXIT.
1215 2003-10-10 Zack Weinberg <zack@codesourcery.com>
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
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.
1248 * config/ip2k/ip2k.h, config/iq2000/iq2000.h:
1249 No need to define BITS_PER_UNIT.
1251 2003-10-10 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
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
1257 * config/ia64/ia64.h (ASM_APP_ON, ASM_APP_OFF): Add vers for not GAS.
1258 (ASM_OUTPUT_DEBUG_LABEL): Likewise.
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.
1265 * combine.c (distribute_links): Properly test for REG being set.
1267 * config/alpha/alpha.c (alpha_expand_block_mode): Don't use
1268 gen_lowpart and company except for REG.
1270 2003-10-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1272 * pa64-hpux.h (LINK_SPEC): Use `-z' option with HP ld.
1274 2003-10-10 Nathanael Nerode <neroden@gcc.gnu.org>
1276 * config.gcc (mips*-*-netbsd*): Remove content-free line.
1278 2003-10-10 Herman A.J. ten Brugge <hermantenbrugge@home.nl>
1280 * gcov-io.h: Check BITS_PER_UNIT when defining gcov_unsigned_t,
1281 gcov_position_t and gcov_type.
1283 2003-10-09 Kaz Kojima <kkojima@gcc.gnu.org>
1285 * configure.in (HAVE_AS_TLS): Add sh-*-* and sh[34]*-*-* cases.
1286 * configure: Regenerate.
1288 2003-10-09 Kazu Hirata <kazu@cs.umass.edu>
1290 * config/h8300/h8300.md (define_asm_attributes): Specify
1291 the length of an asm insn more precisely.
1293 2003-10-09 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
1295 * config/mips/iris6.h (SUBTARGET_CPP_SPEC): Define.
1297 2003-10-09 Bob Wilson <bob.wilson@acm.org>
1299 * config/xtensa/xtensa.c (xtensa_dbx_register_number): Change first
1300 FP register number to 48 and MAC16 accumulator to 0x210.
1302 2003-10-09 Nathanael Nerode <neroden@gcc.gnu.org>
1304 * config.gcc: Remove redundant thread_file setting clauses for
1305 various *-*-linux* targets.
1307 2003-10-09 Kazu Hirata <kazu@cs.umass.edu>
1309 * config/h8300/h8300.md (define_asm_attributes): New.
1311 2003-10-09 Roger Sayle <roger@eyesopen.com>
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.
1316 2003-10-09 Dorit Naishlos <dorit@il.ibm.com>
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
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
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
1339 * doc/invoke.texi (-fsched-stalled-insns-dep)
1340 (-fsched-stalled-insns, -msched-costly-dep): Document
1342 * doc/tm.texi (is_costly_dependence): Define new
1343 scheduler target hook.
1345 2003-10-09 Jason Merrill <jason@redhat.com>
1348 * c-common.c (c_build_qualified_type): Look through arrays first.
1349 (c_apply_type_quals_to_decl): Look through arrays.
1351 * c-common.c (c_apply_type_quals_to_decl): Unset TREE_READONLY for
1352 types with constructors.
1354 * coverage.c (build_ctr_info_value): Use build_decl to make a
1356 (create_coverage): Likewise.
1358 * stmt.c (resolve_asm_operand_names): Call check_unique_operand_names
1360 (expand_asm_operands): Not here.
1361 (parse_input_constraint): No longer static.
1362 * tree.h: Declare it.
1364 2003-10-08 Kaz Kojima <kkojima@gcc.gnu.org>
1366 * config/sh/t-linux (SHLIB_LINK): Override to use a linker script
1368 (SHLIB_INSTALL): Likewise.
1370 2003-10-08 Nathanael Nerode <neroden@gcc.gnu.org>
1372 * doc/install.texi: Remove reference to removed 'pthreads' thread
1375 2003-10-08 Aldy Hernandez <aldyh@redhat.com>
1377 * config/rs6000/rs6000.md ("abssi2_isel"): Add early clobber to
1380 2003-10-08 Nathanael Nerode <neroden@gcc.gnu.org>
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.
1389 2003-10-08 Geoffrey Keating <geoffk@apple.com>
1391 * function.c (pad_to_arg_alignment): Move 'boundary_in_bytes'
1392 definition to above SPARC_STACK_BOUNDARY_HACK.
1394 2003-10-08 Jason Merrill <jason@redhat.com>
1396 * c-pretty-print.c (pp_c_postfix_expression)
1397 <COMPOUND_LITERAL_EXPR>: Fix thinko.
1399 2003-10-08 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
1401 * mklibgcc.in: Don't hide undefined or typeless symbols.
1403 2003-10-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
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.
1413 2003-10-08 Timo Kokkonen <tjko@iki.fi>
1414 Eric Botcazou <ebotcazou@libertysurf.fr>
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.
1421 2003-10-08 Carlo Wood <carlo@alinoe.com>
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.
1427 2003-10-08 Richard Sandiford <rsandifo@redhat.com>
1429 * config/mips/mips.c (mips_frame_info): Add cprestore_size field.
1430 (compute_frame_size): Initialize it. Remove the .cprestore slot
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.
1439 2003-10-08 Richard Sandiford <rsandifo@redhat.com>
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.
1447 2003-10-08 Kazu Hirata <kazu@cs.umass.edu>
1449 * genopinit.c (main): Output code to declare undefined
1452 2003-10-07 Kelley Cook <kcook@gcc.gnu.org>
1454 * gengtype-lex.l: Remove -Wtraditional cruft.
1455 * Makefile.in (gengtype-lex.c): Likewise.
1457 2003-10-07 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
1459 * cfgloopmanip.c (fix_irreducible_loops): Initialize e correctly.
1461 2003-10-07 Jason Merrill <jason@redhat.com>
1464 * c-semantics.c (genrtl_cleanup_stmt): Ignore the CLEANUP_DECL if
1467 2003-10-07 Alexandre Oliva <aoliva@redhat.com>
1469 * gcc.c (cpp_options): Only pass -fworking-directory for -g* if
1471 Fixes PR bootstrap/12173.
1473 2003-10-07 Zack Weinberg <zack@codesourcery.com>
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.
1480 2003-10-07 Geoffrey Keating <geoffk@apple.com>
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
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
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.
1522 2003-10-07 Gerald Pfeifer <gerald@pfeifer.com>
1524 * doc/invoke.texi (Warning Options): Simplify and clarify the
1525 descriptions of -Wnonnull and -Winit-self.
1527 2003-10-07 Richard Earnshaw <rearnsha@arm.com>
1529 * optabs.c (init_intraclass_conv_libfuncs): Fix order of array
1530 indicees for floating-point conversersion libcalls.
1532 2003-10-07 Nathanael Nerode <neroden@gcc.gnu.org>
1534 * Makefile.in: Add more comments separating large conceptually
1537 * configure.in: Clean up thread file logic.
1538 * configure: Regenerate.
1540 2003-10-07 Danny Smith <dannysmith@users.sourceforge.net>
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
1547 2003-10-07 Richard Earnshaw <rearnsha@arm.com>
1549 * arm.md (cmpsi2_addneg): New ARM pattern. Add peephole2 to generate
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.
1556 2003-10-07 Dorit Naishlos <dorit@il.ibm.com>
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
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
1577 2003-10-07 Zack Weinberg <zack@codesourcery.com>
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
1588 2003-10-07 Richard Sandiford <rsandifo@redhat.com>
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.
1602 2003-10-07 Richard Sandiford <rsandifo@redhat.com>
1604 * config/mips/mips.c (mips_expand_prologue): Remove unused
1605 traversal of function arguments.
1607 2003-10-07 Richard Sandiford <rsandifo@redhat.com>
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.
1618 2003-10-06 Zack Weinberg <zack@codesourcery.com>
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.
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.
1680 2003-10-06 Roger Sayle <roger@eyesopen.com>
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.
1686 2003-10-06 Roger Sayle <roger@eyesopen.com>
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.
1691 2003-10-06 Roger Sayle <roger@eyesopen.com>
1692 Zack Weinberg <zack@codesourcery.com>
1694 * optabs.c (prepare_float_lib_cmp): Avoid searching for REG_RETVAL
1695 instruction by using LCT_CONST and then calling emit_libcall_block
1698 2003-10-06 Falk Hueffner <falk.hueffner@student.uni-tuebingen.de>
1700 PR optimization/11974
1701 * optabs.c (expand_unop): Promote libcall outmode according to
1704 2003-10-06 Zack Weinberg <zack@codesourcery.com>
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.
1714 2003-10-06 Devang Patel <dpatel@apple.com>
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.
1721 2003-10-06 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
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.
1728 2003-10-06 Richard Sandiford <rsandifo@redhat.com>
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
1735 2003-10-06 Richard Sandiford <rsandifo@redhat.com>
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.
1744 2003-10-06 Richard Sandiford <rsandifo@redhat.com>
1746 * config/mips/mips.c (mips_arg_info): If MUST_PASS_IN_STACK,
1747 skip any remaining register arguments.
1749 2003-10-06 Ulrich Weigand <uweigand@de.ibm.com>
1751 * reload.c (find_reloads_subreg_address): Use correct offset for
1752 paradoxical MEM subregs on big-endian targets.
1754 2003-10-06 Andrew Haley <aph@redhat.com>
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.
1761 2003-10-06 Andrew Pinski <apinski@apple.com>
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.
1767 2003-10-06 Roger Sayle <roger@eyesopen.com>
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.
1773 2003-10-06 Eric Botcazou <ebotcazou@libertysurf.fr>
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.
1779 2003-10-06 Eric Botcazou <ebotcazou@libertysurf.fr>
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.
1787 2003-10-06 Richard Sandiford <rsandifo@redhat.com>
1789 * config/mips/mips.c (mips_classify_constant): Only allow UNSPECs
1790 if TARGET_EXPLICIT_RELOCS.
1792 2003-10-06 Mark Mitchell <mark@codesourcery.com>
1795 * Makefile.in (info): Use double-colon rules.
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.
1803 (objc.generated-manpages): Remove.
1804 * doc/sourcebuild.texi: Update description of info, dvi, and
1805 generated-manpages hooks.
1807 2003-10-06 Richard Sandiford <rsandifo@redhat.com>
1809 * config/mips/mips.md: Merge mips16 lw/srl pattern with its splitter.
1811 2003-10-05 Andrew Pinski <apinski@apple.com>
1813 * config/darwin.c (machopic_non_lazy_ptr_name): Fix off by one
1814 errors in memcpy destinations.
1815 (machopic_stub_name): Likewise.
1817 2003-10-05 Andrew Pinski <apinski@apple.com>
1819 * config/darwin.c (machopic_non_lazy_ptr_name):
1820 Change strcat to memcpy and add length together.
1821 (machopic_stub_name): Likewise.
1823 2003-10-05 Kaz Kojima <kkojima@gcc.gnu.org>
1825 * config/sh/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Handle new
1826 signal trampoline codes.
1828 2003-10-05 Chris Demetriou <cgd@broadcom.com>
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.
1835 2003-10-05 Aldy Hernandez <aldyh@redhat.com>
1837 * config/rs6000/linuxspe.h: Define TARGET_SPE_ABI, TARGET_SPE,
1838 TARGET_E500, TARGET_ISEL, and TARGET_FPRS.
1840 2003-10-05 Kazu Hirata <kazu@cs.umass.edu>
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.
1852 * genoutput.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.
1866 2003-10-05 Richard Henderson <rth@redhat.com>
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.
1876 2003-10-05 Kazu Hirata <kazu@cs.umass.edu>
1878 * doc/invoke.texi: Fix typos.
1880 2003-10-05 Kazu Hirata <kazu@cs.umass.edu>
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.
1891 2003-10-05 Kazu Hirata <kazu@cs.umass.edu>
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.
1900 * target.h: Likewise.
1902 2003-10-04 Kelley Cook <kelleycook@wideopenwest.com>
1904 * gengtype-lex.l: Recognize typedef of functions without PARAMS macro.
1906 2003-10-04 Nathanael Nerode <neroden@gcc.gnu.org>
1908 * config/v850/v850-c.c, config/v850/v850-protos.h, config/v850/v850.c:
1909 Convert to ISO C90 function declarations and definitions.
1911 2003-10-04 Zack Weinberg <zack@codesourcery.com>
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):
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.
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.
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.
1948 * config/ia64/ia64.c (ia64_hpux_init_libfuncs): Fix typo.
1949 * config/rs6000/rs6000.c (rs6000_init_libfuncs): Correct ABI
1950 selector conditionals.
1952 2003-10-04 Stephane Carrez <stcarrez@nerim.fr>
1954 * config/m68hc11/t-m68hc11-gas (MULTILIB_MATCHES): m68hcs12 is
1955 identical to m68hc12 as far as libraries are concerned.
1957 2003-10-04 Eric Botcazou <ebotcazou@libertysurf.fr>
1960 * c-typeck.c (convert_for_assignment): Issue an error for
1961 array to pointer assignment after default conversion.
1962 (digest_init): Likewise.
1964 2003-10-04 Fariborz Jahanian <fjahanian@apple.com>
1966 * c-decl.c (duplicate_decls): retain DECL_COMMON of old declaration
1968 2003-10-03 Gerald Pfeifer <gerald@pfeifer.com>
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.
1975 2003-10-04 Richard Earnshaw <reanrsha@arm.com>
1977 * doc/extend.texi: Document how GCC estimates and relies on the size
1980 2003-10-04 Richard Sandiford <rsandifo@redhat.com>
1982 * config/mips/mips.c (mips_pad_arg_upward): Pad floating-point
1983 arguments downward for big-endian o64.
1985 2003-10-03 Robert Bowdidge <bowdidge@apple.com>
1987 * ggc-page.c (ggc_pch_write_object): Replace fseek() with fwrite() in
1988 PCH generation, avoiding too-frequent flushes when writing to NFS
1991 2003-10-03 Ziemowit Laski <zlaski@apple.com>
1993 * objc/objc-act.c (lookup_category): Mark as 'inline'.
1995 2003-10-03 Alexander Malmberg <alexander@malmberg.org>
1996 Ziemowit Laski <zlaski@apple.com>
1998 * objc/objc-act.c (add_method_to_hash_list, lookup_category):
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
2014 2003-10-03 Roger Sayle <roger@eyesopen.com>
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
2027 2003-10-03 Chris Demetriou <cgd@broadcom.com>
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,
2035 (prefetch_indexed_di, prefetch_indexed_si): New insns.
2037 2003-10-03 Jeff Sturm <jsturm@one-point.com>
2038 Roger Sayle <roger@eyesopen.com>
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.
2046 2003-10-03 Andreas Schwab <schwab@suse.de>
2049 * configure.in: Check for libunwind on the host only if building
2051 * configure: Regenerated.
2053 2003-10-03 Paolo Carlini <pcarlini@unitus.it>
2055 * unwind-pe.h (read_encoded_value_with_base): Constify u and
2056 its inizialization cast.
2058 2003-10-03 Richard Sandiford <rsandifo@redhat.com>
2061 * config/mips/mips.c (mips_load_got): GOT accesses can't trap.
2063 2003-10-02 Mark Mitchell <mark@codesourcery.com>
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.
2069 2003-10-02 Chris Demetriou <cgd@broadcom.com>
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.
2078 2003-10-02 Zack Weinberg <zack@codesourcery.com>
2080 * system.h: Poison macros obsoleted by earlier patch.
2081 * config/cris/cris.c: C90-ify a function definition.
2083 2003-10-02 Josef Zlomek <zlomekj@suse.cz>
2086 * combine.c (make_field_assignment): Check whether rtx's code
2087 is CONST_INT before using INTVAL.
2089 2003-10-02 Josef Zlomek <zlomekj@suse.cz>
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.
2098 2003-10-02 Josef Zlomek <zlomekj@suse.cz>
2100 Waldek Hebisch <hebisch@math.uni.wroc.pl>
2102 * varasm.c (compare_constant): Fix thinko.
2104 2003-10-02 Richard Sandiford <rsandifo@redhat.com>
2106 * config/frv/frv.c (frv_issue_rate): New function.
2107 (frv_pack_insns): Use it.
2108 (TARGET_SCHED_ISSUE_RATE): Define.
2110 2003-10-02 Steven Bosscher <s.bosscher@student.tudelft.nl>
2112 * config/mcore/mcore.c: Convert to ISO C90 function declarations
2114 * config/mcore/mcore.h: Likewise.
2115 * config/mcore/mcore-protos.h: Likewise.
2117 2003-10-02 Richard Sandiford <rsandifo@redhat.com>
2119 * config/frv/frv.c (frv_use_dfa_pipeline_interface): New function.
2120 (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define.
2122 2003-10-01 Per Bothner <pbothner@apple.com>
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,
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.
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.
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.
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.
2172 2003-10-01 Zack Weinberg <zack@codesourcery.com>
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,
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.
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.
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.
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.
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.
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.
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.
2244 * config/avr/avr.c (avr_init_once): #if 0 out; mark FIXME.
2246 2003-10-01 Kelley Cook <kelleycook@wideopenwest.com>
2249 * c-parse.in (parmlist_2): Mark declaration with an ellipsis as ISO C.
2251 2003-10-01 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
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.
2262 2003-10-01 Zack Weinberg <zack@codesourcery.com>
2264 * dbxout.c (dbxout_fptype_value): Delete.
2265 (dbxout_type): Emit R3 for all COMPLEX_TYPEs.
2267 2003-10-01 Alexandre Oliva <aoliva@redhat.com>
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.
2273 2003-10-01 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2275 * aclocal.m4: Add hpux10* and hpux11.00 to /dev/zero blacklist.
2276 * configure: Rebuilt.
2278 2003-10-01 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2280 * fold-const.c (make_range): When handling unsigned, don't reverse
2281 range if high bound is zero.
2283 2003-09-30 Alexandre Oliva <aoliva@redhat.com>
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.
2290 2003-10-01 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2292 * aclocal.m4: Add ultrix* to /dev/zero blacklist.
2293 * configure: Rebuilt.
2295 2003-10-01 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2297 * except.h (MUST_USE_SJLJ_EXCEPTIONS): Revert 2003-09-23 change.
2299 * doc/tm.texi (MUST_USE_SJLJ_EXCEPTIONS): Document.
2301 2003-09-23 David S. Miller <davem@redhat.com>
2303 * config/sparc/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Undefine
2305 * config/sparc/linux64.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
2307 2003-10-01 Steven Bosscher <steven@gcc.gnu.org>
2309 * config/cris/cris-protos.h, config/cris/cris.c: Convert to ISO
2310 C90 function declarations and definitions.
2312 2003-10-01 Nathanael Nerode <neroden@gcc.gnu.org>
2314 * config.gcc (cris-*-linux*): Revert mistaken commit.
2316 2003-10-01 Eric Botcazou <ebotcazou@libertysurf.fr>
2318 PR optimization/11753
2319 * config/sparc/sparc.md (length attribute) [fcc branch]: Add 1 to
2320 the length in the non-V9 case.
2322 2003-09-30 Richard Henderson <rth@redhat.com>
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.
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.
2338 2003-09-30 Kelley Cook <kelleycoook@wideopenwest.com>
2340 * sdbout.c: Convert to ISO C90 prototypes.
2341 * objc/objc-act.c: Likewise.
2343 2003-09-30 Kelley Cook <kelleycoook@wideopenwest.com>
2345 * config/i386/cygwin1.c: Convert to ISO C90 prototypes.
2346 * config/i386/winnt.c: Likewise.
2347 * config/i386/cygming.h: Likewise.
2349 2003-09-30 Kazu Hirata <kazu@cs.umass.edu>
2351 * fold-const.c (fold): Fold (A & ~B) - (A & B) into
2352 (A ^ B) - B for any B.
2354 2003-09-30 Nathanael Nerode <neroden@gcc.gnu.org>
2356 * config.gcc (arm*-*-kaos*, i[34567]86-*-kaos*, powerpc-*-kaos*,
2357 powerpcle-*-kaos*, strongarm-*-kaos*): Disable fixproto.
2359 2003-09-30 Richard Earnshaw <rearnsha@arm.com>
2361 * arm/ieee754-sf.S: Tidy formatting.
2363 2003-09-30 Nicolas Pitre <nico@cam.org>
2365 * arm/lib1funcs.asm (ARM_DIV_MOD_BODY): Split into ARM_DIV_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.
2374 2003-09-30 Nicolas Pitre <nico@cam.org>
2376 * arm/ieee754-df.S: Split compilation of fixunsdfsi from
2378 * arm/t-arm-elf (LIB1ASMFUNCS): Add _fixunsdfsi.
2380 2003-09-30 Nathanael Nerode <neroden@gcc.gnu.org>
2382 * config.gcc: Default use_fixproto to 'no'.
2384 2003-09-30 Richard Sandiford <rsandifo@redhat.com>
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.
2399 2003-09-30 Carlo Wood <carlo@alinoe.com>
2402 * cfglayout.c (insn_scope): Use prologue_locator and
2403 epilogue_locator; return the outer function scope for
2404 pro- and epilogue insns.
2406 2003-09-29 Zack Weinberg <zack@codesourcery.com>
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
2412 2003-09-29 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2414 * dwarf2out.c (default_eh_frame_section): Split into ...
2415 (named_section_eh_frame_section, collect2_eh_frame_section): ... new
2417 * output.h (named_section_eh_frame_section): Declare.
2418 (collect2_eh_frame_section): Likewise.
2420 2003-09-29 Zack Weinberg <zack@codesourcery.com>
2422 * real.c (real_sqrt): Use get_canonical_qnan directly.
2424 * dwarf2out.c (add_const_value_attribute): Use real_to_target.
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_*
2432 2003-09-29 Jan Hubicka <jh@suse.cz>
2435 * varasm.c (notice_global_symbol): Discard external symbols.
2437 PR optimization/12286
2438 * gcov-io.c (gcov_read_words): Fix memmove call.
2439 * profile.c (compute_branch_probabilities): Add extra sanity checks.
2441 2003-09-29 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2443 * config.gcc (sparc-*-solaris2*): Handle Solaris 10 and up like
2446 * fixinc/inclhack.def (solaris_widec): Replace solaris2.[0-5]* by
2447 wildcards which explicitly match micro versions.
2448 * fixinc/fixincl.x: Regenerate.
2450 2003-09-29 Kazu Hirata <kazu@cs.umass.edu>
2452 * fold-const.c (fold): Fold (A & ~B) - (A & B) into
2453 (A ^ B) - B, where B is any power of 2 minus 1.
2455 2003-09-29 Jan Hubicka <jh@suse.cz>
2457 * libgcov.c (gcov_exit): Fix two pastos.
2459 2003-09-29 Kazu Hirata <kazu@cs.umass.edu>
2461 * config/h8300/h8300.md (*tst_extzv_1_n): Combine with the
2462 define_split immediately below to form define_insn_and_split.
2464 2003-09-29 Kazu Hirata <kazu@cs.umass.edu>
2466 * config/h8300/h8300.md (*tstsi_variable_bit): New.
2467 (*tstsi_variable_bit_qi): Likewise.
2469 2003-09-28 Phil Edwards <phil@codesourcery.com>
2471 * doc/cppopts.texi: Use 'dashMP' instead of '-MP' as a cross-
2474 2003-09-28 Richard Henderson <rth@redhat.com>
2476 * c-decl.c (duplicate_decls): Copy DECL_SOURCE_LOCATION, not
2477 file and line separately.
2479 2003-09-28 Ulrich Weigand <uweigand@de.ibm.com>
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.
2488 2003-09-28 Richard Henderson <rth@redhat.com>
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.
2497 2003-09-28 Philip Blundell <philb@gnu.org>
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.
2503 2003-09-28 Steven Bosscher <steven@gcc.gnu.org>
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,
2508 Convert to ISO C90 function declarations and definitions.
2510 2003-09-28 Steven Bosscher <steven@gcc.gnu.org>
2512 * config/stormy16/stormy16.c, config/stormy16/stormy16-protos.h:
2513 Convert to ISO C90 function declarations and definitions.
2515 2003-09-28 Richard Sandiford <rsandifo@redhat.com>
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.
2522 2003-09-28 Richard Sandiford <rsandifo@redhat.com>
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.
2541 2003-09-27 Roger Sayle <roger@eyesopen.com>
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.
2548 2003-09-28 Andreas Jaeger <aj@suse.de>
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.
2554 2003-09-27 Nathanael Nerode <neroden@gcc.gnu.org>
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.
2561 2003-09-27 Eric Botcazou <ebotcazou@libertysurf.fr>
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.
2570 2003-09-27 Graham Stott <graham.stott@btinternet.com>
2572 * unroll.c (loop_interations)[GT]: Add missing break.
2574 2003-09-27 Kelley Cook <kcook@gcc.gnu.org>
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.
2653 2003-09-26 Loren James Rittle <ljrittle@acm.org>
2655 * objc/objc-act.c (tm_p.h): Tweak order.
2656 * objc/Make-lang.in (objc/objc-act.o): Add $(TM_P_H).
2658 2003-09-26 Nathanael Nerode <neroden@gcc.gnu.org>
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*):
2664 * config.gcc (i960-*-coff*, m68k-*-aout*, sparclite-*-coff*):
2666 * config.gcc (i[34567]86-*-solaris2*, sparc64-*-solaris2*,
2667 sparcv9-*-solaris2*, sparc-*-solaris2*): Disable fixproto.
2669 * config/i386/unix.h: Remove (unused) DEFAULT_ASSEMBLER_DIALECT.
2671 2003-09-26 Loren James Rittle <ljrittle@acm.org>
2673 * config/i386/i386.h (ix86_return_in_memory): Revert my last patch.
2674 * objc/objc-act.c (tm_p.h): Include.
2676 2003-09-26 Per Bothner <pbothner@apple.com>
2678 * dbxout.c (dbxout_typedefs): Output typedefs in forward order.
2679 No longer any need to reverse by recursion.
2681 2003-09-26 Roger Sayle <roger@eyesopen.com>
2682 Richard Henderson <rth@redhat.com>
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
2692 2003-09-26 Andreas Krebbel <krebbel1@de.ibm.com>
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.
2702 2003-09-26 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2705 * pa.c (output_bvb): Fix typo.
2707 2003-09-26 Richard Sandiford <rsandifo@redhat.com>
2709 * expmed.c (store_bit_field): Don't search for an integer mode
2710 unless we need the result.
2712 2003-09-26 Richard Sandiford <rsandifo@redhat.com>
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.
2717 2003-09-26 Richard Sandiford <rsandifo@redhat.com>
2720 * combine.c (if_then_else_cond): Tighten mode check.
2722 2003-09-25 Nathanael Nerode <neroden@gcc.gnu.org>
2724 * cppcharset.c, cpphash.h: Rename 'struct strbuf' to
2725 'struct _cpp_strbuf'.
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.
2753 2003-09-25 Kelley Cook <kelleycook@wideopenwest.com>
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.
2763 2003-09-25 Loren James Rittle <ljrittle@acm.org>
2765 * config/i386/i386.h (ix86_return_in_memory): Add prototype.
2767 2003-09-25 Ulrich Weigand <uweigand@de.ibm.com>
2769 * config/s390/s390.c (s390_emit_prologue): Simplify accesses to
2770 FPR slots in the save area.
2771 (s390_emit_epilogue): Likewise.
2773 2003-09-25 Richard Sandiford <rsandifo@redhat.com>
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.
2780 2003-09-25 Ulrich Weigand <uweigand@de.ibm.com>
2782 * objc/objc-act.c (gen_declaration_1): Fix printf format.
2784 2003-09-25 Richard Earnshaw <rearnsha@arm.com>
2786 * arm.c (all_cores): arm710t, arm720t and arm740t are all based on the
2789 2003-09-25 Ziemowit Laski <zlaski@apple.com>
2791 * config/darwin-protos.h (objc_image_info_section):
2794 2003-09-25 Ziemowit Laski <zlaski@apple.com>
2796 * Makefile.in (stub-objc.o): Depend on $(GGC_H).
2798 2003-09-25 Nathanael Nerode <neroden@gcc.gnu.org>
2800 * config.gcc: Get rid of more gratuitious 'x'es. Actually allow
2801 tsc701 as a --with-cpu, --with-tune setting for sparc.
2803 2003-09-25 Ziemowit Laski <zlaski@apple.com>
2805 * c-parse.in (objc_try_stmt): Do not specify a %type.
2807 2003-09-25 Nathanael Nerode <neroden@gcc.gnu.org>
2809 * config.gcc: New 'widely ported system' clause for rtems.
2810 Set thread file there, not in individual clauses.
2812 2003-09-25 Richard Sandiford <rsandifo@redhat.com>
2815 * config/mips/mips.c (mips_va_arg): Handle arguments that must be
2816 passed on the stack.
2818 2003-09-25 Nathanael Nerode <neroden@gcc.gnu.org>
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.
2824 * config.gcc: Remove some unnecessary uses of 'x' in case statements.
2825 Actually allow ep9312 as an arm --with-arch setting.
2827 * config.gcc (*-hpux11): Disable fixproto.
2829 2003-09-24 Phil Edwards <phil@codesourcery.com>
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.
2836 2003-09-24 Roger Sayle <roger@eyesopen.com>
2839 * fold-const.c (tree_swap_operands_p): Only reorder operands when
2840 one of the operands is constant.
2842 2003-09-24 Ziemowit Laski <zlaski@apple.com>
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
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
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
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
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
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):
2960 (_JBLEN): _setjmp jmpbuf size (needs to be made a target hook in
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
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
2985 (generate_category): Do not set TREE_USED.
2986 (build_keyword_selector): Ditto; transform into a function argument
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
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
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
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
3038 (objc_clear_super_receiver): New function.
3039 (objc_expand_function_end): Do not do anything for ordinary
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>
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.
3071 2003-09-24 Alexandre Oliva <aoliva@redhat.com>
3073 * cpplib.c (do_pragma): Reintroduce cb_line_change call in the
3074 code path that calls a handler.
3076 2003-09-24 Nathanael Nerode <neroden@gcc.gnu.org>
3078 * config.gcc (c4x-*, tic4x-*, d30v-*, mmix-knuth-mmixware):
3081 * config.gcc: Clean up and reindent $with_cpu=yes|no clause and
3082 the section giving $with_cpu defaults by target.
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.
3091 2003-09-24 David Edelsohn <edelsohn@gnu.org>
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.
3097 2003-09-24 Nathan Sidwell <nathan@codesourcery.com>
3099 * c-common.c (c_common_type_for_mode): Check for VOIDmode.
3101 2003-09-24 Richard Earnshaw <rearnsha@arm.com>
3103 * arm.h (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Wrap in
3106 2003-09-23 Nathanael Nerode <neroden@gcc.gnu.org>
3108 * config.gcc: Move use_fixproto=no from generic vxworks clause to
3111 * config.gcc (powerpc-*-gnu-gnualtivec*): Disable fixproto
3112 (accidentally missed in last pass).
3114 2003-09-23 Andrew Pinski <apinski@apple.com>
3117 * configure: Regenerate.
3119 2003-09-23 Nathanael Nerode <neroden@gcc.gnu.org>
3121 * config.gcc (x86_64-*-freebsd*): Disable fixproto (accidentally
3122 missed in last pass).
3124 2003-09-23 Alexandre Oliva <aoliva@redhat.com>
3126 * config/mn10300/mn10300.md (andsi3): Fix cut&pasto in 0xfffffffe
3129 2003-09-23 Nathanael Nerode <neroden@gcc.gnu.org>
3131 * config.gcc: Move vax-*-vms* unsupported notice up with the rest.
3133 * config.gcc (alpha64*-dec-*vms*, alpha*-dec-*vms*,
3134 powerpc-*-eabisim*, powerpc-*-eabi*, powerpcle-*-eabisim*,
3135 powerpcle-*-eabi*): Disable fixproto.
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.
3144 2003-09-23 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
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.
3151 2003-09-23 Kelley Cook <kelleycook@wideopenwest.com>
3153 * cgraphunit.c (cgraph_expand_all_functions): Renamed from
3154 cgraph_expand_functions.
3156 2003-09-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
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.
3165 2003-09-23 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3167 * targhooks.c: Include output.h.
3168 * Makefile.in (targhooks.o): Add output.h to dependency list.
3170 2003-09-23 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3172 * config.host: Removed superfluous newline.
3174 2003-09-23 Nathanael Nerode <neroden@gcc.gnu.org>
3176 * config.gcc: Use ${target}, not $machine.
3177 * configure.in: Don't set $machine.
3178 * configure: Regenerate.
3180 2003-09-23 Geoffrey Keating <geoffk@apple.com>
3182 * config/t-darwin (crt2.o): Add stmp-int-hdrs to dependencies.
3184 * config/rs6000/rs6000.c (function_arg_pass_by_reference): Don't
3185 pass zero-size arrays by reference.
3186 (rs6000_va_arg): Likewise.
3188 2003-09-23 Nathanael Nerode <neroden@gcc.gnu.org>
3190 * config.gcc: Set use_fixproto=no in each specific *-gnu*
3191 configuration, rather than the generic one.
3193 2003-09-23 Richard Henderson <rth@redhat.com>
3195 * tree-inline.c (remap_save_expr): Map new save_expr to identity
3196 rather than to error_mark_node.
3198 2003-09-23 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3200 * configure.in (HAVE_GAS_SHF_MERGE): Always define to test result.
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.
3209 2003-09-23 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3211 * except.h (MUST_USE_SJLJ_EXCEPTIONS): Test for DWARF2_UNWIND_INFO
3214 2003-09-23 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
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
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.
3237 2003-09-22 Nathnael Nerode <neroden@gcc.gnu.org>
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.
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.
3258 2003-09-22 Richard Henderson <rth@redhat.com>
3260 * c-common.c (c_common_signed_or_unsigned_type): Examine mode,
3263 2003-09-22 David Edelsohn <edelsohn@gnu.org>
3264 Hartmut Penner <hpenner@de.ibm.com>
3265 Segher Boessenkool <boessen@de.ibm.com>
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
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.
3280 2003-09-22 Bob Wilson <bob.wilson@acm.org>
3282 * config/xtensa/xtensa-protos.h: Convert to ISO C90.
3283 * config/xtensa/xtensa.c: Convert to ISO C90. Minor formatting fixes.
3285 2003-09-22 Alexandre Oliva <aoliva@redhat.com>
3287 * config/mn10300/mn10300.md: Revert 2003-09-17's patch.
3288 (andsi3): Set attr cc to set_zn when using shifts or adds.
3290 2003-09-22 Bernardo Innocenti <bernie@develer.com>
3292 * doc/contrib.texi: Add Peter Barada, Paul Dale and myself.
3294 2003-09-22 Bernardo Innocenti <bernie@develer.com>
3296 * config/m68k/m68k.h (MASK_RTD, TARGET_RTD, RETURN_POPS_ARGS):
3297 Resurrect -mrtd option.
3299 2003-09-21 Andrew Pinski <pinskia@physics.uc.edu>
3302 * config/darwin.c (machopic_validate_stub_or_non_lazy_ptr): Call
3303 mark_referenced instead of setting TREE_SYMBOL_REFERENCED.
3305 2003-09-22 Olivier Hainque <hainque@act-europe.fr>
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.
3316 2003-09-22 Eric Botcazou <ebotcazou@libertysurf.fr>
3318 * real.c: Fix several nits in the head comment.
3320 2003-09-21 Richard Henderson <rth@redhat.com>
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.
3328 2003-09-21 Richard Henderson <rth@redhat.com>
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.
3340 2003-09-21 Nathanael Nerode <neroden@gcc.gnu.org>
3342 * config/vax/vax-protos.h: Convert to ISO C90.
3343 * config/vax/vax.c: Convert to ISO C90.
3345 2003-09-21 Graham Stott <grahams@btinternet.com>
3348 * config/i386/i386.md(ffs_no_cmove): Fix operand 2 constraint.
3350 2003-09-21 Eric Botcazou <ebotcazou@libertysurf.fr>
3353 * reorg.c (stop_search_p): Return 1 for insns that can
3356 2003-09-20 Richard Henderson <rth@redhat.com>
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.
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.
3373 2003-09-20 Roger Sayle <roger@eyesopen.com>
3375 * config/i386/i386.c (ix86_expand_carry_flag_compare): Fix
3376 transformation of a>=0 into (unsigned)a<0x80000000.
3378 2003-09-20 Andrew Pinski <apinski@apple.com>
3380 * config/darwin.c (machopic_select_rtx_section): Fix check for PIC code.
3382 2003-09-20 Nathanael Nerode <neroden@gcc.gnu.org>
3384 * Makefile.in: Don't set (unused) DLLTOOL.
3386 * config/arm/t-linux, config/arm/t-netbsd, config/arm-t-semi:
3387 Remove obsolete references to ENQUIRE.
3389 2003-09-19 Nathanael Nerode <neroden@gcc.gnu.org>
3391 * configure.in: Remove --with-elf, which doesn't work.
3392 * configure: Regenerate.
3393 * config.gcc: Remove references to $elf, which does nothing.
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.
3399 2003-09-19 Phil Edwards <phil@codesourcery.com>
3401 * doc/install.texi: Document the multiple testsuite options.
3403 2003-09-19 Gerald Pfeifer <gerald@pfeifer.com>
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.
3409 2003-09-19 Joel Sherrill <joel@oarcorp.com>