-
Notifications
You must be signed in to change notification settings - Fork 6.1k
8369646: Detection of redundant conversion patterns in add_users_of_use_to_worklist is too restrictive #27900
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
base: master
Are you sure you want to change the base?
Changes from 4 commits
c63e308
402def2
86ed466
1270663
16842d0
103cc58
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -23,13 +23,19 @@ | |
|
|
||
| /* | ||
| * @test | ||
| * @bug 8359603 | ||
| * @bug 8359603 8369646 | ||
| * @summary Redundant ConvX2Y->ConvY2X->ConvX2Y sequences should be | ||
| * simplified to a single ConvX2Y operation when applicable | ||
| * VerifyIterativeGVN checks that this optimization was applied | ||
| * @run main/othervm -XX:+IgnoreUnrecognizedVMOptions | ||
| * -XX:CompileCommand=compileonly,compiler.c2.TestEliminateRedundantConversionSequences::test* | ||
| * -XX:-TieredCompilation -Xbatch -XX:VerifyIterativeGVN=1110 compiler.c2.TestEliminateRedundantConversionSequences | ||
| * -XX:-TieredCompilation -Xbatch -XX:VerifyIterativeGVN=1110 | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. You could either add a separate run with There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I agree, and I just added There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Looks good, thanks! |
||
| * compiler.c2.TestEliminateRedundantConversionSequences | ||
| * @run main/othervm -XX:+IgnoreUnrecognizedVMOptions | ||
| * -XX:CompileCommand=compileonly,compiler.c2.TestEliminateRedundantConversionSequences::test* | ||
| * -XX:-TieredCompilation -Xbatch -XX:VerifyIterativeGVN=1110 | ||
| * -XX:+UnlockDiagnosticVMOptions -XX:+StressIGVN -XX:StressSeed=115074401 | ||
| * compiler.c2.TestEliminateRedundantConversionSequences | ||
| * @run main compiler.c2.TestEliminateRedundantConversionSequences | ||
| * | ||
| */ | ||
|
|
||
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.
You may want to update the description, and give a bit of extra information. Because you are saying
ndoes not have to be a conversion, but it may be thatnis about to be replaced with a conversion, right?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.
Yes, in some cases
add_users_of_use_to_worklistis called with the node about to be replaced as argumentn. The point is that we might replacenwith a node that already has other uses, and we only want to notify the uses for which there is a potential change.But this is in no way specific to this one optimization, so I think adding something here would cause more confusion than anything else. Perhaps we should update the description of
add_users_of_use_to_worklistthen?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.
Right, this is not specific to this optimization here. Why not add something at the level of
add_users_of_use_to_worklist.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.
Sorry for the delay, I ended up adding comments to the definition of both
add_users_to_worklistandadd_users_of_use_to_worklist. I think this might help avoid some confusion in the future.