summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--benchmark/bm_vm1_attr_ivar.rb14
-rw-r--r--benchmark/bm_vm1_attr_ivar_set.rb14
-rw-r--r--benchmark/bm_vm1_block.rb10
-rwxr-xr-xbenchmark/bm_vm1_blockparam.rb9
-rwxr-xr-xbenchmark/bm_vm1_blockparam_call.rb9
-rwxr-xr-xbenchmark/bm_vm1_blockparam_pass.rb13
-rwxr-xr-xbenchmark/bm_vm1_blockparam_yield.rb9
-rw-r--r--benchmark/bm_vm1_const.rb8
-rw-r--r--benchmark/bm_vm1_ensure.rb11
-rw-r--r--benchmark/bm_vm1_float_simple.rb7
-rw-r--r--benchmark/bm_vm1_gc_short_lived.rb10
-rw-r--r--benchmark/bm_vm1_gc_short_with_complex_long.rb27
-rw-r--r--benchmark/bm_vm1_gc_short_with_long.rb13
-rw-r--r--benchmark/bm_vm1_gc_short_with_symbol.rb15
-rw-r--r--benchmark/bm_vm1_gc_wb_ary.rb12
-rw-r--r--benchmark/bm_vm1_gc_wb_ary_promoted.rb14
-rw-r--r--benchmark/bm_vm1_gc_wb_obj.rb15
-rw-r--r--benchmark/bm_vm1_gc_wb_obj_promoted.rb17
-rw-r--r--benchmark/bm_vm1_ivar.rb8
-rw-r--r--benchmark/bm_vm1_ivar_set.rb6
-rw-r--r--benchmark/bm_vm1_length.rb9
-rw-r--r--benchmark/bm_vm1_lvar_init.rb18
-rw-r--r--benchmark/bm_vm1_lvar_set.rb5
-rw-r--r--benchmark/bm_vm1_neq.rb8
-rw-r--r--benchmark/bm_vm1_not.rb7
-rw-r--r--benchmark/bm_vm1_rescue.rb7
-rw-r--r--benchmark/bm_vm1_simplereturn.rb9
-rw-r--r--benchmark/bm_vm1_swap.rb8
-rw-r--r--benchmark/bm_vm1_yield.rb10
-rw-r--r--benchmark/vm1_attr_ivar.yml17
-rw-r--r--benchmark/vm1_attr_ivar_set.yml17
-rw-r--r--benchmark/vm1_block.yml13
-rw-r--r--benchmark/vm1_blockparam.yml11
-rw-r--r--benchmark/vm1_blockparam_call.yml12
-rw-r--r--benchmark/vm1_blockparam_pass.yml16
-rw-r--r--benchmark/vm1_blockparam_yield.yml12
-rw-r--r--benchmark/vm1_const.yml11
-rw-r--r--benchmark/vm1_ensure.yml13
-rw-r--r--benchmark/vm1_float_simple.yml10
-rw-r--r--benchmark/vm1_gc_short_lived.yml13
-rw-r--r--benchmark/vm1_gc_short_with_complex_long.yml29
-rw-r--r--benchmark/vm1_gc_short_with_long.yml16
-rw-r--r--benchmark/vm1_gc_short_with_symbol.yml19
-rw-r--r--benchmark/vm1_gc_wb_ary.yml15
-rw-r--r--benchmark/vm1_gc_wb_ary_promoted.yml17
-rw-r--r--benchmark/vm1_gc_wb_obj.yml18
-rw-r--r--benchmark/vm1_gc_wb_obj_promoted.yml20
-rw-r--r--benchmark/vm1_ivar.yml11
-rw-r--r--benchmark/vm1_ivar_set.yml9
-rw-r--r--benchmark/vm1_length.yml11
-rw-r--r--benchmark/vm1_lvar_init.yml20
-rw-r--r--benchmark/vm1_lvar_set.yml8
-rw-r--r--benchmark/vm1_neq.yml11
-rw-r--r--benchmark/vm1_not.yml10
-rw-r--r--benchmark/vm1_rescue.yml10
-rw-r--r--benchmark/vm1_simplereturn.yml11
-rw-r--r--benchmark/vm1_swap.yml10
-rw-r--r--benchmark/vm1_yield.yml12
58 files changed, 402 insertions, 322 deletions
diff --git a/benchmark/bm_vm1_attr_ivar.rb b/benchmark/bm_vm1_attr_ivar.rb
deleted file mode 100644
index 16906f3605..0000000000
--- a/benchmark/bm_vm1_attr_ivar.rb
+++ /dev/null
@@ -1,14 +0,0 @@
-class C
- attr_reader :a, :b
- def initialize
- @a = nil
- @b = nil
- end
-end
-obj = C.new
-i = 0
-while i<30_000_000 # while loop 1
- i += 1
- j = obj.a
- k = obj.b
-end
diff --git a/benchmark/bm_vm1_attr_ivar_set.rb b/benchmark/bm_vm1_attr_ivar_set.rb
deleted file mode 100644
index 7e7a6b48c0..0000000000
--- a/benchmark/bm_vm1_attr_ivar_set.rb
+++ /dev/null
@@ -1,14 +0,0 @@
-class C
- attr_accessor :a, :b
- def initialize
- @a = nil
- @b = nil
- end
-end
-obj = C.new
-i = 0
-while i<30_000_000 # while loop 1
- i += 1
- obj.a = 1
- obj.b = 2
-end
diff --git a/benchmark/bm_vm1_block.rb b/benchmark/bm_vm1_block.rb
deleted file mode 100644
index a9f56b15ea..0000000000
--- a/benchmark/bm_vm1_block.rb
+++ /dev/null
@@ -1,10 +0,0 @@
-def m
- yield
-end
-
-i = 0
-while i<30_000_000 # while loop 1
- i += 1
- m{
- }
-end
diff --git a/benchmark/bm_vm1_blockparam.rb b/benchmark/bm_vm1_blockparam.rb
deleted file mode 100755
index 11680a2e61..0000000000
--- a/benchmark/bm_vm1_blockparam.rb
+++ /dev/null
@@ -1,9 +0,0 @@
-def m &b
-end
-
-i = 0
-while i<30_000_000 # while loop 1
- i += 1
- m{}
-end
-
diff --git a/benchmark/bm_vm1_blockparam_call.rb b/benchmark/bm_vm1_blockparam_call.rb
deleted file mode 100755
index f6102a2b5a..0000000000
--- a/benchmark/bm_vm1_blockparam_call.rb
+++ /dev/null
@@ -1,9 +0,0 @@
-def m &b
- b.call
-end
-
-i = 0
-while i<30_000_000 # while loop 1
- i += 1
- m{}
-end
diff --git a/benchmark/bm_vm1_blockparam_pass.rb b/benchmark/bm_vm1_blockparam_pass.rb
deleted file mode 100755
index 10029a257a..0000000000
--- a/benchmark/bm_vm1_blockparam_pass.rb
+++ /dev/null
@@ -1,13 +0,0 @@
-def bp_yield
- yield
-end
-
-def bp_pass &b
- bp_yield &b
-end
-
-i = 0
-while i<30_000_000 # while loop 1
- i += 1
- bp_pass{}
-end
diff --git a/benchmark/bm_vm1_blockparam_yield.rb b/benchmark/bm_vm1_blockparam_yield.rb
deleted file mode 100755
index 6dc01ced7c..0000000000
--- a/benchmark/bm_vm1_blockparam_yield.rb
+++ /dev/null
@@ -1,9 +0,0 @@
-def bp_yield &b
- yield
-end
-
-i = 0
-while i<30_000_000 # while loop 1
- i += 1
- bp_yield{}
-end
diff --git a/benchmark/bm_vm1_const.rb b/benchmark/bm_vm1_const.rb
deleted file mode 100644
index ac59ebccf1..0000000000
--- a/benchmark/bm_vm1_const.rb
+++ /dev/null
@@ -1,8 +0,0 @@
-Const = 1
-
-i = 0
-while i<30_000_000 # while loop 1
- i += 1
- j = Const
- k = Const
-end
diff --git a/benchmark/bm_vm1_ensure.rb b/benchmark/bm_vm1_ensure.rb
deleted file mode 100644
index a1596145f2..0000000000
--- a/benchmark/bm_vm1_ensure.rb
+++ /dev/null
@@ -1,11 +0,0 @@
-i = 0
-while i<30_000_000 # benchmark loop 1
- i += 1
- begin
- begin
- ensure
- end
- ensure
- end
-end
-
diff --git a/benchmark/bm_vm1_float_simple.rb b/benchmark/bm_vm1_float_simple.rb
deleted file mode 100644
index d4581439ff..0000000000
--- a/benchmark/bm_vm1_float_simple.rb
+++ /dev/null
@@ -1,7 +0,0 @@
-i = 0.0; f = 0.0
-while i<30_000_000
- i += 1
- f += 0.1; f -= 0.1
- f += 0.1; f -= 0.1
- f += 0.1; f -= 0.1
-end
diff --git a/benchmark/bm_vm1_gc_short_lived.rb b/benchmark/bm_vm1_gc_short_lived.rb
deleted file mode 100644
index e78bca5668..0000000000
--- a/benchmark/bm_vm1_gc_short_lived.rb
+++ /dev/null
@@ -1,10 +0,0 @@
-i = 0
-while i<30_000_000 # while loop 1
- a = '' # short-lived String
- b = ''
- c = ''
- d = ''
- e = ''
- f = ''
- i+=1
-end
diff --git a/benchmark/bm_vm1_gc_short_with_complex_long.rb b/benchmark/bm_vm1_gc_short_with_complex_long.rb
deleted file mode 100644
index b66052dee0..0000000000
--- a/benchmark/bm_vm1_gc_short_with_complex_long.rb
+++ /dev/null
@@ -1,27 +0,0 @@
-def nested_hash h, n
- if n == 0
- ''
- else
- 10.times{
- h[Object.new] = nested_hash(h, n-1)
- }
- end
-end
-
-long_lived = Hash.new
-nested_hash long_lived, 6
-
-GC.start
-GC.start
-
-i = 0
-while i<30_000_000 # while loop 1
- a = '' # short-lived String
- b = ''
- c = ''
- d = ''
- e = ''
- f = ''
- i+=1
-end
-
diff --git a/benchmark/bm_vm1_gc_short_with_long.rb b/benchmark/bm_vm1_gc_short_with_long.rb
deleted file mode 100644
index 298dbc845b..0000000000
--- a/benchmark/bm_vm1_gc_short_with_long.rb
+++ /dev/null
@@ -1,13 +0,0 @@
-long_lived = Array.new(1_000_000){|i| "#{i}"}
-GC.start
-GC.start
-i = 0
-while i<30_000_000 # while loop 1
- a = '' # short-lived String
- b = ''
- c = ''
- d = ''
- e = ''
- f = ''
- i+=1
-end
diff --git a/benchmark/bm_vm1_gc_short_with_symbol.rb b/benchmark/bm_vm1_gc_short_with_symbol.rb
deleted file mode 100644
index 6b15c1b7bf..0000000000
--- a/benchmark/bm_vm1_gc_short_with_symbol.rb
+++ /dev/null
@@ -1,15 +0,0 @@
-# make many symbols
-50_000.times{|i| sym = "sym#{i}".to_sym}
-GC.start
-GC.start
-
-i = 0
-while i<30_000_000 # while loop 1
- a = '' # short-lived String
- b = ''
- c = ''
- d = ''
- e = ''
- f = ''
- i+=1
-end
diff --git a/benchmark/bm_vm1_gc_wb_ary.rb b/benchmark/bm_vm1_gc_wb_ary.rb
deleted file mode 100644
index 1b030386cf..0000000000
--- a/benchmark/bm_vm1_gc_wb_ary.rb
+++ /dev/null
@@ -1,12 +0,0 @@
-short_lived_ary = []
-
-if RUBY_VERSION >= "2.2.0"
- GC.start(full_mark: false, immediate_mark: true, immediate_sweep: true)
-end
-
-i = 0
-short_lived = ''
-while i<30_000_000 # while loop 1
- short_lived_ary[0] = short_lived # write barrier
- i+=1
-end
diff --git a/benchmark/bm_vm1_gc_wb_ary_promoted.rb b/benchmark/bm_vm1_gc_wb_ary_promoted.rb
deleted file mode 100644
index ebc369a60f..0000000000
--- a/benchmark/bm_vm1_gc_wb_ary_promoted.rb
+++ /dev/null
@@ -1,14 +0,0 @@
-long_lived = []
-
-if RUBY_VERSION > "2.2.0"
- 3.times{ GC.start(full_mark: false, immediate_mark: true, immediate_sweep: true) }
-elsif
- GC.start
-end
-
-i = 0
-short_lived = ''
-while i<30_000_000 # while loop 1
- long_lived[0] = short_lived # write barrier
- i+=1
-end
diff --git a/benchmark/bm_vm1_gc_wb_obj.rb b/benchmark/bm_vm1_gc_wb_obj.rb
deleted file mode 100644
index 96f4261915..0000000000
--- a/benchmark/bm_vm1_gc_wb_obj.rb
+++ /dev/null
@@ -1,15 +0,0 @@
-class C
- attr_accessor :foo
-end
-short_lived_obj = C.new
-
-if RUBY_VERSION >= "2.2.0"
- GC.start(full_mark: false, immediate_mark: true, immediate_sweep: true)
-end
-
-i = 0
-short_lived = ''
-while i<30_000_000 # while loop 1
- short_lived_obj.foo = short_lived # write barrier
- i+=1
-end
diff --git a/benchmark/bm_vm1_gc_wb_obj_promoted.rb b/benchmark/bm_vm1_gc_wb_obj_promoted.rb
deleted file mode 100644
index 674c413992..0000000000
--- a/benchmark/bm_vm1_gc_wb_obj_promoted.rb
+++ /dev/null
@@ -1,17 +0,0 @@
-class C
- attr_accessor :foo
-end
-long_lived = C.new
-
-if RUBY_VERSION >= "2.2.0"
- 3.times{ GC.start(full_mark: false, immediate_mark: true, immediate_sweep: true) }
-elsif
- GC.start
-end
-
-i = 0
-short_lived = ''
-while i<30_000_000 # while loop 1
- long_lived.foo = short_lived # write barrier
- i+=1
-end
diff --git a/benchmark/bm_vm1_ivar.rb b/benchmark/bm_vm1_ivar.rb
deleted file mode 100644
index 68a73cf92f..0000000000
--- a/benchmark/bm_vm1_ivar.rb
+++ /dev/null
@@ -1,8 +0,0 @@
-@a = 1
-
-i = 0
-while i<30_000_000 # while loop 1
- i += 1
- j = @a
- k = @a
-end
diff --git a/benchmark/bm_vm1_ivar_set.rb b/benchmark/bm_vm1_ivar_set.rb
deleted file mode 100644
index bd81b06c34..0000000000
--- a/benchmark/bm_vm1_ivar_set.rb
+++ /dev/null
@@ -1,6 +0,0 @@
-i = 0
-while i<30_000_000 # while loop 1
- i += 1
- @a = 1
- @b = 2
-end
diff --git a/benchmark/bm_vm1_length.rb b/benchmark/bm_vm1_length.rb
deleted file mode 100644
index 353de3ab0e..0000000000
--- a/benchmark/bm_vm1_length.rb
+++ /dev/null
@@ -1,9 +0,0 @@
-a = 'abc'
-b = [1, 2, 3]
-i = 0
-while i<30_000_000 # while loop 1
- i += 1
- a.length
- b.length
-end
-
diff --git a/benchmark/bm_vm1_lvar_init.rb b/benchmark/bm_vm1_lvar_init.rb
deleted file mode 100644
index 36f2068811..0000000000
--- a/benchmark/bm_vm1_lvar_init.rb
+++ /dev/null
@@ -1,18 +0,0 @@
-def m v
- unless v
- # unreachable code
- v1 = v2 = v3 = v4 = v5 = v6 = v7 = v8 = v9 = v10 =
- v11 = v12 = v13 = v14 = v15 = v16 = v17 = v18 = v19 = v20 =
- v21 = v22 = v23 = v24 = v25 = v26 = v27 = v28 = v29 = v30 =
- v31 = v32 = v33 = v34 = v35 = v36 = v37 = v38 = v39 = v40 =
- v41 = v42 = v43 = v44 = v45 = v46 = v47 = v48 = v49 = v50 = 1
- end
-end
-
-i = 0
-
-while i<30_000_000 # while loop 1
- i += 1
- m i
-end
-
diff --git a/benchmark/bm_vm1_lvar_set.rb b/benchmark/bm_vm1_lvar_set.rb
deleted file mode 100644
index 222e864134..0000000000
--- a/benchmark/bm_vm1_lvar_set.rb
+++ /dev/null
@@ -1,5 +0,0 @@
-i = 0
-while i<30_000_000 # while loop 1
- i += 1
- a = b = c = d = e = f = g = h = j = k = l = m = n = o = p = q = r = 1
-end
diff --git a/benchmark/bm_vm1_neq.rb b/benchmark/bm_vm1_neq.rb
deleted file mode 100644
index bbb4ae07a4..0000000000
--- a/benchmark/bm_vm1_neq.rb
+++ /dev/null
@@ -1,8 +0,0 @@
-i = 0
-obj1 = Object.new
-obj2 = Object.new
-
-while i<30_000_000 # while loop 1
- i += 1
- obj1 != obj2
-end
diff --git a/benchmark/bm_vm1_not.rb b/benchmark/bm_vm1_not.rb
deleted file mode 100644
index b09ecdcc21..0000000000
--- a/benchmark/bm_vm1_not.rb
+++ /dev/null
@@ -1,7 +0,0 @@
-i = 0
-obj = Object.new
-
-while i<30_000_000 # while loop 1
- i += 1
- !obj
-end
diff --git a/benchmark/bm_vm1_rescue.rb b/benchmark/bm_vm1_rescue.rb
deleted file mode 100644
index b0d3e2bdfa..0000000000
--- a/benchmark/bm_vm1_rescue.rb
+++ /dev/null
@@ -1,7 +0,0 @@
-i = 0
-while i<30_000_000 # while loop 1
- i += 1
- begin
- rescue
- end
-end
diff --git a/benchmark/bm_vm1_simplereturn.rb b/benchmark/bm_vm1_simplereturn.rb
deleted file mode 100644
index 63f9f21675..0000000000
--- a/benchmark/bm_vm1_simplereturn.rb
+++ /dev/null
@@ -1,9 +0,0 @@
-def m
- return 1
-end
-i = 0
-while i<30_000_000 # while loop 1
- i += 1
- m
-end
-
diff --git a/benchmark/bm_vm1_swap.rb b/benchmark/bm_vm1_swap.rb
deleted file mode 100644
index 918f8b2112..0000000000
--- a/benchmark/bm_vm1_swap.rb
+++ /dev/null
@@ -1,8 +0,0 @@
-a = 1
-b = 2
-i = 0
-while i<30_000_000 # while loop 1
- i += 1
- a, b = b, a
-end
-
diff --git a/benchmark/bm_vm1_yield.rb b/benchmark/bm_vm1_yield.rb
deleted file mode 100644
index 775597cea6..0000000000
--- a/benchmark/bm_vm1_yield.rb
+++ /dev/null
@@ -1,10 +0,0 @@
-def m
- i = 0
- while i<30_000_000 # while loop 1
- i += 1
- yield
- end
-end
-
-m{}
-
diff --git a/benchmark/vm1_attr_ivar.yml b/benchmark/vm1_attr_ivar.yml
new file mode 100644
index 0000000000..a5b3b336e1
--- /dev/null
+++ b/benchmark/vm1_attr_ivar.yml
@@ -0,0 +1,17 @@
+benchmark:
+ vm1_attr_ivar: |
+ class C
+ attr_reader :a, :b
+ def initialize
+ @a = nil
+ @b = nil
+ end
+ end
+ obj = C.new
+ i = 0
+ while i<30_000_000 # while loop 1
+ i += 1
+ j = obj.a
+ k = obj.b
+ end
+loop_count: 1
diff --git a/benchmark/vm1_attr_ivar_set.yml b/benchmark/vm1_attr_ivar_set.yml
new file mode 100644
index 0000000000..2f3cb82775
--- /dev/null
+++ b/benchmark/vm1_attr_ivar_set.yml
@@ -0,0 +1,17 @@
+benchmark:
+ vm1_attr_ivar_set: |
+ class C
+ attr_accessor :a, :b
+ def initialize
+ @a = nil
+ @b = nil
+ end
+ end
+ obj = C.new
+ i = 0
+ while i<30_000_000 # while loop 1
+ i += 1
+ obj.a = 1
+ obj.b = 2
+ end
+loop_count: 1
diff --git a/benchmark/vm1_block.yml b/benchmark/vm1_block.yml
new file mode 100644
index 0000000000..6e60f14c8e
--- /dev/null
+++ b/benchmark/vm1_block.yml
@@ -0,0 +1,13 @@
+benchmark:
+ vm1_block: |
+ def m
+ yield
+ end
+
+ i = 0
+ while i<30_000_000 # while loop 1
+ i += 1
+ m{
+ }
+ end
+loop_count: 1
diff --git a/benchmark/vm1_blockparam.yml b/benchmark/vm1_blockparam.yml
new file mode 100644
index 0000000000..7d670f7d82
--- /dev/null
+++ b/benchmark/vm1_blockparam.yml
@@ -0,0 +1,11 @@
+benchmark:
+ vm1_blockparam: |
+ def m &b
+ end
+
+ i = 0
+ while i<30_000_000 # while loop 1
+ i += 1
+ m{}
+ end
+loop_count: 1
diff --git a/benchmark/vm1_blockparam_call.yml b/benchmark/vm1_blockparam_call.yml
new file mode 100644
index 0000000000..445ac5150d
--- /dev/null
+++ b/benchmark/vm1_blockparam_call.yml
@@ -0,0 +1,12 @@
+benchmark:
+ vm1_blockparam_call: |
+ def m &b
+ b.call
+ end
+
+ i = 0
+ while i<30_000_000 # while loop 1
+ i += 1
+ m{}
+ end
+loop_count: 1
diff --git a/benchmark/vm1_blockparam_pass.yml b/benchmark/vm1_blockparam_pass.yml
new file mode 100644
index 0000000000..951518b5f6
--- /dev/null
+++ b/benchmark/vm1_blockparam_pass.yml
@@ -0,0 +1,16 @@
+benchmark:
+ vm1_blockparam_pass: |
+ def bp_yield
+ yield
+ end
+
+ def bp_pass &b
+ bp_yield &b
+ end
+
+ i = 0
+ while i<30_000_000 # while loop 1
+ i += 1
+ bp_pass{}
+ end
+loop_count: 1
diff --git a/benchmark/vm1_blockparam_yield.yml b/benchmark/vm1_blockparam_yield.yml
new file mode 100644
index 0000000000..2b55be8486
--- /dev/null
+++ b/benchmark/vm1_blockparam_yield.yml
@@ -0,0 +1,12 @@
+benchmark:
+ vm1_blockparam_yield: |
+ def bp_yield &b
+ yield
+ end
+
+ i = 0
+ while i<30_000_000 # while loop 1
+ i += 1
+ bp_yield{}
+ end
+loop_count: 1
diff --git a/benchmark/vm1_const.yml b/benchmark/vm1_const.yml
new file mode 100644
index 0000000000..2145e2675f
--- /dev/null
+++ b/benchmark/vm1_const.yml
@@ -0,0 +1,11 @@
+benchmark:
+ vm1_const: |
+ Const = 1
+
+ i = 0
+ while i<30_000_000 # while loop 1
+ i += 1
+ j = Const
+ k = Const
+ end
+loop_count: 1
diff --git a/benchmark/vm1_ensure.yml b/benchmark/vm1_ensure.yml
new file mode 100644
index 0000000000..2b2cef529a
--- /dev/null
+++ b/benchmark/vm1_ensure.yml
@@ -0,0 +1,13 @@
+benchmark:
+ vm1_ensure: |
+ i = 0
+ while i<30_000_000 # benchmark loop 1
+ i += 1
+ begin
+ begin
+ ensure
+ end
+ ensure
+ end
+ end
+loop_count: 1
diff --git a/benchmark/vm1_float_simple.yml b/benchmark/vm1_float_simple.yml
new file mode 100644
index 0000000000..a99f968457
--- /dev/null
+++ b/benchmark/vm1_float_simple.yml
@@ -0,0 +1,10 @@
+benchmark:
+ vm1_float_simple: |
+ i = 0.0; f = 0.0
+ while i<30_000_000
+ i += 1
+ f += 0.1; f -= 0.1
+ f += 0.1; f -= 0.1
+ f += 0.1; f -= 0.1
+ end
+loop_count: 1
diff --git a/benchmark/vm1_gc_short_lived.yml b/benchmark/vm1_gc_short_lived.yml
new file mode 100644
index 0000000000..c682715cb5
--- /dev/null
+++ b/benchmark/vm1_gc_short_lived.yml
@@ -0,0 +1,13 @@
+benchmark:
+ vm1_gc_short_lived: |
+ i = 0
+ while i<30_000_000 # while loop 1
+ a = '' # short-lived String
+ b = ''
+ c = ''
+ d = ''
+ e = ''
+ f = ''
+ i+=1
+ end
+loop_count: 1
diff --git a/benchmark/vm1_gc_short_with_complex_long.yml b/benchmark/vm1_gc_short_with_complex_long.yml
new file mode 100644
index 0000000000..2a3ba2f0c8
--- /dev/null
+++ b/benchmark/vm1_gc_short_with_complex_long.yml
@@ -0,0 +1,29 @@
+benchmark:
+ vm1_gc_short_with_complex_long: |
+ def nested_hash h, n
+ if n == 0
+ ''
+ else
+ 10.times{
+ h[Object.new] = nested_hash(h, n-1)
+ }
+ end
+ end
+
+ long_lived = Hash.new
+ nested_hash long_lived, 6
+
+ GC.start
+ GC.start
+
+ i = 0
+ while i<30_000_000 # while loop 1
+ a = '' # short-lived String
+ b = ''
+ c = ''
+ d = ''
+ e = ''
+ f = ''
+ i+=1
+ end
+loop_count: 1
diff --git a/benchmark/vm1_gc_short_with_long.yml b/benchmark/vm1_gc_short_with_long.yml
new file mode 100644
index 0000000000..f173ec0ca5
--- /dev/null
+++ b/benchmark/vm1_gc_short_with_long.yml
@@ -0,0 +1,16 @@
+benchmark:
+ vm1_gc_short_with_long: |
+ long_lived = Array.new(1_000_000){|i| "#{i}"}
+ GC.start
+ GC.start
+ i = 0
+ while i<30_000_000 # while loop 1
+ a = '' # short-lived String
+ b = ''
+ c = ''
+ d = ''
+ e = ''
+ f = ''
+ i+=1
+ end
+loop_count: 1
diff --git a/benchmark/vm1_gc_short_with_symbol.yml b/benchmark/vm1_gc_short_with_symbol.yml
new file mode 100644
index 0000000000..c78cd34f6f
--- /dev/null
+++ b/benchmark/vm1_gc_short_with_symbol.yml
@@ -0,0 +1,19 @@
+prelude: |
+ # make many symbols
+benchmark:
+ vm1_gc_short_with_symbol: |
+ 50_000.times{|i| sym = "sym#{i}".to_sym}
+ GC.start
+ GC.start
+
+ i = 0
+ while i<30_000_000 # while loop 1
+ a = '' # short-lived String
+ b = ''
+ c = ''
+ d = ''
+ e = ''
+ f = ''
+ i+=1
+ end
+loop_count: 1
diff --git a/benchmark/vm1_gc_wb_ary.yml b/benchmark/vm1_gc_wb_ary.yml
new file mode 100644
index 0000000000..62b37815de
--- /dev/null
+++ b/benchmark/vm1_gc_wb_ary.yml
@@ -0,0 +1,15 @@
+benchmark:
+ vm1_gc_wb_ary: |
+ short_lived_ary = []
+
+ if RUBY_VERSION >= "2.2.0"
+ GC.start(full_mark: false, immediate_mark: true, immediate_sweep: true)
+ end
+
+ i = 0
+ short_lived = ''
+ while i<30_000_000 # while loop 1
+ short_lived_ary[0] = short_lived # write barrier
+ i+=1
+ end
+loop_count: 1
diff --git a/benchmark/vm1_gc_wb_ary_promoted.yml b/benchmark/vm1_gc_wb_ary_promoted.yml
new file mode 100644
index 0000000000..5befcc9b5d
--- /dev/null
+++ b/benchmark/vm1_gc_wb_ary_promoted.yml
@@ -0,0 +1,17 @@
+benchmark:
+ vm1_gc_wb_ary_promoted: |
+ long_lived = []
+
+ if RUBY_VERSION > "2.2.0"
+ 3.times{ GC.start(full_mark: false, immediate_mark: true, immediate_sweep: true) }
+ elsif
+ GC.start
+ end
+
+ i = 0
+ short_lived = ''
+ while i<30_000_000 # while loop 1
+ long_lived[0] = short_lived # write barrier
+ i+=1
+ end
+loop_count: 1
diff --git a/benchmark/vm1_gc_wb_obj.yml b/benchmark/vm1_gc_wb_obj.yml
new file mode 100644
index 0000000000..0adcd84ee3
--- /dev/null
+++ b/benchmark/vm1_gc_wb_obj.yml
@@ -0,0 +1,18 @@
+benchmark:
+ vm1_gc_wb_obj: |
+ class C
+ attr_accessor :foo
+ end
+ short_lived_obj = C.new
+
+ if RUBY_VERSION >= "2.2.0"
+ GC.start(full_mark: false, immediate_mark: true, immediate_sweep: true)
+ end
+
+ i = 0
+ short_lived = ''
+ while i<30_000_000 # while loop 1
+ short_lived_obj.foo = short_lived # write barrier
+ i+=1
+ end
+loop_count: 1
diff --git a/benchmark/vm1_gc_wb_obj_promoted.yml b/benchmark/vm1_gc_wb_obj_promoted.yml
new file mode 100644
index 0000000000..56abca0c3c
--- /dev/null
+++ b/benchmark/vm1_gc_wb_obj_promoted.yml
@@ -0,0 +1,20 @@
+benchmark:
+ vm1_gc_wb_obj_promoted: |
+ class C
+ attr_accessor :foo
+ end
+ long_lived = C.new
+
+ if RUBY_VERSION >= "2.2.0"
+ 3.times{ GC.start(full_mark: false, immediate_mark: true, immediate_sweep: true) }
+ elsif
+ GC.start
+ end
+
+ i = 0
+ short_lived = ''
+ while i<30_000_000 # while loop 1
+ long_lived.foo = short_lived # write barrier
+ i+=1
+ end
+loop_count: 1
diff --git a/benchmark/vm1_ivar.yml b/benchmark/vm1_ivar.yml
new file mode 100644
index 0000000000..ccbe656e32
--- /dev/null
+++ b/benchmark/vm1_ivar.yml
@@ -0,0 +1,11 @@
+benchmark:
+ vm1_ivar: |
+ @a = 1
+
+ i = 0
+ while i<30_000_000 # while loop 1
+ i += 1
+ j = @a
+ k = @a
+ end
+loop_count: 1
diff --git a/benchmark/vm1_ivar_set.yml b/benchmark/vm1_ivar_set.yml
new file mode 100644
index 0000000000..a842010014
--- /dev/null
+++ b/benchmark/vm1_ivar_set.yml
@@ -0,0 +1,9 @@
+benchmark:
+ vm1_ivar_set: |
+ i = 0
+ while i<30_000_000 # while loop 1
+ i += 1
+ @a = 1
+ @b = 2
+ end
+loop_count: 1
diff --git a/benchmark/vm1_length.yml b/benchmark/vm1_length.yml
new file mode 100644
index 0000000000..030b6c510c
--- /dev/null
+++ b/benchmark/vm1_length.yml
@@ -0,0 +1,11 @@
+benchmark:
+ vm1_length: |
+ a = 'abc'
+ b = [1, 2, 3]
+ i = 0
+ while i<30_000_000 # while loop 1
+ i += 1
+ a.length
+ b.length
+ end
+loop_count: 1
diff --git a/benchmark/vm1_lvar_init.yml b/benchmark/vm1_lvar_init.yml
new file mode 100644
index 0000000000..468bd24919
--- /dev/null
+++ b/benchmark/vm1_lvar_init.yml
@@ -0,0 +1,20 @@
+benchmark:
+ vm1_lvar_init: |
+ def m v
+ unless v
+ # unreachable code
+ v1 = v2 = v3 = v4 = v5 = v6 = v7 = v8 = v9 = v10 =
+ v11 = v12 = v13 = v14 = v15 = v16 = v17 = v18 = v19 = v20 =
+ v21 = v22 = v23 = v24 = v25 = v26 = v27 = v28 = v29 = v30 =
+ v31 = v32 = v33 = v34 = v35 = v36 = v37 = v38 = v39 = v40 =
+ v41 = v42 = v43 = v44 = v45 = v46 = v47 = v48 = v49 = v50 = 1
+ end
+ end
+
+ i = 0
+
+ while i<30_000_000 # while loop 1
+ i += 1
+ m i
+ end
+loop_count: 1
diff --git a/benchmark/vm1_lvar_set.yml b/benchmark/vm1_lvar_set.yml
new file mode 100644
index 0000000000..020679933c
--- /dev/null
+++ b/benchmark/vm1_lvar_set.yml
@@ -0,0 +1,8 @@
+benchmark:
+ vm1_lvar_set: |
+ i = 0
+ while i<30_000_000 # while loop 1
+ i += 1
+ a = b = c = d = e = f = g = h = j = k = l = m = n = o = p = q = r = 1
+ end
+loop_count: 1
diff --git a/benchmark/vm1_neq.yml b/benchmark/vm1_neq.yml
new file mode 100644
index 0000000000..8ce480cbf4
--- /dev/null
+++ b/benchmark/vm1_neq.yml
@@ -0,0 +1,11 @@
+benchmark:
+ vm1_neq: |
+ i = 0
+ obj1 = Object.new
+ obj2 = Object.new
+
+ while i<30_000_000 # while loop 1
+ i += 1
+ obj1 != obj2
+ end
+loop_count: 1
diff --git a/benchmark/vm1_not.yml b/benchmark/vm1_not.yml
new file mode 100644
index 0000000000..a38dfc7343
--- /dev/null
+++ b/benchmark/vm1_not.yml
@@ -0,0 +1,10 @@
+benchmark:
+ vm1_not: |
+ i = 0
+ obj = Object.new
+
+ while i<30_000_000 # while loop 1
+ i += 1
+ !obj
+ end
+loop_count: 1
diff --git a/benchmark/vm1_rescue.yml b/benchmark/vm1_rescue.yml
new file mode 100644
index 0000000000..539a6e88f7
--- /dev/null
+++ b/benchmark/vm1_rescue.yml
@@ -0,0 +1,10 @@
+benchmark:
+ vm1_rescue: |
+ i = 0
+ while i<30_000_000 # while loop 1
+ i += 1
+ begin
+ rescue
+ end
+ end
+loop_count: 1
diff --git a/benchmark/vm1_simplereturn.yml b/benchmark/vm1_simplereturn.yml
new file mode 100644
index 0000000000..cfe1f74489
--- /dev/null
+++ b/benchmark/vm1_simplereturn.yml
@@ -0,0 +1,11 @@
+benchmark:
+ vm1_simplereturn: |
+ def m
+ return 1
+ end
+ i = 0
+ while i<30_000_000 # while loop 1
+ i += 1
+ m
+ end
+loop_count: 1
diff --git a/benchmark/vm1_swap.yml b/benchmark/vm1_swap.yml
new file mode 100644
index 0000000000..789aa7d42e
--- /dev/null
+++ b/benchmark/vm1_swap.yml
@@ -0,0 +1,10 @@
+benchmark:
+ vm1_swap: |
+ a = 1
+ b = 2
+ i = 0
+ while i<30_000_000 # while loop 1
+ i += 1
+ a, b = b, a
+ end
+loop_count: 1
diff --git a/benchmark/vm1_yield.yml b/benchmark/vm1_yield.yml
new file mode 100644
index 0000000000..b67ebb4d95
--- /dev/null
+++ b/benchmark/vm1_yield.yml
@@ -0,0 +1,12 @@
+benchmark:
+ vm1_yield: |
+ def m
+ i = 0
+ while i<30_000_000 # while loop 1
+ i += 1
+ yield
+ end
+ end
+
+ m{}
+loop_count: 1