summaryrefslogtreecommitdiff
path: root/source/slang/slang-ir-util.cpp
diff options
context:
space:
mode:
authorYong He <yonghe@outlook.com>2022-12-21 15:25:38 -0800
committerGitHub <noreply@github.com>2022-12-21 15:25:38 -0800
commit6dbdb74dbdc20783a0429229c21604a3d08d28f8 (patch)
tree910e2dd7b7b296ae5c285dbbb73114b381ef529a /source/slang/slang-ir-util.cpp
parent887842933c0734196729d5525de9835eb48b3855 (diff)
Further unify the autodiff passes. (#2574)
* Further unify the autodiff passes. * Fix clang compilation error. * Rename ForwardDerivativeTranscriber->ForwardDiffTranscriber. * Remove unused fields from Transcriber classes. * More small cleanups. * Cleanup. Co-authored-by: Yong He <yhe@nvidia.com>
Diffstat (limited to 'source/slang/slang-ir-util.cpp')
-rw-r--r--source/slang/slang-ir-util.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/source/slang/slang-ir-util.cpp b/source/slang/slang-ir-util.cpp
index 5c4590abe..81b5d636a 100644
--- a/source/slang/slang-ir-util.cpp
+++ b/source/slang/slang-ir-util.cpp
@@ -129,4 +129,18 @@ IROp getTypeStyle(BaseType op)
}
}
+IRInst* specializeWithGeneric(IRBuilder& builder, IRInst* genericToSpecialize, IRGeneric* userGeneric)
+{
+ List<IRInst*> genArgs;
+ for (auto param : userGeneric->getFirstBlock()->getParams())
+ {
+ genArgs.add(param);
+ }
+ return builder.emitSpecializeInst(
+ builder.getTypeKind(),
+ genericToSpecialize,
+ (UInt)genArgs.getCount(),
+ genArgs.getBuffer());
+}
+
}