shrink SOURCE_LOCATION_OFFSETS to use 4-byte entries instead of 8-byte
entries, shaving 100K off the PCH file for cocoa.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70228 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/include/clang/Frontend/PCHReader.h b/include/clang/Frontend/PCHReader.h
index a955b80..52f58f8 100644
--- a/include/clang/Frontend/PCHReader.h
+++ b/include/clang/Frontend/PCHReader.h
@@ -106,7 +106,7 @@
/// \brief Offset type for all of the source location entries in the
/// PCH file.
- const uint64_t *SLocOffsets;
+ const uint32_t *SLocOffsets;
/// \brief The number of source location entries in the PCH file.
unsigned TotalNumSLocEntries;
diff --git a/lib/Frontend/PCHReader.cpp b/lib/Frontend/PCHReader.cpp
index f87252a..1b26b72 100644
--- a/lib/Frontend/PCHReader.cpp
+++ b/lib/Frontend/PCHReader.cpp
@@ -1017,7 +1017,7 @@
break;
case pch::SOURCE_LOCATION_OFFSETS:
- SLocOffsets = (const uint64_t *)BlobStart;
+ SLocOffsets = (const uint32_t *)BlobStart;
TotalNumSLocEntries = Record[0];
PP.getSourceManager().PreallocateSLocEntries(this,
TotalNumSLocEntries,
diff --git a/lib/Frontend/PCHWriter.cpp b/lib/Frontend/PCHWriter.cpp
index f0dd43a..d8603df 100644
--- a/lib/Frontend/PCHWriter.cpp
+++ b/lib/Frontend/PCHWriter.cpp
@@ -738,7 +738,7 @@
// Write out the source location entry table. We skip the first
// entry, which is always the same dummy entry.
- std::vector<uint64_t> SLocEntryOffsets;
+ std::vector<uint32_t> SLocEntryOffsets;
RecordData PreloadSLocs;
SLocEntryOffsets.reserve(SourceMgr.sloc_entry_size() - 1);
for (SourceManager::sloc_entry_iterator
@@ -836,7 +836,7 @@
Record.push_back(SourceMgr.getNextOffset());
Stream.EmitRecordWithBlob(SLocOffsetsAbbrev, Record,
(const char *)&SLocEntryOffsets.front(),
- SLocEntryOffsets.size() * 8);
+ SLocEntryOffsets.size()*sizeof(SLocEntryOffsets[0]));
// Write the source location entry preloads array, telling the PCH
// reader which source locations entries it should load eagerly.