[llvm-dev] [cfe-dev] RFC: Implementing -fno-delete-null-pointer-checks in clang

Sanjoy Das via llvm-dev llvm-dev at lists.llvm.org
Mon Apr 30 11:58:03 PDT 2018


On Mon, Apr 30, 2018 at 11:14 AM, John McCall <rjmccall at apple.com> wrote:
> The LLVM address space design has pushed well beyond the sensible boundaries
> of less-is-more and really needs some concerted effort to actually define the expected
> properties of different address spaces instead of a dozen different engineers applying
> a "don't do this optimization if the pointer is in a non-zero address space" rule to the
> optimizer with a shotgun.
>
> In fact, if we'd already done that, we wouldn't need any sort of address-space hack
> to support this request.  We'd just need a very simple audit of the places that check
> the "are dereferences of the zero address undefined behavior" bit to make sure that
> they honor it even in address space 0.  But instead that audit will be confused by a
> thousand places that just bail out for non-zero address spaces without further
> explanation.

I agree.  The pattern of bailing out if AddrSpace != 0 is unfortunate.

We also need to cap the amount of extra semantics that can be put on address
spaces.  For instance, we should probably never support trapping semantics on
loads/stores, even via address spaces.

-- Sanjoy


More information about the llvm-dev mailing list