[PATCH] D92808: [ObjC][ARC] Annotate calls with attributes instead of emitting retainRV or claimRV calls in the IR
    John McCall via Phabricator via llvm-commits 
    llvm-commits at lists.llvm.org
       
    Wed Jan 20 15:17:04 PST 2021
    
    
  
rjmccall added a comment.
I think the plan should be to use this code pattern on all targets, but starting it with arm64 seems fine.
================
Comment at: clang/lib/CodeGen/CGObjC.cpp:2342
+    attrs = attrs.addAttribute(CGF.getLLVMContext(),
+                               llvm::AttributeList::ReturnIndex, "rv_marker");
+    callBase->setAttributes(attrs);
----------------
It's weird that these attributes use two different capitalization styles.  Also, why are they both needed?  Did you consider making the role (retain/claim) be the value of the attribute rather than a separate attribute?
Should the attribute be namespaced, like `clang.arc.rv_marker`?
Let's go ahead and add globals for these strings so we can refer to them symbolically, like you did with `retainRVMarkerKey`.  Is there an LLVM header for ARC optimization we could reasonably pull them from, or are we doomed to repeat ourselves across projects?
Repository:
  rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D92808/new/
https://reviews.llvm.org/D92808
    
    
More information about the llvm-commits
mailing list