summaryrefslogtreecommitdiff
path: root/source/slang/slang-ir-util.cpp
diff options
context:
space:
mode:
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());
+}
+
}