of 64 bits. This cuts 400KB off the PCH file for cocoa (7.1 ->
6.7MB):
Before:
Record Histogram:
Count # Bits % Abv Record Kind
1 14296 SOURCE_LOCATION_PRELOADS
1
1699598 100.00 SOURCE_LOCATION_OFFSETS
1
1870766 100.00 METHOD_POOL
1 212988 100.00 SELECTOR_OFFSETS
1 88 STATISTICS
1 106 SPECIAL_TYPES
1
18033788 100.00 IDENTIFIER_TABLE
1
1806428 100.00 IDENTIFIER_OFFSET
1 170 100.00 TARGET_TRIPLE
1 268 LANGUAGE_OPTIONS
1
5168252 100.00 DECL_OFFSET
1 952700 100.00 TYPE_OFFSET
After:
Record Histogram:
Count # Bits % Abv Record Kind
1 14296 SOURCE_LOCATION_PRELOADS
1
1699598 100.00 SOURCE_LOCATION_OFFSETS
1
1870766 100.00 METHOD_POOL
1 212988 100.00 SELECTOR_OFFSETS
1 88 STATISTICS
1 106 SPECIAL_TYPES
1
18033788 100.00 IDENTIFIER_TABLE
1
1806428 100.00 IDENTIFIER_OFFSET
1 170 100.00 TARGET_TRIPLE
1 268 LANGUAGE_OPTIONS
1
2584156 100.00 DECL_OFFSET
1 476380 100.00 TYPE_OFFSET
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70216
91177308-0d34-0410-b5e6-
96231b3b80d8
/// \brief Offset of each type within the bitstream, indexed by the
/// type ID, or the representation of a Type*.
- const uint64_t *TypeOffsets;
+ const uint32_t *TypeOffsets;
/// \brief Types that have already been loaded from the PCH file.
///
/// \brief Offset of each declaration within the bitstream, indexed
/// by the declaration ID (-1).
- const uint64_t *DeclOffsets;
+ const uint32_t *DeclOffsets;
/// \brief Declarations that have already been loaded from the PCH file.
///
/// \brief Offset of each declaration in the bitstream, indexed by
/// the declaration's ID.
- llvm::SmallVector<uint64_t, 16> DeclOffsets;
+ std::vector<uint32_t> DeclOffsets;
/// \brief Queue containing the declarations that we still need to
/// emit.
/// \brief Offset of each type in the bitstream, indexed by
/// the type's ID.
- llvm::SmallVector<uint64_t, 16> TypeOffsets;
+ std::vector<uint32_t> TypeOffsets;
/// \brief The type ID that will be assigned to the next new type.
pch::TypeID NextTypeID;
Error("Duplicate TYPE_OFFSET record in PCH file");
return Failure;
}
- TypeOffsets = (const uint64_t *)BlobStart;
+ TypeOffsets = (const uint32_t *)BlobStart;
TypesLoaded.resize(Record[0]);
break;
Error("Duplicate DECL_OFFSET record in PCH file");
return Failure;
}
- DeclOffsets = (const uint64_t *)BlobStart;
+ DeclOffsets = (const uint32_t *)BlobStart;
DeclsLoaded.resize(Record[0]);
break;
Record.push_back(TypeOffsets.size());
Stream.EmitRecordWithBlob(TypeOffsetAbbrev, Record,
(const char *)&TypeOffsets.front(),
- TypeOffsets.size() * sizeof(uint64_t));
+ TypeOffsets.size() * sizeof(TypeOffsets[0]));
// Write the declaration offsets array
Abbrev = new BitCodeAbbrev();
Record.push_back(DeclOffsets.size());
Stream.EmitRecordWithBlob(DeclOffsetAbbrev, Record,
(const char *)&DeclOffsets.front(),
- DeclOffsets.size() * sizeof(uint64_t));
+ DeclOffsets.size() * sizeof(DeclOffsets[0]));
// Write the record of special types.
Record.clear();