Resolve Bug 30978.
This patch contains changes in LLVM IR to support Checksum debug info feature.
Paths
| Differential D27642
DebugInfo: Added support for Checksum debug info feature (LLVM IR part) ClosedPublic Authored by aaboud on Dec 9 2016, 4:47 PM.
Details Summary Resolve Bug 30978. This patch contains changes in LLVM IR to support Checksum debug info feature.
Diff Detail Event TimelineComment Actions I think we try to make as much as possible metadata to be "distinct", CC Duncan to advise.
Comment Actions
Not sure about that, so far we have only DICompileUnit and DISubprogram defined as distinct.
Comment Actions +Adrian. Note that I'm not worried about using 'distinct' here, since DICheckSum doesn't look like it can participate in cycles. (Otherwise, I haven't looked deeply at the patch.) Comment Actions Any objections to folding this into DIFile? It would substantially reduce the size of this patch, IMO.
Comment Actions
I have no objection going this way, if everybody agree on that I will implement the change and upload a new patch.
Comment Actions Thanks for all the reviews and suggestions.
Comment Actions About the discussion on distinct: The checksums (and also the DIFile nodes) should be uniqued in an LTO compilation and thus should not be distinct.
rnk edited edge metadata. rnk added inline comments.
This revision is now accepted and ready to land.Dec 15 2016, 1:32 PM
aaboud edited edge metadata. aaboud marked 2 inline comments as done. Comment ActionsAddressed comments by Reid and David. Closed by commit rL290514: [DebugInfo] Added support for Checksum debug info feature. (authored by aaboud). · Explain WhyDec 25 2016, 2:22 AM This revision was automatically updated to reflect the committed changes.
Revision Contents
Diff 80976 docs/LangRef.rst
include/llvm/Bitcode/LLVMBitCodes.h
include/llvm/IR/DIBuilder.h
include/llvm/IR/DebugInfoMetadata.h
include/llvm/IR/Metadata.def
lib/AsmParser/LLLexer.cpp
lib/AsmParser/LLParser.cpp
lib/AsmParser/LLToken.h
lib/Bitcode/Reader/BitcodeReader.cpp
lib/Bitcode/Writer/BitcodeWriter.cpp
lib/IR/AsmWriter.cpp
lib/IR/DIBuilder.cpp
lib/IR/DebugInfoMetadata.cpp
lib/IR/LLVMContextImpl.h
lib/IR/Verifier.cpp
test/Assembler/debug-info.ll
unittests/IR/IRBuilderTest.cpp
unittests/IR/MetadataTest.cpp
unittests/IR/VerifierTest.cpp
unittests/Transforms/Utils/Cloning.cpp
|
What are the valid list of "type"? What type is the "type" field? Why the prefix ChecksumType_ and not just MD5?
Why not a simpler approach where the type is an MDString? (That already how you parse it in DIChecksum::getChecksumType anyway)