Lines Matching refs:VD
30 DeclScope(Compiler<Emitter> *Ctx, const ValueDecl *VD) in DeclScope() argument
31 : LocalScope<Emitter>(Ctx, VD), Scope(Ctx->P, VD), in DeclScope()
34 Ctx->GlobalDecl = Context::shouldBeGloballyIndexed(VD); in DeclScope()
35 Ctx->InitializingDecl = VD; in DeclScope()
36 Ctx->InitStack.push_back(InitLink::Decl(VD)); in DeclScope()
1741 if (const auto *VD = dyn_cast<VarDecl>(Member)) { in VisitMemberExpr() local
1745 if (auto GlobalIndex = P.getGlobal(VD)) in VisitMemberExpr()
3466 if (const auto *VD = in allocateLocalPrimitive() local
3468 assert(!P.getGlobal(VD)); in allocateLocalPrimitive()
3469 assert(!Locals.contains(VD)); in allocateLocalPrimitive()
3470 (void)VD; in allocateLocalPrimitive()
3479 if (auto *VD = dyn_cast_if_present<ValueDecl>(Src.dyn_cast<const Decl *>())) in allocateLocalPrimitive() local
3480 Locals.insert({VD, Local}); in allocateLocalPrimitive()
3489 if ([[maybe_unused]] const auto *VD = in allocateLocal() local
3491 assert(!P.getGlobal(VD)); in allocateLocal()
3492 assert(!Locals.contains(VD)); in allocateLocal()
3499 if (auto *VD = dyn_cast_if_present<ValueDecl>(Src.dyn_cast<const Decl *>())) { in allocateLocal() local
3500 Key = VD; in allocateLocal()
3501 Ty = VD->getType(); in allocateLocal()
3503 if (const auto *VarD = dyn_cast<VarDecl>(VD)) in allocateLocal()
3589 VarCreationState Compiler<Emitter>::visitDecl(const VarDecl *VD) { in visitDecl() argument
3591 auto R = this->visitVarDecl(VD, /*Toplevel=*/true); in visitDecl()
3599 if (!R && Context::shouldBeGloballyIndexed(VD)) { in visitDecl()
3600 if (auto GlobalIndex = P.getGlobal(VD)) { in visitDecl()
3617 bool Compiler<Emitter>::visitDeclAndReturn(const VarDecl *VD, in visitDeclAndReturn() argument
3619 std::optional<PrimType> VarT = classify(VD->getType()); in visitDeclAndReturn()
3624 DeclScope<Emitter> LS(this, VD); in visitDeclAndReturn()
3625 if (!this->visit(VD->getAnyInitializer())) in visitDeclAndReturn()
3627 return this->emitRet(VarT.value_or(PT_Ptr), VD) && LS.destroyLocals(); in visitDeclAndReturn()
3630 LocalScope<Emitter> VDScope(this, VD); in visitDeclAndReturn()
3631 if (!this->visitVarDecl(VD, /*Toplevel=*/true)) in visitDeclAndReturn()
3634 if (Context::shouldBeGloballyIndexed(VD)) { in visitDeclAndReturn()
3635 auto GlobalIndex = P.getGlobal(VD); in visitDeclAndReturn()
3638 if (!this->emitGetGlobalUnchecked(*VarT, *GlobalIndex, VD)) in visitDeclAndReturn()
3641 if (!this->emitGetPtrGlobal(*GlobalIndex, VD)) in visitDeclAndReturn()
3645 auto Local = Locals.find(VD); in visitDeclAndReturn()
3648 if (!this->emitGetLocal(*VarT, Local->second.Offset, VD)) in visitDeclAndReturn()
3651 if (!this->emitGetPtrLocal(Local->second.Offset, VD)) in visitDeclAndReturn()
3657 if (!this->emitRet(VarT.value_or(PT_Ptr), VD)) { in visitDeclAndReturn()
3660 if (Context::shouldBeGloballyIndexed(VD)) { in visitDeclAndReturn()
3661 auto GlobalIndex = P.getGlobal(VD); in visitDeclAndReturn()
3677 VarCreationState Compiler<Emitter>::visitVarDecl(const VarDecl *VD, bool Toplevel) { in visitVarDecl() argument
3679 if (VD->getType().isNull()) in visitVarDecl()
3687 const Expr *Init = VD->getInit(); in visitVarDecl()
3688 std::optional<PrimType> VarT = classify(VD->getType()); in visitVarDecl()
3690 if (Context::shouldBeGloballyIndexed(VD)) { in visitVarDecl()
3692 bool NeedsOp = !Toplevel && VD->isLocalVarDecl() && VD->isStaticLocal(); in visitVarDecl()
3693 return !NeedsOp || this->emitCheckDecl(VD, VD); in visitVarDecl()
3698 DeclScope<Emitter> LocalScope(this, VD); in visitVarDecl()
3704 return checkDecl() && this->emitInitGlobal(*VarT, GlobalIndex, VD); in visitVarDecl()
3723 if (std::optional<unsigned> GlobalIndex = P.getGlobal(VD)) { in visitVarDecl()
3732 std::optional<unsigned> GlobalIndex = P.createGlobal(VD, Init); in visitVarDecl()
3739 InitLinkScope<Emitter> ILS(this, InitLink::Decl(VD)); in visitVarDecl()
3743 VD, *VarT, VD->getType().isConstQualified()); in visitVarDecl()
3751 return this->emitSetLocal(*VarT, Offset, VD) && Scope.destroyLocals(); in visitVarDecl()
3755 return this->emitSetLocal(*VarT, Offset, VD); in visitVarDecl()
3759 if (std::optional<unsigned> Offset = this->allocateLocal(VD)) { in visitVarDecl()
3797 else if (const auto *VD = Base.dyn_cast<const ValueDecl *>()) { in visitAPValue() local
3798 return this->visitDeclRef(VD, E); in visitAPValue()
4249 const auto *VD = dyn_cast<VarDecl>(D); in visitDeclStmt() local
4250 if (!VD) in visitDeclStmt()
4252 if (!this->visitVarDecl(VD)) in visitDeclStmt()
5199 auto revisit = [&](const VarDecl *VD) -> bool { in visitDeclRef() argument
5200 auto VarState = this->visitDecl(VD); in visitDeclRef()
5220 if (const auto *VD = dyn_cast<VarDecl>(D); VD && VD->isInitCapture()) in visitDeclRef() local
5221 return revisit(VD); in visitDeclRef()
5228 if (const auto *VD = dyn_cast<VarDecl>(D)) { in visitDeclRef() local
5238 if ((VD->hasGlobalStorage() || VD->isLocalVarDecl() || in visitDeclRef()
5239 VD->isStaticDataMember()) && in visitDeclRef()
5240 typeShouldBeVisited(VD->getType())) in visitDeclRef()
5241 return revisit(VD); in visitDeclRef()
5244 if (const auto *VD = dyn_cast<VarDecl>(D); in visitDeclRef() local
5245 VD && VD->getAnyInitializer() && in visitDeclRef()
5246 VD->getType().isConstant(Ctx.getASTContext()) && !VD->isWeak()) in visitDeclRef()
5247 return revisit(VD); in visitDeclRef()