Lines Matching refs:Scope

108   MDNode *Scope = nullptr;
110 DL.getScopeAndInlinedAt(Scope, IA, MF->getFunction()->getContext());
111 auto I = InlinedLexicalScopeMap.find(std::make_pair(Scope, IA));
118 MDNode *Scope = nullptr;
120 DL.getScopeAndInlinedAt(Scope, IA, MF->getFunction()->getContext());
121 if (!Scope)
126 DIDescriptor D = DIDescriptor(Scope);
128 Scope = DILexicalBlockFile(Scope).getScope();
131 auto I = InlinedLexicalScopeMap.find(std::make_pair(Scope, IA));
134 return findLexicalScope(Scope);
140 MDNode *Scope = nullptr;
142 DL.getScopeAndInlinedAt(Scope, InlinedAt, MF->getFunction()->getContext());
146 getOrCreateAbstractScope(Scope);
148 return getOrCreateInlinedScope(Scope, InlinedAt);
151 return getOrCreateRegularScope(Scope);
155 LexicalScope *LexicalScopes::getOrCreateRegularScope(MDNode *Scope) {
156 DIDescriptor D = DIDescriptor(Scope);
158 Scope = DILexicalBlockFile(Scope).getScope();
159 D = DIDescriptor(Scope);
162 auto I = LexicalScopeMap.find(Scope);
168 Parent = getOrCreateLexicalScope(DebugLoc::getFromDILexicalBlock(Scope));
171 I = LexicalScopeMap.emplace(std::piecewise_construct, std::make_tuple(Scope),
172 std::make_tuple(Parent, DIDescriptor(Scope),
175 if (!Parent && DIDescriptor(Scope).isSubprogram() &&
176 DISubprogram(Scope).describes(MF->getFunction()))
191 DILexicalBlock Scope(ScopeNode);
192 if (Scope.isSubprogram())
195 Parent = getOrCreateInlinedScope(Scope.getContext(), InlinedAt);
201 std::make_tuple(Parent, Scope, InlinedAt,
208 assert(N && "Invalid Scope encoding!");
210 DIDescriptor Scope(N);
211 if (Scope.isLexicalBlockFile())
212 Scope = DILexicalBlockFile(Scope).getScope();
213 auto I = AbstractScopeMap.find(Scope);
218 if (Scope.isLexicalBlock()) {
219 DILexicalBlock DB(Scope);
224 std::forward_as_tuple(Scope),
225 std::forward_as_tuple(Parent, Scope,
227 if (Scope.isSubprogram())
233 void LexicalScopes::constructScopeNest(LexicalScope *Scope) {
234 assert(Scope && "Unable to calculate scope dominance graph!");
236 WorkStack.push_back(Scope);
290 LexicalScope *Scope = getOrCreateLexicalScope(DL);
291 if (!Scope)
294 if (Scope == CurrentFnLexicalScope) {
300 SmallVectorImpl<InsnRange> &InsnRanges = Scope->getRanges();
312 LexicalScope *Scope = getOrCreateLexicalScope(DL);
313 if (!Scope)
317 if (Scope == CurrentFnLexicalScope && MBB->getParent() == MF)
327 if (Scope->dominates(IScope))
343 err << std::string(Indent, ' ') << "Abstract Scope\n";