diff options
Diffstat (limited to 'source/slang/slang-ir.cpp')
| -rw-r--r-- | source/slang/slang-ir.cpp | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/source/slang/slang-ir.cpp b/source/slang/slang-ir.cpp index 845232ae6..e72ba8c9f 100644 --- a/source/slang/slang-ir.cpp +++ b/source/slang/slang-ir.cpp @@ -4764,6 +4764,32 @@ namespace Slang return inst; } + IRInst* IRBuilder::emitLoop( + IRBlock* target, + IRBlock* breakBlock, + IRBlock* continueBlock, + Int argCount, + IRInst*const* args) + { + List<IRInst*> argList; + + argList.add(target); + argList.add(breakBlock); + argList.add(continueBlock); + + for (Count ii = 0; ii < argCount; ii++) + argList.add(args[ii]); + + auto inst = createInst<IRLoop>( + this, + kIROp_loop, + nullptr, + argList.getCount(), + argList.getBuffer()); + addInst(inst); + return inst; + } + IRInst* IRBuilder::emitBranch( IRInst* val, IRBlock* trueBlock, |
