summaryrefslogtreecommitdiff
path: root/source/slang/slang-ir-autodiff-transcriber-base.cpp
diff options
context:
space:
mode:
authorSai Praveen Bangaru <31557731+saipraveenb25@users.noreply.github.com>2023-01-31 03:26:59 -0500
committerGitHub <noreply@github.com>2023-01-31 00:26:59 -0800
commite312d5c7dfde80941d96e522079a5d70f7d00649 (patch)
treecf600a7f49117a77336ad55e59816f5c323cd705 /source/slang/slang-ir-autodiff-transcriber-base.cpp
parent77cdbb2101f4e27bf1800d4bc1077c0510668c25 (diff)
Patched support for multi-return and fallthrough if-else with break stmts (#2617)
Diffstat (limited to 'source/slang/slang-ir-autodiff-transcriber-base.cpp')
-rw-r--r--source/slang/slang-ir-autodiff-transcriber-base.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/source/slang/slang-ir-autodiff-transcriber-base.cpp b/source/slang/slang-ir-autodiff-transcriber-base.cpp
index 91374e006..520c6d276 100644
--- a/source/slang/slang-ir-autodiff-transcriber-base.cpp
+++ b/source/slang/slang-ir-autodiff-transcriber-base.cpp
@@ -911,12 +911,14 @@ IRInst* AutoDiffTranscriberBase::transcribe(IRBuilder* builder, IRInst* origInst
// Tag the differential inst using a decoration (if it doesn't have one)
if (!pair.differential->findDecoration<IRDifferentialInstDecoration>() &&
- !pair.differential->findDecoration<IRMixedDifferentialInstDecoration>())
+ !pair.differential->findDecoration<IRMixedDifferentialInstDecoration>() &&
+ !as<IRConstant>(pair.differential))
{
// TODO: If the type is a 'relevant' pair type, need to mark it as mixed differential
// instead.
//
- builder->markInstAsDifferential(pair.differential, as<IRType>(pair.primal->getDataType()));
+ auto primalType = as<IRType>(pair.primal->getDataType());
+ builder->markInstAsDifferential(pair.differential, primalType);
}
break;