[PATCH] Add support for nonnull metadata on Loads

Hal Finkel hfinkel at anl.gov
Mon Sep 8 04:32:16 PDT 2014


----- Original Message -----
> From: "Philip Reames" <listmail at philipreames.com>
> To: listmail at philipreames.com, hfinkel at anl.gov
> Cc: llvm-commits at cs.uiuc.edu
> Sent: Friday, September 5, 2014 4:42:25 PM
> Subject: [PATCH] Add support for nonnull metadata on Loads
> 
> Hi hfinkel,
> 
> This patch simply adds support for marking a load as returning a
> non-null pointer.  This is analogous to the existing nonnull return
> attribute, but it applies to specific load instructions instead.
>  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.
> 
> Hal - I'd particularly like your input here.  Is adding a parallel
> metadata construct to the existing attribute a reasonable idea?
>  Should we be uniform and accept the metadata on calls too?  Is
> there a better way to approach this.

Now that the @llvm.assume infrastructure is in place, I can legitimately respond by saying: I think that we can model this by @llvm.assume(x != null). If that currently does not work, then we should fix it.

Thanks again,
Hal

> 
> http://reviews.llvm.org/D5220
> 
> Files:
>   lib/Analysis/ValueTracking.cpp
>   test/Transforms/InstSimplify/compare.ll
> 

-- 
Hal Finkel
Assistant Computational Scientist
Leadership Computing Facility
Argonne National Laboratory



More information about the llvm-commits mailing list