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