The doc is being written. Until it is ready, I think it might be helpful to build a testcase such as xgen/test/compile/void.c, and debug the xocc.exe to see how it generate IR and lowest IR (wasm) from C-language AST tree.
Good question! In a simply word, GCC&LLVM compilers are good at traditional RISC-like hardware, namely, IR expected to be load/store/compute/branch, etc. More important is, these compilers do not allow user to add custom IR at will. AI chip operator evoloing rapidly, adding IR means the compiler needs to be overhauled. XOC is multi-level IR compiler, MLIR is not. MLIR open source later than XOC. Moreover, MLIR lack s of powerful optimizations.
Sure, not only Alibaba, there are lots of applications of XOC. XOC has been used in Java AOT compiler, JavaScript AOT compiler and Type Inference Engine, VLIW/DSP compiler, etc. And XOC is also used in some teaching. For now, XOC is used as AI compiler to do optimization and code-generation for AI chip by some famous AI design manufacturers.
Sorry for the inconvenience caused by documents. There is Manual.txt under xoc/doc/ that describes key concepts to XOC IR, Var, MD, etc.We will do our best to supplement documents.
Thanks for your attention! XOC infrastructure has been widely used in many field. Recently, some famous AI chip design manufacturers has implemented DSL compiler of AI chip based on XOC. We hope the AI compiler will be open source soon.
XOC provides multi-level IR, it can express and model a program at very high level semantic, whereas gcc/llvm could not. With our experience, keeping all well-tuned transformation and optimization on same IR expression(multi-level) are very important. XOC used to be JavaVM AOT IR, C/C++ compiler IR, JavaScriptVM AOT IR, and it was doing very well. In some new project, XOC even could be used as Deep Learning compiler IR. So XOC is very scalable. In my opinion, perhaps the most interesting feature is its memory description that runs through the framework.