llvm-project/llvm/lib/IR
Davide Italiano 84bd58e915 [opt] Strip coverage if debug info is not present.
If -coverage is passed, but -g is not, clang populates the PassManager
pipeline with StripSymbols(debugOnly = true).
The stripSymbol pass therefore scans the list of named metadata,
drops !llvm.dbg.cu, but leaves !llvm.gcov and !0 (the compileUnit MD)
around. The verifier runs, and finds out that there's a CU not listed
in !llvm.dbg.cu (as it was previously dropped) -> crash.
When we strip debug info, so, check if there's coverage data,
and strip it as well, in order to avoid pending metadata left around.

Differential Revision:  https://reviews.llvm.org/D25689

llvm-svn: 284418
2016-10-17 20:05:35 +00:00
..
AsmWriter.cpp [X86] Basic additions to support RegCall Calling Convention. 2016-10-13 07:53:43 +00:00
AttributeImpl.h Expose AttributeSetNode, use it to provide aggregate getter for attribute in the C API. 2016-07-21 04:25:06 +00:00
AttributeSetNode.h Add missing import to fix the build 2016-07-21 04:31:38 +00:00
Attributes.cpp Rationalise the attribute getter/setter methods on Function and CallSite. 2016-09-09 04:50:38 +00:00
AttributesCompatFunc.td Provide a way to specify inliner's attribute compatibility and merging. 2015-12-22 23:57:37 +00:00
AutoUpgrade.cpp Don't drop the llvm. prefix when renaming. 2016-10-03 15:51:42 +00:00
BasicBlock.cpp Don't create a SymbolTable in Function when the LLVMContext discards value names (NFC) 2016-09-17 06:00:02 +00:00
CMakeLists.txt Move ProfileSummary to IR. 2016-05-19 21:07:12 +00:00
Comdat.cpp [NFC] Remove some dead code: 2016-05-11 16:38:40 +00:00
ConstantFold.cpp Replace "fallthrough" comments with LLVM_FALLTHROUGH 2016-08-17 05:10:15 +00:00
ConstantFold.h [NFC] Header cleanup 2016-04-18 09:17:29 +00:00
ConstantRange.cpp [ConstantRange] Make getEquivalentICmp smarter 2016-10-02 20:59:05 +00:00
Constants.cpp Use unique_ptr in LLVMContextImpl's constant maps. 2016-10-10 16:26:13 +00:00
ConstantsContext.h Increase SmallVector size for ConstantUniqueMap::getHashValue() (NFC) 2016-04-19 00:17:55 +00:00
Core.cpp [C API] Add LLVMConstExactUDiv and LLVMBuildExactUDiv functions. 2016-10-04 23:32:42 +00:00
DIBuilder.cpp DebugInfo: New metadata representation for global variables. 2016-09-13 01:12:59 +00:00
DataLayout.cpp [IR] Introduce a non-integral pointer type 2016-07-28 23:43:38 +00:00
DebugInfo.cpp [opt] Strip coverage if debug info is not present. 2016-10-17 20:05:35 +00:00
DebugInfoMetadata.cpp DIFlags: use StringRef instead of raw pointer (NFC) 2016-10-01 05:57:50 +00:00
DebugLoc.cpp [NFC] Header cleanup 2016-04-18 09:17:29 +00:00
DiagnosticInfo.cpp [OptRemarks] Remove non-printable chars from function name 2016-10-08 04:47:20 +00:00
DiagnosticPrinter.cpp
Dominators.cpp [GenericDomTree] Change GenericDomTree to use NodeRef in GraphTraits. NFC. 2016-08-17 20:01:58 +00:00
Function.cpp Don't create a SymbolTable in Function when the LLVMContext discards value names (NFC) 2016-09-17 06:00:02 +00:00
GCOV.cpp llvm-cov: Fix reading gcov data that does not have function names 2016-02-08 22:49:40 +00:00
GVMaterializer.cpp
Globals.cpp [IR] [DAE] Copy comdats during DAE, and don't copy comdats in GlobalObject::copyAttributesFrom. 2016-06-15 23:20:15 +00:00
IRBuilder.cpp Add invariant start call creation in IRBuilder.NFC 2016-07-22 20:57:23 +00:00
IRPrintingPasses.cpp Consistently use ModuleAnalysisManager 2016-08-09 00:28:38 +00:00
InlineAsm.cpp Replace "fallthrough" comments with LLVM_FALLTHROUGH 2016-08-17 05:10:15 +00:00
Instruction.cpp fix documentation comments; NFC 2016-10-05 18:51:12 +00:00
Instructions.cpp Remove duplicated code; NFC 2016-10-02 00:09:57 +00:00
IntrinsicInst.cpp [Profile] code refactoring: make getStep a method in base class 2016-09-20 19:07:22 +00:00
LLVMBuild.txt
LLVMContext.cpp Output optimization remarks in YAML 2016-09-27 20:55:07 +00:00
LLVMContextImpl.cpp Use unique_ptr in LLVMContextImpl's constant maps. 2016-10-10 16:26:13 +00:00
LLVMContextImpl.h Use unique_ptr in LLVMContextImpl's constant maps. 2016-10-10 16:26:13 +00:00
LegacyPassManager.cpp Turn cl::values() (for enum) from a vararg function to using C++ variadic template 2016-10-08 19:41:06 +00:00
MDBuilder.cpp Fix the assertion failure caused by http://reviews.llvm.org/D22118 2016-07-11 17:36:02 +00:00
Mangler.cpp Remove the default constructor and count variable from the Mangler since 2016-09-29 02:03:50 +00:00
Metadata.cpp Allow Switch instruction to have extractProfTotalWeight called as it can terminate a basic block. (NFC) 2016-10-11 18:53:00 +00:00
MetadataImpl.h
Module.cpp Remove interface to get/set MaxFunctionCount 2016-06-20 21:36:38 +00:00
ModuleSummaryIndex.cpp ThinLTO: handles modules with empty summaries 2016-10-08 04:44:18 +00:00
Operator.cpp [opaque pointer types] [NFC] GEP: replace get(Pointer)ElementType uses with get{Source,Result}ElementType. 2016-01-19 17:28:00 +00:00
OptBisect.cpp Removing unused function. 2016-04-22 22:24:20 +00:00
Pass.cpp Use StringRef in Pass Info/Support API (NFC) 2016-10-01 04:03:30 +00:00
PassManager.cpp [PM] Introduce an abstraction for all the analyses over a particular IR 2016-08-20 04:57:28 +00:00
PassRegistry.cpp Use the range variant of find instead of unpacking begin/end 2016-08-11 22:21:41 +00:00
ProfileSummary.cpp Reapply r271728 after adding move cobstructor for ProfileSummaryInfo 2016-06-03 22:54:26 +00:00
Statepoint.cpp Introduce an GCRelocateInst class [NFC] 2016-04-12 18:05:10 +00:00
SymbolTableListTraitsImpl.h ADT: Remove external uses of ilist_iterator, NFC 2016-09-03 01:22:56 +00:00
Type.cpp fix documentation comments; NFC 2016-06-02 20:37:52 +00:00
TypeFinder.cpp Apply clang-tidy's modernize-loop-convert to most of lib/IR. 2016-06-26 14:10:56 +00:00
Use.cpp
User.cpp
Value.cpp Don't create a SymbolTable in Function when the LLVMContext discards value names (NFC) 2016-09-17 06:00:02 +00:00
ValueSymbolTable.cpp Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes. 2016-08-23 17:14:32 +00:00
ValueTypes.cpp getVectorElementType().getSizeInBits() -> getScalarSizeInBits() ; NFCI 2016-09-14 16:37:15 +00:00
Verifier.cpp Verifier: Reject any unknown named MD nodes in the llvm.dbg namespace. 2016-10-05 22:15:37 +00:00