Details
Details
Diff Detail
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
Comment Actions
Found yet another breakage, when the block to insert new GEP is a EHPad. Fixed.
In fact that becomes overly complicated when an incoming value is not an instruction, so limited patch to work with instructions only. This covers most of the cases anyway and handling of anything else could be a separate change.
Comment Actions
Reopening after revert. There were two bugs:
- PHI can only be recreated in the same BB for incoming block logic to work, so check PHI and GEP are in the same block.
- That was not right to call visit() from a visitor itself, that resulted in endless loop. Each folding separately (select and PHI) works, but not together. If we have a phi (select) the endless loop happens. Switched to enqueueUsers(). That is also only needed to call it on a newly created PHI or select, as the only users of newly created GEPs are the same PHI or select and the only action expected is enqueueUsers().
Comment Actions
Slightly updated test to avoid autogenerated check namings instability between Windows and Linux.
Comment Actions
Hi!
I wrote
https://bugs.llvm.org/show_bug.cgi?id=46280
for a crash that started happening with this commit.
any_of and invert?