OSDN Git Service

* builtins.c (expand_builtin_setjmp): Use emit_jump to jump around
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 987b4ce..790f581 100644 (file)
@@ -1,8 +1,250 @@
+2003-08-31  Olivier Hainque  <hainque@act-europe.fr>
+
+        * builtins.c (expand_builtin_setjmp): Use emit_jump to jump around
+        the != 0 case, which ensures pending stack adjustments are flushed.
+
+2003-08-30  Zack Weinberg  <zack@codesourcery.com>
+
+       * configure.frag: Delete file.
+       * configure.in: Rename the substitution variables
+       dep_host_xmake_file and dep_tmake_file to xmake_file and
+       tmake_file respectively.  Do not expand $srcdir in the
+       value of these; leave that for Make.  Introduce a new
+       substitution varaible, all_lang_makefrags, which lists
+       subdirectory Make-lang.in files; exclude these from
+       all_lang_makefiles, which is now only for subdirectory
+       outputs.  Do not invoke configure.frag.  Do not set nor
+       AC_SUBST_FILE target_overrides, host_overrides, or
+       language_fragments. Create build subdirectories in
+       config.status extra commands.
+       * configure: Regenerate.
+       * Makefile.in: Update substitutions to match changes to
+       configure.  Use include directives instead of @-insertions
+       to read in host, target, and language fragments.
+       (Makefile rule): Do not invoke configure.frag.  Do not copy
+       config.status to config.run before executing it.  Set
+       CONFIG_HEADERS and CONFIG_FILES so that only Makefile gets
+       regenerated.
+       (cstamp-h rule): Set CONFIG_FILES as well as CONFIG_HEADERS.
+
+2003-08-30  Zack Weinberg  <zack@codesourcery.com>
+
+       * c-tree.h: Delete COMPARE_DIFFERENT_TU from enumeration.
+       * c-typeck.c (same_translation_unit_p): New function.
+       (comptypes): Use it instead of flags parameter to identify
+       structure types from different translation units.
+       * c-decl.c (duplicate_decls): Always call comptypes with
+       COMPTYPE_STRICT flags argument.
+       (c_reset_state): Set BLOCK_SUPERCONTEXT of the block formed
+       to file_scope_decl.
+
+2003-08-30  Zack Weinberg  <zack@codesourcery.com>
+
+       * c-tree.h (C_TYPE_INCOMPLETE_VARS): New macro.
+       * c-decl.c (struct c_scope): Remove "incomplete" field.
+       (pushdecl): Attach variables with incomplete types to
+       the TYPE_MAIN_VARIANT of the incomplete type in question.
+       (finish_struct): Look at C_TYPE_INCOMPLETE_VARS for variables
+       to complete, not at current_scope->incomplete.  All such
+       variables do need completion.
+
+2003-08-30  Richard Earnshaw  <rearnsha@arm.com>
+       Nicolas Pitre <nico@cam.org>
+
+       * arm/lib1funcs.asm (RETCOND): Delete.
+       (RETLDM): New assembler macro.  Use it for returning with ldm/ldr.
+       (ARM_LDIV0, THUMB_LDIV0): Collapse multiple definitions.
+       (__ARM_ARCH__): Move here from ieee754-?f.S.
+       (RET, RETc): Clean up definitions.
+       (DIV_FUNC_END): Renamed from FUNC_END.  All uses changed.
+       (FUNC_END): New macro that marks the end of any function.
+       (ARM_FUNC_START): New macro that allows an assembler routine to be
+       implemented in ARM code even if a Thumb-only build.
+       Unconditionally include ieee754-?f.S.
+       * arm/ieee754-df.S: Delete macros moved to lib1funcs.asm.
+       Mark ends of functions.
+       Split into separate conditionally-compiled units.
+       Use RETLDM to return from routines.
+       * arm/ieee754-sf.S: Similarly.
+       * t-arm-elf (LIB1ASMFUNCS): Remove _ieee754_dp and _ieee754_sp.
+       Add _negdf2 _addsubdf3 _muldivdf3 _cmpdf2 _unorddf2 _fixdfsi
+       _truncdfsf2 _negsf2 _addsubsf3 _muldivsf3 _cmpsf2 _unordsf2
+       _fixsfsi and _fixunssfsi.
+
+       * arm/ieee754-df.S (__muldf3): Fix bug when result of a
+       multiplication underflows to zero.
+       (__adddf3): Fix bug when using VFP ordering on little-endian
+       processors.
+       (__fixdfsi): Use rrx to extract the carry into a register instead of
+       MRS instruction.  Optimize later use of result.
+       * arm/ieee754-sf.S (__fixsfsi): Likewise.
+       (__fixunssfsi): Use a better sequence for handling negative-or-zero.
+
+2003-08-29  Richard Henderson  <rth@redhat.com>
+
+       * tree-optimize.c: New file.
+       * Makefile.in (OBJS-archive): Add tree-optimize.o.
+       (tree-optimize.o): New.
+       * c-decl.c (store_parm_decls): Use allocate_struct_function.
+       (finish_function): Don't free_after_parsing or free_after_compilation.
+       (set_save_expr_context): Move to tree-optimize.c.
+       (c_expand_body_1): Use tree_rest_of_compilation.
+       * c-lang.c (LANG_HOOKS_RTL_EXPAND_STMT): New.
+       * objc/objc-lang.c (LANG_HOOKS_RTL_EXPAND_STMT): New.
+       * c-objc-common.c (expand_deferred_fns): Don't emit unused inlines;
+       iterate until closure.
+       * langhooks-def.h (LANG_HOOKS_RTL_EXPAND_START,
+       LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_RTL_EXPAND_END): New.
+       (LANG_HOOKS_RTL_EXPAND_INITIALIZER): New.
+       * langhooks.h (struct lang_hooks_for_rtl_expansion): New.
+       * toplev.h (tree_rest_of_compilation): Declare it.
+
+2003-08-29  Richard Henderson  <rth@redhat.com>
+
+       * function.h (struct function): Add rtl_inline_init, saved_for_inline.
+       * integrate.c (save_for_inline): Set saved_for_inline.
+       * c-semantics.c (genrtl_scope_stmt): Check it.
+       * toplev.c (wrapup_global_declarations): Check it.
+       (rest_of_handle_inlining): Set and check rtl_inline_init.
+       (rest_of_compilation): Remove out of date comment.
+
+2003-08-29  Richard Henderson  <rth@redhat.com>
+
+       * function.c (allocate_struct_function): New, split out of ...
+       (prepare_function_start, init_function_start): ... here.
+       * expr.c (init_expr): Use ggc_alloc_cleared.
+       * stmt.c (init_stmt_for_function): Likewise.
+       * tree.h (allocate_struct_function): Declare.
+
+2003-08-29  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+       * config.gcc: Don't use negated character class in shell case
+       clause.
+
+2003-08-29  Richard Henderson  <rth@redhat.com>
+
+       * function.h (struct function): Move function_frequency and
+       max_jumptable_ents before start of bit field members.
+
+2003-08-29  Richard Henderson  <rth@redhat.com>
+
+       * builtins.c (expand_builtin_constant_p): Check cse_not_expected here,
+       (fold_builtin_constant_p) ... not here.
+
+2003-08-29  Richard Henderson  <rth@redhat.com>
+
+       * c-tree.h (C_DECL_FILE_SCOPE): Move ...
+       * tree.h (DECL_FILE_SCOPE_P): ... here, and rename.
+       * c-decl.c, c-objc-common.c, c-typeck.c: Update to match.
+
+2003-08-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * builtins.def: Fix typos.
+       (ATTR_MATHFN_FPROUNDING_STORE): New macro.
+       (BUILT_IN_FREXP, BUILT_IN_FREXPF, BUILT_IN_FREXPL, BUILT_IN_MODF,
+       BUILT_IN_MODFF, BUILT_IN_MODFL, BUILT_IN_REMQUO, BUILT_IN_REMQUOF,
+       BUILT_IN_REMQUOL, BUILT_IN_SINCOS, BUILT_IN_SINCOSF,
+       BUILT_IN_SINCOSL): Use ATTR_MATHFN_FPROUNDING_STORE.
+
+       * builtins.def (BUILT_IN_ERFC, BUILT_IN_ERFCF, BUILT_IN_ERFCL):
+       Use ATTR_MATHFN_FPROUNDING_ERRNO.
+
+2003-08-29  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+       * config.gcc (i386-*-vsta): Fix obvious bogosity.
+
+       * fixinc/inclhack.def:  Remove special cases for unsupported
+       PTX 1 and PTX 2 (including i[34567]86-sequent-sysv3).
+       * fixinc/fixincl.x: Regenerate.
+
+2003-08-29  Mark Mitchell  <mark@codesourcery.com>
+
+       * Makefile.in (cpp.info): Just state dependencies.
+       (gcc.info): Likewise.
+       (gccint.info): Likewise.
+       (gccinstall.info): Likewise.
+       (cppinternals.info): Likewise.
+       (cpp.dvi): Likewise.
+       (gcc.dvi): Likewise.
+       (gccint.dvi): Likewise.
+       (gccinstall.dvi): Likewise.
+       (cppinternals.dvi): Likewise.
+       (gcov.1): Likewise.
+       (cpp.1): Likewise.
+       (gcc.1): Likewise.
+       (gfdl.7): Likewise.
+       (gpl.7): Likewise.
+       (fsf-funding.7): Likewise.
+       ($(objdir)/%.info): New pattern rule.
+       (%.dvi): Likewise.
+
+2003-08-29  Kelley Cook  <kelleycook@wideopenwest.com>
+
+       * Makefile.in (restage1): Pass BOOT_CFLAGS to recursive make.
+       (restage2): Likewise.
+       (restage3): Likewise.
+       (restage4): Likewise.
+       (restageprofile): Likewise.
+       (restagefeedback): Likewise.
+       (bubblestrap): Likewise.
+
+2003-08-29  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+       * config.gcc: Narrow unsupported target match to avoid clobbering
+       i?86-sequent-sysv4*.
+
+2003-08-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * builtins.c (mathfn_built_in): Handle new math builtins.
+
+2003-08-28  Per Bothner  <per@bothner.com>
+
+       Fix (hopefully temporary) for breakage caused by my 08-21 patch.
+       * cpplex.c (_cpp_get_fresh_line):  Check for null buffer.
+       (_cpp_lex_buffer):  Likewise.
+       * cpptrad.c (_cpp_read_logical_line_trad):  Likewise.
+
+2003-08-28  Ulrich Weigand  <uweigand@de.ibm.com>
+
+       * config/s390/s390.md ("*mulsi3_sign"): New insn.
+       ("mulsidi3" expander, "mulsi_6432" insn): Remove, replace by ...
+       ("mulsidi3"): ... this new insn.
+       ("umulsidi3"): New insn.
+       ("divmoddi3", "divmodtidi3", "divmodtisi3"): Simplify by using
+       mixed-mode matching constraints.
+       ("udivmodsi4", "udivmoddisi3"): New insns.
+       ("udivsi3", "umodsi3"): Use only in ESA/390 mode.
+
+2003-08-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * builtin-types.def (BT_INT_PTR, BT_FLOAT_PTR, BT_DOUBLE_PTR,
+       BT_LONGDOUBLE_PTR, BT_FN_FLOAT_FLOAT_FLOATPTR,
+       BT_FN_DOUBLE_DOUBLE_DOUBLEPTR,
+       BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLEPTR,
+       BT_FN_FLOAT_FLOAT_INTPTR, BT_FN_DOUBLE_DOUBLE_INTPTR,
+       BT_FN_LONGDOUBLE_LONGDOUBLE_INTPTR,
+       BT_FN_FLOAT_FLOAT_FLOAT_INTPTR, BT_FN_DOUBLE_DOUBLE_DOUBLE_INTPTR,
+       BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE_INTPTR,
+       BT_FN_VOID_FLOAT_FLOATPTR_FLOATPTR,
+       BT_FN_VOID_DOUBLE_DOUBLEPTR_DOUBLEPTR,
+       BT_FN_VOID_LONGDOUBLE_LONGDOUBLEPTR_LONGDOUBLEPTR): New.
+       * builtins.def (BUILT_IN_FREXP, BUILT_IN_FREXPF, BUILT_IN_FREXPL,
+       BUILT_IN_MODF, BUILT_IN_MODFF, BUILT_IN_MODFL, BUILT_IN_REMQUO,
+       BUILT_IN_REMQUOF, BUILT_IN_REMQUOL, BUILT_IN_SINCOS,
+       BUILT_IN_SINCOSF, BUILT_IN_SINCOSL): New.
+       * tree.c: Assign new type_nodes.
+       * tree.h (tree_index): Add TI_FLOAT_PTR_TYPE, TI_DOUBLE_PTR_TYPE,
+       TI_LONG_DOUBLE_PTR_TYPE, TI_INTEGER_PTR_TYPE.
+       (float_ptr_type_node, double_ptr_type_node,
+       long_double_ptr_type_node, integer_ptr_type_node): New type_nodes.
+
+       * doc/extend.texi: Document new builtins.
+
 2003-08-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
        * builtin-types.def (BT_FN_FLOAT_INT_FLOAT,
        BT_FN_DOUBLE_INT_DOUBLE, BT_FN_LONGDOUBLE_INT_LONGDOUBLE): New.
-       
+
        * builtins.def (BUILT_IN_ERF, BUILT_IN_ERFC, BUILT_IN_ERFCF,
        BUILT_IN_ERFCL, BUILT_IN_ERFF, BUILT_IN_ERFL, BUILT_IN_GAMMA,
        BUILT_IN_GAMMAF, BUILT_IN_GAMMAL, BUILT_IN_J0, BUILT_IN_J0F,
        BUILT_IN_TGAMMAF, BUILT_IN_TGAMMAL, BUILT_IN_Y0, BUILT_IN_Y0F,
        BUILT_IN_Y0L, BUILT_IN_Y1, BUILT_IN_Y1F, BUILT_IN_Y1L,
        BUILT_IN_YN, BUILT_IN_YNF, BUILT_IN_YNL): New.
-       
+
        * doc/extend.texi: Document new builtins.
 
 2003-08-28  Nathanael Nerode  <neroden@gcc.gnu.org>
 
        * fixinc/mkfixinc.sh: Remove special case code for unsupported
-       variants of i?86, powerpcle, and thumb. 
+       variants of i?86, powerpcle, and thumb.
        * fixinc/mkfixinc.sh: Remove special case code for unsupported
        arm and hppa variants.
 
        ("jump"): Likewise.
        ("call"): Use BRASL on zSeries machines.
        ("call_value", "call_value_tls"): Likewise.
-       ("brasl", "bras", "basr_64", "basr_31", "bas_64", "bas_31"): Remove 
+       ("brasl", "bras", "basr_64", "basr_31", "bas_64", "bas_31"): Remove
        and replace by ...
        ("*bras", "*brasl", "*basr") ... these new insns.
-       ("brasl_r", "bras_r", "basr_64_r", "basr_31_r", "bas_64_r", 
+       ("brasl_r", "bras_r", "basr_64_r", "basr_31_r", "bas_64_r",
        "bas_31_r"): Remove and replace by ...
        ("*bras_r", "*brasl_r", "*basr_r") ... these new insns.
-       ("brasl_tls", "bras_tls", "basr_64_tls", "basr_31_tls", 
+       ("brasl_tls", "bras_tls", "basr_64_tls", "basr_31_tls",
        "bas_64_tls", "bas_31_tls"): Remove and replace by ...
        ("*bras_tls", "*brasl_tls", "*basr_tls") ... these new insns.
        ("*return_si", "*return_di"): Remove and replace by ...
        ("*andsi3_ni", "*andhi3_ni", "*andqi3_ni"): Likewise.
        ("*iorsi3_ni", "*iorhi3_ni", "*iorqi3_ni"): Likewise.
        ("*extendqisi2"): Use LB in z/Architecture mode.
-       ("*zero_extendqisi2_64", "*zero_extendqisi2_31"): Use LLGC in 
+       ("*zero_extendqisi2_64", "*zero_extendqisi2_31"): Use LLGC in
        z/Architecture mode.
-       ("zero_extendqihi2", "*zero_extendqihi2_64", "*zero_extendqihi2_31"): 
+       ("zero_extendqihi2", "*zero_extendqihi2_64", "*zero_extendqihi2_31"):
        Likewise.
-       
+
        * config/s390/s390.md ("*tmdi_ext"): Allow in both 64-bit
        and 31-bit mode.
        ("ptr_extend"): Allow only in 64-bit mode.
 
        * config/s390/s390.c (struct machine_function): Remove member
        literal_pool_label.
-       (s390_optimize_prolog): Replace TEMP_REG argument with 
+       (s390_optimize_prolog): Replace TEMP_REG argument with
        TEMP_USED and BASE_USED.  Do not check get_pool_size ().
-       (general_s_operand): Accept all immediates before reload if 
-       ALLOW_IMMEDIATE.  If not ALLOW_IMMEDIATE, reject literal pool 
+       (general_s_operand): Accept all immediates before reload if
+       ALLOW_IMMEDIATE.  If not ALLOW_IMMEDIATE, reject literal pool
        references.
        (s390_output_symbolic_const): Remove UNSPEC_LTREL_OFFSET handling.
        (find_constant_pool_ref): Ignore UNSPECV_POOL_ENTRY insns.
        (s390_alloc_pool): New function.
        (s390_new_pool): Call it.
        (s390_dump_pool): Add REMOTE_LABEL argument.
-       (s390_chunkify_start): Add BASE_REG argument.  Do not check 
+       (s390_chunkify_start): Add BASE_REG argument.  Do not check
        get_pool_size ().
-       (s390_chunkify_finish): Add BASE_REG argument.  Adapt 
+       (s390_chunkify_finish): Add BASE_REG argument.  Adapt
        s390_dump_pool call.
        (s390_pool_count, s390_nr_constants): Remove.
        (s390_output_constant_pool): Remove.
        (s390_mainpool_finish): New function.
        (s390_mainpool_cancel): New function.
        (s390_reorg): Implement main literal pool handling.
-       (s390_emit_prologue): Emit main_pool placeholder instead of 
+       (s390_emit_prologue): Emit main_pool placeholder instead of
        literal_pool_31 / literal_pool_64 insns.
        * config/s390/s390.h (s390_pool_count, s390_nr_constants): Remove.
        (ASM_OUTPUT_POOL_PROLOGUE, ASM_OUTPUT_SPECIAL_POOL_ENTRY): Remove.
        from fixinc.svr4.
        * fixinc/inclhack.def (ptx_pwd_h): New disabled fix, ported
        from fixinc.ptx.
-        * fixinc/inclhack.def (ptx_sys_mc_param_h): New disabled fix,
-        ported from fixinc.ptx.
-       
+       * fixinc/inclhack.def (ptx_sys_mc_param_h): New disabled fix,
+       ported from fixinc.ptx.
+
 2003-08-26  Per Bothner  <pbothner@apple.com>
 
        * cpplib.h (struct cpp_token):  Change type of field line to fileline.
 2003-08-26  Ulrich Weigand  <uweigand@de.ibm.com>
 
        * config/s390/s390.c (emit_prologue): Don't check literal pool size.
-       * config/s390/s390.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Call 
+       * config/s390/s390.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Call
        s390_output_pool_entry.
 
 2003-08-26  Nathanael Nerode  <neroden@gcc.gnu.org>
 
-       * fixinc/inclhack.def (svr4_preproc_lint_on, 
-       svr4_preproc_lint_off, svr4_preproc_machine): New disabled 
+       * fixinc/inclhack.def (svr4_preproc_lint_on,
+       svr4_preproc_lint_off, svr4_preproc_machine): New disabled
        fixes, ported from fixinc.svr4.
 
 2003-08-26  Mark Mitchell  <mark@codesourcery.com>
 
 2003-08-26  Andreas Krebbel <krebbel1@de.ibm.com>
 
-       * config/s390/s390.md ("*fmadddf", "*fmsubdf", 
+       * config/s390/s390.md ("*fmadddf", "*fmsubdf",
        "*fmaddsf", "*fmsubsf"): New insns.
 
 2003-08-26  Roger Sayle  <roger@eyesopen.com>
        (clear_storage_via_libcall): Likewise.
        * tree.c (build): Set TREE_SIDE_EFFECTS for non-const, non-pure
        CALL_EXPRs.
-       
+
        * gcse.c (is_too_expensive): New function.
        (gcse_main, delete_null_pointer_checks, bypass_jumps): Use it.