rjmccall added inline comments.
================
Comment at: include/clang/Driver/Options.td:1500
+  Flag<["-"], "fobjc-no-builtin-retain-release">, Group<f_Group>,
+  Flags<[CC1Option]>;
 def fno_objc_convert_messages_to_runtime_calls :
----------------
I know I suggested this name, but it should probably be `-fno-objc-....` 
instead of `-fobjc-no-....`.

Please add help text.  Also, there probably ought to be a subsection in the 
user docs under "Objective-C Features" which talks about message rewriting; it 
should start by discussing the general fact that we rewrite messages, including 
how to disable it with `-fno-objc-convert-messages-to-runtime-calls`, and then 
segue into the special assumptions for retain/release/autorelease and how to 
disable them with this option.

Should this be implied by `-fno-objc-convert-messages-to-runtime-calls`?


================
Comment at: lib/CodeGen/CGObjC.cpp:2597
+  if (!CGM.getCodeGenOpts().ObjCNoBuiltinRetainRelease && !getInvokeDest())
+    return EmitARCAutoreleaseReturnValue(value, returnType);
   return emitObjCValueOperation(
----------------
Is using autoreleaseRV in all situations a good idea?  Among other things, 
won't this make it significantly more difficult to detect miscompiles where we 
fail to tail call autoreleaseRV?


================
Comment at: lib/CodeGen/CGObjC.cpp:2611
+  if (!CGM.getCodeGenOpts().ObjCNoBuiltinRetainRelease && !getInvokeDest())
+    return EmitARCRetainAutoreleasedReturnValue(value, returnType);
   return emitObjCValueOperation(
----------------
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?


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

Reply via email to