Itoyori  v0.0.1
profiler.hpp File Reference
#include <limits>
#include <tuple>
#include <memory>
#include "ityr/common/util.hpp"
#include "ityr/common/mpi_util.hpp"
#include "ityr/common/options.hpp"
#include "ityr/common/topology.hpp"
#include "ityr/common/wallclock.hpp"
Include dependency graph for profiler.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  ityr::common::profiler::mode_disabled
 
struct  ityr::common::profiler::mode_stats
 
struct  ityr::common::profiler::mode_trace
 
struct  ityr::common::profiler::profiler_state
 
class  ityr::common::profiler::event
 
class  ityr::common::profiler::profiler< Mode >
 
class  ityr::common::profiler::event_initializer< Event >
 
class  ityr::common::profiler::interval_scope< Event >
 

Namespaces

 ityr
 
 ityr::common
 
 ityr::common::profiler
 

Macros

#define MLOG_BEGIN(...)   ((void*)0)
 
#define MLOG_END(...)
 
#define MLOG_READ_ARG(buf, type)   ((type){})
 
#define ITYR_PROFILER_RECORD(event, ...)    ityr::common::profiler::interval_scope<event> ITYR_ANON_VAR {__VA_ARGS__};
 

Typedefs

using ityr::common::profiler::mlog_data_t = void *
 
using ityr::common::profiler::mode = ITYR_CONCAT(mode_, ITYR_PROFILER_MODE)
 
using ityr::common::profiler::instance = singleton< profiler< mode > >
 
using ityr::common::profiler::interval_begin_data = mode::interval_begin_data
 

Functions

void ityr::common::profiler::mlog_die ()
 
void ityr::common::profiler::mlog_init (void **, int, size_t)
 
void ityr::common::profiler::mlog_flush_all (void **, FILE *)
 
void ityr::common::profiler::mlog_clear_all (void **)
 
template<typename Event , typename... Args>
interval_begin_data ityr::common::profiler::interval_begin (Args &&... args)
 
template<typename Event , typename... Args>
void ityr::common::profiler::interval_end (interval_begin_data ibd, Args &&... args)
 
template<typename PhaseFrom , typename PhaseTo >
void ityr::common::profiler::switch_phase ()
 
void ityr::common::profiler::begin ()
 
void ityr::common::profiler::end ()
 
void ityr::common::profiler::flush ()
 

Macro Definition Documentation

◆ ITYR_PROFILER_RECORD

#define ITYR_PROFILER_RECORD (   event,
  ... 
)     ityr::common::profiler::interval_scope<event> ITYR_ANON_VAR {__VA_ARGS__};

◆ MLOG_BEGIN

#define MLOG_BEGIN (   ...)    ((void*)0)

◆ MLOG_END

#define MLOG_END (   ...)

◆ MLOG_READ_ARG

#define MLOG_READ_ARG (   buf,
  type 
)    ((type){})