Skip to content

Deforestation (tracking issue) #304

@ychenfo

Description

@ychenfo

TODO

  • Duplication of definitions
  • Float out lambda binders

Missing Implementation

  • restParam and multiple parameter lists
  • Deforestation related to functions and values inside classes/modules
  • Match blocks with non-Value.Ref scrutinees (like Match(Select(…), …)))
    I put this as a missing implementation here because I am not sure how to handle selections inside branches related to non-Value.Ref scrutinees — but maybe this is not strictly a “missing implementation” because it seems that although the definition of Match says that the scrut can be a Path, the scrut currently always seems to be compiled to a Value.Ref.

More todos

  • Merging of duplicated consumers
    • After fusion, some duplicated consumers may have identical bodies, they can be merged
    • Before fusion, duplication of consumers may lead to loss of fusion opportunities
  • Reification of recursive strategies

Ad-hoc things to generalize

  • Remove the special-casing of the "force" and "lazy" and use annotations instead
  • Don't special-case NofibPreluse – instead, allow listing a set of file to optimize with

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions