gcc.git
7 years agoFix merge failure: Remove files deleted on trunk already. Fix trivial thinko.heads/sh-lra
Kaz Kojima [Fri, 5 Dec 2014 06:10:08 +0000 (5 06:10 +0000)]
Fix merge failure: Remove files deleted on trunk already.  Fix trivial thinko.

From-SVN: r218414

7 years agoRemove accidentally committed files which were removed on trunk already.
Kaz Kojima [Mon, 1 Dec 2014 11:27:52 +0000 (1 11:27 +0000)]
Remove accidentally committed files which were removed on trunk already.

From-SVN: r218204

7 years ago* Add -mlra option.
Kaz Kojima [Mon, 1 Dec 2014 00:02:00 +0000 (1 00:02 +0000)]
* Add -mlra option.

From-SVN: r218194

7 years ago* Split QI/HImode displacement addressing load/store via R0.
Kaz Kojima [Mon, 1 Dec 2014 00:01:08 +0000 (1 00:01 +0000)]
* Split QI/HImode displacement addressing load/store via R0.

* Use std::swap in the sh-lra change.

From-SVN: r218193

7 years ago* Add legitimize_address_displacement target macto.
Kaz Kojima [Sun, 30 Nov 2014 23:53:59 +0000 (30 23:53 +0000)]
* Add legitimize_address_displacement target macto.

From-SVN: r218192

7 years agoMerge from trunk revision 218173.
Kaz Kojima [Sun, 30 Nov 2014 23:46:59 +0000 (30 23:46 +0000)]
Merge from trunk revision 218173.

From-SVN: r218191

7 years agoFix merge failure: add new directories and files on trunk.
Kaz Kojima [Sun, 23 Nov 2014 11:18:37 +0000 (23 11:18 +0000)]
Fix merge failure: add new directories and files on trunk.

From-SVN: r217981

7 years agomerge from trunk revision 217978.
Kaz Kojima [Sun, 23 Nov 2014 06:43:22 +0000 (23 06:43 +0000)]
merge from trunk revision 217978.

From-SVN: r217980

7 years agoMake *addsi3_compact insn_and_split and add an alternative which will split to...
Kaz Kojima [Tue, 21 Oct 2014 23:43:00 +0000 (21 23:43 +0000)]
Make *addsi3_compact insn_and_split and add an alternative which will split to...

Make *addsi3_compact insn_and_split and add an alternative which
will split to (set a c) and (set (plus a b)) after reload.
* config/sh/predicates.md (arith_or_int_operand): New.
* config/sh/sh.md (addsi3): Use arith_or_int_operand for 2nd operand.
  Check register overlap for non I08 constant 2nd operand.
  (*addsi3_compact): Make it insn_and_split and add an alternative.

From-SVN: r216535

7 years agoDefine SH specific HARD_REGNO_CALLER_SAVE_MODE target macro.
Kaz Kojima [Tue, 21 Oct 2014 23:34:44 +0000 (21 23:34 +0000)]
Define SH specific HARD_REGNO_CALLER_SAVE_MODE target macro.

* config/sh/sh.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
* config/sh/sh-protos.h (sh_hard_regno_caller_save_mode): Declare.
* config/sh/sh.c (sh_hard_regno_caller_save_mode): New function.

From-SVN: r216534

7 years agoIntroduce target hook which disables the substitution of pseudos with equivalent...
Kaz Kojima [Tue, 21 Oct 2014 23:29:16 +0000 (21 23:29 +0000)]
Introduce target hook which disables the substitution of pseudos with equivalent memory values.

Introduce target hook which disables the substitution of pseudos
with equivalent memory values.
* target.def (cannot_substitute_mem_equiv_p): New hook.
* lra-constraints.c (get_equiv): Check targetm.cannot_substitute_mem_equiv_p.
* config/sh/sh.c (TARGET_CANNOT_SUBSTITUTE_MEM_EQUIV_P): Define.
  (sh_cannot_substitute_mem_equiv_p): New function.
* doc/tm.texi.in (TARGET_CANNOT_SUBSTITUTE_MEM_EQUIV_P): New @hook.
* doc/tm.texi: Regenerate.

From-SVN: r216533

7 years agolra-constraints.c (process_address_1): Fixup the result of...
Kaz Kojima [Tue, 21 Oct 2014 23:16:19 +0000 (21 23:16 +0000)]
lra-constraints.c (process_address_1): Fixup the result of...

lra-constraints.c (process_address_1): Fixup the result of
decompose_mem_address when INDEX_REG_CLASS is a single register class.

From-SVN: r216532

7 years agomerge from trunk revision 216447.
Kaz Kojima [Tue, 21 Oct 2014 22:39:22 +0000 (21 22:39 +0000)]
merge from trunk revision 216447.

From-SVN: r216529

7 years ago* merge from trunk.
Kaz Kojima [Thu, 9 Oct 2014 06:24:12 +0000 (9 06:24 +0000)]
* merge from trunk.

From-SVN: r216025

7 years agore PR target/55212 ([SH] Switch to LRA)
Oleg Endo [Tue, 30 Sep 2014 22:12:42 +0000 (30 22:12 +0000)]
re PR target/55212 ([SH] Switch to LRA)

PR target/55212
* lra.c (lra_update_insn_regno_info): Handle mem args in calls.

From-SVN: r215744

7 years agore PR target/55212 ([SH] Switch to LRA)
Kaz Kojima [Mon, 29 Sep 2014 01:27:03 +0000 (29 01:27 +0000)]
re PR target/55212 ([SH] Switch to LRA)

PR target/55212
* config/sh/sh.md (untyped_call): Clobber the function value registers
  before the call.

From-SVN: r215677

7 years agore PR target/55212 ([SH] Switch to LRA)
Kaz Kojima [Mon, 29 Sep 2014 01:24:33 +0000 (29 01:24 +0000)]
re PR target/55212 ([SH] Switch to LRA)

PR target/55212
* config/sh/sh-protos.h (sh_movsf_ie_ra_split_p): New prototype.
* config/sh/sh.c (sh_movsf_ie_ra_split_p): New function.
* config/sh/sh.md (movsi_ie): Use constraint "mr" instead of "m".
  (movsf_ie_ra): New insn_and_split.
  (movsf): Use movsf_ie_ra when lra_in_progress is set.

From-SVN: r215676

7 years agore PR target/55212 ([SH] Switch to LRA)
Kaz Kojima [Wed, 17 Sep 2014 23:24:40 +0000 (17 23:24 +0000)]
re PR target/55212 ([SH] Switch to LRA)

PR target/55212
* config/sh/predicates.md (general_movsrc_operand): Take
  subregs into account for plus address expression.
  (general_movdst_operand): Likewise.
  (t_reg_operand): Allow (zero_extend (reg t)).

From-SVN: r215341

7 years agore PR target/55212 ([SH] Switch to LRA)
Oleg Endo [Sat, 13 Sep 2014 22:13:56 +0000 (13 22:13 +0000)]
re PR target/55212 ([SH] Switch to LRA)

PR target/55212
* lra-constraints.c: Print insn when hitting MAX_RELOAD_INSNS_NUMBER.

From-SVN: r215247

7 years agore PR target/55212 ([SH] Switch to LRA)
Oleg Endo [Sat, 13 Sep 2014 21:32:27 +0000 (13 21:32 +0000)]
re PR target/55212 ([SH] Switch to LRA)

PR target/55212
* Apply patch from https://gcc.gnu.org/ml/gcc/2014-04/msg00273.html

From-SVN: r215246

7 years agore PR target/55212 ([SH] Switch to LRA)
Oleg Endo [Sat, 13 Sep 2014 20:40:21 +0000 (13 20:40 +0000)]
re PR target/55212 ([SH] Switch to LRA)

PR target/55212
* Remove LEGITIMIZE_RELOAD_ADDRESS and sh_legitimize_reload_address.
  They are not used by LRA.

From-SVN: r215244

7 years agore PR target/55212 ([SH] Switch to LRA)
Oleg Endo [Sat, 13 Sep 2014 20:21:00 +0000 (13 20:21 +0000)]
re PR target/55212 ([SH] Switch to LRA)

PR target/55212
* predicates.md (general_movsrc_operand,  general_movdst_operand):
  Allow only valid plus address expressions.

From-SVN: r215243

7 years agore PR target/55212 ([SH] Switch to LRA)
Oleg Endo [Sat, 13 Sep 2014 18:53:54 +0000 (13 18:53 +0000)]
re PR target/55212 ([SH] Switch to LRA)

PR target/55212
* predicates.md (general_movsrc_operand,  general_movdst_operand):
  Don't legitimate QI/HImode  mem displacement while LRA is running.

From-SVN: r215241

7 years agore PR target/55212 ([SH] Switch to LRA)
Oleg Endo [Sat, 13 Sep 2014 16:23:55 +0000 (13 16:23 +0000)]
re PR target/55212 ([SH] Switch to LRA)

PR target/55212
* lra.c: fix comments.  print insn before lra_assert.

From-SVN: r215240

7 years ago* merge from trunk.
Oleg Endo [Sat, 13 Sep 2014 16:21:10 +0000 (13 16:21 +0000)]
* merge from trunk.

From-SVN: r215239

7 years ago* MAINTAINERS: Move myself to reviewers (Fortran).
Francois-Xavier Coudert [Sat, 13 Sep 2014 12:52:23 +0000 (13 12:52 +0000)]
* MAINTAINERS: Move myself to reviewers (Fortran).

From-SVN: r215237

7 years agore PR fortran/63252 (tree_class_check_failed)
Tobias Burnus [Sat, 13 Sep 2014 08:33:32 +0000 (13 10:33 +0200)]
re PR fortran/63252 (tree_class_check_failed)

2014-09-13  Tobias Burnus  <burnus@net-b.de>

        PR fortran/63252
        * trans-decl.c (gfc_build_builtin_function_decls): Fix
        caf_unlock declaration.

From-SVN: r215236

7 years agore PR c++/60862 (bad location in invalid conversion error)
Marek Polacek [Sat, 13 Sep 2014 07:54:40 +0000 (13 07:54 +0000)]
re PR c++/60862 (bad location in invalid conversion error)

PR c++/60862
* parser.c (cp_parser_postfix_expression) <case CPP_OPEN_PAREN>: Set
location of a call expression.

* g++.dg/diagnostic/pr60862.C: New test.

From-SVN: r215235

7 years agotree.c (protected_set_expr_location): Don't check whether T is non-null here.
Marek Polacek [Sat, 13 Sep 2014 05:59:47 +0000 (13 05:59 +0000)]
tree.c (protected_set_expr_location): Don't check whether T is non-null here.

* tree.c (protected_set_expr_location): Don't check whether T is
non-null here.

From-SVN: r215234

7 years agoDaily bump.
GCC Administrator [Sat, 13 Sep 2014 00:16:25 +0000 (13 00:16 +0000)]
Daily bump.

From-SVN: r215233

7 years agomsp430.md (extendhipsi2): Use 20-bit form of RLAM/RRAM.
DJ Delorie [Fri, 12 Sep 2014 18:13:39 +0000 (12 14:13 -0400)]
msp430.md (extendhipsi2): Use 20-bit form of RLAM/RRAM.

* config/msp430/msp430.md (extendhipsi2): Use 20-bit form of RLAM/RRAM.
(extend_and_shift1_hipsi2): Likewise.
(extend_and_shift2_hipsi2): Likewise.

From-SVN: r215229

7 years agore PR c++/63201 (Full specialization of a member variable template of a class templat...
Jason Merrill [Fri, 12 Sep 2014 14:39:25 +0000 (12 10:39 -0400)]
re PR c++/63201 (Full specialization of a member variable template of a class template does not work)

PR c++/63201
* decl.c (start_decl): Handle specialization of member variable
template.
* pt.c (check_explicit_specialization): Adjust error.

From-SVN: r215226

7 years agodeque (__gnu_debug::deque): Make base class C++11 allocator aware.
Jonathan Wakely [Fri, 12 Sep 2014 14:06:50 +0000 (12 15:06 +0100)]
deque (__gnu_debug::deque): Make base class C++11 allocator aware.

* include/debug/deque (__gnu_debug::deque): Make base class C++11
allocator aware.

From-SVN: r215223

7 years agoparams 2 and 3 of reg_set_between_p
David Malcolm [Fri, 12 Sep 2014 14:04:35 +0000 (12 14:04 +0000)]
params 2 and 3 of reg_set_between_p

gcc/ChangeLog:
* config/alpha/alpha.c (alpha_ra_ever_killed): Replace NULL_RTX
with NULL when dealing with an insn.
* config/sh/sh.c (sh_reorg): Strengthen local "last_float_move"
from rtx to rtx_insn *.
* rtl.h (reg_set_between_p): Strengthen params 2 and 3 from
const_rtx to const rtx_insn *.
* rtlanal.c (reg_set_between_p): Likewise, removing a checked cast.

From-SVN: r215222

7 years agore PR libstdc++/59603 (std::random_shuffle tries to swap element with itself)
Jonathan Wakely [Fri, 12 Sep 2014 13:30:35 +0000 (12 14:30 +0100)]
re PR libstdc++/59603 (std::random_shuffle tries to swap element with itself)

PR libstdc++/59603
* include/bits/stl_algo.h (random_shuffle): Prevent self-swapping.
* testsuite/25_algorithms/random_shuffle/59603.cc: New.

From-SVN: r215219

7 years agofix ChangeLog typo
Trevor Saunders [Fri, 12 Sep 2014 12:36:37 +0000 (12 12:36 +0000)]
fix ChangeLog typo

From-SVN: r215218

7 years agofix assert in hash_table pch routines
Trevor Saunders [Fri, 12 Sep 2014 12:30:29 +0000 (12 12:30 +0000)]
fix assert in hash_table pch routines

gcc/ChangeLog:

2014-09-12  Trevor Saunders  <tsaunders@mozilla.com>

* hash-table.h (gt_pch_nx): don't call gt_pch_note_object within an
assert.

From-SVN: r215216

7 years agoRemove LIBGCC2_HAS_?F_MODE target macros.
Joseph Myers [Fri, 12 Sep 2014 12:05:18 +0000 (12 13:05 +0100)]
Remove LIBGCC2_HAS_?F_MODE target macros.

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

7 years agore PR middle-end/63237 (error: invalid operand in unary operation)
Richard Biener [Fri, 12 Sep 2014 11:06:49 +0000 (12 11:06 +0000)]
re PR middle-end/63237 (error: invalid operand in unary operation)

2014-09-12  Richard Biener  <rguenther@suse.de>

PR middle-end/63237
* gimple-fold.c (get_maxval_strlen): Gimplify string length.

* g++.dg/torture/pr63237.C: New testcase.

From-SVN: r215212

7 years agotree.c (integer_each_onep): New function.
Marc Glisse [Fri, 12 Sep 2014 10:42:47 +0000 (12 12:42 +0200)]
tree.c (integer_each_onep): New function.

2014-09-12  Marc Glisse  <marc.glisse@inria.fr>

gcc/
* tree.c (integer_each_onep): New function.
* tree.h (integer_each_onep): Declare it.
* fold-const.c (fold_binary_loc): Use it for ~A + 1 to -A and
-A - 1 to ~A.  Disable (X & 1) ^ 1, (X ^ 1) & 1 and ~X & 1 to
(X & 1) == 0 for vector and complex.
gcc/testsuite/
* gcc.dg/vec-andxor1.c: New file.

From-SVN: r215209

7 years ago[AArch64] Add regmove_costs for Cortex-A57 and A53
Wilco Dijkstra [Fri, 12 Sep 2014 09:46:25 +0000 (12 09:46 +0000)]
[AArch64] Add regmove_costs for Cortex-A57 and A53

2014-09-12  Wilco Dijkstra  <wdijkstr@arm.com>

  * gcc/config/aarch64/aarch64.c: (cortexa57_regmove_cost): New cost table for
  A57.
  (cortexa53_regmove_cost): New cost table for A53.  Increase GP2FP/FP2GP cost
  to spilling from integer to FP registers.

From-SVN: r215208

7 years ago[AArch64] Fix cost for Q register moves
Wilco Dijkstra [Fri, 12 Sep 2014 09:42:42 +0000 (12 09:42 +0000)]
[AArch64] Fix cost for Q register moves

2014-09-12  Wilco Dijkstra  <wdijkstr@arm.com>

  * gcc/config/aarch64/aarch64.c (aarch64_register_move_cost): Fix Q register
  move handling.
  (generic_regmove_cost): Undo raised FP2FP move cost as Q register moves are
  now handled correctly.

From-SVN: r215207

7 years ago[AArch64] Add cost handling of CALLER_SAVE_REGS and POINTER_REGS
Wilco Dijkstra [Fri, 12 Sep 2014 09:39:42 +0000 (12 09:39 +0000)]
[AArch64] Add cost handling of CALLER_SAVE_REGS and POINTER_REGS

2014-09-12  Wilco Dijkstra  <wdijkstr@arm.com>

  * gcc/config/aarch64/aarch64.c (aarch64_register_move_cost): Add cost handling
  of CALLER_SAVE_REGS and POINTER_REGS.

From-SVN: r215206

7 years ago[Ree] Ensure inserted copy don't change the number of hard registers
Wilco Dijkstra [Fri, 12 Sep 2014 09:29:16 +0000 (12 09:29 +0000)]
[Ree] Ensure inserted copy don't change the number of hard registers

2014-09-12  Wilco Dijkstra  <wilco.dijkstra@arm.com>

  gcc/
    * ree.c (combine_reaching_defs): Ensure inserted copy don't change the
    number of hard registers.

From-SVN: r215205

7 years agoAVX-512. Extend vpternlog, valign, vrotate insns.
Alexander Ivchenko [Fri, 12 Sep 2014 07:38:47 +0000 (12 07:38 +0000)]
AVX-512. Extend vpternlog, valign, vrotate insns.

gcc/
* config/i386/sse.md
(define_mode_iterator VI48_AVX512VL): New.
(define_expand "<avx512>_vternlog<mode>_maskz"): Rename from
"avx512f_vternlog<mode>_maskz" and update mode iterator.
(define_insn "<avx512>_vternlog<mode><sd_maskz_name>"): Rename
from "avx512f_vternlog<mode><sd_maskz_name>" and update mode iterator.
(define_insn "<avx512>_vternlog<mode>_mask"): Rename from
"avx512f_vternlog<mode>_mask" and update mode iterator.
(define_insn "<mask_codefor><avx512>_align<mode><mask_name>"): Rename
from "<mask_codefor>avx512f_align<mode><mask_name>" and update mode
iterator.
(define_insn "<avx512>_<rotate>v<mode><mask_name>"): Rename from
"avx512f_<rotate>v<mode><mask_name>" and update mode iterator.
(define_insn "<avx512>_<rotate><mode><mask_name>"): Rename from
"avx512f_<rotate><mode><mask_name>" and update mode iterator.
(define_insn "clz<mode>2<mask_name>"): Use VI48_AVX512VL mode iterator.
(define_insn "<mask_codefor>conflict<mode><mask_name>"): Ditto.

Co-Authored-By: Andrey Turetskiy <andrey.turetskiy@intel.com>
Co-Authored-By: Anna Tikhonova <anna.tikhonova@intel.com>
Co-Authored-By: Ilya Tocar <ilya.tocar@intel.com>
Co-Authored-By: Ilya Verbin <ilya.verbin@intel.com>
Co-Authored-By: Kirill Yukhin <kirill.yukhin@intel.com>
Co-Authored-By: Maxim Kuznetsov <maxim.kuznetsov@intel.com>
Co-Authored-By: Michael Zolotukhin <michael.v.zolotukhin@intel.com>
From-SVN: r215203

7 years agoAVX-512. Extend max/min insn patterns.
Alexander Ivchenko [Fri, 12 Sep 2014 07:36:59 +0000 (12 07:36 +0000)]
AVX-512.  Extend max/min insn patterns.

gcc/
* config/i386/sse.md (VI128_256): Delete.
(define_mode_iterator VI124_256): New.
(define_mode_iterator VI124_256_AVX512F_AVX512BW): Ditto.
(define_expand "<code><mode>3<mask_name><round_name>"): Delete.
(define_expand "<code><VI124_256_AVX512F_AVX512BW:mode>3"): New.
(define_insn "*avx2_<code><VI124_256:mode>3"): Rename from
"*avx2_<code><mode>3<mask_name><round_name>" and update mode iterator.
(define_expand "<code><VI48_AVX512VL:mode>3_mask"): New.
(define_insn "*avx512bw_<code><VI48_AVX512VL:mode>3<mask_name>"): Ditto.
(define_insn "<mask_codefor><code><mode>3<mask_name>"): Update mode
iterator.
(define_expand "<code><VI8_AVX2:mode>3"): Update pettern generation
in presence of AVX-512.

Co-Authored-By: Andrey Turetskiy <andrey.turetskiy@intel.com>
Co-Authored-By: Anna Tikhonova <anna.tikhonova@intel.com>
Co-Authored-By: Ilya Tocar <ilya.tocar@intel.com>
Co-Authored-By: Ilya Verbin <ilya.verbin@intel.com>
Co-Authored-By: Kirill Yukhin <kirill.yukhin@intel.com>
Co-Authored-By: Maxim Kuznetsov <maxim.kuznetsov@intel.com>
Co-Authored-By: Michael Zolotukhin <michael.v.zolotukhin@intel.com>
From-SVN: r215202

7 years agoAVX-512. Extend gather insn patterns.
Alexander Ivchenko [Fri, 12 Sep 2014 07:34:31 +0000 (12 07:34 +0000)]
AVX-512. Extend gather insn patterns.

gcc/
* config/i386/sse.md
(define_expand "<avx512>_gathersi<mode>"): Rename from
"avx512f_gathersi<mode>".
(define_insn "*avx512f_gathersi<mode>"): Use VI48F.
(define_insn "*avx512f_gathersi<mode>_2"): Ditto.
(define_expand "<avx512>_gatherdi<mode>"): Rename from
"avx512f_gatherdi<mode>".
(define_insn "*avx512f_gatherdi<mode>"): Use VI48F.
(define_insn "*avx512f_gatherdi<mode>_2"): Use VI48F, add 128/256-bit
wide versions.
(define_expand "<avx512>_scattersi<mode>"): Rename from
"avx512f_scattersi<mode>".
(define_insn "*avx512f_scattersi<mode>"): Use VI48F.
(define_expand "<avx512>_scatterdi<mode>"): Rename from
"avx512f_scatterdi<mode>".
(define_insn "*avx512f_scatterdi<mode>"): Use VI48F.

Co-Authored-By: Andrey Turetskiy <andrey.turetskiy@intel.com>
Co-Authored-By: Anna Tikhonova <anna.tikhonova@intel.com>
Co-Authored-By: Ilya Tocar <ilya.tocar@intel.com>
Co-Authored-By: Ilya Verbin <ilya.verbin@intel.com>
Co-Authored-By: Kirill Yukhin <kirill.yukhin@intel.com>
Co-Authored-By: Maxim Kuznetsov <maxim.kuznetsov@intel.com>
Co-Authored-By: Michael Zolotukhin <michael.v.zolotukhin@intel.com>
From-SVN: r215201

7 years agoira.h (ira_finish_once): Delete.
Richard Sandiford [Fri, 12 Sep 2014 07:27:10 +0000 (12 07:27 +0000)]
ira.h (ira_finish_once): Delete.

gcc/
* ira.h (ira_finish_once): Delete.
* ira-int.h (target_ira_int::~target_ira_int): Declare.
(target_ira_int::free_ira_costs): Likewise.
(target_ira_int::free_register_move_costs): Likewise.
(ira_finish_costs_once): Delete.
* ira.c (free_register_move_costs): Replace with...
(target_ira_int::free_register_move_costs): ...this new function.
(target_ira_int::~target_ira_int): Define.
(ira_init): Call free_register_move_costs as a member function rather
than a global function.
(ira_finish_once): Delete.
* ira-costs.c (free_ira_costs): Replace with...
(target_ira_int::free_ira_costs): ...this new function.
(ira_init_costs): Call free_ira_costs as a member function rather
than a global function.
(ira_finish_costs_once): Delete.
* target-globals.c (target_globals::~target_globals): Call the
target_ira_int destructor.
* toplev.c: Include lra.h.
(finalize): Call lra_finish_once rather than ira_finish_once.

From-SVN: r215200

7 years agoDaily bump.
GCC Administrator [Fri, 12 Sep 2014 00:16:51 +0000 (12 00:16 +0000)]
Daily bump.

From-SVN: r215199

7 years agocommon.opt (flto-odr-type-merging): New flag.
Jan Hubicka [Thu, 11 Sep 2014 23:16:42 +0000 (12 01:16 +0200)]
common.opt (flto-odr-type-merging): New flag.

* common.opt (flto-odr-type-merging): New flag.
* ipa-deivrt.c (hash_type_name): Use ODR names for hasing if availale.
(types_same_for_odr): Likewise.
(odr_subtypes_equivalent_p): Likewise.
(add_type_duplicate): Do not walk type variants.
(register_odr_type): New function.
* ipa-utils.h (register_odr_type): Declare.
(odr_type_p): New function.
* langhooks.c (lhd_set_decl_assembler_name): Do not compute
TYPE_DECLs
* doc/invoke.texi (-flto-odr-type-merging): Document.
* tree.c (need_assembler_name_p): Compute ODR names when asked
for it.
* tree.h (DECL_ASSEMBLER_NAME): Update comment.

* lto.c (lto_read_decls): Register ODR types.

From-SVN: r215196

7 years agoAlso turn off OPTION_MASK_ABI_X32 for -m16
H.J. Lu [Thu, 11 Sep 2014 22:18:06 +0000 (11 22:18 +0000)]
Also turn off OPTION_MASK_ABI_X32 for -m16

PR target/63228
* config/i386/i386.c (ix86_option_override_internal): Also turn
off OPTION_MASK_ABI_X32 for -m16.

From-SVN: r215194

7 years agors6000.md (rs6000_mftb_<mode>): Use mode iterator GPR instead of P.
Segher Boessenkool [Thu, 11 Sep 2014 21:50:31 +0000 (11 23:50 +0200)]
rs6000.md (rs6000_mftb_<mode>): Use mode iterator GPR instead of P.

2014-09-11  Segher Boessenkool  <segher@kernel.crashing.org>

* config/rs6000/rs6000.md (rs6000_mftb_<mode>): Use mode iterator
GPR instead of P.

From-SVN: r215193

7 years agore PR target/58757 (Advertise the lack of denormal support on alpha without -mieee)
Marc Glisse [Thu, 11 Sep 2014 20:55:37 +0000 (11 20:55 +0000)]
re PR target/58757 (Advertise the lack of denormal support on alpha without -mieee)

2014-09-11  Marc Glisse  <marc.glisse@inria.fr>

PR target/58757
gcc/c-family/
* c-cppbuiltin.c (builtin_define_float_constants): Correct
__*_DENORM_MIN__ without denormals.
gcc/
* ginclude/float.h (FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
Directly forward to __*_DENORM_MIN__.
gcc/testsuite/
* gcc.dg/c11-true_min-1.c: New testcase.

From-SVN: r215191

7 years agoIntroduce LABEL_REF_LABEL
David Malcolm [Thu, 11 Sep 2014 20:47:39 +0000 (11 20:47 +0000)]
Introduce LABEL_REF_LABEL

gcc/ChangeLog:
2014-09-11  David Malcolm  <dmalcolm@redhat.com>

* rtl.h (LABEL_REF_LABEL): New macro.

* alias.c (rtx_equal_for_memref_p): Use LABEL_REF_LABEL in place
of XEXP (, 0), where we know that we have a LABEL_REF.
* cfgbuild.c (make_edges): Likewise.
(purge_dead_tablejump_edges): Likewise.
* cfgexpand.c (convert_debug_memory_address): Likewise.
* cfgrtl.c (patch_jump_insn): Likewise.
* combine.c (distribute_notes): Likewise.
* cse.c (hash_rtx_cb): Likewise.
(exp_equiv_p): Likewise.
(fold_rtx): Likewise.
(check_for_label_ref): Likewise.
* cselib.c (rtx_equal_for_cselib_1): Likewise.
(cselib_hash_rtx): Likewise.
* emit-rtl.c (mark_label_nuses): Likewise.
* explow.c (convert_memory_address_addr_space): Likewise.
* final.c (output_asm_label): Likewise.
(output_addr_const): Likewise.
* gcse.c (add_label_notes): Likewise.
* genconfig.c (walk_insn_part): Likewise.
* genrecog.c (validate_pattern): Likewise.
* ifcvt.c (cond_exec_get_condition): Likewise.
(noce_emit_store_flag): Likewise.
(noce_get_alt_condition): Likewise.
(noce_get_condition): Likewise.
* jump.c (maybe_propagate_label_ref): Likewise.
(mark_jump_label_1): Likewise.
(redirect_exp_1): Likewise.
(rtx_renumbered_equal_p): Likewise.
* lra-constraints.c (operands_match_p): Likewise.
* reload.c (operands_match_p): Likewise.
(find_reloads): Likewise.
* reload1.c (set_label_offsets): Likewise.
* reorg.c (get_branch_condition): Likewise.
* rtl.c (rtx_equal_p_cb): Likewise.
(rtx_equal_p): Likewise.
* rtlanal.c (reg_mentioned_p): Likewise.
(rtx_referenced_p): Likewise.
(get_condition): Likewise.
* sched-vis.c (print_value): Likewise.
* varasm.c (const_hash_1): Likewise.
(compare_constant): Likewise.
(const_rtx_hash_1): Likewise.
(output_constant_pool_1): Likewise.

From-SVN: r215190

7 years agohtm.md (tabort, [...]): Use xor instead of minus.
Segher Boessenkool [Thu, 11 Sep 2014 18:29:50 +0000 (11 20:29 +0200)]
htm.md (tabort, [...]): Use xor instead of minus.

2014-09-11  Segher Boessenkool  <segher@kernel.crashing.org>

* config/rs6000/htm.md (tabort, tabortdc, tabortdci, tabortwc,
tabortwci, tbegin, tcheck, tend, trechkpt, treclaim, tsr): Use xor
instead of minus.
* config/rs6000/vector.md (cr6_test_for_zero_reverse,
cr6_test_for_lt_reverse): Ditto.

From-SVN: r215187

7 years agore PR c++/61489 (Wrong warning with -Wmissing-field-initializers.)
Paolo Carlini [Thu, 11 Sep 2014 18:08:24 +0000 (11 18:08 +0000)]
re PR c++/61489 (Wrong warning with -Wmissing-field-initializers.)

2014-09-11  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/61489
* doc/invoke.texi ([-Wmissing-field-initializers]): Update.

/cp
2014-09-11  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/61489
* typeck2.c (process_init_constructor_record): Do not warn about
missing field initializer if EMPTY_CONSTRUCTOR_P (init).

/testsuite
2014-09-11  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/61489
* g++.dg/warn/Wmissing-field-initializers-1.C: New.
* g++.old-deja/g++.other/warn5.C: Adjust.

From-SVN: r215186

7 years ago[AArch64] Simplify vreinterpret for float64x1_t using casts.
Alan Lawrence [Thu, 11 Sep 2014 16:16:24 +0000 (11 16:16 +0000)]
[AArch64] Simplify vreinterpret for float64x1_t using casts.

* config/aarch64/aarch64-builtins.c (aarch64_types_unop_su_qualifiers,
TYPES_REINTERP_SU, aarch64_types_unop_sp_qualifiers, TYPE_REINTERP_SP,
aarch64_types_unop_us_qualifiers, TYPES_REINTERP_US,
aarch64_types_unop_ps_qualifiers, TYPES_REINTERP_PS, BUILTIN_VD):
Delete.

(aarch64_fold_builtin): Remove all reinterpret cases.

* config/aarch64/aarch64-protos.h (aarch64_simd_reinterpret): Delete.

* config/aarch64/aarch64-simd-builtins.def (reinterpret*) : Delete.

* config/aarch64/aarch64-simd.md (aarch64_reinterpretv8qi<mode>,
aarch64_reinterpretv4hi<mode>, aarch64_reinterpretv2si<mode>,
aarch64_reinterpretv2sf<mode>, aarch64_reinterpretdi<mode>,
aarch64_reinterpretv1df<mode>, aarch64_reinterpretv16qi<mode>,
aarch64_reinterpretv8hi<mode>, aarch64_reinterpretv4si<mode>,
aarch64_reinterpretv4sf<mode>, aarch64_reinterpretv2di<mode>,
aarch64_reinterpretv2df<mode>): Delete.

* config/aarch64/aarch64.c (aarch64_simd_reinterpret): Delete.

* config/aarch64/arm_neon.h (vreinterpret_p8_f64,
vreinterpret_p16_f64, vreinterpret_f32_f64, vreinterpret_f64_f32,
vreinterpret_f64_p8, vreinterpret_f64_p16, vreinterpret_f64_s8,
vreinterpret_f64_s16, vreinterpret_f64_s32, vreinterpret_f64_u8,
vreinterpret_f64_u16, vreinterpret_f64_u32, vreinterpret_s64_f64,
vreinterpret_u64_f64, vreinterpret_s8_f64, vreinterpret_s16_f64,
vreinterpret_s32_f64, vreinterpret_u8_f64, vreinterpret_u16_f64,
vreinterpret_u32_f64): Use cast.

* config/aarch64/iterators.md (VD_RE): Delete.

From-SVN: r215180

7 years ago[AArch64] Replace temporary inline assembler for vset_lane
Alan Lawrence [Thu, 11 Sep 2014 15:34:11 +0000 (11 15:34 +0000)]
[AArch64] Replace temporary inline assembler for vset_lane

* config/aarch64/arm_neon.h (aarch64_vset_lane_any): New (*2).
(vset_lane_f32, vset_lane_f64, vset_lane_p8, vset_lane_p16,
vset_lane_s8, vset_lane_s16, vset_lane_s32, vset_lane_s64,
vset_lane_u8, vset_lane_u16, vset_lane_u32, vset_lane_u64,
vsetq_lane_f32, vsetq_lane_f64, vsetq_lane_p8, vsetq_lane_p16,
vsetq_lane_s8, vsetq_lane_s16, vsetq_lane_s32, vsetq_lane_s64,
vsetq_lane_u8, vsetq_lane_u16, vsetq_lane_u32, vsetq_lane_u64):
Replace inline assembler with __aarch64_vset_lane_any.

From-SVN: r215179

7 years ago[AArch64 Testsuite] Add execution test of vset(q?)_lane intrinsics.
Alan Lawrence [Thu, 11 Sep 2014 14:49:23 +0000 (11 14:49 +0000)]
[AArch64 Testsuite] Add execution test of vset(q?)_lane intrinsics.

* gcc.target/aarch64/vset_lane_1.c: New test.

From-SVN: r215177

7 years ago[AArch64] Cheap fix for argument types of vmull_high_lane_{us}{16,32}
James Greenhalgh [Thu, 11 Sep 2014 14:39:41 +0000 (11 14:39 +0000)]
[AArch64] Cheap fix for argument types of vmull_high_lane_{us}{16,32}

gcc/

* config/aarch64/arm_neon.h (vmull_high_lane_s16): Fix argument
types.
(vmull_high_lane_s32): Likewise.
(vmull_high_lane_u16): Likewise.
(vmull_high_lane_u32): Likewise.

From-SVN: r215176

7 years agore PR c++/63139 (Class-scope typedef overwrites typedef of previously defined class)
Jason Merrill [Thu, 11 Sep 2014 13:50:27 +0000 (11 09:50 -0400)]
re PR c++/63139 (Class-scope typedef overwrites typedef of previously defined class)

PR c++/63139
* pt.c (tsubst_pack_expansion): Simplify substitution into T....
(tsubst): Don't throw away PACK_EXPANSION_EXTRA_ARGS.

From-SVN: r215171

7 years agore PR c++/58678 (pykde4-4.11.2 link error (devirtualization too trigger happy))
Jason Merrill [Thu, 11 Sep 2014 12:12:28 +0000 (11 08:12 -0400)]
re PR c++/58678 (pykde4-4.11.2 link error (devirtualization too trigger happy))

PR c++/58678
* ipa-devirt.c (ipa_devirt): Don't check DECL_COMDAT.

From-SVN: r215168

7 years agore PR libstdc++/63219 (Superfluous template parameter in match_result::format overload)
Jonathan Wakely [Thu, 11 Sep 2014 10:01:20 +0000 (11 11:01 +0100)]
re PR libstdc++/63219 (Superfluous template parameter in match_result::format overload)

PR libstdc++/63219
* include/bits/regex.h (match_results::format): Remove stray template
parameter.
* include/bits/regex_compiler.h (_RegexTranslator::_RegexTranslator):
Remove parameter name to avoid -Wunused-parameter warning.
* include/bits/regex_executor.h (_State_info::_State_info): Reorder
mem-initializers to avoid -Wreorder warning.
* include/bits/regex_executor.tcc (_Executor::_M_word_boundary):
Remove parameter name to avoid -Wunused-parameter warning.
* include/bits/regex_scanner.tcc (_Scanner::_M_advance): Add braces
to avoid -Wempty-body warning when not in debug mode.

From-SVN: r215160

7 years agoFix declarations in some tests.
Bernd Schmidt [Thu, 11 Sep 2014 09:07:23 +0000 (11 09:07 +0000)]
Fix declarations in some tests.

* gcc.dg/compat/struct-by-value-13_main.c (struct_by_value_13_x):
Fix declaration.
* gcc.dg/compat/struct-by-value-16a_main.c (struct_by_value_16a_x):
Fix declaration.
* gcc.dg/compat/struct-by-value-17a_main.c (struct_by_value_17a_x):
Fix declaration.
* gcc.dg/compat/struct-by-value-18a_main.c (struct_by_value_18a_x):
Fix declaration.

From-SVN: r215158

7 years agolinux64.S: Emit .note.GNU-stack even when POWERPC64 is not defined.
Jakub Jelinek [Thu, 11 Sep 2014 09:03:49 +0000 (11 11:03 +0200)]
linux64.S: Emit .note.GNU-stack even when POWERPC64 is not defined.

* src/powerpc/linux64.S: Emit .note.GNU-stack even when
POWERPC64 is not defined.
* src/powerpc/linux64_closure.S: Likewise.  Also test _CALL_ELF == 2.

From-SVN: r215155

7 years agore PR target/63223 ([avr] Make jumptables work with -Wl,--section-start,.text=)
Georg-Johann Lay [Thu, 11 Sep 2014 08:08:17 +0000 (11 08:08 +0000)]
re PR target/63223 ([avr] Make jumptables work with -Wl,--section-start,.text=)

gcc/
PR target/63223
* config/avr/avr.md (*tablejump.3byte-pc): New insn.
(*tablejump): Restrict to !AVR_HAVE_EIJMP_EICALL.  Add void clobber.
(casesi): Expand to *tablejump.3byte-pc if AVR_HAVE_EIJMP_EICALL.
libgcc/
PR target/63223
* config/avr/libgcc.S (__tablejump2__): Rewrite to use RAMPZ, ELPM
and R24 as needed.  Make work for all devices and .text locations.
(__do_global_ctors, __do_global_dtors): Use word addresses.
(__tablejump__, __tablejump_elpm__): Remove functions.
* t-avr (LIB1ASMFUNCS): Remove _tablejump, _tablejump_elpm.
Add _tablejump2.
(XICALL, XIJMP): New macros.

From-SVN: r215152

7 years agoAVX-512. Add vperm[it]2 insns support.
Alexander Ivchenko [Thu, 11 Sep 2014 06:52:30 +0000 (11 06:52 +0000)]
AVX-512. Add vperm[it]2 insns support.

gcc/
* config/i386/sse.md
(define_expand "<avx512>_vpermi2var<VI48F:mode>3_maskz"): Rename from
"avx512f_vpermi2var<mode>3_maskz" and update mode iterator.
(define_expand "<avx512>_vpermi2var<VI2_AVX512VL:mode>3_maskz"):
New.
(define_insn "<avx512>_vpermi2var<VI48F:mode>3<sd_maskz_name>"): Rename
from "avx512f_vpermi2var<mode>3<sd_maskz_name>" and update mode
iterator.
(define_insn "<avx512>_vpermi2var<VI2_AVX512VL:mode>3<sd_maskz_name>"):
New.
(define_insn "<avx512>_vpermi2var<VI48F:mode>3_mask"): Rename from
"avx512f_vpermi2var<mode>3_mask" and update mode iterator.
(define_insn "<avx512>_vpermi2var<VI2_AVX512VL:mode>3_mask"): New.
(define_expand "<avx512>_vpermt2var<VI48F:mode>3_maskz"): Rename from
"avx512f_vpermt2var<mode>3_maskz" and update mode iterator.
(define_expand "<avx512>_vpermt2var<VI2_AVX512VL:mode>3_maskz"): New.
(define_insn "<avx512>_vpermt2var<VI48F:mode>3<sd_maskz_name>"): Rename
from "avx512f_vpermt2var<mode>3<sd_maskz_name>" and update mode
iterator.
(define_insn "<avx512>_vpermt2var<VI2_AVX512VL:mode>3<sd_maskz_name>"):
New.
(define_insn "<avx512>_vpermt2var<VI48F:mode>3_mask"): Rename from
"avx512f_vpermt2var<mode>3_mask" and update mode iterator.
(define_insn "<avx512>_vpermt2var<VI2_AVX512VL:mode>3_mask"): New.

Co-Authored-By: Andrey Turetskiy <andrey.turetskiy@intel.com>
Co-Authored-By: Anna Tikhonova <anna.tikhonova@intel.com>
Co-Authored-By: Ilya Tocar <ilya.tocar@intel.com>
Co-Authored-By: Ilya Verbin <ilya.verbin@intel.com>
Co-Authored-By: Kirill Yukhin <kirill.yukhin@intel.com>
Co-Authored-By: Maxim Kuznetsov <maxim.kuznetsov@intel.com>
Co-Authored-By: Michael Zolotukhin <michael.v.zolotukhin@intel.com>
From-SVN: r215151

7 years agovarpool.c (varpool_node::ctor_useable_for_folding_p): Do not try to access removed...
Jan Hubicka [Thu, 11 Sep 2014 06:48:23 +0000 (11 08:48 +0200)]
varpool.c (varpool_node::ctor_useable_for_folding_p): Do not try to access removed nodes.

* varpool.c (varpool_node::ctor_useable_for_folding_p): Do not try
to access removed nodes.

From-SVN: r215150

7 years agore PR middle-end/63186 (Undefined .L* symbols because of fnsplit)
Jan Hubicka [Thu, 11 Sep 2014 06:46:23 +0000 (11 08:46 +0200)]
re PR middle-end/63186 (Undefined .L* symbols because of fnsplit)

PR tree-optimization/63186
* ipa-split.c (test_nonssa_use): Skip nonforced labels.
(mark_nonssa_use): Likewise.
(verify_non_ssa_vars): Verify all header blocks for label
definitions.

* gcc.dg/pr63186.c: New testcase.

From-SVN: r215149

7 years agoAVX-512. Extend vpermvar insn patterns.
Alexander Ivchenko [Thu, 11 Sep 2014 06:42:29 +0000 (11 06:42 +0000)]
AVX-512. Extend vpermvar insn patterns.

gcc/
* config/i386/sse.md
(define_mode_attr avx2_avx512): Rename from avx2_avx512bw.
(define_mode_iterator VI48F_256_512): Extend to AVX-512VL.
(define_insn "<avx2_avx512>_permvar<mode><mask_name>"): Rename from
"<avx2_avx512f>_permvar<mode><mask_name>".
(define_insn "<avx512>_permvar<mode><mask_name>"): New.
(define_insn "<avx2_avx512>_ashrv<VI48_AVX512F_AVX512VL:mode><mask_name>"):
Rename from "<avx2_avx512f>_ashrv<mode><mask_name>".
(define_insn "<avx2_avx512>_ashrv<VI2_AVX512VL:mode><mask_name>"):
Ditto.
(define_insn "<avx2_avx512>_<shift_insn>v<VI48_AVX512F:mode><mask_name>"):
Rename from "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>".
(define_insn "<avx2_avx512>_<shift_insn>v<VI2_AVX512VL:mode><mask_name>"):
Rename from "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>".

Co-Authored-By: Andrey Turetskiy <andrey.turetskiy@intel.com>
Co-Authored-By: Anna Tikhonova <anna.tikhonova@intel.com>
Co-Authored-By: Ilya Tocar <ilya.tocar@intel.com>
Co-Authored-By: Ilya Verbin <ilya.verbin@intel.com>
Co-Authored-By: Kirill Yukhin <kirill.yukhin@intel.com>
Co-Authored-By: Maxim Kuznetsov <maxim.kuznetsov@intel.com>
Co-Authored-By: Michael Zolotukhin <michael.v.zolotukhin@intel.com>
From-SVN: r215148

7 years agoDaily bump.
GCC Administrator [Thu, 11 Sep 2014 00:16:43 +0000 (11 00:16 +0000)]
Daily bump.

From-SVN: r215147

7 years agosh.c (sh_secondary_reload): return NO_REGS instead of FPUL_REGS in one case.
Oleg Endo [Wed, 10 Sep 2014 22:05:12 +0000 (10 22:05 +0000)]
sh.c (sh_secondary_reload): return NO_REGS instead of FPUL_REGS in one case.

* config/sh/sh.c (sh_secondary_reload): return NO_REGS
  instead of FPUL_REGS in one case.

* lra-constraints.c: print some info before bailing out
  in some cases.

From-SVN: r215140

7 years agovsx.md (vsx_fmav4sf4): Use correct constraints for V2DF, V4SF, DF, and DI modes.
Michael Meissner [Wed, 10 Sep 2014 21:13:37 +0000 (10 21:13 +0000)]
vsx.md (vsx_fmav4sf4): Use correct constraints for V2DF, V4SF, DF, and DI modes.

2014-09-10  Michael Meissner  <meissner@linux.vnet.ibm.com>

* config/rs6000/vsx.md (vsx_fmav4sf4): Use correct constraints for
V2DF, V4SF, DF, and DI modes.
(vsx_fmav2df2): Likewise.
(vsx_float_fix_<mode>2): Likewise.
(vsx_reduc_<VEC_reduc_name>_v2df_scalar): Likewise.

From-SVN: r215138

7 years agoFix PR target/63209.
Xinliang David Li [Wed, 10 Sep 2014 20:10:25 +0000 (10 20:10 +0000)]
Fix PR target/63209.

From-SVN: r215136

7 years agoi386.exp: Only run vect-args.c tests if runtest_file_p says they should be run.
Jakub Jelinek [Wed, 10 Sep 2014 20:02:00 +0000 (10 22:02 +0200)]
i386.exp: Only run vect-args.c tests if runtest_file_p says they should be run.

* gcc.target/i386/i386.exp: Only run vect-args.c tests
if runtest_file_p says they should be run.

From-SVN: r215135

7 years agore PR ipa/61659 (Extra undefined symbol because of devirtualization)
Jason Merrill [Wed, 10 Sep 2014 17:28:59 +0000 (10 13:28 -0400)]
re PR ipa/61659 (Extra undefined symbol because of devirtualization)

PR c++/61659
* decl.c (grokfndecl): Don't set DECL_COMDAT on static inlines.
(duplicate_decls, start_decl): Likewise.
* pt.c (check_explicit_specialization): Likewise.
(push_template_decl_real): Or static templates.

From-SVN: r215134

7 years agoerror_for_asm and warning_for_asm take const rtx_insn *
David Malcolm [Wed, 10 Sep 2014 14:42:05 +0000 (10 14:42 +0000)]
error_for_asm and warning_for_asm take const rtx_insn *

gcc/ChangeLog:
2014-09-10  David Malcolm  <dmalcolm@redhat.com>

* final.c (this_is_asm_operands): Strengthen this variable from
rtx to const rtx_insn *.
* output.h (this_is_asm_operands): Likewise.
* rtl-error.c (location_for_asm): Strengthen param "insn" from
const_rtx to const rtx_insn *.
(diagnostic_for_asm): Likewise.
* rtl-error.h (error_for_asm): Likewise.
(warning_for_asm): Likewise.

From-SVN: r215133

7 years agoinsn_extract takes an rtx_insn
David Malcolm [Wed, 10 Sep 2014 14:35:16 +0000 (10 14:35 +0000)]
insn_extract takes an rtx_insn

gcc/ChangeLog:
2014-09-10  David Malcolm  <dmalcolm@redhat.com>

* genextract.c (print_header): When writing out insn_extract to
insn-extract.c, strengthen the param "insn" from rtx to rtx_insn *.
* recog.h (insn_extract): Strengthen the param from rtx to
rtx_insn *.

From-SVN: r215132

7 years ago[AArch64 Testsuite] Add a test of the vst[234](q?) intrinics
Alan Lawrence [Wed, 10 Sep 2014 13:20:47 +0000 (10 13:20 +0000)]
[AArch64 Testsuite] Add a test of the vst[234](q?) intrinics

        * gcc.target/aarch64/vstN_1.c: New test.

From-SVN: r215129

7 years agohook.in: Load the xmethods.
Siva Chandra Reddy [Wed, 10 Sep 2014 13:18:04 +0000 (10 13:18 +0000)]
hook.in: Load the xmethods.

2014-09-10  Siva Chandra Reddy  <sivachandra@google.com>

* python/hook.in: Load the xmethods.
* python/Makefile.am (nobase_python_DATA): Add xmethods.py.
* python/Makefile.in: Regenerated.
* python/libstdcxx/v6/xmethods.py: New file.
* testsuite/lib/gdb-test.exp (gdb_version_check_xmethods): New
function.
(gdb-test): New optional argument LOAD_XMETHODS.  Load xmethods
python script if LOAD_XMETHODS is true.
* testsuite/libstdc++-xmethods/unique_ptr.cc: New file.
* testsuite/libstdc++-xmethods/vector.cc: New file.
* testsuite/libstdc++-xmethods/xmethods.exp: New file.

From-SVN: r215128

7 years agoinstall.texi (Prerequisites): Note Tcl 8.6 bug fixed in 8.6.1.
Mike Stump [Wed, 10 Sep 2014 12:35:11 +0000 (10 12:35 +0000)]
install.texi (Prerequisites): Note Tcl 8.6 bug fixed in 8.6.1.

* doc/install.texi (Prerequisites): Note Tcl 8.6 bug fixed in
8.6.1.

From-SVN: r215127

7 years ago[AArch64 Testsuite] Add a test of the vldN_lane intrinsic
Alan Lawrence [Wed, 10 Sep 2014 12:33:59 +0000 (10 12:33 +0000)]
[AArch64 Testsuite] Add a test of the vldN_lane intrinsic

        * gcc.target/aarch64/vldN_lane_1.c: New test.

From-SVN: r215126

7 years agocgraphunit.c (expand_thunk): If not expanding, set analyzed flag.
Martin Jambor [Wed, 10 Sep 2014 11:36:29 +0000 (10 13:36 +0200)]
cgraphunit.c (expand_thunk): If not expanding, set analyzed flag.

2014-09-10  Martin Jambor  <mjambor@suse.cz>

* cgraphunit.c (expand_thunk): If not expanding, set analyzed flag.
(analyze): Do not set analyze flag if expand_thunk returns false;.
(create_wrapper): Likewise.
* cgraphclones.c (duplicate_thunk_for_node): Likewise.

From-SVN: r215123

7 years agore PR middle-end/61654 (ICE in release_function_body, at cgraph.c:1699)
Martin Jambor [Wed, 10 Sep 2014 11:34:09 +0000 (10 13:34 +0200)]
re PR middle-end/61654 (ICE in release_function_body, at cgraph.c:1699)

2014-09-10  Martin Jambor  <mjambor@suse.cz>

PR ipa/61654
* cgraphclones.c (duplicate_thunk_for_node): Copy arguments of the
new decl properly.  Analyze the new thunk if it is expanded.

gcc/testsuite/
* g++.dg/ipa/pr61654.C: New test.

From-SVN: r215122

7 years agocoretypes.h (struct _dont_use_rtx_insn_here_, rtx_insn): Define.
Andreas Schwab [Wed, 10 Sep 2014 11:01:35 +0000 (10 11:01 +0000)]
coretypes.h (struct _dont_use_rtx_insn_here_, rtx_insn): Define.

* coretypes.h (struct _dont_use_rtx_insn_here_, rtx_insn)
[USED_FOR_TARGET]: Define.

From-SVN: r215121

7 years agoMIPS: Do not reload unallocated FP_REGS pseudos via GR_REGS
Matthew Fortune [Wed, 10 Sep 2014 10:52:39 +0000 (10 10:52 +0000)]
MIPS: Do not reload unallocated FP_REGS pseudos via GR_REGS

gcc/

* config/mips/mips.c (mips_secondary_reload_class): Handle
regno < 0 case.

From-SVN: r215120

7 years agoFix ICE in bitmap routines with LRA and inline assembly language
Robert Suchanek [Wed, 10 Sep 2014 10:36:00 +0000 (10 10:36 +0000)]
Fix ICE in bitmap routines with LRA and inline assembly language

gcc/

* lra-lives.c (process_bb_lives): Replace assignment with bitwise OR
assignment.

From-SVN: r215119

7 years agoflag-types.h (enum sanitize_code): Add SANITIZE_NONNULL_ATTRIBUTE and SANITIZE_RETURN...
Jakub Jelinek [Wed, 10 Sep 2014 09:23:16 +0000 (10 11:23 +0200)]
flag-types.h (enum sanitize_code): Add SANITIZE_NONNULL_ATTRIBUTE and SANITIZE_RETURNS_NONNULL_ATTRIBUTE...

gcc/
* flag-types.h (enum sanitize_code): Add SANITIZE_NONNULL_ATTRIBUTE
and SANITIZE_RETURNS_NONNULL_ATTRIBUTE, or them into SANITIZE_UNDEFINED.
* opts.c (common_handle_option): Handle SANITIZE_NONNULL_ATTRIBUTE and
SANITIZE_RETURNS_NONNULL_ATTRIBUTE and disable
flag_delete_null_pointer_checks for them.
* sanitizer.def (BUILT_IN_UBSAN_HANDLE_NONNULL_ARG,
BUILT_IN_UBSAN_HANDLE_NONNULL_ARG_ABORT,
BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN,
BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_ABORT): New.
* ubsan.c (instrument_bool_enum_load): Set *gsi back to
stmt's iterator.
(instrument_nonnull_arg, instrument_nonnull_return): New functions.
(pass_ubsan::gate): Return true even for SANITIZE_NONNULL_ATTRIBUTE
or SANITIZE_RETURNS_NONNULL_ATTRIBUTE.
(pass_ubsan::execute): Call instrument_nonnull_{arg,return}.
* doc/invoke.texi (-fsanitize=nonnull-attribute,
-fsanitize=returns-nonnull-attribute): Document.
gcc/testsuite/
* c-c++-common/ubsan/attrib-3.c: New test.
* c-c++-common/ubsan/nonnull-1.c: New test.
* c-c++-common/ubsan/nonnull-2.c: New test.
* c-c++-common/ubsan/nonnull-3.c: New test.
* c-c++-common/ubsan/nonnull-4.c: New test.
* c-c++-common/ubsan/nonnull-5.c: New test.
libsanitizer/
* ubsan/ubsan_handlers.cc, ubsan/ubsan_handlers.h: Cherry pick
upstream r215485, r217389, r217391 and r217400.

From-SVN: r215118

7 years agoubsan.h (struct ubsan_mismatch_data): Removed.
Jakub Jelinek [Wed, 10 Sep 2014 09:21:25 +0000 (10 11:21 +0200)]
ubsan.h (struct ubsan_mismatch_data): Removed.

* ubsan.h (struct ubsan_mismatch_data): Removed.
(ubsan_create_data): Remove MISMATCH argument, add LOCCNT argument.
* ubsan.c (ubsan_source_location): For unknown locations,
pass { NULL, 0, 0 } instead of { "<unknown>", x, y }.
(ubsan_create_data): Remove MISMATCH argument, add LOCCNT argument.
Allow more than one location and arbitrary extra arguments passed
in ... instead of through MISMATCH pointer.
(ubsan_instrument_unreachable, ubsan_expand_bounds_ifn,
ubsan_expand_null_ifn, ubsan_build_overflow_builtin,
instrument_bool_enum_load, ubsan_instrument_float_cast): Adjust
callers.
c-family/
* c-ubsan.c (ubsan_instrument_division, ubsan_instrument_shift,
ubsan_instrument_vla, ubsan_instrument_return): Adjust
ubsan_create_data callers.
(ubsan_instrument_bounds): Don't emit UBSAN_BOUNDS at all if
index is constant or BIT_AND_EXPR with constant mask and is
small enough for the bound.
* c-gimplify.c (ubsan_walk_array_refs_r): For ADDR_EXPR of
ARRAY_REF, make sure the inner ARRAY_REF is not walked again.

From-SVN: r215117

7 years agoAVX-512. Add patterns for compress, expand.
Alexander Ivchenko [Wed, 10 Sep 2014 07:05:31 +0000 (10 07:05 +0000)]
AVX-512. Add patterns for compress, expand.

gcc/
* config/i386/sse.md
(define_mode_iterator VI48F): New.
(define_insn "<avx512>_compress<mode>_mask"): Rename from
"avx512f_compress<mode>_mask" and update mode iterator.
(define_insn "<avx512>_compressstore<mode>_mask"): Rename from
"avx512f_compressstore<mode>_mask" and update mode iterator.
(define_expand "<avx512>_expand<mode>_maskz"): Rename from
"avx512f_expand<mode>_maskz" and update mode iterator.
(define_insn "<avx512>_expand<mode>_mask"): Rename from
"avx512f_expand<mode>_mask" and update mode iterator.

Co-Authored-By: Andrey Turetskiy <andrey.turetskiy@intel.com>
Co-Authored-By: Anna Tikhonova <anna.tikhonova@intel.com>
Co-Authored-By: Ilya Tocar <ilya.tocar@intel.com>
Co-Authored-By: Ilya Verbin <ilya.verbin@intel.com>
Co-Authored-By: Kirill Yukhin <kirill.yukhin@intel.com>
Co-Authored-By: Maxim Kuznetsov <maxim.kuznetsov@intel.com>
Co-Authored-By: Michael Zolotukhin <michael.v.zolotukhin@intel.com>
From-SVN: r215108

7 years agoAVX-512. Add reduce, range, fpclass insn patterns.
Alexander Ivchenko [Wed, 10 Sep 2014 06:54:51 +0000 (10 06:54 +0000)]
AVX-512. Add reduce, range, fpclass insn patterns.

gcc/
* config/i386/i386.c
(ix86_expand_args_builtin): Handle avx512dq_rangepv8df_mask_round,
avx512dq_rangepv16sf_mask_round, avx512dq_rangepv4df_mask,
avx512dq_rangepv8sf_mask, avx512dq_rangepv2df_mask,
avx512dq_rangepv4sf_mask.
* config/i386/sse.md
(define_c_enum "unspec"): Add UNSPEC_REDUCE, UNSPEC_FPCLASS,
UNSPEC_RANGE.
(define_insn "<mask_codefor>reducep<mode><mask_name>"): New.
(define_insn "reduces<mode>"): Ditto.
(define_insn "avx512dq_rangep<mode><mask_name><round_saeonly_name>"):
Ditto.
(define_insn "avx512dq_ranges<mode><round_saeonly_name>"): Ditto.
(define_insn "avx512dq_fpclass<mode><mask_scalar_merge_name>"): Ditto.
(define_insn "avx512dq_vmfpclass<mode>"): Ditto..

Co-Authored-By: Andrey Turetskiy <andrey.turetskiy@intel.com>
Co-Authored-By: Anna Tikhonova <anna.tikhonova@intel.com>
Co-Authored-By: Ilya Tocar <ilya.tocar@intel.com>
Co-Authored-By: Ilya Verbin <ilya.verbin@intel.com>
Co-Authored-By: Kirill Yukhin <kirill.yukhin@intel.com>
Co-Authored-By: Maxim Kuznetsov <maxim.kuznetsov@intel.com>
Co-Authored-By: Michael Zolotukhin <michael.v.zolotukhin@intel.com>
From-SVN: r215107

7 years agoAVX-512. Update float unspecs: storeu, rcp14, rsqrt14, scalef, getexp, fixupimm,...
Alexander Ivchenko [Wed, 10 Sep 2014 06:51:20 +0000 (10 06:51 +0000)]
AVX-512. Update float unspecs: storeu, rcp14, rsqrt14, scalef, getexp, fixupimm, rndscale, getmant.

gcc/
* config/i386/i386.c
(avx512f_vgetmantv2df_round): Rename from "avx512f_getmantv2df_round".
(avx512f_vgetmantv4sf_round): Rename from "avx512f_vgetmantv4sf_round".
(ix86_expand_args_builtin): Handle avx512vl_getmantv8sf_mask,
avx512vl_getmantv4df_mask, avx512vl_getmantv4sf_mask,
avx512vl_getmantv2df_mask.
(ix86_expand_round_builtin): Handle avx512f_vgetmantv2df_round,
avx512f_vgetmantv4sf_round.
* config/i386/sse.md
(define_insn "<avx512>_storeu<ssemodesuffix><avxsizesuffix>_mask"):
Rename from "avx512f_storeu<ssemodesuffix>512_mask" and update
mode iterator.
(define_insn "<mask_codefor>rcp14<mode><mask_name>"): Use VF_AVX512VL.
(define_insn "<mask_codefor>rsqrt14<mode><mask_name>"): Ditto.
(define_insn "<avx512>_scalef<mode><mask_name><round_name>"): Rename
from "avx512f_scalef<mode><mask_name><round_name>" and update mode
iterator..
(define_insn "<avx512>_getexp<mode><mask_name><round_saeonly_name>"):
Rename from "avx512f_getexp<mode><mask_name><round_saeonly_name>" and
update mode iterator.
(define_expand
"<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>"): Rename from
"avx512f_fixupimm<mode>_maskz<round_saeonly_expand_name>" and update
mode iterator.
(define_insn
"<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>"): Rename
from "avx512f_fixupimm<mode><sd_maskz_name><round_saeonly_name>" and
update mode iterator.
(define_insn "<avx512>_fixupimm<mode>_mask<round_saeonly_name>"): Rename
from "avx512f_fixupimm<mode>_mask<round_saeonly_name>" and update mode
iterator..
(define_insn
"<avx512>_rndscale<mode><mask_name><round_saeonly_name>"): rename from
"avx512f_rndscale<mode><mask_name><round_saeonly_name>" and update
mode iterator..
(define_insn "<avx512>_getmant<mode><mask_name><round_saeonly_name>"):
Rename from "avx512f_getmant<mode><mask_name><round_saeonly_name>" and
update mode iterator.
(define_insn "avx512f_vgetmant<mode><round_saeonly_name>"): Rename from
"avx512f_getmant<mode><round_saeonly_name>".

Co-Authored-By: Andrey Turetskiy <andrey.turetskiy@intel.com>
Co-Authored-By: Anna Tikhonova <anna.tikhonova@intel.com>
Co-Authored-By: Ilya Tocar <ilya.tocar@intel.com>
Co-Authored-By: Ilya Verbin <ilya.verbin@intel.com>
Co-Authored-By: Kirill Yukhin <kirill.yukhin@intel.com>
Co-Authored-By: Maxim Kuznetsov <maxim.kuznetsov@intel.com>
Co-Authored-By: Michael Zolotukhin <michael.v.zolotukhin@intel.com>
From-SVN: r215106

7 years agore PR lto/63166 (ICE (LTO): ipa_intraprocedural_devirtualization, at ipa-prop.c:2611)
Jan Hubicka [Wed, 10 Sep 2014 06:33:36 +0000 (10 08:33 +0200)]
re PR lto/63166 (ICE (LTO): ipa_intraprocedural_devirtualization, at ipa-prop.c:2611)

PR ipa/63166
* ipa-prop.c (compute_known_type_jump_func): Fix conditional.

* g++.dg/lto/pr63166_0.ii: New testcase.
* g++.dg/lto/pr63166_1.ii: New testcase.

From-SVN: r215105

7 years agoAVX-512. Extend FMA patterns.
Alexander Ivchenko [Wed, 10 Sep 2014 06:28:03 +0000 (10 06:28 +0000)]
AVX-512. Extend FMA patterns.

gcc/
* config/i386/sse.md (define_mode_iterator VF_AVX512VL): New.
(define_mode_iterator FMAMODEM): Allow 128/256bit EVEX version.
(define_mode_iterator FMAMODE_AVX512): New.
(define_mode_iterator FMAMODE): Remove conditions.
(define_expand "fma4i_fmadd_<mode>"): Use FMAMODE_AVX512 mode iterator.
(define_expand "<avx512>_fmadd_<mode>_maskz<round_expand_name>"): Rename
from "<avx512>_fmadd_<mode>_maskz<round_expand_name>" and use VF_AVX512VL
mode iterator.
(define_mode_iterator FMAMODE_NOVF512): Remove.
(define_insn "*fma_fmadd_<mode>"): Rename from
"<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>" and use
FMAMODE mode iterator.
(define_mode_iterator VF_SF_AVX512VL): New.
(define_insn "<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>"):
Use VF_SF_AVX512VL mode iterator.
(define_insn "<avx512>_fmadd_<mode>_mask<round_name>"): Rename from
"avx512f_fmadd_<mode>_mask<round_name>" and use VF_AVX512VL mode
iterator.
(define_insn "<avx512>_fmadd_<mode>_mask3<round_name>"): Rename from
"avx512f_fmadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode
iterator.
(define_insn "*fma_fmsub_<mode>"): Rename from
"<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>" and use
FMAMODE mode iterator.
(define_insn "<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>"):
Use VF_SF_AVX512VL mode iterator.
(define_insn "<avx512>_fmsub_<mode>_mask<round_name>"): Rename from
"avx512f_fmsub_<mode>_mask<round_name>" and use VF_AVX512VL mode
iterator.
(define_insn "<avx512>_fmsub_<mode>_mask3<round_name>"): Rename from
"avx512f_fmsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode
iterator.
(define_insn "*fma_fnmadd_<mode>"): Rename from
"<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>" and
use FMAMODE mode iterator.
(define_insn "<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>"):
Use VF_SF_AVX512VL mode iterator.
(define_insn "<avx512>_fnmadd_<mode>_mask<round_name>"): Rename from
"avx512f_fnmadd_<mode>_mask<round_name>" and use VF_AVX512VL mode
iterator.
(define_insn "<avx512>_fnmadd_<mode>_mask3<round_name>"): Rename from
"avx512f_fnmadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode
iterator.
(define_insn "*fma_fnmsub_<mode>"): Rename from
"<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>" and use
FMAMODE mode iterator.
(define_insn "<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>"):
Use VF_SF_AVX512VL mode iterator.
(define_insn "<avx512>_fnmsub_<mode>_mask<round_name>"): Rename from
"avx512f_fnmsub_<mode>_mask<round_name>" and use VF_AVX512VL mode
iterator.
(define_insn "<avx512>_fnmsub_<mode>_mask3<round_name>"): Rename from
"avx512f_fnmsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode
iterator.
(define_expand "<avx512>_fmaddsub_<mode>_maskz<round_expand_name>"):
Rename from "avx512f_fmaddsub_<mode>_maskz<round_expand_name>" and
use VF_AVX512VL mode iterator.
(define_insn "*fma_fmaddsub_<mode>"): Rename from
"<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>" and
remove subst usage.
(define_insn "<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>"):
Use VF_SF_AVX512VL mode iterator.
(define_insn "<avx512>_fmaddsub_<mode>_mask<round_name>"): Rename from
"avx512f_fmaddsub_<mode>_mask<round_name>" and use VF_AVX512VL mode
iterator.
(define_insn "<avx512>_fmaddsub_<mode>_mask3<round_name>"): Rename from
"avx512f_fmaddsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode
iterator.
(define_insn "*fma_fmsubadd_<mode>"): Rename from
"<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>" and
remove usage of subst.
(define_insn "<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>"):
Use VF_SF_AVX512VL mode iterator.
(define_insn "<avx512>_fmsubadd_<mode>_mask<round_name>"): Rename from
"avx512f_fmsubadd_<mode>_mask<round_name>" and use VF_AVX512VL mode
iterator.
(define_insn "<avx512>_fmsubadd_<mode>_mask3<round_name>"): Rename from
"avx512f_fmsubadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode
iterator.

Co-Authored-By: Andrey Turetskiy <andrey.turetskiy@intel.com>
Co-Authored-By: Anna Tikhonova <anna.tikhonova@intel.com>
Co-Authored-By: Ilya Tocar <ilya.tocar@intel.com>
Co-Authored-By: Ilya Verbin <ilya.verbin@intel.com>
Co-Authored-By: Kirill Yukhin <kirill.yukhin@intel.com>
Co-Authored-By: Maxim Kuznetsov <maxim.kuznetsov@intel.com>
Co-Authored-By: Michael Zolotukhin <michael.v.zolotukhin@intel.com>
From-SVN: r215104

7 years agore PR libgcc/56846 (_Unwind_Backtrace on ARM and noexcept)
Tony Wang [Wed, 10 Sep 2014 04:45:32 +0000 (10 04:45 +0000)]
re PR libgcc/56846 (_Unwind_Backtrace on ARM and noexcept)

2014-09-10  Tony Wang  <tony.wang@arm.com>

    libstdc++-v3/
    PR target/56846
    * libsupc++/eh_personality.cc (PERSONALITY_FUNCTION):
    Return with CONTINUE_UNWINDING when the state pattern
    contains: _US_VIRTUAL_UNWIND_FRAME | _US_FORCE_UNWIND

From-SVN: r215101

7 years agorevert: calls.c (precompute_arguments): Check promoted_for_signed_and_unsigned_p...
Kugan Vivekanandarajah [Wed, 10 Sep 2014 00:19:23 +0000 (10 00:19 +0000)]
revert: calls.c (precompute_arguments): Check promoted_for_signed_and_unsigned_p and set the promoted mode.

gcc/ChangeLog:

2014-09-10  Kugan Vivekanandarajah  <kuganv@linaro.org>

Revert r213751:
* calls.c (precompute_arguments): Check
 promoted_for_signed_and_unsigned_p and set the promoted mode.
(promoted_for_signed_and_unsigned_p): New function.
(expand_expr_real_1): Check promoted_for_signed_and_unsigned_p
and set the promoted mode.
* expr.h (promoted_for_signed_and_unsigned_p): New function definition.
* cfgexpand.c (expand_gimple_stmt_1): Call emit_move_insn if
SUBREG is promoted with SRP_SIGNED_AND_UNSIGNED.

From-SVN: r215100

7 years agoDaily bump.
GCC Administrator [Wed, 10 Sep 2014 00:16:26 +0000 (10 00:16 +0000)]
Daily bump.

From-SVN: r215099

7 years agoopth-gen.awk: Generate mapping from cpp message reasons to the options that enable...
Manuel López-Ibáñez [Tue, 9 Sep 2014 22:17:54 +0000 (9 22:17 +0000)]
opth-gen.awk: Generate mapping from cpp message reasons to the options that enable them.

gcc/ChangeLog:

2014-09-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>

* opth-gen.awk: Generate mapping from cpp message reasons to the
options that enable them.
* doc/options.texi (CppReason): Document.

gcc/c-family/ChangeLog:

2014-09-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>

* c.opt: Add CppReason to various flags.
(Wdate-time): Re-sort.
* c-common.c: Include c-common.h earlier.
(struct reason_option_codes_t): Delete.
(c_option_controlling_cpp_error): Prefix global type and struct
with cpp_.

From-SVN: r215095

7 years agoinvoke.texi (Wnormalized=): Update.
Manuel López-Ibáñez [Tue, 9 Sep 2014 21:41:43 +0000 (9 21:41 +0000)]
invoke.texi (Wnormalized=): Update.

gcc/ChangeLog:

2014-09-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>

* doc/invoke.texi (Wnormalized=): Update.

libcpp/ChangeLog:

2014-09-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>

* include/cpplib.h (struct cpp_options): Declare warn_normalize as
int instead of enum.

gcc/c-family/ChangeLog:

2014-09-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>

* c.opt (Wnormalized): New.
(Wnormalized=): Use Enum and Reject Negative.
* c-opts.c (c_common_handle_option): Do not handle Wnormalized here.

gcc/testsuite/ChangeLog:

2014-09-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>

* gcc.dg/cpp/warn-normalized-3.c: Delete useless dg-prune-output.

From-SVN: r215093

7 years agoFix pad status check.
Janne Blomqvist [Tue, 9 Sep 2014 21:23:25 +0000 (10 00:23 +0300)]
Fix pad status check.

2014-09-10  Janne Blomqvist  <jb@gcc.gnu.org>

* io/transfer.c (read_block_form): Fix pad status check (found by
Thomas Schwinge with -Wlogical-not-parentheses).

From-SVN: r215092