[PATCH] D67296: [MemorySSA] Update defining access when instructions are not cloned.

Alina Sbirlea via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Sep 6 11:43:02 PDT 2019


asbirlea created this revision.
asbirlea added a reviewer: george.burgess.iv.
Herald added subscribers: sanjoy.google, Prazek.
Herald added a project: LLVM.

Consider the case when instructions are not only simplified during
cloning (to be a use or to no longer have a MemoryAccess attached), but
they are not cloned at all, and hence not present in the map.
This is the case of debug.value calls.

Regularly we consider the new defining access as the same as the clone's
defining access, implying that, if it was not cloned, it must be outside
of the blocks being cloned.
For simplified cloning, this no longer holds. So if, an access was not
cloned, but the defining access is in the same block, look up in the Def
list to find the proper defining access.


Repository:
  rL LLVM

https://reviews.llvm.org/D67296

Files:
  lib/Analysis/MemorySSAUpdater.cpp
  test/Analysis/MemorySSA/debugvalue2.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D67296.219148.patch
Type: text/x-patch
Size: 6213 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190906/f0e9acff/attachment.bin>


More information about the llvm-commits mailing list