1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00
ruby--ruby/tool
shyouhei 3234245ae3 move ADD_PC around to optimize PC manipluiations
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
2018-01-26 06:30:58 +00:00
..
m4 Emacs friendliness [ci skip] 2018-01-20 07:14:59 +00:00
ruby_vm move ADD_PC around to optimize PC manipluiations 2018-01-26 06:30:58 +00:00
test
asm_parse.rb
bisect.sh
build-transcode
change_maker.rb
checksum.rb
colorize.rb distinguish pass and fail by highlight [ci skip] 2017-10-14 02:17:07 +00:00
downloader.rb tool/downloader.rb: retry against Errno::ETIMEDOUT 2018-01-10 15:44:52 +00:00
enc-emoji-citrus-gen.rb
enc-emoji4unicode.rb
enc-unicode.rb support gperf 3.1 2017-12-08 05:51:19 +00:00
eval.rb
expand-config.rb
extlibs.rb
fake.rb fake.rb: set libdir 2017-12-27 01:26:22 +00:00
fetch-bundled_gems.rb test-bundled-gems-fetch 2017-10-25 23:35:46 +00:00
file2lastrev.rb file2lastrev.rb: suppress_not_found 2017-12-06 11:18:53 +00:00
gem-unpack.rb
gen_dummy_probes.rb
gen_ruby_tapset.rb
generate-backport-changelog.rb
generic_erb.rb generic_erb.rb: -i option 2017-10-01 02:39:22 +00:00
git-refresh
gperf.sed gperf.sed: static declarations 2017-12-15 14:42:43 +00:00
id2token.rb
ifchange distinguish pass and fail by highlight [ci skip] 2017-10-14 02:17:07 +00:00
insns2vm.rb tool/ruby_vm support for pre-2.1 BASERUBY 2018-01-12 08:38:11 +00:00
install-sh configure.ac 2017-09-29 13:21:17 +00:00
jisx0208.rb
make-snapshot Fixed conflicted variables. v is already used another condition. 2017-10-25 06:58:24 +00:00
make_hgraph.rb
mdoc2man.rb
merger.rb aliases 2017-12-16 01:56:14 +00:00
mk_call_iseq_optimized.rb mk_call_iseq_optimized.rb: add mode string [ci skip] 2017-11-09 23:02:52 +00:00
mkconfig.rb
mkrunnable.rb rename ruby-runner as bin/ruby 2017-09-15 17:42:00 +00:00
node_name.rb
parse.rb
prereq.status
probes_to_wiki.rb
pull-latest-mspec-spec Adapt tools to follow spec/rubyspec => spec/ruby rename 2017-09-20 20:19:54 +00:00
rbinstall.rb tool/rbinstall.rb: allow owner to have write permissions 2018-01-05 09:41:21 +00:00
rbuninstall.rb
redmine-backporter.rb
release.sh
rmdirs
run-gcov.rb
run-lcov.rb Revamp method coverage to support define_method 2017-12-05 07:16:42 +00:00
runruby.rb tool/runruby.rb: fix RUNRUBY_USE_GDB case 2017-11-07 11:21:09 +00:00
strip-rdoc.rb
sync_default_gems.rb Postponing the Bundler merge. 2017-12-22 23:08:05 +00:00
test-coverage.rb ext/coverage/coverage.c: remove COVERAGE_EXPERIMENTAL_MODE 2017-12-12 00:20:58 +00:00
transcode-tblgen.rb
update-deps update-deps: strip -j option 2018-01-09 06:55:54 +00:00
vcs.rb vcs: --add-author-from 2017-12-19 03:17:37 +00:00
vpath.rb
vtlh.rb
ytab.sed more ytab.sed fixes 2018-01-15 02:39:32 +00:00