| Age | Commit message (Collapse) | Author |
|
This commit introduces new attribute handles_flame and if that is
_not_ the case, places ADD_PC right after INC_SP. This improves
locality of PC manipulations to prevents unnecessary register spill-
outs. As a result, it reduces the size of vm_exec_core from 32,688
bytes to 32,384 bytes on my machine.
Speedup is very faint, but certain.
-----------------------------------------------------------
benchmark results:
minimum results in each 3 measurements.
Execution time (sec)
name before after
so_ackermann 0.476 0.464
so_array 0.742 0.728
so_binary_trees 5.493 5.466
so_concatenate 3.619 3.395
so_count_words 0.190 0.184
so_exception 0.249 0.239
so_fannkuch 0.994 0.953
so_fasta 1.369 1.374
so_k_nucleotide 1.111 1.111
so_lists 0.470 0.481
so_mandelbrot 2.059 2.050
so_matrix 0.466 0.465
so_meteor_contest 2.712 2.781
so_nbody 1.154 1.204
so_nested_loop 0.852 0.846
so_nsieve 1.636 1.623
so_nsieve_bits 2.073 2.039
so_object 0.616 0.584
so_partial_sums 1.464 1.481
so_pidigits 1.075 1.082
so_random 0.321 0.317
so_reverse_complement 0.555 0.558
so_sieve 0.495 0.490
so_spectralnorm 1.634 1.627
Speedup ratio: compare with the result of `before' (greater is better)
name after
so_ackermann 1.025
so_array 1.019
so_binary_trees 1.005
so_concatenate 1.066
so_count_words 1.030
so_exception 1.040
so_fannkuch 1.043
so_fasta 0.996
so_k_nucleotide 1.000
so_lists 0.978
so_mandelbrot 1.004
so_matrix 1.001
so_meteor_contest 0.975
so_nbody 0.959
so_nested_loop 1.007
so_nsieve 1.008
so_nsieve_bits 1.017
so_object 1.056
so_partial_sums 0.989
so_pidigits 0.994
so_random 1.014
so_reverse_complement 0.996
so_sieve 1.010
so_spectralnorm 1.004
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62051 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61838 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
give up CALL_ATTRIBUTE macro.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61802 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
`signed` is required for Rasbian (x86_64).
* tool/ruby_vm/views/_insn_stack_increase.erb: specify `signed` explicitly
for systems which use `unsigned` for `char` type.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61792 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
This was not requested :) but actually easier than the previous
so I just did it anyway.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61787 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
as requested by devs, support for BASERUBY prior to 2.1
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61786 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
as requested by devs, support for BASERUBY prior to 2.3
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61785 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
Previous commit changed insns.def format. Now is the time for its
generators. In doing so I chose to modernize the system, not just
patch. My attempt includes
- extensive use of Onigumo regular expressions
- split from one big file (instruction.rb) into separated MVC
- partial view
Also, let me take this opportunity to kill old unused features
such as
- stack caching
- minsns / yasmdata which are never seriously used
- yarvarch document generation (moved to doc/)
- vast majority of unused arguments to insns2vm.rb
This commit generates VM source codes that cleanly compile, and
the generated binary passes tests. At least for me.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61784 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
- Gave up @j comments
- Room for sp_inc to be a proper grammer element
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61782 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
Revert all the VM generator rewrites; requested by naruse
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61755 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* tool/ruby_vm/loaders/opt_operand_def.rb: grammer -> grammar
* tool/ruby_vm/scripts/insns2vm.rb: beginnig -> beginning
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61752 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* tool/ruby_vm/views/_insn_stack_increase.erb: specify `signed` explicitly
for systems which use `unsigned` for `char` type.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61746 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61744 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
baseruby should support wider ruby versions
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61741 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61736 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* template/insns_info.inc.tmpl (insn_name_info): make position
independent for large strings.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61735 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61734 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
Previous commit changed insns.def format. Now is the time for its
generators. In doing so I chose to modernize the system, not just
patch. My attempt includes
- extensive use of Onigumo regular expressions
- split from one big file (instruction.rb) into separated MVC
- partial view
Also, let me take this opportunity to kill old unused features
such as
- stack caching
- minsns / yasmdata which are never seriously used
- yarvarch document generation (moved to doc/)
- vast majority of unused arguments to insns2vm.rb
This commit generates VM source codes that cleanly compile, and
the generated binary passes tests. At least for me.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61733 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61731 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
- Gave up @j comments
- Room for sp_inc to be a proper grammer element
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61729 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|