- 19 Oct, 2016 17 commits
-
-
arm.c (arm_emit_coreregs_64bit_shift): Clear the result register only if "in" and "out" are different registers. 2016-10-19 Bernd Edlinger <bernd.edlinger@hotmail.de> * config/arm/arm.c (arm_emit_coreregs_64bit_shift): Clear the result register only if "in" and "out" are different registers. From-SVN: r241348
Bernd Edlinger committed -
The C definition is 1U << 31. Reportedly on some systems GCC's -fgo-dump-spec can print this as -2147483648. Reviewed-on: https://go-review.googlesource.com/31448 From-SVN: r241347
Ian Lance Taylor committed -
* gcc.dg/Wvla-1.c: Rename to... * gcc.dg/Wvla-larger-than-1.c: ...this. * gcc.dg/Wvla-2.c: Rename to... * gcc.dg/Wvla-larger-than-2.c: ...this. * gcc.dg/Wvla-3.c: Rename to... * gcc.dg/Walloca-11.c.: ...this. * gcc.dg/wvla-[1-7].c: Rename to: * gcc.dg/Wvla-[1-7].c: ...this. From-SVN: r241344
Aldy Hernandez committed -
* omp-low.c (pass_oacc_device_lower::gate): New method. (execute): Always call execute_oacc_device_lower. From-SVN: r241343
Eric Botcazou committed -
re PR tree-optimization/77916 (ICE in verify_gimple_in_cfg: invalid (pointer) operands to plus/minus) 2016-10-19 Bill Schmidt <wschmidt@linux.vnet.ibm.com> PR tree-optimization/77916 PR tree-optimization/77937 * gimple-ssa-strength-reduction.c (analyze_increments): Remove stopgap fix. (insert_initializers): Requirement of initializer for -1 should be based on pointer-typedness of the candidate basis. From-SVN: r241342
Bill Schmidt committed -
* testsuite/experimental/memory/shared_ptr/cons/unique_ptr_ctor.cc: Add tests for valid and invalid conversions. * testsuite/experimental/memory/shared_ptr/cons/weak_ptr_ctor.cc: Likewise. From-SVN: r241340
Jonathan Wakely committed -
PR tree-optimization/78005 * tree-vect-loop-manip.c (vect_gen_prolog_loop_niters): Compute upper (included) bound for niters of prolog loop. (vect_gen_scalar_loop_niters): Change parameter VF to VFM1. Compute niters of scalar loop above which vectorized loop is preferred, as well as the upper (included) bound for the niters. (vect_do_peeling): Record niter bound for loops accordingly. gcc/testsuite PR tree-optimization/78005 * gcc.dg/vect/pr78005.c: New. * gcc.target/i386/l_fma_float_1.c: Revise test. * gcc.target/i386/l_fma_float_2.c: Ditto. * gcc.target/i386/l_fma_float_3.c: Ditto. * gcc.target/i386/l_fma_float_4.c: Ditto. * gcc.target/i386/l_fma_float_5.c: Ditto. * gcc.target/i386/l_fma_float_6.c: Ditto. * gcc.target/i386/l_fma_double_1.c: Ditto. * gcc.target/i386/l_fma_double_2.c: Ditto. * gcc.target/i386/l_fma_double_3.c: Ditto. * gcc.target/i386/l_fma_double_4.c: Ditto. * gcc.target/i386/l_fma_double_5.c: Ditto. * gcc.target/i386/l_fma_double_6.c: Ditto. From-SVN: r241339
Bin Cheng committed -
gcc/ PR lto/77458 * tree-core.h (enum tree_index): Put the complex types after their component types. * tree-streamer.c (verify_common_node_recorded): New function. (preload_common_nodes) <TREE_CODE (node) == COMPLEX_TYPE>: Use it. From-SVN: r241338
Thomas Schwinge committed -
* cgraph.h (cgraph_edge::binds_to_current_def_p): Replace NULL with false as a return value. From-SVN: r241336
Martin Liska committed -
[PR tree-optimization/78024] Clear basic block flags before using BB_VISITED for OpenACC loops processing gcc/ * omp-low.c (oacc_loop_discovery): Call clear_bb_flags before, and don't clear BB_VISITED after processing. gcc/testsuite/ * gcc.dg/goacc/loop-processing-1.c: New file. From-SVN: r241334
Thomas Schwinge committed -
* testsuite/20_util/unique_ptr/cons/cv_qual.cc: Move negative tests to new file. * testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc: New file. Fix test for incompatible deleters to not also use incompatible types. Add tests for incompatible array types. From-SVN: r241332
Jonathan Wakely committed -
* include/experimental/bits/shared_ptr.h (__shared_ptr<__libfund_v1<_Tp, false>, _Lp>::_Compatible): Just use is_convertible for non-array specialization. (__shared_ptr<__libfund_v1<_Tp, false>, _Lp>::_UniqCompatible): New constraint for conversions from unique_ptr. (__shared_ptr<__libfund_v1<_Tp, false>, _Lp>::__shared_ptr): Constrain. (__shared_ptr<__libfund_v1<_Tp, false>, _Lp>::reset): Likewise. (__sp_compatible_v): New variable template for trait. (__sp_is_constructible): New trait to check shared_ptr constraints. (__sp_is_constructible_v): New variable template for trait. (__shared_ptr<__libfund_v1<_Tp, true>, _Lp>::_SafeConv): New constraint for construction/reset, using __sp_is_constructible_v. (__shared_ptr<__libfund_v1<_Tp, true>, _Lp>::_UniqCompatible): New constraint for conversions from unique_ptr. (__shared_ptr<__libfund_v1<_Tp, true>, _Lp>::__shared_ptr): Constrain. (__shared_ptr<__libfund_v1<_Tp, true>, _Lp>::reset): Likewise. (shared_ptr::_SafeConv): Constraint for checking constructors. (shared_ptr(Tp1*), shared_ptr(_Tp1, _Deleter)) (shared_ptr(_Tp1, _Deleter, _Alloc)): Constrain with _SafeConv. (shared_ptr(const weak_ptr<_Tp1>&)): Constrain with _Compatible. (shared_ptr(auto_ptr<_Tp1>&&)): Fix, remove TODO. * testsuite/experimental/memory/shared_ptr/cons/pointer_ctor.cc: Remove tests using invalid conversions. * testsuite/experimental/memory/shared_ptr/cons/pointer_ctor_neg.cc: New test. * testsuite/experimental/memory/shared_ptr/cons/torture.cc: New test. * testsuite/experimental/memory/shared_ptr/modifiers/reset.cc: Remove tests using invalid conversions. * testsuite/experimental/memory/shared_ptr/modifiers/reset_neg.cc: New test. * testsuite/experimental/memory/shared_ptr/observers/use_count.cc: Remove tests using invalid conversions. From-SVN: r241331
Jonathan Wakely committed -
PR libstdc++/77990 * include/bits/unique_ptr.h (__uniq_ptr_impl): New type to encapsulate implementation details. (unique_ptr::unique_ptr(_Up)): Don't copy deleter object. (unique_ptr::get, unique_ptr::get_deleter, unique_ptr::release): Call member functions of implementation object. (unique_ptr<T[], D>): Likewise. * python/libstdcxx/v6/printers.py (UniquePointerPrinter): Adjust for new implementation. * python/libstdcxx/v6/xmethods.py (UniquePtrGetWorker): Likewise. * testsuite/20_util/unique_ptr/assign/48635_neg.cc: Adjust dg-error lines. * testsuite/20_util/unique_ptr/assign/cv_qual.cc: Likewise. * testsuite/20_util/unique_ptr/cons/cv_qual.cc: Likewise. * testsuite/20_util/unique_ptr/cons/77990.cc: New test. From-SVN: r241330
Jonathan Wakely committed -
2016-10-19 Richard Biener <rguenther@suse.de> * domwalk.c (dom_walker::walk): Use RPO order. From-SVN: r241329
Richard Biener committed -
* system-linux-armel.ads: Rename into... * system-linux-arm.ads: ...this * gcc-interface/Makefile.in (ARM/Android): Adjust to above renaming. (ARM/Linux): Likewise. (Aarch64/Linux): Likewise. From-SVN: r241328
Eric Botcazou committed -
2016-10-19 Richard Biener <rguenther@suse.de> * tree-vrp.c (evrp_dom_walker::evrp_dom_walker): Initialize stmts_to_remove. (evrp_dom_walker::~evrp_dom_walker): Free it. (evrp_dom_walker::stmts_to_remove): Add. (evrp_dom_walker::before_dom_children): Mark PHIs and stmts whose output we fully propagate for removal. Propagate into BB destination PHI arguments. (execute_early_vrp): Remove queued stmts. Dump value ranges before stmt removal. * gcc.dg/tree-ssa/pr61839_2.c: Fix testcase. From-SVN: r241327
Richard Biener committed -
From-SVN: r241326
GCC Administrator committed
-
- 18 Oct, 2016 23 commits
-
-
From-SVN: r241322
David Edelsohn committed -
* Makefile.in (OBJS): Add gimple-ssa-warn-alloca.o. * passes.def: Add two instances of pass_walloca. * tree-pass.h (make_pass_walloca): New. * gimple-ssa-warn-walloca.c: New file. * doc/invoke.texi: Document -Walloca, -Walloca-larger-than=, and -Wvla-larger-than= options. From-SVN: r241318
Aldy Hernandez committed -
* gcc-interface/Makefile.in (EXTRA_GNATRTL_NONTASKING_OBJS): Define. (EXTRA_GNATRTL_TASKING_OBJS): Likewise. (ARM/Android): Add atomic support. (SPARC/Solaris): Simplify. (x86/Solaris): Likewise. (x86/Linux): Likewise. (x86-64/kFreeBDS): Adjust and use system-freebsd-x86.ads (x86/FreeBSD): Add s-mudido-affinity.adb. (x86-64/FreeBSD): Likewise and use system-freebsd-x86.ads. (s390/Linux): Simplify. (PowerPC/AIX): Likewise. (Cygwin/Mingw): Likewise. (MIPSel/Linux): Likewise. (ARM/Linux): Add atomic support. (Aarch64/Linux): Use system-linux-armel.ads. (SPARC/Linux): Simplify. (IA-64/Linux): Minor tweak. (IA-64/HP-UX): Likewise. (Alpha/Linux): Likewise. (x86-64/Linux): Use system-linux-x86.ads. (x86/Darwin): Simplify. (PowerPC/Darwin): Likewise. (ARM/Darwin): Use system-darwin-arm.ads. (ADA_EXCLUDE_SRCS): Minor reformatting. * system-aix.ads (Word_Size): Change to Standard'Word_Size. (Memory_Size): Change to 2 ** Word_Size. (Support_Atomic_Primitives): Set to True. * system-aix64.ads: Delete. * system-darwin-arm.ads: New. * system-darwin-ppc.ads (Word_Size): Change to Standard'Word_Size. (Memory_Size): Change to 2 ** Word_Size. (Support_Atomic_Primitives): Set to True. * system-darwin-ppc64.ads: New. * system-darwin-x86.ads (Word_Size): Change to Standard'Word_Size. (Memory_Size): Change to 2 ** Word_Size. * system-darwin-x86_64.ads: Delete. * system-freebsd-x86.ads (Word_Size): Change to Standard'Word_Size. (Memory_Size): Change to 2 ** Word_Size. * system-freebsd-x86_64.ads: Delete. * system-linux-alpha.ads (Support_Atomic_Primitives): Set to True. * system-linux-armeb.ads (Word_Size): Change to Standard'Word_Size. (Memory_Size): Change to 2 ** Word_Size. (Support_Atomic_Primitives): Set to True. * system-linux-armel.ads (Word_Size): Change to Standard'Word_Size. (Memory_Size): Change to 2 ** Word_Size. (Support_Atomic_Primitives): Set to True. * system-linux-mips.ads: (Word_Size): Change to Standard'Word_Size. (Memory_Size): Change to 2 ** Word_Size. * system-linux-mipsel.ads (Word_Size): Change to Standard'Word_Size. (Memory_Size): Change to 2 ** Word_Size. * system-linux-s390.ads (Word_Size): Change to Standard'Word_Size. (Memory_Size): Change to 2 ** Word_Size. (Stack_Check_Probes): Set to True. * system-linux-s390x.ads: Delete. * system-linux-sparc.ads (Word_Size): Change to Standard'Word_Size. (Memory_Size): Change to 2 ** Word_Size. * system-linux-sparcv9.ads: Delete. * system-linux-x86.ads (Word_Size): Change to Standard'Word_Size. (Memory_Size): Change to 2 ** Word_Size. * system-linux-x86_64.ads: Delete. * system-mingw-x86_64.ads: Delete. * system-mingw.ads (Word_Size): Change to Standard'Word_Size. (Memory_Size): Change to 2 ** Word_Size. * system-solaris-sparc.ads (Word_Size): Change to Standard'Word_Size. (Memory_Size): Change to 2 ** Word_Size. (Support_Atomic_Primitives): Set to True. * system-solaris-sparcv9.ads: Delete. * system-solaris-x86.ads (Word_Size): Change to Standard'Word_Size. (Memory_Size): Change to 2 ** Word_Size. * system-solaris-x86_64.ads: Delete. From-SVN: r241316
Eric Botcazou committed -
gcc/ * cfg.c (clear_bb_flags): Use FOR_ALL_BB_FN. * config/nvptx/nvptx.c (nvptx_find_sese): Likewise. From-SVN: r241315
Thomas Schwinge committed -
gcc/testsuite/ChangeLog: 2016-10-18 Kelvin Nilsen <kelvin@gcc.gnu.org> * gcc.target/powerpc/vsu/vec-all-ne-0.c: New test. * gcc.target/powerpc/vsu/vec-all-ne-1.c: New test. * gcc.target/powerpc/vsu/vec-all-ne-10.c: New test. * gcc.target/powerpc/vsu/vec-all-ne-11.c: New test. * gcc.target/powerpc/vsu/vec-all-ne-12.c: New test. * gcc.target/powerpc/vsu/vec-all-ne-13.c: New test. * gcc.target/powerpc/vsu/vec-all-ne-14.c: New test. * gcc.target/powerpc/vsu/vec-all-ne-2.c: New test. * gcc.target/powerpc/vsu/vec-all-ne-3.c: New test. * gcc.target/powerpc/vsu/vec-all-ne-4.c: New test. * gcc.target/powerpc/vsu/vec-all-ne-5.c: New test. * gcc.target/powerpc/vsu/vec-all-ne-6.c: New test. * gcc.target/powerpc/vsu/vec-all-ne-7.c: New test. * gcc.target/powerpc/vsu/vec-all-ne-8.c: New test. * gcc.target/powerpc/vsu/vec-all-ne-9.c: New test. * gcc.target/powerpc/vsu/vec-all-nez-1.c: New test. * gcc.target/powerpc/vsu/vec-all-nez-2.c: New test. * gcc.target/powerpc/vsu/vec-all-nez-3.c: New test. * gcc.target/powerpc/vsu/vec-all-nez-4.c: New test. * gcc.target/powerpc/vsu/vec-all-nez-5.c: New test. * gcc.target/powerpc/vsu/vec-all-nez-6.c: New test. * gcc.target/powerpc/vsu/vec-all-nez-7.c: New test. * gcc.target/powerpc/vsu/vec-any-eq-0.c: New test. * gcc.target/powerpc/vsu/vec-any-eq-1.c: New test. * gcc.target/powerpc/vsu/vec-any-eq-10.c: New test. * gcc.target/powerpc/vsu/vec-any-eq-11.c: New test. * gcc.target/powerpc/vsu/vec-any-eq-12.c: New test. * gcc.target/powerpc/vsu/vec-any-eq-13.c: New test. * gcc.target/powerpc/vsu/vec-any-eq-14.c: New test. * gcc.target/powerpc/vsu/vec-any-eq-2.c: New test. * gcc.target/powerpc/vsu/vec-any-eq-3.c: New test. * gcc.target/powerpc/vsu/vec-any-eq-4.c: New test. * gcc.target/powerpc/vsu/vec-any-eq-5.c: New test. * gcc.target/powerpc/vsu/vec-any-eq-6.c: New test. * gcc.target/powerpc/vsu/vec-any-eq-7.c: New test. * gcc.target/powerpc/vsu/vec-any-eq-8.c: New test. * gcc.target/powerpc/vsu/vec-any-eq-9.c: New test. * gcc.target/powerpc/vsu/vec-any-eqz-1.c: New test. * gcc.target/powerpc/vsu/vec-any-eqz-2.c: New test. * gcc.target/powerpc/vsu/vec-any-eqz-3.c: New test. * gcc.target/powerpc/vsu/vec-any-eqz-4.c: New test. * gcc.target/powerpc/vsu/vec-any-eqz-5.c: New test. * gcc.target/powerpc/vsu/vec-any-eqz-6.c: New test. * gcc.target/powerpc/vsu/vec-any-eqz-7.c: New test. * gcc.target/powerpc/vsu/vec-cmpne-0.c: New test. * gcc.target/powerpc/vsu/vec-cmpne-1.c: New test. * gcc.target/powerpc/vsu/vec-cmpne-2.c: New test. * gcc.target/powerpc/vsu/vec-cmpne-3.c: New test. * gcc.target/powerpc/vsu/vec-cmpne-4.c: New test. * gcc.target/powerpc/vsu/vec-cmpne-5.c: New test. * gcc.target/powerpc/vsu/vec-cmpne-6.c: New test. * gcc.target/powerpc/vsu/vec-cmpne-8.c: New test. * gcc.target/powerpc/vsu/vec-cmpne-9.c: New test. * gcc.target/powerpc/vsu/vec-cmpnez-1.c: New test. * gcc.target/powerpc/vsu/vec-cmpnez-2.c: New test. * gcc.target/powerpc/vsu/vec-cmpnez-3.c: New test. * gcc.target/powerpc/vsu/vec-cmpnez-4.c: New test. * gcc.target/powerpc/vsu/vec-cmpnez-5.c: New test. * gcc.target/powerpc/vsu/vec-cmpnez-6.c: New test. * gcc.target/powerpc/vsu/vec-cmpnez-7.c: New test. * gcc.target/powerpc/vsu/vec-cntlz-lsbb-0.c: New test. * gcc.target/powerpc/vsu/vec-cntlz-lsbb-1.c: New test. * gcc.target/powerpc/vsu/vec-cntlz-lsbb-2.c: New test. * gcc.target/powerpc/vsu/vec-cnttz-lsbb-0.c: New test. * gcc.target/powerpc/vsu/vec-cnttz-lsbb-1.c: New test. * gcc.target/powerpc/vsu/vec-cnttz-lsbb-2.c: New test. * gcc.target/powerpc/vsu/vec-xl-len-0.c: New test. * gcc.target/powerpc/vsu/vec-xl-len-1.c: New test. * gcc.target/powerpc/vsu/vec-xl-len-10.c: New test. * gcc.target/powerpc/vsu/vec-xl-len-11.c: New test. * gcc.target/powerpc/vsu/vec-xl-len-12.c: New test. * gcc.target/powerpc/vsu/vec-xl-len-13.c: New test. * gcc.target/powerpc/vsu/vec-xl-len-2.c: New test. * gcc.target/powerpc/vsu/vec-xl-len-3.c: New test. * gcc.target/powerpc/vsu/vec-xl-len-4.c: New test. * gcc.target/powerpc/vsu/vec-xl-len-5.c: New test. * gcc.target/powerpc/vsu/vec-xl-len-6.c: New test. * gcc.target/powerpc/vsu/vec-xl-len-7.c: New test. * gcc.target/powerpc/vsu/vec-xl-len-8.c: New test. * gcc.target/powerpc/vsu/vec-xl-len-9.c: New test. * gcc.target/powerpc/vsu/vec-xlx-0.c: New test. * gcc.target/powerpc/vsu/vec-xlx-1.c: New test. * gcc.target/powerpc/vsu/vec-xlx-2.c: New test. * gcc.target/powerpc/vsu/vec-xlx-3.c: New test. * gcc.target/powerpc/vsu/vec-xlx-4.c: New test. * gcc.target/powerpc/vsu/vec-xlx-5.c: New test. * gcc.target/powerpc/vsu/vec-xlx-6.c: New test. * gcc.target/powerpc/vsu/vec-xlx-7.c: New test. * gcc.target/powerpc/vsu/vec-xrx-0.c: New test. * gcc.target/powerpc/vsu/vec-xrx-1.c: New test. * gcc.target/powerpc/vsu/vec-xrx-2.c: New test. * gcc.target/powerpc/vsu/vec-xrx-3.c: New test. * gcc.target/powerpc/vsu/vec-xrx-4.c: New test. * gcc.target/powerpc/vsu/vec-xrx-5.c: New test. * gcc.target/powerpc/vsu/vec-xrx-6.c: New test. * gcc.target/powerpc/vsu/vec-xrx-7.c: New test. * gcc.target/powerpc/vsu/vec-xst-len-0.c: New test. * gcc.target/powerpc/vsu/vec-xst-len-1.c: New test. * gcc.target/powerpc/vsu/vec-xst-len-10.c: New test. * gcc.target/powerpc/vsu/vec-xst-len-11.c: New test. * gcc.target/powerpc/vsu/vec-xst-len-12.c: New test. * gcc.target/powerpc/vsu/vec-xst-len-13.c: New test. * gcc.target/powerpc/vsu/vec-xst-len-2.c: New test. * gcc.target/powerpc/vsu/vec-xst-len-3.c: New test. * gcc.target/powerpc/vsu/vec-xst-len-4.c: New test. * gcc.target/powerpc/vsu/vec-xst-len-5.c: New test. * gcc.target/powerpc/vsu/vec-xst-len-6.c: New test. * gcc.target/powerpc/vsu/vec-xst-len-7.c: New test. * gcc.target/powerpc/vsu/vec-xst-len-8.c: New test. * gcc.target/powerpc/vsu/vec-xst-len-9.c: New test. * gcc.target/powerpc/vsu/vsu.exp: New file. gcc/ChangeLog: 2016-10-18 Kelvin Nilsen <kelvin@gcc.gnu.org> * config/rs6000/altivec.h (vec_xl_len): New macro. (vec_xst_len): New macro. (vec_cmpnez): New macro. (vec_cntlz_lsbb): New macro. (vec_cnttz_lsbb): New macro. (vec_xlx): New macro. (vec_xrx): New macro. (vec_all_nez): New C++ predicate template. (vec_any_eqz): New C++ predicate template. (vec_all_ne): Revised C++ predicate template under _ARCH_PWR9 conditional compilation. (vec_any_eq): Revised C++ predicate template under _ARCH_PWR9 conditional compilation. (vec_all_nez): New macro. (vec_any_eqz): New macro. (vec_all_ne): Revised macro under _ARCH_PWR9 conditional compilation. (vec_any_eq): Revised macro under _ARCH_PWR9 conditional compilation. * config/rs6000/vector.md (VI): Moved this mode iterator definition from altivec.md to vector.md. (UNSPEC_NEZ_P): New value. (vector_ne_<mode>_p): New expansion for implementation of vec_all_ne and vec_any_eq built-in functions. (vector_nez_<mode>_p): New expansion for implementation of vec_all_nez and vec_any_eqz built-in functions. (vector_ne_v2di_p): New expansion for implementation of vec_all_ne and vec_any_eq built-in function. (cr6_test_for_zero): New commentary to explain this expansion. (cr6_test_for_zero_reverse): New commentary to explain this expansion. (cr6_test_for_lt): New commentary to explain this expansion. (cr6_test_for_lt_reverse): New commentary to explain this expansion. * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add overloaded function prototypes for vec_all_ne, vec_all_nez, vec_any_eq, vec_any_eqz, vec_cmpnez, vec_cntlz_lsbb, vec_cnttz_lsbb, vec_xl_len, vec_xst_len, vec_xlx, and vec_xrx built-in functions. (altivec_resolve_overloaded_builtin): Modify the handling of ALTIVEC_BUILTIN_VEC_CMPNE to use the Power9 instructions when the compiler is configured to support TARGET_P9_VECTOR. * config/rs6000/rs6000-builtin.def (BU_ALTIVEC_P): Add commentary to explain the special processing that is given to predicate built-ins introduced using this macro. (BU_ALTIVEC_OVERLOAD_P): Add commentary to alert maintainers to the special processing given to predicate built-ins introduced using this macro. (BU_VSX_P): Likewise. (BU_P8V_AV_P): Likewise. (BU_P9V_AV_P): Likewise. (BU_P9V_AV_X): New macro. (BU_P9V_64BIT_AV_X): New macro. (BU_P9V_VSX_3): New macro. (BU_P9V_OVERLOAD_P): New macro. (LXVL): New BU_P9V_64BIT_VSX_2. (VEXTUBLX): New BU_P9V_AV_2. (VEXTUBRX): Likewise. (VEXTUHLX): Likewise. (VEXTUHRX): Likewise. (VEXTUWLX): Likewise. (VEXTUWRX): Likewise. (STXVL): New BU_P9V_64BIT_AV_X. (VCLZLSBB): New BU_P9V_AV_1. (VCTZLSBB): Likewise. (CMPNEB): New BU_P9V_AV_2. (CMPNEH): Likewise. (CMPNEW): Likewise. (CMPNEF): Likewise. (CMPNED): Likewise. (VCMPNEB_P): New BU_P9V_AV_P. (VCMPNEH_P): Likewise. (VCMPNEW_P): Likewise. (VCMPNED_P): Likewise. (VCMPNEFP_P): Likewise. (VCMPNEDP_P): Likewise. (CMPNEZB): New BU_P9V_AV_2. (CMPNEZH): Likewise. (CMPNEZW): Likewise. (VCMPNEZB_P): New BU_P9V_AV_P. (VCMPNEZH_P): Likewise. (VCMPNEZW_P): Likewise. (LXVL): New BU_P9V_OVERLOAD_2. (STXVL): New BU_P9V_OVERLOAD_3. (VEXTULX): New BU_P9V_OVERLOAD_2. (VEXTURX): Likewise. (CMPNEZ): Likewise. (VCMPNEZ_P): New BU_P9V_OVERLOAD_P. (VCMPNE_P): Likewise. (VCLZLSBB): New BU_P9V_OVERLOAD_1. (VCTZLSBB): Likewise. * config/rs6000/rs6000.c (altivec_expand_predicate_builtin): Add comment to explain mode used for scratch register. (altivec_expand_stxvl_builtin): New function. (altivec_expand_builtin): Add case for new constant P9V_BUILTIN_STXVL. (altivec_init_builtins): Add initialized variable void_ftype_v16qi_pvoid_long and use this type to define the built-in function __builtin_altivec_stxvl. * config/rs6000/vsx.md (UNSPEC_LXVL): New value. (UNSPEC_STXVL): New value. (UNSPEC_VCLZLSBB): New value. (UNSPEC_VCTZLSBB): New value. (UNSPEC_VEXTUBLX): New value. (UNSPEC_VEXTUHLX): New value. (UNSPEC_VEXTUWLX): New value. (UNSPEC_VEXTUBRX): New value. (UNSPEC_VEXTUHRX): New value. (UNSPEC_VEXTUWRX): New value. (UNSPEC_VCMPNEB): New value. (UNSPEC_VCMPNEZB): New value. (UNSPEC_VCMPNEH): New value. (UNSPEC_VCMPNEZH): New value. (UNSPEC_VCMPNEW): New value. (UNSPEC_VCMPNEZW): New value. (*vsx_ne_<mode>_p): New insn for vector test all not equal with vector of integer modes. (*vsx_ne_<mode>_p): New insn for vector test all not equal with vector of float or double modes. (*vector_nez_<mode>_p): New insn for vector test all not equal or zero. (lxvl): New expand for load VSX vector with length. (*lxvl): New insn for load VSX vector with length. (stxvl): New expand for store VSX vector with length. (*stxvl): New insn for store VSX vector with length. (vcmpneb): New insn for vector of byte compare not equal. (vcmpnezb): New insn for vector of byte compare not equal or zero. (vcmpneh): New insn for vector of half word compare not equal. (vcmpnezh): New insn for vector of half word compare not equal or zero. (vcmpnew): New insn for vector of word compare not equal. (vcmpne<VSs>): New insn for vector of float or double compare not equal. (vcmpnezw): New insn for vector of word compare not equal or zero. (vclzlsbb): New insn for vector count leading zero least-significant bits byte. (vctzlsbb): New insn for vector count trailing zero least signficant bits byte. (vextublx): New insn for vector extract unsigned byte left indexed. (vextubrx): New insn for vector extract unsigned byte right indexed. (vextuhlx): New insn for vector extract unsigned half word left indexed. (vextuhrx): New insn for vector extract unsigned half word right indexed. (vextuwlx): New insn for vector extract unsigned word left indexed. (vextuwrx): New insn for vector extract unsigned word right indexed. * config/rs6000/rs6000.h (RS6000_BTC_CONST): Enhance comment to clarify intent of this constant. * config/rs6000/altivec.md (VI): Move this mode iterator to vsx.md. * doc/extend.texi (PowerPC Altivec Built-in Functions): Add documentation for vec_all_nez, vec_any_eqz, vec_cmpnez, vec_cntlz_lsbb, vec_cnttz_lsbb, vec_xl_len, vec_xst_len, vec_xlx, and vec_xrx functions. From-SVN: r241314
Kelvin Nilsen committed -
Define LIB2ADDEH_XTENSA_UNWIND_DW2_FDE to unwind-dw2-fde.c in xtensa/t-elf and to unwind-dw2-fde-dip.c in xtensa/t-linux and use LIB2ADDEH_XTENSA_UNWIND_DW2_FDE in LIB2ADDEH definition. This fixes build for elf target with windowed xtensa core that currently breaks with the following error message: unwind-dw2-fde-dip.c:36:40: fatal error: elf.h: No such file or directory 2016-10-18 Max Filippov <jcmvbkbc@gmail.com> libgcc/ * config/xtensa/t-elf (LIB2ADDEH_XTENSA_UNWIND_DW2_FDE): New definition. * config/xtensa/t-linux (LIB2ADDEH_XTENSA_UNWIND_DW2_FDE): New definition. * config/xtensa/t-windowed (LIB2ADDEH): Use LIB2ADDEH_XTENSA_UNWIND_DW2_FDE defined by either xtensa/t-elf or xtensa/t-linux. From-SVN: r241313
Max Filippov committed -
Use new FPU instruction sequences documented in the ISA book to implement __divsf3, __divdf3, __recipsf2, __recipdf2, __rsqrtsf2, __rsqrtdf2 and __ieee754_sqrtf and __ieee754_sqrt. 2016-10-18 Ding-Kai Chen <dkchen@cadence.com> libgcc/ * config/xtensa/ieee754-df.S (__recipdf2, __rsqrtdf2, __ieee754_sqrt): New functions. (__divdf3): Add implementation with new FPU instructions under #if XCHAL_HAVE_DFP_DIV. * config/xtensa/ieee754-sf.S (__recipsf2, __rsqrtsf2, __ieee754_sqrtf): New functions. (__divsf3): Add implementation with new FPU instructions under #if XCHAL_HAVE_FP_DIV. * config/xtensa/t-xtensa (LIB1ASMFUNCS): Add _sqrtf, _recipsf2 _rsqrtsf2, _sqrt, _recipdf2 and _rsqrtdf2. From-SVN: r241312
Ding-Kai Chen committed -
* include/experimental/bits/shared_ptr.h: Fix indentation. From-SVN: r241311
Jonathan Wakely committed -
* include/experimental/bits/shared_ptr.h (shared_ptr(shared_ptr&&)): Remove const from parameter. (operator<(const shared_ptr<T>&, nullptr_t)): Use correct specialization of std::less. * testsuite/experimental/memory/shared_ptr/comparison/comparison.cc: Test comparison with nullptr and actually call test functions. From-SVN: r241310
Jonathan Wakely committed -
2016-10-18 Andrew Pinski <apinski@cavium.com> PR tree-opt/65950 * predict.c (is_exit_with_zero_arg): New function. (tree_bb_level_predictions): Don't consider paths leading to exit(0) as nottaken. From-SVN: r241309
Andrew Pinski committed -
PR target/77991 * config/i386/i386.c (legitimize_tls_address) <case TLS_MODEL_INITIAL_EXEC>: For TARGET_64BIT || TARGET_ANY_GNU_TLS convert dest to Pmode if different than Pmode. testsuite/ChangeLog: PR target/77991 * gcc.target/i386/pr77991.c: New test. From-SVN: r241308
Uros Bizjak committed -
Reviewed-on: https://go-review.googlesource.com/31325 From-SVN: r241307
Ian Lance Taylor committed -
gcc/testsuite/ * lib/gcc-dg.exp: Set gcc_force_conventional_output whenever LTO is used. Set gcc_force_conventional_output even without LTO linker plugin From-SVN: r241306
Matthew Fortune committed -
re PR tree-optimization/77916 (ICE in verify_gimple_in_cfg: invalid (pointer) operands to plus/minus) 2016-10-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com> PR tree-optimization/77916 * gimple-ssa-strength-reduction.c (analyze_increments): Reinstate stopgap fix, as pointers with -1 increment are still broken. From-SVN: r241305
Bill Schmidt committed -
While testing a patch on Solaris, which does not support split-stack, I ran across a bug in the handling of caller-saved registers for the garbage collector. For non-split-stack systems, runtime_mcall is responsible for saving all caller-saved registers on the stack so that the GC stack scan will see them. It does this by calling __builtin_unwind_init and setting the g's gcnextsp field to point to the current stack. The garbage collector then scans the stack from gcnextsp to the top of stack. Unfortunately, the code was setting gcnextsp to point to runtime_mcall's argument, which meant that even though runtime_mcall was careful to store all caller-saved registers on the stack, the GC never saw them. This is, of course, only a problem if a value lives only in a caller-saved register, and not anywhere else on the stack or heap. And it is only a problem if that caller-saved register manages to make it all the way down to runtime_mcall without being saved by any function on the way. This is moderately unlikely but it turns out that the recent changes to keep values on the stack when compiling the runtime package caused it to happen for the local variable `s` in `notifyListWait` in runtime/sema.go. That function calls goparkunlock which is simple enough to not require all registers, and itself calls runtime_mcall. So it was possible for `s` to be released by the GC before the goroutine returned from goparkunlock, which eventually caused a dangling pointer to be passed to releaseSudog. This is not a problem on split-stack systems, which use __splitstack_get_context, which saves a stack pointer low enough on the stack to scan the registers saved by runtime_mcall. Reviewed-on: https://go-review.googlesource.com/31323 From-SVN: r241304
Ian Lance Taylor committed -
* config/rs6000/rs6000.c (rs6000_output_symbol_ref): Move storage mapping class decoration from here... (rs6000_xcoff_encode_section): ...to here. (rs6000_savres_strategy) [AIX,ELFv2]: Inline FPR save and restore if shrink-wrapping and optimizing for speed. From-SVN: r241303
David Edelsohn committed -
Do early return *before* calling dg-init/torture-init. Returning without calling dg-finish/torture-finish messes up torture-options for subsequent tests. gcc/testsuite/ 2016-10-18 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com> * gcc.dg/sso/sso.exp: Return early if not effective_target_int32. From-SVN: r241302
Senthil Kumar Selvaraj committed -
* include/bits/uses_allocator.h (__is_uses_allocator_constructible_v) (__is_nothrow_uses_allocator_constructible_v): Only define for C++14 and later. From-SVN: r241301
Jonathan Wakely committed -
tree-vrp.c (evrp_dom_walker::before_dom_children): Handle not visited but non-executable predecessors. 2016-10-18 Richard Biener <rguenther@suse.de> * tree-vrp.c (evrp_dom_walker::before_dom_children): Handle not visited but non-executable predecessors. Return taken edge. Simplify conditions and refactor propagation vs. folding step. * gcc.dg/tree-ssa/pr20318.c: Disable EVRP. * gcc.dg/tree-ssa/pr21001.c: Likewise. * gcc.dg/tree-ssa/pr21090.c: Likewise. * gcc.dg/tree-ssa/pr21294.c: Likewise. * gcc.dg/tree-ssa/pr21563.c: Likewise. * gcc.dg/tree-ssa/pr23744.c: Likewise. * gcc.dg/tree-ssa/pr25382.c: Likewise. * gcc.dg/tree-ssa/pr68431.c: Likewise. * gcc.dg/tree-ssa/vrp03.c: Likewise. * gcc.dg/tree-ssa/vrp06.c: Likewise. * gcc.dg/tree-ssa/vrp07.c: Likewise. * gcc.dg/tree-ssa/vrp09.c: Likewise. * gcc.dg/tree-ssa/vrp19.c: Likewise. * gcc.dg/tree-ssa/vrp20.c: Likewise. * gcc.dg/tree-ssa/vrp92.c: Likewise. * gcc.dg/pr68217.c: Likewise. * gcc.dg/predict-9.c: Likewise. * gcc.dg/tree-prof/val-prof-5.c: Adjust. * gcc.dg/predict-1.c: Likewise. From-SVN: r241300
Richard Biener committed -
We cannot use {SAVE,REST}_MULTIPLE and separate shrink-wrapping together, not without checking when actually emitting the prologue/epilogue that the registers to save/restore are actually still one contiguous block up to (and including) 31. So either: 1) We delay the decision of whether to use lmw/stmw to later; 2) We disallow shrink-wrapping separate (integer) components when those strategies are selected; or 3) We don't use those strategies if we use separate shrink-wrapping. This patch does 3). In the long term it may be best to do 1) instead, it can be slightly more efficient. This caused problems on darwin (it is the only config that uses lmw/stmw instructions by default). * config/rs6000/rs6000.c (rs6000_savres_strategy): Do not select {SAVE,REST}_MULTIPLE if shrink-wrapping separate components. (rs6000_get_separate_components): Assert we do not have those strategies selected. From-SVN: r241297
Segher Boessenkool committed -
2016-10-18 Richard Biener <rguenther@suse.de> * tree-ssa-propagate.h (substitute_and_fold): Adjust prototype. * tree-ssa-propagate.c (ssa_prop_fini): Remove final BB_VISITED clearing. (substitute_and_fold_dom_walker): Adjust constructor. (substitute_and_fold_dom_walker::before_dom_children): Remove do_dce flag and handling (always true). (substitute_and_fold): Likewise. * tree-vrp.c (vrp_finalize): Adjust. (execute_early_vrp): Remove final BB_VISITED clearing. * tree-ssa-ccp.c (ccp_finalize): Adjust. * tree-ssa-copy.c (fini_copy_prop): Likewise. * ira.c (ira): Call clear_bb_flags. From-SVN: r241296
Richard Biener committed -
genmatch.c (dt_operand::gen_gimple_expr): Use get_name to get at the operand to look at with TREE_OPERAND for generic... 2016-10-18 Richard Biener <rguenther@suse.de> * genmatch.c (dt_operand::gen_gimple_expr): Use get_name to get at the operand to look at with TREE_OPERAND for generic sub-nodes. From-SVN: r241295
Richard Biener committed -
2016-10-17 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR fortran/48298 * io/io.h: Move size_used from dtp to unit structure. Add bool has_size to unit structure. * read.c (read_x): Use has_size and size_used. * transfer.c (read_sf_internal,read_sf,read_block_form, read_block_form4): Likewise. (data_transfer_init): If parent, initialize the size variables. (finalize_transfer): Set the size variable using size_used in gfc_unit. (write_block): Delete bogus/dead code. * gfortran.dg/dtio_17.f90: New test. From-SVN: r241294
Jerry DeLisle committed
-