[MemCpyOptimizer] Simplify API of processStore and processMem* functions
authorJay Foad <jay.foad@amd.com>
Wed, 10 Jun 2020 08:18:56 +0000 (09:18 +0100)
committerJay Foad <jay.foad@amd.com>
Thu, 11 Jun 2020 11:48:09 +0000 (12:48 +0100)
commitf79e6a8847aa330cac6837168d02f6b319024858
tree0722b9739b80dd6cd38ae86778bd5f450f9767d3
parent5951ff4512332fff9d191da8661143a883d3b8aa
[MemCpyOptimizer] Simplify API of processStore and processMem* functions

Previously these functions either returned a "changed" flag or a "repeat
instruction" flag, and could also modify an iterator to control which
instruction would be processed next.

Simplify this by always returning a "changed" flag, and handling all of
the "repeat instruction" functionality by modifying the iterator.

No functional change intended except in this case:
// If the source and destination of the memcpy are the same, then zap it.
... where the previous code failed to process the instruction after the
zapped memcpy.

Differential Revision: https://reviews.llvm.org/D81540
llvm/include/llvm/Transforms/Scalar/MemCpyOptimizer.h
llvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp