OSDN Git Service

* config/ia64/hpux.h (STARTFILE_SPEC): Modify.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index f9a1caa..6e0e49b 100644 (file)
@@ -1,3 +1,494 @@
+2002-09-20  Steve Ellcey  <sje@cup.hp.com>
+
+       * config/ia64/hpux.h (STARTFILE_SPEC): Modify.
+       (STARTFILE_PREFIX_SPEC): New.
+       (LINK_SPEC): Modify.
+       (LIB_SPEC): Modify.
+       (LIBGCC_SPEC): New.
+
+2002-09-20  Jakub Jelinek  <jakub@redhat.com>
+
+       * config/i386/i386.c (legitimate_pic_address_disp_p): Allow
+       UNSPEC_NTPOFF and UNSPEC_DTPOFF to be offsetted by constant.
+
+2002-09-20  Jeroen Dobbelaere  <jeroen.dobbelaere@acunia.com>
+
+       * config/arm/arm.md (sign_extract_onebit, not_signextract_onebit):
+       Add clobber of the condition code register.
+
+2002-09-20  Richard Henderson  <rth@redhat.com>
+
+       * real.c (do_fix_trunc): Static.
+       (encode_ieee_single, encode_ieee_double, encode_ieee_extended,
+       encode_ieee_quad, encode_vax_f, encode_vax_d, encode_vax_g,
+       encode_i370_single, encode_i370_double, encode_c4x_single,
+       encode_c4x_extended): Add default abort case.
+
+2002-09-20  Richard Henderson  <rth@redhat.com>
+
+       * real.h (enum real_value_class, SIGNIFICAND_BITS, EXP_BITS,
+       MAX_EXP, SIGSZ, SIG_MSB, struct real_value): Move from real.c.
+       (struct realvaluetype): Remove.
+       (REAL_VALUE_TYPE): Use struct real_value.
+       (REAL_VALUE_TYPE_SIZE): Use SIGNIFICAND_BITS.
+       (test_real_width): New.
+       * real.c: Global replace struct real_value with REAL_VALUE_TYPE.
+       (real_arithmetic): Avoid hoops for REAL_VALUE_TYPE parameters.
+       (real_compare, real_exponent, real_ldexp, real_isinf, real_isnan,
+       real_isneg, real_isnegzero, real_identical, exact_real_inverse,
+       real_to_integer, real_to_integer2, real_to_decimal,
+       real_to_hexadecimal, real_from_string, real_from_integer,
+       real_inf, real_nan, real_2expN, real_convert, real_to_target,
+       real_from_target): Likewise.
+       * tree.h (struct tree_real_cst): Use real_value not realvaluetype.
+       * gengtype-yacc.y (bitfieldopt): Accept an ID as well.
+
+2002-09-20  Richard Henderson  <rth@redhat.com>
+
+       * real.h (UNKNOWN_FLOAT_FORMAT, IEEE_FLOAT_FORMAT, VAX_FLOAT_FORMAT,
+       IBM_FLOAT_FORMAT, C4X_FLOAT_FORMAT, TARGET_FLOAT_FORMAT): Move ...
+       * defaults.h: ... here.
+       * config/arm/arm.h, config/avr/avr.h, config/d30v/d30v.h,
+       config/fr30/fr30.h, config/frv/frv.h, config/ia64/ia64.h,
+       config/ip2k/ip2k.h, config/mips/mips.h, config/stormy16/stormy16.h,
+       config/xtensa/xtensa.h (TARGET_FLOAT_FORMAT): Remove.
+
+2002-09-20  Hans-Peter Nilsson  <hp@bitrange.com>
+
+       * config/mmix/mmix.md ("negdf2"): Rewrite.
+       ("*expanded_negdf2"): New.
+
+2002-09-19  Jim Wilson  <wilson@redhat.com>
+
+       * combine.c (simplify_set): When optimizing a subreg src with a
+       cc0 dest, use GET_MODE (src) for mask instead of inner_mode.
+
+2002-09-19  Dale Johannesen <dalej@apple.com>
+       * combine.c (make_extraction): Don't create
+       invalid subreg.
+
+2002-09-19  Ulrich Weigand  <uweigand@de.ibm.com>
+
+       * config/s390/s390.c (addr_generation_dependency_p): Handle SUBREG 
+       and STRICT_LOW_PART within SET_DEST.
+       * config/s390/s390.md ("*extractqi", "*extracthi"): New insns with
+       splitters, replacing pre-reload splitters.
+       ("*zero_extendhisi2_31", "*zero_extendqisi2_31", 
+       "*zero_extendqihi2_31"): New insns.
+       ("*zero_extendqihi2_64"): Do not clobber CC.
+
+2002-09-18  Devang Patel  <dpatel@apple.com>
+
+       * cp/cp-tree.h: New prototype for walk_vtabls().        
+       * cp/decl.c (walk_vtables_r): New function.        
+       (struct cp_binding_level): Add new members, namespaces,        
+       names_size and vtables.        
+       (add_decl_to_level): Add decl in namespaces or vtables        
+       chain, if conditions match.        
+       (walk_vtables): New function.        
+       (walk_namespaces_r): Travers separate namespace chain        
+       for namespace decls.        
+       (wrapup_globals_for_namespace): Use names_size instead        
+       of list_length().        
+       * cp/decl2.c (finish_file): Use walk_vtables() instead of        
+       walk_globals() to walk vtable decls.        
+               
+2002-09-19  Steve Ellcey  <sje@cup.hp.com>
+
+       * config/ia64/hpux.h (CTORS_SECTION_ASM_OP): New.
+       (DTORS_SECTION_ASM_OP): Ditto.
+       (READONLY_DATA_SECTION_ASM_OP): Moved.
+       (DATA_SECTION_ASM_OP): New.
+       (SDATA_SECTION_ASM_OP): New.
+       (BSS_SECTION_ASM_OP): New.
+       (SBSS_SECTION_ASM_OP): New.
+       (TEXT_SECTION_ASM_OP): New.
+
+2002-09-19  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * config/fp-bit.c: Follow spelling conventions.
+       * config/d30v/d30v.c: Likewise.
+       * config/d30v/d30v.h: Likewise.
+       * config/fr30/fr30.c: Likewise.
+       * config/fr30/fr30.h: Likewise.
+       * config/fr30/fr30.md: Likewise.
+       * config/frv/frv.c: Likewise.
+       * config/frv/frv.h: Likewise.
+       * config/h8300/h8300.c: Likewise.
+       * config/h8300/lib1funcs.asm: Likewise.
+       * config/i370/i370.c: Likewise.
+       * config/i386/i386.h: Likewise.
+       * config/i386/i386.md: Likewise.
+       * config/i386/pentium.md: Likewise.
+       * config/i386/winnt.c: Likewise.
+       * config/i960/i960.c: Likewise.
+       * config/ia64/ia64.h: Likewise.
+       * config/ip2k/ip2k.c: Likewise.
+       * config/ip2k/ip2k.h: Likewise.
+       * config/ip2k/ip2k.md: Likewise.
+       * config/ip2k/libgcc.S: Likewise.
+
+2002-09-19  Stephen Clarke <stephen.clarke@superh.com>
+
+       * config/sh/sh.h (UNSPEC_GOTOFF_P): Define.
+       (GOTOFF_P): Extend to allow gotoff plus constant.
+
+2002-09-18  Richard Henderson  <rth@redhat.com>
+
+       * ifcvt.c (noce_process_if_block): Correctly detect X modified
+       with INSN_B before COND_EARLIEST.  Don't check A and B for 
+       modification in condition range.  Reorder INSN_B for A==B properly.
+       (if_convert): Iterate until no matches for a block.
+
+2002-09-18  Richard Henderson  <rth@redhat.com>
+
+       * calls.c (store_one_arg): Rename default_align to parm_align;
+       always adjust parm_align for downward padding.
+
+2002-09-18  Richard Henderson  <rth@redhat.com>
+
+       * toplev.c (backend_init): Move init_real_once invocation ...
+       (do_compile): ... here.
+
+2002-09-18  Richard Henderson  <rth@redhat.com>
+
+       * sibcall.c (optimize_sibling_and_tail_recursive_call): Also remove
+       RTX_UNCHANGING_P markers for successful tail-recursive replacement.
+
+2002-09-18  Richard Henderson  <rth@redhat.com>
+
+       * real.c (round_for_format): Collect sticky as unsigned long, not bool.
+
+2002-09-19  Alan Modra  <amodra@bigpond.net.au>
+
+       * config/rs6000/rs6000.md: (floatdisf2): Rename to
+       floatdisf2_internal1.
+       (floatdisf2): New define_expand.
+       (floatdisf2_internal2): Likewise.
+
+2002-09-18  Richard Henderson  <rth@redhat.com>
+
+       * real.c (sticky_rshift_significand): Collect sticky as 
+       unsigned long, not bool.
+
+2002-09-18  Ulrich Weigand  <uweigand@de.ibm.com>
+
+       * config/s390/s390.c (s390_address_cost): New function.
+       config/s390/s390-protos.h (s390_address_cost): Add prototype.
+       config/s390/s390.h (ADDRESS_COST): Call s390_address_cost.
+       (RTX_COST): Use COSTS_N_INSNS.
+
+2002-09-18  Douglas Rupp  <rupp@gnat.com>
+           Donn Terry  <donnte@microsoft.com>
+
+       * stor-layout.c (place_field): Handle alignment of whole
+       structures when MSVC compatible bitfields are involved.
+       Change method of computing location of MS bitfields to
+       be compatible with #pragma pack(n).
+
+       * tree.h (record_layout_info): Add new field
+       remaining_in_alignment.
+
+       * doc/tm.texi: (TARGET_MS_BITFIELD_LAYOUT_P): Update.
+       (pragma pack): Add paragraph on MSVC bitfield packing.
+
+2002-09-18  Richard Earnshaw  (reanrsha@arm.com)
+
+       PR optimization/7967
+       * arm.md (ne_zeroextractsi): Add clobber of the condition code
+       register.
+
+2002-09-18  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * config/s390/s390.c: Follow spelling conventions.
+       * config/sh/lib1funcs.asm: Likewise.
+       * config/sh/sh.c: Likewise.
+       * config/sh/sh.h: Likewise.
+       * config/sparc/sparc.c: Likewise.
+       * config/sparc/sparc.h: Likewise.
+       * config/sparc/sparc.md: Likewise.
+       * config/stormy16/stormy16.c: Likewise.
+       * config/stormy16/stormy16.h: Likewise.
+       * config/v850/v850.c: Likewise.
+       * config/v850/v850.h: Likewise.
+       * config/vax/vax.c: Likewise.
+       * config/vax/vax.h: Likewise.
+
+2002-09-18  Nick Clifton  <nickc@redhat.com>
+
+       * config/rs60000/rs6000.c (rs6000_emit_move): Handle V1DImode moves.
+       * config/rs60000/rs6000.c (SPE_VECTOR_MODE): Include V1DImode.
+       * config/rs6000/spe.md (movv1di, movv1di_internal): New patterns.
+
+2002-09-17  Zack Weinberg  <zack@codesourcery.com>
+
+       * ABOUT-GCC-NLS: Remove reference to enquire, and out-of-date
+       statement that the only translation is to en_UK.
+
+2002-09-17  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * config/alpha/alpha.c: Follow spelling conventions.
+       * config/alpha/alpha.h: Likewise.
+       * config/alpha/alpha.md: Likewise.
+       * config/arc/arc.h: Likewise.
+       * config/arm/arm.c: Likewise.
+       * config/arm/arm.h: Likewise.
+       * config/arm/arm.md: Likewise.
+       * config/arm/pe.c: Likewise.
+       * config/arm/unknown-elf.h: Likewise.
+       * config/avr/avr.c: Likewise.
+       * config/avr/avr.h: Likewise.
+       * config/c4x/c4x.c: Likewise.
+       * config/cris/cris.c: Likewise.
+       * config/cris/cris.h: Likewise.
+
+2002-09-17  Samuel Figueroa  <figueroa@apple.com>
+
+       * final.c (final_scan_insn): Use new macro ASM_OUTPUT_ALIGN_WITH_NOP.
+       * config/sparc/sparc.h (ASM_OUTPUT_ALIGN_WITH_NOP) New macro.
+       * doc/tm.texi (ASM_OUTPUT_ALIGN_WITH_NOP) New description.
+
+2002-09-17  Dale Johannesen  <dalej@apple.com>
+
+       * cfgcleanup.c (try_forward_edges):  Do not forward a
+       branch to just after a loop exit before loop optimization;
+       this interfered with doloop detection.
+
+2002-09-17  Nick Clifton  <nickc@redhat.com>
+
+       * config/arm/arm.c (output_return_instruction): Do not
+       writeback the stack pointer when it is being loaded.
+       (arm_output_epilogue): Likewise.
+
+2002-09-17  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * optabs.c (prepare_cmp_insn): Let emit_library_call_value
+       generate a pseudo reg that receives the result of a libcall.
+       (prepare_float_lib_cmp): Likewise.
+
+2002-09-17  Steve Ellcey  <sje@cup.hp.com>
+
+        * config/ia64/elf.h: Remove CPP_PREDEFINES.
+
+Tue Sep 17 13:58:04 2002  Nicola Pero  <n.pero@mi.flashnet.it>
+
+       Fix PR/7014 and related objc bugs:
+       * c-typeck.c (comp_target_types): Added a reflexive argument.
+       Pass it to ObjC when/if calling objc_comptypes().  Updated all
+       callers to provide the appropriate reflexive argument.
+       * objc/objc-act.c (objc_comptypes): Carefully checked and fixed
+       typechecking for all cases of comparisons and assignments,
+       particularly the obscure and less common ones involving protocols.
+
+2002-09-17  Nick Clifton  <nickc@redhat.com>
+
+       * machmode.def (V1DImode): New mode.  A single element vector.
+       * tree.h (TI_UV1DI_TYPE, TI_V1DI_TYPE): New tree_index enums.
+       (unsigned_V1DI_type_node, V1D1_type_node): New type nodes.
+       * tree.c (build_common_tree_nodes_2): Build
+       unsigned_V1DI_type_node and V1D1_type_node.
+       * c-common.c (c_common_type_for_mode): Return
+       unsigned_V1DI_type_node or V1D1_type_node for V1DImode.
+       * rtl.c (class_narrowest_): Start integer vector nodes with V1DImode.
+
+Tue Sep 17 13:40:13 2002  Nicola Pero  <n.pero@mi.flashnet.it>
+
+       * doc/objc.texi (Constant string objects): Extended documentation
+       to make clear that the constant string class ivar layout is
+       completely fixed.
+       
+2002-09-17  Roger Sayle  <roger@eyesopen.com>
+
+       * cfgrtl.c (flow_delete_block_noexpunge): Delete orphaned
+       NOTE_INSN_LOOP_CONT notes when deleting basic blocks.
+
+2002-09-16  Richard Henderson  <rth@redhat.com>
+
+       * expr.c (emit_block_move): Set memory block size as appropriate
+       for the copy.
+
+2002-09-16  Richard Henderson  <rth@redhat.com>
+
+       PR fortran/3924
+        * sdbout.c (sdbout_symbol): Don't handle offsets from a symbol.
+
+2002-09-16  Richard Henderson  <rth@redhat.com>
+
+       * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust SIZE
+       as well as OFFSET for BITPOS.
+
+2002-09-16  Jeff Garzik  <jgarzik@mandrakesoft.com>
+
+        * config.gcc: Treat winchip_c6-*|winchip2-*|c3-* as pentium-mmx.
+        * config/i386/i386.c (processor_alias_table): Add winchip-c6,
+       winchip2 and c3.
+        * doc/invoke.texi: Mention new aliases.
+
+2002-09-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
+
+       * calls.c (store_one_arg): Set default alignment for BLKmode arguments
+       to BITS_PER_UNIT when ARGS_GROW_DOWNWARD and the padding direction is
+       downward.
+       * function.c (pad_below):  Always compile.
+       (locate_and_pad_parm): If defined ARGS_GROW_DOWNWARD, pad argument to
+       alignment when it is not in a register or REG_PARM_STACK_SPACE is true.
+       Pad below when the argument is not in a register and the padding
+       direction is downward.
+
+       * pa-64.h (MUST_PASS_IN_STACK): Move define to pa.h.
+       (PAD_VARARGS_DOWN): Define.
+       * pa.c (function_arg_padding): Revise padding directions to make them
+       compatible with the 32 and 64-bit runtime architecture documentation.
+       (hppa_va_arg):  Add code to handle variable and size zero arguments
+       passed by reference on TARGET_64BIT.  Reformat.
+       (function_arg): Use a PARALLEL for BLKmode and aggregates args on
+       TARGET_64BIT.  Use a DImode PARALLEL for BLKmode args 5 to 8 bytes
+       wide when !TARGET_64BIT.  Move forward check for mode==VOIDmode.
+       Add comments.
+       * pa.h (MAX_PARM_BOUNDARY): Correct define for TARGET_64BIT.
+       (RETURN_IN_MEMORY): Return size zero types in memory.
+       (FUNCTION_VALUE): Return TFmode in general registers.
+       (MUST_PASS_IN_STACK): Define.
+       (FUNCTION_ARG_BOUNDARY): Simplify.
+       (FUNCTION_ARG_PASS_BY_REFERENCE): Pass variable and zero sized types
+       by reference.
+       (FUNCTION_ARG_CALLEE_COPIES): Define to FUNCTION_ARG_PASS_BY_REFERENCE.
+
+2002-09-16  Richard Henderson  <rth@redhat.com>
+
+       * real.c (do_fix_trunc): New.
+       (real_arithmetic): Call it.
+       * simplify-rtx.c (simplify_unary_operation): Handle FIX
+       with a floating-point result mode.
+
+2002-09-16  Richard Henderson  <rth@redhat.com>
+
+       * builtin-types.def (BT_FN_FLOAT_CONST_STRING): New.
+       (BT_FN_DOUBLE_CONST_STRING, BT_FN_LONG_DOUBLE_CONST_STRING): New.
+       * builtins.def (__builtin_nan, __builtin_nanf, __builtin_nanl): New.
+       (__builtin_nans, __builtin_nansf, __builtin_nansl): New.
+       * builtins.c (fold_builtin_nan): New.
+       (fold_builtin): Call it.
+       * real.c (real_nan): Parse a non-empty string.
+       (round_for_format): Fix NaN significand truncation.
+       * real.h (real_nan): Return bool.
+       * doc/extend.texi: Document new builtins.
+
+2002-09-16  Jason Merrill  <jason@redhat.com>
+           Danny Smith  <dannysmith@users.sourceforge.net>
+
+       * config/i386/winnt.c (ix86_handle_dll_attribute): Set
+       DECL_EXTERN and TREE_PUBLIC for dllimported variables here...
+       (i386_pe_mark_dllimport): Not here.
+
+2002-09-16  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * c-semantics.c (genrtl_do_stmt): Cope with NULL cond.
+
+2002-09-16  Geoffrey Keating  <geoffk@redhat.com>
+
+       * config/rs6000/rs6000.c (build_mask64_2_operands): Suppress
+       warnings about unused operands when HOST_BITS_PER_WIDE_INT is
+       < 64.
+       (rs6000_emit_cmove): Use real_isinf not target_isinf.
+
+2002-09-16  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * calls.c (emit_library_call_value_1): Don't refer to
+       hard_libcall_value.
+       * optabs.c (prepare_float_lib_cmp): Likewise.
+
+2002-09-16  Geoffrey Keating  <geoffk@apple.com>
+
+       * ggc-common.c (ggc_mark_rtx_children_1): Update for changed name
+       mangling.
+
+       The following changes are merged from pch-branch:
+
+       * doc/gty.texi (GTY Options): Document %a.
+       * gengtype.c (do_scalar_typedef): New function.
+       (process_gc_options): Handle `length' option.
+       (set_gc_used_type): A pointer to an array of structures doesn't
+       qualify as a pointer to a structure.
+       (output_escaped_param): Add `%a' escape.
+       (write_gc_structure_fields): Allow 'desc' on array of unions.
+       (main): Define `uint8', `jword' and `JCF_u2' as scalars; use
+       do_scalar_typedef.
+
+       * gengtype.c (enum rtx_code): Make global.
+       (rtx_format): Make global.
+       (rtx_next): New.
+       (gen_rtx_next): New.
+       (write_rtx_next): New.
+       (adjust_field_rtx_def): Skip fields marked by chain_next.
+       (open_base_files): Delete redundant prototype.
+       (write_enum_defn): New.
+       (output_mangled_typename): Correct abort call.
+       (write_gc_marker_routine_for_structure): Handle chain_next and
+       chain_prev options.
+       (finish_root_table): Don't output redundant \n.
+       (main): Call gen_rtx_next, write_rtx_next, write_enum_defn.
+       * c-tree.h (union lang_tree_node): Add chain_next option.
+
+       * gengtype.h (NUM_PARAM): New definition.
+       (struct type): For TYPE_PARAM_STRUCT, allow multiple parameters.
+       * gengtype.c (find_param_structure): New.
+       (adjust_field_type): Handle param<n>_is option.
+       (process_gc_options): Detect use_params option.  Update callers.
+       (set_gc_used_type): Add 'param' parameter, update callers.  Handle
+       'use_params' option.
+       (open_base_files): Add splay-tree.h to list of files included.
+       (output_mangled_typename): New.
+       (write_gc_structure_fields): Update 'param' parameter to support
+       multiple parameters.  Change name mangling.  Allow parameterized
+       fields to have an apparent scalar type.  Handle param<n>_is options,
+       use_param option.
+       (write_gc_marker_routine_for_structure): Update for change to name
+       mangling.  Better guess the output file for parameterized types.
+       (write_gc_types): Update for change to name mangling.
+       (write_gc_root): Update for change to name mangling.  Handle (ignore)
+       param<n>_is options.
+       * doc/gty.texi (GTY Options): Add description of param<n>_is
+       options, use_params option.
+       * ggc.h (ggc_mark_rtx): Update for changed name mangling.
+       * gengtype-lex.l: Produce token for param<n>_is.
+       * gengtype-yacc.y: Parse param<n>_is.
+
+       * gengtype.c (adjust_field_tree_exp): Don't name a variable 'rindex'.
+
+       * rtl.c: Update comment describing rtx_format.
+       * rtl.h (union rtunion): Separate definition and typedef.
+       (struct rtx_def): Use gengtype to mark.
+       * Makefile.in (gengtype.o): Also depend on rtl.def.
+       * ggc.h (ggc_mark_rtx_children): Delete prototype.
+       (ggc_mark_rtx): Change to alias of gengtype-generated routine.
+       * ggc-common.c (ggc_mark_rtx_children): Delete.
+       (ggc_mark_rtx_children_1): Delete.
+       (gt_ggc_m_rtx_def): Delete.
+       * gengtype.c (adjust_field_rtx_def): New.
+       (adjust_field_type): Call adjust_field_rtx_def.
+       (write_gc_structure_fields): Add 'default' case to switch if none
+       is specified; remove unused code.
+
+       * tree.h (struct tree_exp): Update for change to meaning
+       of special.
+       * gengtype.c (adjust_field_tree_exp): New function.
+       (adjust_field_type): Handle `tree_exp' special here.
+       (write_gc_structure_fields): Don't handle `tree_exp' special here.
+       Handle new `dot' option.
+
+       * gengtype.h: Make `info' a pointer-to-const.
+       * gengtype-yacc.y (yacc_ids): Use xasprintf.
+
+       * gengtype.c (write_gc_structure_fields): Remove implementation
+       of `always' option, add `default' option.
+       * doc/gty.texi (GTY Options): Remove documentation of `always',
+       add `default'.
+
+2002-09-16  Hans-Peter Nilsson  <hp@bitrange.com>
+
+       * output.h: Remove #ifdef RTX_CODE and #ifdef TREE_CODE.
+
 2002-09-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
        * m68hc11.md (addhi_sp): Fix uninitialized variable bug.