Skip to content
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

Outline case bodies from unpack logic. #5647

Merged
merged 1 commit into from Mar 12, 2019
Merged

Conversation

@headius
Copy link
Member

@headius headius commented Mar 9, 2019

This mitigates a performance regression in GraalVM 0.13 where our
main unpack switch does not JIT for heavy use of unpack('m').

I had to do an additional method split in order to get things to
compile properly, so there's still a regression in GraalVM that
that needs to be addressed, but this at least gets a benchmark of
unpack('m') to run with similar performance to Hotspot.

@headius headius added this to the JRuby 9.2.7.0 milestone Mar 9, 2019
@headius
Copy link
Member Author

@headius headius commented Mar 12, 2019

Strangely the auto-refactoring seems to have introduced a regression. I'll give it another shot.

This mitigates a performance regression in GraalVM 0.13 where our
main unpack switch does not JIT for heavy use of unpack('m').

I had to do an additional method split in order to get things to
compile properly, so there's still a regression in GraalVM that
that needs to be addressed, but this at least gets a benchmark of
unpack('m') to run with similar performance to Hotspot.
@headius headius force-pushed the outline_unpack branch from ea729f1 to a9ac3e3 Mar 12, 2019
@headius headius merged commit 888dd2c into jruby:master Mar 12, 2019
1 of 2 checks passed
1 of 2 checks passed
continuous-integration/travis-ci/pr The Travis CI build could not complete due to an error
Details
@azure-pipelines[bot]
jruby.jruby Build #20190312.1 succeeded
Details
@headius headius deleted the outline_unpack branch Mar 12, 2019
headius added a commit to headius/jruby that referenced this issue Mar 13, 2019
This is similar in nature to the changes in jruby#5647 but there's no
specific performance regression I'm fixing here. We have seen
issues with switch optimization across numerous JVM versions, so
this seems like a good idea. It also makes the code easier to
follow.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Linked issues

Successfully merging this pull request may close these issues.

None yet

1 participant