[RFC] Restructuring of the MLIR repo

I love the direction of this proposal - the current MLIR repo is getting to monolithic, and going to a more modular design makes a lot of sense to me.

I agree with this sentiment. MLIR isn’t an obscure little project anymore, I think “those LLVM people” will take it seriously.

Taking a few more top-level directories in the mono-repo would have a number of other benefits, including that #include "mlir/thing" and #include "tensors/thing" would be cleanly separated.

I would not split by “dialects vs analyses vs transforms” though, I’d split by domains: ML compilation is a separate thing from HW compilers, generic CPU IRs, etc.

Unrelated to this post, LLVM itself should go through a similar transformation - splitting Support/ADT into its own top level thing, splitting codegen+targets out to its own thing, and keeping LLVM IR be one thing.

-Chris