Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use defining symrefs from defining map for <eaEscapeHelper> call #18315

Conversation

hzongaro
Copy link
Member

TR_EscapeAnalysisTools::processSymbolReferences uses a BitVector to accumulate the symbol reference numbers for symbols that are to be loaded on an <eaEscapeHelper> call. In walking through the set of defining symbols associated with a particular local symbol, the code was adding the reference number for the original symbol to the BitVector of symbols to be loaded for the <eaEscapeHelper> call rather than the reference numbers for the associated defining symbols. That can lead Escape Analysis to miss potential escapes of references through induce OSR blocks or peeked calls.

This fixes a problem that was introduced in commit eddbd1b, at line 156 of EscapeAnalysisTools.cpp.

Fixes #18246

TR_EscapeAnalysisTools::processSymbolReferences uses a BitVector to
accumulate the symbol reference numbers for symbols that are to be
loaded on an <eaEscapeHelper> call.  In walking through the set of
defining symbols associated with a particular local symbol, the code was
adding the reference number for the original symbol to the BitVector of
symbols to be loaded for the <eaEscapeHelper> call rather than the
reference numbers for the associated defining symbols.  That can lead
Escape Analysis to miss potential escapes of references through induce
OSR blocks or peeked calls.
@hzongaro
Copy link
Member Author

Vijay @vijaysun-omr, may I ask you to review this change?

@vijaysun-omr
Copy link
Contributor

jenkins test sanity zlinuxjit jdk17

@vijaysun-omr
Copy link
Contributor

This is fixing what is clearly a typo, wrong logic. I have reviewed and the fix looks right to me. Merging.

@vijaysun-omr vijaysun-omr merged commit 4a6551c into eclipse-openj9:master Oct 27, 2023
5 checks passed
@hzongaro hzongaro deleted the use-defining-symref-on-eaEscapeHelper branch October 30, 2023 16:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

OpenJDK java/lang/invoke/VarHandles/VarHandleTestMethod crash vmState=0x00040000
2 participants