In the continuing quest to try to track down problems we're seeing in SelectionDAG, I added the following assert toSelectionDAG::ReplaceAllUsesOfValuesWith: // Read up all the uses and make records of them. This helps // processing new uses that are introduced during the // replacement process. SmallVector<UseMemo, 4> Uses; for (unsigned i = 0; i != Num; ++i) { unsigned FromResNo = From[i].getResNo(); SDNode *FromNode = From[i].getNode(); #ifndef NDEBUG assert(FromNode->getOpcode() != ISD::DELETED_NODE && "FromNode deleted!"); #endif This triggers all over the place in the testbase. Is it expected that we could get a deleted node here? The following code appears to assume FromNode is a valid SDNode. -Dave
On Friday 26 February 2010 09:55:32 David Greene wrote:> In the continuing quest to try to track down problems we're seeing in > SelectionDAG, I added the following assert > toSelectionDAG::ReplaceAllUsesOfValuesWith:Here's a patch to add more of these deleted node asserts. They fire tons of times in the testbase. This concerns me greatly. Are all of these asserts valid? If not, we should document why with comments in the source. -Dave -------------- next part -------------- A non-text attachment was scrubbed... Name: sdassert.patch Type: text/x-patch Size: 5517 bytes Desc: not available URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20100226/5387a80e/attachment.bin>
On Friday 26 February 2010 10:34:41 David Greene wrote:> On Friday 26 February 2010 09:55:32 David Greene wrote: > > In the continuing quest to try to track down problems we're seeing in > > SelectionDAG, I added the following assert > > toSelectionDAG::ReplaceAllUsesOfValuesWith: > > Here's a patch to add more of these deleted node asserts. They fire > tons of times in the testbase.Ping? Just want to make sure this didn't get missed somehow. I'm surprised to see no discussion. -Dave