| 37 | } |
| 38 | |
| 39 | Pass::Status LICMPass::ProcessFunction(Function* f) { |
| 40 | Status status = Status::SuccessWithoutChange; |
| 41 | LoopDescriptor* loop_descriptor = context()->GetLoopDescriptor(f); |
| 42 | |
| 43 | // Process each loop in the function |
| 44 | for (auto it = loop_descriptor->begin(); |
| 45 | it != loop_descriptor->end() && status != Status::Failure; ++it) { |
| 46 | Loop& loop = *it; |
| 47 | // Ignore nested loops, as we will process them in order in ProcessLoop |
| 48 | if (loop.IsNested()) { |
| 49 | continue; |
| 50 | } |
| 51 | status = CombineStatus(status, ProcessLoop(&loop, f)); |
| 52 | } |
| 53 | return status; |
| 54 | } |
| 55 | |
| 56 | Pass::Status LICMPass::ProcessLoop(Loop* loop, Function* f) { |
| 57 | Status status = Status::SuccessWithoutChange; |
nothing calls this directly
no test coverage detected