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

John McCall rjmccall at apple.com
Wed Sep 18 16:22:34 PDT 2013

On Sep 18, 2013, at 3:19 PM, Joe Abbey <jabbey at arxan.com> wrote:
> 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.

As long as language-specific “intrinsics" exist, I think you just have to assume that language-specific cleanup passes will be necessary.  I don’t think you can solve this with architecture.


More information about the llvm-dev mailing list