Skip to content
This repository has been archived by the owner on Aug 5, 2024. It is now read-only.

Latest commit

 

History

History
52 lines (44 loc) · 1.33 KB

TODO.md

File metadata and controls

52 lines (44 loc) · 1.33 KB

TODO high:

  • loop lifting

  • add output testing for pvt/pvt2

  • block matrix syntax

  • performance testing?

  • rename stuff

  • check rule interactions

  • better main template

    • comment block
    • includes
    • function decl list

medium:

  • binding: names for context, indices for vectors?

  • do initial typecheck to check for Void

  • rewrite compile using visit?

    • first figure out why visit is slow
  • BinOp Expr case

  • evaluator

  • test gcc outputs

  • documentation

  • control inversion problem

low:

  • throw error if value re-assigned?

  • loop hoisting

  • low level simplification?

    •   a + -(b)  -->  a - b
      
    • float x; x = y --> float x = y;
    • var0 = var1; c --> subst (var1/var0) c
    • use Functor instance to simplify
  • before we do any advanced optimization, make it easy to view the rules that were applied to produce a result

  • compile notes

    • require initially tree-like program with single-assignment
    • do initial typecheck
    • iterate compiler transform
      • inserts decls
      • vectorizes assignments
      • flattens arithmetic when needed
  • what is a type?

    • currently, a dimension list or Void or primitive type
    • will need to add annotations of some kind (for matrix types)
      • could use property model
      • may need to add more complex type environment