Skip to content
Extraits de code Groupes Projets
Valider 84f0e2b4 rédigé par Théotime DONNENFELD's avatar Théotime DONNENFELD
Parcourir les fichiers

FINI LES PRAGMAS AHA

parent fced334a
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
Pipeline #1138 annulé
...@@ -14,5 +14,5 @@ Ne pas mettre deux fois la meme fonction via les pragmas : Oui ...@@ -14,5 +14,5 @@ Ne pas mettre deux fois la meme fonction via les pragmas : Oui
Pas de pragma dans les fonctions : Oui Pas de pragma dans les fonctions : Oui
Warning envoyé si l'utilisateur a donné une fonction qui n'existe pas dans le source : Non Warning envoyé si l'utilisateur a donné une fonction qui n'existe pas dans le source : Oui
...@@ -100,16 +100,26 @@ static void register_my_pragma(void *event_data, void *data) ...@@ -100,16 +100,26 @@ static void register_my_pragma(void *event_data, void *data)
void compare_pragma_funcs_analyzed_funcs(){ void compare_pragma_funcs_analyzed_funcs(){
const char *pragma_elt; const char *pragma_elt;
const char *analyzed_elt; const char *analyzed_elt;
bool pragma_func_is_in;
//printf("\nEntering COMPARE FUNCS:\n\n");
for(int ix = 0; pragma_func_names.iterate (ix, &pragma_elt); ix++){ for(int ix = 0; pragma_func_names.iterate (ix, &pragma_elt); ix++){
pragma_func_is_in = false;
for(int jx = 0; analyzed_functions.iterate (jx, &analyzed_elt); jx++){ for(int jx = 0; analyzed_functions.iterate (jx, &analyzed_elt); jx++){
if(strcmp(pragma_elt, analyzed_elt)!=0) //printf("\nComparing : %s and %s", pragma_elt, analyzed_elt);
printf("WARNING :Pragma indicates unexisting function %s\n ",pragma_elt ); if(strcmp(pragma_elt, analyzed_elt)==0)
pragma_func_is_in = true;
} }
if(!pragma_func_is_in)
printf("\nWARNING - pragma func : %s is not declared in source code", pragma_elt);
} }
} }
void add_function_to_analyzed_funcs(function * fun){
analyzed_functions.safe_push(function_name(fun));
}
......
...@@ -75,6 +75,7 @@ class split_count_pass : public gimple_opt_pass ...@@ -75,6 +75,7 @@ class split_count_pass : public gimple_opt_pass
{ {
bool func_to_be_analyzed = true; bool func_to_be_analyzed = true;
add_function_to_analyzed_funcs(fun);
printf("=> plugin: split_count_pass... \n"); printf("=> plugin: split_count_pass... \n");
printf("=> plugin: gate... \n"); printf("=> plugin: gate... \n");
...@@ -131,7 +132,6 @@ class cleanup_pass : public gimple_opt_pass ...@@ -131,7 +132,6 @@ class cleanup_pass : public gimple_opt_pass
/* Gate function (shall we apply this pass?) */ /* Gate function (shall we apply this pass?) */
bool gate (function * fun) bool gate (function * fun)
{ {
bool func_to_be_analyzed = true;
printf("=> plugin: cleanup_pass... \n"); printf("=> plugin: cleanup_pass... \n");
printf("=> plugin: gate... \n"); printf("=> plugin: gate... \n");
return true; return true;
...@@ -142,10 +142,15 @@ class cleanup_pass : public gimple_opt_pass ...@@ -142,10 +142,15 @@ class cleanup_pass : public gimple_opt_pass
/* Execute function */ /* Execute function */
unsigned int execute (function *fun) unsigned int execute (function *fun)
{ {
const char *elt;
printf("=> plugin: cleanup_pass... \n"); printf("=> plugin: cleanup_pass... \n");
printf("=> plugin: execute...\n"); printf("=> plugin: execute...\n");
printf("... in function %s\n\n", function_name(fun)); printf("... in function %s\n\n", function_name(fun));
printf("State of vec analyzed :\n");
for (int ix = 0; analyzed_functions.iterate (ix, &elt); ix++){
printf("- %s\n", elt);
}
compare_pragma_funcs_analyzed_funcs(); compare_pragma_funcs_analyzed_funcs();
edit_all_aux_value(fun,(int*)NULL); edit_all_aux_value(fun,(int*)NULL);
return 0; return 0;
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter