summaryrefslogtreecommitdiffstats
path: root/runtime/bench2
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/bench2')
-rw-r--r--runtime/bench2/const.st31
-rw-r--r--runtime/bench2/var.st27
-rwxr-xr-xruntime/bench2/var_bench17
3 files changed, 75 insertions, 0 deletions
diff --git a/runtime/bench2/const.st b/runtime/bench2/const.st
new file mode 100644
index 00000000..a816daec
--- /dev/null
+++ b/runtime/bench2/const.st
@@ -0,0 +1,31 @@
+# constant variable
+
+# This is a test of the translator's ability to detect
+# when variables are never modified and to optimize
+# reading of them.
+
+global a
+
+# You can put initialization in here
+probe begin {
+ a = 1
+}
+
+# This gets probed millions of times. TEST gets replaces
+# by the real probe point.
+probe TEST {
+ if (a == 0)
+ printf("a is ZERO\n")
+
+}
+
+# something rarely called. Just here to be
+# as close as possible to "var.st".
+probe kernel.function("sys_delete_module")
+{
+}
+
+probe end {
+ printf("a=%d\n", a)
+}
+
diff --git a/runtime/bench2/var.st b/runtime/bench2/var.st
new file mode 100644
index 00000000..ab77bb06
--- /dev/null
+++ b/runtime/bench2/var.st
@@ -0,0 +1,27 @@
+# simple variable
+
+global a
+
+# You can put initialization in here
+probe begin {
+ a = 1
+}
+
+# This gets probed millions of times. TEST gets replaces
+# by the real probe point.
+probe TEST {
+ if (a == 0)
+ printf("a is ZERO\n")
+}
+
+# something rarely called. Just to force the optimizer
+# to not optimize access to "a"
+probe kernel.function("sys_delete_module")
+{
+ a = 2
+}
+
+probe end {
+ printf("a=%d\n", a)
+}
+
diff --git a/runtime/bench2/var_bench b/runtime/bench2/var_bench
new file mode 100755
index 00000000..a45d9170
--- /dev/null
+++ b/runtime/bench2/var_bench
@@ -0,0 +1,17 @@
+#!/usr/bin/env ruby
+load './bench.rb'
+
+# This is a test of the translator's ability to detect
+# when variables are never modified and to optimize
+# reading of them.
+
+["var.st","const.st"].each do |file|
+ File.open(file,"r") do |f|
+ desc = f.gets.sub(/^#/,'').strip
+ test = Stapbench.new(desc)
+ test.file = file
+ test.run
+ test.print
+ end
+end
+