1. 26 Oct, 2018 18 commits
    • [rs6000] Enable 32bit support for tests of x86-compatibile intrinsics · 075b562c
      Also, bugfix for mmx-packuswb-1.c, which had ommitted the required
      "-mpower8-vector" from dg-options.
      
      2018-10-26  Paul A. Clarke  <pc@us.ibm.com>
      
      gcc/testsuite/ChangeLog:
      
      	* gcc.target/powerpc/mmx-packs.c: Enable 32 bit execution.
      	* gcc.target/powerpc/mmx-packssdw-1.c: Likewise.
      	* gcc.target/powerpc/mmx-packsswb-1.c: Likewise.
      	* gcc.target/powerpc/mmx-packs.c: Likewise.
      	* gcc.target/powerpc/mmx-packssdw-1.c: Likewise.
      	* gcc.target/powerpc/mmx-packsswb-1.c: Likewise.
      	* gcc.target/powerpc/mmx-paddb-1.c: Likewise.
      	* gcc.target/powerpc/mmx-paddd-1.c: Likewise.
      	* gcc.target/powerpc/mmx-paddsb-1.c: Likewise.
      	* gcc.target/powerpc/mmx-paddsw-1.c: Likewise.
      	* gcc.target/powerpc/mmx-paddusb-1.c: Likewise.
      	* gcc.target/powerpc/mmx-paddusw-1.c: Likewise.
      	* gcc.target/powerpc/mmx-paddw-1.c: Likewise.
      	* gcc.target/powerpc/mmx-pcmpeqb-1.c: Likewise.
      	* gcc.target/powerpc/mmx-pcmpeqd-1.c: Likewise.
      	* gcc.target/powerpc/mmx-pcmpeqw-1.c: Likewise.
      	* gcc.target/powerpc/mmx-pcmpgtb-1.c: Likewise.
      	* gcc.target/powerpc/mmx-pcmpgtd-1.c: Likewise.
      	* gcc.target/powerpc/mmx-pcmpgtw-1.c: Likewise.
      	* gcc.target/powerpc/mmx-pmaddwd-1.c: Likewise.
      	* gcc.target/powerpc/mmx-pmulhw-1.c: Likewise.
      	* gcc.target/powerpc/mmx-pmullw-1.c: Likewise.
      	* gcc.target/powerpc/mmx-pslld-1.c: Likewise.
      	* gcc.target/powerpc/mmx-psllw-1.c: Likewise.
      	* gcc.target/powerpc/mmx-psrad-1.c: Likewise.
      	* gcc.target/powerpc/mmx-psraw-1.c: Likewise.
      	* gcc.target/powerpc/mmx-psrld-1.c: Likewise.
      	* gcc.target/powerpc/mmx-psrlw-1.c: Likewise.
      	* gcc.target/powerpc/mmx-psubb-2.c: Likewise.
      	* gcc.target/powerpc/mmx-psubd-2.c: Likewise.
      	* gcc.target/powerpc/mmx-psubsb-1.c: Likewise.
      	* gcc.target/powerpc/mmx-psubsw-1.c: Likewise.
      	* gcc.target/powerpc/mmx-psubusb-1.c: Likewise.
      	* gcc.target/powerpc/mmx-psubusw-1.c: Likewise.
      	* gcc.target/powerpc/mmx-psubw-2.c: Likewise.
      	* gcc.target/powerpc/mmx-punpckhbw-1.c: Likewise.
      	* gcc.target/powerpc/mmx-punpckhdq-1.c: Likewise.
      	* gcc.target/powerpc/mmx-punpckhwd-1.c: Likewise.
      	* gcc.target/powerpc/mmx-punpcklbw-1.c: Likewise.
      	* gcc.target/powerpc/mmx-punpckldq-1.c: Likewise.
      	* gcc.target/powerpc/mmx-punpcklwd-1.c: Likewise.
      	* gcc.target/powerpc/pr37191.c: Likewise.
      	* gcc.target/powerpc/sse-addps-1.c: Likewise.
      	* gcc.target/powerpc/sse-addss-1.c: Likewise.
      	* gcc.target/powerpc/sse-andnps-1.c: Likewise.
      	* gcc.target/powerpc/sse-andps-1.c: Likewise.
      	* gcc.target/powerpc/sse-cmpss-1.c: Likewise.
      	* gcc.target/powerpc/sse-cvtpi16ps-1.c: Likewise.
      	* gcc.target/powerpc/sse-cvtpi32ps-1.c: Likewise.
      	* gcc.target/powerpc/sse-cvtpi32x2ps-1.c: Likewise.
      	* gcc.target/powerpc/sse-cvtpi8ps-1.c: Likewise.
      	* gcc.target/powerpc/sse-cvtpspi16-1.c: Likewise.
      	* gcc.target/powerpc/sse-cvtpspi8-1.c: Likewise.
      	* gcc.target/powerpc/sse-cvtpu16ps-1.c: Likewise.
      	* gcc.target/powerpc/sse-cvtpu8ps-1.c: Likewise.
      	* gcc.target/powerpc/sse-cvtsi2ss-1.c: Likewise.
      	* gcc.target/powerpc/sse-cvtsi2ss-2.c: Likewise.
      	* gcc.target/powerpc/sse-cvtss2si-1.c: Likewise.
      	* gcc.target/powerpc/sse-cvtss2si-2.c: Likewise.
      	* gcc.target/powerpc/sse-cvttss2si-1.c: Likewise.
      	* gcc.target/powerpc/sse-cvttss2si-2.c: Likewise.
      	* gcc.target/powerpc/sse-divps-1.c: Likewise.
      	* gcc.target/powerpc/sse-divss-1.c: Likewise.
      	* gcc.target/powerpc/sse-maxps-1.c: Likewise.
      	* gcc.target/powerpc/sse-maxps-2.c: Likewise.
      	* gcc.target/powerpc/sse-maxss-1.c: Likewise.
      	* gcc.target/powerpc/sse-minps-1.c: Likewise.
      	* gcc.target/powerpc/sse-minps-2.c: Likewise.
      	* gcc.target/powerpc/sse-minss-1.c: Likewise.
      	* gcc.target/powerpc/sse-movaps-1.c: Likewise.
      	* gcc.target/powerpc/sse-movaps-2.c: Likewise.
      	* gcc.target/powerpc/sse-movhlps-1.c: Likewise.
      	* gcc.target/powerpc/sse-movhps-1.c: Likewise.
      	* gcc.target/powerpc/sse-movhps-2.c: Likewise.
      	* gcc.target/powerpc/sse-movlhps-1.c: Likewise.
      	* gcc.target/powerpc/sse-movlps-1.c: Likewise.
      	* gcc.target/powerpc/sse-movlps-2.c: Likewise.
      	* gcc.target/powerpc/sse-movmskb-1.c: Likewise.
      	* gcc.target/powerpc/sse-movmskps-1.c: Likewise.
      	* gcc.target/powerpc/sse-movss-1.c: Likewise.
      	* gcc.target/powerpc/sse-movss-2.c: Likewise.
      	* gcc.target/powerpc/sse-movss-3.c: Likewise.
      	* gcc.target/powerpc/sse-mulps-1.c: Likewise.
      	* gcc.target/powerpc/sse-mulss-1.c: Likewise.
      	* gcc.target/powerpc/sse-orps-1.c: Likewise.
      	* gcc.target/powerpc/sse-pavgw-1.c: Likewise.
      	* gcc.target/powerpc/sse-pmaxsw-1.c: Likewise.
      	* gcc.target/powerpc/sse-pmaxub-1.c: Likewise.
      	* gcc.target/powerpc/sse-pminsw-1.c: Likewise.
      	* gcc.target/powerpc/sse-pminub-1.c: Likewise.
      	* gcc.target/powerpc/sse-pmulhuw-1.c: Likewise.
      	* gcc.target/powerpc/sse-psadbw-1.c: Likewise.
      	* gcc.target/powerpc/sse-rcpps-1.c: Likewise.
      	* gcc.target/powerpc/sse-rsqrtps-1.c: Likewise.
      	* gcc.target/powerpc/sse-shufps-1.c: Likewise.
      	* gcc.target/powerpc/sse-sqrtps-1.c: Likewise.
      	* gcc.target/powerpc/sse-subps-1.c: Likewise.
      	* gcc.target/powerpc/sse-subss-1.c: Likewise.
      	* gcc.target/powerpc/sse-ucomiss-1.c: Likewise.
      	* gcc.target/powerpc/sse-ucomiss-2.c: Likewise.
      	* gcc.target/powerpc/sse-ucomiss-3.c: Likewise.
      	* gcc.target/powerpc/sse-ucomiss-4.c: Likewise.
      	* gcc.target/powerpc/sse-ucomiss-5.c: Likewise.
      	* gcc.target/powerpc/sse-ucomiss-6.c: Likewise.
      	* gcc.target/powerpc/sse-unpckhps-1.c: Likewise.
      	* gcc.target/powerpc/sse-unpcklps-1.c: Likewise.
      	* gcc.target/powerpc/sse-xorps-1.c: Likewise.
      	* gcc.target/powerpc/sse2-addpd-1.c: Likewise.
      	* gcc.target/powerpc/sse2-addsd-1.c: Likewise.
      	* gcc.target/powerpc/sse2-andnpd-1.c: Likewise.
      	* gcc.target/powerpc/sse2-andpd-1.c: Likewise.
      	* gcc.target/powerpc/sse2-cmppd-1.c: Likewise.
      	* gcc.target/powerpc/sse2-cmpsd-1.c: Likewise.
      	* gcc.target/powerpc/sse2-comisd-1.c: Likewise.
      	* gcc.target/powerpc/sse2-comisd-2.c: Likewise.
      	* gcc.target/powerpc/sse2-comisd-3.c: Likewise.
      	* gcc.target/powerpc/sse2-comisd-4.c: Likewise.
      	* gcc.target/powerpc/sse2-comisd-5.c: Likewise.
      	* gcc.target/powerpc/sse2-comisd-6.c: Likewise.
      	* gcc.target/powerpc/sse2-cvtdq2pd-1.c: Likewise.
      	* gcc.target/powerpc/sse2-cvtdq2ps-1.c: Likewise.
      	* gcc.target/powerpc/sse2-cvtpd2dq-1.c: Likewise.
      	* gcc.target/powerpc/sse2-cvtpd2ps-1.c: Likewise.
      	* gcc.target/powerpc/sse2-cvtps2dq-1.c: Likewise.
      	* gcc.target/powerpc/sse2-cvtps2pd-1.c: Likewise.
      	* gcc.target/powerpc/sse2-cvtsd2si-1.c: Likewise.
      	* gcc.target/powerpc/sse2-cvtsd2si-2.c: Likewise.
      	* gcc.target/powerpc/sse2-cvtsd2ss-1.c: Likewise.
      	* gcc.target/powerpc/sse2-cvtsi2sd-1.c: Likewise.
      	* gcc.target/powerpc/sse2-cvtsi2sd-2.c: Likewise.
      	* gcc.target/powerpc/sse2-cvtss2sd-1.c: Likewise.
      	* gcc.target/powerpc/sse2-cvttpd2dq-1.c: Likewise.
      	* gcc.target/powerpc/sse2-cvttps2dq-1.c: Likewise.
      	* gcc.target/powerpc/sse2-cvttsd2si-1.c: Likewise.
      	* gcc.target/powerpc/sse2-cvttsd2si-2.c: Likewise.
      	* gcc.target/powerpc/sse2-divpd-1.c: Likewise.
      	* gcc.target/powerpc/sse2-divsd-1.c: Likewise.
      	* gcc.target/powerpc/sse2-maxpd-1.c: Likewise.
      	* gcc.target/powerpc/sse2-maxsd-1.c: Likewise.
      	* gcc.target/powerpc/sse2-minpd-1.c: Likewise.
      	* gcc.target/powerpc/sse2-minsd-1.c: Likewise.
      	* gcc.target/powerpc/sse2-mmx.c: Likewise.
      	* gcc.target/powerpc/sse2-movhpd-1.c: Likewise.
      	* gcc.target/powerpc/sse2-movhpd-2.c: Likewise.
      	* gcc.target/powerpc/sse2-movlpd-1.c: Likewise.
      	* gcc.target/powerpc/sse2-movlpd-2.c: Likewise.
      	* gcc.target/powerpc/sse2-movmskpd-1.c: Likewise.
      	* gcc.target/powerpc/sse2-movq-1.c: Likewise.
      	* gcc.target/powerpc/sse2-movq-2.c: Likewise.
      	* gcc.target/powerpc/sse2-movq-3.c: Likewise.
      	* gcc.target/powerpc/sse2-movsd-1.c: Likewise.
      	* gcc.target/powerpc/sse2-movsd-2.c: Likewise.
      	* gcc.target/powerpc/sse2-movsd-3.c: Likewise.
      	* gcc.target/powerpc/sse2-mulpd-1.c: Likewise.
      	* gcc.target/powerpc/sse2-mulsd-1.c: Likewise.
      	* gcc.target/powerpc/sse2-orpd-1.c: Likewise.
      	* gcc.target/powerpc/sse2-packssdw-1.c: Likewise.
      	* gcc.target/powerpc/sse2-packsswb-1.c: Likewise.
      	* gcc.target/powerpc/sse2-packuswb-1.c: Likewise.
      	* gcc.target/powerpc/sse2-paddb-1.c: Likewise.
      	* gcc.target/powerpc/sse2-paddd-1.c: Likewise.
      	* gcc.target/powerpc/sse2-paddq-1.c: Likewise.
      	* gcc.target/powerpc/sse2-paddsb-1.c: Likewise.
      	* gcc.target/powerpc/sse2-paddsw-1.c: Likewise.
      	* gcc.target/powerpc/sse2-paddusb-1.c: Likewise.
      	* gcc.target/powerpc/sse2-paddusw-1.c: Likewise.
      	* gcc.target/powerpc/sse2-paddw-1.c: Likewise.
      	* gcc.target/powerpc/sse2-pand-1.c: Likewise.
      	* gcc.target/powerpc/sse2-pandn-1.c: Likewise.
      	* gcc.target/powerpc/sse2-pavgb-1.c: Likewise.
      	* gcc.target/powerpc/sse2-pavgw-1.c: Likewise.
      	* gcc.target/powerpc/sse2-pcmpeqb-1.c: Likewise.
      	* gcc.target/powerpc/sse2-pcmpeqd-1.c: Likewise.
      	* gcc.target/powerpc/sse2-pcmpeqw-1.c: Likewise.
      	* gcc.target/powerpc/sse2-pcmpgtb-1.c: Likewise.
      	* gcc.target/powerpc/sse2-pcmpgtd-1.c: Likewise.
      	* gcc.target/powerpc/sse2-pcmpgtw-1.c: Likewise.
      	* gcc.target/powerpc/sse2-pextrw.c: Likewise.
      	* gcc.target/powerpc/sse2-pinsrw.c: Likewise.
      	* gcc.target/powerpc/sse2-pmaddwd-1.c: Likewise.
      	* gcc.target/powerpc/sse2-pmaxsw-1.c: Likewise.
      	* gcc.target/powerpc/sse2-pmaxub-1.c: Likewise.
      	* gcc.target/powerpc/sse2-pminsw-1.c: Likewise.
      	* gcc.target/powerpc/sse2-pminub-1.c: Likewise.
      	* gcc.target/powerpc/sse2-pmovmskb-1.c: Likewise.
      	* gcc.target/powerpc/sse2-pmulhuw-1.c: Likewise.
      	* gcc.target/powerpc/sse2-pmulhw-1.c: Likewise.
      	* gcc.target/powerpc/sse2-pmullw-1.c: Likewise.
      	* gcc.target/powerpc/sse2-pmuludq-1.c: Likewise.
      	* gcc.target/powerpc/sse2-por-1.c: Likewise.
      	* gcc.target/powerpc/sse2-psadbw-1.c: Likewise.
      	* gcc.target/powerpc/sse2-pshufd-1.c: Likewise.
      	* gcc.target/powerpc/sse2-pshufhw-1.c: Likewise.
      	* gcc.target/powerpc/sse2-pshuflw-1.c: Likewise.
      	* gcc.target/powerpc/sse2-pslld-1.c: Likewise.
      	* gcc.target/powerpc/sse2-pslld-2.c: Likewise.
      	* gcc.target/powerpc/sse2-pslldq-1.c: Likewise.
      	* gcc.target/powerpc/sse2-psllq-1.c: Likewise.
      	* gcc.target/powerpc/sse2-psllq-2.c: Likewise.
      	* gcc.target/powerpc/sse2-psllw-1.c: Likewise.
      	* gcc.target/powerpc/sse2-psllw-2.c: Likewise.
      	* gcc.target/powerpc/sse2-psrad-1.c: Likewise.
      	* gcc.target/powerpc/sse2-psrad-2.c: Likewise.
      	* gcc.target/powerpc/sse2-psraw-1.c: Likewise.
      	* gcc.target/powerpc/sse2-psraw-2.c: Likewise.
      	* gcc.target/powerpc/sse2-psrld-1.c: Likewise.
      	* gcc.target/powerpc/sse2-psrld-2.c: Likewise.
      	* gcc.target/powerpc/sse2-psrldq-1.c: Likewise.
      	* gcc.target/powerpc/sse2-psrlq-1.c: Likewise.
      	* gcc.target/powerpc/sse2-psrlq-2.c: Likewise.
      	* gcc.target/powerpc/sse2-psrlw-1.c: Likewise.
      	* gcc.target/powerpc/sse2-psrlw-2.c: Likewise.
      	* gcc.target/powerpc/sse2-psubb-1.c: Likewise.
      	* gcc.target/powerpc/sse2-psubd-1.c: Likewise.
      	* gcc.target/powerpc/sse2-psubq-1.c: Likewise.
      	* gcc.target/powerpc/sse2-psubsb-1.c: Likewise.
      	* gcc.target/powerpc/sse2-psubsw-1.c: Likewise.
      	* gcc.target/powerpc/sse2-psubusb-1.c: Likewise.
      	* gcc.target/powerpc/sse2-psubusw-1.c: Likewise.
      	* gcc.target/powerpc/sse2-psubw-1.c: Likewise.
      	* gcc.target/powerpc/sse2-punpckhbw-1.c: Likewise.
      	* gcc.target/powerpc/sse2-punpckhdq-1.c: Likewise.
      	* gcc.target/powerpc/sse2-punpckhqdq-1.c: Likewise.
      	* gcc.target/powerpc/sse2-punpckhwd-1.c: Likewise.
      	* gcc.target/powerpc/sse2-punpcklbw-1.c: Likewise.
      	* gcc.target/powerpc/sse2-punpckldq-1.c: Likewise.
      	* gcc.target/powerpc/sse2-punpcklqdq-1.c: Likewise.
      	* gcc.target/powerpc/sse2-punpcklwd-1.c: Likewise.
      	* gcc.target/powerpc/sse2-pxor-1.c: Likewise.
      	* gcc.target/powerpc/sse2-shufpd-1.c: Likewise.
      	* gcc.target/powerpc/sse2-sqrtpd-1.c: Likewise.
      	* gcc.target/powerpc/sse2-subpd-1.c: Likewise.
      	* gcc.target/powerpc/sse2-subsd-1.c: Likewise.
      	* gcc.target/powerpc/sse2-ucomisd-1.c: Likewise.
      	* gcc.target/powerpc/sse2-ucomisd-2.c: Likewise.
      	* gcc.target/powerpc/sse2-ucomisd-3.c: Likewise.
      	* gcc.target/powerpc/sse2-ucomisd-4.c: Likewise.
      	* gcc.target/powerpc/sse2-ucomisd-5.c: Likewise.
      	* gcc.target/powerpc/sse2-ucomisd-6.c: Likewise.
      	* gcc.target/powerpc/sse2-unpckhpd-1.c: Likewise.
      	* gcc.target/powerpc/sse2-unpcklpd-1.c: Likewise.
      	* gcc.target/powerpc/sse2-xorpd-1.c: Likewise.
      	* gcc.target/powerpc/sse3-addsubpd.c: Likewise.
      	* gcc.target/powerpc/sse3-addsubps.c: Likewise.
      	* gcc.target/powerpc/sse3-haddpd.c: Likewise.
      	* gcc.target/powerpc/sse3-haddps.c: Likewise.
      	* gcc.target/powerpc/sse3-hsubpd.c: Likewise.
      	* gcc.target/powerpc/sse3-hsubps.c: Likewise.
      	* gcc.target/powerpc/sse3-lddqu.c: Likewise.
      	* gcc.target/powerpc/sse3-movddup.c: Likewise.
      	* gcc.target/powerpc/sse3-movshdup.c: Likewise.
      	* gcc.target/powerpc/sse3-movsldup.c: Likewise.
      	* gcc.target/powerpc/mmx-packuswb-1.c: Likewise. Also, add
      	ommitted "-mpower8-vector" to dg-options.
      
      From-SVN: r265537
      Paul A. Clarke committed
    • [rs6000] x86 vector intrinsics compatibility: clean-ups for 32bit support · dbafa0f5
      Implement various corrections in the compatibility implementations of the
      x86 vector intrinsics found after enabling 32bit mode for the associated
      test cases.  (Actual enablement coming in a subsequent patch.)
      
      2018-10-26  Paul A. Clarke  <pc@us.ibm.com>
      
      gcc/ChangeLog:
      
      	* config/rs6000/mmintrin.h: Enable 32bit compilation.
      	* config/rs6000/xmmintrin.h: Likewise.
      
      From-SVN: r265535
      Paul A. Clarke committed
    • libgo: avoid use of 'local' directive in shell script · dbd93b9d
          
          Avoid declaring shell variables with 'local' (not supported
          on all systems of interest).
          
          Reviewed-on: https://go-review.googlesource.com/c/145021
      
      From-SVN: r265534
      Ian Lance Taylor committed
    • libgo: fix improperly mangled linker symbol directive · 797ea254
          
          Fix asm name directive for the C version of log/syslog.syslog_c,
          which didn't get included in the recent name mangling change.
          
          Reviewed-on: https://go-review.googlesource.com/c/145017
      
      From-SVN: r265533
      Ian Lance Taylor committed
    • [rs6000] Fix _mm_extract_pi16 for big-endian · 4fa008a7
      For compatibility implementation of x86 vector intrinsic, _mm_extract_pi16,
      adjust shift value for big-endian mode.
      
      gcc/ChangeLog:
      
      2018-10-25  Paul A. Clarke  <pc@us.ibm.com>
      
      	* config/rs6000/xmmintrin.h (_mm_extract_pi16): Fix for big-endian.
      
      From-SVN: r265531
      Paul A. Clarke committed
    • tree-vect-slp.c (vect_mark_slp_stmts): Add visited hash_set and wrapper. · 4bfcf879
      2018-10-26  Richard Biener  <rguenther@suse.de>
      
      	* tree-vect-slp.c (vect_mark_slp_stmts): Add visited hash_set
      	and wrapper.
      	(vect_mark_slp_stmts_relevant): Likewise.
      	(vect_detect_hybrid_slp_stmts): Likewise.
      	(vect_bb_slp_scalar_cost): Likewise.
      	(vect_remove_slp_scalar_calls): Likewise.
      
      From-SVN: r265528
      Richard Biener committed
    • update_version_svn (IGNORE_BRANCHES): Add gcc-6-branch. · 6d202724
      	* update_version_svn (IGNORE_BRANCHES): Add gcc-6-branch.
      	* crontab: Remove gcc-6-branch entry.
      
      From-SVN: r265527
      Jakub Jelinek committed
    • gcc_release (error, inform): Use $@ instead of $1. · 9038a1de
      	* gcc_release (error, inform): Use $@ instead of $1.
      	(build_sources): Check for ^[[:blank:]]*GCC in both index.html
      	and changes.html, rather than for GCC in one and ^GCC in another one.
      
      From-SVN: r265526
      Jakub Jelinek committed
    • ipa-devirt.c (odr_subtypes_equivalent_p): Fix recursion. · abb967da
      
      	* ipa-devirt.c (odr_subtypes_equivalent_p): Fix recursion.
      	(warn_types_mismatch): Fix walk of DECL_NAME.
      	(odr_types_equivalent_p): Fix overactive assert.
      	* lto/lto-symtab.c (lto_symtab_merge_decls_2): Fix extra space.
      
      	* g++.dg/lto/odr-1_0.C: Fix template.
      	* g++.dg/lto/odr-1_1.C: Fix template.
      
      From-SVN: r265523
      Jan Hubicka committed
    • re PR tree-optimization/87105 (Autovectorization [X86, SSE2, AVX2, DoublePrecision]) · a1f072e2
      2018-10-26  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/87105
      	* tree-vectorizer.h (_slp_tree::refcnt): New member.
      	* tree-vect-slp.c (vect_free_slp_tree): Decrement and honor
      	refcnt.
      	(vect_create_new_slp_node): Initialize refcnt to one.
      	(bst_traits): Move.
      	(scalar_stmts_set_t, bst_fail): Remove.
      	(vect_build_slp_tree_2): Add bst_map argument and adjust calls.
      	(vect_build_slp_tree): Add bst_map argument and lookup
      	already created SLP nodes.
      	(vect_print_slp_tree): Handle a SLP graph, print SLP node
      	addresses.
      	(vect_slp_rearrange_stmts): Handle a SLP graph.
      	(vect_analyze_slp_instance): Adjust and free SLP nodes from
      	the CSE map.  Fix indenting.
      	(vect_schedule_slp_instance): Add short-cut.
      
      	* g++.dg/vect/slp-pr87105.cc: Adjust.
      	* gcc.dg/torture/20181024-1.c: New testcase.
      	* g++.dg/opt/20181025-1.C: Likewise.
      
      From-SVN: r265522
      Richard Biener committed
    • Relax hash function to match equals function behavior (PR testsuite/86158). · 74ca1c01
      2018-10-26  Martin Liska  <mliska@suse.cz>
      
      	PR testsuite/86158
      	* ipa-prop.c (struct ipa_vr_ggc_hash_traits): Hash with
      	addr_expr and not with pointers.
      
      From-SVN: r265521
      Martin Liska committed
    • * tree.c (free_lang_data_in_type): Only check main variants. · b322cdb2
      From-SVN: r265520
      Jan Hubicka committed
    • ipa-devirt.c (warn_odr): Make static. · 420672bc
      
      	* ipa-devirt.c (warn_odr): Make static.
      	(types_same_for_odr): Drop strict variant.
      	(types_odr_comparable): Likewise.
      	(odr_or_derived_type_p): Look for main variants.
      	(odr_name_hasher::equal): Cleanup comment.
      	(odr_subtypes_equivalent): Add warn and warned arguments; check main
      	variants.
      	(type_variants_equivalent_p): break out from ...
      	(odr_types_equivalent): ... here; go for main variants where needed.
      	(warn_odr): ... here; turn static.
      	(warn_types_mismatch): Compare mangled names of main variants.
      	* ipa-utils.h (types_odr_comparable): Drop strict parameter.
      	(type_with_linkage_p): Sanity check that we look at main variant.
      	* lto.c (lto_read_decls): Only consider main variant to be ODR type.
      	* tree.h (types_same_for_odr): Drop strict argument.
      
      From-SVN: r265519
      Jan Hubicka committed
    • re PR lto/87754 (ICE in odr_types_equivalent_p, at ipa-devirt.c:1250) · 99976e27
      2018-10-26  Richard Biener  <rguenther@suse.de>
      
      	PR testsuite/87754
      	* g++.dg/lto/odr-1_0.C: Fix pattern.
      
      From-SVN: r265518
      Richard Biener committed
    • re PR tree-optimization/87746 (ICE in vect_update_misalignment_for_peel, at… · 7ea4b8ed
      re PR tree-optimization/87746 (ICE in vect_update_misalignment_for_peel, at tree-vect-data-refs.c:1035)
      
      2018-10-26  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/87746
      	* tree-vect-data-refs.c (vect_update_misalignment_for_peel):
      	Simplify and fix WRT strided store groups with size not
      	equal to step in element count.
      	(vect_analyze_group_access_1): Dump the whole group.
      
      	* gcc.dg/pr87746.c: New testcase.
      
      From-SVN: r265517
      Richard Biener committed
    • Don't xfail gcc.dg/pr78973-2.c on non-ilp64 targets · 682f212a
      	* gcc.dg/pr78973-2.c: Remove xfail on dg-warning.
      
      From-SVN: r265516
      Rainer Orth committed
    • libgo: don't use wc in gotest · c404b3b9
          
          The wc command is not in the GNU approved list of Makefile utilities
          (https://www.gnu.org/prep/standards/html_node/Utilities-in-Makefiles.html#Utilities-in-Makefiles).
          
          Reviewed-on: https://go-review.googlesource.com/c/144897
      
      From-SVN: r265515
      Ian Lance Taylor committed
    • Daily bump. · 03f7544f
      From-SVN: r265514
      GCC Administrator committed
  2. 25 Oct, 2018 22 commits
    • compiler: improve name mangling for packpaths · 34489eb2
          
          The current implementation of Gogo::pkgpath_for_symbol was written in
          a way that allowed two distinct package paths to map to the same
          symbol, which could cause collisions at link- time or compile-time.
          
          Switch to a better mangling scheme to insure that we get a unique
          packagepath symbol for each package. In the new scheme instead of having
          separate mangling schemes for identifiers and package paths, the
          main identifier mangler ("go_encode_id") now handles mangling of
          both packagepath characters and identifier characters.
          
          The new mangling scheme is more intrusive: "foo/bar.Baz" is mangled as
          "foo..z2fbar.Baz" instead of "foo_bar.Baz". To mitigate this, this
          patch also adds a demangling capability so that function names
          returned from runtime.CallersFrames are converted back to their
          original unmangled form.
          
          Changing the pkgpath_for_symbol scheme requires updating a number of
          //go:linkname directives and C "__asm__" directives to match the new
          scheme, as well as updating the 'gotest' driver (which makes
          assumptions about the correct mapping from pkgpath symbol to package
          name).
          
          Fixes golang/go#27534.
          
          Reviewed-on: https://go-review.googlesource.com/c/135455
      
      From-SVN: r265510
      Ian Lance Taylor committed
    • rs6000-c.c (P9V_BUILTIN_VEC_VSCEDPGT, [...]): Rename base overloaded name. · fc756f9f
      gcc/ChangeLog:
      
      2018-10-25  Carl Love  <cel@us.ibm.com>
      
      	* config/rs6000/rs6000-c.c (P9V_BUILTIN_VEC_VSCEDPGT,
      	P9V_BUILTIN_VEC_VSCEDPLT, P9V_BUILTIN_VEC_VSCEDPEQ,
      	P9V_BUILTIN_VEC_VSCEDPUO): Rename base overloaded name.  Add quad
      	precicion entry for each overloaded builtin.
      	* config/rs6000/rs6000-builtin.def (VSCEDPGT, VSCEDPLT, VSCEDPEQ,
      	VSCEDPUO): Rename overloaded name.
      	(VSCEDPGT, VSCEQPGT, VSCEDPLT, VSCEQPLT, VSCEDPEQ, VSCEQPEQ,
      	VSCEDPUO, VSCEQPUO): Add defitions for overloaded builtins.
      	* config/rs6000/vsx.md (xscmpexpqp_<code>_<mode>): Add
      	define_expand for xscmpexqp instruction.
      	(*xscmpexpqp): Add define_insn for the xscmpexqp instruction.
      
      gcc/testsuite/ChangeLog:
      
      2018-10-25  Carl Love  <cel@us.ibm.com>
      
      	* gcc.target/powerpc/float128-cmp2-runnable.c: New test file.
      
      From-SVN: r265509
      Carl Love committed
    • emmintrin.h (_mm_slli_epi16): Replace deprecated function with vec_sl. · 80a2dd51
      2018-10-25  Bill Schmidt  <wschmidt@linux.ibm.com>
      	    Jinsong Ji <jji@us.ibm.com>
      
      	* config/rs6000/emmintrin.h (_mm_slli_epi16): Replace deprecated
      	function with vec_sl.
      	(_mm_slli_epi32): Likewise.
      	(_mm_slli_epi64): Likewise.
      	(_mm_srai_epi16): Replace deprecated function with vec_sra.
      	(_mm_srai_epi32): Likewise.
      	(_mm_srli_epi16): Replace deprecated function with vec_sr.
      	(_mm_srli_epi32): Likewise.
      	(_mm_srli_epi64): Likewise.
      	(_mm_sll_epi16): Replace deprecated function with vec_sl.
      	(_mm_sll_epi32): Likewise.
      	(_mm_sll_epi64): Likewise.
      	(_mm_sra_epi16): Replace deprecated function with vec_sra.
      	(_mm_sra_epi32): Likewise.
      	(_mm_srl_epi16): Replace deprecated function with vec_sr.
      	(_mm_srl_epi32): Likewise.
      	(_mm_srl_epi64): Likewise.
      
      
      Co-Authored-By: Jinsong Ji <jji@us.ibm.com>
      
      From-SVN: r265508
      Bill Schmidt committed
    • emmintrin.h (_mm_sll_epi16): Replace comparison operators with vec_cmp* for… · 1d3d2703
      emmintrin.h (_mm_sll_epi16): Replace comparison operators with vec_cmp* for compatibility due to unfortunate...
      
      2018-10-25  Bill Schmidt  <wschmidt@linux.ibm.com>
      	    Jinsong Ji <jji@us.ibm.com>
      
      	* gcc/config/rs6000/emmintrin.h (_mm_sll_epi16): Replace
      	comparison operators with vec_cmp* for compatibility due to
      	unfortunate history; clean up formatting and use types more
      	appropriately.
      	(_mm_sll_epi32): Likewise.
      	(_mm_sll_epi64): Likewise.
      	(_mm_srl_epi16): Likewise.
      	(_mm_srl_epi32): Likewise.
      	(_mm_srl_epi64): Likewise.
      
      
      Co-Authored-By: Jinsong Ji <jji@us.ibm.com>
      
      From-SVN: r265507
      Bill Schmidt committed
    • emmintrin.h (_mm_sll_epi64): Remove wrong cast. · 71c3949e
      2018-10-25  Bill Schmidt  <wschmidt@linux.ibm.com>
      	    Jinsong Ji <jji@us.ibm.com>
      
      	* config/rs6000/emmintrin.h (_mm_sll_epi64): Remove wrong cast.
      	* config/rs6000/xmmintrin.h (_mm_min_ps): Change m's type to
      	__vector __bool int.  Use vec_cmpgt in preference to deprecated
      	function vec_vcmpgtfp.
      	(_mm_max_ps): Likewise.
      
      
      Co-Authored-By: Jinsong Ji <jji@us.ibm.com>
      
      From-SVN: r265506
      Bill Schmidt committed
    • rl78.c (insn_ok_now): Always re-recognize the insn if returning false. · 7959b94e
      	* config/rl78/rl78.c (insn_ok_now): Always re-recognize the insn
      	if returning false.
      
      From-SVN: r265505
      Jeff Law committed
    • extend.texi (aligned): Expand attribute description. · 8145e6a0
      
      gcc/ChangeLog:
      
      	* doc/extend.texi (aligned): Expand attribute description.
      	(Alignment): Rename section.  Discuss function arguments.
      
      From-SVN: r265498
      Martin Sebor committed
    • Use signed char in a test (PR testsuite/87739). · 30e87461
      2018-10-25  Martin Liska  <mliska@suse.cz>
      
      	PR testsuite/87739
      	* gcc.dg/tree-ssa/pr84436-5.c (foo): Use signed char.
      
      From-SVN: r265495
      Martin Liska committed
    • Revert partially changes from r265454 (PR other/87735). · 3239d726
      2018-10-25  Martin Liska  <mliska@suse.cz>
      
      	PR other/87735
      	* gcc.dg/tree-prof/time-profiler-1.c: Revert.
      	* gcc.dg/tree-prof/time-profiler-2.c: Likewise.
      	* gcc.dg/tree-prof/time-profiler-3.c: Likewise.
      2018-10-25  Martin Liska  <mliska@suse.cz>
      
      	PR other/87735
      	* libgcov-profiler.c: Revert.
      
      From-SVN: r265494
      Martin Liska committed
    • PR libstdc++/87749 fix (and optimize) string move construction · 71e09389
      The move constructor for the SSO string uses assign(const basic_string&)
      when either:
      
      (1) the source string is "local" and so the contents of the small string
      buffer need to be copied, or
      
      (2) the allocator does not propagate and is_always_equal is false.
      
      Case (1) is suboptimal, because the assign member is not noexcept and
      the compiler isn't smart enough to see it won't actually throw in this
      case. This causes extra code in the move assignment operator so that any
      exception will be turned into a call to std::terminate. This can be
      fixed by copying small strings inline instead of calling assign.
      
      Case (2) is a bug, because the specific instances of the allocators
      could be equal even if is_always_equal is false. This can result in an
      unnecessary deep copy (and potentially-throwing allocation) when the
      storage should be moved. This can be fixed by simply checking if the
      allocators are equal.
      
      	PR libstdc++/87749
      	* include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
      	(basic_string::operator=(basic_string&&)): For short strings copy the
      	buffer inline. Only fall back to using assign(const basic_string&) to
      	do a deep copy when reallocation is needed.
      	* testsuite/21_strings/basic_string/modifiers/assign/char/87749.cc:
      	New test.
      	* testsuite/21_strings/basic_string/modifiers/assign/char/
      	move_assign_optim.cc: New test.
      	* testsuite/21_strings/basic_string/modifiers/assign/wchar_t/87749.cc:
      	New test.
      	* testsuite/21_strings/basic_string/modifiers/assign/wchar_t/
      	move_assign_optim.cc: New test.
      
      From-SVN: r265493
      Jonathan Wakely committed
    • ipa-devirt.c (main_odr_variant): Remove. · 1afca3f4
      
      	* ipa-devirt.c (main_odr_variant): Remove.
      	(hash_odr_name, types_same_for_odr, types_odr_comparable,
      	odr_name_hasher::equal, odr_subtypes_equivalent_p):
      	Drop use of main_odr_variant.
      	(add_type_duplicate): Silence confused warnings on integer types.
      	(get_odr_type): Always look for main variant.
      	(register_odr_type): Simplify.
      
      From-SVN: r265492
      Jan Hubicka committed
    • tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Initialize ng to silence… · 303d8f77
      tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Initialize ng to silence error with release checking bootstrap.
      
      2018-10-25  Richard Biener  <rguenther@suse.de>
      
      	* tree-vect-data-refs.c (vect_analyze_data_ref_accesses):
      	Initialize ng to silence error with release checking bootstrap.
      
      From-SVN: r265491
      Richard Biener committed
    • S/390: Merge movdi_larl into movdi_64 · b6f51755
      Consider the following RTL:
      
      (insn (set (mem/f/c:DI (reg/f:DI 60))
                 (const:DI (plus:DI (symbol_ref:DI ("*.LANCHOR0"))
                                    (const_int 8)))))
      
      generated by cse2 pass.  It is matched to movdi_64, resulting in
      the following inefficient code:
      
      	larl	%r5,.L6			# Load literal pool@
      	lg	%r1,.L7-.L6(%r5)	# Load .LANCHOR0+8
      	stgrl	%r1,.LANCHOR0
      	br	%r14
      
      Matching it to movdi_larl improves the code, eliminating one
      instruction and the literal pool entry:
      
      	larl	%r1,.LANCHOR0+8
      	stgrl	%r1,.LANCHOR0
      	br	%r14
      
      Taking it one step further, there is no reason to keep movdi_64 and
      movdi_larl separate, since this could potentially improve code in other
      ways by giving lra one more alternative to choose from.
      
      gcc/ChangeLog:
      
      2018-10-25  Ilya Leoshkevich  <iii@linux.ibm.com>
      
      	* config/s390/constraints.md (ZL): New constraint.
      	* config/s390/s390.c (legitimate_pic_operand_p): Accept LARL
      	operands.
      	* config/s390/s390.md (movdi_larl): Remove.
      	(movdi_64): Add the LARL alternative.
      
      gcc/testsuite/ChangeLog:
      
      2018-10-25  Ilya Leoshkevich  <iii@linux.ibm.com>
      
      	* gcc.target/s390/global-array-almost-huge-element.c: New test.
      	* gcc.target/s390/global-array-almost-negative-huge-element.c: New test.
      	* gcc.target/s390/global-array-element-pic.c: New test.
      	* gcc.target/s390/global-array-even-element.c: New test.
      	* gcc.target/s390/global-array-huge-element.c: New test.
      	* gcc.target/s390/global-array-negative-huge-element.c: New test.
      	* gcc.target/s390/global-array-odd-element.c: New test.
      
      From-SVN: r265490
      Ilya Leoshkevich committed
    • tree-if-conv.c: Include tree-ssa-sccvn.h. · 4dd7c0dc
      2018-10-25  Richard Biener  <rguenther@suse.de>
      
      	* tree-if-conv.c: Include tree-ssa-sccvn.h.
      	(tree_if_conversion): Run CSE on the if-converted loop body.
      
      From-SVN: r265489
      Richard Biener committed
    • Fix rtx_code_size static initialization order fiasco · cd747405
      r264556 and r264537 changed the format of EQ_ATTR_ALT RTXs to "ww",
      which also required adjusting rtx_code_size initializer.  In order to
      simplify things, the list of rtx_codes known to use HOST_WIDE_INTs was
      replaced by the format string check.  However, unlike the old one, this
      new check cannot be always performed at compile time, in which case a
      static constructor is generated.  This may lead to a static
      initialization order fiasco with respect to other static constructors
      in the compiler, in case of PR87747, cselib's pool_allocator.
      
      gcc/ChangeLog:
      
      2018-10-25  Ilya Leoshkevich  <iii@linux.ibm.com>
      
      	PR bootstrap/87747
      	* rtl.c (RTX_CODE_HWINT_P_1): New helper macro.
      	(RTX_CODE_HWINT_P): New macro.
      	(rtx_code_size): Use RTX_CODE_HWINT_P ().
      
      From-SVN: r265488
      Ilya Leoshkevich committed
    • Relocation (= move+destroy) · 0f317ef7
      2018-10-25  Marc Glisse  <marc.glisse@inria.fr>
      
      	PR libstdc++/87106
      	* include/bits/alloc_traits.h (_S_construct, _S_destroy, construct,
      	destroy): Add noexcept specification.
      	* include/bits/allocator.h (construct, destroy): Likewise.
      	* include/ext/alloc_traits.h (construct, destroy): Likewise.
      	* include/ext/malloc_allocator.h (construct, destroy): Likewise.
      	* include/ext/new_allocator.h (construct, destroy): Likewise.
      	* include/bits/stl_uninitialized.h (__relocate_object_a, __relocate_a,
      	__relocate_a_1): New functions.
      	(__is_trivially_relocatable): New class.
      	* include/bits/stl_vector.h (__use_relocate): New static member.
      	* include/bits/vector.tcc (reserve, _M_realloc_insert,
      	_M_default_append): Use __relocate_a.
      	(reserve, _M_assign_aux, _M_realloc_insert, _M_fill_insert,
      	_M_default_append, _M_range_insert): Move _GLIBCXX_ASAN_ANNOTATE_REINIT
      	after _Destroy.
      	* testsuite/23_containers/vector/modifiers/push_back/49836.cc:
      	Replace CopyConsOnlyType with DelAnyAssign.
      
      From-SVN: r265485
      Marc Glisse committed
    • ipa-devirt.c (odr_types_equivalent_p): Do not ICE if one of types is anonymous. · 09d3f04e
      
      	* ipa-devirt.c (odr_types_equivalent_p): Do not ICE if one of types
      	is anonymous.
      	* g++.dg/lto/odr-1_0.C: New test.
      	* g++.dg/lto/odr-1_1.C: New test.
      
      From-SVN: r265484
      Jan Hubicka committed
    • dg-cmp-results: display NA->FAIL & NA->UNRESOLVED by default · 46ec9261
      Currently, dg-cmp-results will not print anything for a test that was
      not run before, even if it is a FAIL or UNRESOLVED now. This means that
      when contributing a code change together with a testcase in the same
      commit one must run dg-cmp-results twice: once to check for regression
      on a full testsuite run and once against the new testcase with -v -v.
      This also prevents using dg-cmp-results on sum files generated with
      test_summary since these would not contain PASS.
      
      This patch changes dg-cmp-results to print NA->FAIL and NA->UNRESOLVED
      changes by default.
      
      2018-10-25  Thomas Preud'homme  <thomas.preudhomme@linaro.org>
      
          contrib/
          * dg-cmp-results.sh: Print NA-FAIL and NA->UNRESOLVED changes at
          default verbosity.
      
      From-SVN: r265483
      Thomas Preud'homme committed
    • [testsuite] Fix sibcall-9 & sibcall-10 with -fPIC · 541eccad
      gcc.dg/sibcall-9.c and gcc.dg/sibcall-10.c give execution failure
      on ARM when compiled with -fPIC due to the PIC access to volatile
      variable v creating an extra spill which causes the frame size of the
      two recursive functions to be different. Making the variable static
      solve the issue because the variable can be access in a PC-relative way
      and avoid the spill, while still testing sibling call as originally
      intended.
      
      2018-10-25  Thomas Preud'homme  <thomas.preudhomme@linaro.org>
      
      gcc/testsuite/
          * gcc.dg/sibcall-9.c: Make v static.
          * gcc.dg/sibcall-10.c: Likewise.
      
      From-SVN: r265482
      Thomas Preud'homme committed
    • re PR tree-optimization/87665 (gcc HEAD (svn: 265340) breaks elements on resize) · 7852940e
      2018-10-25  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/87665
      	PR tree-optimization/87745
      	* tree-vectorizer.h (get_earlier_stmt): Remove.
      	(get_later_stmt): Pick up UID from the original non-pattern stmt.
      
      	* gfortran.dg/20181025-1.f: New testcase.
      
      From-SVN: r265481
      Richard Biener committed
    • [DOC] Relocate list under Deprecated in options.texi to Var · 86f36311
      gcc/doc
      2018-10-25  Sam Tebbs  <sam.tebbs@arm.com>
      
      	* options.texi (Deprecated): Move list to Var section.
      
      From-SVN: r265480
      Sam Tebbs committed