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.
types.hpp File Reference
#include "timemory/api.hpp"
#include "timemory/components/properties.hpp"
#include "timemory/components/skeletons.hpp"
#include "timemory/mpl/quirks.hpp"
#include "timemory/utility/types.hpp"
#include <cstdint>
#include <iostream>
#include <string>
#include <type_traits>
#include "timemory/components/allinea/types.hpp"
#include "timemory/components/base/types.hpp"
#include "timemory/components/caliper/types.hpp"
#include "timemory/components/craypat/types.hpp"
#include "timemory/components/cuda/types.hpp"
#include "timemory/components/cupti/types.hpp"
#include "timemory/components/data_tracker/types.hpp"
#include "timemory/components/gotcha/types.hpp"
#include "timemory/components/gperftools/types.hpp"
#include "timemory/components/hip/types.hpp"
#include "timemory/components/io/types.hpp"
#include "timemory/components/likwid/types.hpp"
#include "timemory/components/network/types.hpp"
#include "timemory/components/ompt/types.hpp"
#include "timemory/components/papi/types.hpp"
#include "timemory/components/perfetto/types.hpp"
#include "timemory/components/printer/types.hpp"
#include "timemory/components/roofline/types.hpp"
#include "timemory/components/rusage/types.hpp"
#include "timemory/components/tau_marker/types.hpp"
#include "timemory/components/timestamp/types.hpp"
#include "timemory/components/timing/types.hpp"
#include "timemory/components/trip_count/types.hpp"
#include "timemory/components/user_bundle/types.hpp"
#include "timemory/components/vtune/types.hpp"
#include "timemory/mpl/available.hpp"
+ Include dependency graph for types.hpp:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  tim::component::nothing
 

Namespaces

namespace  tim
 
namespace  tim::component
 

Typedefs

template<bool B, typename T = int>
using tim::component::enable_if_t = typename std::enable_if< B, T >::type
 

Functions

 TIMEMORY_DEFINE_CONCRETE_TRAIT (is_available, quirk::explicit_start, false_type) TIMEMORY_DEFINE_CONCRETE_TRAIT(is_available
 
false_type TIMEMORY_DEFINE_CONCRETE_TRAIT (is_available, quirk::no_init, false_type) namespace std
 

Detailed Description

This is a declaration of all the component structs. Care should be taken to make sure that this includes a minimal number of additional headers.

Definition in file types.hpp.

Function Documentation

◆ TIMEMORY_DEFINE_CONCRETE_TRAIT() [1/2]

TIMEMORY_DEFINE_CONCRETE_TRAIT ( is_available  ,
quirk::explicit_start  ,
false_type   
)

◆ TIMEMORY_DEFINE_CONCRETE_TRAIT() [2/2]

false_type TIMEMORY_DEFINE_CONCRETE_TRAIT ( is_available  ,
quirk::no_init  ,
false_type   
)

Definition at line 102 of file types.hpp.

113{
114//
115//--------------------------------------------------------------------------------------//
116//
117template <typename... Types>
118TSTAG(struct)
119tuple_size<tim::lightweight_tuple<Types...>>
120{
121private:
122 using type = tim::stl_tuple_t<Types...>;
123
124public:
125 static constexpr size_t value = tuple_size<type>::value;
126};
127//
128//--------------------------------------------------------------------------------------//
129//
130template <typename Tag, typename... Types>
131TSTAG(struct)
132tuple_size<tim::component_bundle<Tag, Types...>>
133{
134private:
135 // component_bundle does not apply concat
136 using type = tim::convert_t<tim::mpl::available_t<tuple<Types...>>, tuple<>>;
137
138public:
139 static constexpr size_t value = tuple_size<type>::value;
140};
141//
142//--------------------------------------------------------------------------------------//
143//
144template <typename... Types>
145TSTAG(struct)
146tuple_size<tim::component_tuple<Types...>>
147{
148private:
149 using type = tim::stl_tuple_t<Types...>;
150
151public:
152 static constexpr size_t value = tuple_size<type>::value;
153};
154//
155//--------------------------------------------------------------------------------------//
156//
157template <typename... Types>
158TSTAG(struct)
159tuple_size<tim::component_list<Types...>>
160{
161private:
162 using type = tim::stl_tuple_t<Types...>;
163
164public:
165 static constexpr size_t value = tuple_size<type>::value;
166};
167//
168//--------------------------------------------------------------------------------------//
169//
170template <typename Tag, typename... Types>
171TSTAG(struct)
172tuple_size<tim::auto_bundle<Tag, Types...>>
173{
174private:
175 // auto_bundle does not apply concat
176 using type = tim::convert_t<tim::mpl::available_t<tuple<Types...>>, tuple<>>;
177
178public:
179 static constexpr size_t value = tuple_size<type>::value;
180};
181//
182//--------------------------------------------------------------------------------------//
183//
184template <typename... Types>
185TSTAG(struct)
186tuple_size<tim::auto_tuple<Types...>>
187{
188private:
189 using type = tim::stl_tuple_t<Types...>;
190
191public:
192 static constexpr size_t value = tuple_size<type>::value;
193};
194//
195//--------------------------------------------------------------------------------------//
196//
197template <typename... Types>
198TSTAG(struct)
199tuple_size<tim::auto_list<Types...>>
200{
201private:
202 using type = tim::stl_tuple_t<Types...>;
203
204public:
205 static constexpr size_t value = tuple_size<type>::value;
206};
207//
208//--------------------------------------------------------------------------------------//
209//
210#if defined(TIMEMORY_USE_DEPRECATED)
211//
212template <typename Tuple, typename List>
213TSTAG(struct)
214tuple_size<tim::component_hybrid<Tuple, List>>
215{
216public:
217 static constexpr auto value = tuple_size<Tuple>::value + tuple_size<List>::value;
218};
219//
220//--------------------------------------------------------------------------------------//
221//
222template <typename Tuple, typename List>
223TSTAG(struct)
224tuple_size<tim::auto_hybrid<Tuple, List>>
225{
226public:
227 using value_type = size_t;
228 static constexpr auto value = tuple_size<Tuple>::value + tuple_size<List>::value;
229};
230//
231#endif
232//
233} // namespace std
impl::filter_false< trait::is_available, T > available_t
Definition: available.hpp:324
Definition: kokkosp.cpp:39
convert_t< mpl::available_t< concat< T... > >, std::tuple<> > stl_tuple_t
Definition: available.hpp:330
typename impl::convert< T, U >::type convert_t
Definition: types.hpp:855
typename component_bundle
Definition: types.hpp:221
#define TSTAG(X)
\macro TSTAG
Definition: types.hpp:45