I inserted annotations in the following C program following the reply above by SergeyK, but I still get " Warning: No SITE annotations were encountered." #include #include #include #include "/opt/intel/advisor_2020.2.0.606470/include/advisor-annotate.h" int64_t * Complex_If(double *data, double *input_lengths) { int in_size = sizeof(*input_lengths) / 8; int in_len = (int)input_lengths[0] / 8; int in_len_8 = (int)input_lengths[0]; int dsize1 = in_len; int dsize2 = in_len; int dsize3 = in_len; int dsize4 = in_len; size_t new_dsize; int Num_In_List_val; static int64_t Return_Pointer_Array[8]; double *collect1 = (double *)malloc(in_len_8); double *collect2 = (double *)malloc(in_len_8); double *collect3 = (double *)malloc(in_len_8); double *collect4 = (double *)malloc(in_len_8); int collect1_ctr = 0; int collect2_ctr = 0; int collect3_ctr = 0; int collect4_ctr = 0; double list1[] = { 10.364, 84.02, 29.127, 2.0, 87.35, 7.64, 14.2, 98.0, 54.65, 54.22, 8.23, 16.21, 129.7, 22.0, 87.35, 17.64, 214.32, 1598.4235, 54.65, 54.22 }; int list1size = sizeof(list1) / 8; double list2[] = { 10.364, 84.02, 29.127, 2.0, 87.35, 7.64, 14.2, 98.0, 54.65, 54.22, 1598.4235 }; int list2size = sizeof(list2) / 8; int i,j,k; double num; double list_num, data_num, inner_num; // Function declarations int Num_In_List(double, double[], int); ANNOTATE_SITE_BEGIN(Complex_If); for (i = 0; i < in_len; i++) { data_num = data[i]; if (i == 0) { ANNOTATE_ITERATION_TASK(Complex_If_task); for (j = 0; j < list1size; j++) { num = list1[j]; Num_In_List_val = Num_In_List(num, list2, list2size); if (Num_In_List_val == 1) { collect1[collect1_ctr] = num; collect1_ctr += 1; if (collect1_ctr >= dsize1) { new_dsize = (dsize1 + collect1_ctr) * 8; collect1 = (double*)realloc(collect1, new_dsize); dsize1 = new_dsize / 8; } } if (Num_In_List_val == 0) { collect2[collect2_ctr] = num; collect2_ctr += 1; if (collect2_ctr >= dsize2) { new_dsize = (dsize2 + collect2_ctr) * 8; collect2 = (double*)realloc(collect2, new_dsize); dsize2 = new_dsize / 8; } } } } for (k = 0; k < list1size; k++) { list_num = list1[k]; if (i == 0){ inner_num = num; } if (i > 0){ inner_num = data_num; } if ((i == 0) && (k == 0)){ printf("k: %i\n",k); printf("num: %f\n",num); printf("list_num: %f\n",list_num); } if (k <= 3) { if (list_num > inner_num) { collect3[collect3_ctr] = list_num; collect3_ctr += 1; if (collect3_ctr >= dsize3) { if (collect3_ctr > sizeof(*collect3)) { new_dsize = (dsize3 + collect3_ctr) * 8; //printf("collect3 re: %i\n",new_dsize); collect3 = (double*)realloc(collect3, new_dsize); dsize3 = new_dsize / 8; } } } if (list_num < inner_num) { collect4[collect4_ctr] = list_num; collect4_ctr += 1; if (collect4_ctr >= dsize4) { new_dsize = (dsize4 + collect4_ctr) * 8; collect4 = (double*)realloc(collect4, new_dsize); dsize4 = new_dsize / 8; } } } } } ANNOTATE_SITE_END(); Return_Pointer_Array[0] = (uintptr_t)collect1; Return_Pointer_Array[1] = collect1_ctr; Return_Pointer_Array[2] = (uintptr_t)collect2; Return_Pointer_Array[3] = collect2_ctr; Return_Pointer_Array[4] = (uintptr_t)collect3; Return_Pointer_Array[5] = collect3_ctr; Return_Pointer_Array[6] = (uintptr_t)collect4; Return_Pointer_Array[7] = collect4_ctr; printf("collect1_ctr: %i\n",collect1_ctr); printf("collect2_ctr: %i\n",collect2_ctr); printf("collect3_ctr: %i\n",collect3_ctr); printf("collect4_ctr: %i\n",collect4_ctr); return Return_Pointer_Array; } int Num_In_List(double num, double list[], int list_size) { double list_val; for (int i = 0; i < list_size; i++) { list_val = list[i]; if (num == list_val) { return 1; } } return 0; } void Free_Mem(double * buffer) { free(buffer); }