summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authork0kubun <k0kubun@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-09-25 17:20:02 +0000
committerk0kubun <k0kubun@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-09-25 17:20:02 +0000
commit2b610ec285ed41b8ce62f81354b7019a83fbd156 (patch)
treeae06271419e876cff1cea8d8863a99d214b6c981
parent08c9f030f6b5d260d12cf02a9ca0f4a60f816365 (diff)
insns.def: drop bitblt insn
as a workaround to fix the build pipeline broken by r64824, because optimizing Ruby should be prioritized higher than supporting unused jokes. In the current build system, exceeding 200 insns somehow crashes C extension build on some of MinGW environments like "mingw32-make[1]: *** No rule to make target 'note'. Stop." https://ci.appveyor.com/project/ruby/ruby/build/9725/job/co4nu9jugm8qwdrp and on some of Linux environments like "cannot load such file -- stringio (LoadError)" ``` build_install /home/ko1/ruby/src/trunk_gcc5/lib/rubygems/specification.rb:18:in `require': cannot load such file -- stringio (LoadError) from /home/ko1/ruby/src/trunk_gcc5/lib/rubygems/specification.rb:18:in `<top (required)>' from /home/ko1/ruby/src/trunk_gcc5/lib/rubygems.rb:1365:in `require' from /home/ko1/ruby/src/trunk_gcc5/lib/rubygems.rb:1365:in `<module:Gem>' from /home/ko1/ruby/src/trunk_gcc5/lib/rubygems.rb:116:in `<top (required)>' from /home/ko1/ruby/src/trunk_gcc5/tool/rbinstall.rb:24:in `require' from /home/ko1/ruby/src/trunk_gcc5/tool/rbinstall.rb:24:in `<main>' make: *** [do-install-nodoc] Error 1 ``` http://ci.rvm.jp/results/trunk_gcc5@silicon-docker/1353447 This commit removes "bitblt" and "trace_bitblt" insns, which reduces the number of insns from 202 to 200 and fixes at least the latter build failure. I hope this fixes the MinGW build failure as well. Let me confirm the situation on AppVeyor CI. Note that this is hard to fix because some MinGW environments (MSP-Greg's MinGW CI on AppVeyor) don't reproduce this and some Linux environments (including my local machine) don't reproduce it either. Make sure you have the reproductive environment and confirm it's fixed when reverting this commit. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64839 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--compile.c8
-rw-r--r--insns.def10
-rw-r--r--test/ruby/test_jit.rb1
3 files changed, 1 insertions, 18 deletions
diff --git a/compile.c b/compile.c
index 0a2e076b39..bb469659c8 100644
--- a/compile.c
+++ b/compile.c
@@ -6443,17 +6443,11 @@ iseq_compile_each0(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *node, in
INIT_ANCHOR(args);
#if SUPPORT_JOKE
if (nd_type(node) == NODE_VCALL) {
- ID id_bitblt;
ID id_answer;
- CONST_ID(id_bitblt, "bitblt");
CONST_ID(id_answer, "the_answer_to_life_the_universe_and_everything");
- if (mid == id_bitblt) {
- ADD_INSN(ret, line, bitblt);
- break;
- }
- else if (mid == id_answer) {
+ if (mid == id_answer) {
ADD_INSN(ret, line, answer);
break;
}
diff --git a/insns.def b/insns.def
index cacc5b709f..eb8c20bbba 100644
--- a/insns.def
+++ b/insns.def
@@ -1438,16 +1438,6 @@ opt_call_c_function
NEXT_INSN();
}
-/* BLT */
-DEFINE_INSN
-bitblt
-()
-()
-(VALUE ret)
-{
- ret = rb_str_new2("a bit of bacon, lettuce and tomato");
-}
-
/* The Answer to Life, the Universe, and Everything */
DEFINE_INSN
answer
diff --git a/test/ruby/test_jit.rb b/test/ruby/test_jit.rb
index 3770faf038..722801226e 100644
--- a/test/ruby/test_jit.rb
+++ b/test/ruby/test_jit.rb
@@ -19,7 +19,6 @@ class TestJIT < Test::Unit::TestCase
:opt_call_c_function,
# joke
- :bitblt,
:answer,
# TODO: write tests for them