[PATCH] D137083: [ObjCARC] Replace parts of ObjCARCAA with intrinsic attributes

John McCall via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Nov 14 16:18:45 PST 2022


rjmccall added a comment.

The ARC spec describes the semantic restrictions on retain/release implementations:

  https://clang.llvm.org/docs/AutomaticReferenceCounting.html#arc-objects-retains

Those semantics do not forbid changing visible memory, they just permit retains and releases to be moved regardless of their impact on visible memory.  This is in keeping with the very operational definition of ObjC ARC optimization.  There's an implicit assumption here that moving retains and releases won't make other optimizations unsound, which I think can most easily be satisfied by not moving retains and releases to places where there aren't already retains and releases of that object.


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

https://reviews.llvm.org/D137083



More information about the llvm-commits mailing list