From owner-svn-src-all@freebsd.org Fri Oct 9 21:00:06 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0B06B9D16F8; Fri, 9 Oct 2015 21:00:06 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id B24651821; Fri, 9 Oct 2015 21:00:05 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id t99L040G003769; Fri, 9 Oct 2015 21:00:04 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id t99L04WJ003768; Fri, 9 Oct 2015 21:00:04 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201510092100.t99L04WJ003768@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Fri, 9 Oct 2015 21:00:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r289081 - head/contrib/llvm/patches X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 09 Oct 2015 21:00:06 -0000 Author: dim Date: Fri Oct 9 21:00:04 2015 New Revision: 289081 URL: https://svnweb.freebsd.org/changeset/base/289081 Log: Add llvm patch corresponding to r289072. Added: head/contrib/llvm/patches/patch-07-undo-llvm-r240144-iostream-sigbus.diff Added: head/contrib/llvm/patches/patch-07-undo-llvm-r240144-iostream-sigbus.diff ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/contrib/llvm/patches/patch-07-undo-llvm-r240144-iostream-sigbus.diff Fri Oct 9 21:00:04 2015 (r289081) @@ -0,0 +1,50 @@ +Temporarily revert upstream llvm trunk r240144 (by Michael Zolotukhin): + + [SLP] Vectorize for all-constant entries. + +This should fix libc++'s iostream initialization SIGBUSing whenever the +global cout symbol is not aligned to 16 bytes. + +Introduced here: http://svnweb.freebsd.org/changeset/base/289072 + +Index: lib/Transforms/Vectorize/SLPVectorizer.cpp +=================================================================== +--- lib/Transforms/Vectorize/SLPVectorizer.cpp ++++ lib/Transforms/Vectorize/SLPVectorizer.cpp +@@ -1642,10 +1642,8 @@ bool BoUpSLP::isFullyVectorizableTinyTree() { + if (VectorizableTree.size() != 2) + return false; + +- // Handle splat and all-constants stores. +- if (!VectorizableTree[0].NeedToGather && +- (allConstant(VectorizableTree[1].Scalars) || +- isSplat(VectorizableTree[1].Scalars))) ++ // Handle splat stores. ++ if (!VectorizableTree[0].NeedToGather && isSplat(VectorizableTree[1].Scalars)) + return true; + + // Gathering cost would be too much for tiny trees. +Index: test/Transforms/SLPVectorizer/X86/tiny-tree.ll +=================================================================== +--- test/Transforms/SLPVectorizer/X86/tiny-tree.ll ++++ test/Transforms/SLPVectorizer/X86/tiny-tree.ll +@@ -153,19 +153,3 @@ define void @store_splat(float*, float) { + store float %1, float* %6, align 4 + ret void + } +- +- +-; CHECK-LABEL: store_const +-; CHECK: store <4 x i32> +-define void @store_const(i32* %a) { +-entry: +- %ptr0 = getelementptr inbounds i32, i32* %a, i64 0 +- store i32 10, i32* %ptr0, align 4 +- %ptr1 = getelementptr inbounds i32, i32* %a, i64 1 +- store i32 30, i32* %ptr1, align 4 +- %ptr2 = getelementptr inbounds i32, i32* %a, i64 2 +- store i32 20, i32* %ptr2, align 4 +- %ptr3 = getelementptr inbounds i32, i32* %a, i64 3 +- store i32 40, i32* %ptr3, align 4 +- ret void +-}