aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/IR/ModuleSummaryIndex.cpp
diff options
context:
space:
mode:
authorMingming Liu <mingmingl@google.com>2024-09-06 16:38:17 -0700
committerGitHub <noreply@github.com>2024-09-06 16:38:17 -0700
commitd4ddf06b0c7f38612f334db71ef1d7a58a3cc8e0 (patch)
treed2a2858eb6caa0fa9ae46e6cda80994bf92ee158 /llvm/lib/IR/ModuleSummaryIndex.cpp
parent3a13c5a2862fdc957d751a7679581d5da151efc2 (diff)
downloadllvm-d4ddf06b0c7f38612f334db71ef1d7a58a3cc8e0.zip
llvm-d4ddf06b0c7f38612f334db71ef1d7a58a3cc8e0.tar.gz
llvm-d4ddf06b0c7f38612f334db71ef1d7a58a3cc8e0.tar.bz2
[NFCI]Remove EntryCount from FunctionSummary and clean up surrounding synthetic count passes. (#107471)
The primary motivation is to remove `EntryCount` from `FunctionSummary`. This frees 8 bytes out of `sizeof(FunctionSummary)` (136 bytes as of https://github.com/llvm/llvm-project/commit/64498c54831bed9cf069e0923b9b73678c6451d8). While I'm at it, this PR clean up {SummaryBasedOptimizations, SyntheticCountsPropagation} since they were not used and there are no plans to further invest on them. With this patch, bitcode writer writes a placeholder 0 at the byte offset of `EntryCount` and bitcode reader can parse the function entry count at the correct byte offset. Added a TODO to stop writing `EntryCount` and bump bitcode version
Diffstat (limited to 'llvm/lib/IR/ModuleSummaryIndex.cpp')
-rw-r--r--llvm/lib/IR/ModuleSummaryIndex.cpp8
1 files changed, 2 insertions, 6 deletions
diff --git a/llvm/lib/IR/ModuleSummaryIndex.cpp b/llvm/lib/IR/ModuleSummaryIndex.cpp
index 6713d32..a788e63 100644
--- a/llvm/lib/IR/ModuleSummaryIndex.cpp
+++ b/llvm/lib/IR/ModuleSummaryIndex.cpp
@@ -91,12 +91,11 @@ constexpr uint64_t ModuleSummaryIndex::BitcodeSummaryVersion;
uint64_t ModuleSummaryIndex::getFlags() const {
uint64_t Flags = 0;
+ // Flags & 0x4 is reserved. DO NOT REUSE.
if (withGlobalValueDeadStripping())
Flags |= 0x1;
if (skipModuleByDistributedBackend())
Flags |= 0x2;
- if (hasSyntheticEntryCounts())
- Flags |= 0x4;
if (enableSplitLTOUnit())
Flags |= 0x8;
if (partiallySplitLTOUnits())
@@ -124,10 +123,7 @@ void ModuleSummaryIndex::setFlags(uint64_t Flags) {
// Set on combined index only.
if (Flags & 0x2)
setSkipModuleByDistributedBackend();
- // 1 bit: HasSyntheticEntryCounts flag.
- // Set on combined index only.
- if (Flags & 0x4)
- setHasSyntheticEntryCounts();
+ // Flags & 0x4 is reserved. DO NOT REUSE.
// 1 bit: DisableSplitLTOUnit flag.
// Set on per module indexes. It is up to the client to validate
// the consistency of this flag across modules being linked.