@@ -32,13 +32,19 @@ class Cxx(Language):
32
32
def get (self ) -> str :
33
33
return "cxx"
34
34
35
+ def end_string (self ) -> str :
36
+ return "#pragma tuner stop"
37
+
35
38
36
39
class Fortran (Language ):
37
40
"""Class to represent Fortran code"""
38
41
39
42
def get (self ) -> str :
40
43
return "fortran"
41
44
45
+ def end_string (self ) -> str :
46
+ return "!$tuner stop"
47
+
42
48
43
49
class Code (object ):
44
50
"""Class to represent the directive and host code of the application"""
@@ -356,24 +362,20 @@ def extract_directive_code(code: str, langs: Code, kernel_name: str = None) -> d
356
362
"""Extract explicitly marked directive sections from code"""
357
363
if is_cxx (langs .language ):
358
364
start_string = "#pragma tuner start"
359
- end_string = "#pragma tuner stop"
360
365
elif is_fortran (langs .language ):
361
366
start_string = "!$tuner start"
362
- end_string = "!$tuner stop"
363
367
364
- return extract_code (start_string , end_string , code , langs , kernel_name )
368
+ return extract_code (start_string , langs . language . end_string () , code , langs , kernel_name )
365
369
366
370
367
371
def extract_initialization_code (code : str , langs : Code ) -> str :
368
372
"""Extract the initialization section from code"""
369
373
if is_cxx (langs .language ):
370
374
start_string = "#pragma tuner initialize"
371
- end_string = "#pragma tuner stop"
372
375
elif is_fortran (langs .language ):
373
376
start_string = "!$tuner initialize"
374
- end_string = "!$tuner stop"
375
377
376
- init_code = extract_code (start_string , end_string , code , langs )
378
+ init_code = extract_code (start_string , langs . language . end_string () , code , langs )
377
379
if len (init_code ) >= 1 :
378
380
return "\n " .join (init_code .values ()) + "\n "
379
381
else :
@@ -384,12 +386,10 @@ def extract_deinitialization_code(code: str, langs: Code) -> str:
384
386
"""Extract the deinitialization section from code"""
385
387
if is_cxx (langs .language ):
386
388
start_string = "#pragma tuner deinitialize"
387
- end_string = "#pragma tuner stop"
388
389
elif is_fortran (langs .language ):
389
390
start_string = "!$tuner deinitialize"
390
- end_string = "!$tuner stop"
391
391
392
- init_code = extract_code (start_string , end_string , code , langs )
392
+ init_code = extract_code (start_string , langs . language . end_string () , code , langs )
393
393
if len (init_code ) >= 1 :
394
394
return "\n " .join (init_code .values ()) + "\n "
395
395
else :
0 commit comments