1. 20 Oct, 2016 3 commits
  2. 19 Oct, 2016 24 commits
    • pa64-hpux-lib.h: New file. · 4c6d7494
      libgcc/
      	* config/pa/pa64-hpux-lib.h: New file.  
      	(EH_FRAME_SECTION_NAME): Rename to __LIBGCC_EH_FRAME_SECTION_NAME__.
      	(DTORS_SECTION_ASM_OP): Rename to __LIBGCC_DTORS_SECTION_ASM_OP__.
      	* config.host (tm_file): Add pa/pa64-hpux-lib.h to tm_file on
      	hppa*64*-*-hpux11*.
      gcc/
      	* config/pa/pa64-hpux.h (PA_INIT_FRAME_DUMMY_ASM_OP): Move to
      	config/pa/pa64-hpux-lib.h.
      	(PA_CRTBEGIN_HACK): Likewise.
      	(DTOR_LIST_BEGIN): Likewise.
      
      From-SVN: r241356
      John David Anglin committed
    • c-common.c (c_common_truthvalue_conversion): Warn only for signed integer shift… · 4c712374
      c-common.c (c_common_truthvalue_conversion): Warn only for signed integer shift ops in boolean context.
      
      2016-10-19  Bernd Edlinger  <bernd.edlinger@hotmail.de>
      
              * c-common.c (c_common_truthvalue_conversion): Warn only for signed
              integer shift ops in boolean context.
      
      testsuite:
      2016-10-19  Bernd Edlinger  <bernd.edlinger@hotmail.de>
      
              * c-c++-common/Wint-in-bool-context-2.c: New test.
      
      From-SVN: r241354
      Bernd Edlinger committed
    • Make std::enable_shared_from_this cope with ambiguity · f3070dab
      	* include/backward/auto_ptr.h (__shared_ptr(auto_ptr&&)): Call
      	_M_enable_shared_from_this_with instead of
      	__enable_shared_from_this_helper.
      	* include/bits/shared_ptr.h (__enable_shared_from_this_helper):
      	Remove overload for std::enable_shared_from_this..
      	(__enable_shared_from_this_base): Define friend function to select a
      	std::enable_shared_from_this base class.
      	* include/bits/shared_ptr_base.h (__enable_shared_from_this_helper):
      	Remove all overloads.
      	(__shared_ptr): Change all relevant constructors to call
      	_M_enable_shared_from_this_with instead of
      	__enable_shared_from_this_helper.
      	(__shared_ptr::__efst_base_t, __shared_ptr::__has_efst_base): Helpers
      	to detect accessible and unambiguous enable_shared_from_this bases.
      	(__shared_ptr::_M_enable_shared_from_this_with): New function to
      	replace __enable_shared_from_this_helper overloads.
      	(__enable_shared_from_this_helper): Remove overload for
      	std::__enable_shared_from_this.
      	(__enable_shared_from_this_base): Define friend function to select a
      	std::__enable_shared_from_this base class.
      	* include/experimental/bits/shared_ptr.h (experimental::shared_ptr):
      	Change relevant constructors to call _M_enable_shared_from_this_with.
      	(experimental::shared_ptr::__efst_base_t)
      	(experimental::shared_ptr::__has_efst_base): Helpers to detect
      	accessible and unambiguous enable_shared_from_this bases.
      	(experimental::shared_ptr::_M_enable_shared_from_this_with): Define.
      	(experimental::__enable_shared_from_this_helper): Remove overload for
      	std::experimental::enable_shared_from_this.
      	(experimental::__expt_enable_shared_from_this_base): Define friend
      	function to select a std::experimental::enable_shared_from_this base.
      	* testsuite/experimental/memory/shared_ptr/cons/
      	enable_shared_from_this.cc: New test.
      	* testsuite/experimental/memory/shared_ptr/cons/unique_ptr_ctor.cc:
      	Adjust expected behaviour for shared_ptr<A[]>.
      
      From-SVN: r241353
      Jonathan Wakely committed
    • dtio_17.f90: Fix test. · bdcf8e7c
      2016-10-19  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
      
      	* gfortran.dg/dtio_17.f90: Fix test.
      
      From-SVN: r241352
      Jerry DeLisle committed
    • Walloca-1.c: Adjust test for !lp64 targets. · ec1748d4
      	* gcc.dg/Walloca-1.c: Adjust test for !lp64 targets.
      	* gcc.dg/Walloca-2.c: Same.
      
      From-SVN: r241351
      Aldy Hernandez committed
    • Fix copy&paste error in __gnu_debug::vector · 36e2520b
      	* include/debug/vector (__gnu_debug::vector::emplace_back): Fix return
      	type.
      
      From-SVN: r241350
      Jonathan Wakely committed
    • Fix incorrect comment about std::auto_ptr · 181f50b6
      	* include/backward/auto_ptr.h (dauto_ptr): Correct comment about
      	conversions from auto_ptr<Derived> rvalues to auto_ptr<Base>.
      	* testsuite/20_util/auto_ptr/assign_neg.cc: Remove redundant dg-error
      	directives that only match notes, not errors.
      
      From-SVN: r241349
      Jonathan Wakely committed
    • arm.c (arm_emit_coreregs_64bit_shift): Clear the result register only if "in"… · c6cc81d6
      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
    • runtime, syscall: force EPOLLET to be positive · 29849c91
          
          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
    • Wvla-1.c: Rename to... · b70f0b0c
      	* 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. · 346a966e
      	* 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)… · 6e3d8cb4
      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
    • Test experimental::shared_ptr construction from other smart pointers · a04df2ba
      	* 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
    • re PR tree-optimization/78005 (172.mgrid and 450.soplex miscompare) · cbb22e61
      	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
    • [PR lto/77458] Avoid ICE in offloading with differing _FloatN, _FloatNx types · 3b834a2e
      	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
    • Replace NULL with false as a return value · aff98801
      	* 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… · a023f8c8
      [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
    • Move negative unique_ptr tests to new file · d40627f9
      	* 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
    • Fix std::experimental::shared_ptr SFINAE constraints · 84870b6b
      	* 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
    • PR77990 refactor unique_ptr to encapsulate tuple · e182393e
      	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
    • domwalk.c (dom_walker::walk): Use RPO order. · e7a3e0c6
      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... · 1af000e0
      	* 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
    • tree-vrp.c (evrp_dom_walker::evrp_dom_walker): Initialize stmts_to_remove. · d9700bdb
      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
    • Daily bump. · ae4206cb
      From-SVN: r241326
      GCC Administrator committed
  3. 18 Oct, 2016 13 commits
    • Fix formatting. · 7fc6e2c6
      From-SVN: r241322
      David Edelsohn committed
    • Makefile.in (OBJS): Add gimple-ssa-warn-alloca.o. · adc577c5
      	* 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
    • Makefile.in (EXTRA_GNATRTL_NONTASKING_OBJS): Define. · c354ab1f
      	* 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
    • Use FOR_ALL_BB_FN in a few more places · 2300c332
      	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
    • vec-all-ne-0.c: New test. · 902cb7b1
      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
    • xtensa: don't use unwind-dw2-fde-dip with elf targets · 2a26adf1
      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
    • xtensa: add HW FPU sequences for DIV/SQRT/RECIP/RSQRT · 66192aa1
      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
    • Fix indentation of experimental::shared_ptr code · 6dddab08
      	* include/experimental/bits/shared_ptr.h: Fix indentation.
      
      From-SVN: r241311
      Jonathan Wakely committed
    • Fix typos in experimental::shared_ptr · 8a9ff71f
      	* 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
    • re PR middle-end/65950 (exit in main is causing the path to it to become unlikely.) · e25a366f
      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
    • re PR target/77991 (ICE on x32 in plus_constant, at explow.c:87) · 5cb96b6a
      	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
    • Set gcc_force_conventional_output even without LTO linker plugin · f5de494c
      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