Lines Matching refs:Scope

124   DILocalScope *Scope = DL->getScope();  in findLexicalScope()  local
125 if (!Scope) in findLexicalScope()
130 Scope = Scope->getNonLexicalBlockFileScope(); in findLexicalScope()
133 auto I = InlinedLexicalScopeMap.find(std::make_pair(Scope, IA)); in findLexicalScope()
136 return findLexicalScope(Scope); in findLexicalScope()
141 LexicalScope *LexicalScopes::getOrCreateLexicalScope(const DILocalScope *Scope, in getOrCreateLexicalScope() argument
145 if (Scope->getSubprogram()->getUnit()->getEmissionKind() == in getOrCreateLexicalScope()
149 getOrCreateAbstractScope(Scope); in getOrCreateLexicalScope()
151 return getOrCreateInlinedScope(Scope, IA); in getOrCreateLexicalScope()
154 return getOrCreateRegularScope(Scope); in getOrCreateLexicalScope()
159 LexicalScopes::getOrCreateRegularScope(const DILocalScope *Scope) { in getOrCreateRegularScope() argument
160 assert(Scope && "Invalid Scope encoding!"); in getOrCreateRegularScope()
161 Scope = Scope->getNonLexicalBlockFileScope(); in getOrCreateRegularScope()
163 auto I = LexicalScopeMap.find(Scope); in getOrCreateRegularScope()
169 if (auto *Block = dyn_cast<DILexicalBlockBase>(Scope)) in getOrCreateRegularScope()
172 std::forward_as_tuple(Scope), in getOrCreateRegularScope()
173 std::forward_as_tuple(Parent, Scope, nullptr, in getOrCreateRegularScope()
177 assert(cast<DISubprogram>(Scope)->describes(&MF->getFunction())); in getOrCreateRegularScope()
187 LexicalScopes::getOrCreateInlinedScope(const DILocalScope *Scope, in getOrCreateInlinedScope() argument
189 assert(Scope && "Invalid Scope encoding!"); in getOrCreateInlinedScope()
190 Scope = Scope->getNonLexicalBlockFileScope(); in getOrCreateInlinedScope()
191 std::pair<const DILocalScope *, const DILocation *> P(Scope, InlinedAt); in getOrCreateInlinedScope()
197 if (auto *Block = dyn_cast<DILexicalBlockBase>(Scope)) in getOrCreateInlinedScope()
204 std::forward_as_tuple(Parent, Scope, InlinedAt, false)) in getOrCreateInlinedScope()
211 LexicalScopes::getOrCreateAbstractScope(const DILocalScope *Scope) { in getOrCreateAbstractScope() argument
212 assert(Scope && "Invalid Scope encoding!"); in getOrCreateAbstractScope()
213 Scope = Scope->getNonLexicalBlockFileScope(); in getOrCreateAbstractScope()
214 auto I = AbstractScopeMap.find(Scope); in getOrCreateAbstractScope()
220 if (auto *Block = dyn_cast<DILexicalBlockBase>(Scope)) in getOrCreateAbstractScope()
224 std::forward_as_tuple(Scope), in getOrCreateAbstractScope()
225 std::forward_as_tuple(Parent, Scope, in getOrCreateAbstractScope()
227 if (isa<DISubprogram>(Scope)) in getOrCreateAbstractScope()
233 void LexicalScopes::constructScopeNest(LexicalScope *Scope) { in constructScopeNest() argument
234 assert(Scope && "Unable to calculate scope dominance graph!"); in constructScopeNest()
236 WorkStack.push_back(Scope); in constructScopeNest()
284 LexicalScope *Scope = getOrCreateLexicalScope(DL); in getMachineBasicBlocks() local
285 if (!Scope) in getMachineBasicBlocks()
288 if (Scope == CurrentFnLexicalScope) { in getMachineBasicBlocks()
294 SmallVectorImpl<InsnRange> &InsnRanges = Scope->getRanges(); in getMachineBasicBlocks()
303 LexicalScope *Scope = getOrCreateLexicalScope(DL); in dominates() local
304 if (!Scope) in dominates()
308 if (Scope == CurrentFnLexicalScope && MBB->getParent() == MF) in dominates()
315 if (Scope->dominates(IScope)) in dominates()