-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcount.sh
executable file
·117 lines (92 loc) · 2.66 KB
/
count.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
#!/bin/bash
echo -e "\033[93m"
echo " Building Compiler"
echo "====================================="
echo -e -n "\033[0m"
make -C JOOSA-src
rm -f PeepholeBenchmarks/bench*/*.*dump
COUNT=0
COUNT_COMPILED=0
for BENCH_DIR in PeepholeBenchmarks/*/
do
((COUNT++))
BENCH=$(basename $BENCH_DIR)
echo -e "\033[93m"
echo " Generating Bytecode for '$BENCH'"
echo "====================================="
echo -e -n "\033[0m"
echo -e -n "\033[92m"
echo " Normal"
echo "----------------"
echo -e -n "\033[0m"
PEEPDIR=`pwd` make -s --no-print-directory -C $BENCH_DIR clean
PEEPDIR=`pwd` make -s --no-print-directory -C $BENCH_DIR
if [ $? != 0 ]
then
echo
echo -e "\e[41m\033[1mError: Unable to compile benchmark '$BENCH'\e[0m"
continue
fi
echo -e "\033[92m"
echo " Optimized"
echo "----------------"
echo -e -n "\033[0m"
PEEPDIR=`pwd` make -s --no-print-directory -C $BENCH_DIR opt
if [ $? != 0 ]
then
echo
echo -e "\e[41m\033[1mError: Unable to optimize benchmark '$BENCH'\e[0m"
continue
fi
echo -e "\033[92m"
echo " Execution"
echo "----------------"
echo -e -n "\033[0m"
RESULT=$(PEEPDIR=`pwd` make -s --no-print-directory -C $BENCH_DIR run)
EXPECTED=$(cat $BENCH_DIR/out1)
if [[ "$RESULT" == "$EXPECTED" ]]
then
echo -e "\e[42mExecution Successful\e[0m"
else
echo $EXPECTED
echo
echo $RESULT
echo -e "\e[41mExecution Failed\e[0m"
continue
fi
echo -e "\033[92m"
echo " Bytecode Size"
echo "----------------"
echo -e -n "\033[0m"
NORMAL=$(grep -a code_length $BENCH_DIR*.dump | awk '{sum += $3} END {print sum}')
OPT=$(grep -a code_length $BENCH_DIR*.optdump | awk '{sum += $3} END {print sum}')
if [[ -z "$NORMAL" || -z "$OPT" ]]
then
echo -e "\e[41m\033[1mError:\033[0m\e[41m Unable to load bytecode statistics\e[0m"
continue
fi
((COUNT_COMPILED++))
echo -e "\e[42m\033[1mNormal:\033[0m\e[42m $NORMAL\e[49m"
echo -e "\e[42m\033[1mOptimized:\033[0m\e[42m $OPT\e[49m"
done
echo -e "\033[93m"
echo " Overall Bytecode Size"
echo "====================================="
echo -e -n "\033[0m"
if [ $COUNT == $COUNT_COMPILED ]
then
echo -e "\e[42mSuccessfully compiled all benchmarks\e[49m"
else
echo -e "\e[41mError: Compiled $COUNT_COMPILED/$COUNT benchmarks\e[49m"
exit 1
fi
echo
NORMAL=$(grep -a code_length PeepholeBenchmarks/bench*/*.dump | awk '{sum += $3} END {print sum}')
OPT=$(grep -a code_length PeepholeBenchmarks/bench*/*.optdump | awk '{sum += $3} END {print sum}')
if [[ -z "$NORMAL" || -z "$OPT" ]]
then
echo -e "\e[41m\033[1mError:\033[0m\e[41m Unable to load bytecode statistics\e[0m"
exit
fi
echo -e "\e[42m\033[1mNormal:\033[0m\e[42m $NORMAL\e[49m"
echo -e "\e[42m\033[1mOptimized:\033[0m\e[42m $OPT\e[49m"