Enable fan-in heuristics at high opt, reduce method size threshold from 50 to 30 for all opt levels #22834
+3
−2
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.
The commits in this PR enable the JIT compiler's fan-in heuristics at
>warmopt levels and reduce the method size threshold from 50 bytecodes to 30. Methods that are smaller than the threshold are not considered by the fan-in heuristic. By reducing the threshold we allow more methods to be considered by the heuristic, which tries to prevent inlining of methods that are called from a large number of call sites (i.e. that have a high fan-in). This change shows positive effects on certain benchmarks that have small methods that are called from thousands of call sites.The patches also add the
TR_disableFanInAtHighOptenv var which can be set to prevent the fan-in heuristic from being used at>warm.(The method size threshold can already be controlled via the
-Xjit:iprofilerFaninMethodMinSize=option.)