From 84fc632797aeefe21b37e72fd69769fd7d6e2878 Mon Sep 17 00:00:00 2001
From: "thomas.dilasser" <thomas.dilasser@ensiie.fr>
Date: Sun, 21 Oct 2018 12:31:57 +0200
Subject: [PATCH] Starting graphs generation

Problem reading pdf for now
---
 Makefile              | 24 +++++++++++++++---------
 functions/graph.c     | 11 -----------
 graphs/Makefile       |  5 +++++
 graphs/converter.bash |  6 ++++++
 plugin.cpp            |  5 +++++
 tests/Makefile        | 30 ++++++++++++++++++++++++++++++
 6 files changed, 61 insertions(+), 20 deletions(-)
 create mode 100644 graphs/Makefile
 create mode 100755 graphs/converter.bash
 create mode 100644 tests/Makefile

diff --git a/Makefile b/Makefile
index 498429c..88a9425 100755
--- a/Makefile
+++ b/Makefile
@@ -1,4 +1,5 @@
-all: TEST1 TEST2 TEST3 TEST4
+.PHONY: all
+all: TEST1 TEST2 TEST3 TEST4 dot convert
 
 TEST1=./tests/simple_test1.c
 TEST2=./tests/simple_test2.c
@@ -20,21 +21,26 @@ libplugin.so: $(PLUGIN)
 	 $(CXX) $(PLUGIN_FLAGS) -o $@ $<
 
 TEST1: libplugin.so $(TEST1)
-	$(MPICC) $(TEST1) $(CFLAGS) -o $@ -fplugin=./$<
+	$(MAKE) -C tests TEST1
 TEST2: libplugin.so $(TEST2)
-	$(MPICC) $(TEST2) $(CFLAGS) -o $@ -fplugin=./$<
+	$(MAKE) -C tests TEST2
 TEST3: libplugin.so $(TEST3)
-	$(MPICC) $(TEST3) $(CFLAGS) -o $@ -fplugin=./$<
+	$(MAKE) -C tests TEST3
 TEST4: libplugin.so $(TEST4)
-	$(MPICC) $(TEST4) $(CFLAGS) -o $@ -fplugin=./$<
+	$(MAKE) -C tests TEST4
 
-%.pdf: %.dot
-	dot -Tpdf $< -o $@
+.PHONY: dot
+dot:
+	$(MAKE) -C tests dot
+.PHONY: convert
+convert:
+	$(MAKE) -C graphs convert
 
+.PHONY: clean
 clean:
 	rm -rf *.pgr *.pdf plugin
 	rm -rf libplugin.so *.dot plugin
 	rm -rf TEST*
+	$(MAKE) -C tests clean
+	$(MAKE) -C graphs clean
 
-clean_all: clean
-	rm -rf libplugin.so *.dot plugin
diff --git a/functions/graph.c b/functions/graph.c
index d24ab1b..a18bd4b 100644
--- a/functions/graph.c
+++ b/functions/graph.c
@@ -25,13 +25,6 @@ void cfgviz_internal_dump( function * fun, FILE * out, int td )
         fprintf(out, "Digraph G{\n");
 
 
-
-        /******************************/
-        /****   TD2 - QUESTION 7   ****/
-        /******************************/
-
-
-
         FOR_ALL_BB_FN(bb,cfun)
         {
 
@@ -80,10 +73,6 @@ void cfgviz_internal_dump( function * fun, FILE * out, int td )
 
                 }
         }
-        /******************************/
-        /**   TD2 - FIN QUESTION 7   **/
-        /******************************/
-
 
         // Close the main graph
         fprintf(out, "}\n");
diff --git a/graphs/Makefile b/graphs/Makefile
new file mode 100644
index 0000000..a8470d4
--- /dev/null
+++ b/graphs/Makefile
@@ -0,0 +1,5 @@
+convert:
+	./converter.bash
+clean:
+	rm -rf *.dot
+	rm -rf *.pdf
diff --git a/graphs/converter.bash b/graphs/converter.bash
new file mode 100755
index 0000000..3459519
--- /dev/null
+++ b/graphs/converter.bash
@@ -0,0 +1,6 @@
+#! /usr/bin/env bash
+
+for file in *.dot
+do
+	dot -Tpdf $file -o "$file".pdf
+done
diff --git a/plugin.cpp b/plugin.cpp
index b91cb4a..ae48b07 100755
--- a/plugin.cpp
+++ b/plugin.cpp
@@ -97,12 +97,17 @@ class split_count_pass : public gimple_opt_pass
                         printf("=> plugin: split_count_pass... \n");
                         printf("=> plugin: execute...\n");
 			printf("... in function %s\n\n", function_name(fun));
+
 			//counter in bb aux
 			mark_number_of_calls(fun);
 			//split bb where we find several MPI calls
 			split_mpi_block(fun);
 			//writing corresponding MPI Call in corresponding basic block
 			write_mpi_code(fun);
+			/* Skip system header functions */
+                        if ( !in_system_header_at( fun->function_start_locus ) ) 
+                              cfgviz_dump( fun, function_name(fun), 1 ) ;
+		
 			return 0;
                 }
 };
diff --git a/tests/Makefile b/tests/Makefile
new file mode 100644
index 0000000..c5c173c
--- /dev/null
+++ b/tests/Makefile
@@ -0,0 +1,30 @@
+all: TEST1 TEST2 TEST3 TEST4
+
+TEST1=simple_test1.c
+TEST2=simple_test2.c
+TEST3=split_bloc.c
+TEST4=pragma_test.c
+
+PLUGIN=plugin.cpp
+CXX=g++_810
+CC=gcc_810
+
+MPICC=mpicc
+
+CFLAGS=-g -O3
+
+TEST1: ../libplugin.so $(TEST1)
+	$(MPICC) $(TEST1) $(CFLAGS) -o $@ -fplugin=$<
+TEST2: ../libplugin.so $(TEST2)
+	$(MPICC) $(TEST2) $(CFLAGS) -o $@ -fplugin=$<
+TEST3: ../libplugin.so $(TEST3)
+	$(MPICC) $(TEST3) $(CFLAGS) -o $@ -fplugin=$<
+TEST4: ../libplugin.so $(TEST4)
+	$(MPICC) $(TEST4) $(CFLAGS) -o $@ -fplugin=$<
+
+dot: 
+	mv *.dot ../graphs/
+clean:
+	rm -rf *.pgr *.pdf plugin
+	rm -rf libplugin.so *.dot plugin
+	rm -rf TEST*
-- 
GitLab