[llvm] [MemCpyOpt] Fix the invalid code modification for GEP (PR #68479)

Nikita Popov via llvm-commits llvm-commits at lists.llvm.org
Sun Oct 8 02:53:09 PDT 2023


nikic wrote:

> > Instead of rolling back, we should not do the change until we know the transform will succeed. The simplest way to do that would be to move this check to the end. (Setting a variable to perform the move later would also work.)
> 
> @nikic According to this modification(https://reviews.llvm.org/D89623), which claim that "When performing a call slot optimization to a GEP dest, it will currently usually not apply, because the GEP is directly before the memcpy and as such does not dominate the call. We should move it above the call if that satisfies the domination requirement." It seems that it is better to apply this move before some further checks.

The further checks do not depend on the instruction being moved. It just needs to be moved at some point if the transform is applied, it does not have to be at that specific place in the sequence of checks.

https://github.com/llvm/llvm-project/pull/68479


More information about the llvm-commits mailing list