| 40 | } |
| 41 | |
| 42 | bool checkFalse(const LoopAnalysisReport &Report, IRAccessHelper &IRAccess, |
| 43 | std::string FuncName, unsigned ArgIndex, |
| 44 | std::vector<int> Indices = {}) { |
| 45 | const auto *A = getArg(IRAccess, FuncName, ArgIndex); |
| 46 | if (!A) |
| 47 | return false; |
| 48 | |
| 49 | if (!Report.has(*A, Indices)) |
| 50 | return false; |
| 51 | |
| 52 | return !Report.get(*A, Indices).LoopExit; |
| 53 | } |
| 54 | }; |
| 55 | |
| 56 | TEST_F(TestLoopAnalyzer, AnalyzeP) { |