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