[MemorySSA] Extend allowed behavior for simplified instructions.
authorAlina Sbirlea <asbirlea@google.com>
Tue, 30 Jul 2019 20:10:33 +0000 (20:10 +0000)
committerAlina Sbirlea <asbirlea@google.com>
Tue, 30 Jul 2019 20:10:33 +0000 (20:10 +0000)
commit4bc625cae08a82b8a49f2d044c75a4fcf9788cb7
treeb1609e2d60b8d787691e93459ad85079534147d3
parentbb669c25ba573b1ae7ac93bd6467dc9854816f5d
[MemorySSA] Extend allowed behavior for simplified instructions.

Summary:
LoopRotate may simplify instructions, leading to the new instructions not having memory accesses created for them.
Allow this behavior, by allowing the new access to be null when the template is null, and looking upwards for the proper defined access when dealing with simplified instructions.

Reviewers: george.burgess.iv

Subscribers: jlebar, Prazek, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D65338

llvm-svn: 367352
llvm/include/llvm/Analysis/MemorySSA.h
llvm/lib/Analysis/MemorySSA.cpp
llvm/lib/Analysis/MemorySSAUpdater.cpp
llvm/test/Analysis/MemorySSA/loop-rotate-simplified-clone.ll [new file with mode: 0644]