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

Conversation

Projects
None yet
1 participant
@headius
Copy link
Member

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

This comment has been minimized.

Copy link
Member Author

headius commented Mar 12, 2019

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

Outline case bodies from unpack logic.
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 headius:outline_unpack branch from ea729f1 to a9ac3e3 Mar 12, 2019

@headius headius merged commit 888dd2c into jruby:master Mar 12, 2019

1 check failed

continuous-integration/travis-ci/pr The Travis CI build could not complete due to an error
Details

@headius headius deleted the headius:outline_unpack branch Mar 12, 2019

headius added a commit to headius/jruby that referenced this pull request Mar 13, 2019

Outline pack switch cases to assist JVM JIT optimization.
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
You can’t perform that action at this time.