[llvm] r214999 - Revert "Reapply "DebugInfo: Ensure that all debug location scope chains from instructions within a function, lead to the function itself.""
David Blaikie
dblaikie at gmail.com
Wed Aug 6 15:30:12 PDT 2014
Author: dblaikie
Date: Wed Aug 6 17:30:12 2014
New Revision: 214999
URL: http://llvm.org/viewvc/llvm-project?rev=214999&view=rev
Log:
Revert "Reapply "DebugInfo: Ensure that all debug location scope chains from instructions within a function, lead to the function itself.""
This reverts commit r214761.
Revert while Reid investigates & provides a reproduction for an
assertion failure for this on Windows.
Modified:
llvm/trunk/lib/CodeGen/LexicalScopes.cpp
llvm/trunk/lib/IR/DebugInfo.cpp
Modified: llvm/trunk/lib/CodeGen/LexicalScopes.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/LexicalScopes.cpp?rev=214999&r1=214998&r2=214999&view=diff
==============================================================================
--- llvm/trunk/lib/CodeGen/LexicalScopes.cpp (original)
+++ llvm/trunk/lib/CodeGen/LexicalScopes.cpp Wed Aug 6 17:30:12 2014
@@ -137,8 +137,6 @@ LexicalScope *LexicalScopes::findLexical
/// getOrCreateLexicalScope - Find lexical scope for the given DebugLoc. If
/// not available then create new lexical scope.
LexicalScope *LexicalScopes::getOrCreateLexicalScope(DebugLoc DL) {
- if (DL.isUnknown())
- return nullptr;
MDNode *Scope = nullptr;
MDNode *InlinedAt = nullptr;
DL.getScopeAndInlinedAt(Scope, InlinedAt, MF->getFunction()->getContext());
@@ -174,12 +172,9 @@ LexicalScope *LexicalScopes::getOrCreate
std::make_tuple(Parent, DIDescriptor(Scope),
nullptr, false)).first;
- if (!Parent) {
- assert(DIDescriptor(Scope).isSubprogram());
- assert(DISubprogram(Scope).describes(MF->getFunction()));
- assert(!CurrentFnLexicalScope);
+ if (!Parent && DIDescriptor(Scope).isSubprogram() &&
+ DISubprogram(Scope).describes(MF->getFunction()))
CurrentFnLexicalScope = &I->second;
- }
return &I->second;
}
Modified: llvm/trunk/lib/IR/DebugInfo.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/IR/DebugInfo.cpp?rev=214999&r1=214998&r2=214999&view=diff
==============================================================================
--- llvm/trunk/lib/IR/DebugInfo.cpp (original)
+++ llvm/trunk/lib/IR/DebugInfo.cpp Wed Aug 6 17:30:12 2014
@@ -560,32 +560,6 @@ bool DISubprogram::Verify() const {
if (isLValueReference() && isRValueReference())
return false;
- if (auto *F = getFunction()) {
- LLVMContext &Ctxt = F->getContext();
- for (auto &BB : *F) {
- for (auto &I : BB) {
- DebugLoc DL = I.getDebugLoc();
- if (DL.isUnknown())
- continue;
-
- MDNode *Scope = nullptr;
- MDNode *IA = nullptr;
- // walk the inlined-at scopes
- while (DL.getScopeAndInlinedAt(Scope, IA, F->getContext()), IA)
- DL = DebugLoc::getFromDILocation(IA);
- DL.getScopeAndInlinedAt(Scope, IA, Ctxt);
- assert(!IA);
- while (!DIDescriptor(Scope).isSubprogram()) {
- DILexicalBlockFile D(Scope);
- Scope = D.isLexicalBlockFile()
- ? D.getScope()
- : DebugLoc::getFromDILexicalBlock(Scope).getScope(Ctxt);
- }
- if (!DISubprogram(Scope).describes(F))
- return false;
- }
- }
- }
return DbgNode->getNumOperands() == 20;
}
More information about the llvm-commits
mailing list