Skip to content

Exploratory CPU backend

rarbore2 requested to merge ir_dev into main

This MR accomplishes the following:

  • Compute anti-dependencies between array reads and writes in IR
  • Identify logical array allocations - this identifies the size of each individual allocation, and which nodes use which allocation
  • Create an incomplete LLVM IR backend for Hercules IR - uses the Inkwell library
    • Inkwell is not feature complete - we will want to emit IR text manually in the future
  • Incorporate anti-dependencies into global code motion
  • Various helpers for IR - iterators for dominator tree, types, constants
  • Remove bitflip op - just not on an int value
  • Improve dot graph layout

The matmul.hir example can now be compiled into LLVM IR. When hooked up with some manually written C, it does a matmul properly.

Merge request reports