From: Bernhard Urban Date: Mon, 7 Jun 2010 17:41:36 +0000 (+0200) Subject: scripts: hoffentlich arbeitet bench.sh nun korrekt X-Git-Url: http://wien.tomnetworks.com/gitweb/?p=testub10.git;a=commitdiff_plain;h=b4ea4c5166e2de33580e8fd9b43a82cb9ee3cb33 scripts: hoffentlich arbeitet bench.sh nun korrekt 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 --- diff --git a/gesamt/georg_fib_102.instr b/gesamt/georg_fib_102.instr index 328e4ce..0cfdca4 100644 --- a/gesamt/georg_fib_102.instr +++ b/gesamt/georg_fib_102.instr @@ -1 +1 @@ -3694 +4606 diff --git a/gesamt/georg_fib_122.instr b/gesamt/georg_fib_122.instr index bb06e56..b80c99c 100644 --- a/gesamt/georg_fib_122.instr +++ b/gesamt/georg_fib_122.instr @@ -1 +1 @@ -4134 +5046 diff --git a/gesamt/intelli_00.instr b/gesamt/intelli_00.instr index b6a7d89..b1bd38b 100644 --- a/gesamt/intelli_00.instr +++ b/gesamt/intelli_00.instr @@ -1 +1 @@ -16 +13 diff --git a/gesamt/intelli_01.instr b/gesamt/intelli_01.instr index fb1e7bc..c739b42 100644 --- a/gesamt/intelli_01.instr +++ b/gesamt/intelli_01.instr @@ -1 +1 @@ -54 +44 diff --git a/gesamt/lewurm_00.instr b/gesamt/lewurm_00.instr index 48082f7..8351c19 100644 --- a/gesamt/lewurm_00.instr +++ b/gesamt/lewurm_00.instr @@ -1 +1 @@ -12 +14 diff --git a/gesamt/lewurm_02.instr b/gesamt/lewurm_02.instr index a272009..04f9fe4 100644 --- a/gesamt/lewurm_02.instr +++ b/gesamt/lewurm_02.instr @@ -1 +1 @@ -39 +59 diff --git a/gesamt/lewurm_05.instr b/gesamt/lewurm_05.instr index de8febe..dd47563 100644 --- a/gesamt/lewurm_05.instr +++ b/gesamt/lewurm_05.instr @@ -1 +1 @@ -168 +76 diff --git a/gesamt/lewurm_08.instr b/gesamt/lewurm_08.instr index d88e313..9e5feb5 100644 --- a/gesamt/lewurm_08.instr +++ b/gesamt/lewurm_08.instr @@ -1 +1 @@ -81 +46 diff --git a/scripts/bench.sh b/scripts/bench.sh index 009a0f1..d53bc98 100755 --- a/scripts/bench.sh +++ b/scripts/bench.sh @@ -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