Jlm
Public Member Functions | Static Public Member Functions | Private Attributes | List of all members
jlm::llvm::AggregateAllocaSplitting::Statistics Class Referencefinal
Inheritance diagram for jlm::llvm::AggregateAllocaSplitting::Statistics:
Inheritance graph
[legend]
Collaboration diagram for jlm::llvm::AggregateAllocaSplitting::Statistics:
Collaboration graph
[legend]

Public Member Functions

 ~Statistics () noexcept override=default
 
 Statistics (util::FilePath filePath)
 
void start ()
 
void stop (const size_t numAggregateAllocaNodes, const size_t numAggregateStructAllocaNodes, const size_t numSplitableTypeAggregateAllocaNodes, const size_t numSplitAggregateAllocaNodes)
 
- Public Member Functions inherited from jlm::util::Statistics
 Statistics (const Statistics::Id &statisticsId, util::FilePath sourceFile)
 
Statistics::Id GetId () const noexcept
 
std::string_view GetName () const
 
const util::FilePathGetSourceFile () const
 
std::string Serialize (char fieldSeparator, char nameValueSeparator) const
 
bool HasMeasurement (const std::string &name) const noexcept
 
const MeasurementGetMeasurement (const std::string &name) const
 
template<typename T >
const T & GetMeasurementValue (const std::string &name) const
 
IteratorRange< MeasurementList::const_iterator > GetMeasurements () const
 
bool HasTimer (const std::string &name) const noexcept
 
size_t GetTimerElapsedNanoseconds (const std::string &name) const
 
IteratorRange< TimerList::const_iterator > GetTimers () const
 

Static Public Member Functions

static std::unique_ptr< Statisticscreate (util::FilePath filePath)
 

Private Attributes

const char * numAggregateAllocaNodesLabel_ = "#AggregateAllocaNodes"
 
const char * numAggregateStructAllocaNodesLabel_ = "#AggregateStructAllocaNodes"
 
const char * numSplitableTypeAggregateAllocaNodesLabel_ = "#SplitableTypeAggregateAllocaNodes"
 
const char * numSplitAggregateAllocaNodesLabel_ = "#SplitAggregateAllocaNodes"
 
const char * aggregateAllocaSplittingTimerLabel_ = "AggregateAllocaSplittingTime"
 

Additional Inherited Members

- Public Types inherited from jlm::util::Statistics
enum class  Id {
  FirstEnumValue , AggregateAllocaSplitting , Aggregation , AgnosticModRefSummarizer ,
  AliasAnalysisPrecisionEvaluation , AndersenAnalysis , Annotation , CommonNodeElimination ,
  ControlFlowRecovery , DataNodeToDelta , DeadNodeElimination , FunctionInlining ,
  IfConversion , InvariantValueRedirection , JlmToRvsdgConversion , LoopStrengthReduction ,
  LoopUnrolling , LoopUnswitching , MemoryStateEncoder , PullNodes ,
  PushNodes , ReduceNodes , RegionAwareModRefSummarizer , RvsdgConstruction ,
  RvsdgDestruction , RvsdgOptimization , RvsdgTreePrinter , ScalarEvolution ,
  StoreValueForwarding , LastEnumValue
}
 
using Measurement = std::variant< std::string, int64_t, uint64_t, double >
 
using MeasurementList = std::list< std::pair< std::string, Measurement > >
 
using TimerList = std::list< std::pair< std::string, util::Timer > >
 
- Protected Member Functions inherited from jlm::util::Statistics
template<typename T >
void AddMeasurement (std::string name, T value)
 
util::TimerAddTimer (std::string name)
 
util::TimerGetTimer (const std::string &name)
 
const util::TimerGetTimer (const std::string &name) const
 

Detailed Description

Definition at line 29 of file AggregateAllocaSplitting.cpp.

Constructor & Destructor Documentation

◆ ~Statistics()

jlm::llvm::AggregateAllocaSplitting::Statistics::~Statistics ( )
overridevirtualdefaultnoexcept

Reimplemented from jlm::util::Statistics.

◆ Statistics()

jlm::llvm::AggregateAllocaSplitting::Statistics::Statistics ( util::FilePath  filePath)
inlineexplicit

Definition at line 40 of file AggregateAllocaSplitting.cpp.

Member Function Documentation

◆ create()

static std::unique_ptr<Statistics> jlm::llvm::AggregateAllocaSplitting::Statistics::create ( util::FilePath  filePath)
inlinestatic

Definition at line 67 of file AggregateAllocaSplitting.cpp.

◆ start()

void jlm::llvm::AggregateAllocaSplitting::Statistics::start ( )
inline

Definition at line 45 of file AggregateAllocaSplitting.cpp.

◆ stop()

void jlm::llvm::AggregateAllocaSplitting::Statistics::stop ( const size_t  numAggregateAllocaNodes,
const size_t  numAggregateStructAllocaNodes,
const size_t  numSplitableTypeAggregateAllocaNodes,
const size_t  numSplitAggregateAllocaNodes 
)
inline

Definition at line 51 of file AggregateAllocaSplitting.cpp.

Member Data Documentation

◆ aggregateAllocaSplittingTimerLabel_

const char* jlm::llvm::AggregateAllocaSplitting::Statistics::aggregateAllocaSplittingTimerLabel_ = "AggregateAllocaSplittingTime"
private

Definition at line 35 of file AggregateAllocaSplitting.cpp.

◆ numAggregateAllocaNodesLabel_

const char* jlm::llvm::AggregateAllocaSplitting::Statistics::numAggregateAllocaNodesLabel_ = "#AggregateAllocaNodes"
private

Definition at line 31 of file AggregateAllocaSplitting.cpp.

◆ numAggregateStructAllocaNodesLabel_

const char* jlm::llvm::AggregateAllocaSplitting::Statistics::numAggregateStructAllocaNodesLabel_ = "#AggregateStructAllocaNodes"
private

Definition at line 32 of file AggregateAllocaSplitting.cpp.

◆ numSplitableTypeAggregateAllocaNodesLabel_

const char* jlm::llvm::AggregateAllocaSplitting::Statistics::numSplitableTypeAggregateAllocaNodesLabel_ = "#SplitableTypeAggregateAllocaNodes"
private

Definition at line 33 of file AggregateAllocaSplitting.cpp.

◆ numSplitAggregateAllocaNodesLabel_

const char* jlm::llvm::AggregateAllocaSplitting::Statistics::numSplitAggregateAllocaNodesLabel_ = "#SplitAggregateAllocaNodes"
private

Definition at line 34 of file AggregateAllocaSplitting.cpp.


The documentation for this class was generated from the following file: