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.
Pull Request Description
Makes safepoints use a volatile boolean flag instead of an assumption. This results in 0%-40% slowdowns across our benchmark suites (where the impact becomes smaller, the more memory is involved). This should be revised when a better safepoint mechanism makes it into Truffle.
Important Notes
The safepoints are moved around – the approach we've taken so far ("safepoint on every method call") is not
sustainable with this solution (resulting in benchmarks becoming even 3x slower). Therefore safepoints are inserted:
@TailCall
loop iteration.This may turn out to be too sparse, in which more
poll
calls can be sprinkled.Checklist
Please include the following checklist in your PR: