aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/MachineOutliner.cpp
diff options
context:
space:
mode:
authorJessica Paquette <jpaquette@apple.com>2023-02-03 22:26:07 -0800
committerJessica Paquette <jpaquette@apple.com>2023-02-03 22:27:21 -0800
commit92d3672452db260f431b9219faf57c5f8c7b876b (patch)
treece6f16d6e6bbed4e802bb601c39a26837c64fe93 /llvm/lib/CodeGen/MachineOutliner.cpp
parent16749d28cc56b441dc252f7017fbf532ea41f8c4 (diff)
downloadllvm-92d3672452db260f431b9219faf57c5f8c7b876b.zip
llvm-92d3672452db260f431b9219faf57c5f8c7b876b.tar.gz
llvm-92d3672452db260f431b9219faf57c5f8c7b876b.tar.bz2
[MachineOutliner] Improve mapper statistics
Add a test for statistics as well. The mapper size stats were nested in a loop unnecessarily. Move them out. Give existing stats better names, and add one which also tracks the number of sentinels added.
Diffstat (limited to 'llvm/lib/CodeGen/MachineOutliner.cpp')
-rw-r--r--llvm/lib/CodeGen/MachineOutliner.cpp17
1 files changed, 10 insertions, 7 deletions
diff --git a/llvm/lib/CodeGen/MachineOutliner.cpp b/llvm/lib/CodeGen/MachineOutliner.cpp
index ef606925..856b9bf 100644
--- a/llvm/lib/CodeGen/MachineOutliner.cpp
+++ b/llvm/lib/CodeGen/MachineOutliner.cpp
@@ -89,11 +89,14 @@ STATISTIC(NumOutlined, "Number of candidates outlined");
STATISTIC(FunctionsCreated, "Number of functions created");
// Statistics for instruction mapping.
-STATISTIC(NumLegalInUnsignedVec, "Number of legal instrs in unsigned vector");
+STATISTIC(NumLegalInUnsignedVec, "Outlinable instructions mapped");
STATISTIC(NumIllegalInUnsignedVec,
- "Number of illegal instrs in unsigned vector");
-STATISTIC(NumInvisible, "Number of invisible instrs in unsigned vector");
-STATISTIC(UnsignedVecSize, "Size of unsigned vector");
+ "Unoutlinable instructions mapped + number of sentinel values");
+STATISTIC(NumSentinels, "Sentinel values inserted during mapping");
+STATISTIC(NumInvisible,
+ "Invisible instructions skipped during mapping");
+STATISTIC(UnsignedVecSize,
+ "Total number of instructions mapped and saved to mapping vector");
// Set to true if the user wants the outliner to run on linkonceodr linkage
// functions. This is false by default because the linker can dedupe linkonceodr
@@ -361,6 +364,7 @@ struct InstructionMapper {
// repeated substring.
mapToIllegalUnsigned(It, CanOutlineWithPrevInstr, UnsignedVecForMBB,
InstrListForMBB);
+ ++NumSentinels;
append_range(InstrList, InstrListForMBB);
append_range(UnsignedVec, UnsignedVecForMBB);
}
@@ -1005,10 +1009,9 @@ void MachineOutliner::populateMapper(InstructionMapper &Mapper, Module &M,
// MBB is suitable for outlining. Map it to a list of unsigneds.
Mapper.convertToUnsignedVec(MBB, *TII);
}
-
- // Statistics.
- UnsignedVecSize = Mapper.UnsignedVec.size();
}
+ // Statistics.
+ UnsignedVecSize = Mapper.UnsignedVec.size();
}
void MachineOutliner::initSizeRemarkInfo(