GlobalsAA: Take advantage of ArgMemOnly, InaccessibleMemOnly and InaccessibleMemOrArg...
authorVaivaswatha Nagaraj <vn@compilertree.com>
Fri, 18 Dec 2015 11:02:52 +0000 (11:02 +0000)
committerVaivaswatha Nagaraj <vn@compilertree.com>
Fri, 18 Dec 2015 11:02:52 +0000 (11:02 +0000)
commit5a9e526f29cf8510ab5c3d566fbdcf47ac24e1e9
treeba2c7efdc559d9b8965eacced4942cdd8ba1b55c
parent35e39f0c8aff5bde9b4083377f0ec906578e3b46
GlobalsAA: Take advantage of ArgMemOnly, InaccessibleMemOnly and InaccessibleMemOrArgMemOnly attributes

Summary:
1. Modify AnalyzeCallGraph() to retain function info for external functions
if the function has [InaccessibleMemOr]ArgMemOnly flags.
2. When analyzing the use of a global is function parameter at a call site,
mark the callee also as modifying the global appropriately.
3. Add additional test cases.

Depends on D15499

Reviewers: hfinkel, jmolloy

Subscribers: llvm-commits

Differential Revision: http://reviews.llvm.org/D15605

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@255994 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Analysis/GlobalsModRef.cpp
test/Analysis/GlobalsModRef/argmemonly-escape.ll [new file with mode: 0644]
test/Analysis/GlobalsModRef/modreftest.ll