summaryrefslogtreecommitdiff
path: root/source/slang/slang-lower-to-ir.cpp
diff options
context:
space:
mode:
authorYong He <yonghe@outlook.com>2023-05-09 09:44:33 -0700
committerGitHub <noreply@github.com>2023-05-09 09:44:33 -0700
commit38ed03a7203baacf36fca62539ac74fd45ed42d2 (patch)
tree9648daee25c0a2aaac2fa8cd7d91908fd2aeef2f /source/slang/slang-lower-to-ir.cpp
parent89a1234964a1927c4936a2758f72b7d6c9d0bc73 (diff)
Fix function side-effectness prop logic. (#2875)
Diffstat (limited to 'source/slang/slang-lower-to-ir.cpp')
-rw-r--r--source/slang/slang-lower-to-ir.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/source/slang/slang-lower-to-ir.cpp b/source/slang/slang-lower-to-ir.cpp
index de2d5aff2..ad338709d 100644
--- a/source/slang/slang-lower-to-ir.cpp
+++ b/source/slang/slang-lower-to-ir.cpp
@@ -7664,7 +7664,11 @@ struct DeclLoweringVisitor : DeclVisitor<DeclLoweringVisitor, LoweredValInfo>
irAggType->moveToEnd();
addTargetIntrinsicDecorations(irAggType, decl);
-
+ for (auto modifier : decl->modifiers)
+ {
+ if (as<NonCopyableTypeAttribute>(modifier))
+ subBuilder->addNonCopyableTypeDecoration(irAggType);
+ }
return LoweredValInfo::simple(finishOuterGenerics(subBuilder, irAggType, outerGeneric));
}
@@ -8779,6 +8783,10 @@ struct DeclLoweringVisitor : DeclVisitor<DeclLoweringVisitor, LoweredValInfo>
{
getBuilder()->addSimpleDecoration<IRReadNoneDecoration>(irFunc);
}
+ else if (as<NoSideEffectAttribute>(modifier))
+ {
+ getBuilder()->addSimpleDecoration<IRNoSideEffectDecoration>(irFunc);
+ }
else if (as<EarlyDepthStencilAttribute>(modifier))
{
getBuilder()->addSimpleDecoration<IREarlyDepthStencilDecoration>(irFunc);