The initial intent was to organize ML stuff in its own directory, but it turns out that conflicts with llvm component layering policies: it is not a component, because subsequent changes want to rely on other analyses, which would create a cycle; and we don't have a reliable, cross-platform mechanism to compile files in a subdirectory, and fit in the existing LLVM build structure.
This change moves the files into Analysis, and subsequent changes will leverage conditional compilation for those that have optional dependencies.
I don't understand this part of the comment, does it mean that we always want to create OBJECT library even either STATIC or SHARED is specified?