Revision tags: llvmorg-5.0.1, llvmorg-5.0.1-rc3, llvmorg-5.0.1-rc2, llvmorg-5.0.1-rc1, llvmorg-5.0.0, llvmorg-5.0.0-rc5, llvmorg-5.0.0-rc4, llvmorg-5.0.0-rc3, llvmorg-5.0.0-rc2, llvmorg-5.0.0-rc1 |
|
#
28082ab0 |
| 01-Jul-2017 |
Eugene Zelenko <eugene.zelenko@gmail.com> |
[ObjectYAML] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC).
llvm-svn: 306925
|
#
d0c0c134 |
| 30-Jun-2017 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Fix ODR violations due to abuse of LLVM_YAML_IS_(FLOW_)?SEQUENCE_VECTOR
This is a short-term fix for PR33650 aimed to get the modules build bots green again.
Remove all the places where we use the
Fix ODR violations due to abuse of LLVM_YAML_IS_(FLOW_)?SEQUENCE_VECTOR
This is a short-term fix for PR33650 aimed to get the modules build bots green again.
Remove all the places where we use the LLVM_YAML_IS_(FLOW_)?SEQUENCE_VECTOR macros to try to locally specialize a global template for a global type. That's not how C++ works.
Instead, we now centrally define how to format vectors of fundamental types and of string (std::string and StringRef). We use flow formatting for the former cases, since that's the obvious right thing to do; in the latter case, it's less clear what the right choice is, but flow formatting is really bad for some cases (due to very long strings), so we pick block formatting. (Many of the cases that were using flow formatting for strings are improved by this change.)
Other than the flow -> block formatting change for some vectors of strings, this should result in no functionality change.
Differential Revision: https://reviews.llvm.org/D34907
Corresponding updates to clang, clang-tools-extra, and lld to follow.
llvm-svn: 306878
show more ...
|
#
91ef9de6 |
| 20-Jun-2017 |
Reid Kleckner <rnk@google.com> |
[codeview] YAMLize all section offsets and indices in symbol records
We forgot to serialize these because llvm-readobj didn't dump them. They are typically all zeros in an object file. The linker fi
[codeview] YAMLize all section offsets and indices in symbol records
We forgot to serialize these because llvm-readobj didn't dump them. They are typically all zeros in an object file. The linker fills them in with relocations before adding them to the PDB. Now we can properly round trip these symbols through pdb2yaml -> yaml2pdb.
I made these fields optional with a zero default so that we can elide them from our test cases.
llvm-svn: 305857
show more ...
|
#
665e1c92 |
| 20-Jun-2017 |
Reid Kleckner <rnk@google.com> |
[codeview] Fully initialize DataSym when mapping from YAML
In the object file, the section index and relative offset are typically zero, so make these YAML fields optional with a default.
It looks
[codeview] Fully initialize DataSym when mapping from YAML
In the object file, the section index and relative offset are typically zero, so make these YAML fields optional with a default.
It looks like there may be more partially initialized symbol records, but this should fix the msan bot.
llvm-svn: 305842
show more ...
|
#
18d90e17 |
| 19-Jun-2017 |
Reid Kleckner <rnk@google.com> |
[CodeView] Fix dumping of public symbol record flags
I noticed nonsensical type information while dumping PDBs produced by MSVC.
llvm-svn: 305708
|
#
63055455 |
| 15-Jun-2017 |
Zachary Turner <zturner@google.com> |
Resubmit "[llvm-pdbutil] rewrite the "raw" output style."
This resubmits commit c0c249e9f2ef83e1d1e5f166b50673d92f3579d7.
It was broken due to some weird template issues, which have since been fixe
Resubmit "[llvm-pdbutil] rewrite the "raw" output style."
This resubmits commit c0c249e9f2ef83e1d1e5f166b50673d92f3579d7.
It was broken due to some weird template issues, which have since been fixed.
llvm-svn: 305517
show more ...
|
#
da504b79 |
| 15-Jun-2017 |
Zachary Turner <zturner@google.com> |
Revert "[llvm-pdbutil] rewrite the "raw" output style."
This reverts commit 83ea17ebf2106859a51fbc2a86031b44d33696ad.
This is failing due to some strange template problems, so reverting until it ca
Revert "[llvm-pdbutil] rewrite the "raw" output style."
This reverts commit 83ea17ebf2106859a51fbc2a86031b44d33696ad.
This is failing due to some strange template problems, so reverting until it can be straightened out.
llvm-svn: 305505
show more ...
|
#
b560fdf3 |
| 15-Jun-2017 |
Zachary Turner <zturner@google.com> |
[llvm-pdbutil] rewrite the "raw" output style.
After some internal discussions, we agreed that the raw output style had outlived its usefulness. It was originally created before we had even thought
[llvm-pdbutil] rewrite the "raw" output style.
After some internal discussions, we agreed that the raw output style had outlived its usefulness. It was originally created before we had even thought of dumping to YAML, and it was intended to give us some insight into the internals of a PDB file. Now we have YAML mode which does almost exactly this but is more powerful in that it can round-trip back to a PDB, which the raw mode could not do. So the raw mode had become purely a maintenance burden.
One option was to just delete it. However, its original goal was to be as readable as possible while staying close to the "metal" - i.e. presenting the output in a way that maps directly to the underlying file format. We don't actually need that last requirement anymore since it's covered by the yaml mode, so we could repurpose "raw" mode to actually just be as readable as possible.
This patch implements about 80% of the functionality previously in raw mode, but in a completely different style that is more akin to what cvdump outputs. Records are very compressed, often times appearing on just one line. One nice thing about this is that it makes full record matching easier, because you can grep for indices, names, and leaf types on a single line often.
See the tests for some examples of what the new output looks like.
Note that this patch actually regresses the functionality of raw mode in a few areas, but only because the patch was already unreasonably large and going 100% would have been even worse. Specifically, this patch is missing:
The ability to dump module debug subsections (checksums, lines, etc) The ability to dump section headers Aside from that everything is here. While goign through the tests fixing them all up, I found many duplicate tests. They've been deleted. In subsequent patches I will go through and re-add the missing functionality.
Differential Revision: https://reviews.llvm.org/D34191
llvm-svn: 305495
show more ...
|
Revision tags: llvmorg-4.0.1, llvmorg-4.0.1-rc3 |
|
#
606d7665 |
| 12-Jun-2017 |
Zachary Turner <zturner@google.com> |
[pdb] Don't choke on unknown symbol types.
When we get an unknown symbol type, we might as well at least dump it. Same goes for round-tripping through YAML, we can dump the record contents as raw b
[pdb] Don't choke on unknown symbol types.
When we get an unknown symbol type, we might as well at least dump it. Same goes for round-tripping through YAML, we can dump the record contents as raw bytes even if we don't know how to interpret it semantically.
llvm-svn: 305248
show more ...
|
#
349c18f8 |
| 05-Jun-2017 |
Zachary Turner <zturner@google.com> |
[CodeView] Handle Cross Module Imports and Exports.
While it's not entirely clear why a compiler or linker might put this information into an object or PDB file, one has been spotted in the wild whi
[CodeView] Handle Cross Module Imports and Exports.
While it's not entirely clear why a compiler or linker might put this information into an object or PDB file, one has been spotted in the wild which was causing llvm-pdbdump to crash.
This patch adds support for reading-writing these sections. Since I don't know how to get one of the native tools to generate this kind of debug info, the only test here is one in which we feed YAML into the tool to produce a PDB and then spit out YAML from the resulting PDB and make sure that it matches.
llvm-svn: 304738
show more ...
|
#
ebd3ae83 |
| 01-Jun-2017 |
Zachary Turner <zturner@google.com> |
[CodeView] Properly align symbol records on read/write.
Object files have symbol records not aligned to any particular boundary (e.g. 1-byte aligned), while PDB files have symbol records padded to 4
[CodeView] Properly align symbol records on read/write.
Object files have symbol records not aligned to any particular boundary (e.g. 1-byte aligned), while PDB files have symbol records padded to 4-byte aligned boundaries. Since they share the same reading / writing code, we have to provide an option to specify the alignment and propagate it up to the producer or consumer who knows what the alignment is supposed to be for the given container type.
Added a test for this by modifying the existing PDB -> YAML -> PDB round-tripping code to round trip symbol records as well as types.
Differential Revision: https://reviews.llvm.org/D33785
llvm-svn: 304484
show more ...
|
Revision tags: llvmorg-4.0.1-rc2 |
|
#
1b88f4f3 |
| 31-May-2017 |
Zachary Turner <zturner@google.com> |
[ObjectYAML] Split CodeViewYAML into 3 pieces.
The code was a mess and disorganized due to the sheer amount of it being in one file. So I'm splitting this into three files. One for CodeView types,
[ObjectYAML] Split CodeViewYAML into 3 pieces.
The code was a mess and disorganized due to the sheer amount of it being in one file. So I'm splitting this into three files. One for CodeView types, one for CodeView symbols, and one for CodeView debug subsections. NFC.
llvm-svn: 304278
show more ...
|