[PATCH] D101701: [RFC][nofree] Refine concurrency requirements

Nicolai Hähnle via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu May 6 16:34:53 PDT 2021


nhaehnle updated this revision to Diff 343532.
nhaehnle marked an inline comment as done.
nhaehnle added a comment.

Address review feedback: Adding the required change to FunctionAttrs that @reames pointed out; in the new version, I also made sure to really go through all test cases.

Curiously, there is a test case in Analysis/ValueTracking/memory-dereferenceable.ll which already seemed to assume the semantics introduced with this change. At least, the comment seems to follow the logic that `readonly` implies `nofree`, which implies (*without* `nosync`) that `dereferenceable` on function arguments survives throughout the body. (Or perhaps the comment there could be interpreted as the belief that `readonly` should imply `nosync`? But that doesn't seem right to me.)


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D101701

Files:
  llvm/docs/LangRef.rst
  llvm/include/llvm/IR/Instruction.h
  llvm/lib/IR/Instruction.cpp
  llvm/lib/IR/Value.cpp
  llvm/lib/Transforms/IPO/AttributorAttributes.cpp
  llvm/lib/Transforms/IPO/FunctionAttrs.cpp
  llvm/test/Analysis/ValueTracking/memory-dereferenceable.ll
  llvm/test/Transforms/Attributor/dereferenceable-2-inseltpoison.ll
  llvm/test/Transforms/Attributor/dereferenceable-2.ll
  llvm/test/Transforms/Attributor/liveness.ll
  llvm/test/Transforms/Attributor/nocapture-1.ll
  llvm/test/Transforms/Attributor/nofree.ll
  llvm/test/Transforms/Attributor/nosync.ll
  llvm/test/Transforms/Attributor/readattrs.ll
  llvm/test/Transforms/Attributor/undefined_behavior.ll
  llvm/test/Transforms/FunctionAttrs/atomic.ll
  llvm/test/Transforms/FunctionAttrs/nosync.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D101701.343532.patch
Type: text/x-patch
Size: 94487 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210506/50cb49e1/attachment-0001.bin>


More information about the llvm-commits mailing list