diff options
| author | Sai Praveen Bangaru <31557731+saipraveenb25@users.noreply.github.com> | 2023-05-06 03:03:25 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-05-06 00:03:25 -0700 |
| commit | 271dc1b98d3887b6297c5407dc67692716687f4d (patch) | |
| tree | a714a41f6a490000545e82cadd20561a020b0a1e /source/slang/slang-ir-autodiff.cpp | |
| parent | 0602eaaba32bdbaf3f99ab8987e97419cba395aa (diff) | |
Don't store loop induction values + fix minor issue (#2872)
Diffstat (limited to 'source/slang/slang-ir-autodiff.cpp')
| -rw-r--r-- | source/slang/slang-ir-autodiff.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/source/slang/slang-ir-autodiff.cpp b/source/slang/slang-ir-autodiff.cpp index f6a977994..6d56736ad 100644 --- a/source/slang/slang-ir-autodiff.cpp +++ b/source/slang/slang-ir-autodiff.cpp @@ -1909,7 +1909,7 @@ IRUse* findUniqueStoredVal(IRVar* var) // the final value to it, this method will return the call inst for this case. IRUse* findLatestUniqueWriteUse(IRVar* var) { - IRUse* storeUse = nullptr; + IRUse* callUse = nullptr; for (auto use = var->firstUse; use; use = use->nextUse) { if (const auto callInst = as<IRCall>(use->getUser())) @@ -1917,10 +1917,14 @@ IRUse* findLatestUniqueWriteUse(IRVar* var) // Ignore uses from differential blocks. if (callInst->getParent()->findDecoration<IRDifferentialInstDecoration>()) continue; - SLANG_RELEASE_ASSERT(!storeUse); - storeUse = use; + SLANG_RELEASE_ASSERT(!callUse); + callUse = use; } } + + if (callUse) + return callUse; + // If no unique call found, try to look for a store. return findUniqueStoredVal(var); } |
