Recently, I ran into a circular dependency problem when I made Analysis depend on ProfileData. See http://lists.llvm.org/pipermail/llvm-dev/2016-April/098400.html for more context. ProfileData has an existing dependence on Analysis through Object and Bitcode. Only the Coverage code depends on Object. Splitting Coverage data into its own library removes the ProfileData->Analysis dependence. Does this seem reasonable?
Notes:
- I have modeled this on Codegen which has some files underneath as well as subdirs that correspond to separate libraries.
- Clang code that includes coverage headers need to be changed as well. Will send a patch once there is a general agreement on this patch.
- I have used "svn mv" to move coverage related code into the new directory to preserver history.
- I have not split the ProfileData unittest to a separate Coverage directory thinking there will be only one file there, but perhaps that also needs to be split?
- check-all runs successfully, but it's quite likely that I have overlooked something.