summaryrefslogtreecommitdiff
path: root/source/slang/slang-ir.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/slang/slang-ir.cpp')
-rw-r--r--source/slang/slang-ir.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/source/slang/slang-ir.cpp b/source/slang/slang-ir.cpp
index 35803cedb..b6c19b18d 100644
--- a/source/slang/slang-ir.cpp
+++ b/source/slang/slang-ir.cpp
@@ -6849,6 +6849,8 @@ namespace Slang
thisInst = workItem.thisInst;
other = workItem.otherInst;
+ SLANG_ASSERT(other);
+
// Safety check: don't try to replace something with itself.
if (other == thisInst)
continue;
@@ -6902,6 +6904,8 @@ namespace Slang
IRInst* existingVal = nullptr;
if (dedupContext->getGlobalValueNumberingMap().tryGetValue(IRInstKey{ user }, existingVal))
{
+ // If existingVal has been replaced by something else, use that.
+ dedupContext->getInstReplacementMap().tryGetValue(existingVal, existingVal);
addToWorkList(user, existingVal);
}
else