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-head mailing list