Skip to content

Outlining

rarbore2 requested to merge outlining into main
  • Implement outlining routine. Handles all valid cases, including multiple entry / exit points. Currently uses Undefs and accepts / returns all possible data items. Accepts / returns a control indicator to communicate control flow. TODO: use summation types instead.
  • Dumby outlining pass to outline all of each function. This is so the original entry function can get lowered by the Rust backend, and the new non-entry function can get lowered using a new CPU backend.

A cool demo: cargo run --bin hercules_driver hercules_samples/matmul/src/matmul.hir "Xdot(false) Outline Xdot(false) Inline DeleteUncalled SROA DCE Xdot(false)". 😄

Merge request reports

Loading