From owner-svn-src-stable-11@freebsd.org Sat May 6 11:18:38 2017 Return-Path: Delivered-To: svn-src-stable-11@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 68681D615FA; Sat, 6 May 2017 11:18:38 +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 2D728F40; Sat, 6 May 2017 11:18:38 +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 v46BIbh3011572; Sat, 6 May 2017 11:18:37 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v46BIbwx011571; Sat, 6 May 2017 11:18:37 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201705061118.v46BIbwx011571@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sat, 6 May 2017 11:18:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r317881 - stable/11/contrib/llvm/lib/Target/ARM X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-11@freebsd.org X-Mailman-Version: 2.1.23 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: Sat, 06 May 2017 11:18:38 -0000 Author: dim Date: Sat May 6 11:18:36 2017 New Revision: 317881 URL: https://svnweb.freebsd.org/changeset/base/317881 Log: MFC r317751: Pull in r301983 from upstream llvm trunk (by Tim Northover): ARM: avoid handing a deleted node back to TableGen during ISel. When we replaced the multiplicand the destination node might already exist. When that happens the original gets CSEd and deleted. However, it's actually used as the offset so nonsense is produced. Should fix PR32726. This fixes an assertion failure when building building www/firefox 53.0 for arm. Reported by: Bob Prohaska PR: 218782 Modified: stable/11/contrib/llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp Directory Properties: stable/11/ (props changed) Modified: stable/11/contrib/llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp ============================================================================== --- stable/11/contrib/llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp Sat May 6 11:13:33 2017 (r317880) +++ stable/11/contrib/llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp Sat May 6 11:18:36 2017 (r317881) @@ -748,7 +748,9 @@ bool ARMDAGToDAGISel::SelectLdStSOReg(SD unsigned PowerOfTwo = 0; SDValue NewMulConst; if (canExtractShiftFromMul(Offset, 31, PowerOfTwo, NewMulConst)) { + HandleSDNode Handle(Offset); replaceDAGValue(Offset.getOperand(1), NewMulConst); + Offset = Handle.getValue(); ShAmt = PowerOfTwo; ShOpcVal = ARM_AM::lsl; } @@ -1428,7 +1430,9 @@ bool ARMDAGToDAGISel::SelectT2AddrModeSo unsigned PowerOfTwo = 0; SDValue NewMulConst; if (canExtractShiftFromMul(OffReg, 3, PowerOfTwo, NewMulConst)) { + HandleSDNode Handle(OffReg); replaceDAGValue(OffReg.getOperand(1), NewMulConst); + OffReg = Handle.getValue(); ShAmt = PowerOfTwo; } }