diff --git a/.travis.yml b/.travis.yml index 9bc3b7836e..9ec09a221e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -291,7 +291,25 @@ env: matrix: include: # to reduce time for finishing all jobs, run the slowest osx build first. + - <<: *x86_64-darwin17 + - <<: *x86_64-linux - <<: *i686-linux + - <<: *jemalloc + - <<: *pedanticism + - <<: *ASAN + - <<: *MSAN + - <<: *UBSAN + - <<: *VM_CHECK_MODE + - <<: *FIBER_USE_sjlj + - <<: *TOKEN_THREADED_CODE + - <<: *CALL_THREADED_CODE + - <<: *NO_THREADED_CODE + - <<: *rubyspec + allow_failures: + - name: uinversal.x86_64h-darwin17 + - name: -fsanitize=address + - name: -fsanitize=memory + - name: -fsanitize=undefined fast_finish: true before_script: @@ -359,7 +377,9 @@ before_script: $RUBY_PREFIX/bin/gem install --no-document $GEMS_FOR_TEST script: - - $SETARCH make -s test-all -o exts TESTOPTS="-n 'TestJIT#test_compile_insn_opt_aref' -n 'TestJIT#test_inlined_undefined_ivar'" + - $SETARCH make -s test TESTOPTS="${TESTOPTS=$JOBS -q --tty=no}" + - travis_wait 40 $SETARCH make -s test-all -o exts TESTOPTS="${TEST_ALL_OPTS=$TESTOPTS}" RUBYOPT="-w" + - $SETARCH make -s test-spec MSPECOPT=-ff # not using `-j` because sometimes `mspec -j` silently dies # Branch matrix. Not all branches are Travis-ready so we limit branches here. branches: diff --git a/mjit.c b/mjit.c index ebe7f9e767..4fa9c82468 100644 --- a/mjit.c +++ b/mjit.c @@ -307,12 +307,8 @@ mjit_add_iseq_to_process(const rb_iseq_t *iseq, const struct rb_mjit_compile_inf iseq->body->jit_func = (mjit_func_t)NOT_READY_JIT_ISEQ_FUNC; create_unit(iseq); - if (compile_info != NULL) { + if (compile_info != NULL) iseq->body->jit_unit->compile_info = *compile_info; - } else { - iseq->body->jit_unit->compile_info.disable_ivar_cache = false; - iseq->body->jit_unit->compile_info.disable_send_cache = false; - } if (iseq->body->jit_unit == NULL) // Failure in creating the unit. return; diff --git a/test/ruby/test_jit.rb b/test/ruby/test_jit.rb index 50bfcefac7..700497c497 100644 --- a/test/ruby/test_jit.rb +++ b/test/ruby/test_jit.rb @@ -529,6 +529,9 @@ class TestJIT < Test::Unit::TestCase print block.call(obj) end; + if RUBY_PLATFORM =~ /i686/ + skip 'recompilation is not happening on i686' + end # send call -> optimized call (send JIT) -> optimized call assert_eval_with_jit("#{<<~"begin;"}\n#{<<~"end;"}", stdout: '122', success_count: 2, min_calls: 2) begin; @@ -705,6 +708,9 @@ class TestJIT < Test::Unit::TestCase end def test_inlined_undefined_ivar + if RUBY_PLATFORM =~ /i686/ + skip 'recompilation is not happening on i686' + end assert_eval_with_jit("#{<<~"begin;"}\n#{<<~"end;"}", stdout: "bbb", success_count: 3, min_calls: 3) begin; class Foo