aboutsummaryrefslogtreecommitdiff
path: root/gcc
AgeCommit message (Collapse)AuthorFilesLines
2014-09-23AVX-512. Add vshufps insn patterns.Alexander Ivchenko2-22/+73
gcc/ * config/i386/sse.md (define_expand "avx_shufps256<mask_expand4_name>"): Add masking. (define_insn "avx_shufps256_1<mask_name>"): Ditto. (define_expand "sse_shufps<mask_expand4_name>"): Ditto. (define_insn "sse_shufps_v4sf_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: r215495
2014-09-23AVX-512. Add rest of vunpck[lh]ps.Alexander Ivchenko2-18/+50
gcc/ * config/i386/sse.md (define_insn "avx_unpckhps256<mask_name>"): Add masking. (define_insn "vec_interleave_highv4sf<mask_name>"): Ditto. (define_insn "avx_unpcklps256<mask_name>"): Ditto. (define_insn "unpcklps128_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: r215494
2014-09-23AVX-512. Add masked vunpck[lh]pd.Alexander Ivchenko2-17/+66
gcc/ * config/i386/sse.md (define_insn "avx_unpckhpd256<mask_name>"): Add masking. (define_insn "avx512vl_unpckhpd128_mask"): New. (define_expand "avx_movddup256<mask_name>"): Add masking. (define_expand "avx_unpcklpd256<mask_name>"): Ditto. (define_insn "*avx_unpcklpd256<mask_name>"): Ditto. (define_insn "avx512vl_unpcklpd128_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: r215493
2014-09-23Remove LIBGCC2_LONG_DOUBLE_TYPE_SIZE target macro.Joseph Myers24-137/+59
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
2014-09-23Daily bump.GCC Administrator1-1/+1
From-SVN: r215489
2014-09-22tree-ssa-ccp.c (prop_value_d): Rename to ...Jan Hubicka4-21/+26
* tree-ssa-ccp.c (prop_value_d): Rename to ... (ccp_prop_value_t): ... this one to avoid ODR violation; update uses. * ipa-prop.c (struct type_change_info): Rename to ... (prop_type_change_info): ... this; update uses. * ggc-page.c (globals): Rename to ... (static struct ggc_globals): ... this; update uses. * tree-ssa-loop-im.c (mem_ref): Rename to ... (im_mem_ref): ... this; update uses. * ggc-common.c (loc_descriptor): Rename to ... (ggc_loc_descriptor): ... this; update uses. * lra-eliminations.c (elim_table): Rename to ... (lra_elim_table): ... this; update uses. * bitmap.c (output_info): Rename to ... (bitmap_output_info): ... this; update uses. * gcse.c (expr): Rename to ... (gcse_expr) ... this; update uses. (occr): Rename to ... (gcse_occr): .. this; update uses. * tree-ssa-copy.c (prop_value_d): Rename to ... (prop_value_t): ... this. * predict.c (block_info_def): Rename to ... (block_info): ... this; update uses. (edge_info_def): Rename to ... (edge_info): ... this; update uses. * profile.c (bb_info): Rename to ... (bb_profile_info): ... this; update uses. * alloc-pool.c (output_info): Rename to ... (pool_output_info): ... this; update uses. * ipa-cp.c (topo_info): Rename to .. (ipa_topo_info): ... this; update uses. * tree-nrv.c (nrv_data): Rename to ... (nrv_data_t): ... this; update uses. * ipa-split.c (bb_info): Rename to ... (split_bb_info): ... this one. * profile.h (edge_info): Rename to ... (edge_profile_info): ... this one; update uses. * dse.c (bb_info): Rename to ... (dse_bb_info): ... this one; update uses. * cprop.c (occr): Rename to ... (cprop_occr): ... this one; update uses. (expr): Rename to ... (cprop_expr): ... this one; update uses. From-SVN: r215481
2014-09-22tree-ssa-ccp.c (prop_value_d): Rename to ...Jan Hubicka17-266/+308
* tree-ssa-ccp.c (prop_value_d): Rename to ... (ccp_prop_value_t): ... this one to avoid ODR violation; update uses. * ipa-prop.c (struct type_change_info): Rename to ... (prop_type_change_info): ... this; update uses. * ggc-page.c (globals): Rename to ... (static struct ggc_globals): ... this; update uses. * tree-ssa-loop-im.c (mem_ref): Rename to ... (im_mem_ref): ... this; update uses. * ggc-common.c (loc_descriptor): Rename to ... (ggc_loc_descriptor): ... this; update uses. * lra-eliminations.c (elim_table): Rename to ... (lra_elim_table): ... this; update uses. * bitmap.c (output_info): Rename to ... (bitmap_output_info): ... this; update uses. * gcse.c (expr): Rename to ... (gcse_expr) ... this; update uses. (occr): Rename to ... (gcse_occr): .. this; update uses. * tree-ssa-copy.c (prop_value_d): Rename to ... (prop_value_t): ... this. * predict.c (block_info_def): Rename to ... (block_info): ... this; update uses. (edge_info_def): Rename to ... (edge_info): ... this; update uses. * profile.c (bb_info): Rename to ... (bb_profile_info): ... this; update uses. * alloc-pool.c (output_info): Rename to ... (pool_output_info): ... this; update uses. * ipa-cp.c (topo_info): Rename to .. (ipa_topo_info): ... this; update uses. * tree-nrv.c (nrv_data): Rename to ... (nrv_data_t): ... this; update uses. * ipa-split.c (bb_info): Rename to ... (split_bb_info): ... this one. * profile.h (edge_info): Rename to ... (edge_profile_info): ... this one; update uses. * dse.c (bb_info): Rename to ... (dse_bb_info): ... this one; update uses. * cprop.c (occr): Rename to ... (cprop_occr): ... this one; update uses. (expr): Rename to ... (cprop_expr): ... this one; update uses. From-SVN: r215480
2014-09-22semantics.c (finish_non_static_data_member): In diagnostic, give error at ↵Jason Merrill14-35/+32
point of use and note at point of declaration. * semantics.c (finish_non_static_data_member): In diagnostic, give error at point of use and note at point of declaration. From-SVN: r215479
2014-09-22re PR c++/63320 (bogus ‘this’ was not captured for this lambda function ↵Jason Merrill4-5/+26
error) PR c++/63320 PR c++/60463 PR c++/60755 * lambda.c (maybe_resolve_dummy, lambda_expr_this_capture): Handle not finding 'this'. From-SVN: r215478
2014-09-22re PR c++/62219 ([c++11] Spurious error for lambda in a friend function of a ↵Paolo Carlini4-3/+26
class template with a default template parameters) /cp 2014-09-22 Paolo Carlini <paolo.carlini@oracle.com> PR c++/62219 * pt.c (check_default_tmpl_args): Check LAMBDA_FUNCTION_P. /testsuite 2014-09-22 Paolo Carlini <paolo.carlini@oracle.com> PR c++/62219 * g++.dg/cpp0x/lambda/lambda-template14.C: New. From-SVN: r215477
2014-09-22[Testsuite] Add tests of reductions using whole-vector-shifts (ior)Alan Lawrence3-0/+71
* gcc.dg/vect/vect-reduc-or_1.c: New test. * gcc.dg/vect/vect-reduc-or_2.c: New test. From-SVN: r215475
2014-09-22Makefile.in (check-parallel-%): Add @.Jason Merrill2-4/+8
gcc/ * Makefile.in (check-parallel-%): Add @. libstdc++-v3/ * testsuite/Makefile.am (%/site.exp): Add @. (check-DEJAGNU): Likewise. * testsuite/Makefile.in: Regenerate. From-SVN: r215474
2014-09-22[Testsuite] Add tests of reductions using whole-vector-shifts (multiplication)Alan Lawrence4-0/+92
* lib/target-supports.exp (check_effective_target_whole_vector_shift): New. * gcc.dg/vect/vect-reduc-mul_1.c: New test. * gcc.dg/vect/vect-reduc-mul_2.c: New test. From-SVN: r215473
2014-09-22decl.c (poplevel): Don't warn about unused vars in template scope.Jason Merrill5-0/+33
* decl.c (poplevel): Don't warn about unused vars in template scope. * error.c (dump_decl): Handle variable templates. From-SVN: r215472
2014-09-22[AArch64] Auto-generate the "BUILTIN_" macros for aarch64-builtins.cJames Greenhalgh5-120/+64
gcc/ * config/aarch64/geniterators.sh: New. * config/aarch64/iterators.md (VDQF_DF): New. * config/aarch64/t-aarch64: Generate aarch64-builtin-iterators.h. * config/aarch64/aarch64-builtins.c (BUILTIN_*) Remove. From-SVN: r215471
2014-09-22msp430.h (LIB_SPEC): Remove automatic addition of -lnosys when -msim absent.Peter A. Bigot2-1/+5
* config/msp430/msp430.h (LIB_SPEC): Remove automatic addition of -lnosys when -msim absent. From-SVN: r215469
2014-09-22Workaround following [PATCH] Pul all constants last in tree_swap_operands_pAlan Lawrence2-2/+6
https://gcc.gnu.org/ml/gcc-patches/2014-09/msg01509.html gcc/: * fold-const.c (tree_swap_operands_p): Strip only sign-preserving NOPs. From-SVN: r215465
2014-09-22gimplify.c (gimplify_init_constructor): Do not leave non-GIMPLE vector ↵Richard Biener3-6/+19
constructors around. 2014-09-22 Richard Biener <rguenther@suse.de> * gimplify.c (gimplify_init_constructor): Do not leave non-GIMPLE vector constructors around. * tree-cfg.c (verify_gimple_assign_single): Verify that CONSTRUCTORs have gimple elements. From-SVN: r215461
2014-09-22re PR debug/63328 (c-c++-common/gomp/pr60823-3.c test fails with ↵Jakub Jelinek4-3/+33
-fcompare-debug) PR debug/63328 * omp-low.c (ipa_simd_modify_stmt_ops): For debug stmts insert a debug source bind stmt setting DEBUG_EXPR_DECL instead of a normal gimple assignment stmt. * c-c++-common/gomp/pr63328.c: New test. From-SVN: r215454
2014-09-22[Patch bfin] Fixup use of constraints in define_splitJames Greenhalgh2-3/+7
gcc/ * config/bfin/bfin.md: Fix use of constraints in define_split. From-SVN: r215453
2014-09-22resolve.c (resolve_fl_procedure): Remove duplicated lines.Dominique d'Humieres2-24/+4
2014-09-21 Dominique d'Humieres <dominiq@lps.ens.fr> * resolve.c (resolve_fl_procedure): Remove duplicated lines. From-SVN: r215452
2014-09-22PR lto/63270 - new testMartin Liska3-0/+131
* g++.dg/lto/pr63270_0.C: New test. * g++.dg/lto/pr63270_1.C: New test. From-SVN: r215451
2014-09-22i386.c (ix86_cannot_change_mode_class): Remove GET_MODE_SIZE (to) < ↵Richard Sandiford2-7/+5
GET_MODE_SIZE (from) test. gcc/ * config/i386/i386.c (ix86_cannot_change_mode_class): Remove GET_MODE_SIZE (to) < GET_MODE_SIZE (from) test. From-SVN: r215450
2014-09-22hard-reg-set.h: Include hash-table.h.Richard Sandiford6-60/+198
gcc/ * hard-reg-set.h: Include hash-table.h. (target_hard_regs): Add a finalize method and a x_simplifiable_subregs field. * target-globals.c (target_globals::~target_globals): Call hard_regs->finalize. * rtl.h (subreg_shape): New structure. (shape_of_subreg): New function. (simplifiable_subregs): Declare. * reginfo.c (simplifiable_subreg): New structure. (simplifiable_subregs_hasher): Likewise. (simplifiable_subregs): New function. (invalid_mode_changes): Delete. (alid_mode_changes, valid_mode_changes_obstack): New variables. (record_subregs_of_mode): Remove subregs_of_mode parameter. Record valid mode changes in valid_mode_changes. (find_subregs_of_mode): Remove subregs_of_mode parameter. Update calls to record_subregs_of_mode. (init_subregs_of_mode): Remove invalid_mode_changes and bitmap handling. Initialize new variables. Update call to find_subregs_of_mode. (invalid_mode_change_p): Check new variables instead of invalid_mode_changes. (finish_subregs_of_mode): Finalize new variables instead of invalid_mode_changes. (target_hard_regs::finalize): New function. * ira-costs.c (print_allocno_costs): Call invalid_mode_change_p even when CLASS_CANNOT_CHANGE_MODE is undefined. From-SVN: r215449
2014-09-22combine.c (subst): Use simplify_subreg_regno rather than ↵Richard Sandiford2-5/+8
REG_CANNOT_CHANGE_MODE_P to detect... gcc/ * combine.c (subst): Use simplify_subreg_regno rather than REG_CANNOT_CHANGE_MODE_P to detect invalid mode changes. From-SVN: r215448
2014-09-22rtl.h (subreg_info): Expand commentaryRichard Sandiford3-3/+24
gcc/ * rtl.h (subreg_info): Expand commentary * rtlanal.c (subreg_get_info): Likewise. From-SVN: r215447
2014-09-22gcc/Richard Sandiford2-24/+54
* hard-reg-set.h (COPY_HARD_REG_SET, COMPL_HARD_REG_SET) (AND_HARD_REG_SET, AND_COMPL_HARD_REG_SET, IOR_HARD_REG_SET) (IOR_COMPL_HARD_REG_SET): Allow the "from" set to be constant. From-SVN: r215446
2014-09-22decl.c (gnat_to_gnu_entity): Adjust comment.Eric Botcazou3-15/+19
* gcc-interface/decl.c (gnat_to_gnu_entity): Adjust comment. * gcc-interface/utils.c (gnat_write_global_declarations): Fix typo. From-SVN: r215445
2014-09-22arm.c: #include "tm-constrs.h"Zhenqiang Chen2-10/+16
2014-09-22 Zhenqiang Chen <zhenqiang.chen@arm.com> * config/arm/arm.c: #include "tm-constrs.h" (thumb1_size_rtx_costs): Adjust rtx costs. From-SVN: r215444
2014-09-22Daily bump.GCC Administrator1-1/+1
From-SVN: r215442
2014-09-21configure.ac (target_header_dir): Move block defining this to before the ↵Hans-Peter Nilsson3-36/+74
block setting inhibit_libc. * configure.ac (target_header_dir): Move block defining this to before the block setting inhibit_libc. (inhibit_libc): When considering $with_headers, just check it it's explicitly "no". If not, also check if $target_header_dir/stdio.h is present. If not, set inhibit_libc=true. * configure: Regenerate. From-SVN: r215439
2014-09-21* config/rs6000/t-spe (MULTILIB_EXCEPTIONS): Allow isel without SPE.Patrick Oppenlander2-2/+5
From-SVN: r215438
2014-09-21rs6000.md (div<mode>3): Fix comment.Segher Boessenkool2-76/+79
2014-09-21 Segher Boessenkool <segher@kernel.crashing.org> * config/rs6000/rs6000.md (div<mode>3): Fix comment. Use a different insn for divides by integer powers of two. (div<mode>3_sra, *div<mode>3_sra_dot, *div<mode>3_sra_dot2): New. (mod<mode>3): Fix formatting. (three anonymous define_insn and two define_split): Delete. From-SVN: r215437
2014-09-212014-09-21 Segher Boessenkool <segher@kernel.crashing.org>Segher Boessenkool2-18/+33
* config/rs6000/rs6000.md (ashr<mode>3, *ashr<mode>3, *ashrsi3_64, *ashr<mode>3_dot, *ashr<mode>3_dot2): Clobber CA_REGNO. (floatdisf2_internal2): Ditto. (ashrdi3_no_power): Ditto. Fix formatting. From-SVN: r215436
2014-09-21rs6000.md (ctz<mode>2, [...]): Tidy.Segher Boessenkool2-35/+41
2014-09-21 Segher Boessenkool <segher@kernel.crashing.org> * config/rs6000/rs6000.md (ctz<mode>2, ffs<mode>2, popcount<mode>2, popcntb<mode>2, popcntd<mode>2, parity<mode>2, parity<mode>2_cmpb): Tidy. From-SVN: r215435
2014-09-21rs6000.md (strlensi): Don't use subsi3 with a constant, use addsi3 directly.Segher Boessenkool2-75/+108
2014-09-21 Segher Boessenkool <segher@kernel.crashing.org> * config/rs6000/rs6000.md (strlensi): Don't use subsi3 with a constant, use addsi3 directly. (three anonymous define_insn, two define_split): Delete. (sub<mode>3): Move. Do not allow constant second operand. Generate different insn for constant first operand. (*subf<mode>3, *subf<mode>3_dot, *subf<mode>3_dot2): New. (subf<mode>3_imm): New. (ctz<mode>2, ffs<mode>2): Clobber CA_REGNO where required. (*plus_ltu<mode>): Only handle registers. (*plus_ltu<mode>_1): New. Handle integer third operand. (*plus_gtu<mode>): Only handle registers. (*plus_gtu<mode>_1): New. Handle integer third operand. From-SVN: r215434
2014-09-21rs6000.md (iorxor): New code_iterator.Segher Boessenkool2-117/+54
2014-09-21 Segher Boessenkool <segher@kernel.crashing.org> * config/rs6000/rs6000.md (iorxor): New code_iterator. (iorxor): New code_attr. (IORXOR): New code_attr. (*and<mode>3, *and<mode>3_dot, *and<mode>3_dot2): Delete. (ior<mode>3, xor<mode>3): Delete. (<iorxor><mode>3): New. (splitter for "big" integer ior, xor): New. (*bool<mode>3): Move. Also handle AND. (*bool<mode>3_dot, *bool<mode>3_dot2): Also handle AND. (splitter for "big" integer ior, xor): Delete. From-SVN: r215433
2014-09-21rs6000.md (*neg<mode>2_internal): Delete.Segher Boessenkool2-38/+33
2014-09-21 Segher Boessenkool <segher@kernel.crashing.org> * config/rs6000/rs6000.md (*neg<mode>2_internal): Delete. (two anonymous define_insn and two define_split): Delete. (*neg<mode>2, *neg<mode>2_dot, *neg<mode>2_dot2): New. From-SVN: r215432
2014-09-21rs6000.md (*one_cmpl<mode>2): Generate "not" insn.Segher Boessenkool2-40/+34
2014-09-21 Segher Boessenkool <segher@kernel.crashing.org> * config/rs6000/rs6000.md (*one_cmpl<mode>2): Generate "not" insn. (two anonymous define_insn and two define_split): Delete. (*one_cmpl<mode>2_dot, *one_cmpl<mode>2_dot2): New. From-SVN: r215431
2014-09-21rs6000.c (rs6000_rtx_costs): New.Segher Boessenkool2-0/+5
2014-09-21 Segher Boessenkool <segher@kernel.crashing.org> * config/rs6000/rs6000.c (rs6000_rtx_costs) <NE>: New. From-SVN: r215430
2014-09-21predicates.md (ca_operand): Allow subregs.Segher Boessenkool3-4/+24
2014-09-21 Segher Boessenkool <segher@kernel.crashing.org> * config/rs6000/predicates.md (ca_operand): Allow subregs. (input_operand): Do not allow ca_operand. * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): For the carry bit, allow SImode and Pmode. (rs6000_init_hard_regno_mode_ok): Make the carry bit class NO_REGS. From-SVN: r215429
2014-09-21i386.c (ix86_expand_call): Generate MS->SYSV extra clobbered registers using ↵Uros Bizjak8-62/+22
clobber_reg. * config/i386/i386.c (ix86_expand_call): Generate MS->SYSV extra clobbered registers using clobber_reg. Remove UNSPEC decoration. * config/i386/i386.md (unspec) <UNSPEC_MS_TO_SYSV_CALL>: Remove. (*call_rex64_ms_sysv): Remove. (*call_value_rex64_ms_sysv): Ditto. * config/i386/predicates.md (call_rex64_ms_sysv_operation): Remove. testsuite/ChangeLog: * gcc.target/i386/avx-vzeroupper-16.c (dg-final): Remove check for call_value_rex64_ms_sysv. * gcc.target/i386/avx-vzeroupper-17.c (dg-final): Ditto. * gcc.target/i386/avx-vzeroupper-18.c (dg-final): Remove check for call_rex64_ms_sysv. From-SVN: r215428
2014-09-20re PR c++/62017 (AddressSanitizer reports *-buffer-overflow in destructor ↵Jason Merrill2-3/+11
when multiple virtual inheritance is used) PR c++/62017 * decl.c (begin_destructor_body): Only clobber the as-base part of *this. From-SVN: r215427
2014-09-21Daily bump.GCC Administrator1-1/+1
From-SVN: r215426
2014-09-20epiphany.md (sub_f_add_imm): Change constraint of operand 3 to "CnL".Joern Rennecke2-1/+6
* config/epiphany/epiphany.md (sub_f_add_imm): Change constraint of operand 3 to "CnL". From-SVN: r215422
2014-09-20trans-intrinsic.c (conv_intrinsic_atomic_op): Fix issue with generating ↵Alessandro Fanfarillo4-1/+38
temporary for value argument. 2014-09-20 Alessandro Fanfarillo <fanfarillo.gcc@gmail.com> Tobias Burnus <burnus@net-b.de> gcc/fortran * trans-intrinsic.c (conv_intrinsic_atomic_op): Fix issue with generating temporary for value argument. gcc/testsuite/ * gfortran.dg/coarray_atomic_5.f90: New Co-Authored-By: Tobias Burnus <burnus@net-b.de> From-SVN: r215421
2014-09-20trans-expr.c (gfc_reset_vptr): Fix comment whitespace.Joost VandeVondele28-75/+134
2014-09-20 Joost VandeVondele <vondele@gcc.gnu.org> * trans-expr.c (gfc_reset_vptr): Fix comment whitespace. (gfc_conv_class_to_class): Likewise. (gfc_conv_procedure_call): Likewise. (arrayfunc_assign_needs_temporary): Likewise. (realloc_lhs_loop_for_fcn_call): Likewise. (gfc_trans_assignment_1): Likewise. * trans-array.c (gfc_conv_array_ref): Likewise. (gfc_array_allocate): Likewise. (gfc_alloc_allocatable_for_assignment): Likewise. * symbol.c (generate_isocbinding_symbol): Likewise. * class.c (finalization_scalarizer): Likewise. (finalizer_insert_packed_call): Likewise. (generate_finalization_wrapper): Likewise. (find_intrinsic_vtab): Likewise. * decl.c (gfc_match_import): Likewise. (match_procedure_decl): Likewise. (gfc_match_subroutine): Likewise. (gfc_match_bind_c): Likewise. (gfc_match_volatile): Likewise. * trans-common.c (create_common): Likewise. * error.c (gfc_diagnostic_starter): Likewise. * trans-stmt.c (gfc_trans_sync): Likewise. (gfc_trans_critical): Likewise. (gfc_trans_simple_do): Likewise. (gfc_trans_do): Likewise. (gfc_trans_where_assign): Likewise. * expr.c (gfc_is_simply_contiguous): Likewise. * module.c (unquote_string): Likewise. * trans.c (gfc_add_finalizer_call): Likewise. * trans-types.c (gfc_init_kinds): Likewise. * scanner.c (preprocessor_line): Likewise. * gfortranspec.c (lang_specific_driver): Likewise. * frontend-passes.c (create_var): Likewise. (cfe_expr_0): Likewise. * resolve.c (check_host_association): Likewise. (gfc_resolve_code): Likewise. (resolve_fl_derived0): Likewise. (resolve_symbol): Likewise. * f95-lang.c (poplevel): Likewise. * trans-decl.c (create_main_function): Likewise. * trans-io.c (transfer_expr): Likewise. * arith.c (gfc_arith_divide): Likewise. * parse.c (resolve_all_program_units): Likewise. * check.c (gfc_check_rank): Likewise. (gfc_check_sizeof): Likewise. (is_c_interoperable): Likewise. * dependency.c (gfc_dep_difference): Likewise. * primary.c (gfc_match_rvalue): Likewise. * trans-intrinsic.c (conv_intrinsic_system_clock): Likewise. (conv_isocbinding_subroutine): Likewise. * options.c (gfc_post_options): Likewise. (gfc_handle_fpe_option): Likewise. (gfc_get_option_string): Likewise. * simplify.c (simplify_transformation_to_scalar): Likewise. (gfc_simplify_spread): Likewise. From-SVN: r215420
2014-09-20ia64.md: Remove constraints from define_split patterns.Andreas Schwab2-6/+11
* config/ia64/ia64.md: Remove constraints from define_split patterns. From-SVN: r215419
2014-09-20ipa-utils.h (ipa_polymorphic_call_context): Turn into class; add ctors.Jan Hubicka8-190/+222
* ipa-utils.h (ipa_polymorphic_call_context): Turn into class; add ctors. (possible_polymorphic_call_targets, dump_possible_polymorphic_call_targets, possible_polymorphic_call_target_p, possible_polymorphic_call_target_p): Simplify. (get_dynamic_type): Remove. * ipa-devirt.c (ipa_dummy_polymorphic_call_context): Remove. (clear_speculation): Bring to ipa-deivrt.h (get_class_context): Rename to ... (ipa_polymorphic_call_context::restrict_to_inner_class): ... this one. (contains_type_p): Update. (get_dynamic_type): Rename to ... ipa_polymorphic_call_context::get_dynamic_type(): ... this one. (possible_polymorphic_call_targets): UPdate. * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Update. * ipa-prop.c (ipa_analyze_call_uses): Update. From-SVN: r215418
2014-09-20ipa-visibility.c (varpool_node::externally_visible_p): Do not privatize ↵Jan Hubicka2-0/+12
dynamic TLS variables. * ipa-visibility.c (varpool_node::externally_visible_p): Do not privatize dynamic TLS variables. From-SVN: r215417