| Commit message (Collapse) | Author | Age | Files | Lines | |
|---|---|---|---|---|---|
| * | [codeview,pdb] Try really hard to conserve memory when reading. | Zachary Turner | 2016-05-27 | 1 | -2/+2 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | PDBs can be extremely large. We're already mapping the entire PDB into the process's address space, but to make matters worse the blocks of the PDB are not arranged contiguously. So, when we have something like an array or a string embedded into the stream, we have to make a copy. Since it's convenient to use traditional data structures to iterate and manipulate these records, we need the memory to be contiguous. As a result of this, we were using roughly twice as much memory as the file size of the PDB, because every stream was copied out and re-stitched together contiguously. This patch addresses this by improving the MappedBlockStream to allocate from a BumpPtrAllocator only when a read requires a discontiguous read. Furthermore, it introduces some data structures backed by a stream which can iterate over both fixed and variable length records of a PDB. Since everything is backed by a stream and not a buffer, we can read almost everything from the PDB with zero copies. Differential Revision: http://reviews.llvm.org/D20654 Reviewed By: ruiu llvm-svn: 270951 | ||||
| * | [codeview] Move StreamInterface and StreamReader to libcodeview. | Zachary Turner | 2016-05-25 | 1 | -3/+2 |
| | | | | | | | | | | | We have need to reuse this functionality, including making additional generic stream types that are smarter about how and when they copy memory versus referencing the original memory. So all of these structures belong in the common library rather than being pdb specific. llvm-svn: 270751 | ||||
| * | [codeview, pdb] Dump symbol records in publics stream | Zachary Turner | 2016-05-24 | 1 | -49/+16 |
| | | | | | | | | Differential Revision: http://reviews.llvm.org/D20580 Reviewed By: ruiu llvm-svn: 270597 | ||||
| * | Fix struct member names and simplify. NFC. | Rui Ueyama | 2016-05-20 | 1 | -6/+4 |
| | | | | | llvm-svn: 270289 | ||||
| * | pdbdump: print out symbol names referred by publics stream. | Rui Ueyama | 2016-05-20 | 1 | -0/+85 |
| DBI stream contains a stream number of the symbol record stream. Symbol record streams is an array of length-type-value members. Each member represents one symbol. Publics stream contains offsets to the symbol record stream. This patch is to print out all symbols that are referenced by the publics stream. Note that even with this patch, llvm-pdbdump cannot dump all the information in a publics stream since it contains more information than symbol names. I'll improve it in followup patches. Differential Revision: http://reviews.llvm.org/D20480 llvm-svn: 270262 | |||||

