forked from ruby/ruby
-
Notifications
You must be signed in to change notification settings - Fork 0
[pull] master from ruby:master #473
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
lobsters before:
```
Top-14 instructions with uncategorized fallback reason (100.0% of total 5,583,226):
invokesuper: 3,039,693 (54.4%)
invokeblock: 1,181,433 (21.2%)
sendforward: 572,612 (10.3%)
opt_eq: 464,760 ( 8.3%)
opt_plus: 169,904 ( 3.0%)
opt_minus: 77,487 ( 1.4%)
opt_send_without_block: 42,264 ( 0.8%)
opt_gt: 12,263 ( 0.2%)
opt_neq: 9,033 ( 0.2%)
opt_mult: 8,384 ( 0.2%)
opt_or: 4,792 ( 0.1%)
opt_lt: 404 ( 0.0%)
opt_and: 160 ( 0.0%)
opt_ge: 37 ( 0.0%)
Top-15 send fallback reasons (100.0% of total 33,316,627):
send_without_block_polymorphic: 12,847,877 (38.6%)
uncategorized: 5,583,226 (16.8%)
one_or_more_complex_arg_pass: 4,504,446 (13.5%)
send_not_optimized_method_type: 3,773,513 (11.3%)
send_without_block_no_profiles: 2,663,575 ( 8.0%)
send_no_profiles: 2,206,479 ( 6.6%)
send_without_block_not_optimized_method_type_optimized: 742,574 ( 2.2%)
send_polymorphic: 467,750 ( 1.4%)
send_without_block_megamorphic: 428,364 ( 1.3%)
send_without_block_direct_too_many_args: 33,097 ( 0.1%)
send_without_block_cfunc_array_variadic: 22,255 ( 0.1%)
obj_to_string_not_string: 19,435 ( 0.1%)
send_megamorphic: 17,153 ( 0.1%)
send_without_block_not_optimized_method_type: 5,922 ( 0.0%)
ccall_with_frame_too_many_args: 961 ( 0.0%)
```
lobsters after:
```
Top-4 instructions with uncategorized fallback reason (100.0% of total 4,835,995):
invokesuper: 3,039,692 (62.9%)
invokeblock: 1,181,427 (24.4%)
sendforward: 572,612 (11.8%)
opt_send_without_block: 42,264 ( 0.9%)
Top-17 send fallback reasons (100.0% of total 33,316,645):
send_without_block_polymorphic: 12,847,879 (38.6%)
uncategorized: 4,835,995 (14.5%)
one_or_more_complex_arg_pass: 4,502,767 (13.5%)
send_without_block_no_profiles: 2,663,578 ( 8.0%)
send_not_optimized_method_type: 2,381,743 ( 7.1%)
send_no_profiles: 2,206,481 ( 6.6%)
send_cfunc_variadic: 1,391,775 ( 4.2%)
send_without_block_operands_not_fixnum: 747,228 ( 2.2%)
send_without_block_not_optimized_method_type_optimized: 742,574 ( 2.2%)
send_polymorphic: 467,750 ( 1.4%)
send_without_block_megamorphic: 428,364 ( 1.3%)
send_without_block_direct_too_many_args: 33,097 ( 0.1%)
send_without_block_cfunc_array_variadic: 22,255 ( 0.1%)
obj_to_string_not_string: 19,440 ( 0.1%)
send_megamorphic: 17,153 ( 0.1%)
send_without_block_not_optimized_method_type: 7,605 ( 0.0%)
ccall_with_frame_too_many_args: 961 ( 0.0%)
```
* Correct JIT entry points for optionals so each optional start with nil before their initialization routine runs. Establish `jit_entry_points[filled_opts_num]` gives the appropriate entry point * Correct number of HIR block parameters for each JIT entry point * Entry points that share the same ISEQ PC get separate entries since they start with different state. No more deduplication. * Reject post parameters. Was hidden behind check for optionals. * Make sure to visit every BB in iseq_to_hir(). Some wasn't visited when the initialization routine for an optional terminates the block in a `SideExit`. Remove the now impossible `FailedOptionalArguments`.
These tests use NM threads but NT is not freed for MN thread, causing it
to be reported as memory leaks in LSAN. For example:
#1 0x62ee7bc67e99 in calloc1 gc/default/default.c:1495:12
#2 0x62ee7bc7ba00 in rb_gc_impl_calloc gc/default/default.c:8216:5
#3 0x62ee7bc631d1 in ruby_xcalloc_body gc.c:5221:12
#4 0x62ee7bc5cdbc in ruby_xcalloc gc.c:5215:34
#5 0x62ee7bdea4c6 in native_thread_alloc thread_pthread.c:2187:35
#6 0x62ee7bdec31b in native_thread_check_and_create_shared thread_pthread_mn.c:429:39
#7 0x62ee7bdea484 in native_thread_create_shared thread_pthread_mn.c:531:12
#8 0x62ee7bdea1da in native_thread_create thread_pthread.c:2403:16
#9 0x62ee7bdde2eb in thread_create_core thread.c:884:11
#10 0x62ee7bde4466 in thread_initialize thread.c:992:16
Make it easier to see what happens when one is changed.
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
See Commits and Changes for more details.
Created by
pull[bot] (v2.0.0-alpha.4)
Can you help keep this open source service alive? 💖 Please sponsor : )