aboutsummaryrefslogtreecommitdiffstats
path: root/COPYING.ja
diff options
context:
space:
mode:
authorshyouhei <shyouhei@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2017-03-06 06:04:52 +0000
committershyouhei <shyouhei@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2017-03-06 06:04:52 +0000
commit9d184819146bb7d24b30fc54ef206d9a592c9be4 (patch)
tree508d56481df15bcd86ad634e7e25a19e6c55bc9a /COPYING.ja
parent60ac2d5cc84cf1aa0f4993211f73f22013349e1d (diff)
downloadruby-9d184819146bb7d24b30fc54ef206d9a592c9be4.tar.gz
use HAVE_BUILTIN___BUILTIN_MUL_OVERFLOW
We already check for __builtin_mul_overflow in configure but never actually referred it before. Why not call it if available, because that should render supposedly-optimial assembly outputs. Optionally if __builtin_mul_overflow_p is available, which is the case for recent GCC, use that to detect fixnum overflow. This is much faster than the previous. On my machine generated assembly of numeric.c:int_pow reduces from 480 to 448 bytes, according to nm(1). Also on my machine, following script boosts from 7.819 to 6.929 sec. time ./miniruby -e 'i=0; while i < 30_000_000 do i += 1; 7 ** 23; end' Signed-off-by: Urabe, Shyouhei <shyouhei@ruby-lang.org> git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57784 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'COPYING.ja')
0 files changed, 0 insertions, 0 deletions