lean4-htt/library/init
Leonardo de Moura 680ee21161 feat(library/init/lean/compiler/ir): add unreachbranches.lean
New optimization pass for eliminating unreachable branches that occur
very often when using `ExceptT` and `EState`.

The current commit implements an abstract interpreter for computing
an approximation of the kinds of values returned by a function.
TODO:
- Implement `FnBody.jmp`.
- Implement `interpDecl`
- Remove unreachable branches in `FnBody.case`
2019-10-02 19:57:43 -07:00
..
control feat(library/init): mark Prod, Except, Sigma and Option with [unbox] 2019-10-02 16:50:37 -07:00
data feat(library/init/lean/compiler/ir): add unreachbranches.lean 2019-10-02 19:57:43 -07:00
lean feat(library/init/lean/compiler/ir): add unreachbranches.lean 2019-10-02 19:57:43 -07:00
system chore(library/init): remove @[extern cpp ...] 2019-08-24 07:40:38 -07:00
coe.lean chore(frontends/lean/parser): simplify binder notation 2019-07-08 08:54:19 -07:00
core.lean feat(library/init): mark Prod, Except, Sigma and Option with [unbox] 2019-10-02 16:50:37 -07:00
default.lean refactor(library/init): move io and platform to system subdir 2019-07-25 17:29:33 -07:00
fix.lean chore(library/init): remove @[extern cpp ...] 2019-08-24 07:40:38 -07:00
init.md chore(*.md): fix/remove broken links 2016-02-23 10:11:24 -08:00
util.lean feat(library/compiler): replace @[effectful] with @[neverExtract] 2019-10-01 14:06:08 -07:00
wf.lean chore(library/init/wf): add parentheses 2019-07-16 10:53:00 -07:00