summaryrefslogtreecommitdiff
path: root/source/slang/slang-ir-any-value-marshalling.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/slang/slang-ir-any-value-marshalling.cpp')
-rw-r--r--source/slang/slang-ir-any-value-marshalling.cpp18
1 files changed, 6 insertions, 12 deletions
diff --git a/source/slang/slang-ir-any-value-marshalling.cpp b/source/slang/slang-ir-any-value-marshalling.cpp
index 2c6dcb84c..b61f0b273 100644
--- a/source/slang/slang-ir-any-value-marshalling.cpp
+++ b/source/slang/slang-ir-any-value-marshalling.cpp
@@ -52,8 +52,7 @@ namespace Slang
if (auto typeInfo = generatedAnyValueTypes.TryGetValue(size))
return typeInfo->Ptr();
RefPtr<AnyValueTypeInfo> info = new AnyValueTypeInfo();
- IRBuilder builder;
- builder.sharedBuilder = &sharedContext->sharedBuilderStorage;
+ IRBuilder builder(sharedContext->sharedBuilderStorage);
builder.setInsertBefore(type);
auto structType = builder.createStructType();
info->type = structType;
@@ -344,8 +343,7 @@ namespace Slang
IRFunc* generatePackingFunc(IRType* type, IRAnyValueType* anyValueType)
{
- IRBuilder builder;
- builder.sharedBuilder = &sharedContext->sharedBuilderStorage;
+ IRBuilder builder(sharedContext->sharedBuilderStorage);
builder.setInsertBefore(type);
auto anyValInfo = ensureAnyValueType(anyValueType);
@@ -507,8 +505,7 @@ namespace Slang
IRFunc* generateUnpackingFunc(IRType* type, IRAnyValueType* anyValueType)
{
- IRBuilder builder;
- builder.sharedBuilder = &sharedContext->sharedBuilderStorage;
+ IRBuilder builder(sharedContext->sharedBuilderStorage);
builder.setInsertBefore(type);
auto anyValInfo = ensureAnyValueType(anyValueType);
@@ -563,9 +560,8 @@ namespace Slang
auto func = ensureMarshallingFunc(
operand->getDataType(),
cast<IRAnyValueType>(packInst->getDataType()));
- IRBuilder builderStorage;
+ IRBuilder builderStorage(sharedContext->sharedBuilderStorage);
auto builder = &builderStorage;
- builder->sharedBuilder = &sharedContext->sharedBuilderStorage;
builder->setInsertBefore(packInst);
auto callInst = builder->emitCallInst(packInst->getDataType(), func.packFunc, 1, &operand);
packInst->replaceUsesWith(callInst);
@@ -578,9 +574,8 @@ namespace Slang
auto func = ensureMarshallingFunc(
unpackInst->getDataType(),
cast<IRAnyValueType>(operand->getDataType()));
- IRBuilder builderStorage;
+ IRBuilder builderStorage(sharedContext->sharedBuilderStorage);
auto builder = &builderStorage;
- builder->sharedBuilder = &sharedContext->sharedBuilderStorage;
builder->setInsertBefore(unpackInst);
auto callInst = builder->emitCallInst(unpackInst->getDataType(), func.unpackFunc, 1, &operand);
unpackInst->replaceUsesWith(callInst);
@@ -612,8 +607,7 @@ namespace Slang
// generate along the way.
//
SharedIRBuilder* sharedBuilder = &sharedContext->sharedBuilderStorage;
- sharedBuilder->module = sharedContext->module;
- sharedBuilder->session = sharedContext->module->session;
+ sharedBuilder->init(sharedContext->module);
sharedContext->addToWorkList(sharedContext->module->getModuleInst());