summaryrefslogtreecommitdiffstats
path: root/source/slang/slang-ir-util.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-util.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-util.cpp')
-rw-r--r--source/slang/slang-ir-util.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/source/slang/slang-ir-util.cpp b/source/slang/slang-ir-util.cpp
index 62da8cffd..b4a41f8a5 100644
--- a/source/slang/slang-ir-util.cpp
+++ b/source/slang/slang-ir-util.cpp
@@ -418,6 +418,7 @@ bool isPtrLikeOrHandleType(IRInst* type)
case kIROp_InOutType:
case kIROp_PtrType:
case kIROp_RefType:
+ case kIROp_ConstRefType:
return true;
}
return false;
@@ -970,6 +971,17 @@ bool isOne(IRInst* inst)
}
}
+IRPtrTypeBase* isMutablePointerType(IRInst* inst)
+{
+ switch (inst->getOp())
+ {
+ case kIROp_ConstRefType:
+ return nullptr;
+ default:
+ return as<IRPtrTypeBase>(inst);
+ }
+}
+
void initializeScratchData(IRInst* inst)
{
List<IRInst*> workList;