Skip to content

Commit 3fe1347

Browse files
committed
Skip assert_linear_performance for RJIT
1 parent bf75877 commit 3fe1347

File tree

2 files changed

+6
-10
lines changed

2 files changed

+6
-10
lines changed

lib/ruby_vm/rjit/insn_compiler.rb

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1366,7 +1366,7 @@ def send(jit, ctx, asm)
13661366

13671367
# calling->ci
13681368
mid = C.vm_ci_mid(cd.ci)
1369-
calling = build_calling(ci: cd.ci, block_handler:)
1369+
calling = build_calling(ci: cd.ci, block_handler: blockiseq)
13701370

13711371
# vm_sendish
13721372
cme, comptime_recv_klass = jit_search_method(jit, ctx, asm, mid, calling)
@@ -3941,13 +3941,6 @@ def jit_caller_setup_arg_block(jit, ctx, asm, ci, blockiseq, is_super)
39413941
return blockiseq
39423942
else
39433943
if is_super
3944-
# GET_BLOCK_HANDLER();
3945-
# Guard no block passed. Only handle that case for now.
3946-
asm.comment('guard no block given')
3947-
jit_get_lep(jit, asm, reg: :rax)
3948-
asm.cmp([:rax, C.VALUE.size * C::VM_ENV_DATA_INDEX_SPECVAL], C::VM_BLOCK_HANDLER_NONE)
3949-
asm.jne(counted_exit(side_exit, :send_block_handler))
3950-
return C::VM_BLOCK_HANDLER_NONE
39513944
else
39523945
# Not implemented yet. Is this even necessary?
39533946
asm.incr_counter(:send_block_setup)

tool/lib/core_assertions.rb

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -744,13 +744,16 @@ def assert_all_assertions_foreach(msg = nil, *keys, &block)
744744
#
745745
# :yield: each elements of +seq+.
746746
def assert_linear_performance(seq, rehearsal: nil, pre: ->(n) {n})
747+
# Timeout testing generally doesn't work when RJIT compilation happens.
748+
rjit_enabled = defined?(RubyVM::RJIT) && RubyVM::RJIT.enabled?
749+
747750
first = seq.first
748751
*arg = pre.call(first)
749752
times = (0..(rehearsal || (2 * first))).map do
750753
st = Process.clock_gettime(Process::CLOCK_MONOTONIC)
751754
yield(*arg)
752755
t = (Process.clock_gettime(Process::CLOCK_MONOTONIC) - st)
753-
assert_operator 0, :<=, t
756+
assert_operator 0, :<=, t unless rjit_enabled
754757
t.nonzero?
755758
end
756759
times.compact!
@@ -766,7 +769,7 @@ def assert_linear_performance(seq, rehearsal: nil, pre: ->(n) {n})
766769
Timeout.timeout(t, Timeout::Error, message) do
767770
st = Process.clock_gettime(Process::CLOCK_MONOTONIC)
768771
yield(*arg)
769-
assert_operator (Process.clock_gettime(Process::CLOCK_MONOTONIC) - st), :<=, t, message
772+
assert_operator (Process.clock_gettime(Process::CLOCK_MONOTONIC) - st), :<=, t, message unless rjit_enabled
770773
end
771774
end
772775
end

0 commit comments

Comments
 (0)