[llvm] r277545 - pdbdump: Do not treat stream 0 pages as allocated pages.
Rui Ueyama via llvm-commits
llvm-commits at lists.llvm.org
Tue Aug 2 16:22:47 PDT 2016
Author: ruiu
Date: Tue Aug 2 18:22:46 2016
New Revision: 277545
URL: http://llvm.org/viewvc/llvm-project?rev=277545&view=rev
Log:
pdbdump: Do not treat stream 0 pages as allocated pages.
I examined a few PDBs and all of them treated pages for stream 0
are unused, thus they were unmarked in their free page bitmap.
I think we should do the same thing for compatibility.
Differential Revision: https://reviews.llvm.org/D23047
Modified:
llvm/trunk/tools/llvm-pdbdump/LLVMOutputStyle.cpp
Modified: llvm/trunk/tools/llvm-pdbdump/LLVMOutputStyle.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-pdbdump/LLVMOutputStyle.cpp?rev=277545&r1=277544&r2=277545&view=diff
==============================================================================
--- llvm/trunk/tools/llvm-pdbdump/LLVMOutputStyle.cpp (original)
+++ llvm/trunk/tools/llvm-pdbdump/LLVMOutputStyle.cpp Tue Aug 2 18:22:46 2016
@@ -303,14 +303,16 @@ Error LLVMOutputStyle::dumpFreePageMap()
recordKnownUsedPage(PS, File.getBlockMapIndex()); // Stream Table
- for (auto DB : File.getDirectoryBlockArray()) {
+ for (auto DB : File.getDirectoryBlockArray())
recordKnownUsedPage(PS, DB);
- }
- for (auto &SE : File.getStreamMap()) {
- for (auto &S : SE) {
+
+ // Record pages used by streams. Note that pages for stream 0
+ // are considered being unused because that's what MSVC tools do.
+ // Stream 0 doesn't contain actual data, so it makes some sense,
+ // though it's a bit confusing to us.
+ for (auto &SE : File.getStreamMap().drop_front(1))
+ for (auto &S : SE)
recordKnownUsedPage(PS, S);
- }
- }
dumpBitVector("Msf Free Pages", FPM);
dumpBitVector("Orphaned Pages", PS.OrphanedPages);
More information about the llvm-commits
mailing list