diff options
Diffstat (limited to 'source/slang/ir-clone.cpp')
| -rw-r--r-- | source/slang/ir-clone.cpp | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/source/slang/ir-clone.cpp b/source/slang/ir-clone.cpp index df9cf2bf6..b648efec6 100644 --- a/source/slang/ir-clone.cpp +++ b/source/slang/ir-clone.cpp @@ -239,6 +239,25 @@ IRInst* cloneInst( return newInst; } +void cloneDecoration( + IRDecoration* oldDecoration, + IRInst* newParent) +{ + SharedIRBuilder sharedBuilder; + sharedBuilder.module = newParent->getModule(); + + IRBuilder builder; + builder.sharedBuilder = &sharedBuilder; + + if(auto first = newParent->getFirstDecorationOrChild()) + builder.setInsertBefore(first); + else + builder.setInsertInto(newParent); + + IRCloneEnv env; + cloneInst(&env, &builder, oldDecoration); +} + bool IRSimpleSpecializationKey::operator==(IRSimpleSpecializationKey const& other) const { auto valCount = vals.Count(); |
