Details
- Reviewers
• dberlin sebpop eli.friedman - Commits
- rG756262deaeeb: Merging r321789: --------------------------------------------------------------…
rG1f90cae80fae: [GVNHoist] Fix: PR35222 gvn-hoist incorrectly erases load in case of a loop
rL322558: Merging r321789:
rL321789: [GVNHoist] Fix: PR35222 gvn-hoist incorrectly erases load in case of a loop
Diff Detail
- Repository
- rL LLVM
Event Timeline
There are a bunch of places in GVNHoist which call dominates (as opposed to properlyDominates), and some of them seem dubious. Are you going to audit them?
This change looks good.
For the other uses of dominates, you could add an assert(dominates == properlyDominates) that would allow you to automate the extraction of testcases with bugpoint when that is not the case.
We would then have to reason on a case by case whether dominates should be changed.
I'll audit them, thanks for the comment. If you can point which looks dubious to you, that'd help as well. I'll push this patch as it is and add followup patches if changes are required.
llvm/trunk/lib/Transforms/Scalar/GVNHoist.cpp | ||
---|---|---|
823 | This looks suspicious... specifically, it isn't clear what's supposed to happen when Inst->getParent() == HoistPt. Granted, I'm not sure that can happen. |
This looks suspicious... specifically, it isn't clear what's supposed to happen when Inst->getParent() == HoistPt. Granted, I'm not sure that can happen.