Remember whether dltOptLevel= is specified in a subset - #7596
Merged
Conversation
Contributor
Author
|
@vijaysun-omr FYI |
| const char *retVal = processingMethod(option + opt->length, base, opt); | ||
|
|
||
| // Check to see whether the dltOptLevel option is specified in a subset | ||
| // and remember that informartion in the global JIT cmdLineOptions |
Contributor
|
Jenkins build all |
Contributor
|
I am starting broader testing, that I won't repeat if it ends before Marius fixes the typo in comment |
The command line option -Xjit:dltOptLevel=... existed, but it was inspected in the OpenJ9 downstream project only when the `TR_DebugDLT` env var was set. The reason is that we have to account for the possibility of specifying the option in a subset and retrieving options from subsets is relatively expensive and not something that we may want to do too often. This commit remembers whether `dltOptLevel=` is specified in any subset by setting a flag in the JIT command line options. Then, in OpenJ9 we can first check if this flag is set and only then proceed to find the correct subset for the method in question. This should eliminate the overhead when -Xjit:dltOptLevel= is not specified in a subset, which is the common case. Signed-off-by: Marius Pirvu <mpirvu@ca.ibm.com>
Contributor
Author
|
Will wait for tests to pass before submitting the correction to the comment |
Contributor
|
I don't believe riscv, zos and windows will pass, for other known/infra reasons |
Contributor
Author
|
Just pushed the correction |
vijaysun-omr
approved these changes
Dec 18, 2024
Contributor
|
Tests had passed (except for known platform issues) before the comment was updated to fix typo. So I am going to merge on the basis of the change since testing was done to be trivial. |
mpirvu
added a commit
to mpirvu/openj9
that referenced
this pull request
Dec 19, 2024
Before this change one could force the optimization
level of a particular DLT compilation through a
command line option (dltOptLevel=...) only if the
TR_DebugDLT env var was defined. This was done to avoid
the overhead of searching the option subsets for a
given method.
This commit allows one to specify the optimization level
of DLT compilations without the need of an env var.
Examples:
-Xjit:dltOptLevel=hot
-Xjit:{myMethod}(dltOptLevel=cold)
The overhead for searching option sets has been eliminated
if no option subset uses the dltOptlevel= option
Depends on eclipse-omr/omr#7596
Signed-off-by: Marius Pirvu <mpirvu@ca.ibm.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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 command line option -Xjit:dltOptLevel=... existed, but it was inspected in the OpenJ9 downstream project only when the
TR_DebugDLTenv var was set. The reason is that we have to account for the possibility of specifying the option in a subset and retrieving options from subsets is relatively expensive and not something that we may want to do too often.This commit remembers whether
dltOptLevel=is specified in any subset by setting a flag in the JIT command line options. Then, in OpenJ9 we can first check if this flag is set and only then proceed to find the correct subset for the method in question. This should eliminate the overhead when -Xjit:dltOptLevel= is not specified in a subset, which is the common case.