Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 3 Oct 2013 17:50:14 +0000 (UTC)
From:      Dimitry Andric <dim@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r256024 - head/contrib/llvm/lib/CodeGen/SelectionDAG
Message-ID:  <201310031750.r93HoE3L019735@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: dim
Date: Thu Oct  3 17:50:14 2013
New Revision: 256024
URL: http://svnweb.freebsd.org/changeset/base/256024

Log:
  Pull in r186338 from upstream llvm trunk:
  
    Remove invalid assert in DAGTypeLegalizer::RemapValue
  
    There is a comment at the top of DAGTypeLegalizer::PerformExpensiveChecks
    which, in part, says:
  
     // Note that these invariants may not hold momentarily when processing a node:
     // the node being processed may be put in a map before being marked Processed.
  
    Unfortunately, this assert would be valid only if the above-mentioned invariant
    held unconditionally. This was causing llc to assert when, in fact,
    everything was fine.
  
    Thanks to Richard Sandiford for investigating this issue!
  
    Fixes PR16562.
  
  This fixes assertions which could occur in the multimedia/ffmpeg1 and
  multimedia/ffmpeg2 ports.
  
  Approved by:	re (hrs)
  Reported by:	Matthias Apitz <guru@unixarea.de>
  MFC after:	3 days

Modified:
  head/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.cpp

Modified: head/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.cpp
==============================================================================
--- head/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.cpp	Thu Oct  3 17:30:55 2013	(r256023)
+++ head/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.cpp	Thu Oct  3 17:50:14 2013	(r256024)
@@ -615,7 +615,10 @@ void DAGTypeLegalizer::RemapValue(SDValu
     // replaced with other values.
     RemapValue(I->second);
     N = I->second;
-    assert(N.getNode()->getNodeId() != NewNode && "Mapped to new node!");
+
+    // Note that it is possible to have N.getNode()->getNodeId() == NewNode at
+    // this point because it is possible for a node to be put in the map before
+    // being processed.
   }
 }
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201310031750.r93HoE3L019735>