1. 19 Oct, 2016 17 commits
    • 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
  2. 18 Oct, 2016 23 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
    • re PR tree-optimization/77916 (ICE in verify_gimple_in_cfg: invalid (pointer)… · c5026021
      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
    • runtime: scan caller-saved registers for non-split-stack · 421a8ed4
          
          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
    • rs6000.c (rs6000_output_symbol_ref): Move storage mapping class decoration from here... · 1b329510
              * 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
    • Return earlier if not effective_target_int32 · e5163ec1
      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
    • Don't define uses-allocator variable templates in C++11 · 0aeb81f8
      	* 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… · b64e8239
      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
    • rs6000: Fix separate shrink-wrapping for TARGET_MULTIPLE · 8f784f6b
      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
    • tree-ssa-propagate.h (substitute_and_fold): Adjust prototype. · 62869a1c
      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… · 699acd5b
      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
    • re PR fortran/48298 ([F03] User-Defined Derived-Type IO (DTIO)) · c680ada5
      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