Add another statistic to measure code size due to tail duplication.
authorBob Wilson <bob.wilson@apple.com>
Wed, 18 Nov 2009 22:12:31 +0000 (22:12 +0000)
committerBob Wilson <bob.wilson@apple.com>
Wed, 18 Nov 2009 22:12:31 +0000 (22:12 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89254 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/BranchFolding.cpp

index e0a7825a26ceb95cc09de78f04e022eb0ba6ca72..af5fbd1202a726ae86967d6fa36c12fdd655da27 100644 (file)
@@ -42,6 +42,7 @@ STATISTIC(NumDeadBlocks, "Number of dead blocks removed");
 STATISTIC(NumBranchOpts, "Number of branches optimized");
 STATISTIC(NumTailMerge , "Number of block tails merged");
 STATISTIC(NumTailDups  , "Number of tail duplicated blocks");
+STATISTIC(NumInstrDups , "Additional instructions due to tail duplication");
 
 static cl::opt<cl::boolOrDefault> FlagEnableTailMerge("enable-tail-merge",
                               cl::init(cl::BOU_UNSET), cl::Hidden);
@@ -1020,6 +1021,7 @@ bool BranchFolder::TailDuplicateBlocks(MachineFunction &MF) {
 
     // If it is dead, remove it.
     if (MBB->pred_empty()) {
+      NumInstrDups -= MBB->size();
       RemoveDeadBlock(MBB);
       MadeChange = true;
       ++NumDeadBlocks;
@@ -1100,6 +1102,7 @@ bool BranchFolder::TailDuplicate(MachineBasicBlock *TailBB,
       MachineInstr *NewMI = MF.CloneMachineInstr(I);
       PredBB->insert(PredBB->end(), NewMI);
     }
+    NumInstrDups += TailBB->size() - 1; // subtract one for removed branch
 
     // Update the CFG.
     PredBB->removeSuccessor(PredBB->succ_begin());