-
Notifications
You must be signed in to change notification settings - Fork 29
Fix SSABraun bug and add SSA tests #542
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: code-reflection
Are you sure you want to change the base?
Conversation
👋 Welcome back rbrchen! A progress list of the required criteria for merging this PR into |
@rbrchen This change is no longer ready for integration - check the PR body for details. |
Hi, it's not obvious to me what the bug is. The |
Hi! Sorry about the confusion; I just realized this change doesn't actually fix the bug, and that the core of the problem lies in how the maps Your original code in I can restore your code and implement those changes to make sure that the two maps replace deleted phis with appropriate values. |
Interesting, thanks for the investigation! A few pointers regarding the mentioned maps:
These are the parts not present in the original algorithm due to (im)mutability, so I always suspected these to be the most fragile parts of the implementation. If you have any ideas to simplify these "workarounds", I'd be very happy :) |
Thanks for the pointers! I'll circle back to this PR with any ideas and/or code changes for the maps :) |
Fix a bug in SSABraun where, in
tryRemoveTrivialPhi()
, a trivial phi is not removed from its own user list beforephi.replaceBy(same, this)
is called to replace all users of the trivial phi.Add five tests to TestSSA:
deadCode(), ifelseLoopNested(), violaJones(), binarySearch(),
andquicksort()
.violaJones()
is inspired by the methodfindFeaturesKernel
in HAT kernel ViolaJones.Progress
Reviewing
Using
git
Checkout this PR locally:
$ git fetch https://git.openjdk.org/babylon.git pull/542/head:pull/542
$ git checkout pull/542
Update a local copy of the PR:
$ git checkout pull/542
$ git pull https://git.openjdk.org/babylon.git pull/542/head
Using Skara CLI tools
Checkout this PR locally:
$ git pr checkout 542
View PR using the GUI difftool:
$ git pr show -t 542
Using diff file
Download this PR as a diff file:
https://git.openjdk.org/babylon/pull/542.diff
Using Webrev
Link to Webrev Comment