aboutsummaryrefslogtreecommitdiff
path: root/lib/tsan/check_analyze.sh
diff options
context:
space:
mode:
Diffstat (limited to 'lib/tsan/check_analyze.sh')
-rwxr-xr-xlib/tsan/check_analyze.sh20
1 files changed, 18 insertions, 2 deletions
diff --git a/lib/tsan/check_analyze.sh b/lib/tsan/check_analyze.sh
index 4b33393ef648..0f6cc0698471 100755
--- a/lib/tsan/check_analyze.sh
+++ b/lib/tsan/check_analyze.sh
@@ -1,7 +1,17 @@
#!/bin/bash
+#
+# Script that checks that critical functions in TSan runtime have correct number
+# of push/pop/rsp instructions to verify that runtime is efficient enough.
+
set -u
-RES=$(./analyze_libtsan.sh)
+if [[ "$#" != 1 ]]; then
+ echo "Usage: $0 /path/to/binary/built/with/tsan"
+ exit 1
+fi
+
+SCRIPTDIR=$(dirname $0)
+RES=$(${SCRIPTDIR}/analyze_libtsan.sh $1)
PrintRes() {
printf "%s\n" "$RES"
}
@@ -22,7 +32,13 @@ for f in write1; do
check $f pop 2
done
-for f in write2 write4 write8; do
+for f in write2 write4; do
+ check $f rsp 1
+ check $f push 4
+ check $f pop 4
+done
+
+for f in write8; do
check $f rsp 1
check $f push 3
check $f pop 3