Skip to content

CEP-0052: LLVM Backend and SSA Optimizer

Draft

Draft proposal for an LLVM backend, SSA IR, optimizer stages, and advanced backend metadata. V1 backend closure targets the accepted C/interpreter-oriented pipeline.

Summary

Catalyst should eventually decide when to add an LLVM backend, SSA representation, optimizer stages, and richer backend-specific metadata.

V1 keeps the compiler pipeline and backend contracts focused on implementable end-to-end lowering.

Example

Illustrative future pipeline:

AST -> SIR -> canonical IR -> SSA IR -> optimizer -> LLVM IR -> object

The proposal must define where SSA begins, what verifier owns each boundary, and how behavior is checked against the V1 C/interpreter-oriented path.

Motivation

Advanced backends can improve performance and platform reach. They also change IR contracts, verifier requirements, debug info, optimization expectations, and target metadata.

Proposed Direction

The proposal should cover:

  • LLVM backend scope;
  • SSA IR introduction;
  • optimizer pipeline;
  • target/build controls beyond V1 presets;
  • advanced backend-specific metadata;
  • equivalence testing against C/interpreter backends.

V1 Compatibility

V1 does not require LLVM, SSA, or advanced optimization stages.