summaryrefslogtreecommitdiff
path: root/source/slang/slang-ir-autodiff-transcriber-base.cpp
diff options
context:
space:
mode:
authorYong He <yonghe@outlook.com>2023-09-08 12:26:07 -0700
committerGitHub <noreply@github.com>2023-09-08 12:26:07 -0700
commite8a1dd11eab4c07366b29aca775eb927a465e133 (patch)
tree6f1e0788860ace253c05c3fbb37be8cd1f07fecf /source/slang/slang-ir-autodiff-transcriber-base.cpp
parentcb5dd19992fb77ca2be866d9c6f2f4436c8b1c1e (diff)
Don't inline callees with custom derivative before autodiff. (#3196)
Co-authored-by: Yong He <yhe@nvidia.com>
Diffstat (limited to 'source/slang/slang-ir-autodiff-transcriber-base.cpp')
-rw-r--r--source/slang/slang-ir-autodiff-transcriber-base.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/source/slang/slang-ir-autodiff-transcriber-base.cpp b/source/slang/slang-ir-autodiff-transcriber-base.cpp
index 53bb30f54..cf2310fc8 100644
--- a/source/slang/slang-ir-autodiff-transcriber-base.cpp
+++ b/source/slang/slang-ir-autodiff-transcriber-base.cpp
@@ -508,6 +508,19 @@ bool AutoDiffTranscriberBase::isExistentialType(IRType *type)
}
}
+void AutoDiffTranscriberBase::copyOriginalDecorations(IRInst* origFunc, IRInst* diffFunc)
+{
+ for (auto decor : origFunc->getDecorations())
+ {
+ switch (decor->getOp())
+ {
+ case kIROp_ForceInlineDecoration:
+ cloneDecoration(decor, diffFunc);
+ break;
+ }
+ }
+}
+
InstPair AutoDiffTranscriberBase::transcribeExtractExistentialWitnessTable(IRBuilder* builder, IRInst* origInst)
{
IRInst* origBase = origInst->getOperand(0);