CurrentlyThe initial intent was to organize ML stuff in its own directory, add_llvm_library would create an OBJECT library alongside
of a STATIC / SHARED librarybut it turns out that conflicts with llvm component layering policies: it is not a component, but losing the link interface (its
elements would become dependencies instead).because subsequent changes want to rely on other analyses, To support scenarios
where linking an object library also brings in its usage
requirements,which would create a cycle; this patch adds support for 'stand-alone' OBJECT
libraries - i.e.and we don't have a reliable, without an accross-platform mechanism to companying SHARED/STATIC libraryile files in a subdirectory, and
maintainingand fit in the link interface defined by the userexisting LLVM build structure.
This is useful for cases where, for example, we want to build a part
of a component separately. Using a STATIC target would incur the risk
that symbols not referenced in the consumer would be dropped (which may
be undesirable).
The current application is the ML part of Analysis. It should be part
of the Analysis component, so it may reference other analyses;change moves the files into Analysis, and (in
upcomingsubsequent changes) it has dependencies on will leverage conditional compilation for those that have optional librariesdependencies.