-
Notifications
You must be signed in to change notification settings - Fork 6.1k
8327963: C2: fix construction of memory graph around Initialize node to prevent incorrect execution if allocation is removed #24570
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
Open
rwestrel
wants to merge
57
commits into
openjdk:master
Choose a base branch
from
rwestrel:JDK-8327963
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from 2 commits
Commits
Show all changes
57 commits
Select commit
Hold shift + click to select a range
9f220f4
8327012
eme64 5f8e5bf
test4
eme64 5041f64
initializing store capturing: test stub
eme64 dfa5da2
more tests, WIP
eme64 125f970
fix & extra tests
rwestrel 71fd831
whitespace
rwestrel a4031f3
TestIterativeEA fix
rwestrel c32e453
Update test/hotspot/jtreg/compiler/macronodes/TestEliminationOfAlloca…
rwestrel 082dcb5
Update src/hotspot/share/opto/multnode.hpp
rwestrel 7139deb
Update src/hotspot/share/opto/escape.cpp
rwestrel 469d8a5
Update src/hotspot/share/opto/multnode.hpp
rwestrel 1639264
Update test/hotspot/jtreg/compiler/macronodes/TestInitializingStoreCa…
rwestrel 377a8d7
Update test/hotspot/jtreg/compiler/macronodes/TestEliminationOfAlloca…
rwestrel a32b1d2
Update src/hotspot/share/opto/escape.cpp
rwestrel 7afc47e
Update src/hotspot/share/opto/escape.cpp
rwestrel 17517ae
review
rwestrel f22471c
review
rwestrel a401bed
review
rwestrel 624d69e
review
rwestrel 6134c97
review
rwestrel 6a01123
more
rwestrel a76430b
more
rwestrel 9f3b9cf
more
rwestrel 02b43b7
more
rwestrel 50e9437
more
rwestrel 23035e0
more
rwestrel 80d562a
more
rwestrel d5a2738
more
rwestrel af8480c
typo
rwestrel 080638c
Merge branch 'master' into JDK-8327963
rwestrel 616678f
Merge branch 'master' into JDK-8327963
rwestrel 2a451c6
new test
rwestrel a6c6c04
new test tweak
rwestrel 43c6f82
review
rwestrel c0a8ad2
Update src/hotspot/share/opto/library_call.cpp
rwestrel 4b656f2
Merge branch 'master' into JDK-8327963
rwestrel 24ff0e2
lambda clean up
rwestrel c189a7a
lambda return
rwestrel 69c6e50
more
rwestrel 3b5b54a
more
rwestrel ec9f278
Merge branch 'master' into JDK-8327963
rwestrel f528ce8
more
rwestrel fc13578
more
rwestrel b066f3c
Merge branch 'master' into JDK-8327963
rwestrel b701d03
more
rwestrel c64d68c
Update test/hotspot/jtreg/compiler/macronodes/TestEliminationOfAlloca…
rwestrel 0ff5c45
Update src/hotspot/share/opto/multnode.hpp
rwestrel 46972dc
Update src/hotspot/share/opto/multnode.hpp
rwestrel 917ea91
Update src/hotspot/share/opto/graphKit.cpp
rwestrel 2207487
Update src/hotspot/share/opto/graphKit.cpp
rwestrel f871390
Update src/hotspot/share/opto/macro.cpp
rwestrel 6ea8c81
Update src/hotspot/share/opto/macro.cpp
rwestrel 9fd8dc1
review
rwestrel f12efbc
Roberto's patches
rwestrel 48257c9
review
rwestrel b5ac753
Merge branch 'master' into JDK-8327963
rwestrel 957be06
review
rwestrel File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
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
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
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
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does the same argument as below apply for relaxing the scope of this memory barrier? Please clarify in a similar comment for this case (if the same argument applies, a reference to the comment below would be enough).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for adding the comment. A follow-up question: the full comment below makes the argument that re-ordering by the compiler can't happen by construction because a later Store that publishes the just allocated object reference is indirectly control dependent on the Initialize node. However, in this case, there may be no such Initialize node (
init == nullptr || init->req() < InitializeNode::RawStores). I assume the memory barrier relaxation is still OK in this scenario because we cannot have later, publishing stores of the allocated object reference? That is, if there exists such a store then there must necessarily exist an Initialize node? Or is there any other reason I am missing? It would be good to clarify this point in the comment.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I updated the comment. Can you have a look?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the clarification and the pointer to the comment in
initialize_object, that helps.