Add -Xaot:dontCompile= to selectively prevent AOT compilation #22863
+20
−4
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.
Add an additional option to prevent AOT compilation on specified methods.
A quick note on the
Xjit:exclude=option.Xjit:exclude=is a so called "limit option" (which means the callback used to process it isOMR::Options::limitOption.) This method callsTR::Options::debug()->limitOption(..., bool)to create a new limit option.limit options are available so that individual compilations can have separate options set that differ from the main options. Typically, a regex is specified indicating which methods should have the predetermined options enabled.
TR::Options::debug()->limitOption(..., bool)essentially delegates toTR_Debug::limitOption(..., TR::CompilationFilters), however, if the final boolean is true, then_relocationFiltersis passed intoTR_Debug::limitOption(..., TR::CompilationFilters), otherwise_compilationFiltersis passed._relocationFiltersonly applies to AOT loads and_compilationFiltersapplies to all methods. This makes it difficult to apply options selectively to JIT compilation.Moreover, the system is rather convoluted so this approach makes things substantially easier.
Depends on eclipse-omr/omr#8008