Нема описа

compwocont.md 769B

Summarise Contribution & Motivation

  • Both CPS and ANF inhibit some optimisations
  • Aim to get benefits of both
  • Extend direct-style lambda calculus by adding join points
  • How to infer join points
  • Join points can be recursive which gives new optimisation
  • Show that approach works in GHC

Methodology

  • Define new intermediate language Fj
  • Perform single pass to find let bindings that are join points
  • These are let bound functions that will never be captured in closure
  • This is simpler than contification because they only look for tail calls

Critical Assessment

  • Achieves big reduction in allocations for some programs
  • Other programs lose out on potential optimisations
  • Transformations can be applied broadly, even to call by value languages