summaryrefslogtreecommitdiff
path: root/test/Feature/TestOptimizer.sh
blob: 648d7168ea4cd3950099a699522ee89b66eab188 (plain)
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
#!/bin/sh
LD_LIBRARY_PATH=$3
export LD_LIBRARY_PATH

AS=$2/as
DIS=$2/dis
OPT=$2/opt

echo "======== Running optimizer test on $1"

(
  $AS < $1 | $OPT -q -inline -dce -constprop -dce |$DIS| $AS > $1.bc.1 || exit 1

  # Should not be able to optimize further!
  $OPT -q -constprop -dce < $1.bc.1 > $1.bc.2 || exit 2

  $DIS < $1.bc.1 > $1.ll.1 || exit 3
  $DIS < $1.bc.2 > $1.ll.2 || exit 3
  gdiff -u $1.ll.[12] || exit 3

  # Try out SCCP 
  $AS < $1 | $OPT -q -inline -dce -sccp -dce \
           | $DIS | $AS > $1.bc.3 || exit 1

  # Should not be able to optimize further!
  $OPT -q -sccp -dce < $1.bc.3 > $1.bc.4 || exit 2
  $DIS < $1.bc.3 > $1.ll.3 || exit 3
  $DIS < $1.bc.4 > $1.ll.4 || exit 3
  gdiff -u $1.ll.[34] || exit 3
  rm $1.bc.[1234] $1.ll.[1234]
  
  touch Output/$1.opt  # Success!
)|| ../Failure.sh "$1 Optimizer"