@@ -63,59 +63,59 @@ def is_fortran(lang: Language) -> bool:
63
63
return isinstance (lang , Fortran )
64
64
65
65
66
- def line_contains_pragma (line : str , lang : Language ) -> bool :
66
+ def line_contains_openacc_pragma (line : str , lang : Language ) -> bool :
67
67
"""Check if line contains OpenACC pragma or not"""
68
68
if is_cxx (lang ):
69
- return line_contains_pragma_cxx (line )
69
+ return line_contains_openacc_pragma_cxx (line )
70
70
elif is_fortran (lang ):
71
- return line_contains_pragma_fortran (line )
71
+ return line_contains_openacc_pragma_fortran (line )
72
72
return False
73
73
74
74
75
- def line_contains_pragma_cxx (line : str ) -> bool :
75
+ def line_contains_openacc_pragma_cxx (line : str ) -> bool :
76
76
"""Check if a line of code contains a C++ OpenACC pragma or not"""
77
77
return "#pragma acc" in line
78
78
79
79
80
- def line_contains_pragma_fortran (line : str ) -> bool :
80
+ def line_contains_openacc_pragma_fortran (line : str ) -> bool :
81
81
"""Check if a line of code contains a Fortran OpenACC pragma or not"""
82
82
return "!$acc" in line
83
83
84
84
85
- def create_data_directive (name : str , size : int , lang : Language ) -> str :
85
+ def create_data_directive_openacc (name : str , size : int , lang : Language ) -> str :
86
86
"""Create a data directive for a given language"""
87
87
if is_cxx (lang ):
88
- return create_data_directive_cxx (name , size )
88
+ return create_data_directive_openacc_cxx (name , size )
89
89
elif is_fortran (lang ):
90
- return create_data_directive_fortran (name , size )
90
+ return create_data_directive_openacc_fortran (name , size )
91
91
return ""
92
92
93
93
94
- def create_data_directive_cxx (name : str , size : int ) -> str :
94
+ def create_data_directive_openacc_cxx (name : str , size : int ) -> str :
95
95
"""Create C++ OpenACC code to allocate and copy data"""
96
96
return f"#pragma acc enter data create({ name } [:{ size } ])\n #pragma acc update device({ name } [:{ size } ])\n "
97
97
98
98
99
- def create_data_directive_fortran (name : str , size : int ) -> str :
99
+ def create_data_directive_openacc_fortran (name : str , size : int ) -> str :
100
100
"""Create Fortran OpenACC code to allocate and copy data"""
101
101
return f"!$acc enter data create({ name } (:{ size } ))\n !$acc update device({ name } (:{ size } ))\n "
102
102
103
103
104
- def exit_data_directive (name : str , size : int , lang : Language ) -> str :
104
+ def exit_data_directive_openacc (name : str , size : int , lang : Language ) -> str :
105
105
"""Create code to copy data back for a given language"""
106
106
if is_cxx (lang ):
107
- return exit_data_directive_cxx (name , size )
107
+ return exit_data_directive_openacc_cxx (name , size )
108
108
elif is_fortran (lang ):
109
- return exit_data_directive_fortran (name , size )
109
+ return exit_data_directive_openacc_fortran (name , size )
110
110
return ""
111
111
112
112
113
- def exit_data_directive_cxx (name : str , size : int ) -> str :
113
+ def exit_data_directive_openacc_cxx (name : str , size : int ) -> str :
114
114
"""Create C++ OpenACC code to copy back data"""
115
115
return f"#pragma acc exit data copyout({ name } [:{ size } ])\n "
116
116
117
117
118
- def exit_data_directive_fortran (name : str , size : int ) -> str :
118
+ def exit_data_directive_openacc_fortran (name : str , size : int ) -> str :
119
119
"""Create Fortran OpenACC code to copy back data"""
120
120
return f"!$acc exit data copyout({ name } (:{ size } ))\n "
121
121
@@ -251,17 +251,17 @@ def wrap_data(code: str, langs: Code, data: dict, preprocessor: list, user_dimen
251
251
if "*" in data [name ][0 ]:
252
252
size = parse_size (data [name ][1 ], preprocessor = preprocessor , dimensions = user_dimensions )
253
253
if is_openacc (langs .directive ) and is_cxx (langs .language ):
254
- intro += create_data_directive_cxx (name , size )
254
+ intro += create_data_directive_openacc_cxx (name , size )
255
255
elif is_openacc (langs .directive ) and is_fortran (langs .language ):
256
- intro += create_data_directive_fortran (name , size )
256
+ intro += create_data_directive_openacc_fortran (name , size )
257
257
outro = str ()
258
258
for name in data .keys ():
259
259
if "*" in data [name ][0 ]:
260
260
size = parse_size (data [name ][1 ], preprocessor = preprocessor , dimensions = user_dimensions )
261
261
if is_openacc (langs .directive ) and is_cxx (langs .language ):
262
- outro += exit_data_directive_cxx (name , size )
262
+ outro += exit_data_directive_openacc_cxx (name , size )
263
263
elif is_openacc (langs .directive ) and is_fortran (langs .language ):
264
- outro += exit_data_directive_fortran (name , size )
264
+ outro += exit_data_directive_openacc_fortran (name , size )
265
265
return intro + code + outro
266
266
267
267
0 commit comments