Lines Matching defs:LoopHelper

14071                             OMPLoopBasedDirective::HelperExprs &LoopHelper,
14096 if (auto *PI = cast_or_null<DeclStmt>(LoopHelper.PreInits)) {
14102 for (Expr *CounterRef : LoopHelper.Counters) {
14176 OMPLoopBasedDirective::HelperExprs &LoopHelper = LoopHelpers[I];
14178 assert(LoopHelper.Counters.size() == 1 &&
14180 auto *OrigCntVar = cast<DeclRefExpr>(LoopHelper.Counters.front());
14182 DeclRefExpr *IterVarRef = cast<DeclRefExpr>(LoopHelper.IterationVarRef);
14208 addLoopPreInits(Context, LoopHelper, LoopStmts[I], OriginalInits[I],
14255 OMPLoopBasedDirective::HelperExprs &LoopHelper = LoopHelpers[I];
14256 Expr *NumIterations = LoopHelper.NumIterations;
14257 auto *OrigCntVar = cast<DeclRefExpr>(LoopHelper.Counters[0]);
14289 SemaRef.BuildBinOp(CurScope, LoopHelper.Cond->getExprLoc(), BO_Add,
14294 SemaRef.BuildBinOp(CurScope, LoopHelper.Cond->getExprLoc(), BO_LT,
14299 LoopHelper.Cond->getBeginLoc(), LoopHelper.Cond->getEndLoc(),
14304 SemaRef.BuildBinOp(CurScope, LoopHelper.Cond->getExprLoc(), BO_LT,
14311 CurScope, LoopHelper.Inc->getExprLoc(), UO_PreInc, MakeTileIVRef());
14332 BodyParts.append(LoopHelper.Updates.begin(), LoopHelper.Updates.end());
14340 IncrStmt.get(), Inner, LoopHelper.Init->getBeginLoc(),
14341 LoopHelper.Init->getBeginLoc(), LoopHelper.Inc->getEndLoc());
14346 auto &LoopHelper = LoopHelpers[I];
14347 Expr *NumIterations = LoopHelper.NumIterations;
14348 DeclRefExpr *OrigCntVar = cast<DeclRefExpr>(LoopHelper.Counters[0]);
14363 SemaRef.ActOnIntegerConstant(LoopHelper.Init->getExprLoc(), 0).get(),
14374 SemaRef.BuildBinOp(CurScope, LoopHelper.Cond->getExprLoc(), BO_LT,
14381 SemaRef.BuildBinOp(CurScope, LoopHelper.Inc->getExprLoc(), BO_AddAssign,
14388 IncrStmt.get(), Inner, LoopHelper.Init->getBeginLoc(),
14389 LoopHelper.Init->getBeginLoc(), LoopHelper.Inc->getEndLoc());
14438 OMPLoopBasedDirective::HelperExprs &LoopHelper = LoopHelpers.front();
14442 LoopHelper.NumIterations, OMPC_full, /*StrictlyPositive=*/false,
14464 // directives applied: \code OriginalInits; LoopHelper.PreInits;
14465 // LoopHelper.Counters;
14466 // for (; IV < LoopHelper.NumIterations; ++IV) {
14467 // LoopHelper.Updates;
14471 // where IV is a variable declared and initialized to 0 in LoopHelper.PreInits
14472 // and referenced by LoopHelper.IterationVarRef.
14477 // LoopHelper.PreInits; > NewPreInits
14478 // LoopHelper.Counters; /
14479 // for (auto UIV = 0; UIV < LoopHelper.NumIterations; UIV+=Factor) {
14481 // for (IV = UIV; IV < UIV + Factor && UIV < LoopHelper.NumIterations; ++IV)
14483 // LoopHelper.Updates;
14489 // as the original LoopHelper.IterationVarRef because LoopHelper.Updates
14507 addLoopPreInits(Context, LoopHelper, LoopStmt, OriginalInits[0], PreInits);
14509 auto *IterationVarRef = cast<DeclRefExpr>(LoopHelper.IterationVarRef);
14511 assert(LoopHelper.Counters.size() == 1 &&
14513 auto *OrigVar = cast<DeclRefExpr>(LoopHelper.Counters.front());
14562 auto MakeNumIterations = [&CopyTransformer, &LoopHelper]() -> Expr * {
14564 CopyTransformer.TransformExpr(LoopHelper.NumIterations));
14584 SemaRef.BuildBinOp(CurScope, LoopHelper.Cond->getExprLoc(), BO_Add,
14589 SemaRef.BuildBinOp(CurScope, LoopHelper.Cond->getExprLoc(), BO_LT,
14594 SemaRef.BuildBinOp(CurScope, LoopHelper.Cond->getExprLoc(), BO_LT,
14599 SemaRef.BuildBinOp(CurScope, LoopHelper.Cond->getExprLoc(), BO_LAnd,
14606 CurScope, LoopHelper.Inc->getExprLoc(), UO_PreInc, MakeInnerRef());
14612 InnerBodyStmts.append(LoopHelper.Updates.begin(), LoopHelper.Updates.end());
14621 InnerIncr.get(), InnerBody, LoopHelper.Init->getBeginLoc(),
14622 LoopHelper.Init->getBeginLoc(), LoopHelper.Inc->getEndLoc());
14645 SemaRef.ActOnIntegerConstant(LoopHelper.Init->getExprLoc(), 0).get(),
14654 SemaRef.BuildBinOp(CurScope, LoopHelper.Cond->getExprLoc(), BO_LT,
14661 SemaRef.BuildBinOp(CurScope, LoopHelper.Inc->getExprLoc(), BO_AddAssign,
14669 OuterIncr.get(), InnerUnrolled, LoopHelper.Init->getBeginLoc(),
14670 LoopHelper.Init->getBeginLoc(), LoopHelper.Inc->getEndLoc());
14706 OMPLoopBasedDirective::HelperExprs &LoopHelper = LoopHelpers.front();
14714 addLoopPreInits(Context, LoopHelper, LoopStmt, OriginalInits[0], PreInits);
14716 auto *IterationVarRef = cast<DeclRefExpr>(LoopHelper.IterationVarRef);
14719 auto *OrigVar = cast<DeclRefExpr>(LoopHelper.Counters.front());
14738 // LoopHelper.Updates will read the logical iteration number from
14739 // LoopHelper.IterationVarRef, compute the value of the user loop counter of
14741 // variable. We cannot directly use LoopHelper.IterationVarRef as the
14756 // number of the reversed loop, then let LoopHelper.Updates compute the user's
14761 // i = (.reversed.iv + 0) * 1; // LoopHelper.Updates
14770 auto MakeNumIterations = [&CopyTransformer, &LoopHelper]() -> Expr * {
14772 CopyTransformer.TransformExpr(LoopHelper.NumIterations));
14806 SemaRef.BuildBinOp(CurScope, LoopHelper.Cond->getExprLoc(), BO_LT,
14815 ExprResult Incr = SemaRef.BuildUnaryOp(CurScope, LoopHelper.Inc->getExprLoc(),
14843 BodyStmts.reserve(LoopHelper.Updates.size() + 2 +
14846 llvm::append_range(BodyStmts, LoopHelper.Updates);
14857 ReversedBody, LoopHelper.Init->getBeginLoc(),
14858 LoopHelper.Init->getBeginLoc(), LoopHelper.Inc->getEndLoc());
14908 OMPLoopBasedDirective::HelperExprs &LoopHelper = LoopHelpers[I];
14910 assert(LoopHelper.Counters.size() == 1 &&
14912 auto *OrigCntVar = cast<DeclRefExpr>(LoopHelper.Counters.front());
14915 addLoopPreInits(Context, LoopHelper, LoopStmts[I], OriginalInits[I],