diff options
Diffstat (limited to 'source/slang/slang-ir-single-return.cpp')
| -rw-r--r-- | source/slang/slang-ir-single-return.cpp | 16 |
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 |
