Currently these leave in lib/Transforms/ObjCARC even though they are analysis passes. This seems confusing and odd. In particular, Analysis/Passes.h talks about ObjCARCAliasAnalysis. =/
I’d like to just move the analysis headers to live under include/llvm/Analysis and the source under lib/Analysis. This will preclude omitting the ObjC ARC analysis passes from your build of LLVM if you don’t care about them, but considering the number of dead-by-default passes in LLVM, this really doesn’t seem like a significant concern. It also separates the language-specific bits a bit, but I’d rather have things correctly grouped by analysis and transform.
If folks are seriously concerned about this, I could alternatively create an ObjCARC directory under Analysis, but that really seems like overkill. I think the name prefix is probably enough to distinguish things.