1. 05 Jan, 2015 1 commit
  2. 11 Nov, 2014 2 commits
  3. 01 Nov, 2014 1 commit
    • [Patch 7/7] Remove *_BY_PIECES_P · a5474c4c
      gcc/
      
      	* doc/tm.texi.in (MOVE_BY_PIECES_P): Remove.
      	(CLEAR_BY_PIECES_P): Likewise.
      	(SET_BY_PIECES_P): Likewise.
      	(STORE_BY_PIECES_P): Likewise.
      	* doc/tm.texi: Regenerate.
      	* system.h: Poison MOVE_BY_PIECES_P, CLEAR_BY_PIECES_P,
      	SET_BY_PIECES_P, STORE_BY_PIECES_P.
      	* expr.c (MOVE_BY_PIECES_P): Remove.
      	(CLEAR_BY_PIECES_P): Likewise.
      	(SET_BY_PIECES_P): Likewise.
      	(STORE_BY_PIECES_P): Likewise.
      	(can_move_by_pieces): Rewrite in terms of
      	targetm.use_by_pieces_infrastructure_p.
      	(emit_block_move_hints): Likewise.
      	(can_store_by_pieces): Likewise.
      	(store_by_pieces): Likewise.
      	(clear_storage_hints): Likewise.
      	(emit_push_insn): Likewise.
      	(expand_constructor): Likewise.
      
      From-SVN: r217004
      James Greenhalgh committed
  4. 23 Sep, 2014 1 commit
    • Remove LIBGCC2_LONG_DOUBLE_TYPE_SIZE target macro. · 9a79452d
      This patch removes the target macro LIBGCC2_LONG_DOUBLE_TYPE_SIZE.
      
      After recent changes, this macro was used in two ways in libgcc: to
      determine the mode of long double in dfp-bit.h, and to determine
      whether a particular mode has excess precision for use in complex
      multiplication.
      
      The former is concerned specifically with long double: it relates to
      use of strtold for converting between decimal and binary floating
      point.  This is replaced by comparing __LDBL_MANT_DIG__ with the
      appropriate __LIBGCC_*_MANT_DIG__ macro.  The latter is replaced
      __LIBGCC_*_EXCESS_PRECISION__ predefined macros.
      
      Remarks:
      
      * Comparing (__LDBL_MANT_DIG__ == __LIBGCC_XF_MANT_DIG__) is more
        fragile than it looks; it's possible for XFmode to have 53-bit
        mantissa (TARGET_96_ROUND_53_LONG_DOUBLE, on FreeBSD and
        DragonFlyBSD 32-bit), in which case such a comparison would not
        distinguish XFmode and DFmode as possible modes for long double.
        Fortunately, no target supporting that form of XFmode also supports
        long double = double (but if some target did, we'd need e.g. an
        additional macro giving the exponent range of each mode).
      
        Furthermore, this code doesn't actually get used for x86 (or any
        other target with XFmode support), because x86 uses BID not DPD and
        BID has its own conversion code (which handles conversions for both
        XFmode and TFmode without needing to go via strtold).  And FreeBSD
        and DragonFlyBSD aren't among the targets with DFP support.  So
        while in principle this code is fragile and it's a deficiency that
        it can't support both XFmode and TFmode at once (something that
        can't be solved with the string conversion approach without libc
        having TS 18661 functions such as strtof128), all these issues
        should not be a problem in practice.
      
      * If other cases of excess precision are supported in future, the code
        for defining __LIBGCC_*_EXCESS_PRECISION__ may need updating.
        Although the most likely such cases might not actually involve
        excess precision for any mode used in libgcc - FLT_EVAL_METHOD being
        32 to do _Float16 arithmetic on _Float32 should have the effect of
        _Complex _Float16 arithmetic using __mulsc3 and __divsc3, rather
        than currently nonexistent __mulhc3 and __divhc3 as in bug 63250 for
        ARM.
      
      * As has been noted in the context of simultaneous support for
        __float128 and __ibm128 on Power, the semantics of macros such as
        LONG_DOUBLE_TYPE_SIZE are problematic because they rely on a
        poorly-defined precision value for floating-point modes (which seems
        to be intended as the number of significant bits in the
        representation, e.g. 80 for XFmode which may be either 12 or 16
        bytes) uniquely identifying a mode (although defining an arbitrarily
        different value for one of the modes you wish to distinguish may
        work as a hack).  It would be cleaner to have a target hook that
        gives a machine mode directly for float, double and long double,
        rather than going via these precision values.  By eliminating all
        use of these macros (FLOAT_TYPE_SIZE, DOUBLE_TYPE_SIZE,
        LONG_DOUBLE_TYPE_SIZE) from code built for the target, this patch
        facilitates such a conversion to a hook (which I suppose would take
        some suitable enum as an argument to identify which of the three
        types to return a mode for).
      
        (The issue of multiple type support for DFP conversions would apply
        in that Power case.
        <https://gcc.gnu.org/ml/gcc-patches/2014-07/msg01084.html> doesn't
        seem to touch on it, but it would seem reasonable to punt on it
        initially as hard to fix.  There would also be the issue of getting
        functions such as __powikf2, __mulkc3, __divkc3 defined, but that's
        rather easier to address.)
      
      Bootstrapped with no regressions on x86_64-unknown-linux-gnu.
      
      gcc:
      	* doc/tm.texi.in (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
      	* doc/tm.texi: Regenerate.
      	* system.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Poison.
      	* config/alpha/alpha.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
      	* config/i386/i386-interix.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE):
      	Remove.
      	* config/i386/i386.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
      	* config/i386/rtemself.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
      	* config/ia64/ia64.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
      	* config/m68k/m68k.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
      	* config/m68k/netbsd-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE):
      	Remove.
      	* config/mips/mips.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
      	* config/mips/n32-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
      	* config/msp430/msp430.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
      	* config/rl78/rl78.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
      	* config/rs6000/rs6000.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
      	* config/rx/rx.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
      	* config/s390/s390.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
      	* config/sparc/freebsd.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
      	* config/sparc/linux.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
      	* config/sparc/linux64.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
      	* config/sparc/netbsd-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE):
      	Remove.
      
      gcc/c-family:
      	* c-cppbuiltin.c (c_cpp_builtins): Define
      	__LIBGCC_*_EXCESS_PRECISION__ macros for supported floating-point
      	modes.
      
      libgcc:
      	* dfp-bit.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
      	(__LIBGCC_XF_MANT_DIG__): Define if not already defined.
      	(LONG_DOUBLE_HAS_XF_MODE): Define in terms of
      	__LIBGCC_XF_MANT_DIG__.
      	(__LIBGCC_TF_MANT_DIG__): Define if not already defined.
      	(LONG_DOUBLE_HAS_TF_MODE): Define in terms of
      	__LIBGCC_TF_MANT_DIG__.
      	* libgcc2.c (NOTRUNC): Define in terms of
      	__LIBGCC_*_EXCESS_PRECISION__, not LIBGCC2_LONG_DOUBLE_TYPE_SIZE.
      	* libgcc2.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
      
      From-SVN: r215491
      Joseph Myers committed
  5. 18 Sep, 2014 1 commit
    • Remove LIBGCC2_TF_CEXT target macro. · dd69f047
      This patch removes the (undocumented) LIBGCC2_TF_CEXT target macro,
      replacing it by -fbuilding-libgcc predefines (and thereby gets rid of
      another LIBGCC2_LONG_DOUBLE_TYPE_SIZE conditional, though some more
      patches are needed before that target macro can be eliminated).  This
      macro indicated the suffix used on __builtin_huge_val,
      __builtin_copysign, __builtin_fabs built-in function names to produce
      the names for a given floating-point mode.
      
      Predefines are added for all floating-point modes supported for
      libgcc, not just TFmode.  These are fully accurate for modes
      corresponding to float, double and long double.  For other modes, the
      suffix for *constants* is determined by the targetm.c.mode_for_suffix
      hook (the limit to two possible suffixes 'w' and 'q' being hardcoded
      in various places).  This is in fact the suffix for built-in functions
      as well where such functions exist.
      
      * For i386, the *q functions always exist (whether or not TFmode is
        used for long double).  The *w functions never exist (but this
        doesn't matter for libgcc, since no i386 configuration treats XFmode
        as a supported scalar mode if long double is TFmode; if __float80
        were to be supported for 64-bit Android, properly such functions
        ought to be added).
      
      * For ia64, the *q functions exist for non-HP-UX (under HP-UX, long
        double is TFmode, so they aren't needed).  The *w functions never
        exist.  This is an issue for this libgcc code for the XFmode complex
        functions in libgcc on HP-UX; as I understand it, right now those
        will accidentally be using TFmode versions of those three functions,
        so involving unnecessary conversions, while the sanity check on CEXT
        accidentally passes because all it tests is the sizes of the types.
      
      Because of the lack of 'w' functions, the patch uses 'l' when the
      constant suffix is 'w', matching what the existing libgcc code would
      do for IA64 HP-UX in that case.
      
      Ideally there would be generic code to create such built-in functions
      for all supported floating-point types.  That may be something to
      consider if support for TS 18661-3 (standard bindings for IEEE
      754-2008, defining names such as _Float128, and function names such as
      copysignf128) is added in future.
      
      Bootstrapped with no regressions on x86_64-unknown-linux-gnu.
      
      gcc:
      	* system.h (LIBGCC2_TF_CEXT): Poison.
      	* config/i386/cygming.h (LIBGCC2_TF_CEXT): Remove.
      	* config/i386/darwin.h (LIBGCC2_TF_CEXT): Likewise.
      	* config/i386/dragonfly.h (LIBGCC2_TF_CEXT): Likewise.
      	* config/i386/freebsd.h (LIBGCC2_TF_CEXT): Likewise.
      	* config/i386/gnu-user-common.h (LIBGCC2_TF_CEXT): Likewise.
      	* config/i386/openbsdelf.h (LIBGCC2_TF_CEXT): Likewise.
      	* config/i386/sol2.h (LIBGCC2_TF_CEXT): Likewise.
      	* config/ia64/ia64.h (LIBGCC2_TF_CEXT): Likewise.
      	* config/ia64/linux.h (LIBGCC2_TF_CEXT): Likewise.
      
      gcc/c-family:
      	* c-cppbuiltin.c (c_cpp_builtins): Define __LIBGCC_*_FUNC_EXT__
      	for supported floating-point modes.
      
      libgcc:
      	* libgcc2.c (CEXT): Define using __LIBGCC_*_FUNC_EXT__.
      
      From-SVN: r215368
      Joseph Myers committed
  6. 12 Sep, 2014 1 commit
    • Remove LIBGCC2_HAS_?F_MODE target macros. · 8cc4b7a2
      This patch removes the LIBGCC2_HAS_{SF,DF,XF,TF}_MODE target macros,
      replacing them by predefines with -fbuilding-libgcc, together with a
      target hook that can influence those predefines when needed.
      
      The new default is that a floating-point mode is supported in libgcc
      if (a) it passes the scalar_mode_supported_p hook (otherwise it's not
      plausible for it to be supported in libgcc) and (b) it's one of those
      four modes (since those are the modes for which libgcc hardcodes the
      possibility of support).  The target hook can override the default
      choice (in either direction) for modes that pass
      scalar_mode_supported_p (although overriding in the direction of
      returning true when the default would return false only makes sense if
      all relevant functions are specially defined in libgcc for that
      particular target).
      
      The previous default settings depended on various settings such as
      LIBGCC2_LONG_DOUBLE_TYPE_SIZE, as well as targets defining the above
      target macros if the default wasn't correct.
      
      The default scalar_mode_supported_p only declares a floating-point
      mode to be supported if it matches one of float / double / long
      double.  This means that in most cases where a mode is only supported
      conditionally in libgcc (TFmode only supported if it's the mode of
      long double, most commonly), the default gets things right.  Overrides
      were needed in the following cases:
      
      * SFmode would always have been supported in libgcc (the condition was
        BITS_PER_UNIT == 8, true for all current targets), but pdp11
        defaults to 64-bit float, and in that case SFmode would fail
        scalar_mode_supported_p.  I don't know if libgcc actually built for
        pdp11 (and the port may well no longer be being used), but this
        patch adds a scalar_mode_supported_p hook to it to ensure SFmode is
        treated as supported.
      
      * Certain i386 and ia64 targets need the new hook to match the
        existing cases for when XFmode or TFmode support is present in
        libgcc.  For i386, the hook can always declare XFmode to be
        supported - the cases where it's not are the cases where long double
        is TFmode, in which case XFmode fails scalar_mode_supported_p[*] -
        but TFmode support needs to be conditional.  (And of the targets not
        defining LIBGCC2_HAS_TF_MODE before this patch, some defined
        LONG_DOUBLE_TYPE_SIZE to 64, so ensuring LIBGCC2_HAS_TF_MODE would
        always be false, while others did not define it, so allowing it to
        be true in the -mlong-double-128 case.  This patch matches that
        logic, although I suspect all the latter targets would have been
        broken if you tried to enable -mlong-double-128 by default, for lack
        of the soft-fp TFmode support in libgcc, which is separately
        configured.)
      
        [*] I don't know if it's deliberate not to support __float80 at all
        with -mlong-double-128.
      
      In order to implement the default version of the new hook,
      insn-modes.h was made to contain macros such as HAVE_TFmode for each
      machine mode, so the default hook can contain conditionals on whether
      XFmode and TFmode exist (to match the hardcoding of a list of modes in
      libgcc).  This is also used in fortran/trans-types.c; previously it
      had a conditional on defined(LIBGCC2_HAS_TF_MODE) (a bit dubious,
      since it ignored the value of the macro), which is replaced by testing
      defined(HAVE_TFmode), in conjunction with requiring
      targetm.libgcc_floating_mode_supported_p.
      
      (Fortran is testing something stronger than that hook: not only is
      libgcc support required, but also libm or equivalent.  Thus, it has a
      test for ENABLE_LIBQUADMATH_SUPPORT in the case that the mode is
      TFmode and that's not the same as any of the three standard types.
      The old and new tests are intended to accept exactly the same set of
      modes for all targets.)
      
      Apart from the four target macros eliminated by this patch, it gets us
      closer to eliminating LIBGCC2_LONG_DOUBLE_TYPE_SIZE as well, though a
      few more places using that macro need changing first.
      
      Bootstrapped with no regressions on x86_64-unknown-linux-gnu; also
      built cc1 for crosses to ia64-elf and pdp11-none as a minimal test of
      changes for those targets.
      
      gcc:
      	* target.def (libgcc_floating_mode_supported_p): New hook.
      	* targhooks.c (default_libgcc_floating_mode_supported_p): New
      	function.
      	* targhooks.h (default_libgcc_floating_mode_supported_p): Declare.
      	* doc/tm.texi.in (LIBGCC2_HAS_DF_MODE, LIBGCC2_HAS_XF_MODE)
      	(LIBGCC2_HAS_TF_MODE): Remove.
      	(TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): New @hook.
      	* doc/tm.texi: Regenerate.
      	* genmodes.c (emit_insn_modes_h): Define HAVE_%smode for each
      	machine mode.
      	* system.h (LIBGCC2_HAS_SF_MODE, LIBGCC2_HAS_DF_MODE)
      	(LIBGCC2_HAS_XF_MODE, LIBGCC2_HAS_TF_MODE): Poison.
      	* config/i386/cygming.h (LIBGCC2_HAS_TF_MODE): Remove.
      	* config/i386/darwin.h (LIBGCC2_HAS_TF_MODE): Remove.
      	* config/i386/djgpp.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
      	* config/i386/dragonfly.h (LIBGCC2_HAS_TF_MODE): Remove.
      	* config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE): Remove.
      	* config/i386/gnu-user-common.h (LIBGCC2_HAS_TF_MODE): Remove.
      	* config/i386/i386-interix.h (IX86_NO_LIBGCC_TFMODE): Define.
      	* config/i386/i386.c (ix86_libgcc_floating_mode_supported_p): New
      	function.
      	(TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Define.
      	* config/i386/i386elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
      	* config/i386/lynx.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
      	* config/i386/netbsd-elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
      	* config/i386/netbsd64.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
      	* config/i386/nto.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
      	* config/i386/openbsd.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
      	* config/i386/openbsdelf.h (LIBGCC2_HAS_TF_MODE): Remove.
      	* config/i386/rtemself.h (IX86_NO_LIBGCC_TFMODE): Define.
      	* config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Remove.
      	* config/i386/vx-common.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
      	* config/ia64/elf.h (IA64_NO_LIBGCC_TFMODE): Define.
      	* config/ia64/freebsd.h (IA64_NO_LIBGCC_TFMODE): Define.
      	* config/ia64/hpux.h (LIBGCC2_HAS_XF_MODE, LIBGCC2_HAS_TF_MODE):
      	Remove.
      	* config/ia64/ia64.c (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P):
      	New macro.
      	(ia64_libgcc_floating_mode_supported_p): New function.
      	* config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): Remove.
      	* config/ia64/vms.h (IA64_NO_LIBGCC_XFMODE)
      	(IA64_NO_LIBGCC_TFMODE): Define.
      	* config/msp430/msp430.h (LIBGCC2_HAS_DF_MODE): Remove.
      	* config/pdp11/pdp11.c (TARGET_SCALAR_MODE_SUPPORTED_P): New
      	macro.
      	(pdp11_scalar_mode_supported_p): New function.
      	* config/rl78/rl78.h (LIBGCC2_HAS_DF_MODE): Remove.
      	* config/rx/rx.h (LIBGCC2_HAS_DF_MODE): Remove.
      
      gcc/c-family:
      	* c-cppbuiltin.c (c_cpp_builtins): Define __LIBGCC_HAS_%s_MODE__
      	macros for floating-point modes.
      
      gcc/fortran:
      	* trans-types.c (gfc_init_kinds): Check
      	targetm.libgcc_floating_mode_supported_p for floating-point
      	modes.  Check HAVE_TFmode instead of LIBGCC2_HAS_TF_MODE.
      
      libgcc:
      	* libgcc2.h (LIBGCC2_HAS_SF_MODE): Define using
      	__LIBGCC_HAS_SF_MODE__.
      	(LIBGCC2_HAS_DF_MODE): Define using __LIBGCC_HAS_DF_MODE__.
      	(LIBGCC2_HAS_XF_MODE): Define using __LIBGCC_HAS_XF_MODE__.
      	(LIBGCC2_HAS_TF_MODE): Define using __LIBGCC_HAS_TF_MODE__.
      	* config/libbid/bid_gcc_intrinsics.h
      	(LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Do not define.
      	(LIBGCC2_HAS_XF_MODE): Define using __LIBGCC_HAS_XF_MODE__.
      	(LIBGCC2_HAS_TF_MODE): Define using __LIBGCC_HAS_TF_MODE__.
      	* fixed-bit.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Do not define.
      	(LIBGCC2_HAS_SF_MODE): Define using __LIBGCC_HAS_SF_MODE__.
      	(LIBGCC2_HAS_DF_MODE): Define using __LIBGCC_HAS_DF_MODE__.
      
      From-SVN: r215215
      Joseph Myers committed
  7. 08 Sep, 2014 2 commits
    • Remove SF_SIZE etc. target macros. · 66bb34c0
      gcc:
      	* config/i386/cygming.h (TF_SIZE): Remove.
      	* config/i386/darwin.h (TF_SIZE): Remove.
      	* config/i386/dragonfly.h (TF_SIZE): Remove.
      	* config/i386/freebsd.h (TF_SIZE): Remove.
      	* config/i386/gnu-user-common.h (TF_SIZE): Remove.
      	* config/i386/openbsdelf.h (TF_SIZE): Remove.
      	* config/i386/sol2.h (TF_SIZE): Remove.
      	* config/ia64/hpux.h (XF_SIZE, TF_SIZE): Remove.
      	* config/ia64/linux.h (TF_SIZE): Remove.
      	* doc/tm.texi.in (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Remove.
      	* doc/tm.texi: Regenerate.
      	* system.h (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Poison.
      
      gcc/c-family:
      	* c-cppbuiltin.c (c_cpp_builtins): Define macros for mantissa
      	digits of floating-point modes if -fbuilding-libgcc.
      
      libgcc:
      	* libgcc2.c (SF_SIZE): Change all uses to __LIBGCC_SF_MANT_DIG__.
      	(DF_SIZE): Change all uses to __LIBGCC_DF_MANT_DIG__.
      	(XF_SIZE): Change all uses to __LIBGCC_XF_MANT_DIG__.
      	(TF_SIZE): Change all uses to __LIBGCC_TF_MANT_DIG__.
      	* libgcc2.h (SF_SIZE): Change to __LIBGCC_SF_MANT_DIG__.  Give
      	error if not defined and LIBGCC2_HAS_SF_MODE is defined.
      	(DF_SIZE): Change to __LIBGCC_DF_MANT_DIG__.  Give error if not
      	defined and LIBGCC2_HAS_DF_MODE is defined.
      	(XF_SIZE): Change to __LIBGCC_XF_MANT_DIG__.  Give error if not
      	defined and LIBGCC2_HAS_XF_MODE is defined.
      	(TF_SIZE): Change to __LIBGCC_TF_MANT_DIG__.  Give error if not
      	defined and LIBGCC2_HAS_TF_MODE is defined.
      
      From-SVN: r215014
      Joseph Myers committed
    • Remove no-longer-needed fp-bit target macros. · 9686a2e6
      gcc:
      	* defaults.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO):
      	Remove.
      	* doc/tm.texi.in (ROUND_TOWARDS_ZERO, LARGEST_EXPONENT_IS_NORMAL):
      	Remove.
      	* doc/tm.texi: Regenerate.
      	* system.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO):
      	Poison.
      	* config/arm/arm.h (LARGEST_EXPONENT_IS_NORMAL): Remove.
      	* config/cris/cris.h (__make_dp): Remove.
      
      libgcc:
      	* fp-bit.c (pack_d, unpack_d): Remove LARGEST_EXPONENT_IS_NORMAL
      	and ROUND_TOWARDS_ZERO conditionals.
      
      From-SVN: r215013
      Joseph Myers committed
  8. 05 Sep, 2014 1 commit
    • Use rtx_insn for more scheduler things, plus CONST_CAST_RTX_INSN · c838c402
      gcc/ChangeLog:
      2014-09-05  David Malcolm  <dmalcolm@redhat.com>
      
      	* sched-deps.c (sched_get_condition_with_rev_uncached): Strengthen
      	param "insn" from const_rtx to const rtx_insn *.
      	(sched_get_reverse_condition_uncached): Likewise.
      	(sched_get_condition_with_rev): Likewise.
      	(sched_has_condition_p): Likewise.
      	(sched_insns_conditions_mutex_p): Likewise for both params.
      	(sched_insn_is_legitimate_for_speculation_p): Likewise for param
      	"insn"; convert use of CONST_CAST_RTX to CONST_CAST_RTX_INSN.
      	(setup_insn_reg_uses): Move local "list" to be more tightly
      	scoped, strengthening it from an rtx to an rtx_insn_list *.  Use
      	its methods for clarity and type-safety.
      	(sched_analyze_1): Strengthen local "pending" from rtx to
      	rtx_insn_list *, and local "pending_mem" from rtx to
      	rtx_expr_list *.  Use methods of each for clarity and type-safety.
      	(sched_analyze_2): Likewise.
      	(sched_analyze_insn): Likewise.
      
      	* sched-int.h (sched_get_reverse_condition_uncached): Strengthen
      	param from const_rtx to const rtx_insn *.
      	(sched_insns_conditions_mutex_p): Likewise for both params.
      	(sched_insn_is_legitimate_for_speculation_p): Likewise for first
      	param.
      
      	* system.h (CONST_CAST_RTX_INSN): New macro.
      
      From-SVN: r214967
      David Malcolm committed
  9. 24 Aug, 2014 1 commit
  10. 11 Jun, 2014 2 commits
    • system.h (CONST_DOUBLE_OK_FOR_CONSTRAINT_P): Poison. · 7fd308cf
      gcc/
      	* system.h (CONST_DOUBLE_OK_FOR_CONSTRAINT_P): Poison.
      	* genpreds.c (have_const_dbl_constraints): Delete.
      	(add_constraint): Don't set it.
      	(write_tm_preds_h): Don't call CONST_DOUBLE_OK_FOR_CONSTRAINT_P.
      	* ira-costs.c (record_reg_classes): Handle CONST_INT and CONST_DOUBLE
      	constraints using the lookup_constraint logic.
      	* ira-lives.c (single_reg_class): Likewise.
      	* ira.c (ira_setup_alts): Likewise.
      	* lra-constraints.c (process_alt_operands): Likewise.
      	* recog.c (asm_operand_ok, constrain_operands): Likewise.
      	* reload.c (find_reloads): Likewise.
      
      From-SVN: r211474
      Richard Sandiford committed
    • system.h (REG_CLASS_FROM_CONSTRAINT): Poison. · 777e635f
      gcc/
      	* system.h (REG_CLASS_FROM_CONSTRAINT): Poison.
      	(REG_CLASS_FOR_CONSTRAINT, EXTRA_CONSTRAINT_STR): Likewise.
      	(EXTRA_MEMORY_CONSTRAINT, EXTRA_ADDRESS_CONSTRAINT): Likewise.
      	* genpreds.c (print_type_tree): New function.
      	(write_tm_preds_h): Remove REG_CLASS_FROM_CONSTRAINT,
      	REG_CLASS_FOR_CONSTRAINT, EXTRA_MEMORY_CONSTRAINT,
      	EXTRA_ADDRESS_CONSTRAINT and EXTRA_CONSTRAINT_STR.
      	Write out enum constraint_type and get_constraint_type.
      	* lra-constraints.c (satisfies_memory_constraint_p): Take a
      	constraint_num rather than a constraint string.
      	(satisfies_address_constraint_p): Likewise.
      	(reg_class_from_constraints): Avoid old constraint macros.
      	(process_alt_operands, process_address_1): Likewise.
      	(curr_insn_transform): Likewise.
      	* ira-costs.c (record_reg_classes): Likewise.
      	(record_operand_costs): Likewise.
      	* ira-lives.c (single_reg_class): Likewise.
      	(ira_implicitly_set_insn_hard_regs): Likewise.
      	* ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise.
      	* postreload.c (reload_cse_simplify_operands): Likewise.
      	* recog.c (asm_operand_ok, preprocess_constraints): Likewise.
      	(constrain_operands, peep2_find_free_register): Likewise.
      	* reload.c (push_secondary_reload, scratch_reload_class): Likewise.
      	(find_reloads, alternative_allows_const_pool_ref): Likewise.
      	* reload1.c (maybe_fix_stack_asms): Likewise.
      	* stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
      	* targhooks.c (default_secondary_reload): Likewise.
      	* config/m32c/m32c.c (m32c_matches_constraint_p): Avoid reference
      	to EXTRA_CONSTRAINT_STR.
      	* config/sparc/constraints.md (U): Likewise REG_CLASS_FROM_CONSTRAINT.
      
      From-SVN: r211471
      Richard Sandiford committed
  11. 03 Jun, 2014 1 commit
    • gcc/ · b48e9677
      	* defaults.h (USE_MD_CONSTRAINTS, EXTRA_MEMORY_CONSTRAINT)
      	(EXTRA_ADDRESS_CONSTRAINT, DEFAULT_CONSTRAINT_LEN, CONSTRAINT_LEN)
      	(CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER_P)
      	(REG_CLASS_FROM_CONSTRAINT, EXTRA_CONSTRAINT_STR): Delete definitions
      	in this file.
      	(REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P)
      	(CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Move poising to...
      	* system.h: ...here and make it unconditional.
      	* target.def (conditional_register_usage): Mention
      	define_register_constraint instead of old-style constraint macros.
      	* doc/tm.texi.in: Remove documentation for old-style constraint macros.
      	* doc/tm.texi: Regenerate.
      	* genoutput.c: Remove USE_MD_CONSTRAINTS conditions and all code
      	protected by !USE_MD_CONSTRAINTS.
      	* config/frv/frv.md: Remove quote from old version of documentation.
      	* config/frv/frv.c (frv_conditional_register_usage): Likewise.
      	* config/m32r/m32r.c (easy_di_const, easy_df_const): Avoid mentioning
      	CONST_DOUBLE_OK_FOR_LETTER.
      	* config/sh/constraints.md: Likewise EXTRA_CONSTRAINT.
      
      From-SVN: r211161
      Richard Sandiford committed
  12. 27 May, 2014 2 commits
    • system.h (__STDC_FORMAT_MACROS): Define as very first thing. · 7ea7f668
      2014-05-27  Richard Biener  <rguenther@suse.de>
      
      	* system.h (__STDC_FORMAT_MACROS): Define as very first thing.
      
      From-SVN: r210973
      Richard Biener committed
    • system.h (TEST_BIT): New macro. · 4cc8d9d2
      gcc/
      	* system.h (TEST_BIT): New macro.
      	* recog.h (alternative_mask): New type.
      	(ALL_ALTERNATIVES, ALTERNATIVE_BIT): New macros.
      	(recog_data_d): Replace alternative_enabled_p array with
      	enabled_alternatives.
      	(target_recog): New structure.
      	(default_target_recog, this_target_recog): Declare.
      	(get_enabled_alternatives, recog_init): Likewise.
      	* recog.c (default_target_recog, this_target_recog): New variables.
      	(get_enabled_alternatives): New function.
      	(extract_insn): Use it.
      	(recog_init): New function.
      	(preprocess_constraints, constrain_operands): Adjust for change to
      	recog_data.
      	* postreload.c (reload_cse_simplify_operands): Likewise.
      	* reload.c (find_reloads): Likewise.
      	* ira-costs.c (record_reg_classes): Likewise.
      	* ira-lives.c (single_reg_class): Likewise.  Fix bug in which
      	all alternatives after a disabled one would be skipped.
      	(ira_implicitly_set_insn_hard_regs): Likewise.
      	* ira.c (ira_setup_alts): Adjust for change to recog_data.
      	* lra-int.h (lra_insn_recog_data): Replace alternative_enabled_p
      	with enabled_alternatives.
      	* lra.c (free_insn_recog_data): Update accordingly.
      	(lra_update_insn_recog_data): Likewise.
      	(lra_set_insn_recog_data): Likewise.  Use get_enabled_alternatives.
      	* lra-constraints.c (process_alt_operands): Likewise.  Handle
      	only_alternative as part of the enabled mask.
      	* target-globals.h (this_target_recog): Declare.
      	(target_globals): Add a recog field.
      	(restore_target_globals): Restore this_target_recog.
      	* target-globals.c: Include recog.h.
      	(default_target_globals): Initialize recog field.
      	(save_target_globals): Likewise.
      	* reginfo.c (reinit_regs): Call recog_init.
      	* toplev.c (backend_init_target): Likewise.
      
      From-SVN: r210964
      Richard Sandiford committed
  13. 26 May, 2014 1 commit
    • system.h: Define __STDC_FORMAT_MACROS before including inttypes.h. · a9243bfc
      2014-05-23  Richard Biener  <rguenther@suse.de>
      
      	* system.h: Define __STDC_FORMAT_MACROS before
      	including inttypes.h.
      	* hwint.h (HOST_WIDEST_INT, HOST_BITS_PER_WIDEST_INT,
      	HOST_WIDEST_INT_PRINT, HOST_WIDEST_INT_PRINT_DEC,
      	HOST_WIDEST_INT_PRINT_DEC_C, HOST_WIDEST_INT_PRINT_UNSIGNED,
      	HOST_WIDEST_INT_PRINT_HEX, HOST_WIDEST_INT_PRINT_DOUBLE_HEX,
      	HOST_WIDEST_INT_C): Remove.
      	(PRId64, PRIi64, PRIo64, PRIu64, PRIx64, PRIX64): Define
      	if C99 inttypes.h is not available.
      
      	* coretypes.h (gcov_type, gcov_type_unsigned): Use [u]int64_t.
      	* gcov-io.h (gcov_type, gcov_type_unsigned): Likewise.
      	* gcov-io.c (gcov_histo_index): Drop non-64bit hwi case.
      	* cfgloop.h (struct niter_desc): Use uint64_t for niter field.
      	* bitmap.c (struct bitmap_descriptor_d): Use uint64_t for counters.
      	(struct output_info): Likewise.
      	(print_statistics): Adjust.
      	(dump_bitmap_statistics): Likewise.
      	* bt-load.c (migrate_btr_defs): Print with PRId64.
      	* cfg.c (dump_edge_info, dump_bb_info): Likewise.
      	(MAX_SAFE_MULTIPLIER): Adjust.
      	* cfghooks.c (dump_bb_for_graph): Print with PRId64.
      	* cgraph.c (cgraph_redirect_edge_call_stmt_to_callee,
      	dump_cgraph_node): Likewise.
      	* final.c (dump_basic_block_info): Likewise.
      	* gcov-dump.c (tag_counters, tag_summary, dump_working_sets): Likewise.
      	* gcov.c (format_gcov): Likewise.
      	* ipa-cp.c (good_cloning_opportunity_p): Likewise.  Use int64_t
      	for calculation.
      	(get_clone_agg_value): Use HOST_WIDE_INT for offset.
      	* ipa-inline.c (compute_max_insns): Use int64_t for calcuation.
      	(inline_small_functions, dump_overall_stats, dump_inline_stats):
      	Use PRId64 for dumping.
      	* ipa-profile.c (dump_histogram, ipa_profile): Likewise.
      	* ira-color.c (struct allocno_hard_regs): Use int64_t for cost.
      	(add_allocno_hard_regs): Adjust.
      	* loop-doloop.c (doloop_modify): Print using PRId64.
      	* loop-iv.c (inverse): Compute in uint64_t.
      	(determine_max_iter, iv_number_of_iterations): Likewise.
      	* loop-unroll.c (decide_peel_completely, decide_peel_simple):
      	Print using PRId64.
      	* lto-streamer-out.c (write_symbol): Use uint64_t.
      	* mcf.c (CAP_INFINITY): Use int64_t maximum.
      	(dump_fixup_edge, create_fixup_graph, cancel_negative_cycle,
      	find_max_flow, adjust_cfg_counts): Use int64_t and dump with PRId64.
      	* modulo-sched.c (const_iteration_count): Use int64_t.
      	(sms_schedule): Dump using PRId64.
      	* predict.c (dump_prediction): Likewise.
      	* pretty-print.h (pp_widest_integer): Remove.
      	* profile.c (get_working_sets, is_edge_inconsistent,
      	is_inconsistent, read_profile_edge_counts): Dump using PRId64.
      	* tree-pretty-print.c (pp_double_int): Remove case handling
      	HOST_BITS_PER_DOUBLE_INT == HOST_BITS_PER_WIDEST_INT.
      	* tree-ssa-math-opts.c (struct symbolic_number): Use uint64_t
      	and adjust users.
      	(pass_optimize_bswap::execute): Remove restriction on hosts.
      	* tree-streamer-in.c (streamer_alloc_tree): Use HOST_WIDE_INT.
      	* tree-streamer-out.c (streamer_write_tree_header): Likewise.
      	* tree.c (widest_int_cst_value): Remove.
      	* tree.h (widest_int_cst_value): Likewise.
      	* value-prof.c (dump_histogram_value): Print using PRId64.
      	* gengtype.c (main): Also inject int64_t.
      	* ggc-page.c (struct max_alignment): Use int64_t.
      	* alloc-pool.c (struct allocation_object_def): Likewise.
      	* ira-conflicts.c (build_conflict_bit_table): Use uint64_t
      	for computation.
      	* doc/tm.texi.in: Remove reference to HOST_WIDEST_INT.
      	* doc/tm.texi: Regenerated.
      	* gengtype-lex.l (IWORD): Handle [u]int64_t.
      	* config/sh/sh.c (expand_cbranchdi4): Use gcov_type.
      	* config/mmix/mmix-protos.h (mmix_intval, mmix_shiftable_wyde_value,
      	mmix_output_register_setting): Use [u]int64_t in prototypes.
      	* config/mmix/mmix.c (mmix_print_operand, mmix_output_register_setting,
      	mmix_shiftable_wyde_value, mmix_output_shiftvalue_op_from_str,
      	mmix_output_octa, mmix_output_shifted_value): Adjust.
      	(mmix_intval): Adjust.  Remove unreachable case.
      	* config/mmix/mmix.md (*nonlocal_goto_receiver_expanded): Use
      	int64_t.
      
      	lto/
      	* lto.c (lto_parse_hex): Use int64_t.
      	(lto_resolution_read): Likewise.
      
      From-SVN: r210931
      Richard Biener committed
  14. 06 May, 2014 1 commit
  15. 28 Apr, 2014 1 commit
    • configure.ac: Do valgrind header checks unconditionally. · 279a935f
      2014-04-28  Richard Biener  <rguenther@suse.de>
      
      	* configure.ac: Do valgrind header checks unconditionally.
      	Add --enable-valgrind-annotations.
      	* system.h: Guard valgrind header inclusion with
      	ENABLE_VALGRIND_ANNOTATIONS instead of ENABLE_VALGRIND_CHECKING.
      	* alloc-pool.c (pool_alloc, pool_free): Use
      	ENABLE_VALGRIND_ANNOTATIONS instead of ENABLE_VALGRIND_CHECKING
      	to guard possibly dead code.
      	* config.in: Regenerated.
      	* configure: Likewise.
      
      From-SVN: r209861
      Richard Biener committed
  16. 02 Jan, 2014 1 commit
  17. 19 Nov, 2013 1 commit
    • Convert gimple types from a union to C++ inheritance · daa6e488
      Patch partially autogenerated by refactor_gimple.py from
      https://github.com/davidmalcolm/gcc-refactoring-scripts
      revision 05fc808c61bd8ddd2372f29b79ceb2491360d298
      
      	* Makefile.in (GIMPLE_H): Add dep on is-a.h.
      	* coretypes.h (union gimple_statement_d): Remove declaration.
      	(gimple): Convert from being a "union gimple_statement_d *"
      	to a "struct gimple_statement_base *".
      	(const_gimple): Likewise (with "const").
      	* ggc.h (ggc_alloc_cleared_gimple_statement_d_stat): Replace
      	with...
      	(ggc_alloc_cleared_gimple_statement_stat): ...this.
      	* gimple-pretty-print.c (debug): Change parameter from a
      	"gimple_statement_d &" to a "gimple_statement_base &".
      	(debug): Change parameter from a "gimple_statement_d *" to
      	a "gimple_statement_base *".
      	* gimple-pretty-print.h (debug): Update declarations as above.
      	* gimple.c (gimple_alloc_stat): Update for renaming of
      	ggc_alloc_cleared_gimple_statement_d_stat to
      	ggc_alloc_cleared_gimple_statement_stat.
      	* gimple.h: Include "is-a.h" for use by is_a_helper
      	specializations in followup autogenerated patch.
      	(struct gimple statement_base): Make this type usable as a base
      	class by adding "desc", "tag" and "variable_size" to GTY, thus
      	using opting-in to gengtype's support for simple inheritance.
      	(gimple_statement_with_ops_base): Convert to a subclass of
      	gimple_statement_base, dropping initial "gsbase" field.  Note
      	that this type is abstract, with no GSS_ value, and thus no GTY
      	tag value.
      	(gimple_statement_with_ops): Convert to a subclass of
      	gimple_statement_with_ops_base, dropping initial "opbase" field.
      	Add tag value to GTY marking.  Update marking of op field to
      	reflect how num_ops field is accessed via inheritance.
      	(gimple_statement_with_memory_ops_base): Convert to a subclass of
      	gimple_statement_with_ops_base, dropping initial "opbase" field.
      	Add tag value to GTY marking.
      	(gimple_statement_with_memory_ops): Convert to a subclass of
      	public gimple_statement_with_memory_ops_base, dropping initial
      	"membase" field.  Add tag value to GTY marking.  Update marking
      	of op field to reflect how num_ops field is accessed via
      	inheritance.
      	(gimple_statement_call): Analogous changes that also update the
      	marking of the "u" union.
      	(gimple_statement_omp): Convert to a subclass of
      	gimple_statement_base, dropping initial "gsbase" field, adding
      	tag value to GTY marking.
      	(gimple_statement_bind): Likewise.
      	(gimple_statement_catch): Likewise.
      	(gimple_statement_eh_filter): Likewise.
      	(gimple_statement_eh_else): Likewise.
      	(gimple_statement_eh_mnt): Likewise.
      	(gimple_statement_phi): Likewise.
      	(gimple_statement_eh_ctrl): Likewise.
      	(gimple_statement_try): Likewise.
      	(gimple_statement_wce): Likewise.
      	(gimple_statement_asm): Convert to a subclass of
      	gimple_statement_with_memory_ops_base, dropping initial
      	"membase" field, adding tag value to GTY marking, and updating
      	marking of op field.
      	(gimple_statement_omp_critical): Convert to a subclass of
      	gimple_statement_omp, dropping initial "omp" field, adding tag
      	value to GTY marking.
      	(gimple_statement_omp_for): Likewise.
      	(gimple_statement_omp_parallel): Likewise.
      	(gimple_statement_omp_task): Convert to a subclass of
      	gimple_statement_omp_parallel, dropping initial "par" field,
      	adding tag value to GTY marking.
      	(gimple_statement_omp_sections): Convert to a subclass of
      	gimple_statement_omp, dropping initial "omp" field, adding
      	tag value to GTY marking.
      	(gimple_statement_omp_continue): Convert to a subclass of
      	gimple_statement_base, dropping initial "gsbase" field, adding
      	tag value to GTY marking.
      	(gimple_statement_omp_single): Convert to a subclass of
      	gimple_statement_omp, dropping initial "omp" field, adding
      	tag value to GTY marking.
      	(gimple_statement_omp_atomic_load): Convert to a subclass of
      	gimple_statement_base, dropping initial "gsbase" field, adding
      	tag value to GTY marking.
      	(gimple_statement_omp_atomic_store): Convert to a subclass of
      	gimple_statement_base, dropping initial "gsbase" field, adding
      	tag value to GTY marking.
      	(gimple_statement_transaction): Convert to a subclass of
      	gimple_statement_with_memory_ops_base, dropping initial "gsbase"
      	field, adding tag value to GTY marking.
      	(union gimple_statement_d): Remove.
      	* system.h (CONST_CAST_GIMPLE): Update to use
      	"struct gimple_statement_base *" rather than
      	"union gimple_statement_d *".
      	* tree-ssa-ccp.c (gimple_htab): Convert underlying type from
      	gimple_statement_d to gimple_statement_base.
      
      	* gimple.h (gimple_use_ops): Port from union to usage of
      	dyn_cast.
      	(gimple_set_use_ops): Port from union to usage of as_a.
      	(gimple_set_vuse): Likewise.
      	(gimple_set_vdef): Likewise.
      	(gimple_call_internal_fn): Port from union to a static_cast,
      	given that the type has already been asserted.
      	(gimple_omp_body_ptr): Port from unchecked union usage to
      	a static_cast.
      	(gimple_omp_set_body): Likewise.
      
      	* gimple-iterator.c (update_bb_for_stmts): Update for conversion of
      	gimple types to a true class hierarchy.
      	(update_call_edge_frequencies): Likewise.
      	(gsi_insert_seq_nodes_before): Likewise.
      	(gsi_insert_seq_nodes_after): Likewise.
      	(gsi_split_seq_after): Likewise.
      	(gsi_set_stmt): Likewise.
      	(gsi_split_seq_before): Likewise.
      	(gsi_remove): Likewise.
      	* gimple-iterator.h (gsi_one_before_end_p): Likewise.
      	(gsi_next): Likewise.
      	(gsi_prev): Likewise.
      	* gimple-pretty-print.c (dump_gimple_debug): Likewise.
      	* gimple-ssa.h (gimple_vuse_op): Likewise.
      	(gimple_vdef_op): Likewise.
      	* gimple-streamer-in.c (input_gimple_stmt): Likewise.
      	* gimple-streamer-out.c (output_gimple_stmt): Likewise.
      	* gimple.c (gimple_set_code): Likewise.
      	(gimple_alloc_stat): Likewise.
      	(gimple_set_subcode): Likewise.
      	(gimple_build_call_internal_1): Likewise.
      	(gimple_check_failed): Likewise.
      	(gimple_call_flags): Likewise.
      	(gimple_set_bb): Likewise.
      	* gimple.h (is_a_helper <gimple_statement_asm> (gimple)): New.
      	(is_a_helper <gimple_statement_bind> (gimple)): Likewise.
      	(is_a_helper <gimple_statement_call> (gimple)): Likewise.
      	(is_a_helper <gimple_statement_catch> (gimple)): Likewise.
      	(is_a_helper <gimple_statement_eh_ctrl> (gimple)): Likewise.
      	(is_a_helper <gimple_statement_eh_else> (gimple)): Likewise.
      	(is_a_helper <gimple_statement_eh_filter> (gimple)): Likewise.
      	(is_a_helper <gimple_statement_eh_mnt> (gimple)): Likewise.
      	(is_a_helper <gimple_statement_omp_atomic_load> (gimple)): Likewise.
      	(is_a_helper <gimple_statement_omp_atomic_store> (gimple)): Likewise.
      	(is_a_helper <gimple_statement_omp_continue> (gimple)): Likewise.
      	(is_a_helper <gimple_statement_omp_critical> (gimple)): Likewise.
      	(is_a_helper <gimple_statement_omp_for> (gimple)): Likewise.
      	(is_a_helper <gimple_statement_omp_parallel> (gimple)): Likewise.
      	(is_a_helper <gimple_statement_omp_sections> (gimple)): Likewise.
      	(is_a_helper <gimple_statement_omp_single> (gimple)): Likewise.
      	(is_a_helper <gimple_statement_omp_task> (gimple)): Likewise.
      	(is_a_helper <gimple_statement_phi> (gimple)): Likewise.
      	(is_a_helper <gimple_statement_transaction> (gimple)): Likewise.
      	(is_a_helper <gimple_statement_try> (gimple)): Likewise.
      	(is_a_helper <gimple_statement_wce> (gimple)): Likewise.
      	(is_a_helper <const gimple_statement_asm> (const_gimple)): Likewise.
      	(is_a_helper <const gimple_statement_bind> (const_gimple)): Likewise.
      	(is_a_helper <const gimple_statement_call> (const_gimple)): Likewise.
      	(is_a_helper <const gimple_statement_catch> (const_gimple)): Likewise.
      	(is_a_helper <const gimple_statement_eh_ctrl> (const_gimple)):
      	Likewise.
      	(is_a_helper <const gimple_statement_eh_filter> (const_gimple)):
      	Likewise.
      	(is_a_helper <const gimple_statement_omp_atomic_load> (const_gimple)):
      	Likewise.
      	(is_a_helper <const gimple_statement_omp_atomic_store>
      	(const_gimple)): Likewise.
      	(is_a_helper <const gimple_statement_omp_continue> (const_gimple)):
      	Likewise.
      	(is_a_helper <const gimple_statement_omp_critical> (const_gimple)):
      	Likewise.
      	(is_a_helper <const gimple_statement_omp_for> (const_gimple)):
      	Likewise.
      	(is_a_helper <const gimple_statement_omp_parallel> (const_gimple)):
      	Likewise.
      	(is_a_helper <const gimple_statement_omp_sections> (const_gimple)):
      	Likewise.
      	(is_a_helper <const gimple_statement_omp_single> (const_gimple)):
      	Likewise.
      	(is_a_helper <const gimple_statement_omp_task> (const_gimple)):
      	Likewise.
      	(is_a_helper <const gimple_statement_phi> (const_gimple)): Likewise.
      	(is_a_helper <const gimple_statement_transaction> (const_gimple)):
      	Likewise.
      	(gimple_seq_last): Update for conversion of gimple types to a true
      	class hierarchy.
      	(gimple_seq_set_last): Likewise.
      	(gimple_code): Likewise.
      	(gimple_bb): Likewise.
      	(gimple_block): Likewise.
      	(gimple_set_block): Likewise.
      	(gimple_location): Likewise.
      	(gimple_location_ptr): Likewise.
      	(gimple_set_location): Likewise.
      	(gimple_no_warning_p): Likewise.
      	(gimple_set_no_warning): Likewise.
      	(gimple_set_visited): Likewise.
      	(gimple_visited_p): Likewise.
      	(gimple_set_plf): Likewise.
      	(gimple_plf): Likewise.
      	(gimple_set_uid): Likewise.
      	(gimple_uid): Likewise.
      	(gimple_init_singleton): Likewise.
      	(gimple_modified_p): Likewise.
      	(gimple_set_modified): Likewise.
      	(gimple_expr_code): Likewise.
      	(gimple_has_volatile_ops): Likewise.
      	(gimple_set_has_volatile_ops): Likewise.
      	(gimple_omp_subcode): Likewise.
      	(gimple_omp_set_subcode): Likewise.
      	(gimple_omp_return_set_nowait): Likewise.
      	(gimple_omp_section_set_last): Likewise.
      	(gimple_omp_parallel_set_combined_p): Likewise.
      	(gimple_omp_atomic_set_need_value): Likewise.
      	(gimple_omp_atomic_set_seq_cst): Likewise.
      	(gimple_num_ops): Likewise.
      	(gimple_set_num_ops): Likewise.
      	(gimple_assign_nontemporal_move_p): Likewise.
      	(gimple_assign_set_nontemporal_move): Likewise.
      	(gimple_assign_rhs_code): Likewise.
      	(gimple_assign_set_rhs_code): Likewise.
      	(gimple_call_internal_p): Likewise.
      	(gimple_call_with_bounds_p): Likewise.
      	(gimple_call_set_with_bounds): Likewise.
      	(gimple_call_set_tail): Likewise.
      	(gimple_call_tail_p): Likewise.
      	(gimple_call_set_return_slot_opt): Likewise.
      	(gimple_call_return_slot_opt_p): Likewise.
      	(gimple_call_set_from_thunk): Likewise.
      	(gimple_call_from_thunk_p): Likewise.
      	(gimple_call_set_va_arg_pack): Likewise.
      	(gimple_call_va_arg_pack_p): Likewise.
      	(gimple_call_set_nothrow): Likewise.
      	(gimple_call_set_alloca_for_var): Likewise.
      	(gimple_call_alloca_for_var_p): Likewise.
      	(gimple_call_copy_flags): Likewise.
      	(gimple_cond_code): Likewise.
      	(gimple_cond_set_code): Likewise.
      	(gimple_cond_make_false): Likewise.
      	(gimple_cond_make_true): Likewise.
      	(gimple_asm_volatile_p): Likewise.
      	(gimple_asm_set_volatile): Likewise.
      	(gimple_asm_set_input): Likewise.
      	(gimple_asm_input_p): Likewise.
      	(gimple_try_kind): Likewise.
      	(gimple_try_set_kind): Likewise.
      	(gimple_try_catch_is_cleanup): Likewise.
      	(gimple_try_set_catch_is_cleanup): Likewise.
      	(gimple_wce_cleanup_eh_only): Likewise.
      	(gimple_wce_set_cleanup_eh_only): Likewise.
      	(gimple_debug_bind_p): Likewise.
      	(gimple_debug_source_bind_p): Likewise.
      	(gimple_omp_for_set_kind): Likewise.
      	(gimple_omp_for_set_combined_p): Likewise.
      	(gimple_omp_for_set_combined_into_p): Likewise.
      	(gimple_omp_target_set_kind): Likewise.
      	(gimple_transaction_subcode): Likewise.
      	(gimple_transaction_set_subcode): Likewise.
      	(gimple_predict_predictor): Likewise.
      	(gimple_predict_set_predictor): Likewise.
      	(gimple_predict_outcome): Likewise.
      	(gimple_predict_set_outcome): Likewise.
      	(gimple_transaction_set_label): Likewise.
      	(gimple_transaction_set_body): Likewise.
      	(gimple_transaction_label_ptr): Likewise.
      	(gimple_transaction_label): Likewise.
      	(gimple_transaction_body_ptr): Likewise.
      	(gimple_omp_continue_set_control_use): Likewise.
      	(gimple_omp_continue_control_use_ptr): Likewise.
      	(gimple_omp_continue_control_use): Likewise.
      	(gimple_omp_continue_set_control_def): Likewise.
      	(gimple_omp_continue_control_def_ptr): Likewise.
      	(gimple_omp_continue_control_def): Likewise.
      	(gimple_omp_atomic_load_rhs_ptr): Likewise.
      	(gimple_omp_atomic_load_rhs): Likewise.
      	(gimple_omp_atomic_load_set_rhs): Likewise.
      	(gimple_omp_atomic_load_lhs_ptr): Likewise.
      	(gimple_omp_atomic_load_lhs): Likewise.
      	(gimple_omp_atomic_load_set_lhs): Likewise.
      	(gimple_omp_atomic_store_val_ptr): Likewise.
      	(gimple_omp_atomic_store_val): Likewise.
      	(gimple_omp_atomic_store_set_val): Likewise.
      	(gimple_omp_for_cond): Likewise.
      	(gimple_omp_for_set_cond): Likewise.
      	(gimple_omp_sections_set_control): Likewise.
      	(gimple_omp_sections_control_ptr): Likewise.
      	(gimple_omp_sections_control): Likewise.
      	(gimple_omp_sections_set_clauses): Likewise.
      	(gimple_omp_sections_clauses_ptr): Likewise.
      	(gimple_omp_sections_clauses): Likewise.
      	(gimple_omp_teams_set_clauses): Likewise.
      	(gimple_omp_teams_clauses_ptr): Likewise.
      	(gimple_omp_teams_clauses): Likewise.
      	(gimple_omp_target_set_data_arg): Likewise.
      	(gimple_omp_target_data_arg_ptr): Likewise.
      	(gimple_omp_target_data_arg): Likewise.
      	(gimple_omp_target_set_child_fn): Likewise.
      	(gimple_omp_target_child_fn_ptr): Likewise.
      	(gimple_omp_target_child_fn): Likewise.
      	(gimple_omp_target_set_clauses): Likewise.
      	(gimple_omp_target_clauses_ptr): Likewise.
      	(gimple_omp_target_clauses): Likewise.
      	(gimple_omp_single_set_clauses): Likewise.
      	(gimple_omp_single_clauses_ptr): Likewise.
      	(gimple_omp_single_clauses): Likewise.
      	(gimple_omp_task_set_arg_align): Likewise.
      	(gimple_omp_task_arg_align_ptr): Likewise.
      	(gimple_omp_task_arg_align): Likewise.
      	(gimple_omp_task_set_arg_size): Likewise.
      	(gimple_omp_task_arg_size_ptr): Likewise.
      	(gimple_omp_task_arg_size): Likewise.
      	(gimple_omp_task_set_copy_fn): Likewise.
      	(gimple_omp_task_copy_fn_ptr): Likewise.
      	(gimple_omp_task_copy_fn): Likewise.
      	(gimple_omp_task_set_data_arg): Likewise.
      	(gimple_omp_task_data_arg_ptr): Likewise.
      	(gimple_omp_task_data_arg): Likewise.
      	(gimple_omp_task_set_child_fn): Likewise.
      	(gimple_omp_task_child_fn_ptr): Likewise.
      	(gimple_omp_task_child_fn): Likewise.
      	(gimple_omp_task_set_clauses): Likewise.
      	(gimple_omp_task_clauses_ptr): Likewise.
      	(gimple_omp_task_clauses): Likewise.
      	(gimple_omp_parallel_set_data_arg): Likewise.
      	(gimple_omp_parallel_data_arg_ptr): Likewise.
      	(gimple_omp_parallel_data_arg): Likewise.
      	(gimple_omp_parallel_set_child_fn): Likewise.
      	(gimple_omp_parallel_child_fn_ptr): Likewise.
      	(gimple_omp_parallel_child_fn): Likewise.
      	(gimple_omp_parallel_set_clauses): Likewise.
      	(gimple_omp_parallel_clauses_ptr): Likewise.
      	(gimple_omp_parallel_clauses): Likewise.
      	(gimple_omp_for_set_pre_body): Likewise.
      	(gimple_omp_for_pre_body_ptr): Likewise.
      	(gimple_omp_for_set_incr): Likewise.
      	(gimple_omp_for_incr_ptr): Likewise.
      	(gimple_omp_for_incr): Likewise.
      	(gimple_omp_for_set_final): Likewise.
      	(gimple_omp_for_final_ptr): Likewise.
      	(gimple_omp_for_final): Likewise.
      	(gimple_omp_for_set_initial): Likewise.
      	(gimple_omp_for_initial_ptr): Likewise.
      	(gimple_omp_for_initial): Likewise.
      	(gimple_omp_for_set_index): Likewise.
      	(gimple_omp_for_index_ptr): Likewise.
      	(gimple_omp_for_index): Likewise.
      	(gimple_omp_for_collapse): Likewise.
      	(gimple_omp_for_set_clauses): Likewise.
      	(gimple_omp_for_clauses_ptr): Likewise.
      	(gimple_omp_for_clauses): Likewise.
      	(gimple_omp_critical_set_name): Likewise.
      	(gimple_omp_critical_name_ptr): Likewise.
      	(gimple_omp_critical_name): Likewise.
      	(gimple_eh_dispatch_set_region): Likewise.
      	(gimple_eh_dispatch_region): Likewise.
      	(gimple_resx_set_region): Likewise.
      	(gimple_resx_region): Likewise.
      	(gimple_phi_set_arg): Likewise.
      	(gimple_phi_arg): Likewise.
      	(gimple_phi_set_result): Likewise.
      	(gimple_phi_result_ptr): Likewise.
      	(gimple_phi_result): Likewise.
      	(gimple_phi_num_args): Likewise.
      	(gimple_phi_capacity): Likewise.
      	(gimple_wce_set_cleanup): Likewise.
      	(gimple_wce_cleanup_ptr): Likewise.
      	(gimple_try_set_cleanup): Likewise.
      	(gimple_try_set_eval): Likewise.
      	(gimple_try_cleanup_ptr): Likewise.
      	(gimple_try_eval_ptr): Likewise.
      	(gimple_eh_else_set_e_body): Likewise.
      	(gimple_eh_else_set_n_body): Likewise.
      	(gimple_eh_else_e_body_ptr): Likewise.
      	(gimple_eh_else_n_body_ptr): Likewise.
      	(gimple_eh_must_not_throw_set_fndecl): Likewise.
      	(gimple_eh_must_not_throw_fndecl): Likewise.
      	(gimple_eh_filter_set_failure): Likewise.
      	(gimple_eh_filter_set_types): Likewise.
      	(gimple_eh_filter_failure_ptr): Likewise.
      	(gimple_eh_filter_types_ptr): Likewise.
      	(gimple_eh_filter_types): Likewise.
      	(gimple_catch_set_handler): Likewise.
      	(gimple_catch_set_types): Likewise.
      	(gimple_catch_handler_ptr): Likewise.
      	(gimple_catch_types_ptr): Likewise.
      	(gimple_catch_types): Likewise.
      	(gimple_asm_string): Likewise.
      	(gimple_asm_set_label_op): Likewise.
      	(gimple_asm_label_op): Likewise.
      	(gimple_asm_set_clobber_op): Likewise.
      	(gimple_asm_clobber_op): Likewise.
      	(gimple_asm_set_output_op): Likewise.
      	(gimple_asm_output_op_ptr): Likewise.
      	(gimple_asm_output_op): Likewise.
      	(gimple_asm_set_input_op): Likewise.
      	(gimple_asm_input_op_ptr): Likewise.
      	(gimple_asm_input_op): Likewise.
      	(gimple_asm_nlabels): Likewise.
      	(gimple_asm_nclobbers): Likewise.
      	(gimple_asm_noutputs): Likewise.
      	(gimple_asm_ninputs): Likewise.
      	(gimple_bind_set_block): Likewise.
      	(gimple_bind_block): Likewise.
      	(gimple_bind_add_seq): Likewise.
      	(gimple_bind_add_stmt): Likewise.
      	(gimple_bind_set_body): Likewise.
      	(gimple_bind_body_ptr): Likewise.
      	(gimple_bind_append_vars): Likewise.
      	(gimple_bind_set_vars): Likewise.
      	(gimple_bind_vars): Likewise.
      	(gimple_call_clobber_set): Likewise.
      	(gimple_call_use_set): Likewise.
      	(gimple_call_set_internal_fn): Likewise.
      	(gimple_call_set_fntype): Likewise.
      	(gimple_call_fntype): Likewise.
      	(gimple_omp_return_lhs_ptr): Likewise.
      	(gimple_omp_return_lhs): Likewise.
      	(gimple_omp_return_set_lhs): Likewise.
      	(gimple_omp_taskreg_set_data_arg): Likewise.
      	(gimple_omp_taskreg_data_arg_ptr): Likewise.
      	(gimple_omp_taskreg_data_arg): Likewise.
      	(gimple_omp_taskreg_set_child_fn): Likewise.
      	(gimple_omp_taskreg_child_fn_ptr): Likewise.
      	(gimple_omp_taskreg_child_fn): Likewise.
      	(gimple_omp_taskreg_set_clauses): Likewise.
      	(gimple_omp_taskreg_clauses_ptr): Likewise.
      	(gimple_omp_taskreg_clauses): Likewise.
      	(gimple_vuse): Likewise.
      	(gimple_vdef): Likewise.
      	(gimple_vuse_ptr): Likewise.
      	(gimple_vdef_ptr): Likewise.
      	* tree-inline.c (copy_debug_stmt): Likewise.
      	* tree-phinodes.c (make_phi_node): Likewise.
      
      	* gimple.h (is_a_helper <const gimple_statement_with_ops>::test): New.
      	(is_a_helper <gimple_statement_with_ops>::test): New.
      	(is_a_helper <const gimple_statement_with_memory_ops>::test): New.
      	(is_a_helper <gimple_statement_with_memory_ops>::test): New.
      
      	* gimple-streamer-in.c (input_gimple_stmt): Port from union
      	access to use of as_a.
      	* gimple.c (gimple_build_asm_1): Likewise.
      	(gimple_build_try): Likewise.  Also, return a specific subclass
      	rather than just gimple.
      	(gimple_build_resx): Port from union access to use of as_a.
      	(gimple_build_eh_dispatch): Likewise.
      	(gimple_build_omp_for): Likewise.  Also, convert allocation of iter
      	now that gengtype no longer provides a typed allocator function.
      	(gimple_copy): Likewise.
      	* gimple.h (gimple_build_try): Return a specific subclass rather
      	than just gimple.
      	* gimplify.c (gimplify_cleanup_point_expr): Replace union access
      	with subclass access by making use of new return type of
      	gimple_build_try.
      	* tree-phinodes.c: (allocate_phi_node): Return a
      	"gimple_statement_phi *" rather than just a gimple.
      	(resize_phi_node): Likewise.
      	(make_phi_node): Replace union access with subclass access by
      	making use of new return type of allocate_phi_node.
      	(reserve_phi_args_for_new_edge): Replace union access with as_a.
      	(remove_phi_arg_num): Accept a "gimple_statement_phi *" rather
      	than just a gimple.
      	(remove_phi_args): Update for change to remove_phi_arg_num.
      
      	* gdbhooks.py (GimplePrinter.to_string): Update lookup of
      	code field to reflect inheritance, rather than embedding of
      	the base gimple type.
      
      From-SVN: r205034
      David Malcolm committed
  18. 21 Oct, 2013 1 commit
  19. 19 Oct, 2013 1 commit
  20. 28 Sep, 2013 1 commit
    • alloc-pool.c, [...]: Add missing whitespace before "(". · c3284718
      gcc/
      	* alloc-pool.c, asan.c, auto-inc-dec.c, basic-block.h, bb-reorder.c,
      	bitmap.c, bitmap.h, bt-load.c, builtins.c, calls.c, cfgcleanup.c,
      	cfgexpand.c, cfghooks.c, cfgloop.c, cfgloopmanip.c, cfgrtl.c, cgraph.c,
      	cgraph.h, cgraphbuild.c, cgraphclones.c, cgraphunit.c, collect2.c,
      	combine-stack-adj.c, combine.c, compare-elim.c, context.c, context.h,
      	cprop.c, cse.c, cselib.c, dbxout.c, dce.c, defaults.h, df-core.c,
      	df-problems.c, df-scan.c, df.h, diagnostic.c, double-int.c, dse.c,
      	dumpfile.c, dwarf2asm.c, dwarf2cfi.c, dwarf2out.c, emit-rtl.c,
      	errors.c, except.c, expmed.c, expr.c, file-find.c, final.c,
      	fixed-value.c, fold-const.c, function.c, fwprop.c, gcc-ar.c, gcc.c,
      	gcov-io.c, gcov-io.h, gcov.c, gcse.c, genattr-common.c, genattr.c,
      	genattrtab.c, genautomata.c, genconfig.c, genemit.c, genextract.c,
      	genflags.c, gengenrtl.c, gengtype-state.c, gengtype.c, genmodes.c,
      	genopinit.c, genoutput.c, genpeep.c, genpreds.c, genrecog.c,
      	gensupport.c, ggc-common.c, ggc-page.c, gimple-fold.c, gimple-low.c,
      	gimple-pretty-print.c, gimple-ssa-strength-reduction.c, gimple.c,
      	gimple.h, godump.c, graphite-clast-to-gimple.c,
      	graphite-optimize-isl.c, graphite-poly.h, graphite-sese-to-poly.c,
      	graphite.c, haifa-sched.c, hash-table.c, hash-table.h, hwint.c,
      	hwint.h, ifcvt.c, incpath.c, init-regs.c, input.h, intl.c, intl.h,
      	ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c, ipa-inline.c,
      	ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c,
      	ipa-utils.c, ipa.c, ira-build.c, ira.c, jump.c, loop-doloop.c,
      	loop-init.c, loop-invariant.c, loop-iv.c, lower-subreg.c, lto-cgraph.c,
      	lto-streamer-in.c, lto-streamer-out.c, lto-wrapper.c, mcf.c,
      	mode-switching.c, modulo-sched.c, omp-low.c, optabs.c, opts.c,
      	pass_manager.h, passes.c, plugin.c, postreload-gcse.c, postreload.c,
      	predict.c, prefix.c, pretty-print.c, print-rtl.c, print-tree.c,
      	profile.c, read-md.c, real.c, real.h, recog.c, ree.c, reg-stack.c,
      	regcprop.c, reginfo.c, regmove.c, regrename.c, regs.h, regstat.c,
      	reload1.c, reorg.c, rtl.c, rtl.h, rtlanal.c, sbitmap.c, sched-rgn.c,
      	sdbout.c, sel-sched-ir.c, sel-sched.c, sparseset.c, stack-ptr-mod.c,
      	statistics.c, stmt.c, stor-layout.c, store-motion.c, streamer-hooks.h,
      	system.h, target-hooks-macros.h, targhooks.c, targhooks.h, toplev.c,
      	tracer.c, trans-mem.c, tree-browser.c, tree-call-cdce.c, tree-cfg.c,
      	tree-cfgcleanup.c, tree-complex.c, tree-data-ref.c, tree-data-ref.h,
      	tree-eh.c, tree-emutls.c, tree-flow.h, tree-if-conv.c, tree-into-ssa.c,
      	tree-iterator.c, tree-loop-distribution.c, tree-mudflap.c,
      	tree-nested.c, tree-nomudflap.c, tree-nrv.c, tree-object-size.c,
      	tree-optimize.c, tree-pass.h, tree-pretty-print.c, tree-profile.c,
      	tree-scalar-evolution.c, tree-sra.c, tree-ssa-ccp.c,
      	tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
      	tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
      	tree-ssa-ifcombine.c, tree-ssa-live.c, tree-ssa-loop-ch.c,
      	tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-loop-prefetch.c,
      	tree-ssa-loop.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
      	tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
      	tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
      	tree-ssa-structalias.c, tree-ssa-threadedge.c, tree-ssa-threadupdate.c,
      	tree-ssa-uncprop.c, tree-ssa-uninit.c, tree-ssa.c, tree-ssanames.c,
      	tree-stdarg.c, tree-switch-conversion.c, tree-tailcall.c,
      	tree-vect-data-refs.c, tree-vect-generic.c, tree-vect-loop-manip.c,
      	tree-vect-stmts.c, tree-vectorizer.c, tree-vectorizer.h, tree-vrp.c,
      	tree.c, tree.h, tsan.c, tsystem.h, value-prof.c, var-tracking.c,
      	varasm.c, vec.h, vmsdbgout.c, vtable-verify.c, web.c: Add missing
      	whitespace before "(".
      
      From-SVN: r203004
      Richard Sandiford committed
  21. 19 Aug, 2013 1 commit
    • target.def (TARGET_LIBC_HAS_FUNCTION): New target hook. · d33d9e47
      	* target.def (TARGET_LIBC_HAS_FUNCTION): New target hook.
      	* builtins.c (default_libc_has_function): New.
      	(gnu_libc_has_function): Ditto.
      	(no_c99_libc_has_function): Ditto.
      	(expand_builtin_cexpi): Using new target hook TARGET_LIBC_HAS_FUNCTION
      	instead of TARGET_HAS_SINCOS and TARGET_C99_FUNCTIONS.
      	(fold_builtin_sincos): Likewise.
      	(fold_builtin_cexp): Likewise.
      	* builtins.def (DEF_C94_BUILTIN): Likewise.
      	(DEF_C99_BUILTIN): Likewise.
      	(DEF_C99_C90RES_BUILTIN): Likewise.
      	(DEF_C99_COMPL_BUILTIN): New define. Change all complex c99 builtin
      	definitions to using this define.
      	* config/darwin-protos.h (darwin_libc_has_function): New.
      	* config/darwin.c: (darwin_libc_has_function: Ditto.
      	* config/alpha/linux.h: Remove TARGET_C99_FUNCTIONS and
      	TARGET_HAS_SINCOS. Redefine TARGET_LIBC_HAS_FUNCTION.
      	* config/darwin.h: Ditto.
      	* config/elfos.h: Ditto.
      	* config/freebsd.h: Ditto.
      	* config/i386/cygming.h: Ditto.
      	* config/i386/djgpp.h: Ditto.
      	* config/i386/i386-interix.h: Ditto.
      	* config/microblaze/microblaze.h: Ditto.
      	* config/mmix/mmix.h: Ditto.
      	* config/gnu-user.h: Ditto.
      	* config/ia64/hpux.h: Ditto.
      	* config/pa/pa-hpux.h: Ditto.
      	* config/pdp11/pdp11.h: Ditto.
      	* config/picochip/picochip.h: Ditto.
      	* config/linux.h: Ditto.
      	* config/netbsd.h: Ditto.
      	* config/openbsd.h: Ditto.
      	* config/rs6000/aix43.h: Ditto.
      	* config/rs6000/aix51.h: Ditto.
      	* config/rs6000/aix52.h: Ditto.
      	* config/rs6000/aix53.h: Ditto.
      	* config/rs6000/aix61.h: Ditto.
      	* config/rs6000/darwin.h: Ditto.
      	* config/rs6000/linux.h: Ditto.
      	* config/rs6000/linux64.h: Ditto.
      	* config/s390/tpf.h: Ditto.
      	* config/sol2-10.h: Ditto.
      	* config/sol2.h: Ditto.
      	* config/vms/vms.h: Ditto.
      	* config/vxworks.h: Ditto.
      	* config/linux-android.c (linux_android_libc_has_function):
      	New linux-specific implementation of TARGET_LIBC_HAS_FUNCTION.
      	* config/linux-protos.h (linux_android_libc_has_function):
      	New declaration.
      	* config/i386/i386.c (ix86_libc_has_function): New.
      	* config/i386/i386-protos.h
      	(ix86_libc_has_function): New declaration.
      	* config/i386/i386.md
      	("isinfxf2"): Change condition for TARGET_LIBC_HAS_FUNCTION.
      	("isinf<mode>2): Likewise.
      	* convert.c (convert_to_integer): Using new target hook
      	TARGET_LIBC_HAS_FUNCTION istead of TARGET_HAS_SINCOS and
      	TARGET_C99_FUNCTIONS.
      	* fortran/f95-lang.c (gfc_init_builtin_functions): Ditto.
      	* tree-ssa-math-opts.c (execute_cse_sincos): Ditto.
      	* coretypes.h (function_class): New enum for different
      	classes of functions.
      	* defaults.h: Remove TARGET_C99_FUNCTIONS and TARGET_HAS_SINCOS.
      	* doc/tm.texi.in (TARGET_C99_FUNCTIONS): Remove documentation.
      	(TARGET_HAS_SINCOS): Likewise.
      	(TARGET_LIBC_HAS_FUNCTION): New.
      	* doc/tm.texi: Regenerated.
      	* targhooks.h (default_libc_has_function): New declaration.
      	(no_c99_libc_has_function): Ditto.
      	(gnu_libc_has_function): Ditto.
      	* system.h: Add the poisoning of TARGET_C99_FUNCTIONS
      	and TARGET_HAS_SINCOS.
      
      From-SVN: r201838
      Alexander Ivchenko committed
  22. 20 Jun, 2013 1 commit
  23. 15 Jan, 2013 1 commit
  24. 10 Jan, 2013 1 commit
  25. 21 Dec, 2012 1 commit
  26. 25 Nov, 2012 1 commit
    • tm.texi.in (DELAY_SLOTS_FOR_EPILOGUE): Remove documentation. · 97049e83
      gcc/
      	* doc/tm.texi.in (DELAY_SLOTS_FOR_EPILOGUE): Remove documentation.
      	(ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise.
      	* doc/tm.texi: Regenerate.
      	* reorg.c (fill_simple_delay_slots): Remove code conditional on
      	DELAY_SLOTS_FOR_EPILOGUE being defined.
      	(make_return_insns, dbr_schedule): Likewise.
      	* system.h (DELAY_SLOTS_FOR_EPILOGUE): Poison.
      	(ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise.
      
      From-SVN: r193787
      Steven Bosscher committed
  27. 19 Nov, 2012 1 commit
  28. 05 Nov, 2012 1 commit
  29. 12 Sep, 2012 1 commit
  30. 17 Aug, 2012 1 commit
    • Convert MEMBER_TYPE_FORCES_BLK to target hook · d9886a9e
      	* stor-layout.c (compute_record_mode): Replace
      	MEMBER_TYPE_FORCES_BLK with targetm.member_type_forces_blk.
      	(layout_type): Likewise.
      
      	* system.h: Poison MEMBER_TYPE_FORCES_BLK.
      
      	* target.def (member_type_forces_blk): New target hook.
      
      	* targhooks.c (default_member_type_forces_blk): New.
      	* targhooks.h (default_member_type_forces_blk): Likewise.
      
      	* doc/tm.texi.in (MEMBER_TYPE_FORCES_BLK): Removed.
      	(TARGET_MEMBER_TYPE_FORCES_BLK): New hook.
      	* doc/tm.texi: Regenerated.
      
      	* config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Removed.
      
      	* config/ia64/ia64.c (ia64_member_type_forces_blk): New
      	function.
      	(TARGET_MEMBER_TYPE_FORCES_BLK): New macro.
      
      	* config/rs6000/rs6000.c (TARGET_MEMBER_TYPE_FORCES_BLK): New
      	macro.
      	(rs6000_member_type_forces_blk): New function.
      
      	* config/rs6000/rs6000.h (MEMBER_TYPE_FORCES_BLK): Removed.
      
      	* config/xtensa/xtensa.c (xtensa_member_type_forces_blk): New
      	function.
      	(TARGET_MEMBER_TYPE_FORCES_BLK): New macro.
      
      	* config/xtensa/xtensa.h (MEMBER_TYPE_FORCES_BLK): Removed.
      
      From-SVN: r190488
      H.J. Lu committed
  31. 16 Aug, 2012 2 commits
  32. 31 Jul, 2012 1 commit
    • defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete. · b0f6b612
      	* defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
      	* targhooks.c (default_mode_dependent_address_p): Delete code
      	for GO_IF_MODE_DEPENDENT_ADDRESS.
      	* system.h (GO_IF_MODE_DEPENDENT_ADDRESS): Poison.
      	* doc/tm.texi.in (GO_IF_MODE_DEPENDENT_ADDRESS): Delete documention.
      	* doc/tm.texi: Regenerate.
      	* config/alpha.h (GO_IF_MODE_DEPENDENT_ADDRESS): Move code to...
      	* config/alpha.c (alpha_mode_dependent_address_p): ...here.  New
      	function.
      	(TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
      	* config/cr16/cr16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
      	* config/mep/mep.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
      	* config/vax/vax-protos.h (vax_mode_dependent_address_p): Delete.
      	* config/vax/vax.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
      	* config/vax/vax.c (vax_mode_dependent_address_p): Make static.
      	Take a const_rtx.
      	(TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
      
      From-SVN: r189995
      Nathan Froyd committed
  33. 24 Jul, 2012 1 commit
  34. 16 Jul, 2012 1 commit
    • system.h (dump_file): Do not define. · 7ee2468b
      gcc/
      	* system.h (dump_file): Do not define.
      	* tree-pass.h: Include dumpfile.h, which is a new file containing...
      	(enum tree_dump_index, TDF_*, get_dump_file_name, dump_enabled_p,
      	dump_initialized_p, dump_begin, dump_end, dump_node, dump_switch_p,
      	dump_flag_name, dump_file, dump_flags, dump_file_name,
      	get_dump_file_info, struct dump_file_info): all of this, moved to...
      	* dumpfile.h: Here, new file.
      	* tree-dump.h: Include dumpfile.h, but not tree-pass.h.
      	(dump_stmt): Remove prototype for C++ specific function.
      	(dump_enumerated_decls): Move prototype from here...
      	* tree-flow.h (dump_enumerated_decls): ... to here.
      	(get_ref_base_and_extent) Move prototype from here ...
      	* tree.h (get_ref_base_and_extent) ... to here.
      	* tree-ssa-live.c: Do not inclde tree-pretty-print.h, because
      	gimple-pretty-print.h is enough.  Do not include tree-dump.h,
      	include timevar.h and dumpfile.h instead.
      	(struct numbered_tree_d, compare_decls_by_uid,
      	dump_enumerated_decls_push, dump_enumerated_decls): Move from here ...
      	* tree-dfa.c:(struct numbered_tree_d, compare_decls_by_uid,
      	dump_enumerated_decls_push, dump_enumerated_decls):... to here.
      	Do not include timevar.h.
      	* tree.c: Do not include timevar.h.
      	* tree-cfg.c: Do not include langhooks.h, tree-pretty-print.h, and
      	timevar.h.
      	(dump_cfg_stats): Use current_function_name.
      	(gimple_cfg2vcg): Likewise.
      	(dump_function_to_file): Likewise.
      	* df-scan.c: Do not include tree-pass.h and timevar.h.
      	Include dumpfile.h.
      	(df_entry_block_bitmap_verify, df_exit_block_bitmap_verify): Do not
      	use print_current_pass.
      	* df-problems.c: Include dumpfile.h.
      	Always define REG_DEAD_DEBUGGING, avoid #ifdef code, because it
      	leads to errors in the code not selected.
      	(df_note_compute): Do not print_rtl_with_bb here.  Fix compilation
      	bug if REG_DEAD_DEBUGGING is not 0, get_insns is not available here.
      	* lcm.c: Include dumpfile.h.
      	Remove obsolete include of insn-attr.h.
      	* dojump.c (do_compare_rtx_and_jump): Remove failure printing for
      	missing probability notes.
      	* stmt.c: Include dumpfile.h.
      	(emit_case_decision_tree): Re-enable printing expand details only
      	if TDF_DETAILS.
      	* alias.c, auto-inc-dec.c, bb-reorder.c, caller-save.c, cfg.c, 
      	cfgcleanup.c, cfgexpand.c, cfgloop.c, cfgloopmanip.c, cgraph.c, 
      	cgraphclones.c, cgraphunit.c, combine.c, combine-stack-adj.c, 
      	coverage.c, cprop.c, cse.c, cselib.c, dbgcnt.c, dce.c, df-core.c, 
      	dse.c, dwarf2out.c, emit-rtl.c, except.c, expr.c, final.c, 
      	function.c, fwprop.c, gcse.c, gimple-fold.c, 
      	gimple-pretty-print.c, gimple-ssa-strength-reduction.c, 
      	gimplify.c, graphite-blocking.c, graphite-clast-to-gimple.c, 
      	graphite-dependences.c, graphite-interchange.c, 
      	graphite-optimize-isl.c, graphite-poly.c, 
      	graphite-sese-to-poly.c, haifa-sched.c, hw-doloop.c, ifcvt.c, 
      	ipa.c, ipa-cp.c, ipa-inline-analysis.c, ipa-inline.c, 
      	ipa-inline-transform.c, ipa-prop.c, ipa-pure-const.c, 
      	ipa-reference.c, ipa-split.c, ipa-utils.c, ira.c, ira-emit.c, 
      	jump.c, loop-doloop.c, loop-init.c, loop-invariant.c, loop-iv.c, 
      	loop-unroll.c, loop-unswitch.c, lower-subreg.c, 
      	lto-section-out.c, lto-streamer-in.c, matrix-reorg.c, mcf.c, 
      	mode-switching.c, modulo-sched.c, omega.c, omp-low.c, passes.c, 
      	plugin.c, postreload.c, postreload-gcse.c, predict.c, print-rtl.c, 
      	print-tree.c, profile.c, recog.c, ree.c, regcprop.c, reginfo.c, 
      	regmove.c, regrename.c, reg-stack.c, reload1.c, reorg.c, 
      	sched-rgn.c, sched-vis.c, sel-sched.c, sel-sched-ir.c, 
      	store-motion.c, tracer.c, trans-mem.c, tree-affine.c, 
      	tree-call-cdce.c, tree-cfgcleanup.c, tree-chrec.c, 
      	tree-data-ref.c, tree-diagnostic.c, tree-dump.c,
      	tree-eh.c, tree-flow-inline.h, tree-if-conv.c, tree-into-ssa.c, 
      	tree-mudflap.c, tree-nrv.c, tree-object-size.c, 
      	tree-optimize.c, tree-outof-ssa.c, tree-predcom.c, 
      	tree-pretty-print.c, tree-profile.c, tree-scalar-evolution.c, 
      	tree-sra.c, tree-ssa-address.c, tree-ssa-alias.c, tree-ssa.c, 
      	tree-ssa-ccp.c, tree-ssa-coalesce.c, tree-ssa-copy.c, 
      	tree-ssa-copyrename.c,, tree-ssa-dce.c, tree-ssa-dom.c, 
      	tree-ssa-dse.c, tree-ssa-forwprop.c, tree-ssa-ifcombine.c, 
      	tree-ssa-loop.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c, 
      	tree-ssa-loop-ivcanon.c, tree-ssa-loop-ivopts.c, 
      	tree-ssa-loop-manip.c, tree-ssa-loop-niter.c, 
      	tree-ssa-loop-prefetch.c, tree-ssa-loop-unswitch.c, 
      	tree-ssa-math-opts.c, tree-ssa-operands.c, tree-ssa-phiopt.c, 
      	tree-ssa-phiprop.c, tree-ssa-pre.c, tree-ssa-propagate.c, 
      	tree-ssa-reassoc.c, tree-ssa-sccvn.c, tree-ssa-sink.c, 
      	tree-ssa-structalias.c, tree-ssa-tail-merge.c, tree-ssa-ter.c, 
      	tree-ssa-threadedge.c, tree-ssa-threadupdate.c, 
      	tree-ssa-uncprop.c, tree-ssa-uninit.c, 
      	tree-switch-conversion.c, tree-tailcall.c, 
      	tree-vect-data-refs.c, tree-vect-loop.c, 
      	tree-vect-loop-manip.c, tree-vectorizer.c, 
      	tree-vect-patterns.c, tree-vect-slp.c, tree-vect-stmts.c, 
      	tree-vrp.c, value-prof.c, var-tracking.c, web.c: Include tree-pass.h
      	only if needed.  If tree-pass.h is included, do not include timevar.h
      	and dumpfile.h.  If tree-pass.h is not included but dump_file, or
      	dump_flags, or the TDF_* flags are used, include dumpfile.h.
      	If gimple-pretty-print.h is included, don't include tree-pretty-print.h.
      	Remove assorted unnecessary includes.
      
      	* config/mn10300/mn10300.c, config/c6x/c6x.c, config/ia64/ia64.c,
      	config/arm/arm.c, config/bfin/bfin.c, config/frv/frv.c,
      	config/spu/spu.c, config/mep/mep.c, config/i386/i386.c:
      	Include dumpfile.h.
      	* config/rl78/rl78.c: Include dumpfile.h instead of tree-pass.h.
      	* arm/t-arm, avr/t-avr, i386/t-i386, ia64/t-ia64, mep/t-mep,
      	spu/t-spu-elf: Fix dependencies.
      
      c-family/
      	* c-gimplify.c: Include dumpfile.h instead of tree-dump.h.
      	* c-ada-spec.c: Likewise.
      	* c-dump.c (dump_stmt): Move to cp/dump.c, the only user.
      
      c/
      	* c-decl.c: Include dumpfile.h instead of tree-dump.h.
      	* Make-lang.in: Fix dependencies.
      
      cp/
      	* dump.c (dump_stmt): Moved here from c-dump.c.
      	* optimize.c: Include dumpfile.h instead of tree-dump.h.
      	* class.c: Likewise.
      	* decl2.c: Likewise.
      	* Make-lang.in: Fix dependencies.
      
      fortran/
      	* f95-lang.c: Include dumpfile.h instead of tree-dump.h.
      	* Make-lang.in: Fix dependencies.
      
      java/
      	* java-gimplify.c Include dumpfile.h instead of tree-dump.h
      	* Make-lang.in: Fix dependencies.
      
      lto/
      	* lto.c: Do not include timevar.h.
      	* Make-lang.in: Fix dependencies.
      
      ada/
      	* gcc-interface/utils.c: Include timevar.h.
      	* Make-lang.in: Fix dependencies.
      
      From-SVN: r189519
      Steven Bosscher committed
  35. 10 Jul, 2012 1 commit
    • Zap now unused builtin_mul_widen_even/odd target hooks · 30a7bac9
              * target.def (builtin_mul_widen_even, builtin_mul_widen_odd): Remove.
              * system.h (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN): Poison.
              (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): Poison.
              * config/i386/i386.c (IX86_BUILTIN_VEC_WIDEN_SMUL_ODD_V4SI): Remove.
              (IX86_BUILTIN_VEC_WIDEN_SMUL_ODD_V8SI): Remove.
              (IX86_BUILTIN_VEC_WIDEN_UMUL_ODD_V4SI): Remove.
              (IX86_BUILTIN_VEC_WIDEN_UMUL_ODD_V8SI): Remove.
              (IX86_BUILTIN_VEC_WIDEN_SMUL_EVEN_V4SI): Remove.
              (IX86_BUILTIN_VEC_WIDEN_UMUL_EVEN_V4SI): Remove.
              (IX86_BUILTIN_VEC_WIDEN_UMUL_EVEN_V8SI): Remove.
              (bdesc_args): Remove entries to match.
              (ix86_builtin_mul_widen_even, ix86_builtin_mul_widen_odd): Remove.
              (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN): Remove.
              (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): Remove.
              * config/rs6000/rs6000.c (rs6000_builtin_mul_widen_even): Remove.
              (rs6000_builtin_mul_widen_odd): Remove.
              (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN): Remove.
              (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): Remove.
              * config/spu/spu.c (spu_builtin_mul_widen_even): Remove.
              (spu_builtin_mul_widen_odd): Remove.
              (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN): Remove.
              (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): Remove.
              * doc/tm.texi.in: Don't document the removed hooks.
      
      From-SVN: r189409
      Richard Henderson committed