[PATCH] D59922: [Attributor] Deduce "no-capture" argument attribute

Johannes Doerfert via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Thu Mar 28 17:07:45 PDT 2019


jdoerfert marked 2 inline comments as done.
jdoerfert added inline comments.


================
Comment at: llvm/test/Transforms/FunctionAttrs/arg_nocapture.ll:103
-; FIXME: returned missing for %a
 ; FIXME: We should *not* derive any attributes for the return value not present on the argument!
 ; CHECK: define dso_local noalias nonnull i32* @srec16(i32* nocapture readnone %a)
----------------
The comments on this one were off from the very beginning, I'll fix them and there won't be a change during this commit.


================
Comment at: llvm/test/Transforms/FunctionAttrs/nocapture.ll:137
 
-; CHECK: define void @test1_1(i8* nocapture readnone %x1_1, i8* %y1_1)
 ; It would be acceptable to add readnone to %y1_1 and %y1_2.
----------------
So, the old FuncAttr deduction interleaves one of two memory behavior deductions with the capture analysis. With this patch capture analysis becomes obsolete, as the attributor added annotations, and certain memory behavior attributes are not detected anymore. There will be a memory behavior detection for the attributor soon which should make this problem go away.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D59922





More information about the cfe-commits mailing list