ahatanak marked an inline comment as done. ahatanak added inline comments.
================ Comment at: lib/CodeGen/CGObjC.cpp:2611 + if (!CGM.getCodeGenOpts().ObjCNoBuiltinRetainRelease && !getInvokeDest()) + return EmitARCRetainAutoreleasedReturnValue(value, returnType); return emitObjCValueOperation( ---------------- ahatanak wrote: > rjmccall wrote: > > Same question: won't this make it significantly more difficult to detect > > when we're generating bad code? And the overhead here (on every retain in > > MRC!) is pretty significant; shouldn't this at least be restricted to > > situations where it's plausible that it might be reclaiming something, like > > when the receiver expression is a function call of some sort? > As I mentioned in my response to David's question, I was thinking the ARC > optimizer would be able to convert an `objc_retainAutoreleasedReturnValue` > call to an `objc_retain` call. However, after reading your comment in > https://reviews.llvm.org/D61970, I don't think it's okay to use the ARC > optimizer to transform code that was compiled in MRR mode. I meant the comment in https://reviews.llvm.org/D61808. Repository: rC Clang CHANGES SINCE LAST ACTION https://reviews.llvm.org/D61970/new/ https://reviews.llvm.org/D61970 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits