[llvm] r266221 - Revert "[IR/Verifier] Each DISubprogram with isDefinition: true must belong to a CU."

Davide Italiano via llvm-commits llvm-commits at lists.llvm.org
Wed Apr 13 11:08:07 PDT 2016


Author: davide
Date: Wed Apr 13 13:08:07 2016
New Revision: 266221

URL: http://llvm.org/viewvc/llvm-project?rev=266221&view=rev
Log:
Revert "[IR/Verifier] Each DISubprogram with isDefinition: true must belong to a CU."

This reverts commit r266102. The O(N^2) verifier check causes timeouts
in LTO test suite.

Removed:
    llvm/trunk/test/Verifier/disubprogram-nocu.ll
Modified:
    llvm/trunk/lib/IR/Verifier.cpp

Modified: llvm/trunk/lib/IR/Verifier.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/IR/Verifier.cpp?rev=266221&r1=266220&r2=266221&view=diff
==============================================================================
--- llvm/trunk/lib/IR/Verifier.cpp (original)
+++ llvm/trunk/lib/IR/Verifier.cpp Wed Apr 13 13:08:07 2016
@@ -1011,22 +1011,6 @@ void Verifier::visitDISubprogram(const D
 
   if (N.isDefinition())
     Assert(N.isDistinct(), "subprogram definitions must be distinct", &N);
-
-  // Ensure that every DISubprogram with isDefinition: true belongs
-  // to a DICompileUnit.
-  // FIXME: This is a very inefficient way of handling the problem.
-  // Use a SmallSetPtr which contains the Listed DISubprograms in the CU
-  // instead.
-  if (N.isDefinition()) {
-    auto *CUs = M->getNamedMetadata("llvm.dbg.cu");
-    Assert(CUs, "subprogram must belong to a compile unit", &N);
-    for (auto *CU : CUs->operands())
-      if (auto Subprograms = cast<DICompileUnit>(CU)->getSubprograms())
-        for (const auto *Sp : Subprograms)
-          if (Sp == &N)
-            return;
-    Assert(false, "subprogram not found in any compile unit", &N);
-  }
 }
 
 void Verifier::visitDILexicalBlockBase(const DILexicalBlockBase &N) {

Removed: llvm/trunk/test/Verifier/disubprogram-nocu.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Verifier/disubprogram-nocu.ll?rev=266220&view=auto
==============================================================================
--- llvm/trunk/test/Verifier/disubprogram-nocu.ll (original)
+++ llvm/trunk/test/Verifier/disubprogram-nocu.ll (removed)
@@ -1,25 +0,0 @@
-; Reject if DISubprogram does not belong to a DICompileUnit.
-; RUN: not llvm-as -disable-output <%s 2>&1 | FileCheck %s
-
-; CHECK:  assembly parsed, but does not verify as correct!
-; CHECK: subprogram not found in any compile unit
-
- at _ZZNK4llvm6object15MachOObjectFile21getRelocationTypeNameENS0_11DataRefImplERNS_15SmallVectorImplIcEEE5Table = external unnamed_addr constant [6 x i8*], align 16
-
-!llvm.dbg.cu = !{!0}
-!llvm.module.flags = !{!13}
-
-!0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, isOptimized: false, runtimeVersion: 0, emissionKind: 0, globals: !2, imports: !9)
-!1 = !DIFile(filename: "../lib/Object/MachOObjectFile.cpp", directory: "/home/davide/work/llvm/build-lto-debug")
-!2 = !{!3, !8}
-!3 = !DIGlobalVariable(name: "Table", scope: !4, isLocal: false, isDefinition: true, variable: [6 x i8*]* @_ZZNK4llvm6object15MachOObjectFile21getRelocationTypeNameENS0_11DataRefImplERNS_15SmallVectorImplIcEEE5Table)
-!4 = distinct !DILexicalBlock(scope: !5, line: 722, column: 23)
-!5 = distinct !DILexicalBlock(scope: !6, line: 721, column: 17)
-!6 = distinct !DISubprogram(name: "getRelocationTypeName", scope: null, isLocal: false, isDefinition: true, isOptimized: false, variables: !7)
-!7 = !{}
-!8 = !DIGlobalVariable(name: "IsLittleEndianHost", scope: null, isLocal: false, isDefinition: true, variable: i1 true)
-!9 = !{!10, !12}
-!10 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !11, line: 121)
-!11 = !DINamespace(name: "std", scope: null, line: 1967)
-!12 = !DIImportedEntity(tag: DW_TAG_imported_module, scope: !0, line: 32)
-!13 = !{i32 2, !"Debug Info Version", i32 3}




More information about the llvm-commits mailing list