Add support for cpp files with test examples

Fix https://github.com/clearlinux/make-fmv-patch/issues/2

Signed-off-by: Victor Rodriguez <victor.rodriguez.bahena@intel.com>
This commit is contained in:
Victor Rodriguez
2018-11-26 03:51:30 -06:00
parent ab5254661a
commit 09c11cfc2f
5 changed files with 88 additions and 1 deletions
+17
View File
@@ -25,3 +25,20 @@ Requirements
In order to use `make-fvm-patch.pl` your system will need Exuberant Ctags
(https://sourceforge.net/projects/ctags/), this is due to the `--c-kinds`
ctags' flag usage.
------------
Test examples
------------
```
cd tests
make
cd ..
perl make-fmv-patch.pl tests/max-build.log tests/
perl make-fmv-patch.pl tests/loop-build.log tests/
This will generate:
./tests/max-test.cpp.patch
./tests/loop-test.c.patch
```
+1 -1
View File
@@ -96,7 +96,7 @@ foreach (keys %f) {
my $fname = $_;
my @flines = @{$f{$_}->{v_line}};
if ($fname =~ /(\.c$)/) {
if ($fname =~ /(\.c$)/ || $fname =~ /(\.cpp$)/) {
my $f_path = &find_file($fname);
my @keys = 0;
+9
View File
@@ -0,0 +1,9 @@
all:
gcc -O2 -ftree-vectorize loop-test.c -o loop-test -fopt-info-vec &> loop-build.log
g++ -O2 -ftree-vectorize max-test.cpp -o max-test -fopt-info-vec &> max-build.log
clean:
@find . -type f -executable -exec sh -c "file -i '{}' | grep -q 'x-executable; charset=binary'" \; -print | xargs rm -f
distclean:
@rm -rf *.c.patch
@rm -rf *.cpp.patch
@rm -rf *build.log
+25
View File
@@ -0,0 +1,25 @@
#include <stdio.h>
#include <stdlib.h>
#include <sys/time.h>
#define MAX 1000000
static struct timeval tm1;
int a[256], b[256], c[256];
void foo();
int main(){
foo();
return 0;
}
void foo(){
int i,x;
for (x=0; x<MAX; x++){
for (i=0; i<256; i++){
a[i] = b[i] + c[i];
}
}
}
+36
View File
@@ -0,0 +1,36 @@
#include <iostream>
using namespace std;
int max(int num1, int num2);
void foo();
int a[256], b[256];
int main () {
foo();
return 0;
}
void foo(){
int i;
for (i=0; i<256; i++){
a[i] = 100;
b[i] = 200;
}
int ret;
for (i=0; i<256; i++){
ret = max(a[i], b[i]);
cout << "Max value is : " << ret << endl;
}
}
int max(int num1, int num2) {
int result;
if (num1 > num2)
result = num1;
else
result = num2;
return result;
}