scripts: hoffentlich arbeitet bench.sh nun korrekt
authorBernhard Urban <lewurm@gmail.com>
Mon, 7 Jun 2010 17:41:36 +0000 (19:41 +0200)
committerBernhard Urban <lewurm@gmail.com>
Mon, 7 Jun 2010 17:41:36 +0000 (19:41 +0200)
zu den aenderungen:
per gdb gedumpt werden nun nur noch methoden die im erzeugten ASM-file *und* im
dazugehoerigen CALL-file existieren. davor wurden alle methoden die im erzeugten
ASM-file vorkammen per gdb gedumpt (was vor methodenaufrufen auch noch keine
probleme machte).
ausserdem werden nun nur methodennamen gegrept die unserer grammatik entsprechen
(minimale aenderung im regexausdruck).

aus diesen aenderungen ergibt auch, dass nun nicht mehr zwingend ein '.' vor den
labels, die fuer if bzw. while benoetigt werden, stehen muss.

dementsprechend gibts ein instr-update fuer ein paar gesamt-testfaelle

gesamt/georg_fib_102.instr
gesamt/georg_fib_122.instr
gesamt/intelli_00.instr
gesamt/intelli_01.instr
gesamt/lewurm_00.instr
gesamt/lewurm_02.instr
gesamt/lewurm_05.instr
gesamt/lewurm_08.instr
scripts/bench.sh

index 328e4ce676d2b89277cf2e33784d93bc09ee8c35..0cfdca4ca2c793ceea0e49719605309409baf3f9 100644 (file)
@@ -1 +1 @@
-3694
+4606
index bb06e56dd285c3e17175ce6eaec0e65fecdbd482..b80c99c6b45df5634f8354f308bf71b35f017505 100644 (file)
@@ -1 +1 @@
-4134
+5046
index b6a7d89c68e0ca66e96a9a51892cc33db66fb8a3..b1bd38b62a0800a4f6a80c34e21c5acffae52c7e 100644 (file)
@@ -1 +1 @@
-16
+13
index fb1e7bc86996a80d4a16529b990adda1d3434c92..c739b42c4d2ce23786c5350641d0adbf5fa7d6b2 100644 (file)
@@ -1 +1 @@
-54
+44
index 48082f72f087ce7e6fa75b9c41d7387daecd447b..8351c19397f4fcd5238d10034fa7fa384f14d580 100644 (file)
@@ -1 +1 @@
-12
+14
index a2720097dccb441015beb4f75766b9908ad46f5a..04f9fe46068b397a6fc24d647b7e3ec4315c15e7 100644 (file)
@@ -1 +1 @@
-39
+59
index de8febe1c7474dee3415470d6c7bdade54ad1865..dd475631baeff3ce652b97d921c1cc43c917b9e2 100644 (file)
@@ -1 +1 @@
-168
+76
index d88e313699871a6c780316c8df7479aebe6999c0..9e5feb5256930f3cae636754eef8a244ede164eb 100644 (file)
@@ -1 +1 @@
-81
+46
index 009a0f14669a70ae3951ece9e0ab4cba6c999bde..d53bc9872a7d7050c417e0972717394e1825896a 100755 (executable)
@@ -53,12 +53,18 @@ for i in $TEST/*.0; do
     #LABEL=`grep '.globl' $TMPNAME.s | sed 's/^.*\\.globl *\\([a-zA-Z0-9_]\\+\\).*$/\1/g'`
 
     # this won't work, we need all actual labels
-    LABEL=`grep '[a-zA-Z0-9_.$]\\+:' $TMPNAME.s | sed 's/^\\(.*[^a-zA-Z0-9_.$]\\)\\?\\([a-zA-Z0-9_.$]\\+\\):.*$/\2/g'`
+     grep '[a-zA-Z_][a-zA-Z0-9_]*:' $TMPNAME.s | sed 's/^\(.*[^a-zA-Z_.]\)\?\([a-zA-Z0-9_.$]\+\):.*$/\2/g' > $TMPNAME.uniq
+
+     LABEL_ASM=`cat $TMPNAME.uniq`
+
+     # functionidentifiers from CALL-file
+     grep '[a-zA-Z_][a-zA-Z0-9_]*(.*)' ${i%.0}.call | sed 's/.*[^a-zA-Z_]\([a-zA-Z_][a-zA-Z0-9_]*\)(.*)\;/\1/g' | sort | uniq >> $TMPNAME.uniq
+
+     LABEL=`sort $TMPNAME.uniq | uniq -d`
+     rm $TMPNAME.uniq
 
     rm -f $TMPNAME.trace
-    MATCHES=0
     for j in $LABEL; do
-               MATCHES="$MATCHES\\|$j"
                # count instructions
                $DUMPINSTR $TMPNAME $j > /dev/null
                if [ $? != 0 ]; then
@@ -67,6 +73,11 @@ for i in $TEST/*.0; do
                fi
     done
 
+    MATCHES=0
+       for j in $LABEL_ASM; do
+               MATCHES="$MATCHES\\|$j"
+       done
+
     # filter trace
     grep "<\\($MATCHES\\)\\(+[0-9]*\\)\\?>:" $TMPNAME.trace > $TRACEDIR/$bi.trace