| 81 | } // namespace |
| 82 | |
| 83 | bool LoopFusion::UsedInContinueOrConditionBlock(Instruction* phi_instruction, |
| 84 | Loop* loop) { |
| 85 | auto condition_block = loop->FindConditionBlock()->id(); |
| 86 | auto continue_block = loop->GetContinueBlock()->id(); |
| 87 | auto not_used = context_->get_def_use_mgr()->WhileEachUser( |
| 88 | phi_instruction, |
| 89 | [this, condition_block, continue_block](Instruction* instruction) { |
| 90 | auto block_id = context_->get_instr_block(instruction)->id(); |
| 91 | return block_id != condition_block && block_id != continue_block; |
| 92 | }); |
| 93 | |
| 94 | return !not_used; |
| 95 | } |
| 96 | |
| 97 | void LoopFusion::RemoveIfNotUsedContinueOrConditionBlock( |
| 98 | std::vector<Instruction*>* instructions, Loop* loop) { |
nothing calls this directly
no test coverage detected