svn commit: r365849 - head/contrib/llvm-project/llvm/lib/Target/X86
Dimitry Andric
dim at FreeBSD.org
Thu Sep 17 19:47:42 UTC 2020
Author: dim
Date: Thu Sep 17 19:47:41 2020
New Revision: 365849
URL: https://svnweb.freebsd.org/changeset/base/365849
Log:
Merge commit 46673763f from llvm git (by Craig Topper):
[X86] Place new constant node in topological order in
X86DAGToDAGISel::matchBitExtract
Fixes PR47482
This should fix 'Assertion failed: (Op->getNodeId() != -1 && "Node has
already selected predecessor node"), function DoInstructionSelection,
file
/usr/src/contrib/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp,
line 1149' when compiling part of the project_painter project, while
targeting the bdver2 (or higher) CPU.
Reported by: jkim
MFC after: 6 weeks
X-MFC-With: r364284
Modified:
head/contrib/llvm-project/llvm/lib/Target/X86/X86ISelDAGToDAG.cpp
Modified: head/contrib/llvm-project/llvm/lib/Target/X86/X86ISelDAGToDAG.cpp
==============================================================================
--- head/contrib/llvm-project/llvm/lib/Target/X86/X86ISelDAGToDAG.cpp Thu Sep 17 19:43:25 2020 (r365848)
+++ head/contrib/llvm-project/llvm/lib/Target/X86/X86ISelDAGToDAG.cpp Thu Sep 17 19:47:41 2020 (r365849)
@@ -3496,6 +3496,7 @@ bool X86DAGToDAGISel::matchBitExtract(SDNode *Node) {
// Shift NBits left by 8 bits, thus producing 'control'.
// This makes the low 8 bits to be zero.
SDValue C8 = CurDAG->getConstant(8, DL, MVT::i8);
+ insertDAGNode(*CurDAG, SDValue(Node, 0), C8);
SDValue Control = CurDAG->getNode(ISD::SHL, DL, MVT::i32, NBits, C8);
insertDAGNode(*CurDAG, SDValue(Node, 0), Control);
More information about the svn-src-all
mailing list