[PATCH] D12838: [GlobalsAA] Teach GlobalsAA about memory intrinsics
James Molloy via llvm-commits
llvm-commits at lists.llvm.org
Mon Sep 14 07:46:13 PDT 2015
jmolloy created this revision.
jmolloy added reviewers: chandlerc, majnemer, hfinkel.
jmolloy added a subscriber: llvm-commits.
jmolloy set the repository for this revision to rL LLVM.
MemCpyOptimizer can turn non-escaping stores of globals into calls to intrinsics like llvm.memcpy/llvm/memset. This confuses GlobalsAA, which knows the global can't escape and so returns NoModRef when queried, when obviously a memcpy/memset call does indeed reference and modify its arguments.
This patch teaches GlobalsAA about the LLVM memory intrinsics that can be created by MemCpyOptimizer. If needed, we can extend it to support other loads/stores like @llvm.masked.store.
This addresses PR24800, PR24801, and PR24802
Repository:
rL LLVM
http://reviews.llvm.org/D12838
Files:
include/llvm/Analysis/GlobalsModRef.h
lib/Analysis/GlobalsModRef.cpp
test/Analysis/GlobalsModRef/memset-escape.ll
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D12838.34668.patch
Type: text/x-patch
Size: 4534 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150914/cae5e776/attachment.bin>
More information about the llvm-commits
mailing list