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)
commited237938da703c55cf83de0ca5090aa35a774a27
treeeb8bfa0bcc5ae3b643e56c9c4284cbf7fef02eae
parent652246108005857512e1b9b38b752ea564e97811
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

llvm-svn: 255994
llvm/lib/Analysis/GlobalsModRef.cpp
llvm/test/Analysis/GlobalsModRef/argmemonly-escape.ll [new file with mode: 0644]
llvm/test/Analysis/GlobalsModRef/modreftest.ll