[LLVMdev] DAGTypeLegalizer::RemapValue failure

Shemer, Anat anat.shemer at intel.com
Thu Aug 16 13:39:54 PDT 2012


Hi,

If you are familiar with LegalizeTypes I will be glad if you can help me with the following scenario.

I'm debugging some ll test that fails with an assertion in "void DAGTypeLegalizer::RemapValue(SDValue &N)" because it does not expect that a remap to a new node exists.

However looking at the code for a while this seems to be a valid case. I see that many times nodes are added to ReplacedValues map as a value when their NodeID is 0, and therefore they might become a NewNode later. As soon as they become NewNode they are analyzed in AnalyzeNewNode() and in this process, which recurs through the new node operands, it's possible to reach RemapValue and find there the node as a NewNode. That's the scenario in which my test fails.

But I probably miss something because normally this assertion is not hit.

-       Is this assertion correct?
-       What is wrong with the scenario that I describe? Or why doesn't it happen more often?

BTW, I searched in LLVM archives and saw that this assertion was removed in 2008 but returned later. but I couldn't find an explanation how this should work.

Thanks, Anat


---------------------------------------------------------------------
Intel Israel (74) Limited

This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20120816/52a9a5ea/attachment.html>


More information about the llvm-dev mailing list