-
Notifications
You must be signed in to change notification settings - Fork 3
/
test-paper
executable file
·92 lines (85 loc) · 5.61 KB
/
test-paper
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
#!/bin/bash
#
./test-all ghc > results-ghc.tex
BEST_OPTS="raw"
# Straightforward single-flag tests
./test-all $BEST_OPTS > results-best.tex
#./test-all $BEST_OPTS --no-primops > results-no-primops.tex
./test-all $BEST_OPTS --generalisation=none > results-no-generalisation.tex
#./test-all $BEST_OPTS --generalisation=all-eligible > results-all-eligible-generalisation.tex
./test-all $BEST_OPTS --no-occurrence-generalisation > results-no-occurrence-generalisation.tex
./test-all $BEST_OPTS --no-speculation > results-no-speculation.tex
./test-all $BEST_OPTS --no-reduce-rollback > results-no-reduce-rollback.tex
./test-all $BEST_OPTS --no-sc-rollback > results-no-sc-rollback.tex
#./test-all $BEST_OPTS --discard-fulfilments-on-rollback > results-discard-fulfilments-on-rollback.tex
#./test-all $BEST_OPTS --duplicate-values-splitter > results-duplicate-values-splitter.tex
#./test-all $BEST_OPTS --duplicate-values-evaluator > results-duplicate-values-evaluator.tex
#./test-all $BEST_OPTS --no-refine-fulfilment-fvs > results-no-refine-fulfilment-fvs.tex
#./test-all $BEST_OPTS --match-reduced > results-match-reduced.tex
#./test-all $BEST_OPTS --no-sub-graphs --generalisation=stack-first > results-bags-no-sub-graphs-stack-first.tex
#./test-all $BEST_OPTS --no-sub-graphs --generalisation=all-eligible > results-bags-no-sub-graphs.tex
#./test-all $BEST_OPTS --tag-collection=sets --generalisation=all-eligible > results-sets.tex
#./test-all $BEST_OPTS --tag-collection=bags-strong --generalisation=all-eligible > results-bags-strong.tex
#./test-all $BEST_OPTS --tag-collection=graphs --generalisation=all-eligible > results-graphs.tex
#./test-all $BEST_OPTS --local-tiebacks > results-local-tiebacks.tex
# for bloat in 1 10 20 30 40 50; do
# ./test-all $BEST_OPTS --local-tiebacks --deeds --deeds-policy=fcfs --bloat=$bloat | tee results-deeds-fcfs+bloat-$bloat.tex
# ./test-all $BEST_OPTS --local-tiebacks --deeds --deeds-policy=proportional --bloat=$bloat | tee results-deeds-proportional+bloat-$bloat.tex
# done
# The options that we should use to make the supercompiler as close as possible to the SbE paper
#VANILLA_OPTS="raw --no-primops --no-deeds --tag-collection=bags --no-generalisation --cheapification --no-speculation --no-local-tiebacks --no-reduce-rollback --no-sc-rollback --duplicate-values-evaluator --duplicate-values-splitter --no-refine-fulfilment-fvs"
#
# ./test-all $VANILLA_OPTS > results-vanilla.tex
# ./test-all ${VANILLA_OPTS/--cheapification/} > results-no-cheapification.tex
#
# ./test-all raw > nresults-vanilla.tex
#
# ./test-all ${VANILLA_OPTS/--no-generalisation/} | tee results-generalisation.tex
#
# REFINE_OPTS=${VANILLA_OPTS/--no-refine-fulfilment-fvs/}
# ./test-all $REFINE_OPTS | tee results-refine-fulfilment-fvs.tex
#
# ./test-all ${VANILLA_OPTS/--duplicate-values-evaluator/} | tee results-no-duplicate-values-evaluator.tex
# ./test-all ${VANILLA_OPTS/--duplicate-values-splitter/} | tee results-no-duplicate-values-splitter.tex
# ./test-all ${VANILLA_OPTS/--duplicate-values-evaluator --duplicate-values-splitter/} | tee results-no-duplicate-values.tex
# ./test-all ${REFINE_OPTS/--duplicate-values-evaluator --duplicate-values-splitter/} | tee results-refine-fulfilment-fvs+no-duplicate-values.tex
#
# #
#
# ./test-all ${VANILLA_OPTS/--no-reduce-rollback/} | tee results-reduce-rollback.tex
# ./test-all ${VANILLA_OPTS/--no-sc-rollback/} | tee results-sc-rollback.tex
# ./test-all ${VANILLA_OPTS/--no-sc-rollback/--no-discard-fulfilments-on-rollback} | tee results-sc-rollback-no-discard.tex
# ./test-all ${VANILLA_OPTS/--no-reduce-rollback --no-sc-rollback/} | tee results-rollback.tex
#
# # ./test-all raw --no-reduce-rollback | tee nresults-reduce-rollback.tex
# # ./test-all raw --no-sc-rollback | tee nresults-sc-rollback.tex
# # ./test-all raw --no-reduce-rollback --no-sc-rollback | tee nresults-rollback.tex
#
# ./test-all ${VANILLA_OPTS/=bags/=sets} | tee results-tagsets.tex
# ./test-all ${VANILLA_OPTS/=bags/=bags-strong} | tee results-strongtagbags.tex
# ./test-all ${VANILLA_OPTS/=bags/=graphs} | tee results-taggraphs.tex
#
# # ./test-all raw --tag-collection=sets | tee nresults-tagsets.tex
# # ./test-all raw --tag-collection=bags | tee nresults-tagbags.tex
# # ./test-all raw --tag-collection=graphs | tee nresults-taggraphs.tex
#
# ./test-all ${VANILLA_OPTS/--no-local-tiebacks/} | tee results-local-tiebacks.tex
# #./test-all raw --no-local-tiebacks | tee nresults-local-tiebacks.tex
#
# ./test-all ${VANILLA_OPTS/--cheapification --no-speculation/} | tee results-speculation.tex
# #./test-all raw --cheapification --no-speculation | tee nresults-speculation.tex
#
# # # You just can't use deeds without local tiebacks because the resulting programs are almost never typeable in Hindley Milner:
# # ./test-all ${VANILLA_OPTS/--no-deeds/--deeds-policy=fcfs} | tee results-deeds-fcfs.tex
# # ./test-all ${VANILLA_OPTS/--no-deeds/--deeds-policy=proportional} | tee results-deeds-proportional.tex
# LOCAL_H_OPTS=${VANILLA_OPTS/--no-local-tiebacks/}
# ./test-all ${LOCAL_H_OPTS/--no-deeds/--deeds-policy=fcfs} | tee results-local-tiebacks+deeds-fcfs.tex
# ./test-all ${LOCAL_H_OPTS/--no-deeds/--deeds-policy=proportional} | tee results-local-tiebacks+deeds-proportional.tex
#
# for bloat in 1 2 3 4 5 6 7 8 9 10 20 30 40 50; do
# ./test-all ${LOCAL_H_OPTS/--no-deeds/--deeds-policy=fcfs --bloat=$bloat} | tee results-local-tiebacks+deeds-fcfs+bloat-$bloat.tex
# ./test-all ${LOCAL_H_OPTS/--no-deeds/--deeds-policy=proportional --bloat=$bloat} | tee results-local-tiebacks+deeds-proportional+bloat-$bloat.tex
# done
#
# # ./test-all raw --no-deeds | tee nresults-deeds.tex
# # ./test-all raw --deeds-policy=proportional | tee nresults-proportional-deeds.tex