<div dir="ltr">I felt it wasn't very nice to have an optimization enabling flag in the analysis library, but if that's what you prefer, no problem. Submitting with that change. Let me know if anything about it doesn't match your expectations.</div><br><div class="gmail_quote"><div dir="ltr">On Wed, Aug 19, 2015 at 3:42 PM Duncan P. N. Exon Smith <<a href="mailto:dexonsmith@apple.com">dexonsmith@apple.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
> On 2015-Aug-19, at 14:55, Chandler Carruth via llvm-commits <<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a>> wrote:<br>
><br>
> The patch file from Phab seems hosed here, so attaching a raw one...<br>
<br>
Thanks for reposting!<br>
<br>
(Interestingly, while the reposted patch actually worked on my tree,<br>
which was better for digging around, the original (broken) patch was<br>
easier to read...)<br>
<br>
> On Tue, Aug 18, 2015 at 8:35 PM Chandler Carruth via llvm-commits <<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a>> wrote:<br>
> chandlerc created this revision.<br>
> chandlerc added a reviewer: gottesmm.<br>
> chandlerc added a subscriber: llvm-commits.<br>
><br>
> This is motivated by the need to have the core AliasAnalysis<br>
> infrastructure be aware of the ObjCARCAliasAnalysis. However, it also<br>
> seems like a nice and clean separation. Everything was very easy to move<br>
> and this doesn't create much clutter in the analysis library IMO.<br>
><br>
> However, I'm not an expert on the ARC optimizer stuff so mailing this<br>
> out for folks to take a look at and give me feedback on. Sadly, it will<br>
> be necessary to sort something out here to make progress on the alias<br>
> analysis restructuring, so the more quickly this can be looked at the<br>
> better.<br>
><br>
> <a href="http://reviews.llvm.org/D12133" rel="noreferrer" target="_blank">http://reviews.llvm.org/D12133</a><br>
><br>
> Files:<br>
>   include/llvm/Analysis/ObjCARCAliasAnalysis.h<br>
>   include/llvm/Analysis/ObjCARCAnalysisUtils.h<br>
>   include/llvm/Analysis/ObjCARCInstKind.h<br>
>   lib/Analysis/Analysis.cpp<br>
>   lib/Analysis/CMakeLists.txt<br>
>   lib/Analysis/ObjCARCAliasAnalysis.cpp<br>
>   lib/Analysis/ObjCARCInstKind.cpp<br>
>   lib/Transforms/ObjCARC/ARCInstKind.cpp<br>
>   lib/Transforms/ObjCARC/ARCInstKind.h<br>
>   lib/Transforms/ObjCARC/CMakeLists.txt<br>
>   lib/Transforms/ObjCARC/ObjCARC.h<br>
>   lib/Transforms/ObjCARC/ObjCARCAliasAnalysis.cpp<br>
>   lib/Transforms/ObjCARC/ObjCARCAliasAnalysis.h<br>
>   lib/Transforms/ObjCARC/ObjCARCOpts.cpp<br>
>   lib/Transforms/ObjCARC/PtrState.h<br>
><br>
<br>
Is it necessary to split llvm::objcarc::EnableARCOpts up, or can you<br>
just move that variable (and the `cl::opt`) to Analysis/?  I imagine<br>
anyone that wants to turn off one will want to turn off both, so<br>
having to specify `-enable-objc-arc-{aa,opts}=false` is a little<br>
verbose.  (Follow-up could maybe rename it to `-enable-objc-arc`.)<br>
<br>
With that, LGTM.</blockquote></div>