Lines Matching +full:touch +full:- +full:hold +full:- +full:ms

1 //===--- CGStmt.cpp - Emit LLVM Code from Statements ----------------------===//
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //===----------------------------------------------------------------------===//
11 //===----------------------------------------------------------------------===//
42 //===----------------------------------------------------------------------===//
44 //===----------------------------------------------------------------------===//
53 Loc = S->getBeginLoc(); in EmitStopPoint()
54 DI->EmitLocation(Builder, Loc); in EmitStopPoint()
82 // Otherwise, make a new block to hold the code. in EmitStmt()
98 switch (S->getStmtClass()) { in EmitStmt()
134 // point is always set. To maintain that, the call-emission code in EmitStmt()
145 if (incoming != outgoing && outgoing->use_empty()) { in EmitStmt()
146 outgoing->eraseFromParent(); in EmitStmt()
163 case Stmt::GCCAsmStmtClass: // Intentional fall-through. in EmitStmt()
173 EmitCapturedStmt(*CS, CS->getCapturedRegionKind()); in EmitStmt()
460 switch (S->getStmtClass()) { in EmitSimpleStmt()
499 /// EmitCompoundStmt - Emit a compound statement {..} node. If GetLast is true,
500 /// this captures the expression result of the last sub-statement and returns it
533 EmitLabel(LS->getDecl()); in EmitCompoundStmtWithoutScope()
534 ExprResult = LS->getSubStmt(); in EmitCompoundStmtWithoutScope()
538 ExprResult = AS->getSubStmt(); in EmitCompoundStmtWithoutScope()
547 QualType ExprTy = E->getType(); in EmitCompoundStmtWithoutScope()
567 llvm::BranchInst *BI = dyn_cast<llvm::BranchInst>(BB->getTerminator()); in SimplifyForwardingBlocks()
576 if (!BI || !BI->isUnconditional()) in SimplifyForwardingBlocks()
580 if (BI->getIterator() != BB->begin()) in SimplifyForwardingBlocks()
583 BB->replaceAllUsesWith(BI->getSuccessor(0)); in SimplifyForwardingBlocks()
584 BI->eraseFromParent(); in SimplifyForwardingBlocks()
585 BB->eraseFromParent(); in SimplifyForwardingBlocks()
594 if (IsFinished && BB->use_empty()) { in EmitBlock()
601 if (CurBB && CurBB->getParent()) in EmitBlock()
602 CurFn->insert(std::next(CurBB->getIterator()), BB); in EmitBlock()
604 CurFn->insert(CurFn->end(), BB); in EmitBlock()
610 // was a real block. If this was just a fall-through block after a in EmitBranch()
614 if (!CurBB || CurBB->getTerminator()) { in EmitBranch()
616 // terminated, don't touch it. in EmitBranch()
618 // Otherwise, create a fall-through branch. in EmitBranch()
627 for (llvm::User *u : block->users()) { in EmitBlockAfterUses()
629 CurFn->insert(std::next(insn->getParent()->getIterator()), block); in EmitBlockAfterUses()
636 CurFn->insert(CurFn->end(), block); in EmitBlockAfterUses()
647 Dest = JumpDest(createBasicBlock(D->getName()), in getJumpDestForLabel()
655 // normal cleanups. Jumps "in" to this label --- when permitted by in EmitLabel()
656 // the language --- may need to be routed around such cleanups. in EmitLabel()
658 CurLexicalScope->addLabel(D); in EmitLabel()
665 Dest = getJumpDestInCurrentScope(D->getName()); in EmitLabel()
668 // it from the branch-fixups list. in EmitLabel()
680 DI->setLocation(D->getLocation()); in EmitLabel()
681 DI->EmitLabel(D, Builder); in EmitLabel()
685 incrementProfileCounter(D->getStmt()); in EmitLabel()
699 JumpDest &dest = CGF.LabelMap.find(*i)->second; in rescopeLabels()
707 ParentScope->Labels.append(Labels.begin(), Labels.end()); in rescopeLabels()
715 // IsEHa - emit eha.scope.begin if it's a side entry of a scope in EmitLabelStmt()
729 switch (A->getKind()) { in EmitAttributedStmt()
744 musttail = cast<CallExpr>(R->getRetValue()->IgnoreParens()); in EmitAttributedStmt()
747 const Expr *Assumption = cast<CXXAssumeAttr>(A)->getAssumption(); in EmitAttributedStmt()
749 !Assumption->HasSideEffects(getContext())) { in EmitAttributedStmt()
790 cast<llvm::PHINode>(IndGotoBB->begin())->addIncoming(V, CurBB); in EmitIndirectGotoStmt()
809 LexicalScope ConditionScope(*this, S.getCond()->getSourceRange()); in EmitIfStmt()
854 // - we want to ignore the [[likely]] attribute if the branch is never in EmitIfStmt()
856 // - assuming the profile is poor, preserving the attribute may still be in EmitIfStmt()
870 // when one if-stmt is nested within another if-stmt so that all of the MC/DC in EmitIfStmt()
931 // can be constant-folded. in checkIfLoopMustProgress()
935 (ControllingExpression->EvaluateAsInt(Result, getContext()) && in checkIfLoopMustProgress()
941 // Loops with non-constant conditions must make progress in C11 and later. in checkIfLoopMustProgress()
949 // - continue execution of a trivial infinite loop ([stmt.iter.general]). in checkIfLoopMustProgress()
954 CurFn->removeFnAttr(llvm::Attribute::MustProgress); in checkIfLoopMustProgress()
965 // - while ( expression ) ;
966 // - while ( expression ) { }
967 // - do ; while ( expression ) ;
968 // - do { } while ( expression ) ;
969 // - for ( init-statement expression(opt); ) ;
970 // - for ( init-statement expression(opt); ) { }
980 return Compound->body_empty(); in hasEmptyLoopBody()
1022 bool EmitBoolCondBranch = !C || !C->isOne(); in EmitWhileStmt()
1051 CGM.getDiags().Report(A->getLocation(), in EmitWhileStmt()
1053 << A << A->getRange(); in EmitWhileStmt()
1146 bool EmitBoolCondBranch = !C || !C->isZero(); in EmitDoStmt()
1156 uint64_t BackedgeCount = getProfileCount(S.getBody()) - ParentCount; in EmitDoStmt()
1243 // If there are any cleanups between here and the loop-exit scope, in EmitForStmt()
1269 // Treat it as a non-zero constant. Don't even create a new block for the in EmitForStmt()
1304 // Emit the fall-through block. in EmitForStmt()
1345 // If there are any cleanups between here and the loop-exit scope, in EmitCXXForRangeStmt()
1401 // Emit the fall-through block. in EmitCXXForRangeStmt()
1442 auto calleeQualType = CE->getCallee()->getType(); in isSwiftAsyncCallee()
1444 if (calleeQualType->isFunctionPointerType() || in isSwiftAsyncCallee()
1445 calleeQualType->isFunctionReferenceType() || in isSwiftAsyncCallee()
1446 calleeQualType->isBlockPointerType() || in isSwiftAsyncCallee()
1447 calleeQualType->isMemberFunctionPointerType()) { in isSwiftAsyncCallee()
1448 calleeType = calleeQualType->getPointeeType()->castAs<FunctionType>(); in isSwiftAsyncCallee()
1452 if (auto methodDecl = CMCE->getMethodDecl()) { in isSwiftAsyncCallee()
1454 calleeType = methodDecl->getType()->castAs<FunctionType>(); in isSwiftAsyncCallee()
1461 return calleeType->getCallConv() == CallingConv::CC_SwiftAsync; in isSwiftAsyncCallee()
1464 /// EmitReturnStmt - Note that due to GCC extensions, this can have an operand
1466 /// non-void. Fun stuff :).
1471 new llvm::GlobalVariable(CGM.getModule(), SLoc->getType(), false, in EmitReturnStmt()
1473 SLocPtr->setUnnamedAddr(llvm::GlobalValue::UnnamedAddr::Global); in EmitReturnStmt()
1474 CGM.getSanitizerMetadata()->disableSanitizerForGlobal(SLocPtr); in EmitReturnStmt()
1493 // This permits a small, easily-implemented exception to our over-conservative in EmitReturnStmt()
1495 // non-trivial cleanups. in EmitReturnStmt()
1500 RV = EWC->getSubExpr(); in EmitReturnStmt()
1506 CurFnInfo->getASTCallingConvention() == CallingConv::CC_SwiftAsync) { in EmitReturnStmt()
1518 S.getNRVOCandidate()->isNRVOVariable() && in EmitReturnStmt()
1531 } else if (!ReturnValue.isValid() || (RV && RV->getType()->isVoidType())) { in EmitReturnStmt()
1539 } else if (FnRetTy->isReferenceType()) { in EmitReturnStmt()
1545 switch (getEvaluationKind(RV->getType())) { in EmitReturnStmt()
1548 if (CurFnInfo->getReturnInfo().getKind() == ABIArgInfo::Indirect) in EmitReturnStmt()
1549 EmitStoreOfScalar(Ret, MakeAddrLValue(ReturnValue, RV->getType()), in EmitReturnStmt()
1556 EmitComplexExprIntoLValue(RV, MakeAddrLValue(ReturnValue, RV->getType()), in EmitReturnStmt()
1571 if (!RV || RV->isEvaluatable(getContext())) in EmitReturnStmt()
1612 /// EmitCaseStmtRange - If case statement range is not too big then
1619 llvm::APSInt LHS = S.getLHS()->EvaluateKnownConstInt(getContext()); in EmitCaseStmtRange()
1620 llvm::APSInt RHS = S.getRHS()->EvaluateKnownConstInt(getContext()); in EmitCaseStmtRange()
1634 llvm::APInt Range = RHS - LHS; in EmitCaseStmtRange()
1647 SwitchWeights->push_back(Weight + (Rem ? 1 : 0)); in EmitCaseStmtRange()
1649 SwitchLikelihood->push_back(LH); in EmitCaseStmtRange()
1652 Rem--; in EmitCaseStmtRange()
1653 SwitchInsn->addCase(Builder.getInt(LHS), CaseDest); in EmitCaseStmtRange()
1669 CurFn->insert(CurFn->end(), CaseRangeBlock); in EmitCaseStmtRange()
1674 Builder.CreateSub(SwitchInsn->getCondition(), Builder.getInt(LHS)); in EmitCaseStmtRange()
1704 // when we've constant-folded the switch, are emitting the constant case, in EmitCaseStmt()
1719 Builder.getInt(S.getLHS()->EvaluateKnownConstInt(getContext())); in EmitCaseStmt()
1724 CE = dyn_cast<ConstantExpr>(ICE->getSubExpr()); in EmitCaseStmt()
1728 if (auto DE = dyn_cast<DeclRefExpr>(CE->getSubExpr())) in EmitCaseStmt()
1731 Dbg->EmitGlobalVariable(DE->getDecl(), in EmitCaseStmt()
1732 APValue(llvm::APSInt(CaseVal->getValue()))); in EmitCaseStmt()
1736 SwitchLikelihood->push_back(Stmt::getLikelihood(Attrs)); in EmitCaseStmt()
1749 SwitchWeights->push_back(getProfileCount(&S)); in EmitCaseStmt()
1750 SwitchInsn->addCase(CaseVal, Block.getBlock()); in EmitCaseStmt()
1765 SwitchWeights->push_back(getProfileCount(&S)); in EmitCaseStmt()
1766 SwitchInsn->addCase(CaseVal, CaseDest); in EmitCaseStmt()
1776 // sequential non-range case statements specially. in EmitCaseStmt()
1785 while (NextCase && NextCase->getRHS() == nullptr) { in EmitCaseStmt()
1788 Builder.getInt(CurCase->getLHS()->EvaluateKnownConstInt(getContext())); in EmitCaseStmt()
1791 SwitchWeights->push_back(getProfileCount(NextCase)); in EmitCaseStmt()
1797 // use a hard-coded value. in EmitCaseStmt()
1799 SwitchLikelihood->push_back(Stmt::LH_None); in EmitCaseStmt()
1801 SwitchInsn->addCase(CaseVal, CaseDest); in EmitCaseStmt()
1802 NextCase = dyn_cast<CaseStmt>(CurCase->getSubStmt()); in EmitCaseStmt()
1808 if (CurCase->getSubStmt()->getStmtClass() == Stmt::DefaultStmtClass) in EmitCaseStmt()
1811 // Normal default recursion for non-cases. in EmitCaseStmt()
1812 EmitStmt(CurCase->getSubStmt()); in EmitCaseStmt()
1819 // constant-folded the switch. in EmitDefaultStmt()
1825 llvm::BasicBlock *DefaultBlock = SwitchInsn->getDefaultDest(); in EmitDefaultStmt()
1826 assert(DefaultBlock->empty() && in EmitDefaultStmt()
1830 SwitchLikelihood->front() = Stmt::getLikelihood(Attrs); in EmitDefaultStmt()
1837 /// CollectStatementsForCase - Given the body of a 'switch' statement and a
1842 /// printf(...); <--
1843 /// ++i; <--
1853 /// If Case is non-null, then we are looking for the specified case, checking
1874 return CollectStatementsForCase(SC->getSubStmt(), nullptr, FoundCase, in CollectStatementsForCase()
1879 return CollectStatementsForCase(SC->getSubStmt(), Case, FoundCase, in CollectStatementsForCase()
1893 CompoundStmt::const_body_iterator I = CS->body_begin(), E = CS->body_end(); in CollectStatementsForCase()
1975 // (we'd lose their end-of-lifetime). in CollectStatementsForCase()
2012 /// FindCaseStatementsForValue - Find the case statement being jumped to and
2026 for (; Case; Case = Case->getNextSwitchCase()) { in FindCaseStatementsForValue()
2037 if (CS->getRHS()) return false; in FindCaseStatementsForValue()
2040 if (CS->getLHS()->EvaluateKnownConstInt(C) == ConstantCondValue) in FindCaseStatementsForValue()
2182 // Create basic block to hold stuff that comes after switch in EmitSwitchStmt()
2194 Case = Case->getNextSwitchCase()) { in EmitSwitchStmt()
2200 SwitchWeights->reserve(NumCases); in EmitSwitchStmt()
2203 SwitchWeights->push_back(DefaultCount); in EmitSwitchStmt()
2207 SwitchLikelihood->push_back(Stmt::LH_None); in EmitSwitchStmt()
2215 // All break statements jump to NextBlock. If BreakContinueStack is non-empty in EmitSwitchStmt()
2230 SwitchInsn->setDefaultDest(CaseRangeBlock); in EmitSwitchStmt()
2233 if (!DefaultBlock->getParent()) { in EmitSwitchStmt()
2241 DefaultBlock->replaceAllUsesWith(SwitchExit.getBlock()); in EmitSwitchStmt()
2257 auto *FD = dyn_cast_or_null<FunctionDecl>(Call->getCalleeDecl()); in EmitSwitchStmt()
2258 if (FD && FD->getBuiltinID() == Builtin::BI__builtin_unpredictable) { in EmitSwitchStmt()
2260 SwitchInsn->setMetadata(llvm::LLVMContext::MD_unpredictable, in EmitSwitchStmt()
2266 assert(SwitchWeights->size() == 1 + SwitchInsn->getNumCases() && in EmitSwitchStmt()
2269 if (SwitchWeights->size() > 1) in EmitSwitchStmt()
2270 SwitchInsn->setMetadata(llvm::LLVMContext::MD_prof, in EmitSwitchStmt()
2274 assert(SwitchLikelihood->size() == 1 + SwitchInsn->getNumCases() && in EmitSwitchStmt()
2280 SwitchInsn->setMetadata(llvm::LLVMContext::MD_prof, in EmitSwitchStmt()
2305 case '=': // Will see this and the following in mult-alt constraints. in SimplifyConstraint()
2341 /// AddVariableConstraints - Look at AsmExpr and if it is a variable declared
2352 const ValueDecl &Value = *AsmDeclRef->getDecl(); in AddVariableConstraints()
2356 if (Variable->getStorageClass() != SC_Register) in AddVariableConstraints()
2358 AsmLabelAttr *Attr = Variable->getAttr<AsmLabelAttr>(); in AddVariableConstraints()
2361 StringRef Register = Attr->getLabel(); in AddVariableConstraints()
2410 InputExpr->EvaluateAsRValue(EVResult, getContext(), true); in EmitAsmInput()
2413 if (EVResult.Val.toIntegralConstant(IntResult, InputExpr->getType(), in EmitAsmInput()
2419 if (InputExpr->EvaluateAsInt(Result, getContext())) in EmitAsmInput()
2425 if (CodeGenFunction::hasScalarEvaluationKind(InputExpr->getType())) in EmitAsmInput()
2427 if (InputExpr->getStmtClass() == Expr::CXXThisExprClass) in EmitAsmInput()
2429 InputExpr = InputExpr->IgnoreParenNoopCasts(getContext()); in EmitAsmInput()
2431 return EmitAsmInputLValue(Info, Dest, InputExpr->getType(), ConstraintStr, in EmitAsmInput()
2432 InputExpr->getExprLoc()); in EmitAsmInput()
2435 /// getAsmSrcLocInfo - Return the !srcloc metadata node to attach to an inline
2444 CGF.Int64Ty, Str->getBeginLoc().getRawEncoding()))); in getAsmSrcLocInfo()
2445 StringRef StrVal = Str->getString(); in getAsmSrcLocInfo()
2454 for (unsigned i = 0, e = StrVal.size() - 1; i != e; ++i) { in getAsmSrcLocInfo()
2456 SourceLocation LineLoc = Str->getLocationOfByte( in getAsmSrcLocInfo()
2499 getAsmSrcLocInfo(gccAsmStmt->getAsmString(), CGF)); in UpdateAsmCallInst()
2501 // At least put the line number on MS inline asm blobs. in UpdateAsmCallInst()
2554 llvm::Constant *Two = llvm::ConstantInt::get(Tmp->getType(), 2); in EmitAsmStores()
2567 if (TruncTy->isFloatingPointTy()) in EmitAsmStores()
2569 else if (TruncTy->isPointerTy() && Tmp->getType()->isIntegerTy()) { in EmitAsmStores()
2574 } else if (Tmp->getType()->isPointerTy() && TruncTy->isIntegerTy()) { in EmitAsmStores()
2576 CGM.getDataLayout().getTypeSizeInBits(Tmp->getType()); in EmitAsmStores()
2580 } else if (Tmp->getType()->isIntegerTy() && TruncTy->isIntegerTy()) { in EmitAsmStores()
2582 } else if (Tmp->getType()->isVectorTy() || TruncTy->isVectorTy()) { in EmitAsmStores()
2602 CGM.getDiags().Report(OutExpr->getExprLoc(), in EmitAsmStores()
2618 Asm = GCCAsm->getAsmString()->getString(); in EmitHipStdParUnsupportedAsm()
2620 auto &Ctx = CGF->CGM.getLLVMContext(); in EmitHipStdParUnsupportedAsm()
2624 {StrTy->getType()}, false); in EmitHipStdParUnsupportedAsm()
2625 auto UBF = CGF->CGM.getModule().getOrInsertFunction(Name, FnTy); in EmitHipStdParUnsupportedAsm()
2627 CGF->Builder.CreateCall(UBF, {StrTy}); in EmitHipStdParUnsupportedAsm()
2646 Name = GAS->getOutputName(i); in EmitAsmStmt()
2659 Name = GAS->getInputName(i); in EmitAsmStmt()
2698 // - it doesn't have any sideeffects in EmitAsmStmt()
2699 // - it doesn't clobber memory in EmitAsmStmt()
2700 // - it doesn't return a value by-reference in EmitAsmStmt()
2714 OutExpr = OutExpr->IgnoreParenNoopCasts(getContext()); in EmitAsmStmt()
2731 // by-value. If this is a memory result, return the value by-reference. in EmitAsmStmt()
2732 QualType QTy = OutExpr->getType(); in EmitAsmStmt()
2747 Ty->isAggregateType()); in EmitAsmStmt()
2769 QualType InputTy = S.getInputExpr(InputNo)->getType(); in EmitAsmStmt()
2770 QualType OutputType = OutExpr->getType(); in EmitAsmStmt()
2785 << OutExpr->getType() << OutputConstraint; in EmitAsmStmt()
2792 VT->getPrimitiveSizeInBits().getKnownMinValue()); in EmitAsmStmt()
2798 // Otherwise there will be a mis-match if the matrix is also an in EmitAsmStmt()
2799 // input-argument which is represented as vector. in EmitAsmStmt()
2800 if (isa<MatrixType>(OutExpr->getType().getCanonicalType())) in EmitAsmStmt()
2801 DestAddr = DestAddr.withElementType(ConvertType(OutExpr->getType())); in EmitAsmStmt()
2818 Info, Dest, InputExpr->getType(), InOutConstraints, in EmitAsmStmt()
2819 InputExpr->getExprLoc()); in EmitAsmStmt()
2823 Arg->getType())) in EmitAsmStmt()
2827 if (auto *VT = dyn_cast<llvm::VectorType>(Arg->getType())) in EmitAsmStmt()
2830 VT->getPrimitiveSizeInBits().getKnownMinValue()); in EmitAsmStmt()
2837 InOutArgTypes.push_back(Arg->getType()); in EmitAsmStmt()
2843 // If this is a Microsoft-style asm blob, store the return registers (EAX:EDX) in EmitAsmStmt()
2846 const ABIArgInfo &RetAI = CurFnInfo->getReturnInfo(); in EmitAsmStmt()
2874 InputConstraint, *InputExpr->IgnoreParenNoopCasts(getContext()), in EmitAsmStmt()
2889 QualType OutputType = S.getOutputExpr(Output)->getType(); in EmitAsmStmt()
2890 QualType InputTy = InputExpr->getType(); in EmitAsmStmt()
2895 if (isa<llvm::PointerType>(Arg->getType())) in EmitAsmStmt()
2902 else if (OutputTy->isFloatingPointTy()) in EmitAsmStmt()
2910 Arg->getType())) in EmitAsmStmt()
2914 << InputExpr->getType() << InputConstraint; in EmitAsmStmt()
2917 if (auto *VT = dyn_cast<llvm::VectorType>(Arg->getType())) in EmitAsmStmt()
2920 VT->getPrimitiveSizeInBits().getKnownMinValue()); in EmitAsmStmt()
2922 ArgTypes.push_back(Arg->getType()); in EmitAsmStmt()
2941 IsGCCAsmGoto = GS->isAsmGoto(); in EmitAsmStmt()
2943 for (const auto *E : GS->labels()) { in EmitAsmStmt()
2944 JumpDest Dest = getJumpDestForLabel(E->getLabel()); in EmitAsmStmt()
3048 for (llvm::BasicBlock *Dest : CBR->getIndirectDests()) { in EmitAsmStmt()
3049 llvm::Twine SynthName = Dest->getName() + ".split"; in EmitAsmStmt()
3065 CBR->setIndirectDest(i++, SynthBB); in EmitAsmStmt()
3089 for (llvm::BasicBlock *Succ : CBR->getIndirectDests()) { in EmitAsmStmt()
3091 Builder.SetInsertPoint(Succ, --(Succ->end())); in EmitAsmStmt()
3107 RecordDecl::field_iterator CurField = RD->field_begin(); in InitCapturedStruct()
3112 if (CurField->hasCapturedVLAType()) { in InitCapturedStruct()
3113 EmitLambdaVLACapture(CurField->getCapturedVLAType(), LV); in InitCapturedStruct()
3153 assert(CD->hasBody() && "missing CapturedDecl body"); in GenerateCapturedStmtFunction()
3158 Args.append(CD->param_begin(), CD->param_end()); in GenerateCapturedStmtFunction()
3167 CapturedStmtInfo->getHelperName(), &CGM.getModule()); in GenerateCapturedStmtFunction()
3169 if (CD->isNothrow()) in GenerateCapturedStmtFunction()
3170 F->addFnAttr(llvm::Attribute::NoUnwind); in GenerateCapturedStmtFunction()
3173 StartFunction(CD, Ctx.VoidTy, F, FuncInfo, Args, CD->getLocation(), in GenerateCapturedStmtFunction()
3174 CD->getBody()->getBeginLoc()); in GenerateCapturedStmtFunction()
3176 Address DeclPtr = GetAddrOfLocalVar(CD->getContextParam()); in GenerateCapturedStmtFunction()
3177 CapturedStmtInfo->setContextValue(Builder.CreateLoad(DeclPtr)); in GenerateCapturedStmtFunction()
3179 // Initialize variable-length arrays. in GenerateCapturedStmtFunction()
3181 CapturedStmtInfo->getContextValue(), Ctx.getTagDeclType(RD)); in GenerateCapturedStmtFunction()
3182 for (auto *FD : RD->fields()) { in GenerateCapturedStmtFunction()
3183 if (FD->hasCapturedVLAType()) { in GenerateCapturedStmtFunction()
3187 auto VAT = FD->getCapturedVLAType(); in GenerateCapturedStmtFunction()
3188 VLASizeMap[VAT->getSizeExpr()] = ExprArg; in GenerateCapturedStmtFunction()
3193 if (CapturedStmtInfo->isCXXThisExprCaptured()) { in GenerateCapturedStmtFunction()
3194 FieldDecl *FD = CapturedStmtInfo->getThisFieldDecl(); in GenerateCapturedStmtFunction()
3200 CapturedStmtInfo->EmitBody(*this, CD->getBody()); in GenerateCapturedStmtFunction()
3201 FinishFunction(CD->getBodyRBrace()); in GenerateCapturedStmtFunction()
3212 if (II && llvm::isConvergenceControlIntrinsic(II->getIntrinsicID())) in getConvergenceToken()
3227 Input->replaceAllUsesWith(Output); in addConvergenceControlToken()
3228 Input->eraseFromParent(); in addConvergenceControlToken()
3236 if (BB->empty()) in emitConvergenceLoopToken()
3239 Builder.SetInsertPoint(BB->getFirstInsertionPt()); in emitConvergenceLoopToken()
3251 llvm::BasicBlock *BB = &F->getEntryBlock(); in getOrEmitConvergenceEntryToken()
3258 F->setConvergent(); in getOrEmitConvergenceEntryToken()
3261 Builder.SetInsertPoint(&BB->front()); in getOrEmitConvergenceEntryToken()