]> granicus.if.org Git - llvm/commit
OpaquePtr: add Type parameter to Loads analysis API.
authorTim Northover <tnorthover@apple.com>
Tue, 9 Jul 2019 11:35:35 +0000 (11:35 +0000)
committerTim Northover <tnorthover@apple.com>
Tue, 9 Jul 2019 11:35:35 +0000 (11:35 +0000)
commit39dc171242348a7bf8d731d4f4542df737cb6494
tree23473aae20d627588de5674e4719d703de097ed9
parent9e7e73578e54cd22b3c7af4b54274d743b6607cc
OpaquePtr: add Type parameter to Loads analysis API.

This makes the functions in Loads.h require a type to be specified
independently of the pointer Value so that when pointers have no structure
other than address-space, it can still do its job.

Most callers had an obvious memory operation handy to provide this type, but a
SROA and ArgumentPromotion were doing more complicated analysis. They get
updated to merge the properties of the various instructions they were
considering.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@365468 91177308-0d34-0410-b5e6-96231b3b80d8
12 files changed:
include/llvm/Analysis/Loads.h
lib/Analysis/Loads.cpp
lib/Analysis/MemDerefPrinter.cpp
lib/Analysis/ValueTracking.cpp
lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
lib/Transforms/IPO/ArgumentPromotion.cpp
lib/Transforms/InstCombine/InstCombineCalls.cpp
lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp
lib/Transforms/Scalar/LICM.cpp
lib/Transforms/Scalar/MergeICmps.cpp
lib/Transforms/Scalar/SROA.cpp
lib/Transforms/Scalar/TailRecursionElimination.cpp