1 2003-11-18 Roger Sayle <roger@eyesopen.com>
4 * config/arm/arm.c (arm_rtx_costs_1): Improve estimate of the code
5 size for calls to libgcc's div & mod subroutines when using -Os.
7 2003-11-18 Jan Hubicka <jh@suse.cz>
9 * cgraph.c (change_decl_assembler_name): Avoid bogus warnings.
11 2003-11-18 Marc Espie <espie@openbsd.org>
13 * config/rs6000/sysv4.h: OpenBSD hooks.
15 2003-11-18 Richard Henderson <rth@redhat.com>
17 * expr.c (expand_expr): Don't look through constant arrays if
18 they don't bind locally.
20 2003-11-17 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
22 * expr.c (convert_move): Use GET_MODE_PRECISION instead of bitsize
23 when seeing if truncation or extension.
25 2003-11-17 Eric Christopher <echristo@redhat.com>
27 * reload1.c (reload): Fix previous change.
29 2003-11-17 Scott Snyder <snyder@fnal.gov>
32 * dwarf2out.c (struct die_struct): Add die_definition field.
33 (add_AT_specification): New.
34 (gen_subprogram_die, gen_variable_die,
35 gen_struct_or_union_type_die): Use it.
36 (prune_unused_types_mark): If we're marking a forward declaration,
37 also mark the full definition, if it exists.
39 2003-11-16 Nick Clifton <nickc@redhat.com>
41 * config/stormy16/stormy16.h (BUILD_VA_LIST_TYPE): Delete.
42 * config/stormy16/stormy16-protos.h (xstormy16_build_va_list):
44 * config/stormy16/stormy16.c (xstormy16_build_va_list): Rename
45 to xstormy16_build_builtin_va_list and make static.
46 (TARGET_BUILD_BUILTIN_VA_LIST): Define.
48 2003-11-16 Kazu Hirata <kazu@cs.umass.edu>
50 * config/h8300/h8300-protos.h: Add the prototype for
52 * config/h8300/h8300.c (same_cmp_following_p): New.
53 * config/h8300/h8300.md (peephole2): Use it.
55 2003-11-16 Kazu Hirata <kazu@cs.umass.edu>
57 * config/h8300/h8300.md: Don't use REGNO when its operand is
58 not guaranteed to be a REG.
60 2003-11-16 Richard Sandiford <rsandifo@redhat.com>
62 * Makefile.in (expr.o): Depend on $(TARGET_H).
63 * target.h (return_in_msb): New target hook.
64 * target-def.h (TARGET_RETURN_IN_MSB): New macro.
65 (TARGET_CALLS): Include it.
66 * calls.c (shift_returned_value): New function.
67 (expand_call): Use it.
68 * expr.c: Include target.h.
69 (copy_blkmode_from_reg): Check targetm.calls.return_in_msb when
70 deciding what padding is needed. Change the name of the local
71 padding variable from big_endian_correction to padding_correction.
72 * stmt.c (shift_return_value): New function.
73 (expand_return): Use it. Adjust memory->register copy in the same
74 way as copy_blkmode_from_reg. Only change the return register's
75 mode if it was originally BLKmode.
76 * doc/tm.texi (TARGET_RETURN_IN_MSB): Document.
77 * config/mips/mips.c (TARGET_RETURN_IN_MSB): Define.
78 (mips_fpr_return_fields): New, split out from mips_function_value.
79 (mips_return_in_msb, mips_return_fpr_pair): New functions.
80 (mips_function_value): Rework to use the functions above.
81 * config/mips/irix6-libc-compat.c: Delete.
82 * config/mips/t-iris6 (LIB2FUNCS_STATIC_EXTRA): Undefine.
84 2003-11-16 Kazu Hirata <kazu@cs.umass.edu>
86 * doc/install.texi (--enable-checking): Update valgrind's URL.
88 2003-11-16 Kazu Hirata <kazu@cs.umass.edu>
90 * config/h8300/h8300.md: Fix warnings by replacing -2147483648
93 2003-11-16 Gerald Pfeifer <gerald@pfeifer.com>
95 Fix links in online manuals.
96 * doc/invoke.texi (H8/300 Options): @xref to ld, not ld.info.
97 (Precompiled Headers): @pxref to cpp, not cpp.info.
99 2003-11-16 Jason Merrill <jason@redhat.com>
101 * Makefile.in, objc/Make-lang.in (objc.tags): Create TAGS.sub
102 files in each directory and TAGS files that include them for each
105 2003-11-15 Kazu Hirata <kazu@cs.umass.edu>
107 * config/h8300/lib1funcs.asm (divnorm): Store the sign in bit
110 (exitdiv): Look at bit 3 of S2L only.
112 2003-11-15 Kazu Hirata <kazu@cs.umass.edu>
114 * config/h8300/h8300.h (DO_GLOBAL_CTORS_BODY): Fix warnings.
115 (DO_GLOBAL_DTORS_BODY): Likewise.
117 2003-11-15 Joseph S. Myers <jsm@polyomino.org.uk>
119 * doc/install.texi (Prerequisites): Refine documentation of
120 autoconf, automake and perl requirements. Document required
123 <2003-11-14 Jason Merrill <jason@redhat.com>
125 * function.c (assign_parms): Use TREE_TYPE to determine the real
126 type of the argument object.
128 2003-11-14 Kazu Hirata <kazu@cs.umass.edu>
130 * config/h8300/lib1funcs.asm (___udivsi3): Peel off the first
133 2003-11-14 Fariborz Jahanian <fjahanian@apple.com>
135 * config/rs6000/rs6000.c (rs6000_move_block_from_reg):
136 New routine to save vararg registers on stack. Support for
137 -mpowerpc64 in mixed mode.
139 2003-11-14 Bernardo Innocenti <bernie@develer.com>
141 * config/m68k/m68k.c: Use C statements instead of #ifdef's when testing
142 for MOTOROLA versus MIT syntax. Improves readability and provides
143 better compile-time error checking for both code paths.
145 2003-11-14 Kelley Cook <kcook@gcc.gnu.org>
147 * config/frv/frv-protos.h: Update for C90.
148 * config/frv/frv.h: Likewise.
149 * config/frv/frvbegin.c: Likewise.
150 * config/frv/frv.c: Likewise.
151 (frv_adjust_field_align): Delete unused variable.
153 2003-11-14 Geoffrey Keating <geoffk@apple.com>
155 * config/rs6000/rs6000.md: Add 'DEFAULT_ABI == ABI_DARWIN'
156 to each place where TARGET_LONG_DOUBLE_128 is used with
157 DEFAULT_ABI == ABI_AIX.
159 * cppfiles.c (_cpp_find_file): Make 'one or more PCH files were found'
160 message comply with GNU standards.
162 2003-11-14 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
165 * function.c (struct epi_info): New field const_equiv.
166 (update_epilogue_consts): New function.
167 (keep_stack_depressed): Clear new field and verify scratch register
169 Call new function via note_stores.
170 (handle_epilogue_set): Allow setting SP equiv reg in different mode.
171 Allow PLUS where second operand is register known set to constant.
172 (emit_equiv_load): Write load using proper mode if source different.
173 * config/mips/mips.md (return_internal): Put (return) first.
175 2003-11-14 Kazu Hirata <kazu@cs.umass.edu>
177 * config/h8300/lib1funcs.asm (___udivsi3): Add a comment.
179 2003-11-14 Kazu Hirata <kazu@cs.umass.edu>
181 * config/h8300/lib1funcs.asm (modsi3): Don't save unused
184 (reti): Don't restore unused registers.
186 2003-11-14 Nick Clifton <nickc@redhat.com>
188 * config/fr30/fr30.c: Include toplev.h
190 2003-11-14 Richard Earnshaw <rearnsha@arm.com>
192 * except.c (sjlj_emit_function_enter): Mark internal label as LOCAL.
194 2003-11-14 Richard Earnshaw <rearnsha@arm.com>
196 * arm.c (arm_emit_vector_const, arm_output_load_gr): Use ISO C
197 function definition syntax.
199 2003-11-14 Eric Christopher <echristo@redhat.com>
201 * reload1.c (reload): Revert previous patch. Make
202 check for assignment into reg_equiv_address stricter.
204 2003-11-14 Arnaud Charlet <charlet@act-europe.fr>
206 * Makefile.in (POSTSTAGE1_FLAGS_TO_PASS): Pass ADAFLAGS.
208 2003-11-14 Richard Sandiford <rsandifo@redhat.com>
210 * config/frv/frv.c (frv_in_small_data_p): Return false for unknown
213 2003-11-14 Jason Merrill <jason@redhat.com>
216 * tree.c (build): A CALL_EXPR has side-effects if its arguments do.
217 * calls.c (call_expr_flags): New fn.
218 * tree.h: Declare it.
220 2003-11-13 Kazu Hirata <kazu@cs.umass.edu>
222 * config/h8300/lib1funcs.asm (__udivsi3): Remove.
223 (divmodsi3): Change the name to ___udivsi3.
226 2003-11-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
228 * libgcc2.c (__negdi2, __addvsi3, __addvdi3, __subvsi3, __subvdi3,
229 __mulvsi3, __negvsi2, __negvdi2, __mulvdi3, __lshrdi3, __ashldi3,
230 __ashrdi3, __ffsDI2, __muldi3, __clzDI2, __ctzDI2, __parityDI2,
231 __udivmoddi4, __divdi3, __moddi3, __cmpdi2, __ucmpdi2,
232 __fixunstfDI, __fixunsxfDI, __fixunsdfDI, __fixunssfDI,
233 __floatdixf, __floatditf, __floatdidf, __floatdisf, __gcc_bcmp):
234 Const-ify and/or initialize automatic variables at declaration.
236 2003-11-13 Kazu Hirata <kazu@cs.umass.edu>
238 * config/h8300/lib1funcs.asm (divmodsi4): Replace all the uses
239 of er4 with er3. Adjust all callers.
241 2003-11-13 Andrew Pinski <apinski@apple.com>
243 * config/darwin.c (machopic_output_possible_stub_label):
244 Allow stub symbol be not defined when outputting possible
247 2003-11-13 Kazu Hirata <kazu@cs.umass.edu>
249 * config/h8300/lib1funcs.asm (___udivsi3): Jump to reti
251 (___umodsi3): Likewise.
252 (exitdiv): Do not restore any register.
253 (reti): Restore registers.
255 2003-11-13 Steven Bosscher <stevenb@suse.de>
257 * tree-inline.c (walk_tree): Handle PLACEHOLDER_EXPR.
259 2003-11-13 Kazu Hirata <kazu@cs.umass.edu>
261 * config/h8300/lib1funcs.asm: Fix comment typos.
263 2003-11-13 Kazu Hirata <kazu@cs.umass.edu>
265 * config/h8300/lib1funcs.asm (udivsi3): Don't save/restore
266 unused registers. Don't jump to exitdiv.
269 2003-11-13 Mark Mitchell <mark@codesourcery.com>
270 Kean Johnston <jkj@sco.com>
273 * toplev.c (check_global_declarations): Do not warn about unused
276 2003-11-13 Pavel Pisa <pisa@cmp.felk.cvut.cz>
277 Kazu Hirata <kazu@cs.umass.edu>
279 * config/h8300/lib1funcs.asm (DenHighNonZero): Optimize using
280 the approximate quotient method.
282 2003-11-13 Richard Earnshaw <rearnsha@arm.com>
284 * combine.c (distribute_notes): When re-distributing the notes from
285 an insn we are about to delete, ensure we can't end up with a cyclic
288 2003-11-13 Eric Botcazou <ebotcazou@libertysurf.fr>
290 PR optimization/12926
291 * expr.c (expand_assignment) [COMPONENT_REF]: Don't put
292 the UNCHANGING_RTX_P flag on memory references to read-only
293 components that are not addressable.
295 2003-11-12 Kazu Hirata <kazu@cs.umass.edu>
297 * config/h8300/lib1funcs.asm (divmodsi4): Clear S0P in
300 2003-11-13 Jan Hubicka <jh@suse.cz>
303 * c-decl.c (finish_decl): Use change_decl_assembler_name.
304 * c-pragma.c (handle_pragma_redefine_extname): Likewise.
305 * varasm.c (make_decl_rtl): Likewise.
306 * cgraph.c (change_decl_assembler_name): New function.
307 * tree.h (set_decl_assembler_name): Kill dead declaration.
308 (change_decl_assembler_name): Declare.
310 * decl.c (make_rtl_for_nonlocal_decl): Use change_decl_assembler_name.
311 * decl2.c (make_rtl_for_nonlocal_decl): Use change_decl_assembler_name.
313 2003-11-12 Kazu Hirata <kazu@cs.umass.edu>
315 * config/h8300/lib1funcs.asm (___mulsi3): Don't save/restore
318 2003-11-12 Richard Sandiford <rsandifo@redhat.com>
321 * config/mips/t-iris6 (MULTILIB_OPTIONS): Put -mabi=n32 first.
322 (MULTILIB_OSDIRNAMES): Reorder accordingly.
324 2003-11-12 Janis Johnson <janis187@us.ibm.com>
326 * rs6000-protos.h (rs6000_initial_elimination_offset): Add.
327 (rs6000_stack_info): Remove. (debug_stack_info): Remove.
328 (rs6000_emit_eh_reg_restore): Add
329 * rs6000.c (rs6000_stack_t): Move from rs6000.h, change data type
330 of vars_size and total_size to HOST_WIDE_INT.
331 (emit_frame_save): Change parameter size to HOST_WIDE_INT.
332 (rs6000_stack_info): Make static; change data size to HOST_WIDE_INT.
333 (debug_stack_info): Make static; change output format of HOST_WIDE_INT
335 (rs6000_emit_eh_reg_restore): New, with code formerly in rs6000.md.
336 (rs6000_initial_elimination_offset): New, with code formerly in
337 INITIAL_ELIMINATION_OFFSET.
338 * rs6000.h (rs6000_stack_t): Remove.
339 (INITIAL_ELIMINATION_OFFSET): Replace code with call to function
340 rs6000_initial_elimination_offset.
341 * rs6000.md (UNSPECV_EH_RR split): Replace code with call to
342 rs6000_emit_eh_reg_restore.
344 2003-11-12 Mike Stump <mrs@apple.com>
346 * c-typeck.c (c_convert_parm_for_inlining): Add argnum, which
347 is the argumnt we are processing so that warnings and errors
348 will have that information.
349 * c-tree.h (c_convert_parm_for_inlining): Add argnum.
351 (lhd_tree_inlining_convert_parm_for_inlining): Likewse.
352 * langhooks.c (lhd_tree_inlining_convert_parm_for_inlining): Likewise.
353 * langhooks.h (convert_parm_for_inlining): Likewise.
354 * tree-inline.c (initialize_inlined_parameters): Compute and
357 2003-11-12 Alexey Starovoytov <alexey.starovoytov@sun.com>
358 Roger Sayle <roger@eyesopen.com>
360 PR optimization/12953
361 * tree-inline.c (inline_forbidden_p_1): Added check for BUILT_IN
362 before switch by FUNCTION_CODE.
364 2003-11-12 Richard Earnshaw <rearnsha@arm.com>
366 * arm.md (storehi): Avoid use of explicit subreg.
367 (storehi_bigend, storeinthi, movhi_bigend): Likewise.
369 2003-11-12 J"orn Rennecke <joern.rennecke@superh.com>
371 * config/sh/sh.md (prefetch): New pattern.
373 2003-11-11 Eric Christopher <echristo@redhat.com>
375 * reload1.c (reload): Verify that addresses for
376 reg_equiv_* are valid for the architecture.
378 2003-11-11 Eric Christopher <echristo@redhat.com>
380 * function.c (purge_addressof_1): Add libcall check.
381 Remove test for cached replacements on fallback case.
382 Simplify mode comparisons. Add libcall test for
385 2003-11-11 Kazu Hirata <kazu@cs.umass.edu>
387 * config/h8300/t-h8300: Fix an obsolete comment.
389 2003-11-11 James E Wilson <wilson@specifixinc.com>
391 * expmed.c (store_bit_field, extract_bit_field): Revert last two
394 2003-11-11 Kazu Hirata <kazu@cs.umass.edu>
396 * config/h8300/lib1funcs.asm: Replace DenHighZero with
399 2003-11-11 Jan Hubicka <jh@suse.cz>
401 * cgraphunit.c (cgraph_function_possibly_inlined_p): Use
404 2003-11-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
406 * pa.h (TRAMPOLINE_TEMPLATE): Fix flushing of cache lines when
407 generating 64-bit code.
409 2003-11-10 David Edelsohn <edelsohn@gnu.org>
411 * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): Remove
412 accidental commit in previous change.
414 2003-11-10 Fariborz Jahanian <fjahanian@apple.com>
416 * config/rs6000/rs6000.h (STACK_SIZE_MODE): Add definition.
417 * config/rs6000/rs6000.c (reg_or_mem_operand): Add macho-style
419 (macho_lo_sum_memory_operand): Routine to recognize macho-style
422 2003-11-10 Richard Henderson <rth@redhat.com>
424 * dwarf2out.c (gen_label_die): Cope with DECL_RTL not set.
426 2003-11-10 Matt Austern <austern@apple.com>
428 * config/darwin-protos.h (darwin_assemble_visibility): Declare.
429 * config/darwin.c (darwin_assemble_visibility): Define. Warn for
430 anything other than VISIBILITY_DEFAULT and VISIBILITY_HIDDEN.
431 * config/darwin.h (TARGET_ASM_ASSEMBLE_VISIBILITY): Use
432 darwin_assemble_visibility instead of default.
434 2003-11-10 Waldek Hebisch <hebisch@math.uni.wroc.pl>
437 * config/sparc/sparc.c (sparc_initialize_trampoline): Call
438 __enable_execute_stack only after writing onto the stack.
439 (sparc64_initialize_trampoline): Likewise.
441 2003-11-09 Roger Sayle <roger@eyesopen.com>
443 * loop.c (check_dbra_loop): Try swapping the comparison operands
444 of the loop condition to identify a suitable induction variable.
445 * unroll.c (loop_iterations): Likewise.
447 2003-11-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
449 * config/sparc/sparc.h (TARGET_CPU_CPP_BUILTINS): Fix sparc vs
450 sparc64 #cpu and #machine assertions.
452 2003-11-09 Richard Henderson <rth@redhat.com>
454 * Makefile.in (rtlanal.o): Depend on BASIC_BLOCK_H.
456 2003-11-09 Jan Hubicka <jh@suse.cz>
458 * tree-optimize.c (tree_rest_of_compilation): Fix warning.
460 * cgraphunit.c (cgraph_expand_function): Use
461 cgraph_possibly_inlined_p.
462 * tree-optimize.c (tree_rest_of_compilation): Do not kill saved tree.
464 * opts.c (common_handle_option): Do not set max-inline-insns.
465 * params.def: Update comments.
466 (PARAM_MAX_INLINE_INSNS): Kill.
467 * invoke.texi (max-inline-insns): Kill.
469 2003-11-08 Joseph S. Myers <jsm@polyomino.org.uk>
473 * c-format.c (set_Wformat): Do not enable -Wformat-y2k by default.
474 * invoke.texi: Update.
476 2003-11-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
478 PR optimization/12630
479 * pa.c (compute_movstrsi_length): Rename to compute_movstr_length.
480 Handle length computation 64-bit moves.
481 (compute_clrstr_length, output_block_clear): Implement block clear.
482 (output_block_move): Handle 64-bit moves.
483 (pa_adjust_insn_length): Use compute_movstr_length and
484 compute_clrstr_length.
485 * pa.md (movstrsi): Revise operand order and comments. Don't use
487 (movstrsi_internal): Delete.
488 (movstrsi_prereload, movstrsi_postreload): New insns. Define splitter
489 and peephole2 patterns to transform prereload to postreload form.
490 (movstrdi, movstrdi_prereload, movstrdi_postreload, clrstrsi,
491 clrstrsi_prereload, clrstrsi_postreload, clrstrdi, clrstrdi_prereload,
492 clrstrdi_postreload): New patterns for 64-bit block move, and block
494 * pa-protos.h (output_block_clear): New prototype.
496 2003-11-08 Andreas Schwab <schwab@suse.de>
498 * dbxout.c (current_file): Also wrap inside DBX_DEBUGGING_INFO ||
499 XCOFF_DEBUGGING_INFO.
501 2003-11-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
503 * dbxout.c (current_file): Wrap declaration in DBX_USE_BINCL.
505 2003-11-07 Geoffrey Keating <geoffk@apple.com>
507 * config/rs6000/rs6000.c (rs6000_legitimize_address): Remove
510 * cppfiles.c (pch_open_file): New parameter 'invalid_pch', set it.
511 (find_file_in_dir): Likewise.
512 (_cpp_find_file): Print message if no header file is found
513 but an invalid PCH file was.
515 2003-11-08 Joseph S. Myers <jsm@polyomino.org.uk>
517 * c-typeck.c (pedantic_lvalue_warning): Deprecate compound
518 expressions as lvalues.
519 (internal_build_compound_expr): Remove special handling for
521 * doc/extend.texi: Document that all extended lvalues are now
524 2003-11-07 Geoffrey Keating <geoffk@apple.com>
527 * dbxout.c (struct dbx_file): Do not save for PCH.
528 (current_file): Likewise.
529 (dbxout_init): Don't allocate struct dbx_file using GC.
530 (dbxout_start_source_file): Likewise.
532 2003-11-07 Falk Hueffner <falk@debian.org>
534 * config/alpha/elf.h, config/alpha/unicosmk.h,
535 config/alpha/vms.h: Convert to ISO C90.
537 2003-11-07 Nathanael Nerode <neroden@gcc.gnu.org>
539 * config/arm/pe.h: Convert to ISO C90.
541 2003-11-07 J"orn Rennecke <joern.rennecke@superh.com>
543 * sh-protos.h (sh_pch_valid_p): Declare.
544 * sh.c ("intl.h"): Include.
545 (TARGET_PCH_VALID_P): Override.
546 (sh_target_switches): New variable.
547 (target_switches): Define.
548 (sh_pch_valid_p): New function.
550 * sh.h (MODE_AFTER): Don't change mode unless TARGET_HITACHI.
552 2003-11-07 Jan Hubicka <jh@suse.cz>
554 * i386.c (x86_64_sign_extended_value): Return false from tls variables.
555 (x86_64_zero_extended_value): likewise.
557 2003-11-07 Richard Sandiford <rsandifo@redhat.com>
559 * config/mips/mips.md (loadgp): Take $25 as a second operand.
560 * config/mips/mips.c (mips_expand_prologue): Modify accordingly.
562 2003-11-06 Matt Austern <austern@apple.com>
564 * c-common.c (handle_visibility_attribute): Set DECL_VISIBILITY
565 field instead of hanging an attribute object off the decl.
566 * tree.h (DECL_VISIBLITY): New accessor macro for
567 symbol_visibility field in struct tree_decl.
568 (enum symbol_visibility): Move definition to before tree_decl.
569 (struct tree_decl): Define new two-bit field, symbol_visibility.
570 (decl_visibility): Remove declaration.
571 * varasm.c (maybe_assemble_visibility): Use DECL_VISIBILITY
572 instead of decl_visibility.
573 (default_binds_local_p_1): Use DECL_VISIBILITY instead of
575 (decl_visibility): Remove.
577 2003-11-06 Ulrich Weigand <uweigand@de.ibm.com>
579 * config/s390/s390.c (s390_emit_epilogue): Recognize more cases
580 where register 14 will be saved.
582 2003-11-06 Geoffrey Keating <geoffk@apple.com>
584 * config/rs6000/rs6000.h (USE_FP_FOR_ARG_P): Move to rs6000.c.
585 (USE_ALTIVEC_FOR_ARG_P): Likewise.
586 * config/rs6000/rs6000.c (USE_FP_FOR_ARG_P): Move from rs6000.h.
587 Take a pointer as the CUM parameter. Update callers.
588 (USE_ALTIVEC_FOR_ARG_P): Likewise. Also correct for Darwin/AIX
590 (function_arg_advance): Use USE_ALTIVEC_FOR_ARG_P. Correct case
591 of vector parameters as named arguments of stdarg function.
592 (function_arg): Likewise.
594 * config/rs6000/darwin.h (ASM_SPEC): Use -force_cpusubtype_ALL when
595 -maltivec is specified, not the non-existent -faltivec.
597 2003-11-06 Ulrich Weigand <uweigand@de.ibm.com>
599 * config/s390/s390-protos.h (s390_function_value): Declare.
600 * config/s390/s390.c (TARGET_RETURN_IN_MEMORY): Define.
601 (s390_return_in_memory): New function.
602 (s390_function_value): New function.
603 (s390_function_arg_float): Return false for all arguments larger
605 (s390_function_arg_pass_by_reference): Likewise. Return true for
606 all vector arguments.
607 (s390_function_arg_integer): New function.
608 (s390_function_arg_advance): Call it. Add sanity checks.
609 (s390_function_arg): Likewise.
610 * config/s390/s390.h (FUNCTION_VALUE): Call s390_function_value.
611 (LIBCALL_VALUE): Likewise.
613 (RETURN_IN_MEMORY): Remove.
615 2003-11-06 Richard Sandiford <rsandifo@redhat.com>
617 * config/mips/mips-protos.h (mips_initial_elimination_offset): Change
618 return type to HOST_WIDE_INT.
619 * config/mips/mips.c (mips_frame_info): Give sizes type HOST_WIDE_INT.
620 Make initialized a bool. Make register masks unsigned ints.
621 (compute_frame_size): Make same mask change here. Use HOST_WIDE_INT
623 (mips_initial_elimination_offset): Return a HOST_WIDE_INT.
624 (mips_output_function_prologue): Print sizes as HOST_WIDE_INTs.
626 2003-11-06 Richard Sandiford <rsandifo@redhat.com>
628 * config/frv/frv.c (frv_initial_elimination_offset): Remove bogus
631 2003-11-06 Richard Sandiford <rsandifo@redhat.com>
633 * config/frv/frv.h (ASM_OUTPUT_ALIGN_WITH_NOP): Define.
635 2003-11-06 Momchil Velikov <velco@fadata.bg>
637 * config/mips/mips.c (override_options): Set MASK_SOFT_FLOAT
640 2003-11-06 Jan Hubicka <jh@suse.cz>
642 * builtins.c (simplify_builtin_strrchr, simplify_builtin_strpbrk): Add
645 2003-11-06 Zack Weinberg <zack@codesourcery.com>
647 * genmodes.c: Change the word "bitsize" to "precision" throughout.
648 * machmode.def: Likewise.
649 * machmode.h (GET_MODE_SIZE): Cast value to unsigned short.
650 (GET_MODE_BITSIZE): Define as GET_MODE_SIZE * BITS_PER_UNIT.
651 (GET_MODE_PRECISION): New macro.
652 (mode_bitsize): Renamed mode_precision.
653 * stor-layout.c (mode_for_size, smallest_mode_for_size):
654 Use GET_MODE_PRECISION; clarify comments.
656 2003-11-05 Joseph S. Myers <jsm@polyomino.org.uk>
658 * doc/install-old.texi: Remove old documentation of building
660 * doc/install.texi: Move some of it to here.
662 2003-11-05 Per Bothner <pbothner@apple.com>
664 PR preprocessor/12891
665 * c-opts.c (finish_options): Set include_cursor to disable premature
666 calls to push_command_line_include from cpp_scan_nooutput.
667 Fixes bug reported by DJ Delorie.
669 2003-11-05 Geoffrey Keating <geoffk@apple.com>
671 * config/rs6000/rs6000.c (setup_incoming_varargs): Remove
672 code supporting old-style varargs.
674 * config/rs6000/rs6000.c (rs6000_machopic_legitimize_pic_address): Use
675 an intermediate register for better optimisation.
677 2003-11-05 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
679 PR optimization/10080
680 * cfgloopanal.c (variable_initial_value, variable_initial_values,
681 simple_loop_exit_p): Record the fact that initial value is extended
683 (count_strange_loop_iterations, count_loop_iterations): Handle
684 ivs that iterate in a narrower mode. Fix handling of overflows.
685 Improve handling of NE conditions.
686 (inverse, fits_in_mode_p): New static functions.
687 (simple_increment): Detect variables that iterate in a narrower mode.
688 * cfgloop.h (struct loop_desc): Fields inner_mode and extend added.
690 2003-11-05 Geoffrey Keating <geoffk@apple.com>
692 * config/rs6000/rs6000.c (compute_vrsave_mask): Correct off-by-one
695 * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Darwin
698 2003-11-05 Joseph S. Myers <jsm@polyomino.org.uk>
700 * c-typeck.c (pedantic_lvalue_warning): Deprecate use of
701 conditional expressions as lvalues.
703 2003-11-05 Kazu Hirata <kazu@cs.umass.edu>
705 * tsystem.h: Add the prototype of strlen.
706 * unwind-pe.h (read_encoded_value_with_base): Add an
707 appropriate cast to handle a case where the pointer size is
708 smaller than sizeof (int).
710 2003-11-04 Richard Sandiford <rsandifo@redhat.com>
712 * config/mips/mips-protos.h (mips_global_pic_constant_p): Delete.
713 (mips_delegitimize_address): Delete.
714 (mips_gotoff_global, mips_load_got_page): Declare.
715 (mips_load_got_global, mips_rewrite_small_data): Declare.
717 * config/mips/mips.h (FIND_BASE_TERM): Remove definition.
718 (DANGEROUS_FOR_LA25_P): Use global_got_operand.
719 (PREDICATE_CODES): Add global_got_operand, local_got_operand and
720 small_data_pattern. Remove CONST from const_arith_operand's entry.
722 * config/mips/mips.c (UNSPEC_ADDRESS_P, CONST_GP_P): New macros.
723 (UNSPEC_ADDRESS, UNSPEC_ADDRESS_TYPE): Likewise.
724 (mips_constant_type): Delete.
725 (mips_symbol_type): Add SYMBOL_GOTOFF_PAGE, SYMBOL_GOTOFF_GLOBAL,
726 SYMBOL_GOTOFF_CALL and SYMBOL_GOTOFF_LOADGP.
727 (NUM_SYMBOL_TYPES): New macro.
728 (mips_address_type): Remove ADDRESS_INVALID.
729 (machine_function): Add has_gp_insn_p.
730 (mips_constant_info): Delete.
731 (mips_address_info): Add the address type as an extra field. Replace
732 the c field with symbol_type.
733 (mips_split_p, mips_lo_relocs, mips_hi_relocs): New arrays.
734 (TARGET_DELEGITIMIZE_ADDRESS): Remove definition.
735 (mips_reloc_offset_ok_p, mips_classify_constant): Delete.
736 (mips_split_const, mips_symbolic_constant_p): New functions.
737 (mips_symbolic_address_p): Take the symbol type and mode as arguments.
738 (mips_classify_address): Return true if the address is valid, storing
739 its type in INFO. Use mips_symbolic_constant_p. Use mips_lo_relocs[]
740 to test whether a LO_SUM address is allowed.
741 (mips_symbol_insns): Return 0 for general mips16 symbols.
742 Reorder SYMBOL_GOT_GLOBAL case to match mips_symbol_type definition.
743 Handle the new SYMBOL_GOTOFF_*s.
744 (mips_address_insns): Update call to mips_classify_address.
745 (mips_const_insns): Be more fussy about HIGH constants. Remove use
746 of mips_classify_constant. Be more accurate about CONSTs.
747 (mips_global_pic_constant_p): Delete.
748 (const_arith_operand): Only accept CONST_INTs.
749 (call_insn_operand): Remove call to mips_classify_constant.
750 Let mips_symbolic_constant_p check for invalid offsets.
751 (move_operand): Check for general_operands first. Only accept symbolic
752 constants if they satisfy mips_symbolic_constant_p and cannot be split.
753 (symbolic_constant): Use mips_symbolic_constant_p.
754 (global_got_operand, local_got_operand): New predicates.
755 (stack_operand): Update call to mips_classify_address.
756 (mips_legitimate_address_p): Likewise.
757 (mips_reloc, mips_lui_reloc): Delete.
758 (mips_force_temporary): Only use the given temporary if no_new_pseudos.
760 (mips_split_symbol, mips_unspec_address): New functions.
761 (mips_unspec_offset_high): New function.
762 (mips_load_got): Replace reloc argument with a symbol_type.
763 Use mips_unspec_address to create the address and put it in a
764 LO_SUM with the base register.
765 (mips_load_got16, mips_load_got32): Delete.
766 (mips_emit_high, mips_legitimize_symbol): Delete.
767 (mips_gotoff_global): New function.
768 (mips_load_got_page, mips_load_got_global): New functions.
769 (mips_legitimize_symbol): Inline handling of LO_SUM splits.
770 (mips_legitimize_const_move): Likewise. Remove HIGH handling.
771 Inline code to handle constants plus invalid offsets. Use
772 mips_split_symbol to legitimize constant pool addresses.
773 (mips_delegitimize_address): Delete.
774 (mips_rtx_costs): Give legitimate symbolic constants and CONST_DOUBLEs
775 a cost of 1 insn. Give the rest a cost of CONSTANT_POOL_ADDRESS.
776 (mips_subword): Pass memrefs through mips_rewrite_small_data.
777 (mips_output_move): Remove use of mips_classify_constant.
778 (mips_expand_call): Use mips_unspec_offset_high to calculate the
779 high part of the GOT address for calls to global functions.
780 (override_options): Initialize mips_split_p[], mips_lo_relocs[]
781 and mips_hi_relocs[].
782 (print_operand): Use print_operand_reloc to handle '%h' and '%R'.
783 Remove use of mips_classify_constant.
784 (mips_reloc_string): Delete.
785 (print_operand_reloc): New function.
786 (print_operand_address): Update call to mips_classify_address.
787 (mips_rewrite_small_data_p, small_data_pattern_1): New functions.
788 (small_data_pattern): New predicate.
789 (mips_rewrite_small_data_1, mips_rewrite_small_data): New functions.
790 (mips_function_has_gp_insn): New function.
791 (mips_global_pointer): Use it.
792 (mips_gp_insn): Delete.
793 (mips_expand_prologue): When compiling for n32/n64 abicalls, use a
794 single loadgp pattern to initialize $gp. Pass it the offset of _gp
795 from the start of the current function.
796 (mips16_gp_pseudo_reg): Revert last patch.
798 * config/mips/mips.md (RELOC_*): Delete.
799 (UNSPEC_LOADGP, UNSPEC_FIRST_ADDRESS): New constants.
800 (got): New insn attribute.
801 (type): Set to "load" if got == load.
802 (length): Set to 4 if got == load, 8 if got == xgot_high.
804 (*xgot_hi[sd]i, *xgot_lo[sd]i): New patterns.
805 (*got_disp[sd]i, *got_page[sd]i): Likewise.
806 (*low[sd]i): Change constraints to "d". Add a new define_split to
807 rewrite small data constants into LO_SUMs.
810 2003-11-04 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
812 * config/mips/_tilib.c: Use _ABI* in _MIPS_SIM tests.
814 2003-11-04 DJ Delorie <dj@redhat.com>
816 * config/v850/v850.md (mulhisi3): Expand the const_int case
817 separately to avoid trying to sign extend the const.
819 2003-11-04 Richard Sandiford <rsandifo@redhat.com>
821 * emit-rtl.c (copy_rtx_if_shared): Don't allow MEMs with constant
822 addresses to be shared.
823 (force_const_mem): Return a copy of the pool entry.
825 2003-11-03 Andreas Jaeger <aj@suse.de>
827 * Makefile.in (GCC_CFLAGS): Remove @WERROR@ again.
829 2003-11-03 Kelley Cook <kcook@gcc.gnu.org>
831 * Makefile.in (cpp.dvi): New target split from cpp.info.
832 (gcc.dvi): New target split from gcc.info.
833 (gccint.dvi): New target split from gccint.info.
834 (cppinternals.dvi): New target split from cppinternals.info
835 (gccinstall.info): New specific rule.
836 (gccinstall.dvi): Likewise.
837 (dvi): Move targets to $(docobjdir).
838 ($(docobjdir)/%.dvi): New implicit rule.
840 2003-11-03 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
842 * doc/gty.texi (tag, desc): Say more about role of desc values in
843 selecting between tags.
845 2003-11-03 Alexander Kabaev <ak03@gte.com>
847 * real.c (encode_ieee_single): Ensure proper promotion.
849 2003-11-03 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
851 * doc/contrib.texi: Add Giovanni Bajo, Dara Hazeghi, Falk Hueffner,
854 2003-11-03 Syd Polk <spolk@apple.com>
856 * config/rs6000/rs6000.c (rs6000_override_options): Add G3, G4, and G5
857 marketing names to the list of supported processors.
858 * config/rs6000/rs6000.h: Ditto.
859 * doc/invoke.texi: Ditto.
862 2003-11-03 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
864 * fixinc/inclhack.def (stdio_va_list): Allow tab before va_list.
865 Merge two substitutions.
866 * fixinc/fixincl.x: Regenerate.
867 Fixes PR bootstrap/12666.
869 2003-11-03 Joseph S. Myers <jsm@polyomino.org.uk>
871 * doc/install-old.texi: Remove VMS documentation.
873 2003-11-03 Jan Hubicka <jh@suse.cz>
875 * i386.c (override_options): Remove hack enabling 128bit long double
876 commited by accident.
878 2003-11-02 Per Bothner <per@bothner.com>
880 * c-opts.c (needValue): Do cpp_find_main_file before processing
881 any imacros flags, so pfile->main_file is set for the latter.
883 2003-11-03 Andreas Jaeger <aj@suse.de>
884 Zack Weinberg <zack@codesourcery.com>
886 * Makefile.in (GCC_CFLAGS): Allow blacklisting of warnings.
887 (SYSCALLS.c.X-warn): Suppress warnings.
889 2003-11-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
891 PR optimization/12845
892 * pa.c (output_cbranch): Use cmpb for DImode comparisons with 0.
894 2003-11-02 Zack Weinberg <zack@codesourcery.com>
896 * print-rtl.c (print_rtx): Call PRINT_REG with second argument -1.
897 * config/i386/i386.c (print_reg): Abort on a virtual register
898 if code != -1; not if file == asm_out_file.
899 * config/i386/i386.h (PRINT_REG): Document meaning of CODE == -1.
900 (DEBUG_PRINT_REG): Delete, unused.
902 2003-11-02 Andreas Schwab <schwab@suse.de>
904 * config/ia64/fde-glibc.c (_GNU_SOURCE): Define to 1 instead of
905 empty to avoid conflict with the definition from configure.
907 2003-11-02 Roger Sayle <roger@eyesopen.com>
909 PR optimization/10817
910 * ifcvt.c (noce_emit_move_insn): Improve documentation comment.
911 (noce_try_move): New function to optimize an if-the-else into an
912 unconditional move, i.e. "if (a!=b) x=a; else x=b" into "x=a".
913 (noce_process_if_block): Attempt simplification with noce_try_move.
915 * simplify-rtx.c (simplify_ternary_operation): Some minor fixes
916 and improvements to the optimizations of IF_THEN_ELSE expressions.
917 (simplify_subreg): Silence signed/unsigned comparison warning.
919 2003-11-02 Richard Sandiford <rsandifo@redhat.com>
921 * Makefile.in (targhooks.o, reload.o): Update dependencies.
922 (GTFILES): Add targhooks.c.
923 (gt-targhooks.h): New rule; depend on s-gtype.
924 * target.h (direct_pool_load_p): New hook.
925 * target-def.h (TARGET_DIRECT_POOL_LOAD_P): New macro.
926 (TARGET_INITIALIZER): Include it.
927 * targhooks.h (default_direct_pool_load_p): Declare.
928 (hook_bool_machine_mode_true): Declare.
929 * targhooks.c: Include insn-config.h, recog.h, ggc.h and
931 (pool_symbol): New variable.
932 (default_direct_pool_load_p): New function.
933 (hook_bool_machine_mode_true): New function.
934 * reload.c: Include target.h.
935 (find_reloads): If an alternative will force a constant into memory,
936 count an extra reload if constant pool symbols are not valid
937 addresses. If an alternative uses memory to move values between
938 registers, count the move as two reloads rather than one.
939 * config/s390/s390.c (TARGET_DIRECT_POOL_LOAD_P): Define.
940 * doc/tm.texi (TARGET_DIRECT_POOL_LOAD_P): Document.
942 2003-11-02 Eric Botcazou <ebotcazou@libertysurf.fr>
944 PR optimization/12799
945 * postreload.c (reload_cse_move2add): Generate the add2
948 2003-11-02 Eric Botcazou <ebotcazou@libertysurf.fr>
950 * config/sparc/sparc.c (function_arg_partial_nregs) [TARGET_ARCH64]:
951 Return 0 for all complex modes whose size is lesser or equal to
952 a word. Add a ??? comment for the condition used with 16-byte
955 2003-11-01 Kelley Cook <kcook@gcc.gnu.org>
957 * .cvsignore: Remove c-parse* and tradcif.c.
958 * objc/.cvsignore: Delete.
960 2003-11-01 Roger Sayle <roger@eyesopen.com>
962 * unwind-sjlj.c (_Unwind_GetCFA): Return (_Unwind_Word)0 instead
965 2003-11-01 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
967 * som.h (DO_GLOBAL_DTORS_BODY): Change to C90 declaration.
969 * libgcc2.c (SYMBOL__MAIN): Provide C90 declaration.
971 * collect2.c (scan_libraries): Fix typos.
973 PR preprocessor/12847
974 * cppfiles.c, cppexp.c, cpperror.c, cpplib.h, cpplib.c, cpplex.c,
975 cppinit.c, cpptrad.c, cppmacro.c, fix-header.c, cpppch.c, c-pch.c,
976 c-incpath.c, cppcharset.c (DL_WARNING, DL_WARNING_SYSHDR, DL_PEDWARN,
977 DL_ERROR, DL_ICE, DL_EXTRACT, DL_WARNING_P): Prefix macro names with
980 2003-11-01 Fariborz Jahanian <fjahanian@apple.com>
982 * config/rs6000/rs6000.c (rs6000_mixed_function_arg): Correct
983 no_units calculation.
985 2003-11-01 Andreas Jaeger <aj@suse.de>
987 * unwind-dw2.c (_Unwind_FrameState): Remove commas at end of
990 2003-11-01 Andreas Schwab <schwab@suse.de>
992 * config/ia64/sysv4.h (SDATA_SECTION_FUNCTION): Update to C90
994 (SBSS_SECTION_FUNCTION): Likewise.
996 2003-11-01 Andreas Jaeger <aj@suse.de>
998 * Makefile.in (GCC_CFLAGS): Add @WERROR@ for target files.
1000 2003-11-01 Andreas Tobler <a.tobler@schweiz.ch>
1002 * config/rs6000/sysv4.h (EXTRA_SECTION_FUNCTIONS): Update to C90
1005 2003-11-01 Andreas Jaeger <aj@suse.de>
1007 * unwind-dw2.c (_Unwind_FindEnclosingFunction): Constify variable.
1008 (uw_frame_state_for): Constify variables.
1009 (extract_cie_info): Constify first argument.
1011 * unwind-dw2-fde-darwin.c: Adjust prototype of
1012 _Unwind_Find_registered_FDE for recent changes.
1013 (examine_objects): Constify return value and local variable result.
1014 (_Unwind_Find_FDE): Constify return value and local variable ret.
1016 2003-10-31 Per Bothner <pbothner@apple.com>
1018 * c-opts.c (finish_options): Change to returns boolean - false iff
1019 the call to cpp_find_main_file fails.
1020 (c_common_init): Skip preprocess_file if finish_options failed.
1021 (c_common_parse_file): Break if finish_options failed.
1022 Fixes PR preprocessor/12545.
1024 2003-10-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1026 * aclocal.m4: Blacklist ultrix* for mmap file.
1027 * configure: Rebuilt.
1029 * function.c (assign_parms): Add ATTRIBUTE_UNUSED to variable
1030 reg_parm_stack_space.
1031 * toplev.c (default_get_pch_validity): Fix warning.
1033 * vax.c: Include toplev.h.
1034 (vax_init_libfuncs): Fix typo (umod).
1035 * vax.h (ASM_COMMENT_START): Define.
1036 (PRINT_OPERAND): Fix warning when HOST_WIDE_INT is a long long.
1038 2003-10-31 Roger Sayle <roger@eyesopen.com>
1041 * expr.c (expand_expr <MULT_EXPR>): Remove inappropriate and
1042 confusing comment; distributivity isn't handled in expand_expr.
1043 * fold-const.c (extract_muldiv_1 <PLUS_EXPR>): Allow overflow
1044 in distributivity, if wrap-around semantics are specified with
1047 2003-11-01 Alan Modra <amodra@bigpond.net.au>
1050 * final.c (profile_function): Allow for NULL svrtx.
1052 2003-10-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1054 * pa.c (pa_select_section): Use new style declaration.
1055 * som.h (readonly_data): Likewise.
1057 2003-10-31 Kelley Cook <kcook@gcc.gnu.org>
1059 * config/rs6000/rs6000.c: Update to C90 prototypes.
1061 2003-10-31 Richard Earnshaw <rearnsha@arm.com>
1064 * arm.h (CONDITIONAL_REGISTER_USAGE): Disable use of LR in Thumb
1067 2003-10-31 Andreas Jaeger <aj@suse.de>,
1068 Zack Weinberg <zack@codesourcery.com>
1071 * crtstuff.c (__register_frame_info, __register_frame_info_bases)
1072 (__deregister_frame_info, __deregister_frame_info_bases):
1073 Constify void * argument.
1074 * unwind-dw2-fde.h (struct fde_vector):
1075 Constify 'orig_data' and 'array' fields.
1076 (__register_frame_info, __register_frame_info_bases)
1077 (__deregister_frame_info, __deregister_frame_info_bases):
1078 Constify void * argument.
1079 (get_cie, next_fde, _Unwind_Find_FDE): Constify arguments,
1080 return values, and casts of type fde *, struct dwarf_fde *,
1081 and struct dwarf_cie *.
1082 * unwind-dw2-fde.c (__register_frame_info, __register_frame_info_bases)
1083 (__deregister_frame_info, __deregister_frame_info_bases):
1084 Constify void * argument.
1085 (get_cie_encoding, ): Constify struct dwarf_cie * argument.
1086 (get_fde_encoding, fde_unencoded_compare, fde_single_encoding_compare)
1087 (fde_mixed_encoding_compare, fde_compare_t, start_fde_sort, fde_insert)
1088 fde_split, SWAP, frame_downheap, frame_heapsort)
1089 (classify_object_over_fdes, add_fdes, linear_search_fdes,
1090 binary_search_unencoded_fdes, binary_search_single_encoding_fdes,
1091 binary_search_mixed_encoding_fdes, search_object, _Unwind_Find_FDE):
1092 Constify arguments, local variables, return values, and casts
1093 of type fde *, fde **, struct dwarf_fde *, and struct dwarf_cie *.
1094 Use const pointer types in sizeof expressions, for clarity.
1095 * unwind-dw2-fde-glibc.c
1096 (_Unwind_find_registered_FDE, _Unwind_find_FDE): Constify return value.
1097 (struct unw_eh_callback_data): Constify 'ret' field.
1099 2003-10-31 Fariborz Jahanian <fjahanian@apple.com>
1100 David Edelsohn <edelsohn@gnu.org>
1102 * config/rs6000/rs6000.c (rs6000_mixed_function_arg): New.
1103 (function_arg): Call it.
1104 (rs6000_function_value): Widen integral return value to mode based
1105 on TARGET_32BIT, not word_mode.
1106 * config/rs6000/rs6000.h (PROMOTE_MODE): Likewise.
1107 (UNITS_PER_ARG): New.
1108 (RS6000_ARG_SIZE): Use it.
1110 2003-10-31 Gerald Pfeifer <gerald@pfeifer.com>
1112 * .cvsignore: No longer ignore gengtype-lex.c, gengtype-yacc.c,
1113 and gengtype-yacc.h.
1115 2003-10-31 Richard Earnshaw <rearnsha@arm.com>
1117 PR optimization/8896
1118 * postreload.c (reload_combine): Check that REGY doesn't die in an
1119 insn of the form (set (regx) (plus (regx) (regy))), ie REGX != REGY.
1121 2003-10-31 Josef Zlomek <zlomekj@suse.cz>
1124 * cfgrtl.c (delete_insn): Decrease LABEL_NUSES for all REG_LABEL notes.
1126 2003-10-31 Josef Zlomek <zlomekj@suse.cz>
1129 * cfgrtl.c (try_redirect_by_replacing_jump): Move jump
1130 immediatelly before BARRIER.
1132 2003-10-31 Kelley Cook <kcook@gcc.gnu.org>
1134 * Makefile.in (STRICT2_WARN): Add -Wold-style-definition.
1136 2003-10-31 Richard Earnshaw <rearnsha@arm.com>
1139 * reload.c (find_reloads_address): Handle any register in
1140 (PLUS (PLUS (REG) (REG)) (CONST_INT).
1142 2003-10-31 Richard Earnshaw <rearnsha@arm.com>
1144 * ggc-page.c (ggc_pch_read): Wrap call to poison_pages in
1145 ENABLE_GC_CHECKING not in GGC_POISON.
1147 2003-10-31 Nathanael Nerode <neroden@gcc.gnu.org>
1150 * configure.in: Bail out if awk is missing.
1151 * configure: Regenerate.
1154 * Makefile.in: Move default definitions of X_ADA_CFLAGS,
1155 T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS from ada/Make-lang.in to here.
1157 2003-10-30 Richard Henderson <rth@redhat.com>
1159 * c-objc-common.c (c_tree_printer): Handle types correctly.
1162 2003-10-30 Kelley Cook <kcook@gcc.gnu.org>
1164 * value-prof.c, web.c: Update to C90.
1166 2003-10-30 Eric Christopher <echristo@redhat.com>
1168 * function.c (purge_addressof_1): Add case for REG_RETVAL
1169 notes when modes are unequal.
1171 2003-10-31 Jan Hubicka <jh@suse.cz>
1173 * i386-modes.def: Add XFmode format adjustment.
1175 2003-10-30 Jan Hubicka <jh@suse.cz>
1177 * real.c (encode_ieee_extended): Back out previous patch.
1179 2003-10-30 Jan Hubicka <jh@suse.cz>
1181 * real.c (encode_ieee_extended): Initialize whole array.
1182 * reg-stack.c (move_for_stack_reg0: Use always XFmode.
1183 * i386-modes.def: Change definitions of TFmode and XFmode.
1184 * i386.c (classify_argument): Rename TFmodes to XFmodes; add new TFmode
1186 (construct_container): Allow constructing of TFmode integer containers.
1187 (ix86_return_in_memory): XFmode is not returned in memory.
1188 (init_ext_80387_constants): Always use XFmode.
1189 (print_operand): Likewise.
1190 (ix86_prepare_fp_compare_regs): Likewise.
1191 (split_to_parts): Deal with TFmode.
1192 (split_long_move): Simplify.
1193 (ix86_init_mmx_sse_builtins): Add __float80, __float128.
1194 (ix86_memory_move_cost): Do not confuse TFmode.
1195 * i386.h (LONG_DOUBLE_TYPE_SIZE): Set to 96.
1196 (IS_STACK_MODE): TFmode is not stack mode.
1197 (HARD_REGNO_NREGS, CLASS_MAX_NREGS): Deal nicely with XFmode.
1198 (VALID_SSE_REG_MODE): Allow TFmode.
1199 (VALID_FP_MODE_P): Disallow TFmode.
1200 (VALID_INT_MODE_P): Allow TFmode in 64bit mode.
1201 * i386.md (TFmode patterns): Kill.
1202 (movtf, motf_rex64): New patterns.
1204 2003-10-30 Richard Sandiford <rsandifo@redhat.com>
1206 * config/mips/mips.md (adddi3): Fix typo in mips16 stack pointer code.
1208 2003-10-30 Richard Sandiford <rsandifo@redhat.com>
1210 * config/mips/mips.md (mov_lwl): Use memory_operand where appropriate.
1211 (mov_lwr, mov_swl, mov_swr): Likewise.
1212 (mov_ldl, mov_ldr, mov_sdl, mov_sdr): Likewise.
1214 2003-10-30 Richard Sandiford <rsandifo@redhat.com>
1216 * config/mips/mips.c (mips_global_pointer): Don't try to use $25.
1218 2003-10-30 Richard Henderson <rth@redhat.com>
1220 * config/mips/mips.c (mips_build_builtin_va_list): Use runtime
1221 test for irix6 rather than preprocessor test.
1223 2003-10-30 Richard Henderson <rth@redhat.com>
1225 * cppcharset.c (one_utf8_to_utf16): Initialize 's' to silence warning.
1227 2003-10-30 Ulrich Weigand <uweigand@de.ibm.com>
1229 * config/s390/s390.c (struct machine_function): Use save_return_addr_p
1230 as a general flag that the return address register needs to be saved,
1231 not necessarily because of __builtin_return_addr (0).
1232 (s390_split_branches): Remove TEMP_REG and TEMP_USED arguments,
1233 remove special handling of zSeries machines.
1234 (s390_optimize_prolog): Remove TEMP_USED argument, treat the return
1235 register as a regular register on zSeries machines.
1236 (s390_reorg): Adjust calls to s390_split_branches and
1237 s390_optimize_prolog.
1238 (s390_frame_info): On zSeries machines, do not assume the return
1239 register is always used. Update regs_ever_live with current data
1240 for the special registers.
1241 (s390_emit_epilogue): Use save_return_addr_p to determine whether
1242 the return register was saved.
1243 * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Do not mark
1244 RETURN_REGNUM fixed on zSeries machines.
1245 (REG_ALLOC_ORDER): Use RETURN_REGNUM last.
1246 * config/s390/s390.md ("*doloop_si"): Handle branch overflow
1247 via ahi-jgne pair on zSeries machines.
1248 ("*doloop_di"): Likewise.
1249 ("*doloop_di_long"): Remove.
1251 2003-10-30 Richard Earnshaw <rearnsha@arm.com>
1253 * arm.c (arm_override_options): Revert change of arm_constant_limit
1254 when optimizing for size.
1256 2003-10-29 Richard Henderson <rth@redhat.com>
1258 * fold-const.c (fold_single_bit_test): Convert the input to the
1259 operational intermediate type.
1261 2003-10-29 Richard Henderson <rth@redhat.com>
1263 * builtins.c (std_build_builtin_va_list): New.
1264 * expr.h (std_build_builtin_va_list): Declare.
1265 * defaults.h (BUILD_VA_LIST_TYPE): New.
1266 * system.h (BUILD_VA_LIST_TYPE): Poison.
1267 * target-def.h (TARGET_BUILD_BUILTIN_VA_LIST): New.
1268 * target.h (struct gcc_target): Add build_builtin_va_list.
1269 * tree.c (build_common_tree_nodes_2): Use it.
1271 * config/alpha/alpha-protos.h, config/alpha/alpha.c,
1272 config/alpha/alpha.h, config/alpha/unicosmk.h,
1273 config/d30v/d30v-protos.h, config/d30v/d30v.c, config/d30v/d30v.h,
1274 config/i386/i386-protos.h, config/i386/i386.c, config/i386/i386.h,
1275 config/i860/i860-protos.h, config/i860/i860.c, config/i860/i860.h,
1276 config/i960/i960-protos.h, config/i960/i960.c, config/i960/i960.h,
1277 config/mips/iris6.h, config/mips/mips-protos.h, config/mips/mips.c,
1278 config/mips/mips.h, config/rs6000/rs6000-protos.h,
1279 config/rs6000/rs6000.c, config/rs6000/rs6000.h,
1280 config/s390/s390-protos.h, config/s390/s390.c, config/s390/s390.h,
1281 config/sh/sh-protos.h, config/sh/sh.c, config/sh/sh.h,
1282 config/xtensa/xtensa-protos.h, config/xtensa/xtensa.c,
1283 config/xtensa/xtensa.h: Rename foo_build_va_list to
1284 foo_build_builtin_va_list; make it static. Define
1285 TARGET_BUILD_BUILTIN_VA_LIST. Remove BUILD_VA_LIST_TYPE.
1288 * config/i386/i386.c (ix86_expand_carry_flag_compare): Make static.
1289 * config/iq2000/iq2000.h (BUILD_VA_LIST_TYPE): Remove.
1291 2003-10-29 James E Wilson <wilson@specifixinc.com>
1293 * recog.c (asm_operand_ok): Add missing break after case 'X'.
1294 Change if statements to else if statements in default case.
1295 (extract_constrain_insn_cached): Fix misspelling of constrain_operands
1297 (constrain_operands_cached): Likewise.
1298 (constrain_operands): Change if statements to else if statements in
1300 * reload.c (find_reloads): Likewise.
1302 2003-10-29 Richard Henderson <rth@redhat.com>
1304 * config/m68k/m68k.c (notice_update_cc): Clear cc status for
1307 2003-10-30 Alan Modra <amodra@bigpond.net.au>
1309 * config/rs6000/rs6000.md: Remove duplicate pattern.
1311 2003-10-29 Hans-Peter Nilsson <hp@axis.com>
1313 * real.c (do_divide): Initialize result with a 0.
1315 * configure.in <enable-checking for valgrind>: Look for
1316 <valgrind/memcheck.h> first. AC_DEFINE HAVE_VALGRIND_MEMCHECK_H
1318 * configure, config.in: Regenerate.
1319 * ggc-common.c [ENABLE_VALGRIND_CHECKING &&
1320 HAVE_VALGRIND_MEMCHECK_H]: Include <valgrind/memcheck.h>. Use
1321 #elif for other alternatives.
1322 * ggc-page.c: Ditto.
1323 * ggc-zone.c: Don't assume <valgrind/memcheck.h>; instead copy
1324 include structure from ggc-common.c.
1326 2003-10-29 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1328 * pa-linux.h (ASM_OUTPUT_ADDR_VEC_ELT): Use label in big switch ELTs.
1329 (ASM_OUTPUT_ADDR_DIFF_ELT): Use label difference in big switch ELTs.
1330 * pa.c (pa_adjust_insn_length): Check for btable branches using
1331 attribute TYPE_BTABLE_BRANCH.
1332 (pa_reorg): Simplify.
1333 * pa.h (CASE_VECTOR_MODE): Change big switch mode to SImode.
1334 (ASM_OUTPUT_ADDR_VEC_ELT): As above.
1335 (ASM_OUTPUT_ADDR_DIFF_ELT): As above.
1336 * pa.md (btable_branch): New instruction type.
1337 (in_branch_delay, in_nullified_branch_delay, in_call_delay): Disallow
1339 (define_delay): Add btable branches to insn types that may have an
1340 insn in the delay position.
1341 (Z2, Z3): Add btable branch to list.
1342 Simplify unamed pattern set copy pic_label_operand to register. Add
1344 (short_jump): New jump for use in branch tables.
1345 (casesi, casesi0): Revise for new branch table formats.
1346 (casesi32, casesi32p, casesi64p): New casesi patterns.
1347 (indirect_jump): Move.
1349 2003-10-29 David Edelsohn <edelsohn@gnu.org>
1351 * config/rs6000/rs6000.h (UNITS_PER_WORD): Revert to
1353 (UNITS_PER_GPR_WORD): Delete.
1354 (HARD_REGNO_NREGS): Revert to UNITS_PER_WORD.
1355 (HARD_REGNO_MODE_OK): Same.
1356 (CLASS_MAX_NREGS): Same.
1358 2003-10-29 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1360 * pa.h (ASM_COMMENT_START): Define.
1362 2003-10-29 Zack Weinberg <zack@codesourcery.com>
1364 * genmodes.c (complete_mode): Record MODE_CC, MODE_INT,
1365 MODE_FLOAT, and MODE_PARTIAL_INT modes as having one
1366 component, not zero.
1368 2003-10-29 Andreas Schwab <schwab@suse.de>
1370 * config/ia64/t-ia64 (LIB2ADDEH): Add $(srcdir)/gthr-gnat.c.
1372 2003-10-29 Eric Botcazou <ebotcazou@libertysurf.fr>
1374 * config/sparc/sparc.c (function_arg_partial_nregs) [TARGET_ARCH64]:
1375 Never return 1 for complex integral modes whose size is lesser or
1377 (function_arg_pass_by_reference) [TARGET_ARCH64]: Mention CTImode
1379 (function_arg_advance) [TARGET_ARCH64]: Don't special-case complex
1381 (sparc_va_arg) [TARGET_ARCH64]: Handle any types whose size is
1382 greater than 16 bytes by reference.
1384 2003-10-29 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1386 * config/ia64/ia64.c (ia64_assemble_integer): Test POINTER_SIZE,
1388 (ia64_initialize_trampoline): Use globalize_label target call.
1390 2003-10-29 Andreas Schwab <schwab@suse.de>
1392 * doc/install.texi (Building): Add a sentence about building Ada
1393 for a canadian cross.
1395 2003-10-28 Zack Weinberg <zack@codesourcery.com>
1397 * config/ia64/ia64.c (cmptf_libfunc): New static.
1398 (ia64_expand_compare): Add logic to open-code calls to
1399 _U_Qfcmp for TFmode comparisons.
1400 (ia64_hpux_init_libfuncs): Initialize cmptf_libfunc.
1401 Set libfuncs for TFmode eq/ne/gt/ge/lt/gt to 0; these should
1402 never be generated anymore.
1403 * config/ia64/ia64.md (cmptf): New expander.
1405 2003-10-28 Zack Weinberg <zack@codesourcery.com>
1407 * ia64.md (UNSPEC_SETF_EXP,UNSPEC_FR_SQRT_RECIP_APPROX): New constants.
1408 (*sqrt_approx): New instruction pattern for approximate square roots.
1409 (*setf_exp_xf): New instruction pattern for exponentiation.
1410 (*maddxf4_alts_truncsf): New instruction pattern for truncation.
1411 (sqrtsf2_internal_thr): New define_and_split implementing
1412 throughput-optimized inline calculation of SFmode square root.
1413 (sqrtdf2_internal_thr): Likewise for DFmode.
1414 (sqrtxf2_internal_thr): Likewise for XFmode.
1415 (sqrtsf2, sqrtdf2, sqrtxf2): New expanders to choose between
1416 latency- and throughput-optimized square root algorithms.
1417 * ia64.h (MASK_INLINE_SQRT_LAT, MASK_INLINE_SQRT_THR,
1418 TARGET_INLINE_SQRT_LAT, TARGET_INLINE_SQRT_THR, TARGET_INLINE_SQRT):
1420 (TARGET_SWITCHES): Add -minline-sqrt-min-latency and
1421 -minline-sqrt-max-throughput.
1422 * ia64.c (ia64_override_options): If both -minline-sqrt-min-latency
1423 and -minline-sqrt-max-throughput are given, notify the user
1424 that both options cannot be used simultaneously.
1425 If -minline-sqrt-min-latency is given, notify the user that
1426 this mode is not yet implemented.
1427 (rtx_needs_barrier): Reformat initial comment to obey
1428 72-character width limit. Support UNSPEC_SETF_EXP and
1429 UNSPEC_FR_SQRT_RECIP_APPROX.
1431 2003-10-29 Alan Modra <amodra@bigpond.net.au>
1433 * config/rs6000/rs6000.md (movdf_softfloat64): Allow dummy ctr,ctr
1436 2003-10-28 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
1440 * config/rs6000/sysv4.h (PREFERRED_STACK_BOUNDARY): New macro.
1442 2003-10-28 Richard Earnshaw <rearnsha@arm.com>
1444 * arm.c (arm_output_epilogue): When using a frame pointer, don't emit
1445 an extra stack adjustment insn if the stack pointer is already
1446 pointing at the right place.
1447 (use_return_insn): Allow a return insn to be used when we have a
1448 frame pointer if the stack pointer is in the right place.
1449 (output_return_instruction): Handle it.
1451 2003-10-28 Andreas Jaeger <aj@suse.de>
1453 * ggc-zone.c (check_cookies): Add missing variable.
1454 Add void to prototypes.
1456 2003-10-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1458 * config/mips/irix6-libc-compat.c (inet_makeaddr): Prototype.
1459 * crtstuff.c (__do_global_ctors_1): Move prototype.
1460 * unwind-dw2.c (NO_SIZE_OF_ENCODED_VALUE): Define when
1462 * unwind-sjlj.c (_Unwind_GetCFA, _Unwind_FindEnclosingFunction):
1463 Mark parameter with __attribute__((unused)).
1465 2003-10-27 Zack Weinberg <zack@codesourcery.com>
1467 * c-decl.c (pushdecl): Clarify comment.
1469 2003-10-27 Arnaud Charlet <charlet@act-europe.fr>
1471 * doc/install.texi: Update instructions for Ada cross builds
1474 * doc/sourcebuild.texi: Document Ada test suite.
1476 2003-10-27 Stephane Carrez <stcarrez@nerim.fr>
1478 * config/m68hc11/m68hc11.c: Convert to ISO C90.
1479 * config/m68hc11/m68hc11-protos.h: Likewise.
1481 2003-10-27 Jan Hubicka <jh@suse.cz>
1482 Eric Botcazou <ebotcazou@libertysurf.fr>
1484 * toplev.c (enum dump_file_index, dump_file): Fix ordering of
1487 2003-10-27 Jakub Jelinek <jakub@redhat.com>
1488 Jan Hubicka <jh@suse.cz>
1490 * reload1.c (struct elim_table): Change offset, initial_offset and
1491 previous_offset fields to HOST_WIDE_INT.
1492 (offsets_at): Change from int to HOST_WIDE_INT.
1493 (reload): Adjust offsets_at initialization.
1494 (eliminate_regs_in_insn): Change type of offset to HOST_WIDE_INT.
1495 (verify_initial_elim_offsets): Change type of t to HOST_WIDE_INT.
1496 * config/i386/i386.c (ix86_compute_frame_layout): Change offset type
1497 to HOST_WIDE_INT. Don't save regs using mov for huge frame sizes
1499 (pro_epilogue_adjust_stack): New function.
1500 (ix86_expand_prologue, ix86_expand_epilogue): Use it.
1501 * config/i386/i386.md (pro_epilogue_adjust_stack): Remove.
1502 (pro_epilogue_adjust_stack_1): Remove * in front of name.
1503 (pro_epilogue_adjust_stack_rex64): Handle -2147483648 properly.
1504 (pro_epilogue_adjust_stack_rex64_2): New insn.
1506 * config/i386/i386.c (ix86_expand_epilogue): Fix comment typo.
1508 * config/i386/i386.c (ix86_expand_call): Replace 40 with
1509 FIRST_REX_INT_REG + 3 /* R11 */.
1511 2003-10-26 Richard Henderson <rth@redhat.com>
1513 * config/alpha/alpha.md (attr cannot_copy): New.
1514 (call_osf_2_er, call_value_osf_2_er, ldgp_er_1, ldgp_er_2,
1515 prologue_ldgp_er_2, prologue_ldgp_1): Set it.
1516 * config/alpha/alpha.c (alpha_cannot_copy_insn_p): Test it.
1518 2003-10-26 Daniel Berlin <dberlin@dberlin.org>
1520 * ggc-zone.c: New file, zone allocating collector.
1521 * configure: Accept zone option for --with-gc
1522 * configure.in: Ditto.
1523 * ggc.h (ggc_pch_count_object): Pass bool indicating
1524 stringiness. Update all callers.
1525 (ggc_pch_alloc_object): Ditto.
1526 (ggc_pch_write_object): Ditto.
1527 (ggc_alloc_rtx): Use typed allocation, since all RTX's are of a single
1529 (ggc_alloc_rtvec): Ditto.
1530 (ggc_alloc_tree): Use zone allocation, since some things using this macro
1531 aren't a single typecode.
1532 * ggc-none.c (ggc_alloc_typed): New function.
1533 (ggc_alloc_zone): Ditto.
1534 * ggc-page.c: Ditto on both functions.
1536 2003-10-26 Gunther Nikl <gni@gecko.de>
1538 * config/m68k/m68k.c (m68k_compute_frame_layout): Ensure FPU related
1539 frame information is always valid.
1540 (m68k_output_function_prologue): Remove superfluous TARGET_68881
1541 test; fix formatting.
1543 2003-10-26 Gunther Nikl <gni@gecko.de>
1545 * config/m68k/m68k.c (m68k_compute_frame_layout): Swap reg_mask and
1546 reg_rev_mask computation.
1547 (m68k_output_function_prologue): Fix usage of current_frame (one typo
1548 and one missing); use reg_rev_mask not reg_mask.
1549 (m68k_output_function_epilogue): Fix usage of current_frame;
1550 use fpu_rev_mask not fpu_mask.
1552 2003-10-26 Bernardo Innocenti <bernie@develer.com>
1554 * config/m68k/m68k.c (m68k_output_function_prologue): Eliminate
1555 num_saved_regs, use current_frame.reg_no instead.
1557 2003-10-26 Bernardo Innocenti <bernie@develer.com>
1558 Paul Dale <pauli@snapgear.com>
1560 * doc/extend.texi (interrupt_handler): Add m68k to the
1561 list of processors implementing it.
1562 * doc/invoke.texi (-msep-data): Document new m68k option.
1563 (-mno-sep-data): Likewise.
1564 (-mid-shared-library): Likewise.
1565 (-mno-id-shared-library): Likewise.
1566 (-mshared-library-id): Likewise.
1568 2003-10-26 Andreas Jaeger <aj@suse.de>
1570 * unwind-dw2.c (_Unwind_GetGR): Avoid warning about unsigned
1572 (_Unwind_SetGR): Likewise.
1574 2003-10-26 Ottavio Campana <ottavio@campana.vi.it>
1577 * config/i386/mmintrin.h (_mm_set1_pi8): Fix comment.
1579 2003-10-26 Gunther Nikl <gni@gecko.de>
1581 * config/m68k/m68k.c (m68k_output_function_prologue): Move front
1582 comment from here to...
1583 (m68k_save_reg): ...here. Fix comment formatting.
1584 (m68k_output_function_prologue): Fix comment formatting.
1585 (m68k_output_function_epilogue): Likewise.
1586 (const_method): Likewise.
1588 2003-10-26 Kazu Hirata <kazu@cs.umass.edu>
1590 * toplev.c (default_get_pch_validity): Guard the use of
1591 target_options with #ifdef TARGET_OPTIONS.
1592 (default_pch_valid_p): Likewise.
1594 2003-10-26 Andreas Jaeger <aj@suse.de>
1595 Zack Weinberg <zack@codesourcery.com>
1596 Andreas Tobler <toa@pop.agri.ch>
1598 * dwarf2out.c (output_cfi): Use HOST_WIDE_INT_PRINT.
1599 (output_die): Likewise.
1600 (print_die): Likewise.
1602 2003-10-26 Andreas Jaeger <aj@suse.de>
1604 * tree.h (dwarf2out_def_cfa, dwarf2out_args_size,
1605 dwarf2out_reg_save, new_loc_descr): Update prototypes for recent
1608 * toplev.c (default_pch_valid_p): Fix warning.
1610 2003-10-25 Roger Sayle <roger@eyesopen.com>
1612 * simplify-rtx.c (simplify_replace_rtx): Avoid allocating duplicate
1613 RTL nodes. If an operator's operands are unchanged, return the
1614 original argument unchanged.
1616 2003-10-26 Graham Stott <graham.stott@btinternet.com>
1618 Fix bootstrap failure.
1619 * expmed.c (store_bit_field): Don't compare bitsize against
1620 modes with zero bit-size.
1622 (extract_bit_field): Likewise
1624 2003-10-25 Jan Hubicka <jh@suse.cz>
1626 * dwarf2out.c (dw_cfi_oprnd_struct): Offset is HOST_WIDE_INT.
1627 (cfa_loc): Likewise.
1628 (reg_save, stack_adjust_offset, queue_reg_save): Replace long by
1630 (args_size, old_args_size): change type to HOST_WIDE_INT.
1631 (dwarf2out_def_cfa, dwarf2out_args_size,
1632 dwarf2out_reg_save, new_loc_descr): offset is HOST_WIDE_INT.
1633 (dw_val_struct): integers, unsigneds and offsets are HOST_WIDE_INT.
1634 (add_AT_int, add_AT_unsigned, att_AT_offset, AT_int, AT_unsigned,
1635 AT_offset): Use HOST_WIDE_INT.
1636 (based_loc_descr): offset is HOST_WIDE_INT.
1637 (add_data_member): Likewise.
1638 (add_const_value_attribute): Simplify.
1640 2003-10-25 Richard Henderson <rth@redhat.com>
1642 * config/i386/i386.c (ix86_eax_live_at_start_p): New.
1643 (ix86_expand_prologue): Save and restore eax around stack probe
1646 2003-10-25 Jan Hubicka <jh@suse.cz>
1648 * cppcharset.c (one_utf8_to_utf32): Initialize 's' to silence warning.
1650 2003-10-25 Eric Botcazou <ebotcazou@libertysurf.fr>
1653 * reg-stack.c (convert_regs_1): Create an arbitrary input stack
1654 if the block has no predecessors.
1655 (convert_regs_2): Document the problem with successors whose
1656 only predecessor is the block to be processed.
1657 (convert_regs): Don't create the arbitrary input stack here.
1659 2003-10-24 Zack Weinberg <zack@codesourcery.com>
1661 * genmodes.c (struct mode_data): Add contained and next_cont
1663 (complete_mode): Maintain linked list of modes that have a
1665 (emit_mode_unit_size): Delete.
1666 (emit_mode_nunits): New.
1667 (emit_insn_modes_c): Update to match.
1668 (emit_mode_adjustments): Propagate size and alignment
1669 adjustments from component modes to their containers.
1670 * machmode.h (mode_unit_size): Delete.
1672 (GET_MODE_NUNITS): Just return the value in the table.
1673 (GET_MODE_UNIT_SIZE): Compute using GET_MODE_INNER and
1675 * expmed.c (store_bit_field, extract_bit_field): Can use a
1676 plain move instruction if bitsize >= GET_MODE_BITSIZE of
1677 destination/source mode, respectively.
1678 * varasm.c (assemble_real): Write out the full size of the
1679 constant, not just its bitsize.
1680 (output_constant): Honor TYPE_MODE of TREE_REAL_CSTs.
1682 * config/ia64/ia64-modes.def: Define XFmode as well as TFmode.
1683 Use ADJUST_BYTESIZE and ADJUST_ALIGNMENT to set size and
1684 alignment of XF and TF modes in compliance with ia64 ABIs.
1685 Can now hardwire the format of both modes.
1686 * config/ia64/ia64.c: Change TFmode to XFmode wherever appropriate.
1687 (general_tfmode_operand, destination_tfmode_operand)
1688 (tfreg_or_fp01_operand, spill_tfmode_operand): Rename to
1689 general_xfmode_operand, destination_xfmode_operand,
1690 xfreg_or_fp01_operand, spill_xfmode_operand respectively.
1691 (ia64_init_builtins): Make TYPE_PRECISION of fpreg_type
1692 and float80_type be 96 so they get XFmode. Use !TARGET_HPUX,
1693 not INTEL_EXTENDED_IEEE_FORMAT, to decide how to define
1695 * config/ia64/ia64.h: Default TARGET_HPUX to 0.
1696 Change TFmode to XFmode wherever appropriate. Remove all
1697 references to INTEL_EXTENDED_IEEE_FORMAT.
1698 (LONG_DOUBLE_TYPE_SIZE): Varies with TARGET_HPUX.
1699 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define (always 96).
1700 (PREDICATE_CODES): Update to match function renames.
1701 * config/ia64/ia64.md: Change TF to XF throughout; rename all
1702 patterns to match. Remove all references to
1703 INTEL_EXTENDED_IEEE_FORMAT. Update predicate calls to match
1705 * config/ia64/ia64-protos.c: Update all prototypes to match
1707 * config/ia64/hpux.h: Redefine TARGET_HPUX to 1.
1708 Remove all references to INTEL_EXTENDED_IEEE_FORMAT.
1709 * config/ia64/lib1funcs.asm: Add __divxf3 as new name for
1710 __divtf3; keep old name for backward compatibility.
1711 (L__compat): New section providing forwarding stubs for
1712 __fixtfti, __fixunstfti, __floattitf.
1713 * config/ia64/t-ia64: Add __compat to LIB1ASMFUNCS.
1715 2003-10-24 Geoffrey Keating <geoffk@apple.com>
1718 * c-pch.c: Include target.h. Improve comments.
1719 (struct c_pch_validity): Add target_data_length.
1720 (pch_init): Add target's validity data.
1721 (c_common_valid_pch): Check target's validity data.
1722 * target-def.h (TARGET_GET_PCH_VALIDITY): New.
1723 (TARGET_PCH_VALID_P): New.
1724 (TARGET_INITIALIZER): Add new fields.
1725 * target.h: Include tm.h.
1726 (struct gcc_target): Add get_pch_validity, pch_valid_p.
1727 * toplev.h (default_get_pch_validity): New prototype.
1728 (default_pch_valid_p): New prototype.
1729 * toplev.c (default_get_pch_validity): New routine.
1730 (default_pch_valid_p): New routine.
1731 * Makefile.in (TARGET_H): Add TM_H. Replace all users of
1732 target.h with $(TARGET_H).
1733 (c-pch.o): Add TARGET_H.
1734 * doc/tm.texi (PCH Target): New node.
1735 (TARGET_GET_PCH_VALIDITY): Document.
1736 (TARGET_PCH_VALID_P): Document.
1738 2003-10-24 Kelley Cook <kcook@gcc.gnu.org>
1740 * Makefile.in: Define a vpath for %.texi. Remove explicit $(docdir)
1741 and $(docdir)/include from any *.texi dependencies.
1742 ($(docobjdir)/%.dvi): Depend on stmp-docobjdir.
1743 ($(docobjdir)/%.1): Depend on .pod instead of .texi.
1744 ($(docobjdir)/%.7): Likewise.
1745 (%.pod): New implicit rule.
1746 (cpp.pod): New dependency only rule.
1747 (gcc.pod): New intermediate rule with dependencies and commands.
1748 (gfdl.pod): Likewise.
1749 (fsf-funding.pod): Likewise.
1751 2003-10-24 Nathanael Nerode <neroden@gcc.gnu.org>
1753 * fixinc/mkfixinc.sh: Remove special cases for svr4 and ptx, and
1755 * fixinc/fixinc.ptx: Remove.
1756 * fixinc/fixinc.svr4: Remove.
1758 2003-10-24 Ulrich Weigand <uweigand@de.ibm.com>
1760 * config/s390/s390.c (load_multiple_operation): Allow both SImode
1761 and DImode if word_mode is DImode.
1762 (store_multiple_operation): Likewise.
1763 * config/s390/s390.md ("load_multiple", "store_multiple"): Likewise.
1764 ("*load_multiple_di"): Allow only if word_mode == DImode.
1765 ("movqi"): Use LLGC whenever TARGET_ZARCH.
1766 ("fix_truncdfsi2"): Fix incorrect temporary size.
1767 ("fix_truncsfsi2"): Likewise.
1768 ("*bras_r", "*brasl_r", "*basr_r"): Remove predicate and constraint
1769 string for function return value operand.
1770 ("*bras_tls", "*brasl_tls", "*basr_tls"): Likewise.
1772 2003-10-24 Joseph S. Myers <jsm@polyomino.org.uk>
1774 * c-parse.in (array_declarator): Use expr_no_commas.
1777 2003-10-24 Richard Sandiford <rsandifo@redhat.com>
1779 * config/mips/linux.h: Wrap MD_FALLBACK_FRAME_STATE_FOR and
1780 associated includes in #ifndef inhibit_libc.
1782 2003-10-24 Roger Sayle <roger@eyesopen.com>
1784 * doc/libgcc.texi: Document some more of the libgcc API.
1786 2003-10-24 Richard Earnshaw <rearnsha@arm.com>
1788 * arm.c (arm_rtx_costs_1, case TARGET_THUMB): Adjust costs for
1789 comparing a constant with small negative numbers and add costing
1790 for constants in conjunction with AND.
1791 (note_invalid_constants): Tidy previous change.
1792 (thumb_cmp_operand): Tidy.
1793 (thumb_cmpneg_operand): New function.
1794 * arm.h (CONDITIONAL_REGISTER_USAGE): Don't use HI regs if optimizing
1796 (FIRST_LO_REGNUM, FIRST_HI_REGNUM, LAST_HI_REGNUM): Define.
1797 (PREDICATE_CODES): Add thumb_cmpneg_operand.
1798 * arm.md (cbranchsi4): Convert to define_expand. Handle comparison
1799 with a negative constant.
1800 (cbranchsi4_insn): Matcher for cbranchsi4.
1801 (cbranchsi4_scratch): Similar, but a scratch is available for
1802 handling negative constants.
1803 (movsi_cbranchsi4): New pattern.
1804 (tstsi3_cbranch): Renamed from andsi3_cbranch_scratch, remove scratch
1805 and use the TST instruction.
1806 (andsi3_cbranch, orrsi3_cbranch, xorsi3_cbranch, cbranchne_decr1)
1807 (addsi3_cbranch, subsi3_cbranch): Ensure that register preferencing
1808 cannot see high regs or memory alternatives.
1809 (bicsi3_cbranch_scratch, bicsi3_cbranch): New patterns.
1811 2003-10-24 Richard Earnshaw <rearnsha@arm.com>
1813 * arm.c (note_invalid_constants): Try to extract the constant
1814 pool value using avoid_constant_pool_reference; only use
1815 get_pool_constant if that returns the original reference.
1817 2003-10-24 Jan Hubicka <jh@suse.cz>
1820 * varasm.c (notice_global_symbol): Disqualify global registers.
1822 2003-10-23 Roger Sayle <roger@eyesopen.com>
1825 * loop.c (load_mems): Use redirect_jump to forward jumps from
1826 the original loop end label to the new "loop sink" block's label.
1828 2003-10-23 Roger Sayle <roger@eyesopen.com>
1831 * optabs.c (expand_binop): When expanding complex operations
1832 inline, always calculate result into a new temporary register.
1833 Minor code clean-ups.
1835 2003-10-24 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
1837 * objc/lang-specs.h: Handle -print-objc-runtime-info.
1838 * doc/invoke.texi (Objective-C Dialect Options): Document it.
1840 2003-10-24 Danny Smith <dannysmith@users.sourceforge.net>
1842 * config/i386/cygwin.asm. Add copyright notice. Add comment
1843 on why this code is needed.
1845 2003-10-23 Kazu Hirata <kazu@cs.umass.edu>
1847 * config/h8300/clzhi2.c: Fix warnings.
1848 * config/h8300/ctzhi2.c: Likewise.
1849 * config/h8300/fixunssfsi.c: Likewise.
1850 * config/h8300/parityhi2.c: Likewise.
1851 * config/h8300/popcounthi2.c: Likewise.
1853 2003-10-23 James E Wilson <wilson@specifixinc.com>
1855 * gcc.c (option_map): Delete --target and --use-version.
1857 2003-10-23 Fariborz Jahanian <fjahanian@apple.com>
1858 David Edelsohn <edelsohn@gnu.org>
1860 * config/rs6000/rs6000.h (UNITS_PER_WORD): Use TARGET_32BIT, not
1862 (UNITS_PER_GPR_WORD): Define.
1863 (HARD_REGNO_NREGS): Use UNITS_PER_GPR_WORD.
1864 (HARD_REGNO_CALL_PART_CLOBBERED): Define.
1865 (HARD_REGNO_MODE_OK): Use UNITS_PER_GPR_WORD.
1866 (CLASS_MAX_NREGS): Use UNITS_PER_GPR_WORD.
1867 * config/rs6000/rs6000.c (function_arg): Generate PARALLEL for
1868 DFmode and DImode in 32-bit ABI / 64-bit computation mode.
1869 (rs6000_emit_prologue): Select reg_mode and reg_size using
1870 TARGET_32BIT, not TARGET_POWERPC64.
1871 (rs6000_function_value): Generate PARALLEL for DImode in 32-bit
1872 ABI / 64-bit computation mode
1874 2003-10-22 Andrew Haley <aph@redhat.com>
1876 * toplev.c (output_file_directive): Allow for null input_name.
1878 2003-10-22 Waldek Hebisch <hebisch@math.uni.wroc.pl>
1880 * config/i386/i386.c (classify_argument): Handle SET_TYPE.
1882 2003-10-22 Chris Demetriou <cgd@broadcom.com>
1884 * configure.in: In --enable-generated-files-in-srcdir option
1885 handling, fix default case handling.
1886 * configure: Regenerate.
1888 2003-10-22 Phil Edwards <phil@codesourcery.com>
1890 * config.gcc: Update *-*-vxworks* generic hook and comments.
1891 (arm-wrs-vxworks, i[4567]86-wrs-vxworks, mips-wrs-vxworks,
1892 mips-wrs-windiss, sh-wrs-vxworks): New stanzas.
1893 * genmultilib: Allow the MULTILIB_OSDIRNAMES to be mapped directly.
1894 * config/svr4.h (SWITCH_TAKES_ARG): Undefine it before redefining it.
1895 * config/windiss.h: New file.
1896 * config/arm/t-vxworks: New file.
1897 * config/arm/vxworks.h: New file.
1898 * config/i386/t-vxworks: New file.
1899 * config/i386/vxworks.h: New file.
1900 * config/mips/t-vxworks: New file.
1901 * config/mips/vxworks.h: New file.
1902 * config/mips/windiss.h: New file.
1903 * config/sh/t-vxworks: New file.
1904 * config/sh/vxworks.h: New file.
1906 2003-10-22 Kazu Hirata <kazu@cs.umass.edu>
1908 * config/h8300/h8300.c (h8300_output_function_epilogue): Remove.
1909 (h8300_saveall_function_p): New.
1910 (h8300_insert_attributes): Insert the saveall attribute if
1911 #pragma saveall is specified.
1912 (h8300_attribute_table): Add saveall.
1913 (TARGET_ASM_FUNCTION_EPILOGUE): Remove.
1914 * doc/extend.texi: Mention the saveall attribute.
1916 2003-10-22 Joseph S. Myers <jsm@polyomino.org.uk>
1918 * c-typeck.c (pedantic_lvalue_warning): Unconditionally warn of
1919 deprecation of casts as lvalues.
1920 * fixinc/inclhack.def (obstack_lvalue_cast): New fix.
1921 * fixinc/fixincl.x: Regenerate.
1922 * fixinc/tests/base/obstack.h: New test.
1924 2003-10-22 Andreas Schwab <schwab@suse.de>
1927 * config/m68k/m68k.c (output_addsi3): Fix range check to work on
1930 2003-10-22 Jan Hubicka <jh@suse.cz>
1932 * dwarf2out.c (dwarf2out_abstract_function): Use DW_AT to check
1933 presence of DW_AT_inline.
1934 (gen_subprogram_die): Likewise; do not abort instead of emitting
1937 2003-10-22 Jan Hubicka <jh@suse.cz>
1939 * cgraph.c (cgraph_function_possibly_inlined_p): Be conservative when
1940 global info is not ready.
1942 2003-10-22 Kazu Hirata <kazu@cs.umass.edu>
1944 * doc/extend.texi: Mention H8S wherever H8/300H is mentioned.
1946 2003-10-22 Ulrich Weigand <uweigand@de.ibm.com>
1948 * config/s390/s390.md ("movstr_short_64", "movstr_short_31"): Merge ...
1949 ("*movstr_short"): ... into this insn pattern.
1950 ("movstr_short"): New expander.
1951 ("*movstr_long_64"): Rename from "movstr_long_64", simplify.
1952 ("*movstr_long_31"): Rename from "movstr_long_31", simplify.
1953 ("movstr_long"): New expander.
1954 ("clrstr_short_64", "clrstr_short_31"): Merge ...
1955 ("*clrstr_short"): ... into this insn pattern.
1956 ("clrstr_short"): New expander.
1957 ("*clrstr_long_64"): Rename from "clrstr_long_64", simplify.
1958 ("*clrstr_long_31"): Rename from "clrstr_long_31", simplify.
1959 ("clrstr_long"): New expander.
1960 ("cmpmem_short_64", "cmpmem_short_31"): Merge ...
1961 ("*cmpmem_short"): ... into this insn pattern.
1962 ("cmpmem_short"): New expander.
1963 ("*cmpmem_long_64"): Rename from "cmpmem_long_64".
1964 ("*cmpmem_long_31"): Rename from "cmpmem_long_31".
1965 ("cmpmem_long"): New expander.
1966 * config/s390/s390.c (s390_expand_movstr): Use new expanders.
1967 (s390_expand_clrstr): Likewise.
1968 (s390_expand_cmpmem): Likewise.
1970 2003-10-22 Mark Mitchell <mark@codesourcery.com>
1972 * c-pch.c (struct c_pch_validity): Add pch_init field.
1974 (c_common_valid_pch): Check it.
1976 2003-10-22 David Taylor <dtaylor@emc.com>
1979 * dbxout.c (dbxout_typedefs): Use COMPLETE_OR_VOID_TYPE_P.
1981 2003-10-22 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1983 * config/alpha/alpha.c (function_value [ENABLE_CHECKING]): Don't call
1984 alpha_return_in_memory if no VALTYPE specified.
1986 2003-10-22 Jan Hubicka <jh@suse.cz>
1989 * Makefile.in (dwarf2out.o): Depend on cgraph.h.
1990 * cgraph.c (cgraph_function_possibly_inlined_p): New function.
1991 * cgraph.h (cgraph_function_possibly_inlined_p): Declare.
1992 (cgraph_global_info): Add flag inlined
1993 * dwarf2out.c (gen_subprogram_die, gen_decl_die): Use
1994 cgraph_function_possibly_inded_p
1995 * cgraphunit.c (mark_inline): Set inlined flag.
1996 * toplev.c (rest_of_decl_compilation): Call outlining_inline_function
1997 only for possibly inlined functions.
1998 * c-decl.c (duplicate_decls): Never output abstract DIE representing old
2001 2003-10-22 Andrew Haley <aph@redhat.com>
2003 * varasm.c (output_constructor): Make constructor annotation
2004 conditional on ASM_COMMENT_START.
2006 2003-10-21 Jason Merrill <jason@redhat.com>
2008 * tree.c (get_unwidened): Check TREE_UNSIGNED on the field's type.
2009 (get_narrower): Likewise.
2011 * stor-layout.c (layout_decl): Do packed field alignment for
2014 2003-10-21 Eric Christopher <echristo@redhat.com>
2016 * expr.c (convert_move): Use FLOAT_EXTEND for extensions.
2018 2003-10-21 Geoffrey Keating <geoffk@apple.com>
2020 * c-pch.c: Add comments in various places.
2021 (struct c_pch_validity): Add the lengths of various strings.
2022 (host_machine): New static.
2023 (target_machine): New static.
2024 (get_ident): Bump version number.
2025 (pch_init): Write out version, host, target validity data.
2026 (c_common_valid_pch): Check version, host, target.
2027 * Makefile.in (c-pch.o): Add version.h; define HOST_MACHINE and
2030 2003-10-21 Jason Merrill <jason@redhat.com>
2032 * tree.h (IS_EXPR_CODE_CLASS): Use strchr.
2033 (EXPR_P): New macro.
2035 2003-10-21 Zack Weinberg <zack@codesourcery.com>
2037 * config/ia64/ia64.md (cmpxchg_acq_si): Mark operand 3 as DImode.
2038 * config/ia64/ia64.c (ia64_expand_fetch_and_op,
2039 ia64_expand_op_and_fetch): Make sure the REG for ar.ccv is
2040 DImode. Use convert_move to load ar.ccv.
2041 (ia64_expand_compare_and_swap): Likewise.
2042 If expand_expr doesn't put 'old' and 'new' in the proper
2043 modes, run them through convert_to_mode.
2045 2003-10-21 Eric Christopher <echristo@redhat.com>
2047 * config/frv/frv.c (frv_adjust_field_align): Check DECL_ARTIFICIAL
2048 for too large bitfields.
2050 2003-10-21 Mark Mitchell <mark@codesourcery.com>
2052 * Makefile.in ($(docobjdir)/%.info): Honor BUILD_INFO.
2054 2003-10-21 Andrew Haley <aph@redhat.com>
2056 * varasm.c (output_constructor): Annotate constructor.
2058 2003-10-21 Mark Mitchell <mark@codesourcery.com>
2060 * Makefile.in ($(DESTDIR)$(infodir)/%.info): Conditionalize chmod
2061 on existence of destination file.
2063 2003-10-21 Jan Hubicka <jh@suse.cz>
2065 * haifa-sched.c (choose_ready): Initialize index.
2067 2003-10-21 Jason Merrill <jason@redhat.com>
2069 * tree.c (build1): Fix off-by-one error.
2071 2003-10-21 Robert Millan <robertmh@gnu.org>
2073 * config/i386/kfreebsdgnu.h: New. i386-*-kfreebsd-gnu definitions.
2074 * config/kfreebsdgnu.h: New. *-*-kfreebsd-gnu definitions.
2075 * config/t-kfreebsd-gnu: New. *-*-kfreebsd-gnu tmake_file.
2076 * config.gcc: Add *-*-kfreebsd*-gnu and i[34567]86-*-kfreebsd*-gnu.
2078 2003-10-21 Eric Botcazou <ebotcazou@libertysurf.fr>
2080 * web.c: Fix various comments.
2082 2003-10-20 Nicolas Pitre <nico@cam.org>
2084 * config/arm/arm.c (arm_override_options): Set arm_constant_limit
2085 to 2 instead of 1 when optimize_size is true. Gather code based on
2086 optimize_size together. Add comment about XScale load latency.
2088 2003-10-21 Gunther Nikl <gni@gecko.de>
2090 * config/m68k/m68k.c (m68k_output_function_prologue): Remove
2093 2003-10-20 Kelley Cook <kcook@gcc.gnu.org>
2095 * Makefile.in: Get parsedir and docobjdir from configure.
2096 * configure.in: Recogonize --enable-generated-files-in-srcdir.
2097 Pass along parsedir and docobjdir.
2098 * configure: Regenerate.
2099 * doc/install.texi: Document --enable-generated-files-in-srcdir.
2101 2003-10-20 Kelley Cook <kcook@gcc.gnu.org>
2103 * Makefile.in: Define $(docdir) before the Make-lang.in fragments are
2106 2003-10-20 Joseph S. Myers <jsm@polyomino.org.uk>
2108 * c-common.c (expand_tree_builtin): Ensure creal and cimag
2109 functions do not return lvalues.
2111 2003-10-20 Jason Merrill <jason@redhat.com>
2114 * tree.c (build1) <ADDR_EXPR>: Set TREE_SIDE_EFFECTS
2118 * stor-layout.c (layout_decl): Fix alignment handling.
2120 2003-10-20 Joseph S. Myers <jsm@polyomino.org.uk>
2122 * doc/extend.texi: Deprecate casts as lvalues.
2124 2003-10-20 Jan Hubicka <jh@suse.cz>
2126 * toplev.c (rest_of_compilation): Fix webizer pass ordering.
2128 * cgraphunit.c (decide_is_function_needed): Fix test dealing
2129 with functions implicitly made inline.
2131 * cgraphunit.c (cgraph_decide_inlining_incrementally): New function.
2132 (cgraph_finalize_function): Use it.
2133 (cgraph_mark_inline): Allow incrmental decisions
2134 * invoke.texi (max-inline-slope, min-inline-insns): Kill.
2135 * params.def (PARAM_MAX_INLINE_SLOPE, PARAM_MIN_INLINE_INSNS): Kill.
2136 * tree-inline.c (limits_allow_inlining): Kill.
2137 (expand_call_inline): Always use unit-at-a-time path.
2139 2003-10-20 Zack Weinberg <zack@codesourcery.com>
2141 * fixinc/inclhack.def (hpux11_snprintf): New edit.
2142 * fixinc/fixincl.x: Regenerate.
2143 * fixinc/tests/base/stdio.h: Add test for hpux11_snprintf.
2145 2003-10-20 Mark Mitchell <mark@codesourcery.com>
2147 * Makefile.in (install-info): Simplify.
2148 ($(DESTDIR)$(infodir)/%.info): New rule.
2149 * configure.in (target_list): Remove install-info.
2150 * doc/.cvsignore (gcc.info*): Remove.
2151 (gccint.info*): Likewise.
2152 (gccinstall.info*): Likewise.
2153 (cpp.info*): Likewise.
2154 (cppinternals.info*): Likewise.
2156 * doc/sourcebuild.texi: Update description of install-info.
2157 * objc/Make-lang.in (objc.install-info): Remove.
2159 2003-10-20 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2161 * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Define _ABIO32.
2162 Use it in _MIPS_SIM definition.
2163 * config/mips/mips.h (CRT_CALL_STATIC_FUNCTION): Likewise.
2165 2003-10-20 Zack Weinberg <zack@codesourcery.com>
2167 * config/i386/i386.c (print_reg): Abort if REGNO (x) is a
2168 virtual register, but only if file == asm_out_file.
2169 * config/i386/i386.h (HI_REGISTER_NAMES): Use "argp", not "",
2170 for ARG_POINTER_REGNUM.
2172 2003-10-20 Zack Weinberg <zack@codesourcery.com>
2174 * c-common.c (registered_builtin_types): New static.
2175 (c_common_type_for_mode): Consult registered_builtin_types.
2176 (c_register_builtin_type): Add type to registered_builtin_types.
2177 * optabs.c (init_floating_libfuncs): Initialize libfuncs for
2178 all MODE_FLOAT modes, not just the ones corresponding to
2179 float_type_node, double_type_node, and long_double_type_node.
2181 2003-10-20 Richard Henderson <rth@redhat.com>
2183 * config/alpha/alpha.h (PREDICATE_CODES): Add normal_memory_operand.
2184 * config/alpha/alpha-protos.h: Remove PREDICATE_CODES prototypes.
2186 2003-10-20 Dorit Naishlos <dorit@il.ibm.com>
2188 * config/rs6000/rs6000.h: (rs6000_sched_insert_nops):
2189 support new flag -minsert-sched-nops.
2190 (DEFAULT_SCHED_FINISH_NOP_INSERTION_SCHEME): Define.
2191 * config/rs6000/rs6000.c: (rs6000_sched_insert_nops):
2192 support new flag -minsert-sched-nops.
2193 (is_cracked_insn, is_microcoded_insn): New functions.
2194 (rs6000_sched_finish): New function.
2195 (rs6000_issue_rate): Return 5 for power4.
2196 (get_next_active_insn, insn_terminates_group_p): New
2198 (is_costly_group, force_new_group): New functions.
2199 (redefine_groups, pad_groups): New functions.
2200 (rs6000_variable_issue): Use new functions.
2201 * doc/invoke.texi (-minsert-sched-nops): Document new
2204 2003-10-20 David S. Miller <davem@redhat.com>
2206 * config/sparc/sparc.md (type attribute): Add new insn types
2207 fpa, fpm_pack, fgm_mul, fgm_pdist, and fgm_cmp for VIS.
2208 (patterns emitting VIS insns): Use them.
2209 * config/sparc/ultra1_2.md: Add VIS scheduling rules.
2210 * config/sparc/ultra3.md: Likewise.
2212 2003-10-20 Falk Hueffner <falk@debian.org>
2215 * config/alpha/alpha.c (alpha_emit_conditional_branch): Don't do
2216 comparison against constant by adjusting the argument except for
2219 2003-10-19 Mark Mitchell <mark@codesourcery.com>
2221 * config.gcc: Add support for arm926ejs, arm1026ejs, arm1136js,
2222 arm1136jfs, and armv6j.
2223 * config/arm/arm.c (FL_ARCH6J): New macro.
2224 (FL_VFPV2): Likewise.
2225 (all_cores): Add entries for arm926ejs, arm1026ejs, arm1136js,
2227 (all_architectures): Add entry for armv6j.
2228 (arm_override_options): Add entries for arm926ejs, arm1026ejs,
2229 arm1136js, and arm1136jfs.
2230 * config/arm/arm.h (TARGET_CPU_arm926ej_s): New macro.
2231 (TARGET_CPU_arm1026ej_s): Likewise.
2232 (TARGET_CPU_arm1136j_s): Likewise.
2233 (TARGET_CPU_arm1136jf_s): Likewise.
2234 * doc/invoke.texi: Document new ARM cores and architecture
2237 2003-10-19 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
2239 * Makefile.in (toplev.o): Add value-prof.h dependency.
2240 (value-prof.o): Add REGS_H dependency.
2241 * common.opt (fprofile-values, fvpt): New.
2242 * flags.h (flag_value_profile_transformations): Declare.
2243 * opts.c (common_handle_option): Handle -fprofile_values and
2245 * profile.c (branch_prob): Don't remove death notes here.
2246 * timevar.def (TV_VPT): New.
2247 * value-prof.c: Include regs.h.
2248 (insn_divmod_values_to_profile, gen_divmod_fixed_value, gen_mod_pow2,
2249 gen_mod_subtract, divmod_fixed_value_transform,mod_pow2_value_transform,
2250 mod_subtract_transform, value_profile_transformations): New.
2251 (insn_values_to_profile): Call insn_divmod_values_to_profile.
2252 (find_values_to_profile): Add dumps.
2253 * value-prof.h (value_profile_transformations): Declare.
2254 * toplev.c: Include value-prof.h.
2255 (rest_of_handle_value_profile_transformations): New.
2256 (enum dump_file_index): Add DFI_vpt.
2257 (dump_file): Add vpt dump.
2258 (flag_value_profile_transformations): New.
2259 (lang_independent_options): Add flag_profile_values and
2260 flag_value_profile_transformations.
2261 (rest_of_compilation): Call
2262 rest_of_handle_value_profile_transformations.
2263 (process_options): Let -fvpt imply -fprofile-values.
2264 * doc/invoke.texi (-fvpt): Document.
2266 2003-10-19 Jan Hubicka <jh@suse.cz>
2268 * i386.c (print_reg): Do not abort on certain registers.
2270 PR optimization/12612
2271 * reg-stack.c (subst_stack_regs_pat): Use st(1) for clobbers.
2272 * i386.md (fpatan, fyl2x, fscale patterns and expanders): Use
2273 match_scratch; avoid bogus paralles.
2276 * i386.c (ix86_function_regparm): Disable implicit register passing
2277 conventions when profiling.
2279 2003-10-19 Eric Botcazou <ebotcazou@libertysurf.fr>
2280 Richard Henderson <rth@redhat.com>
2282 PR optimization/8178
2283 * config/i386/i386.md (*movsi_zero): Delete.
2284 (*ffs_no_cmove): Use ix86_expand_clear to zero the third operand.
2286 2003-10-19 Richard Henderson <rth@redhat.com>
2288 * config/alpha/alpha.c (fix_operator): New.
2289 (divmod_operator): Tidy.
2290 (alpha_emit_xfloating_cvt): Handle UNSIGNED_FIX.
2291 * config/alpha/alpha.h (FIXUNS_TRUNC_LIKE_FIX_TRUNC): Remove.
2292 (PREDICATE_CODES): Update.
2293 * config/alpha/alpha.md (fix_truncdfsi_ieee): Use match_operator.
2294 (fix_truncdfsi_internal, fix_truncdfdi_ieee): Likewise.
2295 (fix_truncsfsi_ieee, fix_truncsfsi_internal): Likewise.
2296 (fix_truncsfdi_ieee): Likewise.
2297 (fix_truncdfdi2, fix_truncsfdi2): Turn into define_expand.
2298 (fixuns_truncdfdi2, fixuns_truncsfdi2, fixuns_trunctfdi2): New.
2299 * config/alpha/alpha-protos.h: Update.
2301 2003-10-19 Richard Sandiford <rsandifo@redhat.com>
2303 * config/mips/mips.h (INITIALIZE_TRAMPOLINE): Simplify.
2304 * config/mips/mips.c (mips_load_got): Assume Pmode == ptr_mode.
2305 * config/mips/mips.md (extendsidi2, *extendsidi2): Merge. Don't accept
2308 2003-10-18 Kazu Hirata <kazu@cs.umass.edu>
2310 * doc/extend.texi: Fix typos.
2311 * doc/invoke.texi: Likewise.
2313 2003-10-18 Nicolas Pitre <nico@cam.org>
2315 * config/arm/arm.c (arm_override_options): Use arm_tune_xscale for
2316 XScale optimizations not arm_arch_xscale.
2317 * config/arm/arm.h (CONSTANT_ALIGNMENT_FACTOR, MOVE_RATIO): Likewise.
2319 2003-10-18 Ulrich Weigand <uweigand@de.ibm.com>
2321 * config/s390/s390-protos.h (shift_count_operand): Add prototype.
2322 * config/s390/s390.c (shift_count_operand): New function.
2323 (s390_extra_constraint): Use it to implement 'Y' constraint.
2324 (print_shift_count_operand): New function.
2325 (print_operand): Use it to implement '%Y'.
2326 * config/s390/s390.h (EXTRA_ADDRESS_CONSTRAINT): Add 'Y' constraint.
2327 (PREDICATE_CODES): Add shift_count_operand.
2328 * config/s390/s390.md ("rotldi3"): Merge alternatives,
2329 using "shift_count_operand" predicate and "Y" constraint,
2330 and "%Y" to output the combined shift count.
2331 ("rotlsi3"): Likewise.
2332 ("ashldi3", "*ashldi3_31", "*ashldi3_64"): Likewise.
2333 ("ashrdi3", "*ashrdi3_31", "*ashrdi3_64", "*ashrdi3_cc_31",
2334 "*ashrdi3_cc_64", "*ashrdi3_cconly_31", "*ashrdi3_cconly_64"): Likewise.
2335 ("ashlsi3", "ashrsi3", "*ashrsi3_cc", "*ashrsi3_cconly"): Likewise.
2336 ("lshrdi3", "*lshrdi3_31", "*lshrdi3_64"): Likewise.
2337 ("lshrsi3"): Likewise.
2339 2003-10-18 Gunther Nikl <gni@gecko.de>
2341 * config/m68k/m68k.c (m68k_output_function_epilogue): Add missing
2342 argument to asm_fprintf statement.
2344 2003-10-18 Fariborz Jahanian <fjahanian@apple.com>
2346 * rs6000.md: Separate TARGET_POWERPC64 patterns for TARGET_64BIT or TARGET_32BIT.
2347 (ashrdisi3_noppc64) Generate more efficient code for 32-bit right-shift of
2348 a "long long" argument.
2350 2003-10-18 Alexandre Oliva <aoliva@redhat.com>
2352 * final.c (final_scan_insn): Run FINAL_PRESCAN_INSNS on asm insns
2355 2003-10-18 Richard Sandiford <rsandifo@redhat.com>
2357 * rtl.h (rtl_size): Declare.
2358 (rtunion): Remove rtwint.
2359 (rtx_def): Replace 'fld' with a union of an rtunion or a HOST_WIDE_INT.
2360 (RTX_HDR_SIZE, RTX_SIZE): New macros.
2361 (RTL_CHECK1): Adjust for new rtx_def layout.
2362 (RTL_CHECK2, RTL_CHECKC1, RTL_CHECKC2): Likewise.
2363 (XWINT, XCWINT): Likewise. Access the rtx structure directly.
2366 * rtl.def: Adjust comments for new rtx_def layout.
2367 * ggc.h (ggc_alloc_rtx): Take the rtx code as argument, not the
2369 * rtl.c (rtx_size): New array.
2370 (rtx_alloc): Adjust call to ggc_alloc_rtx. Use RTX_HDR_SIZE.
2371 (copy_rtx): Use RTX_HDR_SIZE. Adjust for new rtx_def layout.
2372 (shallow_copy_rtx): Adjust call to ggc_alloc_rtx. Use RTX_SIZE.
2373 * integrate.c (copy_rtx_and_substitute): Use X0ANY to copy '0' fields.
2374 * emit-rtl.c (copy_most_rtx): Likewise.
2375 (copy_rtx_if_shared): Use RTX_SIZE.
2376 (copy_insn_1): Use RTX_HDR_SIZE. Adjust for new rtx_def layout.
2377 * gengenrtl.c (gendef): Adjust ggc_alloc_rtx call. Use RTX_HDR_SIZE.
2378 * gengtype.c (write_rtx_next): Use RTX_HDR_SIZE.
2379 (adjust_field_rtx_def): Expect "rtx_def" to be a union rather than
2380 an array. Adjust output for new rtx_def layout.
2381 * ggc-page.c (RTL_SIZE): Use RTX_HDR_SIZE.
2382 * reload1.c (eliminate_regs): Use RTX_SIZE.
2383 * rtlanal.c (loc_mentioned_in_p): Adjust for new rtx_def layout.
2384 * gdbinit.in (pi): Likewise.
2386 2003-10-18 Jan Hubicka <jh@suse.cz>
2388 * integrate.c (copy_decl_for_inlining): Revert previous patch.
2390 2003-10-18 Jan Hubicka <jh@suse.cz>
2392 * integrate.c (copy_decl_for_inlining): Fix copying of copies.
2394 2003-10-18 Roger Sayle <roger@eyesopen.com>
2396 * libgcc.texi: Group multi-word types, such as "long double" and
2397 "unsigned int", using braces in @deftypefn and @deftypefnx nodes.
2398 Document __unord?f2 as returning a non-zero value, not just one.
2400 2003-10-18 Hans-Peter Nilsson <hp@bitrange.com>
2402 * config/mmix/t-mmix (CRTSTUFF_T_CFLAGS): Define.
2403 ($(T)crti.o, $(T)crtn.o): Pass CRTSTUFF_T_CFLAGS here too.
2405 2003-10-18 Eric Botcazou <ebotcazou@libertysurf.fr>
2407 * config/i386/k6.md (k6_alux): Use the 'mode' attribute instead of
2410 2003-10-18 Eric Botcazou <ebotcazou@libertysurf.fr>
2412 * config/sparc/sparc.c (function_arg_record_value_1): New fourth
2413 parameter packed_p. Search for a DECL_PACKED field only if
2414 packed_p is false. Pass packed_p recursively.
2415 (function_arg_record_value_2): Likewise.
2416 (function_arg_record_value): Update calls to
2417 function_arg_record_value_1 and function_arg_record_value_2.
2419 2003-10-18 Eric Botcazou <ebotcazou@libertysurf.fr>
2421 * cse.c (cse_insn) [src_folded]: Check that the tentative replacement
2422 was successfully forced to memory before using the result.
2424 2003-10-18 Eric Botcazou <ebotcazou@libertysurf.fr>
2426 PR optimization/8178
2427 * config/i386/i386.md (*movsi_zero): New insn to set
2428 a register to zero on TARGET_USE_MOV0 targets.
2430 2003-10-18 Kelley Cook <kcook@gcc.gnu.org>
2432 * Makefile.in (Makefile): Depend on the all Make-lang.in fragments.
2433 (POSTSTAGE1_FLAGS_TO_PASS): Pass down MAKEINFO and MAKEINFOFLAGS.
2435 2003-10-17 David Edelsohn <edelsohn@gnu.org>
2437 * doc/invoke.texi (gcse-las): Fix typo.
2439 2003-10-17 Andrew Pinski <pinskia@physics.uc.edu>
2441 * doc/install.texi: Remove first part of the sentence for
2442 zsh not working. Change gcc to GCC.
2445 * doc/install.texi: Document that zsh does not work when
2448 2003-10-17 Nathanael Nerode <neroden@gcc.gnu.org>
2450 * config/ptx4.h: Switch to DWARF 2; update comments.
2452 2003-10-17 Segher Boessenkool <boessen@de.ibm.com>
2453 Hartmut Penner <hpenner@de.ibm.com>
2455 PR 10404, partial 11591, partial 11601
2456 * config/rs6000/altivec.md ("altivec_dst", "altivec_dstt",
2457 "altivec_dstst", "altivec_dststt", "altivec_lvsl", "altivec_lvsr",
2458 "altivec_lvebx", "altivec_lvehx", "altivec_lvewx", "altivec_lvxl",
2459 "altivec_lvx", "altivec_stvx", "altivec_stvxl", "altivec_stvebx",
2460 "altivec_stvehx", "altivec_stvewx"): Use a memory_operand.
2461 * config/rs6000/rs6000.c (altivec_expand_lv_builtin): New function.
2462 (altivec_expand_stv_builtin): Adjust for the memory_operand.
2463 (altivec_expand_builtin): Call altivec_expand_lv_builtin.
2464 (altivec_init_builtins): Use `long int' for memory offsets.
2466 2003-10-17 Jan Hubicka <jh@suse.cz>
2468 * opts.c (common_handle_option): Handle OPT_fweb
2469 * invoke.texi (-fweb): Add missing parts of documentation.
2471 2003-10-17 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2473 * config/mips/linux.h (FUNCTION_NAME_ALREADY_DECLARED): Undef
2474 before redefinition.
2476 2003-10-17 Mostafa Hagog <mustafa@il.ibm.com>
2478 * common.opt: Add description of the new -fgcse-las flag.
2479 * flags.h (flag_gcse_las): Declaration of global flag_gcse_las.
2480 * gcse.c (hash_scan_set): Handle the case of store expression and
2481 insert the memory expression to the hash table, this way we make it
2482 possible to discover redundant loads after stores and remove them.
2483 (pre_insert_copy_insn): moved the call to update_ld_motion_stores,
2484 to pre_insert_copies, it is not the correct place to call it after
2485 adding stores to be in the available expression hash table.
2486 (pre_insert_copies): Added the call to update_ld_motion_stores when
2487 one or more copies were inserted.
2488 * opts.c (common_handle_option): Handle the -fgcse-las flag.
2489 * toplev.c (flag_gcse_las): Initialization of flag_gcse_las.
2491 * doc/invoke.tex: Document new -fgcse-las flag.
2493 2003-10-18 Alan Modra <amodra@bigpond.net.au>
2495 * config/rs6000/crtsavres.asm: Correct alignment of powerpc64 code
2496 for posterity, then remove it.
2498 2003-10-17 Richard Earnshaw <rearnsha@arm.com>
2499 Nathan Sidwell <nathan@codesourcery.com>
2501 * config/arm/arm.c (use_return_insn): Not a single instruction, if
2502 there's a frame pointer.
2503 (arm_output_epilogue): Protect stack pointer from being corrupted
2506 2003-10-17 Ulrich Weigand <uweigand@de.ibm.com>
2508 * ifcvt.c (noce_try_addcc): Handle ifs with 'else' case.
2510 2003-10-17 Ulrich Weigand <uweigand@de.ibm.com>
2512 * combine.c (simplify_set): Do not clear out undobuf.other_insn
2513 already set elsewhere.
2515 2003-10-17 Kelley Cook <kcook@gcc.gnu.org>
2517 * config/i386/i386.c (ix86_expand_prologue): Use
2518 gen_allocate_stack_worker.
2520 2003-10-17 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2522 * config.gcc (mips-sgi-irix6*o32): Only enable use_collect2
2524 (mips-sgi-irix6*): Likewise.
2526 * config/mips/iris6gas.h: New file.
2527 * gcc/config.gcc (mips-sgi-irix6*): Use it.
2529 * config/mips/mips.h (TARGET_IRIX): Provide default.
2530 (TARGET_IRIX5): Likewise.
2531 (TARGET_SGI_O32_AS): Likewise.
2532 * config/mips/iris5.h (TARGET_IRIX): Redefine as 1.
2533 (TARGET_IRIX5): Likewise.
2534 * config/mips/iris6.h (TARGET_IRIX6): Remove.
2535 (TARGET_IRIX5): Redefine as 0.
2537 * config/mips/mips.c (mips_output_external): Test for IRIX 6 O32
2538 linker workaround with TARGET_IRIX and mips_abi instead of
2539 ASM_OUTPUT_UNDEF_FUNCTION.
2540 (mips_file_end): Inline old ASM_OUTPUT_UNDEF_FUNCTION definition,
2541 testing TARGET_IRIX and mips_abi explicitly.
2542 * config/mips/iris5.h (ASM_OUTPUT_UNDEF_FUNCTION): Remove.
2543 * config/mips/iris6.h (ASM_OUTPUT_UNDEF_FUNCTION): Remove undef.
2545 * config/mips/mips.c (irix_output_external_libcall): Renamed from
2546 mips_output_external_libcall.
2547 Use new TARGET_IRIX in guard.
2548 * config/mips/mips-protos.h (irix_output_external_libcall): Match
2550 * config/mips/iris5.h (TARGET_ASM_EXTERNAL_LIBCALL): Likewise.
2552 * config/mips/iris5gas.h (HAVE_GAS_SHF_MERGE): Update comment.
2555 * config/mips/iris6.h (FUNCTION_NAME_ALREADY_DECLARED): Define
2556 depending on mips_abi.
2557 * config/mips/linux.h (FUNCTION_NAME_ALREADY_DECLARED): Define as 1.
2558 * config/mips/mips.c (mips_output_function_prologue): Test
2559 FUNCTION_NAME_ALREADY_DECLARED at runtime.
2560 (mips_output_function_epilogue): Likewise.
2561 (build_mips16_function_stub): Likewise.
2562 (build_mips16_call_stub): Likewise.
2563 * config/mips/mips.h (FUNCTION_NAME_ALREADY_DECLARED): Provide
2566 * config/mips/iris6.h (DWARF2_UNWIND_INFO): Don't define for native
2567 IRIX 6 O32 assembler.
2568 (SUBTARGET_CC1_SPEC): Enforce mips2 ISA with O32 ABI.
2569 (TARGET_OS_CPP_BUILTINS): Define _ABIO32, use it to define
2570 _MIPS_SIM for O32 ABI.
2571 (DWARF2_FRAME_INFO): Don't define for native IRIX 6 O32 assembler.
2572 (ASM_DECLARE_FUNCTION_NAME): Integrate mips.h version.
2573 (ASM_DECLARE_FUNCTION_SIZE): Move undef before redefinition.
2574 Integrate O32 version.
2575 (SUBTARGET_ASM_SPEC): Handle -mabi=32.
2576 (SUBTARGET_ASM_DEBUGGING_SPEC): Add mdebug_asm_spec for gas with
2578 (BSS_SECTION_ASM_OP_32): Define.
2579 (BSS_SECTION_ASM_OP_64): Likewise.
2580 (BSS_SECTION_ASM_OP): Define differently for O32 and N32/N64 ABIs
2582 (TARGET_ASM_NAMED_SECTION): Reflect renaming.
2583 Move up to allow override for O32 ABI without GNU as.
2584 (EH_FRAME_SECTION_NAME): Define explicitly.
2585 (MUST_USE_SJLJ_EXCEPTIONS): Define.
2586 [_MIPS_SIM == _ABIO32 && !GAS] (CTORS_SECTION_ASM_OP,
2587 DTORS_SECTION_ASM_OP): Dummy definitions.
2588 (TARGET_ASM_NAMED_SECTION): Undef statically.
2589 (EH_FRAME_SECTION_NAME): Likewise.
2590 (ASM_OUTPUT_FILENAME): Integrate mips.h version.
2591 (LINK_SPEC): Only use default options -call_shared -no_unresolved
2593 Don't pass -init, -fini with -mabi=32.
2594 (COLLECT_PARSE_FLAG): Define.
2596 * config/mips/mips.c (iris6_asm_named_section_1): Changed guard to
2598 Renamed to use irix_ prefix.
2599 (iris6_asm_named_section): Likewise.
2600 (iris_section_align_entry_eq): Likewise.
2601 (iris_section_align_entry_hash): Likewise.
2602 (iris6_file_start): Likewise.
2603 (iris6_section_align_1): Likewise.
2604 (iris6_file_end): Likewise.
2605 (iris6_section_type_flags): Likewise.
2606 (iris_section_align_htab): Likewise.
2607 (iris_orig_asm_out_file): Likewise.
2608 [TARGET_IRIX] (TARGET_ASM_FILE_START): Reflect rename.
2609 (TARGET_ASM_FILE_END): Likewise.
2610 (TARGET_SECTION_TYPE_FLAGS): Likewise.
2612 * config/mips/mips.c [TARGET_IRIX5 && !TARGET_IRIX6]
2613 (TARGET_ASM_UNALIGNED_HI_OP): Use runtime initialization in
2614 override_options instead.
2615 (TARGET_ASM_UNALIGNED_SI_OP): Likewise.
2616 (TARGET_ASM_UNALIGNED_DI_OP): Likewise.
2617 * config/mips/mips.c (override_options) [USE_COLLECT2]: Restore
2618 flag_gnu_linker to defaults without USE_COLLECT2 for non-IRIX O32
2620 Likewise for constructor/destructor handling.
2621 (override_options): Handle IRIX O32 assembler quirks.
2622 [TARGET_IRIX] (irix_asm_named_section): Handle O32 ABI with and
2624 (mips_file_start): Use new TARGET_IRIX.
2625 (mips_declare_object_name): No special processing for IRIX O32
2627 (mips_finish_declare_object): Likewise.
2628 (irix_asm_output_align): Renamed from iris6_asm_output_align.
2629 Don't record alignment for O32 ABI.
2630 (irix_file_start): Renamed from iris6_file_start.
2631 Return early for O32 ABI.
2632 (irix_file_end): Renamed from iris6_file_end.
2633 Don't emit .section directives for O32 ABI.
2634 * config/mips/iris6.h (ASM_OUTPUT_ALIGN): Reflect renaming.
2635 * config/mips/mips-protos.h (irix_asm_output_align): Likewise.
2637 * config/mips/t-iris6 (MULTILIB_OPTIONS): Add mabi=32.
2638 (MULTILIB_OSDIRNAMES): Likewise.
2640 2003-10-17 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2642 * collect2.c (COLLECT_PARSE_FLAG): Provide default.
2644 * doc/tm.texi (COLLECT_PARSE_FLAG): Document it.
2646 2003-10-17 Richard Earnshaw <rearnsha@arm.com>
2648 * arm-modes.def (CC_Nmode): New condition code mode.
2649 * arm.c (thumb_condition_code): Delete.
2650 (arm_select_cc_mode): Handle single-bit test for Thumb.
2651 (arm_print_operand, cases 'd' and 'D'): Don't special case the
2652 condition code logic for Thumb.
2653 (get_arm_condition_code): Handle CC_Nmode.
2654 (thumb_cbrch_target_operand): New function.
2655 * arm.h (PREDICATE_CODES): Add thumb_cbrch_target_operand.
2656 * arm-protos.h (thumb_cbrch_target_operand): Add prototype.
2657 * arm.md: Add Thumb split patterns for zero_extract and
2659 (tbit_cbranch, andsi3_cbranch_scratch, andsi3_cbranch)
2660 (orrsi3_cbranch_scratch, orrsi3_cbranch, xorsi3_cbranch_scratch)
2661 (xorsi3_cbranch, addsi3_cbranch, addsi3_cbranch_scratch)
2662 (subsi3_cbranch, subsi3_cbranch_scratch): New Thumb patterns.
2663 (cbranchne_decr1): Re-work to use CC_Nmode.
2665 * arm.c (thumb_expand_epilogue): Add clobbers of registers restored
2666 by the return instruction. Add a use of the link register if it
2669 2003-10-17 Richard Earnshaw <rearnsha@arm.com>
2671 * flow.c (init_propagate_block_info): Don't abort if a conditional
2672 jump is not a comparison of a register. Instead, just don't record
2673 conditional life information.
2675 2003-10-16 Jan Hubicka <jh@suse.cz>
2677 PR optimization/12630
2678 * pa.md (movstrsi, movstrsi_internal): Use match_scratch in clobbers
2679 for operands 7 and 8.
2681 2003-10-16 Kelley Cook <kcook@gcc.gnu.org>
2683 * objc/Make-lang.in (objc-parse.o): Honor $(parsedir) for objc-parse.c.
2685 2003-10-16 Danny Smith <dannysmith@users.sourceforge.net>
2687 * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Define.
2689 * config/i386/winnt.c (gen_stdcall_suffix): Make static
2690 (gen_fastcall_suffix): Likewise.
2691 (i386_pe_dllexport_p): Likewise.
2692 (i386_pe_dllimport_p): Likewise.
2693 (i386_pe_mark_dllexport): Likewise.
2694 (i386_pe_mark_dllimport): Likewise.
2695 (i386_pe_asm_named_section): Fix formatting.
2697 2003-10-16 Zack Weinberg <zack@codesourcery.com>
2699 * configure.in: Add snprintf to gcc_AC_CHECK_DECLS list.
2700 * system.h: Declare snprintf if necessary.
2701 * configure, config.in: Regenerate.
2703 2003-10-15 David Edelsohn <edelsohn@gnu.org>
2705 * config/rs6000/rs6000.c (rs6000_va_arg): Only align vector
2706 arguments if TARGET_ALTIVEC_ABI.
2708 2003-10-15 Roger Sayle <roger@eyesopen.com>
2710 * builtins.c (fold_builtin_memcpy, fold_builtin_mempcpy,
2711 fold_builtin_memmove, fold_builtin_strcpy, fold_builtin_strncpy,
2712 fold_builtin_memcmp, fold_builtin_strcmp, fold_builtin_strncmp):
2714 (expand_builtin_memcpy): Use integer_zerop instead of testing
2715 host_integerp and tree_low_cst directly. Move misapplied hunk
2716 for optimization wher SRC and DEST point to the same location.
2717 (expand_builtin_mempcpy): From here.
2718 (expand_builtin_memmove): Use integer_zerop instead of testing
2719 host_integerp and tree_low_cst_directly.
2720 (expand_builtin_memset): Likewise.
2721 (expand_builtin_memcmp): Likewise (and for integer_onep).
2722 (expand_builtin_strncmp): Likewise.
2723 (fold_builtin): Call the appropriate fold_builtin_foo functions
2724 to optimize memcpy, mempcpy, memmove, strcpy, strncpy, memcmp,
2727 2003-10-15 Geoffrey Keating <geoffk@apple.com>
2729 * config/darwin-protos.h (machopic_non_lazy_ptr_name): Delete
2730 prototype. Clean up some whitespace.
2731 * config/darwin.c: Use gen_rtx_FOO (...) rather than
2733 (machopic_non_lazy_ptr_name): Make static.
2734 (name_needs_quotes): Allow '.' and '$' unquoted.
2735 (machopic_legitimize_pic_address): Improve codegen in dynamic-no-pic
2738 2003-10-15 Gábor Lóki <alga@rgai.hu>
2740 * fold-const.c (tree_swap_operands_p): Disable some features
2741 when optimizing for size.
2743 2003-10-15 David Daney <ddaney@avtrex.com>
2745 * config/mips/linux.h (MD_FALLBACK_FRAME_STATE_FOR): New
2746 * config/mips/mips.h (DWARF_FRAME_REGNUM): Fixed to allow unwind
2747 from leaf functions.
2748 (DWARF_FRAME_RETURN_COLUMN): Ditto.
2749 (SIGNAL_UNWIND_RETURN_COLUMN): New, used
2750 by MD_FALLBACK_FRAME_STATE_FOR.
2751 * testsuite/gcc.dg/cleanup-9.c: Added mips*-*-linux* target.
2753 2003-10-15 Zack Weinberg <zack@codesourcery.com>
2755 * genmodes.c: Include hashtab.h.
2756 (modes_by_name, hash_mode, eq_mode, struct mode_adjust)
2757 (adj_bytesize, adj_alignment, adj_format, new_adjust)
2758 (_ADD_ADJUST, ADJUST_BYTESIZE, ADJUST_ALIGNMENT, ADJUST_FORMAT)
2759 (print_maybe_const_decl, emit_mode_adjustments): New.
2760 (known_modes): Rename to modes.
2761 (find_mode): Kill class argument; look up in hash table.
2762 (new_mode): Insert into hash table also.
2764 (reset_float_format, make_partial_integer_mode)
2765 (make_vector_mode): Tweak error reporting.
2766 (reset_float_format): Correct type of fourth argument.
2767 (emit_insn_modes_h): Add #defines to help make mode_size,
2768 mode_base_align, and real_format_for_mode conditionally const.
2769 (emit_mode_size, emit_mode_base_align): Use print_maybe_const_decl.
2770 (emit_real_format_for_mode): Likewise, but temporarily disabled.
2771 (emit_insn_modes_c): Call emit_mode_adjustments.
2772 (main): Initialize modes_by_name.
2773 * Makefile.in: Update dependencies.
2774 * machmode.def: Document EXPR arguments and new ADJUST_* statements.
2775 * machmode.h: Use CONST_MODE_SIZE and CONST_MODE_BASE_ALIGN in
2776 declarations of mode_size and mode_base_align. Declare
2777 init_adjust_machine_modes.
2778 * toplev.c (backend_init): Call init_adjust_machine_modes.
2780 2003-10-15 Olivier Hainque <hainque@act-europe.fr>
2782 * genmodes.c (calc_wider_mode): Allocate enough room for all the
2783 entries we'll possibly assign in the sort buffer.
2785 2003-10-15 Ulrich Weigand <uweigand@de.ibm.com>
2787 * config.gcc (s390x-ibm-tpf*): New target.
2788 * doc/install.texi: Document it.
2789 * config/s390/t-tpf: New file.
2790 * config/s390/tpf.h: New file.
2792 2003-10-15 Hans-Peter Nilsson <hp@axis.com>
2795 * config/cris/cris.md (define_split "*mov_sidesi_biap_mem"+1)
2796 (define_splits "*mov_sidesi_mem"+1, "casesi"+9, +10, +11, +12):
2797 Use cris_mem_op and replace_equiv_address, not gen_rtx_MEM.
2798 ("call", "call_value", define_split "*mov_sidesi_mem"+19, +20)
2799 (define_split "*mov_sidesi_mem"+21, +22, +23, +24, +25, +26, +27)
2800 (define_split "*mov_sidesi_mem"+28, +29, +30): Use
2801 replace_equiv_address, not gen_rtx_MEM.
2802 * config/cris/cris.c (cris_mem_op): New match_operator function.
2803 (cris_notice_update_cc): Use replace_equiv_address, not
2805 * config/cris/cris.h (PREDICATE_CODES): Add cris_mem_op.
2807 2003-10-15 Bernardo Innocenti <bernie@develer.com>
2809 * config/m68k/m68k.h (MASK_SEP_DATA, TARGET_SEP_DATA,
2810 MASK_ID_SHARED_LIBRARY, TARGET_ID_SHARED_LIBRARY): Move
2811 definitions after the other flags.
2813 2003-10-14 Ziemowit Laski <zlaski@apple.com>
2815 * c-parse.in (methoddef, methodproto): Call objc_add_method()
2816 instead of add_method().
2817 * objc/objc-act.c (objc_check_decl): Do not check for
2818 constant_string_type.
2819 (add_method): Rename to objc_add_method().
2820 (really_start_method): Call objc_add_method() instead of
2822 * objc/objc-act.h (add_method): Rename to objc_add_method().
2824 2003-10-14 Ulrich Weigand <uweigand@de.ibm.com>
2826 * config/s390/s390-protos.h (s390_alc_comparison): Add prototype.
2827 (s390_slb_comparison): Likewise.
2828 * config/s390/s390.c (s390_alc_comparison, s390_slb_comparison):
2830 * config/s390/s390.h (PREDICATE_CODES): Add s390_alc_comparison
2831 and s390_slb_comparison.
2832 * config/s390/s390.md ("*adddi3_31", "*subdi3_31"): Do not use on
2834 ("*adddi3_31z", "*subdi3_31z"): New insns.
2835 ("*adddi3_alc_cc", "*adddi3_alc", "*subdi3_slb_cc", "*subdi3_slb",
2836 "*addsi3_alc_cc", "*addsi3_alc", "*subsi3_slb_cc", "*subsi3_slb"):
2839 2003-10-14 Nathanael Nerode <neroden@gcc.gnu.org>
2841 * configure.in: Clean up some feedback echoes.
2842 * configure: Regenerate.
2844 * aclocal.m4: Properly quote names of macros being defined.
2846 * config.gcc (am33_2.0-*-linux*): Use t-slibgcc-elf-ver.
2848 2003-10-14 Steve Ellcey <sje@cup.hp.com>
2850 * config/ia64/ia64.c (ia64_expand_call): Force function address
2852 * config/ia64/ia64.md (call_gp): Put DImode on operand 0.
2854 2003-10-14 Ulrich Weigand <uweigand@de.ibm.com>
2856 * config/s390/s390.md ("muldf3", "*muldf3", "*muldf3_ibm",
2857 "mulsf3", "*mulsf3", "*mulsf3_ibm"): Do not clobber CC.
2858 ("divdf3", "*divdf3", "*divdf3_ibm", "divsf3", "*divsf3",
2859 "*divsf3_ibm"): Likewise.
2861 2003-10-14 Nathanael Nerode <neroden@gcc.gnu.org>
2863 * config.gcc, config/m68hc11/t-m68hc11-gas: Replace uses of
2864 target_alias with target_noncanonical.
2866 2003-10-14 Geoffrey Keating <geoffk@apple.com>
2868 * expr.c (block_move_libcall_safe_for_call_parm): Clean up,
2869 and add case for machines where outgoing register parameters
2872 * config/darwin.c (machopic_indirect_data_reference): Use a scratch
2873 register when generating indirect address.
2875 2003-10-14 Richard Earnshaw <rearnsha@arm.com>
2877 * arm.c (arm_addimm_operand): MODE arguemnt is unused.
2878 * arm.md (cbranchne_decr1): Fix bootstrap warning.
2880 2003-10-14 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2882 * fixinc/inclhack.def (alpha_pthread_gcc): New fix.
2883 * fixinc/fixincl.x: Regenerate.
2884 * fixinc/tests/base/pthread.h [ALPHA_PTHREAD_GCC_CHECK]: New
2886 Fixes PR bootstrap/9330.
2888 2003-10-13 Eric Christopher <echristo@redhat.com>
2890 * config/frv/frv.c (frv_adjust_field_align): Redo check for
2892 (frv_hard_regno_mode_ok): Add SPR_P and AP_FIRST.
2893 * config/frv/frv.h (FUNCTION_PROFILER): Remove abort call.
2894 (SBSS_SECTION_ASM_OP): Remove.
2895 (EXTRA_SECTIONS): Remove in_sbss.
2896 (EXTRA_SECTION_FUNCTIONS): Remove SBSS_SECTION_FUNCTION.
2897 (SBSS_SECTION_FUNCTION, sbss_section): Remove.
2898 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Change sbss_section to
2901 2003-10-13 Nathanael Nerode <neroden@gcc.gnu.org>
2903 * Makefile.in, configure.in, config.host, mkheaders.in: Replace
2904 uses of ${target_alias} for directory names (and other places which
2905 won't like the empty string) with ${target_noncanonical}. Introduce
2906 call early in configure.in to _GCC_TOPLEV_NONCANONICAL_TARGET so it's
2908 * configure: Regenerate.
2910 2003-10-13 Ian Lance Taylor <ian@wasabisystems.com>
2912 * config/arm/iwmmxt.md (cond_iwmmxt_movsi_insn): New pattern.
2913 * config/arm/arm.md: For splits which rely on conditional moves,
2914 remove ! TARGET_IWMMXT condition.
2916 2003-10-13 David S. Miller <davem@redhat.com>
2918 * ifcvt.c (num_removed_blocks): Rename to num_true_changes.
2919 (find_cond_trap): Always increment if we emit a conditional
2922 2003-10-13 Zack Weinberg <zack@codesourcery.com>
2924 * Makefile.in (BUILD_RTL): Replace $(BUILD_PREFIX)insn-modes.o
2925 with min-insn-modes.o.
2926 (STAGESTUFF): Add min-insn-modes.c.
2927 (genobjs): Add genmodes.o.
2928 (print-rtl.o, print-rtl1.o): Depend on $(TM_P_H).
2929 (insn-modes.o): Depend on $(TM_H) not $(GTM_H); also real.h.
2930 (min-insn-modes.c, min-insn-modes.o): New rules.
2931 (s-modes): Also generate min-insn-modes.c.
2932 ($(BUILD_PREFIX_1)insn-modes.o): Kill.
2933 * genmodes.c (struct mode_data): Add format field.
2934 (blank_mode, validate_mode, complete_mode): Update to match.
2935 (make_scalar_mode): Separate into make_int_mode and make_float_mode.
2936 (_SCALAR_MODE): Kill.
2937 (FLOAT_MODE, FRACTIONAL_FLOAT_MODE): Add format argument.
2938 (emit_insn_modes_c_header): Adjust.
2939 (emit_min_insn_modes_c_header, emit_real_format_for_mode)
2940 (emit_min_insn_modes_c): New functions.
2941 (emit_insn_modes_c): Call emit_real_format_for_mode.
2942 (main): Add -m option to generate min-insn-modes.c.
2943 * machmode.h: Update documentation. Add format argument to
2944 all uses of FLOAT_MODE.
2945 * real.c: Don't define real_format_for_mode here.
2947 * dwarfout.c: Move default definition of PRINT_REG...
2948 * defaults.h: ...here.
2949 * print-rtl.c: Include tm_p.h.
2950 (DEBUG_PRINT_REG, DEBUG_REGISTER_NAMES, debug_reg_names, reg_names):
2952 (print_rtx): Use PRINT_REG, not DEBUG_PRINT_REG. But surround
2953 this entire block with #ifndef GENERATOR_FILE.
2954 * regclass.c: Unconditionally define reg_names.
2955 * config/mips/mips.h, config/rs6000/rs6000.h, config/sh/sh.h
2956 Don't define DEBUG_REGISTER_NAMES.
2957 * config/rs6000/darwin.h: Don't use DEBUG_REGISTER_NAMES in
2958 redefinition of REGISTER_NAMES.
2959 * config/i386/i386.h: Don't define DEBUG_PRINT_REG.
2961 * combine.c: Change all preprocessor conditionals on
2962 EXTRA_CC_MODES to use SELECT_CC_MODE instead; rearrange a bit
2964 * genopinit.c: Remove mention of EXTRA_CC_MODES in comment.
2965 * configure.in: Don't define EXTRA_CC_MODES.
2966 * configure, config.in: Regenerate.
2967 * doc/tm.texi: Remove documentation of EXTRA_CC_MODES.
2969 * config/arc/arc.c, config/m32r/m32r.c, config/sparc/sparc.c:
2970 May assume that GET_MODE_CLASS is accurate for extra CC modes
2973 * config/i860/i860.h (INIT_CUMULATIVE_ARGS): Pass correct
2974 number of arguments to aggregate_value_p.
2976 * genmodes.c (RESET_FLOAT_FORMAT, reset_float_format): New.
2977 * machmode.def: Explain ARCH-modes.def. Document
2978 RESET_FLOAT_FORMAT. Improve commentary on various mode
2979 clusters. Do not define OI, PQI, PHI, PSI, PDI, QF, HF, TQF,
2980 XF, or TF modes here. Remove backward-compatibility
2983 * config/alpha/alpha-modes.def: New file; define TF mode.
2984 * config/arc/arm-modes.def: Define XF mode.
2985 * config/c4x/c4x-modes.def: Define QF and HF modes. Unset
2986 float format for SF and DF modes.
2987 * config/dsp16xx/dsp16xx-modes.def: New file; define HF mode.
2988 * config/i386/i386-modes.def: Define XF and TF modes.
2989 * config/i960/i960-modes.def: Define TF mode.
2990 * config/ia64/ia64-modes.def: Define TF and OI modes.
2991 * config/m68k/m68k-modes.def: New file; define XF mode.
2992 * config/mips/mips-modes.def: New file; define TF mode, reset
2993 formats for SF and DF modes.
2994 * config/pa/pa-modes.def: Define TF mode.
2995 * config/rs6000/rs6000.c: Define TF and PSI modes.
2996 * config/s390/s390-modes.def: Define OI mode.
2997 * config/sh/sh-modes.def: New file; define PSI mode.
2998 * config/sparc/sparc-modes.def: Define TF mode.
2999 * config/vax/vax-modes.def: New file; reset formats for SF and
3002 * config/c4x/c4x.c (c4x_override_options): No need to mess
3003 with real_format_for_mode or set REAL_MODE_FORMATs.
3004 (c4x_immed_int_constant): Don't apply GET_MODE_CLASS to rtx
3006 * config/i386/i386.c (override_options): No need to set
3007 REAL_MODE_FORMATs here.
3008 * config/i960/i960.c (i960_initialize): Likewise.
3009 * config/m68k/m68k.c (m68k_override_options): Likewise.
3010 * config/ia64/ia64.c (ia64_override_options): Set REAL_MODE_FORMAT
3011 for TFmode only if not the default.
3012 * config/mips/mips.c (override_options): Likewise.
3013 * config/vax/vax.c (override_optionms): Set REAL_MODE_FORMAT for
3014 DFmode only if not the default.
3016 * config/i370/i370.h (RET_REG): Don't consider TFmode.
3017 * config/m68hc11/m68hc11.c (print_operand): Don't consider XFmode.
3018 * config/dsp16xx/dsp16xx.c (hard_regno_mode_ok): #if 0 out use
3019 of modes that don't appear anywhere in the machine description.
3021 * config/arc/arc-modes.def, config/arm/arm-modes.def
3022 * config/c4x/c4x-modes.def, config/frv/frv-modes.def
3023 * config/i386/i386-modes.def, config/i960/i960-modes.def
3024 * config/ia64/ia64-modes.def, config/mmix/mmix-modes.def
3025 * config/pa/pa-modes.def, config/pdp11/pdp11-modes.def
3026 * config/rs6000/rs6000-modes.def, config/s390/s390-modes.def
3027 * config/sparc/sparc-modes.def: Convert to new style for
3028 declaring extra CC modes.
3030 2003-10-13 Zack Weinberg <zack@codesourcery.com>
3032 * cpplex.c (_cpp_clean_line): In the common case of a line
3033 with no trigraphs and no \-newline, avoid writing to memory.
3034 (_cpp_skip_block_comment): Use a local 'cur' pointer instead
3035 of the buffer member. Make c an uchar to avoid unnecessary
3038 2003-10-13 Nathanael Nerode <neroden@gcc.gnu.org>
3040 * configure.in: Remove unnecessary test.
3041 * configure: Regenerate.
3043 * configure.in: Fix grammatical error. Move UWIN host error to...
3044 * config.host: Here.
3045 * configure: Regenerate.
3047 2003-10-13 Andreas Krebbel <krebbel1@de.ibm.com>
3049 * config/s390/s390.md ("*fmadddf4", "*fmsubdf4", "*fmaddsf4",
3050 "*fmsubsf4"): Insns are now dependent on TARGET_FUSED_MADD instead
3051 of flag_unsafe_math_optimizations.
3052 * config/s390/s390.h ("MASK_NO_FUSED_MADD", "TARGET_NO_FUSED_MADD",
3053 "TARGET_FUSED_MADD", "TARGET_SWITCHES"): Introduced new target flags
3054 fused-madd and no-fused-madd.
3055 * doc/invoke.texi: Documented the new options fused-madd and
3056 no-fused-madd for S/390.
3058 2003-10-14 Alan Modra <amodra@bigpond.net.au>
3060 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Choose
3061 MASK_ALIGN_NATURAL if rs6000_alignment_string not given. Don't
3063 (ADJUST_FIELD_ALIGN, ROUND_TYPE_ALIGN): Update comment.
3064 * config/rs6000/rs6000.c: Formatting.
3065 (rs6000_parse_alignment_option): Only set rs6000_alignment_flags
3066 when rs6000_alignment_string given.
3068 2003-10-13 Eric Botcazou <ebotcazou@libertysurf.fr>
3071 * config/sparc/sparc.c (MUST_SAVE_REGISTER): Delete.
3072 (sparc_flat_must_save_register_p): New function to decide whether
3073 a register must be saved/restored in the function prologue/epilogue.
3074 (sparc_flat_compute_frame_size): Use it instead of MUST_SAVE_REGISTER.
3076 2003-10-12 Steven Bosscher <steven@gcc.gnu.org>
3078 * config/avr/avr.c, config/avr/avr-protos.h: Convert to
3079 ISO C90 function declarations and definitions.
3080 * config/sh/sh.c, config/sh/sh-protos.h: Likewise.
3082 2003-10-12 Nathanael Nerode <neroden@gcc.gnu.org>
3084 * config.gcc (*-*-freebsd*): Use tm_defines instead of tiny
3085 config files which do the same thing.
3086 * config/freebsd3.h, config/freebsd4.h, config/freebsd5.h,
3087 config/freebsd6.h: Remove now unnecessary files.
3089 2003-10-12 Steven Bosscher <steven@gcc.gnu.org>
3091 * c-common.c (c_common_truthvalue_conversion): Warn if the
3092 address of a non-weak function is used as a truth value.
3094 2003-10-12 Kazu Hirata <kazu@cs.umass.edu>
3096 * config/h8300/h8300.c (WORD_REG_USED): Use SP_REG instead of
3098 * config/h8300/h8300.h (REGNO_OK_FOR_BASE_P): Use MAC_REG
3099 instead of a literal.
3101 2003-10-12 Hans-Peter Nilsson <hp@bitrange.com>
3103 * doc/extend.texi (Function Attributes): Mention the exceptional
3104 path for noreturn-marked functions.
3106 2003-10-12 Jan Hubicka <jh@suse.cz>
3108 * cgraphunit.c (cgraph_decide_inlining): Fix uninitialized variable
3111 2003-10-12 Danny Smith <dannysmith@users.sourceforge.net>
3113 * config/i386/i386.c (x86_this_parameter): Fix typo.
3115 2003-10-11 Jan Hubicka <jh@suse.cz>
3117 * Makefile.in (web.o): New.
3119 * rtl.h (web_main): Declare.
3120 * timervar.def (TV_WEB): New.
3121 * toplev.c (dump_file_index, dump_file_info): Add DFI_web.
3122 (rest_of_hanle_web): New.
3123 (flag_web): New static variable.
3124 (lang_independent_options): Add "web".
3125 (rest_of_compilation): Call rest_of_handle_web.
3126 * invoke.texi (-fweb): Document.
3127 * common.opt (fweb): New.
3128 * flags.h (flag_web): New.
3129 * opts.c (decode_options): Set flag_web at -O3.
3131 * passes.texi (web construction): Document.
3132 * invoke.texi (-O3): Document that -fweb is enabled.
3134 * regrename.c (regrename_optimize): Deal better with situation when
3137 * sched-ebb.c: Include params.h and profile.h
3138 (schedule_ebbs): Use tracer parameters to discover superblocks
3139 * Makefile.in (sched-ebb.o): Add dependencies.
3141 2003-10-11 Roger Sayle <roger@eyesopen.com>
3143 * fold-const.c (negate_mathfn_p): New function to determine whether
3144 a built-in mathematical function is sign preserving, f(-x) == -f(x).
3145 Add support for BUILT_IN_ASIN, BUILT_IN_ASINF and BUILT_IN_ASINL.
3146 (tree_swap_operands_p): Change API to take an additional argument
3147 indicating that the swapped operands evaluate in reverse order.
3148 Canonicalize VAR_DECLs and PARM_DECLs last if we can, i.e. neither
3149 operand side-effects or we don't care about flag_evaluation_order.
3150 (reorder_operands_p): New function to check whether its safe to
3151 evaluate the given operands in reverse order.
3152 (negate_expr_p): We can always negate integer constants unless
3153 we honor -ftrapv and the signed type would overflow. Only allow
3154 -(A-B) into B-A if reorder_operands_p says that its OK. Allow
3155 negation of COMPLEX_CST if both real and imaginary parts can be
3156 negated. Allow negation through floating point extensions and
3157 sign-preserving built-in functions.
3158 (negate_expr): Move the code to negate integers from "fold" to
3159 here. Always negate integer constants unless we honor -ftrapv
3160 and the signed type would overflow. Always negate real constants
3161 unless we honor -ftrapping-math. Only convert -(A-B) into B-A
3162 if allowed by reorder_operands_p. Add support for COMPLEX_CST.
3163 Optimize negation through floating point extensions and
3164 sign-preserving built-in functions (as defined by negate_mathfn_p).
3165 (fold): Adjust calls to tree_swap_operands_p.
3166 (fold <NEGATE_EXPR>): Move the remaining negation optimizations
3167 to negate_expr_p/negate_expr.
3168 (fold <MINUS_EXPR>): Use reorder_operands_p to check whether we're
3169 allowed to convert (-A) - B into (-B) - A.
3171 2003-10-11 Roger Sayle <roger@eyesopen.com>
3173 * builtins.c (expand_builtin_strcmp): Defend against the possibility
3174 that gen_cmpstrsi may fail: Stabilize the argument list against
3175 re-evaluation and expand the library call directly using this saved
3176 argument list if a cmpstrsi sequence can't be generated.
3177 (expand_builtin_strncmp): Likewise.
3179 * config/i386/i386.md (cmpstrsi, movstrsi): Disable with -Os.
3181 2003-10-11 Roger Sayle <roger@eyesopen.com>
3183 PR optimization/12260
3184 * simplify-rtx.c (simplify_unary_operation): Simplify all unary
3185 operations through CONST nodes. Optimize (neg (plus X C)) as
3186 (minus -C X) for constant values C.
3187 (simplify_binary_operation): Optimize (minus (neg X) C) as
3188 (minus -C X) for constant values C.
3189 (simplify_plus_minus): Avoid creating (neg (const (plus X C)),
3190 instead create (minus -C X).
3192 2003-10-11 Roger Sayle <roger@eyesopen.com>
3194 * expr.c (expand_expr <PLUS_EXPR>): Let expand_operands call
3195 safe_from_p for us, once it chooses an evaluation order.
3196 (expand_expr <MULT_EXPR>): Likewise.
3197 (expand_expr <MIN_EXPR> <MAX_EXPR>): Likewise. If expand_operands
3198 places the second operand in "target", swap the operands.
3199 (do_store_flag): Let expand_operands call safe_from_p for us.
3201 2003-10-11 Eric Botcazou <ebotcazou@libertysurf.fr>
3203 PR optimization/12544
3204 * function.c (put_var_into_stack): Don't generate ADDRESSOFs
3205 for DECL_NONLOCAL decls.
3207 2003-10-11 Kazu Hirata <kazu@cs.umass.edu>
3209 * expr.c: Follow spelling conventions.
3210 * final.c: Likewise.
3211 * optabs.c: Likewise.
3212 * sched-deps.c: Likewise.
3213 * sdbout.c: Likewise.
3215 Sat Oct 11 12:24:23 CEST 2003 Jan Hubicka <jh@suse.cz>
3217 * varasm.c (notice_global_symbol): Fix handling of variables; avoid
3218 re-computing of variable.
3220 2003-10-11 Richard Henderson <rth@redhat.com>
3222 * config/alpha/alpha.c (alpha_return_in_memory): Rename from
3223 return_in_memory, make static, change signature to match target hook.
3224 (alpha_setup_incoming_varargs): Make static, change signature to
3225 match target hook, add code for vms and unicos.
3226 (TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN,
3227 TARGET_PROMOTE_PROTOTYPES, TARGET_STRUCT_VALUE_RTX,
3228 TARGET_RETURN_IN_MEMORY, TARGET_SETUP_INCOMING_VARARGS,
3229 TARGET_STRICT_ARGUMENT_NAMING,
3230 TARGET_PRETEND_OUTGOING_VARARGS_NAMED): New.
3231 * config/alpha/alpha-protos.h: Update.
3232 * config/alpha/alpha.h (PROMOTE_FUNCTION_ARGS,
3233 PROMOTE_FUNCTION_RETURN, RETURN_IN_MEMORY,
3234 SETUP_INCOMING_VARARGS): Remove.
3235 * config/alpha/unicosmk.h (SETUP_INCOMING_VARARGS): Remove.
3236 * config/alpha/vms.h (SETUP_INCOMING_VARARGS): Remove.
3238 2003-10-11 Ian Lance Taylor <ian@wasabisystems.com>
3240 * config/arm/arm.c (arm_regno_class): Handle IWMMXT_GR_REGS.
3242 2003-10-11 Kazu Hirata <kazu@cs.umass.edu>
3244 * config/m68k/lb1sf68.asm: Follow spelling conventions.
3245 * config/m68k/m68k.c: Likewise.
3246 * config/m68k/m68k.h: Likewise.
3247 * config/m68k/m68k.md: Likewise.
3249 2003-10-11 Roger Sayle <roger@eyesopen.com>
3251 * builtins.c (expand_builtin_memcpy): Optimize case when the two
3252 pointer arguments are the equal, non-volatile and side-effect free.
3253 (expand_builtin_mempcpy): Likewise.
3254 (expand_builtin_memmove): Likewise.
3255 (expand_builtin_strcpy): Likewise.
3256 (expand_builtin_memcmp): Likewise.
3257 (expand_builtin_strcmp): Likewise.
3258 (expand_builtin_strncmp): Likewise.
3260 2003-10-11 Roger Sayle <roger@eyesopen.com>
3262 * combine.c (apply_distributive_law): Enable "distributive" floating
3263 point optimizations with -funsafe-math-optimizations.
3265 2003-10-11 Andrew Pinski <pinskia@physics.uc.edu>
3267 * genmodes.c (emit_mode_mask) Change MASK to MODE_MASK.
3269 2003-10-11 Kazu Hirata <kazu@cs.umass.edu>
3271 * config/m68k/m68k-protos.h: Remove the prototype for
3274 2003-10-11 Kazu Hirata <kazu@cs.umass.edu>
3276 * config/m68k/m68k.c: Fix comment typos.
3278 2003-10-11 Bernardo Innocenti <bernie@develer.com>
3280 * config/m68k/m68k-protos.h (use_return_insn): Change return type from
3282 * config/m68k/m68k.c (struct m68k_frame): Add funcdef_no member.
3283 (current_frame): New global var.
3284 (m68k_compute_frame_layout): Cache computations in current_frame.
3285 (m68k_initial_elimination_offset): Use values from current_frame
3286 instead of recomputing them.
3287 (use_return_insn): Likewise.
3288 (m68k_output_function_prologue): Likewise.
3289 (m68k_output_function_epilogue): Likewise.
3290 * config/m68k/m68k.h (TARGET_CPU_CPP_PREDEFINES): Fold __PIC__ handling
3291 inside the block for __pic__.
3293 2003-10-11 Peter Barada <peter@baradas.org>
3294 Bernardo Innocenti <bernie@develer.com>
3296 * config/m68k/m68k.c (m68k_frame): Move before protos referencing it.
3297 (m68k_save_reg): Add boolean parameter `interrupt_handler'.
3298 (m68k_interrupt_function_p): New function.
3299 (m68k_handle_fndecl_attribute): Ditto.
3300 (m68k_compute_frame_layout): Ditto.
3301 (m68k_attribute_table): Define back-end specific attributes.
3302 (m68k_output_function_epilogue): Emit RTE instruction for interrupt
3305 2003-10-11 Bernardo Innocenti <bernie@develer.com>
3307 * config/m68k/t-uclinux: New target Makefile fragment.
3308 * config/m68k/uclinux.h: New target macro file.
3309 * config.gcc (m68k-*-uclinux): New target definition.
3311 2003-10-10 Roger Sayle <roger@eyesopen.com>
3313 * builtins.c (builtin_mathfn_code): Generalize to check whether
3314 the call is to any built-in function by comparing the call's
3315 argument list against the builtin decl's function type.
3317 2003-10-10 Roger Sayle <roger@eyesopen.com>
3319 * cse.c (constant_pool_entries_regcost): New global variable to
3320 hold the register cost component of constant_pool_entries_cost.
3321 (fold_rtx): Calculate constant_pool_entries_regcost at the same
3322 time as constant_pool_entries_cost.
3323 (cse_insn): Set both src_folded_cost and src_folded_regcost from
3324 constant_pool_entries_cost and constant_pool_entries_regcost.
3325 (cse_main): Initialize constant_pool_entries_regcost to zero.
3327 * optabs.c (expand_unop): Attach a REG_EQUAL note describing
3328 the semantics of the sequence of bit operations used to negate
3329 a floating-point value.
3330 (expand_abs_nojump): Likewise attach a REG_EQUAL note describing
3331 the semantics of the bit operations used to abs a floating point
3334 2003-10-11 Bernardo Innocenti <bernie@develer.com>
3335 Paul Dale <pauli@snapgear.com>
3337 * config/m68k/lb1sf68.asm: Add __PIC__ and __ID_SHARED_LIBRARY__
3339 * config/m68k/m68k-none.h (ASM_SPEC): Pass --pcrel to assembler on
3340 -fpic, -fPIC, -msep-data and -mid-shared-library.
3341 * config/m68k/m68k.c (m68k_library_id_string): New global variable.
3342 (override_options): Add -msep-data and -mshared-library-id support.
3343 (m68k_output_function_prologue): Generate code to load A5 for
3344 TARGET_ID_SHARED_LIBRARY and TARGET_SEP_DATA.
3345 (m68k_output_mi_thunk): Emit indirect jump on TARGET_ID_SHARED_LIBRARY.
3346 (m68k_output_pic_call): New function.
3347 * gcc/config/m68k/m68k.h (TARGET_SEP_DATA): New target flag.
3348 (TARGET_ID_SHARED_LIBRARY): Ditto.
3349 (TARGET_SWITCHES): Add switches for -mid-shared-library and -msep-data.
3350 * gcc/config/m68k/m68k.md (call): Call m68k_output_pic_call().
3351 (call_value): Likewise.
3353 2003-10-10 Zack Weinberg <zack@codesourcery.com>
3355 * gengenrtl.c (find_formats, genheader): Make i an unsigned
3356 int, remove cast of NUM_RTX_CODE.
3357 * machmode.h: Make the HAVE_MACHINE_MODES #ifdef encompass the
3358 entire file. Remove the #ifs on GET_MODE_MASK etc and
3359 GET_MODE_WIDER_MODE etc.
3361 2003-10-10 Eric Christopher <echristo@redhat.com>
3363 * lcm.c (optimize_mode_switching): Change NORMAL_MODE
3364 to MODE_ENTRY and MODE_EXIT. Add MODE_AFTER for insns
3366 * config/sh/sh.h (MODE_ENTRY): New macro.
3368 (MODE_AFTER): Ditto.
3369 * config/sh/sh.md: Change for MODE_AFTER. Add
3371 * doc/tm.texi: Document MODE_AFTER, MODE_ENTRY, and MODE_EXIT.
3373 2003-10-10 Zack Weinberg <zack@codesourcery.com>
3375 * genmodes.c, mode-classes.def: New files.
3376 * machmode.def: Rewritten to genmodes.c interface.
3377 * Makefile.in (extra_modes_file): New substitution variable.
3378 (MACHMODE_H): No longer includes machmode.def or
3379 @extra_modes_file@; instead, mode-classes.def and insn-modes.h.
3380 (BUILD_RTL): Add $(BUILD_PREFIX)insn-modes.o.
3381 (OBJS-common): Add insn-modes.o.
3382 (STAGESTUFF): Add insn-modes.c, insn-modes.h, s-modes, and
3383 genmodes$(build_exeext).
3384 (insn-modes.o, insn-modes.c, insn-modes.h, s-modes, genmodes.o,
3385 genmodes$(build_exeext), $(BUILD_PREFIX_1)insn-modes.o): New targets.
3386 (s-genrtl): Don't depend on $(RTL_BASE_H).
3387 (gengenrtl.o): Don't depend on coretypes.h, $(GTM_H), real.h,
3388 or $(RTL_BASE_H); just rtl.def.
3389 * gengenrtl.c: Don't include coretypes.h, tm.h, rtl.h, or
3390 real.h. Give fake definition of CONST_DOUBLE_FORMAT and
3391 substitute definition of NUM_RTX_CODE. Add casts to avoid
3393 * machmode.h: Include insn-modes.h, not machmode.def. Include
3394 mode-classes.def to define enum mode_class. Tweak definitions
3395 of GET_MODE_CLASS, GET_MODE_SIZE, GET_MODE_BITSIZE, GET_MODE_MASK,
3396 GET_MODE_INNER, GET_MODE_WIDER_MODE, GET_CLASS_NARROWEST_MODE.
3397 (inner_mode_array): Renamed mode_inner.
3398 (mode_base_align): New.
3399 * rtl.c (mode_name, mode_class, mode_bitsize, mode_size,
3400 mode_unit_size, mode_wider_mode, mode_mask_array,
3401 inner_mode_array, class_narrowest_mode): Delete definitions.
3402 * stor-layout.c (get_mode_alignment): Use mode_base_align.
3403 * real.h: Use MIN_MODE_FLOAT and MAX_MODE_FLOAT, not QFmode
3404 and TFmode, in real_format_for_mode and REAL_MODE_FORMAT.
3406 * config/ip2k/ip2k.h, config/iq2000/iq2000.h:
3407 No need to define BITS_PER_UNIT.
3409 2003-10-10 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
3411 * config/ia64/ia64.c (ia64_vms_init_libfuncs): New function.
3412 (ia64_output_function_prologue): Only write .prologue if --with-gnu-as.
3413 (ia64_initialize_trampoline): If not using GAS, declare trampoline
3415 * config/ia64/ia64.h (ASM_APP_ON, ASM_APP_OFF): Add vers for not GAS.
3416 (ASM_OUTPUT_DEBUG_LABEL): Likewise.
3418 * stor-layout.c (compute_record_mode): Don't force BLKmode if
3419 field is zero-length BLKmode.
3420 * expr.c (expand_expr, case COMPONENT_REF): Handle case of BLKmode
3421 zero-size references.
3423 * combine.c (distribute_links): Properly test for REG being set.
3425 * config/alpha/alpha.c (alpha_expand_block_mode): Don't use
3426 gen_lowpart and company except for REG.
3428 2003-10-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3430 * pa64-hpux.h (LINK_SPEC): Use `-z' option with HP ld.
3432 2003-10-10 Nathanael Nerode <neroden@gcc.gnu.org>
3434 * config.gcc (mips*-*-netbsd*): Remove content-free line.
3436 2003-10-10 Herman A.J. ten Brugge <hermantenbrugge@home.nl>
3438 * gcov-io.h: Check BITS_PER_UNIT when defining gcov_unsigned_t,
3439 gcov_position_t and gcov_type.
3441 2003-10-09 Kaz Kojima <kkojima@gcc.gnu.org>
3443 * configure.in (HAVE_AS_TLS): Add sh-*-* and sh[34]*-*-* cases.
3444 * configure: Regenerate.
3446 2003-10-09 Kazu Hirata <kazu@cs.umass.edu>
3448 * config/h8300/h8300.md (define_asm_attributes): Specify
3449 the length of an asm insn more precisely.
3451 2003-10-09 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3453 * config/mips/iris6.h (SUBTARGET_CPP_SPEC): Define.
3455 2003-10-09 Bob Wilson <bob.wilson@acm.org>