Skip to content

Reorganization, global code motion, backward dataflow, loop tree construction, dom tree improvements, collapse region chains in CCP

rarbore2 requested to merge ir_dev into main
  • Reorganized repo into hercules_ir, hercules_opt, and hercules_codegen
  • Implemented global code motion, as described in Click's thesis (nodes are placed as loop invariant, and then as control dependent as possible)
  • Generalized dataflow core code to work with backward dataflow, created backward dataflow helper
  • Construct loop tree from dom tree - identify loop back edges, identify natural loops, and identify tree structure
  • Various enhancements to dom tree (common ancestor, lowest amongst, chain iterator)
  • Collapse region chains during CCP
  • Various improvements to other parts of compiler, such as subgraph

Merge request reports