diff --git a/TODOLIST b/TODOLIST index 19d94d413599e7eac584f47cdd6c3a8893577fee..7868552ba621fb34e309b663e0f169b65841dc52 100644 --- a/TODOLIST +++ b/TODOLIST @@ -3,3 +3,16 @@ Passe de compilation pour trouver les appels aux fonctions collectives : Oui Définition d'une numérotation permettant de suivre la position d'une fonction collective dans la séquence d'appel : Oui Utilisation de la frontière de post dominance itérée pour retrouver le noeud d'origine du deadlock potentiel : Non + +PRAGMAS : + +Si on utilise pas les pragmas -> passer dans toutes les fonctions : Oui + +Reconnaitre les noms de fonctions et filtrer dans la gate : Oui + +Ne pas mettre deux fois la meme fonction via les pragmas : Non + +Pas de pragma dans les fonctions : Oui + +Warning envoyé si l'utilisateur a donné une fonction qui n'existe pas dans le source : Non + diff --git a/plugin.cpp b/plugin.cpp index ff70c3541ead07c469b92ea13936691a42323d35..a52eea79551d765af76ca22b620c6843d8441f77 100755 --- a/plugin.cpp +++ b/plugin.cpp @@ -119,15 +119,19 @@ class cleanup_pass : public gimple_opt_pass /* Gate function (shall we apply this pass?) */ bool gate (function * fun) { + bool func_to_be_analyzed = true; printf("=> plugin: cleanup_pass... \n"); printf("=> plugin: gate... \n"); - printf("List of functions to be checked :\n"); - while(pragma_func_names.length() != 0){ - printf("- %s\n",pragma_func_names.pop()); + if((pragma_func_names.length() == 0)){ + printf("\nNOT USING PRAGMAS - ANALYSING ALL FUNCS\n\n"); + return true; } - - return true; + const char *elt; + for(int ix = 0; pragma_func_names.iterate (ix, &elt); ix++) + func_to_be_analyzed = strcmp(elt,function_name(fun)) && func_to_be_analyzed; + printf("USING PRAGMAS - FUNC IS : %s", function_name(fun)); + return func_to_be_analyzed; }