Lines Matching defs:Scope

117   MDNode *Scope = NULL;
119 DL.getScopeAndInlinedAt(Scope, IA, MF->getFunction()->getContext());
120 if (!Scope) return NULL;
124 DIDescriptor D = DIDescriptor(Scope);
126 Scope = DILexicalBlockFile(Scope).getScope();
130 return LexicalScopeMap.lookup(Scope);
136 MDNode *Scope = NULL;
138 DL.getScopeAndInlinedAt(Scope, InlinedAt, MF->getFunction()->getContext());
142 getOrCreateAbstractScope(Scope);
144 return getOrCreateInlinedScope(Scope, InlinedAt);
147 return getOrCreateRegularScope(Scope);
151 LexicalScope *LexicalScopes::getOrCreateRegularScope(MDNode *Scope) {
152 DIDescriptor D = DIDescriptor(Scope);
154 Scope = DILexicalBlockFile(Scope).getScope();
155 D = DIDescriptor(Scope);
158 LexicalScope *WScope = LexicalScopeMap.lookup(Scope);
164 Parent = getOrCreateLexicalScope(DebugLoc::getFromDILexicalBlock(Scope));
165 WScope = new LexicalScope(Parent, DIDescriptor(Scope), NULL, false);
166 LexicalScopeMap.insert(std::make_pair(Scope, WScope));
167 if (!Parent && DIDescriptor(Scope).isSubprogram()
168 && DISubprogram(Scope).describes(MF->getFunction()))
175 LexicalScope *LexicalScopes::getOrCreateInlinedScope(MDNode *Scope,
183 DIDescriptor(Scope), InlinedAt, false);
191 assert(N && "Invalid Scope encoding!");
193 DIDescriptor Scope(N);
194 if (Scope.isLexicalBlockFile())
195 Scope = DILexicalBlockFile(Scope).getScope();
201 if (Scope.isLexicalBlock()) {
214 void LexicalScopes::constructScopeNest(LexicalScope *Scope) {
215 assert (Scope && "Unable to calculate scope dominance graph!");
217 WorkStack.push_back(Scope);
271 LexicalScope *Scope = getOrCreateLexicalScope(DL);
272 if (!Scope)
275 if (Scope == CurrentFnLexicalScope) {
282 SmallVectorImpl<InsnRange> &InsnRanges = Scope->getRanges();
293 LexicalScope *Scope = getOrCreateLexicalScope(DL);
294 if (!Scope)
298 if (Scope == CurrentFnLexicalScope && MBB->getParent() == MF)
308 if (Scope->dominates(IScope))
326 err << std::string(Indent, ' ') << "Abstract Scope\n";