Lines Matching defs:LoopStmt
32 const Stmt *LoopStmt;
36 : K(InK), LoopStmt(S), LCtx(L), maxStep(N) {}
49 const Stmt *getLoopStmt() const { return LoopStmt; }
52 return K == X.K && LoopStmt == X.LoopStmt;
56 ID.AddPointer(LoopStmt);
78 ProgramStateRef processLoopEnd(const Stmt *LoopStmt, ProgramStateRef State) {
80 if (!LS.isEmpty() && LS.getHead().getLoopStmt() == LoopStmt)
268 static bool shouldCompletelyUnroll(const Stmt *LoopStmt, ASTContext &ASTCtx,
271 if (!isLoopStmt(LoopStmt))
276 auto Matches = match(forLoopMatcher(), *LoopStmt, ASTCtx);
300 static bool madeNewBranch(ExplodedNode *N, const Stmt *LoopStmt) {
310 if (S == LoopStmt)
320 ProgramStateRef updateLoopStack(const Stmt *LoopStmt, ASTContext &ASTCtx,
325 if (!isLoopStmt(LoopStmt))
329 if (!LS.isEmpty() && LoopStmt == LS.getHead().getLoopStmt() &&
331 if (LS.getHead().isUnrolled() && madeNewBranch(Pred, LoopStmt)) {
334 LoopState::getNormal(LoopStmt, LCtx, maxVisitOnPath));
339 if (!shouldCompletelyUnroll(LoopStmt, ASTCtx, Pred, maxStep)) {
341 LoopState::getNormal(LoopStmt, LCtx, maxVisitOnPath));
350 LoopState::getNormal(LoopStmt, LCtx, maxVisitOnPath));
353 LoopState::getUnrolled(LoopStmt, LCtx, innerMaxStep));