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