[LLVMdev] llc leaves spurious clang.arc.use symbols

Joe Abbey jabbey at arxan.com
Wed Sep 18 15:19:39 PDT 2013

We're seeing that the ObjCARCContract pass never runs in llc (at any optimization level!) when bitcode is lowered to assembly.  As a result, ARC-enabled code becomes unlinkable.   We can run the pass manually, but it'd be preferred to have this rolled somewhere logical like pass configuration.

I see that there was a previous discussion about how to appropriately remove them.  Did anything ever come about?

I've attempted running the pass "always" per the original discussion. While that works for me, I doubt it's acceptable for all languages, targets, etc.  See my strawman patch.

Any recommendations on a smaller hammer fix that would be upstreamable?  I like the idea of a cleanup pass, but even that seems too special case.

Joe Abbey
Senior Director of Product Development
Arxan Technologies
jabbey at arxan.com<mailto:jabbey at arxan.com> www.arxan.com<http://www.arxan.com/>
Protecting the App Economy™

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130918/d6734ddd/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ObjCARCContractStrawman.patch
Type: application/octet-stream
Size: 722 bytes
Desc: ObjCARCContractStrawman.patch
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130918/d6734ddd/attachment.obj>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130918/d6734ddd/attachment.htm>

More information about the llvm-dev mailing list