[deref] Implement initial set of inference rules for deref-at-point
authorPhilip Reames <listmail@philipreames.com>
Wed, 24 Mar 2021 23:18:09 +0000 (16:18 -0700)
committerPhilip Reames <listmail@philipreames.com>
Wed, 24 Mar 2021 23:20:41 +0000 (16:20 -0700)
commit4054b8322fd8ef706bd486128a57bc8b709e2319
treef567b86c8f5ad35b87a44f0f0c6d126a40827805
parentc8ef98e5de0ec5ebd4efc80ad8938ed53b268ce3
[deref] Implement initial set of inference rules for deref-at-point

This implements a subset of the initial set of inference rules proposed in the llvm-dev thread "RFC: Decomposing deref(N) into deref(N) + nofree". The nolias one got moved to a separate review as there was some concerns raised which require further discussion.

Differential Revision: https://reviews.llvm.org/D99135
llvm/lib/IR/Value.cpp
llvm/test/Analysis/ValueTracking/deref-abstract-gc.ll
llvm/test/Analysis/ValueTracking/memory-dereferenceable.ll