diff options
Diffstat (limited to 'llvm/lib/CodeGen')
| -rw-r--r-- | llvm/lib/CodeGen/BranchFolding.cpp | 3 | 
1 files changed, 3 insertions, 0 deletions
diff --git a/llvm/lib/CodeGen/BranchFolding.cpp b/llvm/lib/CodeGen/BranchFolding.cpp index e0a7825a26c..af5fbd1202a 100644 --- a/llvm/lib/CodeGen/BranchFolding.cpp +++ b/llvm/lib/CodeGen/BranchFolding.cpp @@ -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());  | 

