From bcc3264bf09bffea5716d76bc185710721d99c4c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9otime=20DONNENFELD?= <theotime.donnenfeld@ensiie.fr>
Date: Sun, 21 Oct 2018 18:21:12 +0200
Subject: [PATCH] =?UTF-8?q?Pour=20pragmas=20:=20reste=20les=20warnings=20?=
 =?UTF-8?q?=C3=A0=20rajouter=20si=20l'utilisateur=20fait=20n'imp=20avec=20?=
 =?UTF-8?q?les=20pragmas?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 TODOLIST   | 13 +++++++++++++
 plugin.cpp | 14 +++++++++-----
 2 files changed, 22 insertions(+), 5 deletions(-)

diff --git a/TODOLIST b/TODOLIST
index 19d94d4..7868552 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 ff70c35..a52eea7 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;
                 }
 
 
-- 
GitLab