summaryrefslogtreecommitdiff
path: root/source/slang/slang-emit-spirv.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/slang/slang-emit-spirv.cpp')
-rw-r--r--source/slang/slang-emit-spirv.cpp27
1 files changed, 9 insertions, 18 deletions
diff --git a/source/slang/slang-emit-spirv.cpp b/source/slang/slang-emit-spirv.cpp
index 21f5c1bc8..38e60649a 100644
--- a/source/slang/slang-emit-spirv.cpp
+++ b/source/slang/slang-emit-spirv.cpp
@@ -1209,8 +1209,7 @@ struct SPIRVEmitContext
{
if (!inst)
{
- IRBuilder builder;
- builder.sharedBuilder = &m_sharedIRBuilder;
+ IRBuilder builder(m_sharedIRBuilder);
builder.setInsertInto(m_irModule->getModuleInst());
inst = builder.getVectorType(
builder.getBasicType(baseType),
@@ -1970,8 +1969,7 @@ struct SPIRVEmitContext
{
return result;
}
- IRBuilder builder;
- builder.sharedBuilder = &m_sharedIRBuilder;
+ IRBuilder builder(m_sharedIRBuilder);
builder.setInsertBefore(type);
auto ptrType = as<IRPtrTypeBase>(type);
SLANG_ASSERT(ptrType && "`getBuiltinGlobalVar`: `type` must be ptr type.");
@@ -1995,8 +1993,7 @@ struct SPIRVEmitContext
SpvInst* maybeEmitSystemVal(IRInst* inst)
{
- IRBuilder builder;
- builder.sharedBuilder = &m_sharedIRBuilder;
+ IRBuilder builder(m_sharedIRBuilder);
builder.setInsertBefore(inst);
if (auto layout = getVarLayout(inst))
{
@@ -2214,8 +2211,7 @@ struct SPIRVEmitContext
{
for (auto storageClass : snippet->usedResultTypeStorageClasses)
{
- IRBuilder builder;
- builder.sharedBuilder = &m_sharedIRBuilder;
+ IRBuilder builder(m_sharedIRBuilder);
builder.setInsertBefore(inst);
auto newPtrType = builder.getPtrType(
oldPtrType->getOp(), oldPtrType->getValueType(), storageClass);
@@ -2234,8 +2230,7 @@ struct SPIRVEmitContext
if (m_spvSnippetConstantInsts.TryGetValue(constant, result))
return result;
- IRBuilder builder;
- builder.sharedBuilder = &m_sharedIRBuilder;
+ IRBuilder builder(m_sharedIRBuilder);
builder.setInsertInto(m_irModule->getModuleInst());
switch (constant.type)
{
@@ -2282,8 +2277,7 @@ struct SPIRVEmitContext
// Emit SPV Inst that represents a type defined in a SpvSnippet.
void emitSpvSnippetASMTypeOperand(SpvSnippet::ASMType type)
{
- IRBuilder builder;
- builder.sharedBuilder = &m_sharedIRBuilder;
+ IRBuilder builder(m_sharedIRBuilder);
builder.setInsertInto(m_irModule->getModuleInst());
IRType* irType = nullptr;
switch (type)
@@ -2449,8 +2443,7 @@ struct SPIRVEmitContext
SpvInst* emitFieldAddress(SpvInstParent* parent, IRFieldAddress* fieldAddress)
{
- IRBuilder builder;
- builder.sharedBuilder = &m_sharedIRBuilder;
+ IRBuilder builder(m_sharedIRBuilder);
builder.setInsertBefore(fieldAddress);
auto base = fieldAddress->getBase();
@@ -2493,8 +2486,7 @@ struct SPIRVEmitContext
SpvInst* emitFieldExtract(SpvInstParent* parent, IRFieldExtract* inst)
{
- IRBuilder builder;
- builder.sharedBuilder = &m_sharedIRBuilder;
+ IRBuilder builder(m_sharedIRBuilder);
builder.setInsertBefore(inst);
IRStructType* baseStructType = as<IRStructType>(inst->getBase()->getDataType());
@@ -2566,8 +2558,7 @@ struct SPIRVEmitContext
}
SLANG_ASSERT(baseArrayType && "getElement require base to be an array.");
- IRBuilder builder;
- builder.sharedBuilder = &m_sharedIRBuilder;
+ IRBuilder builder(m_sharedIRBuilder);
builder.setInsertBefore(inst);
auto ptr = emitInst(