| 316 | } |
| 317 | |
| 318 | void Loop::SetPreHeaderBlock(BasicBlock* preheader) { |
| 319 | if (preheader) { |
| 320 | assert(!IsInsideLoop(preheader) && "The preheader block is in the loop"); |
| 321 | assert(preheader->tail()->opcode() == SpvOpBranch && |
| 322 | "The preheader block does not unconditionally branch to the header " |
| 323 | "block"); |
| 324 | assert(preheader->tail()->GetSingleWordOperand(0) == |
| 325 | GetHeaderBlock()->id() && |
| 326 | "The preheader block does not unconditionally branch to the header " |
| 327 | "block"); |
| 328 | } |
| 329 | loop_preheader_ = preheader; |
| 330 | } |
| 331 | |
| 332 | BasicBlock* Loop::FindLatchBlock() { |
| 333 | CFG* cfg = context_->cfg(); |
no test coverage detected