reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
2317 const auto *IVExpr = cast<DeclRefExpr>(S.getIterationVariable()); 2324 if (const auto *LIExpr = dyn_cast<DeclRefExpr>(S.getLastIteration())) { 2327 EmitIgnoredExpr(S.getCalcLastIteration()); 2335 OMPLoopScope PreInitScope(*this, S); 2341 if (ConstantFoldsToSimpleInteger(S.getPreCond(), CondConstant)) { 2347 emitPreCond(*this, S, S.getPreCond(), ThenBlock, ContBlock, 2347 emitPreCond(*this, S, S.getPreCond(), ThenBlock, ContBlock, 2348 getProfileCount(&S)); 2350 incrementProfileCounter(&S); 2355 if (const auto *OrderedClause = S.getSingleClause<OMPOrderedClause>()) { 2357 RT.emitDoacrossInit(*this, S, OrderedClause->getLoopNumIterations()); 2363 emitAlignedClause(*this, S); 2364 bool HasLinears = EmitOMPLinearClauseInit(S); 2367 std::pair<LValue, LValue> Bounds = CodeGenLoopBounds(*this, S); 2371 EmitOMPHelperVar(*this, cast<DeclRefExpr>(S.getStrideVariable())); 2373 EmitOMPHelperVar(*this, cast<DeclRefExpr>(S.getIsLastIterVariable())); 2378 if (EmitOMPFirstprivateClause(S, LoopScope) || HasLinears) { 2383 *this, S.getBeginLoc(), OMPD_unknown, /*EmitChecks=*/false, 2386 EmitOMPPrivateClause(S, LoopScope); 2387 HasLastprivateClause = EmitOMPLastprivateClauseInit(S, LoopScope); 2388 EmitOMPReductionClauseInit(S, LoopScope); 2389 EmitOMPPrivateLoopCounters(S, LoopScope); 2390 EmitOMPLinearClause(S, LoopScope); 2392 if (isOpenMPTargetExecutionDirective(S.getDirectiveKind())) 2393 CGM.getOpenMPRuntime().adjustTargetSpecificDataForLambdas(*this, S); 2398 if (const auto *C = S.getSingleClause<OMPScheduleClause>()) { 2406 *this, S, ScheduleKind.Schedule, ChunkExpr); 2413 S.getIterationVariable()->getType(), 2414 S.getBeginLoc()); 2429 isOpenMPLoopBoundSharingDirective(S.getDirectiveKind()); 2434 if (isOpenMPSimdDirective(S.getDirectiveKind())) 2435 EmitOMPSimdInit(S, /*IsMonotonic=*/true); 2445 RT.emitForStaticInit(*this, S.getBeginLoc(), S.getDirectiveKind(), 2445 RT.emitForStaticInit(*this, S.getBeginLoc(), S.getDirectiveKind(), 2451 EmitIgnoredExpr(S.getEnsureUpperBound()); 2453 EmitIgnoredExpr(S.getInit()); 2467 EmitOMPInnerLoop(S, LoopScope.requiresCleanups(), 2468 StaticChunkedOne ? S.getCombinedParForInDistCond() : S.getCond(), 2468 StaticChunkedOne ? S.getCombinedParForInDistCond() : S.getCond(), 2469 StaticChunkedOne ? S.getDistInc() : S.getInc(), 2469 StaticChunkedOne ? S.getDistInc() : S.getInc(), 2470 [&S, LoopExit](CodeGenFunction &CGF) { 2471 CGF.EmitOMPLoopBody(S, LoopExit); 2472 CGF.EmitStopPoint(&S); 2477 auto &&CodeGen = [&S](CodeGenFunction &CGF) { 2478 CGF.CGM.getOpenMPRuntime().emitForStaticFinish(CGF, S.getEndLoc(), 2479 S.getDirectiveKind()); 2481 OMPCancelStack.emitExit(*this, S.getDirectiveKind(), CodeGen); 2493 EmitOMPForOuterLoop(ScheduleKind, IsMonotonic, S, LoopScope, Ordered, 2496 if (isOpenMPSimdDirective(S.getDirectiveKind())) { 2497 EmitOMPSimdFinal(S, [IL, &S](CodeGenFunction &CGF) { 2497 EmitOMPSimdFinal(S, [IL, &S](CodeGenFunction &CGF) { 2499 CGF.EmitLoadOfScalar(IL, S.getBeginLoc())); 2503 S, /*ReductionKind=*/isOpenMPSimdDirective(S.getDirectiveKind()) 2503 S, /*ReductionKind=*/isOpenMPSimdDirective(S.getDirectiveKind()) 2508 *this, S, [IL, &S](CodeGenFunction &CGF) { 2508 *this, S, [IL, &S](CodeGenFunction &CGF) { 2510 CGF.EmitLoadOfScalar(IL, S.getBeginLoc())); 2515 S, isOpenMPSimdDirective(S.getDirectiveKind()), 2515 S, isOpenMPSimdDirective(S.getDirectiveKind()), 2516 Builder.CreateIsNotNull(EmitLoadOfScalar(IL, S.getBeginLoc()))); 2518 EmitOMPLinearClauseFinal(S, [IL, &S](CodeGenFunction &CGF) { 2518 EmitOMPLinearClauseFinal(S, [IL, &S](CodeGenFunction &CGF) { 2520 CGF.EmitLoadOfScalar(IL, S.getBeginLoc()));