summaryrefslogtreecommitdiff
path: root/include/llvm/CodeGen/LexicalScopes.h
diff options
context:
space:
mode:
authorDavid Blaikie <dblaikie@gmail.com>2014-06-04 23:50:52 +0000
committerDavid Blaikie <dblaikie@gmail.com>2014-06-04 23:50:52 +0000
commit06ac3ffc8f64040c72f17b77012b040dfc08de1d (patch)
tree015a7ca075ec82241d3cc6d1dd80e4fb8d349b8a /include/llvm/CodeGen/LexicalScopes.h
parent7afb107a274ae27c4db90b785b65d20a8fa18c01 (diff)
downloadllvm-06ac3ffc8f64040c72f17b77012b040dfc08de1d.tar.gz
llvm-06ac3ffc8f64040c72f17b77012b040dfc08de1d.tar.bz2
llvm-06ac3ffc8f64040c72f17b77012b040dfc08de1d.tar.xz
DebugInfo: Reapply r209984 (reverted in r210143), asserting that abstract DbgVariables have DIEs.
Abstract variables within abstract scopes that are entirely optimized away in their first inlining are omitted because their scope is not present so the variable is never created. Instead, we should ensure the scope is created so the variable can be added, even if it's been optimized away in its first inlining. This fixes the incorrect debug info in missing-abstract-variable.ll (added in r210143) and passes an asserts self-hosting build, so hopefully there's not more of these issues left behind... *fingers crossed*. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@210221 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/CodeGen/LexicalScopes.h')
-rw-r--r--include/llvm/CodeGen/LexicalScopes.h6
1 files changed, 3 insertions, 3 deletions
diff --git a/include/llvm/CodeGen/LexicalScopes.h b/include/llvm/CodeGen/LexicalScopes.h
index 31d6872674..036aea30a5 100644
--- a/include/llvm/CodeGen/LexicalScopes.h
+++ b/include/llvm/CodeGen/LexicalScopes.h
@@ -197,6 +197,9 @@ public:
/// dump - Print data structures to dbgs().
void dump();
+ /// getOrCreateAbstractScope - Find or create an abstract lexical scope.
+ LexicalScope *getOrCreateAbstractScope(const MDNode *N);
+
private:
/// getOrCreateLexicalScope - Find lexical scope for the given DebugLoc. If
/// not available then create new lexical scope.
@@ -208,9 +211,6 @@ private:
/// getOrCreateInlinedScope - Find or create an inlined lexical scope.
LexicalScope *getOrCreateInlinedScope(MDNode *Scope, MDNode *InlinedAt);
- /// getOrCreateAbstractScope - Find or create an abstract lexical scope.
- LexicalScope *getOrCreateAbstractScope(const MDNode *N);
-
/// extractLexicalScopes - Extract instruction ranges for each lexical scopes
/// for the given machine function.
void extractLexicalScopes(SmallVectorImpl<InsnRange> &MIRanges,