OSDN Git Service

Move Value.isDereferenceablePointer to ValueTracking [NFC]
authorPhilip Reames <listmail@philipreames.com>
Thu, 23 Apr 2015 17:36:48 +0000 (17:36 +0000)
committerPhilip Reames <listmail@philipreames.com>
Thu, 23 Apr 2015 17:36:48 +0000 (17:36 +0000)
commit1aa9710c60c872690d0d77c9d451a0e82dd7baeb
tree52fc78834a127b30943fa3d8c174f9d1cc77e280
parentdab5145cb377f98c35e267d6896209de7ad99c5c
Move Value.isDereferenceablePointer to ValueTracking [NFC]

Move isDereferenceablePointer function to Analysis. This function recursively tracks dereferencability over a chain of values like other functions in ValueTracking.

This refactoring is motivated by further changes to support dereferenceable_or_null attribute (http://reviews.llvm.org/D8650). isDereferenceablePointer will be extended to perform context-sensitive analysis and IR is not a good place to have such functionality.

Patch by: Artur Pilipenko <apilipenko@azulsystems.com>
Differential Revision: reviews.llvm.org/D9075

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@235611 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/Analysis/ValueTracking.h
include/llvm/IR/Value.h
lib/Analysis/MemDerefPrinter.cpp
lib/Analysis/ValueTracking.cpp
lib/IR/Value.cpp
lib/Transforms/IPO/ArgumentPromotion.cpp
lib/Transforms/InstCombine/InstCombineCalls.cpp
lib/Transforms/Scalar/SROA.cpp
lib/Transforms/Scalar/ScalarReplAggregates.cpp