- arena allocation of nodes
- remove extra data from subclasses of
Def - remove RTTI
-
LamandAppinstead ofContinuation - make analyses work with all nominals, not just
Lams - remove
Typeand make it aDef - PTS calculus of constructions style IR (mostly done)
- remove arg/param lists
-
Sigma/Arr+Tuple/Packand friends - use
indexandarityinstead of unsafeintfor indexing - support for multidemnsional indexing (wip)
-
Unionand friends (wip) -
Intersectionand friends (maybe?) - new recursive
rewrite - remove old
manglein favor orrewrite(wip) - remove old
importin favor ofrewrite - remove old
cleanupin favor ofrewrite - make IR extensible
-
div/modwith side effect -
alloc/deallocin favor ofslotandglobal
- use axioms instead of C++ classes
- redesign standard operations to work similar to LLVM
- remove
Lamm::Intrinsicsin favor of axioms (wip) - rewrite normalizations
- add function to apply operations polymorphic in rank and dimensions
- finish new optimizer
- passes with no fixed point needed
- passes with fixed point
- rewrite all optimizations to work with new optimizer
- inliner
- partial eval
- mem2reg
- scalarize
- flatten slots
- eta red
- eta exp
- copy prop (wip)
- tail rec elim
- closure elim (wip)
- closure conv (wip)
- compile ptrn (wip)
- ret_wrap
- reg2mem (for aggregates)
- acc prepare (phase that prepares special
vectorize/cudaand friends for code generation)
- remove old optimizations/passes and
replaceinfrastructure (wip)
- type checking (wip)
-
ErrorHandler(wip)
- remove static state from logging
- remove
Loc/Debugand make it aDef - add
metafield - unit testing with gtest
- gcov integration
- polish output (wip)
- frontend to read it again (wip)
- integrate with debugging infrastructure
- rewrite C backend
- rewrite LLVM backend
- Thorin-based vectorizer
- C interface of Thorin?
- Pyhton interface of Thorin?
- add possibility to add new thorin nodes/axioms from frontends
- native backends