Actual source code: timer_f.h
1: ! Copyright (c) 2019-2020 University of Oregon
2: ! Distributed under the BSD Software License
3: ! (See accompanying file LICENSE.txt)
5: #ifdef PERFSTUBS_USE_TIMERS
7: !
8: ! Macro API for option of entirely disabling at compile time
9: ! To use this API, set the Macro PERFSTUBS_USE_TIMERS on the command
10: ! line or in a config.h file, however your project does it
11: !
13: #define PERFSTUBS_INITIALIZE() call ps_initialize()
14: #define PERFSTUBS_FINALIZE() call ps_finalize()
15: #define PERFSTUBS_DUMP_DATA() call ps_dump_data()
16: #define PERFSTUBS_REGISTER_THREAD() call ps_register_thread()
17: #define PERFSTUBS_TIMER_CREATE(_timer_object, _timer_name) \
18: call ps_timer_create_fortran(_timer_object, _timer_name//CHAR(0))
19: #define PERFSTUBS_TIMER_START(_timer_object) \
20: call ps_timer_start_fortran(_timer_object)
21: #define PERFSTUBS_TIMER_STOP(_timer_object) \
22: call ps_timer_stop_fortran(_timer_object)
23: #define PERFSTUBS_SET_PARAMETER(_parameter_name, parameter_value) \
24: call ps_set_parameter(_parameter_name//CHAR(0), parameter_value)
25: #define PERFSTUBS_DYNAMIC_PHASE_START(_phase_prefix, _iteration_index) \
26: call ps_dynamic_phase_start(_phase_prefix//CHAR(0), _iteration_index)
27: #define PERFSTUBS_DYNAMIC_PHASE_STOP(_phase_prefix, _iteration_index) \
28: call ps_dynamic_phase_stop(_phase_prefix//CHAR(0), _iteration_index)
29: #define PERFSTUBS_CREATE_COUNTER(_counter_object, _name) \
30: call ps_create_counter_fortran(_counter_object, _name//CHAR(0))
31: #define PERFSTUBS_SAMPLE_COUNTER(_counter_object, _value) \
32: call ps_sample_counter_fortran(_counter_object, _value)
33: #define PERFSTUBS_METADATA(_name, _value) \
34: call ps_set_metadata(_name//CHAR(0), _value//CHAR(0))
36: ! // defined(PERFSTUBS_USE_TIMERS)
37: #else
39: #define PERFSTUBS_INIT()
40: #define PERFSTUBS_DUMP_DATA()
41: #define PERFSTUBS_REGISTER_THREAD()
42: #define PERFSTUBS_TIMER_CREATE(_timer_object, _timer_name)
43: #define PERFSTUBS_TIMER_START(_timer_object)
44: #define PERFSTUBS_TIMER_STOP(_timer_object)
45: #define PERFSTUBS_SET_PARAMETER(_parameter_name, _parameter_value)
46: #define PERFSTUBS_DYNAMIC_PHASE_START(_phase_prefix, _iteration_index)
47: #define PERFSTUBS_DYNAMIC_PHASE_STOP(_phase_prefix, _iteration_index)
48: #define PERFSTUBS_TIMER_START_FUNC()
49: #define PERFSTUBS_TIMER_STOP_FUNC()
50: #define PERFSTUBS_CREATE_COUNTER(_counter_object, _name)
51: #define PERFSTUBS_SAMPLE_COUNTER(_counter_object, _value)
52: #define PERFSTUBS_METADATA(_name, _value)
54: ! // defined(PERFSTUBS_USE_TIMERS)
55: #endif