summaryrefslogtreecommitdiffstats
path: root/source
diff options
context:
space:
mode:
authorSai Praveen Bangaru <31557731+saipraveenb25@users.noreply.github.com>2025-03-18 03:28:59 -0700
committerGitHub <noreply@github.com>2025-03-18 18:28:59 +0800
commit24c9611a8296395dfad23c6ae136fab585dff735 (patch)
tree16fbac1e87fb4818d6b261de2ff3e5973800cd11 /source
parent613cca56f6da1e659e4ca8c48efc59802412fd4e (diff)
Fix `IRVar` hoisting when its already in the right block. (#6626)
Co-authored-by: Ellie Hermaszewska <ellieh@nvidia.com>
Diffstat (limited to 'source')
-rw-r--r--source/slang/slang-ir-util.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/source/slang/slang-ir-util.cpp b/source/slang/slang-ir-util.cpp
index 4aef7e7ba..58bb7aaf2 100644
--- a/source/slang/slang-ir-util.cpp
+++ b/source/slang/slang-ir-util.cpp
@@ -2162,7 +2162,9 @@ void legalizeDefUse(IRGlobalValueWithCode* func)
{
// If inst is an var, this is easy, we just move it to the
// common dominator.
- var->insertBefore(commonDominator->getTerminator());
+ if (var->getParent() != commonDominator)
+ var->insertBefore(commonDominator->getTerminator());
+
if (shouldInitializeVar)
{
IRBuilder builder(func);