[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