Introduce a 'nonnull' metadata on Load instructions.
authorPhilip Reames <listmail@philipreames.com>
Mon, 20 Oct 2014 22:40:55 +0000 (22:40 +0000)
committerPhilip Reames <listmail@philipreames.com>
Mon, 20 Oct 2014 22:40:55 +0000 (22:40 +0000)
commitcdb72f369f94be40a4f2651ac36f65caa4034bb5
treec0d199e2c7a0f1191df3d5d8d264f860296a6851
parent2f9548a3efe4cd7268f2572710608bff1218393c
Introduce a 'nonnull' metadata on Load instructions.

The newly introduced 'nonnull' metadata is analogous to existing 'nonnull' attributes, but applies to load instructions rather than call arguments or returns.  Long term, it would be nice to combine these into a single construct.   The value of the load is allowed to vary between successive loads, but null is not a valid value to be loaded by any load marked nonnull.

Reviewed by: Hal Finkel
Differential Revision:  http://reviews.llvm.org/D5220

llvm-svn: 220240
llvm/docs/LangRef.rst
llvm/lib/Analysis/ValueTracking.cpp
llvm/test/Transforms/InstSimplify/compare.ll