summaryrefslogtreecommitdiff
path: root/source/slang/slang-ir-specialize-address-space.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/slang/slang-ir-specialize-address-space.cpp')
-rw-r--r--source/slang/slang-ir-specialize-address-space.cpp15
1 files changed, 11 insertions, 4 deletions
diff --git a/source/slang/slang-ir-specialize-address-space.cpp b/source/slang/slang-ir-specialize-address-space.cpp
index 2bc1de775..29f1ec516 100644
--- a/source/slang/slang-ir-specialize-address-space.cpp
+++ b/source/slang/slang-ir-specialize-address-space.cpp
@@ -103,8 +103,11 @@ struct AddressSpaceContext : public AddressSpaceSpecializationContext
if (ptrType)
{
auto paramAddrSpace = key.getArgAddrSpaces()[paramIndex];
- auto newParamType =
- builder.getPtrType(ptrType->getOp(), ptrType->getValueType(), paramAddrSpace);
+ auto newParamType = builder.getPtrType(
+ ptrType->getOp(),
+ ptrType->getValueType(),
+ ptrType->getAccessQualifier(),
+ paramAddrSpace);
param->setFullType(newParamType);
mapInstToAddrSpace[param] = paramAddrSpace;
}
@@ -310,6 +313,7 @@ struct AddressSpaceContext : public AddressSpaceSpecializationContext
auto newResultType = builder.getPtrType(
ptrResultType->getOp(),
ptrResultType->getValueType(),
+ ptrResultType->getAccessQualifier(),
addrSpace);
fixUpFuncType(func, newResultType);
retValAddrSpaceChanged = true;
@@ -349,8 +353,11 @@ struct AddressSpaceContext : public AddressSpaceSpecializationContext
if (ptrType->getAddressSpace() != addrSpace)
{
IRBuilder builder(inst);
- auto newType =
- builder.getPtrType(ptrType->getOp(), ptrType->getValueType(), addrSpace);
+ auto newType = builder.getPtrType(
+ ptrType->getOp(),
+ ptrType->getValueType(),
+ ptrType->getAccessQualifier(),
+ addrSpace);
setDataType(inst, newType);
}
}