From ddd7b06842aa2ac577e1c7ab203c2c6dcea8fa8b Mon Sep 17 00:00:00 2001 From: Pirama Arumuga Nainar Date: Tue, 27 Mar 2018 17:42:36 +0000 Subject: [PATCH] Remap values in PromotedFloats Summary: When a node is about to be erased from ReplacedValues, we should also remap its corresponding values in PromotedFloats. Patch by Yan Luo (Yan.Luo2@synopsys.com) Reviewers: pirama Reviewed By: pirama Subscribers: lebedev.ri, llvm-commits Differential Revision: https://reviews.llvm.org/D44872 llvm-svn: 328644 --- llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.cpp b/llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.cpp index 595d689..f3845dc 100644 --- a/llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.cpp +++ b/llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.cpp @@ -598,6 +598,12 @@ void DAGTypeLegalizer::ExpungeNode(SDNode *N) { RemapValue(I->second); } + for (DenseMap::iterator I = PromotedFloats.begin(), + E = PromotedFloats.end(); I != E; ++I) { + assert(I->first.getNode() != N); + RemapValue(I->second); + } + for (DenseMap::iterator I = SoftenedFloats.begin(), E = SoftenedFloats.end(); I != E; ++I) { assert(I->first.getNode() != N); -- 2.7.4