Major release of xocc C compiler, 0.9.2, based on BSD license!

Hello everybody,

I’m glad to announce the major release of xocc C compiler, 0.9.2, based on BSD license.
xocc is a C compiler that based on XOC infrastructure, XGEN code generator and XOCFE
C frontend.
Both xocc, XOC, XGEN, and XOCFE are based on BSD license.

XOC provides multi-level operations, flexibility, and the capability of representing almost all popular languages.
There are mainly two level IR representations used throughout all phases of the compilation.
In addition to basic IR representation, XOC also provides IR builder, BB manipulating api, Control Flow Graph(CFG),
IR lowering, Control Dependent Graph, Dominator Tree, Register SSA, Memory SSA, Agressive Flow Sensitive Alias Analysis,
Flow Insensitive Alias Analysis, Agressive Field Sensitive Alias Analysis, Interprocedual Analysis Framework, Inliner,
Dead Code Elimination, Copy Propagation, GCSE, GVN, and a lot of sophisticated control flow and peephole optimizations.
Moveover, XOC does not use any std library, it provides all basic algorithm library such Vector, List, Map, Dense Bitset,
Sparse Bitset, Graph, Mempool, Big-Integer, Linear Algebraic library, Linear Programming Solver.

XGEN provides a retargetable machine code generator.
For now, it could generate ARM, x86, PAC code. But, x86 and PAC code generator are not release for temporary.
XGEN provides IR2OR translator, Pre-Instruction-Schedular, Register Allocation, Post-Instruction-Schedular,
Instruction Packager and Assembly Printer.

XOCFE is a C frontend, it could provide AST as output.

xocc is a driver that compose XOCFE, AST2IR, XOC and XGEN into complete C compiler.

All features provided by xocc, XOC, XGEN, XOCFE could empower you to develop any compiler and analysis tools.

More important is, any feedback on the compiler and its components would be much appreciated!

For more details, see:

Thank you for sharing!

Regarding xpoly, what kind of analysis/transformation is it capable
of? I could not find an omega-test and mostly unimodular


Hi Michael Kruse, unimodular and non-singular trans, polyhedral trans, dependence and legality of transformations check are enabled, please look up poly.h and ldtran.h for more details. :slight_smile:
However, convet AST/IR to poly-representation and extract dependence-vector are still not provided yet.