@@ -91,7 +91,7 @@ int main(int argc, char *argv[]) {
9191 & DataBc );
9292 checkError (Status , "amd_comgr_action_data_get_data" );
9393
94- #if 0
94+ #if 1
9595 // write bitcode
9696 {
9797 size_t bytes_size = 0 ;
@@ -122,9 +122,8 @@ int main(int argc, char *argv[]) {
122122 Status = amd_comgr_populate_mangled_names (DataBc , & numNames );
123123 checkError (Status , "amd_comgr_populate_mangled_names" );
124124
125- const char * bcNames [] = {"_Z7source1Pi" };
126- size_t bcNumNames = 1 ;
127- bool bcFound [1 ] = {false};
125+ char * mangledSubstr = "__hip_cuid_" ;
126+ bool bcFound = false;
128127
129128 for (size_t I = 0 ; I < numNames ; ++ I ) {
130129 size_t Size ;
@@ -135,22 +134,18 @@ int main(int argc, char *argv[]) {
135134 Status = amd_comgr_get_mangled_name (DataBc , I , & Size , mName );
136135 checkError (Status , "amd_comgr_get_mangled_name" );
137136
138- for (size_t J = 0 ; J < bcNumNames ; ++ J ) {
139- if (!strcmp (mName , bcNames [J ])) {
140- bcFound [J ] = true;
141- }
137+ if (strstr (mName , mangledSubstr )) {
138+ bcFound = true;
142139 }
143140
144141 free (mName );
145142 }
146143
147- for (size_t I = 0 ; I < bcNumNames ; I ++ ) {
148- if (!bcFound [I ]) {
149- printf ("amd_get_mangled_name from bc Failed: "
150- "(expected '%s')\n" ,
151- bcNames [I ]);
152- exit (1 );
153- }
144+ if (!bcFound ) {
145+ printf ("amd_get_mangled_name from bc Failed: "
146+ "(expected '%s*')\n" ,
147+ mangledSubstr );
148+ exit (1 );
154149 }
155150
156151 Status = amd_comgr_create_data_set (& DataSetLinked );
@@ -218,9 +213,7 @@ int main(int argc, char *argv[]) {
218213
219214 Status = amd_comgr_populate_mangled_names (DataExec , & numNames );
220215
221- const char * execNames [] = {"_Z7source1Pi" , "_Z7source1Pi.kd" };
222- size_t execNumNames = 2 ;
223- bool execFound [2 ] = {false, false};
216+ bool execFound = false;
224217
225218 for (size_t I = 0 ; I < numNames ; ++ I ) {
226219 size_t Size ;
@@ -231,106 +224,20 @@ int main(int argc, char *argv[]) {
231224 Status = amd_comgr_get_mangled_name (DataExec , I , & Size , mName );
232225 checkError (Status , "amd_comgr_get_mangled_name" );
233226
234- for (size_t J = 0 ; J < execNumNames ; ++ J ) {
235- if (!strcmp (mName , execNames [J ])) {
236- execFound [J ] = true;
237- }
227+ if (strstr (mName , mangledSubstr )) {
228+ execFound = true;
238229 }
239230
240231 free (mName );
241232 }
242233
243- for (size_t I = 0 ; I < execNumNames ; I ++ ) {
244- if (!execFound [I ]) {
245- printf ("amd_get_mangled_name from bc Failed: "
246- "(expected '%s')\n" ,
247- execNames [I ]);
248- exit (1 );
249- }
250- }
251-
252- //
253- // Test AMD_COMGR_ACTION_COMPILE_SOURCE_TO_RELOCATABLE
254- //
255-
256- Status = amd_comgr_create_data_set (& DataSetReloc2 );
257- checkError (Status , "amd_comgr_create_data_set" );
258-
259- Status = amd_comgr_do_action (AMD_COMGR_ACTION_COMPILE_SOURCE_TO_RELOCATABLE ,
260- DataAction , DataSetIn , DataSetReloc2 );
261- checkError (Status , "amd_comgr_do_action" );
262-
263- Status = amd_comgr_action_data_count (DataSetReloc2 ,
264- AMD_COMGR_DATA_KIND_RELOCATABLE , & Count );
265- checkError (Status , "amd_comgr_action_data_count" );
266-
267- if (Count != 1 ) {
268- printf ("AMD_COMGR_ACTION_CODEGEN_BC_TO_RELOCATABLE Failed: "
269- "produced %zu source objects (expected 1)\n" ,
270- Count );
234+ if (!execFound ) {
235+ printf ("amd_get_mangled_name from exec Failed: "
236+ "(expected '%s*')\n" ,
237+ mangledSubstr );
271238 exit (1 );
272239 }
273240
274- Status = amd_comgr_create_data_set (& DataSetExec2 );
275- checkError (Status , "amd_comgr_create_data_set" );
276-
277- Status = amd_comgr_action_info_set_option_list (DataAction , NULL , 0 );
278- checkError (Status , "amd_comgr_action_info_set_option_list" );
279-
280- Status = amd_comgr_do_action (AMD_COMGR_ACTION_LINK_RELOCATABLE_TO_EXECUTABLE ,
281- DataAction , DataSetReloc2 , DataSetExec2 );
282- checkError (Status , "amd_comgr_do_action" );
283-
284- Status = amd_comgr_action_data_count (DataSetExec2 ,
285- AMD_COMGR_DATA_KIND_EXECUTABLE , & Count );
286- checkError (Status , "amd_comgr_action_data_count" );
287-
288- if (Count != 1 ) {
289- printf ("AMD_COMGR_ACTION_LINK_RELOCATABLE_TO_EXECUTABLE Failed: "
290- "produced %zu executable objects (expected 1)\n" ,
291- Count );
292- exit (1 );
293- }
294-
295- // Get Mangled Names
296- amd_comgr_data_t DataExec2 ;
297-
298- Status = amd_comgr_action_data_get_data (
299- DataSetExec2 , AMD_COMGR_DATA_KIND_EXECUTABLE , 0 , & DataExec2 );
300-
301- Status = amd_comgr_populate_mangled_names (DataExec2 , & numNames );
302-
303- for (size_t I = 0 ; I < execNumNames ; ++ I ) {
304- execFound [I ] = false;
305- }
306-
307- for (size_t I = 0 ; I < numNames ; ++ I ) {
308- size_t Size ;
309- Status = amd_comgr_get_mangled_name (DataExec , I , & Size , NULL );
310- checkError (Status , "amd_comgr_get_mangled_name" );
311-
312- char * mName = calloc (Size , sizeof (char ));
313- Status = amd_comgr_get_mangled_name (DataExec , I , & Size , mName );
314- checkError (Status , "amd_comgr_get_mangled_name" );
315-
316- for (size_t J = 0 ; J < execNumNames ; ++ J ) {
317- if (!strcmp (mName , execNames [J ])) {
318- execFound [J ] = true;
319- }
320- }
321-
322- free (mName );
323- }
324-
325- for (size_t I = 0 ; I < execNumNames ; I ++ ) {
326- if (!execFound [I ]) {
327- printf ("amd_get_mangled_name from bc Failed: "
328- "(expected '%s')\n" ,
329- execNames [I ]);
330- exit (1 );
331- }
332- }
333-
334241 Status = amd_comgr_release_data (DataSource );
335242 checkError (Status , "amd_comgr_release_data" );
336243 Status = amd_comgr_release_data (DataBc );
@@ -347,10 +254,6 @@ int main(int argc, char *argv[]) {
347254 checkError (Status , "amd_comgr_destroy_data_set" );
348255 Status = amd_comgr_destroy_data_set (DataSetExec );
349256 checkError (Status , "amd_comgr_destroy_data_set" );
350- Status = amd_comgr_destroy_data_set (DataSetReloc2 );
351- checkError (Status , "amd_comgr_destroy_data_set" );
352- Status = amd_comgr_destroy_data_set (DataSetExec2 );
353- checkError (Status , "amd_comgr_destroy_data_set" );
354257 Status = amd_comgr_destroy_action_info (DataAction );
355258 checkError (Status , "amd_comgr_destroy_action_info" );
356259 free (BufSource );
0 commit comments