timemory 3.3.0
Modular C++ Toolkit for Performance Analysis and Logging. Profiling API and Tools for C, C++, CUDA, Fortran, and Python. The C++ template API is essentially a framework to creating tools: it is designed to provide a unifying interface for recording various performance measurements alongside data logging and interfaces to other tools.
|
#include "timemory/compat/macros.h"
#include "timemory/general/source_location.hpp"
#include "timemory/macros/os.hpp"
#include "timemory/mpl/apply.hpp"
#include "timemory/utility/macros.hpp"
#include "timemory/utility/utility.hpp"
#include <cstdint>
#include <string>
#include "timemory/utility/bits/macros.hpp"
Go to the source code of this file.
Namespaces | |
namespace | tim |
Macros | |
#define | TIMEMORY_MACROS |
#define | TIMEMORY_OS_PATH_DELIMITER '/' |
#define | TIMEMORY_JOIN(delim, ...) ::tim::string::join(delim, __VA_ARGS__) |
#define | TIMEMORY_BLANK_LABEL(...) ::tim::string::join("", __VA_ARGS__) |
#define | TIMEMORY_BASIC_LABEL(...) ::tim::string::join("", _TIM_FUNC, __VA_ARGS__) |
#define | TIMEMORY_FULL_LABEL ::tim::string::join('/', _TIM_FUNC, _TIM_FILELINE) |
#define | TIMEMORY_LABEL(...) TIMEMORY_JOIN("", TIMEMORY_FULL_LABEL, __VA_ARGS__) |
#define | TIMEMORY_AUTO_TYPE(TYPE) ::tim::concepts::auto_type_t<TYPE> |
#define | TIMEMORY_COMP_TYPE(TYPE) ::tim::concepts::component_type_t<TYPE> |
#define | TIMEMORY_BLANK_MARKER(TYPE, ...) |
#define | TIMEMORY_BASIC_MARKER(TYPE, ...) |
#define | TIMEMORY_MARKER(TYPE, ...) |
#define | TIMEMORY_CONDITIONAL_BLANK_MARKER(COND, TYPE, ...) |
#define | TIMEMORY_CONDITIONAL_BASIC_MARKER(COND, TYPE, ...) |
#define | TIMEMORY_CONDITIONAL_MARKER(COND, TYPE, ...) |
#define | TIMEMORY_BLANK_POINTER(TYPE, ...) TIMEMORY_CONDITIONAL_BLANK_MARKER(::tim::settings::enabled(), TYPE, __VA_ARGS__) |
#define | TIMEMORY_BASIC_POINTER(TYPE, ...) TIMEMORY_CONDITIONAL_BASIC_MARKER(::tim::settings::enabled(), TYPE, __VA_ARGS__) |
#define | TIMEMORY_POINTER(TYPE, ...) TIMEMORY_CONDITIONAL_MARKER(::tim::settings::enabled(), TYPE, __VA_ARGS__) |
#define | TIMEMORY_BLANK_CALIPER(ID, TYPE, ...) |
#define | TIMEMORY_BASIC_CALIPER(ID, TYPE, ...) |
#define | TIMEMORY_CALIPER(ID, TYPE, ...) |
#define | TIMEMORY_STATIC_BLANK_CALIPER(ID, TYPE, ...) |
#define | TIMEMORY_STATIC_BASIC_CALIPER(ID, TYPE, ...) |
#define | TIMEMORY_STATIC_CALIPER(ID, TYPE, ...) |
#define | TIMEMORY_CALIPER_REFERENCE(ID) std::ref(_TIM_VARIABLE(ID)).get() |
#define | TIMEMORY_CALIPER_APPLY(ID, FUNC, ...) _TIM_VARIABLE(ID).FUNC(__VA_ARGS__) |
#define | TIMEMORY_CALIPER_TYPE_APPLY(ID, TYPE, FUNC, ...) _TIM_VARIABLE(ID).type_apply<TYPE>(FUNC, __VA_ARGS__) |
#define | TIMEMORY_CALIPER_APPLY0(ID, FUNC) _TIM_VARIABLE(ID).FUNC() |
#define | TIMEMORY_CALIPER_TYPE_APPLY0(ID, TYPE, FUNC) _TIM_VARIABLE(ID).type_apply<TYPE>(FUNC) |
#define | TIMEMORY_CALIPER_LAMBDA(ID, LAMBDA, ...) LAMBDA(_TIM_VARIABLE(ID), __VA_ARGS__) |
#define | TIMEMORY_CALIPER_TYPE_LAMBDA(ID, TYPE, LAMBDA, ...) LAMBDA(_TIM_VARIABLE(ID).get<TYPE>(), __VA_ARGS__) |
#define | TIMEMORY_BLANK_HANDLE(TYPE, ...) TYPE(TIMEMORY_INLINE_SOURCE_LOCATION(blank, __VA_ARGS__)) |
#define | TIMEMORY_BASIC_HANDLE(TYPE, ...) TYPE(TIMEMORY_INLINE_SOURCE_LOCATION(basic, __VA_ARGS__)) |
#define | TIMEMORY_HANDLE(TYPE, ...) TYPE(TIMEMORY_INLINE_SOURCE_LOCATION(full, __VA_ARGS__)) |
#define | TIMEMORY_BLANK_RAW_POINTER(TYPE, ...) |
#define | TIMEMORY_BASIC_RAW_POINTER(TYPE, ...) |
#define | TIMEMORY_RAW_POINTER(TYPE, ...) |
#define | TIMEMORY_DEBUG_BLANK_MARKER(TYPE, ...) |
#define | TIMEMORY_DEBUG_BASIC_MARKER(TYPE, ...) |
#define | TIMEMORY_DEBUG_MARKER(TYPE, ...) |
#define | TIMEMORY_CONFIGURE(TYPE, ...) TYPE::configure(__VA_ARGS__) |
Typedefs | |
using | tim::string = tim::mpl::apply< std::string > |
#define TIMEMORY_AUTO_TYPE | ( | TYPE | ) | ::tim::concepts::auto_type_t<TYPE> |
Definition at line 110 of file macros.hpp.
#define TIMEMORY_BASIC_CALIPER | ( | ID, | |
TYPE, | |||
... | |||
) |
Definition at line 206 of file macros.hpp.
#define TIMEMORY_BASIC_HANDLE | ( | TYPE, | |
... | |||
) | TYPE(TIMEMORY_INLINE_SOURCE_LOCATION(basic, __VA_ARGS__)) |
Definition at line 277 of file macros.hpp.
#define TIMEMORY_BASIC_LABEL | ( | ... | ) | ::tim::string::join("", _TIM_FUNC, __VA_ARGS__) |
Definition at line 98 of file macros.hpp.
#define TIMEMORY_BASIC_MARKER | ( | TYPE, | |
... | |||
) |
Definition at line 129 of file macros.hpp.
#define TIMEMORY_BASIC_POINTER | ( | TYPE, | |
... | |||
) | TIMEMORY_CONDITIONAL_BASIC_MARKER(::tim::settings::enabled(), TYPE, __VA_ARGS__) |
Definition at line 186 of file macros.hpp.
#define TIMEMORY_BASIC_RAW_POINTER | ( | TYPE, | |
... | |||
) |
Definition at line 294 of file macros.hpp.
#define TIMEMORY_BLANK_CALIPER | ( | ID, | |
TYPE, | |||
... | |||
) |
Definition at line 200 of file macros.hpp.
#define TIMEMORY_BLANK_HANDLE | ( | TYPE, | |
... | |||
) | TYPE(TIMEMORY_INLINE_SOURCE_LOCATION(blank, __VA_ARGS__)) |
Definition at line 272 of file macros.hpp.
#define TIMEMORY_BLANK_LABEL | ( | ... | ) | ::tim::string::join("", __VA_ARGS__) |
Definition at line 94 of file macros.hpp.
#define TIMEMORY_BLANK_MARKER | ( | TYPE, | |
... | |||
) |
Definition at line 122 of file macros.hpp.
#define TIMEMORY_BLANK_POINTER | ( | TYPE, | |
... | |||
) | TIMEMORY_CONDITIONAL_BLANK_MARKER(::tim::settings::enabled(), TYPE, __VA_ARGS__) |
Definition at line 181 of file macros.hpp.
#define TIMEMORY_BLANK_RAW_POINTER | ( | TYPE, | |
... | |||
) |
Definition at line 287 of file macros.hpp.
#define TIMEMORY_CALIPER | ( | ID, | |
TYPE, | |||
... | |||
) |
Definition at line 212 of file macros.hpp.
#define TIMEMORY_CALIPER_APPLY | ( | ID, | |
FUNC, | |||
... | |||
) | _TIM_VARIABLE(ID).FUNC(__VA_ARGS__) |
Definition at line 240 of file macros.hpp.
#define TIMEMORY_CALIPER_APPLY0 | ( | ID, | |
FUNC | |||
) | _TIM_VARIABLE(ID).FUNC() |
Definition at line 249 of file macros.hpp.
#define TIMEMORY_CALIPER_LAMBDA | ( | ID, | |
LAMBDA, | |||
... | |||
) | LAMBDA(_TIM_VARIABLE(ID), __VA_ARGS__) |
Definition at line 258 of file macros.hpp.
#define TIMEMORY_CALIPER_REFERENCE | ( | ID | ) | std::ref(_TIM_VARIABLE(ID)).get() |
Definition at line 236 of file macros.hpp.
#define TIMEMORY_CALIPER_TYPE_APPLY | ( | ID, | |
TYPE, | |||
FUNC, | |||
... | |||
) | _TIM_VARIABLE(ID).type_apply<TYPE>(FUNC, __VA_ARGS__) |
Definition at line 244 of file macros.hpp.
#define TIMEMORY_CALIPER_TYPE_APPLY0 | ( | ID, | |
TYPE, | |||
FUNC | |||
) | _TIM_VARIABLE(ID).type_apply<TYPE>(FUNC) |
Definition at line 253 of file macros.hpp.
#define TIMEMORY_CALIPER_TYPE_LAMBDA | ( | ID, | |
TYPE, | |||
LAMBDA, | |||
... | |||
) | LAMBDA(_TIM_VARIABLE(ID).get<TYPE>(), __VA_ARGS__) |
Definition at line 263 of file macros.hpp.
#define TIMEMORY_COMP_TYPE | ( | TYPE | ) | ::tim::concepts::component_type_t<TYPE> |
Definition at line 114 of file macros.hpp.
#define TIMEMORY_CONDITIONAL_BASIC_MARKER | ( | COND, | |
TYPE, | |||
... | |||
) |
Definition at line 157 of file macros.hpp.
#define TIMEMORY_CONDITIONAL_BLANK_MARKER | ( | COND, | |
TYPE, | |||
... | |||
) |
Definition at line 147 of file macros.hpp.
#define TIMEMORY_CONDITIONAL_MARKER | ( | COND, | |
TYPE, | |||
... | |||
) |
Definition at line 167 of file macros.hpp.
#define TIMEMORY_CONFIGURE | ( | TYPE, | |
... | |||
) | TYPE::configure(__VA_ARGS__) |
Definition at line 338 of file macros.hpp.
#define TIMEMORY_DEBUG_BASIC_MARKER | ( | TYPE, | |
... | |||
) |
Definition at line 332 of file macros.hpp.
#define TIMEMORY_DEBUG_BLANK_MARKER | ( | TYPE, | |
... | |||
) |
Definition at line 331 of file macros.hpp.
#define TIMEMORY_DEBUG_MARKER | ( | TYPE, | |
... | |||
) |
Definition at line 333 of file macros.hpp.
#define TIMEMORY_FULL_LABEL ::tim::string::join('/', _TIM_FUNC, _TIM_FILELINE) |
Definition at line 102 of file macros.hpp.
#define TIMEMORY_HANDLE | ( | TYPE, | |
... | |||
) | TYPE(TIMEMORY_INLINE_SOURCE_LOCATION(full, __VA_ARGS__)) |
Definition at line 282 of file macros.hpp.
#define TIMEMORY_JOIN | ( | delim, | |
... | |||
) | ::tim::string::join(delim, __VA_ARGS__) |
Definition at line 90 of file macros.hpp.
#define TIMEMORY_LABEL | ( | ... | ) | TIMEMORY_JOIN("", TIMEMORY_FULL_LABEL, __VA_ARGS__) |
Definition at line 106 of file macros.hpp.
#define TIMEMORY_MACROS |
Definition at line 60 of file macros.hpp.
#define TIMEMORY_MARKER | ( | TYPE, | |
... | |||
) |
Definition at line 136 of file macros.hpp.
#define TIMEMORY_OS_PATH_DELIMITER '/' |
Definition at line 69 of file macros.hpp.
#define TIMEMORY_POINTER | ( | TYPE, | |
... | |||
) | TIMEMORY_CONDITIONAL_MARKER(::tim::settings::enabled(), TYPE, __VA_ARGS__) |
Definition at line 191 of file macros.hpp.
#define TIMEMORY_RAW_POINTER | ( | TYPE, | |
... | |||
) |
Definition at line 301 of file macros.hpp.
#define TIMEMORY_STATIC_BASIC_CALIPER | ( | ID, | |
TYPE, | |||
... | |||
) |
Definition at line 224 of file macros.hpp.
#define TIMEMORY_STATIC_BLANK_CALIPER | ( | ID, | |
TYPE, | |||
... | |||
) |
Definition at line 218 of file macros.hpp.
#define TIMEMORY_STATIC_CALIPER | ( | ID, | |
TYPE, | |||
... | |||
) |
Definition at line 230 of file macros.hpp.