diff --git a/python/dune/codegen/pdelab/driver/timings.py b/python/dune/codegen/pdelab/driver/timings.py index 7089a0f15b3a3a40a2b11f76bda865b08135f984..fc8cf3b710700959575c4ba6fe937f544e047d0c 100644 --- a/python/dune/codegen/pdelab/driver/timings.py +++ b/python/dune/codegen/pdelab/driver/timings.py @@ -170,12 +170,16 @@ def init_region_timer(region): post_include("HP_DECLARE_TIMER({});".format(region), filetag="driver") +def get_region_marks(region): + return _sde_marks.setdefault(region, (2 * (len(_sde_marks) + 1), 2 * (len(_sde_marks) + 1) + 1)) + + def start_region_timer(region): if get_option("use_likwid"): return ["LIKWID_MARKER_START(\"{}\");".format(region)] elif get_option("use_sde"): - _sde_marks[region + '_start'] = len(_sde_marks) - return ["__SSC_MARK(0x{});".format(_sde_marks[region + '_start'])] + marks = get_region_marks(region) + return ["__SSC_MARK(0x{});".format(marks[0])] else: return ["HP_TIMER_START({});".format(region)] @@ -184,10 +188,9 @@ def stop_region_timer(region): if get_option("use_likwid"): return ["LIKWID_MARKER_STOP(\"{}\");".format(region)] elif get_option("use_sde"): - _sde_marks[region + '_stop'] = len(_sde_marks) - return ["__SSC_MARK(0x{});".format(_sde_marks[region + '_stop']), - "std::cout << \"Timed region {}: {} <--> {}\" << std::endl;".format(region, _sde_marks[region + '_start'], - _sde_marks[region + '_stop'])] + marks = get_region_marks(region) + return ["__SSC_MARK(0x{});".format(marks[1]), + "std::cout << \"Timed region {}: {} <--> {}\" << std::endl;".format(region, *marks)] else: timestream = name_timing_stream() return ["HP_TIMER_STOP({});".format(region),