Newer
Older
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
#!/bin/bash
if [ $# -eq 0 ]; then
echo "No arguments supplied"
exit 1
fi
basepath=$(pwd)
arch=$1
workdir=$basepath/workdir-$arch
isolated_dir=$workdir/revng-isolated
if [ ! -d $isolated_dir ]; then
mkdir $isolated_dir;
fi
timing_path=$workdir/timings
if [ ! -d $timing_path ]; then
mkdir $timing_path;
fi
cd $arch
for filename in *
do
echo "Isolating input: $filename"
/usr/bin/time --format="%S,%U,%e,%M" -o "$timing_path/$filename.revng-lift.time" revng lift --use-debug-symbols --debug-info ll $filename $isolated_dir/$filename.ll
/usr/bin/time --format="%S,%U,%e,%M" -o "$timing_path/$filename.revng-detect.time" revng opt -S $isolated_dir/$filename.ll -function-boundaries-function-symbol -simple-return-instruction-analysis -o $isolated_dir/$filename.ll.hints
/usr/bin/time --format="%S,%U,%e,%M" -o "$timing_path/$filename.revng-detect.time" revng opt -S $isolated_dir/$filename.ll.hints -detect-function-boundaries -detect-abi -o $isolated_dir/$filename.ll.functions
/usr/bin/time --format="%S,%U,%e,%M" -o "$timing_path/$filename.revng-isolate.time" revng opt -S $isolated_dir/$filename.ll.functions -isolate -enforce-abi -o $isolated_dir/$filename.ll.isolated
/usr/bin/time --format="%S,%U,%e,%M" -o "$timing_path/$filename.revng-purge.time" revng opt -S $isolated_dir/$filename.ll.isolated -remove-pc-stores -remove-bad-pc -remove-switch -o $isolated_dir/$filename.ll.isolated.purged
/usr/bin/time --format="%S,%U,%e,%M" -o "$timing_path/$filename.revng-purge.time" revng opt -S $isolated_dir/$filename.ll.isolated.purged -sroa -reassociate -instcombine -constprop -dce -early-cse -o $isolated_dir/$filename.ll.isolated.purged.sroa
rm $isolated_dir/$filename.ll.coverage.csv
rm $isolated_dir/$filename.ll.li.csv
rm $isolated_dir/$filename.ll.need.csv
rm $isolated_dir/$filename.ll.functions
rm $isolated_dir/$filename.ll.hints
rm $isolated_dir/$filename.ll.isolated
done;