Related to https://reviews.llvm.org/D80916
Details
Diff Detail
Event Timeline
Seems obviously correct - but slightly unfortunate that this will cause iterateOnFunction to go back and reprocess a prior instruction.
Sorry for the late review, but I think the code is getting really confusing now: processMemCpy returns a "repeat instruction" flag, but sometimes returns true, but also increments BI so that the instruction is not repeated at al???
How about changing all of processMemSet/Cpy/Move so that they return a simple "changed" flag, and set BI to the next instruction to be processed (i.e. either the current instruction if we want to repeat it, otherwise the next instruction).
Well, I landed the patch... The extra iterator is also passed for other processMem* functions, in order to adjust current iterator, so I used it in processMemCpy. I agree it's non-ideal, but at least it's consistent ;-)
Well, I landed the patch...
Yeah but post-commit review is still a real thing! As for cleaning it up, how about D81540?