[GR-48579] Always use ParseOnce and InlineBeforeAnalysis. #7573
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 options
ParseOnce
andInlineBeforeAnalysis
have been turned on by default for native images without JIT compilation (i.e., not including Truffle languages) since GraalVM 21.3. For native images with JIT compilation, they have been turned on by default since GraalVM 23.1 (via the separate option ParseOnceJIT).A lot of old code is no longer necessary when we remove the options: all code that parses bytecode in the hosted universe, together with a lot of hacks that ensure that the bytecode parser behaves the same when parsing in the analysis universe and the hosted universe. This PR does not remove any code yet. It is just the minimal change to render the options ineffective, i.e., the minimal PR that has all the compatibility impact.
Compatibility impact of this PR:
ParseOnce
and render it ineffective. Since the option has been around for a long time, we do not want to remove it completely yet. Using the option prints a warning that it no longer has any effect.ParseOnceJIT
and render it ineffective. Even though the option was only introduced to allow internal development and testing, we do not want to remove it completely yet. Using the option prints a warning that it no longer has any effect.InlineBeforeAnalysis
and render it ineffective. Since the option has been around for a long time, we do not want to remove it completely yet. Using the option prints a warning that it no longer has any effect.