summaryrefslogtreecommitdiffstats
path: root/source/slang/slang-ir.cpp
diff options
context:
space:
mode:
authorYong He <yonghe@outlook.com>2023-09-28 18:07:40 -0700
committerGitHub <noreply@github.com>2023-09-28 18:07:40 -0700
commitb7d318f48db2cb83a41d665f1727ae93fc555124 (patch)
treed81d69cbba264cd059bbe67f29235226032c4793 /source/slang/slang-ir.cpp
parente7238942ea003e134b325fa65296df8e19368e90 (diff)
Support `constref` parameters passing. (#3249)
* Support `constref` parameters passing. * Fix. * Fix. * Add test and diagnostic on mix use of __constref and no_diff. * check for [constref] on differentiable member method. --------- Co-authored-by: Yong He <yhe@nvidia.com>
Diffstat (limited to 'source/slang/slang-ir.cpp')
-rw-r--r--source/slang/slang-ir.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/source/slang/slang-ir.cpp b/source/slang/slang-ir.cpp
index 408b87e49..f8d2b3117 100644
--- a/source/slang/slang-ir.cpp
+++ b/source/slang/slang-ir.cpp
@@ -2755,6 +2755,11 @@ namespace Slang
return (IRRefType*) getPtrType(kIROp_RefType, valueType);
}
+ IRConstRefType* IRBuilder::getConstRefType(IRType* valueType)
+ {
+ return (IRConstRefType*)getPtrType(kIROp_ConstRefType, valueType);
+ }
+
IRSPIRVLiteralType* IRBuilder::getSPIRVLiteralType(IRType* type)
{
IRInst* operands[] = { type };
@@ -3588,6 +3593,7 @@ namespace Slang
case kIROp_OutType:
case kIROp_RawPointerType:
case kIROp_RefType:
+ case kIROp_ConstRefType:
case kIROp_ComPtrType:
case kIROp_NativePtrType:
case kIROp_NativeStringType:
@@ -3697,6 +3703,7 @@ namespace Slang
case kIROp_OutType:
case kIROp_RawPointerType:
case kIROp_RefType:
+ case kIROp_ConstRefType:
return 3;
case kIROp_VoidType:
return 4;