[cfe-dev] [llvm-dev] RFC: Implementing -fno-delete-null-pointer-checks in clang
Sanjoy Das via cfe-dev
cfe-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
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.
More information about the cfe-dev