[llvm] r282274 - [RegisterBankInfo] Add statistics for dynamic partial mappings.

Quentin Colombet via llvm-commits llvm-commits at lists.llvm.org
Fri Sep 23 11:38:06 PDT 2016


Author: qcolombet
Date: Fri Sep 23 13:38:06 2016
New Revision: 282274

URL: http://llvm.org/viewvc/llvm-project?rev=282274&view=rev
Log:
[RegisterBankInfo] Add statistics for dynamic partial mappings.

Collect statistics about the number of partial mappings dynamically
allocated and accessed. Ultimately, when the whole TableGen
infrastructure is set, those numbers should be zero.

Modified:
    llvm/trunk/lib/CodeGen/GlobalISel/RegisterBankInfo.cpp

Modified: llvm/trunk/lib/CodeGen/GlobalISel/RegisterBankInfo.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/GlobalISel/RegisterBankInfo.cpp?rev=282274&r1=282273&r2=282274&view=diff
==============================================================================
--- llvm/trunk/lib/CodeGen/GlobalISel/RegisterBankInfo.cpp (original)
+++ llvm/trunk/lib/CodeGen/GlobalISel/RegisterBankInfo.cpp Fri Sep 23 13:38:06 2016
@@ -13,6 +13,7 @@
 #include "llvm/CodeGen/GlobalISel/RegisterBankInfo.h"
 #include "llvm/ADT/SmallString.h"
 #include "llvm/ADT/SmallVector.h"
+#include "llvm/ADT/Statistic.h"
 #include "llvm/ADT/iterator_range.h"
 #include "llvm/CodeGen/GlobalISel/RegisterBank.h"
 #include "llvm/CodeGen/MachineBasicBlock.h"
@@ -32,6 +33,11 @@
 
 using namespace llvm;
 
+STATISTIC(NumPartialMappingsCreated,
+          "Number of partial mappings dynamically created");
+STATISTIC(NumPartialMappingsAccessed,
+          "Number of partial mappings dynamically accessed");
+
 const unsigned RegisterBankInfo::DefaultMappingID = UINT_MAX;
 const unsigned RegisterBankInfo::InvalidMappingID = UINT_MAX - 1;
 
@@ -309,10 +315,15 @@ RegisterBankInfo::getInstrMappingImpl(co
 const RegisterBankInfo::PartialMapping &
 RegisterBankInfo::getPartialMapping(unsigned StartIdx, unsigned Length,
                                     const RegisterBank &RegBank) const {
+  ++NumPartialMappingsAccessed;
+
   hash_code Hash = hash_combine(StartIdx, Length, RegBank.getID());
   const auto &It = MapOfPartialMappings.find(Hash);
   if (It != MapOfPartialMappings.end())
     return It->second;
+
+  ++NumPartialMappingsCreated;
+
   PartialMapping &PartMapping = MapOfPartialMappings[Hash];
   PartMapping = PartialMapping{StartIdx, Length, RegBank};
   return PartMapping;




More information about the llvm-commits mailing list