summaryrefslogtreecommitdiffstats
path: root/source/slang/ir.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/slang/ir.cpp')
-rw-r--r--source/slang/ir.cpp35
1 files changed, 35 insertions, 0 deletions
diff --git a/source/slang/ir.cpp b/source/slang/ir.cpp
index ce587aec5..4a0a371d8 100644
--- a/source/slang/ir.cpp
+++ b/source/slang/ir.cpp
@@ -2723,6 +2723,41 @@ namespace Slang
return inst;
}
+ IRInst* IRBuilder::emitBindGlobalExistentialSlots(
+ UInt argCount,
+ IRInst* const* args)
+ {
+ auto inst = createInstWithTrailingArgs<IRInst>(
+ this,
+ kIROp_BindGlobalExistentialSlots,
+ getVoidType(),
+ 0,
+ nullptr,
+ argCount,
+ args);
+ addInst(inst);
+ return inst;
+ }
+
+ IRDecoration* IRBuilder::addBindExistentialSlotsDecoration(
+ IRInst* value,
+ UInt argCount,
+ IRInst* const* args)
+ {
+ auto decoration = createInstWithTrailingArgs<IRDecoration>(
+ this,
+ kIROp_BindExistentialSlotsDecoration,
+ getVoidType(),
+ 0,
+ nullptr,
+ argCount,
+ args);
+
+ decoration->insertAtStart(value);
+
+ return decoration;
+ }
+
IRInst* IRBuilder::emitExtractTaggedUnionTag(
IRInst* val)
{