s/stx/benchmark-runner.sh
author Jan Vrany <jan.vrany@fit.cvut.cz>
Mon, 20 Apr 2015 14:17:58 +0100
changeset 269 e1872c56d1d0
parent 261 5b9e93c1135d
child 271 c81b238392b5
permissions -rwxr-xr-x
Added support to run benchmarks under System Tap (on Linux)
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3
61839e9951bc Added runner start scripts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     1
#!/bin/sh
61839e9951bc Added runner start scripts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
181
8b5d11633206 Bug fixex in Smalltalk/X scripts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 127
diff changeset
     3
TOP=$(dirname $0)/../../../..
74
68ffe8acc400 Fixed path to tx binary.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 71
diff changeset
     4
3
61839e9951bc Added runner start scripts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     5
DEBUGGER=
261
5b9e93c1135d Added support for -Xdump-compile-map VM option.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 221
diff changeset
     6
CALLGRIND=
51
98a888ea3ddb benchrmark-runner.sh script for Smalltalk/X refactored...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 32
diff changeset
     7
SMALLTALK_OPTS=
261
5b9e93c1135d Added support for -Xdump-compile-map VM option.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 221
diff changeset
     8
CALLGRIND_OPTS=
51
98a888ea3ddb benchrmark-runner.sh script for Smalltalk/X refactored...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 32
diff changeset
     9
VM_OPTS=
101
b84f72238da1 Fixed benchmark-runner scripts for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 74
diff changeset
    10
VM=$TOP/stx/projects/smalltalk/stx
b84f72238da1 Fixed benchmark-runner scripts for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 74
diff changeset
    11
b84f72238da1 Fixed benchmark-runner scripts for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 74
diff changeset
    12
# On Windows use stx.com rather than stx.exe as exe has co
b84f72238da1 Fixed benchmark-runner scripts for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 74
diff changeset
    13
# console output
b84f72238da1 Fixed benchmark-runner scripts for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 74
diff changeset
    14
103
3b23cf0c1a88 Fix in benchrmark-runner.sh for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 101
diff changeset
    15
if [ ! -z "$OS" ]; then
221
4d5089f4fe81 Fix in benchmark-runner.sh: make it running inder Win-Bash.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 198
diff changeset
    16
    if [ "$OS" = "Windows_NT" ]; then
103
3b23cf0c1a88 Fix in benchrmark-runner.sh for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 101
diff changeset
    17
        VM=$VM.com
3b23cf0c1a88 Fix in benchrmark-runner.sh for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 101
diff changeset
    18
    fi
101
b84f72238da1 Fixed benchmark-runner scripts for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 74
diff changeset
    19
fi
3
61839e9951bc Added runner start scripts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    20
61839e9951bc Added runner start scripts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    21
if [ "$1" = "--help" ]
261
5b9e93c1135d Added support for -Xdump-compile-map VM option.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 221
diff changeset
    22
then
124
e5582f62aab5 Fixed command line argument handling and error reporting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
    23
    "$VM" -I  --execute "$DIR/benchmark-runner.rc" ${1+"$@"}
3
61839e9951bc Added runner start scripts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    24
# .........................
61839e9951bc Added runner start scripts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    25
fi
61839e9951bc Added runner start scripts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    26
51
98a888ea3ddb benchrmark-runner.sh script for Smalltalk/X refactored...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 32
diff changeset
    27
101
b84f72238da1 Fixed benchmark-runner scripts for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 74
diff changeset
    28
while [ ! -z "$1" ]; do
b84f72238da1 Fixed benchmark-runner scripts for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 74
diff changeset
    29
    case "$1" in
51
98a888ea3ddb benchrmark-runner.sh script for Smalltalk/X refactored...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 32
diff changeset
    30
        --gdb)
98a888ea3ddb benchrmark-runner.sh script for Smalltalk/X refactored...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 32
diff changeset
    31
            DEBUGGER=gdb
98a888ea3ddb benchrmark-runner.sh script for Smalltalk/X refactored...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 32
diff changeset
    32
            ;;
198
ac6fe48a684d Fixed --cgdb option for Smalltalk/X benchmark-runner.sh.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 181
diff changeset
    33
        --cgdb)
ac6fe48a684d Fixed --cgdb option for Smalltalk/X benchmark-runner.sh.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 181
diff changeset
    34
            DEBUGGER=cgdb
51
98a888ea3ddb benchrmark-runner.sh script for Smalltalk/X refactored...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 32
diff changeset
    35
            ;;
98a888ea3ddb benchrmark-runner.sh script for Smalltalk/X refactored...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 32
diff changeset
    36
        --callgrind)
261
5b9e93c1135d Added support for -Xdump-compile-map VM option.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 221
diff changeset
    37
            CALLGRIND="valgrind -v --smc-check=all-non-file --tool=callgrind --instr-atstart=no --collect-jumps=yes --cache-sim=yes --branch-sim=yes"
51
98a888ea3ddb benchrmark-runner.sh script for Smalltalk/X refactored...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 32
diff changeset
    38
            ;;
269
e1872c56d1d0 Added support to run benchmarks under System Tap (on Linux)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 261
diff changeset
    39
        --stap)
e1872c56d1d0 Added support to run benchmarks under System Tap (on Linux)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 261
diff changeset
    40
            shift
e1872c56d1d0 Added support to run benchmarks under System Tap (on Linux)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 261
diff changeset
    41
            if [ -z "$1" ]; then 
e1872c56d1d0 Added support to run benchmarks under System Tap (on Linux)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 261
diff changeset
    42
                echo "--stap requires systemtap script to run"
e1872c56d1d0 Added support to run benchmarks under System Tap (on Linux)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 261
diff changeset
    43
                exit 1
e1872c56d1d0 Added support to run benchmarks under System Tap (on Linux)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 261
diff changeset
    44
            fi
e1872c56d1d0 Added support to run benchmarks under System Tap (on Linux)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 261
diff changeset
    45
            if [ ! -r "$1" ]; then
e1872c56d1d0 Added support to run benchmarks under System Tap (on Linux)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 261
diff changeset
    46
                echo "$1 is not a readable systemtap script"
e1872c56d1d0 Added support to run benchmarks under System Tap (on Linux)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 261
diff changeset
    47
                echo "--stap requires systemtap script to run"
e1872c56d1d0 Added support to run benchmarks under System Tap (on Linux)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 261
diff changeset
    48
                exit 1
e1872c56d1d0 Added support to run benchmarks under System Tap (on Linux)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 261
diff changeset
    49
            fi
e1872c56d1d0 Added support to run benchmarks under System Tap (on Linux)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 261
diff changeset
    50
            STAPSCRIPT=$1
e1872c56d1d0 Added support to run benchmarks under System Tap (on Linux)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 261
diff changeset
    51
            ;;
51
98a888ea3ddb benchrmark-runner.sh script for Smalltalk/X refactored...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 32
diff changeset
    52
        -T*)
98a888ea3ddb benchrmark-runner.sh script for Smalltalk/X refactored...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 32
diff changeset
    53
            VM_OPTS="$VM_OPTS $1"
98a888ea3ddb benchrmark-runner.sh script for Smalltalk/X refactored...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 32
diff changeset
    54
            ;;
98a888ea3ddb benchrmark-runner.sh script for Smalltalk/X refactored...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 32
diff changeset
    55
        -M*)
98a888ea3ddb benchrmark-runner.sh script for Smalltalk/X refactored...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 32
diff changeset
    56
            VM_OPTS="$VM_OPTS $1"
98a888ea3ddb benchrmark-runner.sh script for Smalltalk/X refactored...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 32
diff changeset
    57
            ;;
98a888ea3ddb benchrmark-runner.sh script for Smalltalk/X refactored...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 32
diff changeset
    58
        *)
101
b84f72238da1 Fixed benchmark-runner scripts for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 74
diff changeset
    59
            SMALLTALK_OPTS="$SMALLTALK_OPTS $1"
51
98a888ea3ddb benchrmark-runner.sh script for Smalltalk/X refactored...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 32
diff changeset
    60
            ;;
98a888ea3ddb benchrmark-runner.sh script for Smalltalk/X refactored...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 32
diff changeset
    61
    esac
98a888ea3ddb benchrmark-runner.sh script for Smalltalk/X refactored...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 32
diff changeset
    62
    shift
98a888ea3ddb benchrmark-runner.sh script for Smalltalk/X refactored...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 32
diff changeset
    63
done
98a888ea3ddb benchrmark-runner.sh script for Smalltalk/X refactored...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 32
diff changeset
    64
98a888ea3ddb benchrmark-runner.sh script for Smalltalk/X refactored...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 32
diff changeset
    65
98a888ea3ddb benchrmark-runner.sh script for Smalltalk/X refactored...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 32
diff changeset
    66
98a888ea3ddb benchrmark-runner.sh script for Smalltalk/X refactored...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 32
diff changeset
    67
3
61839e9951bc Added runner start scripts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    68
DIR=`dirname $0`
61839e9951bc Added runner start scripts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    69
if [ ! -z "$DEBUGGER" ]; then
101
b84f72238da1 Fixed benchmark-runner scripts for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 74
diff changeset
    70
    exec $DEBUGGER $VM
269
e1872c56d1d0 Added support to run benchmarks under System Tap (on Linux)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 261
diff changeset
    71
elif [ ! -z "$CALLGRIND" ]; then
261
5b9e93c1135d Added support for -Xdump-compile-map VM option.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 221
diff changeset
    72
    JITMAP=$(mktemp --suffix=.txt)
269
e1872c56d1d0 Added support to run benchmarks under System Tap (on Linux)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 261
diff changeset
    73
    $CALLGRIND $VM 				\
261
5b9e93c1135d Added support for -Xdump-compile-map VM option.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 221
diff changeset
    74
        $VM_OPTS 				\
5b9e93c1135d Added support for -Xdump-compile-map VM option.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 221
diff changeset
    75
        -I -Xdump-compile-map=$JITMAP 		\
5b9e93c1135d Added support for -Xdump-compile-map VM option.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 221
diff changeset
    76
        --execute "$DIR/benchmark-runner.rc"    \
101
b84f72238da1 Fixed benchmark-runner scripts for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 74
diff changeset
    77
        $SMALLTALK_OPTS
269
e1872c56d1d0 Added support to run benchmarks under System Tap (on Linux)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 261
diff changeset
    78
    echo "JIT map saved to: $JITMAP"
e1872c56d1d0 Added support to run benchmarks under System Tap (on Linux)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 261
diff changeset
    79
    exit $?
e1872c56d1d0 Added support to run benchmarks under System Tap (on Linux)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 261
diff changeset
    80
elif [ ! -z "$STAPSCRIPT" ]; then
e1872c56d1d0 Added support to run benchmarks under System Tap (on Linux)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 261
diff changeset
    81
    stap                                                                       \
e1872c56d1d0 Added support to run benchmarks under System Tap (on Linux)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 261
diff changeset
    82
        --unprivileged $STAPSCRIPT -I "$TOP/stx/hacking/tapset"                \
e1872c56d1d0 Added support to run benchmarks under System Tap (on Linux)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 261
diff changeset
    83
        -c "$VM $VM_OPTS --execute $DIR/benchmark-runner.rc $SMALLTALK_OPTS"
e1872c56d1d0 Added support to run benchmarks under System Tap (on Linux)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 261
diff changeset
    84
    exit $?
e1872c56d1d0 Added support to run benchmarks under System Tap (on Linux)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 261
diff changeset
    85
else
e1872c56d1d0 Added support to run benchmarks under System Tap (on Linux)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 261
diff changeset
    86
    exec "$VM" \
e1872c56d1d0 Added support to run benchmarks under System Tap (on Linux)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 261
diff changeset
    87
        $VM_OPTS 					\
e1872c56d1d0 Added support to run benchmarks under System Tap (on Linux)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 261
diff changeset
    88
        -I  --execute "$DIR/benchmark-runner.rc" 	\
e1872c56d1d0 Added support to run benchmarks under System Tap (on Linux)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 261
diff changeset
    89
        $SMALLTALK_OPTS
3
61839e9951bc Added runner start scripts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    90
fi