[PATCH] D12133: [ARC] Pull the ObjC ARC components that really serve the role of analyses intoLLVM's Analysis library rather than having them in a Transforms library.

Duncan P. N. Exon Smith via llvm-commits llvm-commits at lists.llvm.org
Wed Aug 19 15:42:41 PDT 2015


> On 2015-Aug-19, at 14:55, Chandler Carruth via llvm-commits <llvm-commits at lists.llvm.org> wrote:
> 
> The patch file from Phab seems hosed here, so attaching a raw one...

Thanks for reposting!

(Interestingly, while the reposted patch actually worked on my tree,
which was better for digging around, the original (broken) patch was
easier to read...)

> On Tue, Aug 18, 2015 at 8:35 PM Chandler Carruth via llvm-commits <llvm-commits at lists.llvm.org> wrote:
> chandlerc created this revision.
> chandlerc added a reviewer: gottesmm.
> chandlerc added a subscriber: llvm-commits.
> 
> This is motivated by the need to have the core AliasAnalysis
> infrastructure be aware of the ObjCARCAliasAnalysis. However, it also
> seems like a nice and clean separation. Everything was very easy to move
> and this doesn't create much clutter in the analysis library IMO.
> 
> However, I'm not an expert on the ARC optimizer stuff so mailing this
> out for folks to take a look at and give me feedback on. Sadly, it will
> be necessary to sort something out here to make progress on the alias
> analysis restructuring, so the more quickly this can be looked at the
> better.
> 
> http://reviews.llvm.org/D12133
> 
> Files:
>   include/llvm/Analysis/ObjCARCAliasAnalysis.h
>   include/llvm/Analysis/ObjCARCAnalysisUtils.h
>   include/llvm/Analysis/ObjCARCInstKind.h
>   lib/Analysis/Analysis.cpp
>   lib/Analysis/CMakeLists.txt
>   lib/Analysis/ObjCARCAliasAnalysis.cpp
>   lib/Analysis/ObjCARCInstKind.cpp
>   lib/Transforms/ObjCARC/ARCInstKind.cpp
>   lib/Transforms/ObjCARC/ARCInstKind.h
>   lib/Transforms/ObjCARC/CMakeLists.txt
>   lib/Transforms/ObjCARC/ObjCARC.h
>   lib/Transforms/ObjCARC/ObjCARCAliasAnalysis.cpp
>   lib/Transforms/ObjCARC/ObjCARCAliasAnalysis.h
>   lib/Transforms/ObjCARC/ObjCARCOpts.cpp
>   lib/Transforms/ObjCARC/PtrState.h
> 

Is it necessary to split llvm::objcarc::EnableARCOpts up, or can you
just move that variable (and the `cl::opt`) to Analysis/?  I imagine
anyone that wants to turn off one will want to turn off both, so
having to specify `-enable-objc-arc-{aa,opts}=false` is a little
verbose.  (Follow-up could maybe rename it to `-enable-objc-arc`.)

With that, LGTM.


More information about the llvm-commits mailing list