From owner-svn-src-stable-11@freebsd.org Thu Nov 21 15:06:32 2019 Return-Path: Delivered-To: svn-src-stable-11@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 19EEC1C1CD5; Thu, 21 Nov 2019 15:06:32 +0000 (UTC) (envelope-from ronald-lists@klop.ws) Received: from smarthost1.greenhost.nl (smarthost1.greenhost.nl [195.190.28.88]) (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 47JjZG3mlqz4Wsg; Thu, 21 Nov 2019 15:06:30 +0000 (UTC) (envelope-from ronald-lists@klop.ws) Received: from smtp.greenhost.nl ([213.108.110.112]) by smarthost1.greenhost.nl with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1iXo2H-0004pe-1u; Thu, 21 Nov 2019 16:06:27 +0100 Content-Type: text/plain; charset=utf-8; format=flowed; delsp=yes To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org, "Dimitry Andric" Subject: Re: svn commit: r354803 - in stable: 11/contrib/llvm/lib/Transforms/InstCombine 12/contrib/llvm/lib/Transforms/InstCombine References: <201911180704.xAI74xAM039993@repo.freebsd.org> Date: Thu, 21 Nov 2019 16:06:22 +0100 MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: "Ronald Klop" Message-ID: In-Reply-To: <201911180704.xAI74xAM039993@repo.freebsd.org> User-Agent: Opera Mail/12.16 (FreeBSD) X-Authenticated-As-Hash: 398f5522cb258ce43cb679602f8cfe8b62a256d1 X-Virus-Scanned: by clamav at smarthost1.samage.net X-Spam-Level: -- X-Spam-Score: -2.0 X-Spam-Status: No, score=-2.0 required=5.0 tests=ALL_TRUSTED, BAYES_00 autolearn=disabled version=3.4.2 X-Scan-Signature: e6bdf1242ae0fe6211617ef395c8efe5 X-Rspamd-Queue-Id: 47JjZG3mlqz4Wsg X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=none; spf=pass (mx1.freebsd.org: domain of ronald-lists@klop.ws designates 195.190.28.88 as permitted sender) smtp.mailfrom=ronald-lists@klop.ws X-Spamd-Result: default: False [-2.56 / 15.00]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; R_SPF_ALLOW(-0.20)[+ip4:195.190.28.64/27]; TO_MATCH_ENVRCPT_ALL(0.00)[]; MIME_GOOD(-0.10)[text/plain]; DMARC_NA(0.00)[klop.ws]; NEURAL_HAM_LONG(-1.00)[-0.999,0]; RCPT_COUNT_FIVE(0.00)[5]; IP_SCORE(-0.76)[ip: (-0.89), ipnet: 195.190.28.0/24(-0.33), asn: 47172(-2.61), country: NL(0.02)]; RCVD_IN_DNSWL_NONE(0.00)[88.28.190.195.list.dnswl.org : 127.0.10.0]; FROM_EQ_ENVFROM(0.00)[]; R_DKIM_NA(0.00)[]; MID_RHS_NOT_FQDN(0.50)[]; ASN(0.00)[asn:47172, ipnet:195.190.28.0/24, country:NL]; MIME_TRACE(0.00)[0:+]; RCVD_TLS_ALL(0.00)[]; RCVD_COUNT_TWO(0.00)[2] X-BeenThere: svn-src-stable-11@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for only the 11-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Nov 2019 15:06:32 -0000 On Mon, 18 Nov 2019 08:04:59 +0100, Dimitry Andric wrote: > Author: dim > Date: Mon Nov 18 07:04:59 2019 > New Revision: 354803 > URL: https://svnweb.freebsd.org/changeset/base/354803 > > Log: > MFC r354724: > Merge commit 5bbb604bb from llvm git (by Craig Topper): > [InstCombine] Disable some portions of foldGEPICmp for GEPs that > return a vector of pointers. Fix other portions. > llvm-svn: 370114 > This should fix instances of 'Assertion failed: (isa(Val) && > "cast() argument of incompatible type!"), function cast, file > /usr/src/contrib/llvm/include/llvm/Support/Casting.h, line 255', when > building openjdk8 for aarch64 and armv7. > Reported by: jbeich > PR: 236566 > Are there plans for an errata notice for releng-12.1 with this fix? That would keep Openjdk8 as a pkg on aarch64 after 12.0 goes EOL and pkgs will be build on 12.1. If no plans exist how do I request this formally? Regards, Ronald. > Modified: > stable/11/contrib/llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp > Directory Properties: > stable/11/ (props changed) > > Changes in other areas also in this revision: > Modified: > stable/12/contrib/llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp > Directory Properties: > stable/12/ (props changed) > > Modified: > stable/11/contrib/llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp > ============================================================================== > --- > stable/11/contrib/llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp Mon > Nov 18 04:22:04 2019 (r354802) > +++ > stable/11/contrib/llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp Mon > Nov 18 07:04:59 2019 (r354803) > @@ -830,6 +830,10 @@ getAsConstantIndexedAddress(Value *V, const > DataLayout > static Instruction *transformToIndexedCompare(GEPOperator *GEPLHS, > Value *RHS, > ICmpInst::Predicate Cond, > const DataLayout &DL) { > + // FIXME: Support vector of pointers. > + if (GEPLHS->getType()->isVectorTy()) > + return nullptr; > + > if (!GEPLHS->hasAllConstantIndices()) > return nullptr; > @@ -880,7 +884,9 @@ Instruction *InstCombiner::foldGEPICmp(GEPOperator > *GE > RHS = RHS->stripPointerCasts(); > Value *PtrBase = GEPLHS->getOperand(0); > - if (PtrBase == RHS && GEPLHS->isInBounds()) { > + // FIXME: Support vector pointer GEPs. > + if (PtrBase == RHS && GEPLHS->isInBounds() && > + !GEPLHS->getType()->isVectorTy()) { > // ((gep Ptr, OFFSET) cmp Ptr) ---> (OFFSET cmp 0). > // This transformation (ignoring the base and scales) is valid > because we > // know pointers can't overflow since the gep is inbounds. See if > we can > @@ -914,11 +920,13 @@ Instruction *InstCombiner::foldGEPICmp(GEPOperator > *GE > // If we're comparing GEPs with two base pointers that only > differ in type > // and both GEPs have only constant indices or just one use, then > fold > // the compare with the adjusted indices. > + // FIXME: Support vector of pointers. > if (GEPLHS->isInBounds() && GEPRHS->isInBounds() && > (GEPLHS->hasAllConstantIndices() || GEPLHS->hasOneUse()) && > (GEPRHS->hasAllConstantIndices() || GEPRHS->hasOneUse()) && > PtrBase->stripPointerCasts() == > - GEPRHS->getOperand(0)->stripPointerCasts()) { > + GEPRHS->getOperand(0)->stripPointerCasts() && > + !GEPLHS->getType()->isVectorTy()) { > Value *LOffset = EmitGEPOffset(GEPLHS); > Value *ROffset = EmitGEPOffset(GEPRHS); > @@ -962,15 +970,20 @@ Instruction *InstCombiner::foldGEPICmp(GEPOperator > *GE > unsigned DiffOperand = 0; // The operand that differs. > for (unsigned i = 1, e = GEPRHS->getNumOperands(); i != e; ++i) > if (GEPLHS->getOperand(i) != GEPRHS->getOperand(i)) { > - if > (GEPLHS->getOperand(i)->getType()->getPrimitiveSizeInBits() != > - > GEPRHS->getOperand(i)->getType()->getPrimitiveSizeInBits()) { > + Type *LHSType = GEPLHS->getOperand(i)->getType(); > + Type *RHSType = GEPRHS->getOperand(i)->getType(); > + // FIXME: Better support for vector of pointers. > + if (LHSType->getPrimitiveSizeInBits() != > + RHSType->getPrimitiveSizeInBits() || > + (GEPLHS->getType()->isVectorTy() && > + (!LHSType->isVectorTy() || !RHSType->isVectorTy()))) { > // Irreconcilable differences. > NumDifferences = 2; > break; > - } else { > - if (NumDifferences++) break; > - DiffOperand = i; > } > + > + if (NumDifferences++) break; > + DiffOperand = i; > } > if (NumDifferences == 0) // SAME GEP? > _______________________________________________ > svn-src-all@freebsd.org mailing list > https://lists.freebsd.org/mailman/listinfo/svn-src-all > To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org"