summaryrefslogtreecommitdiff
path: root/source/slang/slang-ir-single-return.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/slang/slang-ir-single-return.cpp')
-rw-r--r--source/slang/slang-ir-single-return.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/source/slang/slang-ir-single-return.cpp b/source/slang/slang-ir-single-return.cpp
index f76e35040..30e933133 100644
--- a/source/slang/slang-ir-single-return.cpp
+++ b/source/slang/slang-ir-single-return.cpp
@@ -91,4 +91,20 @@ void convertFuncToSingleReturnForm(IRModule* irModule, IRGlobalValueWithCode* fu
context.processFunc(func);
}
+bool isSingleReturnFunc(IRGlobalValueWithCode* func)
+{
+ int returnCount = 0;
+ for (auto block : func->getBlocks())
+ {
+ for (auto inst : block->getChildren())
+ {
+ if (inst->getOp() == kIROp_Return)
+ {
+ returnCount++;
+ }
+ }
+ }
+ return returnCount <= 1;
+}
+
} // namespace Slang