[PATCH] D64258: [InferFuncAttributes] extend 'dereferenceable' attribute based on loads

Sanjay Patel via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Nov 26 05:56:48 PST 2019


spatel added a comment.

In D64258#1760106 <https://reviews.llvm.org/D64258#1760106>, @uenoku wrote:

> I uploaded a patch(D70714 <https://reviews.llvm.org/D70714>). As far as I see, almost all the cases are covered.


Thanks! The new patch appears to do everything that this patch tried to do and much more, so I'm happy to abandon and continue discussion on the new patch.

There's 1 new test that I was planning to add based on feedback here:

  ; TODO: We should allow inference for atomic (but not volatile) ops.
  
  define void @atomic_is_alright(i16* %ptr) {
  ; CHECK-LABEL: @atomic_is_alright(i16* %ptr)
    %arrayidx0 = getelementptr i16, i16* %ptr, i64 0
    %arrayidx1 = getelementptr i16, i16* %ptr, i64 1
    %arrayidx2 = getelementptr i16, i16* %ptr, i64 2
    %t0 = load atomic i16, i16* %arrayidx0 unordered, align 2
    %t1 = load i16, i16* %arrayidx1
    %t2 = load i16, i16* %arrayidx2
    ret void
  }

...so I can commit that as-is to trunk as a baseline test, and then you can rebase D70714 <https://reviews.llvm.org/D70714> as needed.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D64258/new/

https://reviews.llvm.org/D64258





More information about the llvm-commits mailing list