Commit graph

27 commits

Author SHA1 Message Date
Leonardo de Moura
dda0e38802 chore(library/init): avoid local notation 2019-06-24 15:48:11 -07:00
Leonardo de Moura
f176a7963c feat(library/init/lean/compiler/ir/emitcpp): register arity 0 declarations 2019-06-07 17:15:16 -07:00
Leonardo de Moura
d9856889d6 chore(*): cleanup 2019-05-30 07:30:07 -07:00
Leonardo de Moura
0f43c2e2d9 feat(library/init/data/array/basic): efficient heterogeneous Array.map
This commit also removes Array.hmap.
Motivation: I wanted to use Array.hmap as an example in the paper, but
I found it would be too distracting to explain why we had `Array.hmap`
and `Array.map`.

cc @kha
2019-05-25 16:32:59 -07:00
Leonardo de Moura
7ef495a526 fix(library/init/lean/compiler/ir): use setTag at expandresetreuse
This commit also adds the instruction `setTag`, and removes `release`.
2019-05-23 17:41:14 -07:00
Leonardo de Moura
7cb5c04f4f feat(library/init/lean/compiler/ir/expandresetreuse): first draft 2019-05-23 14:07:08 -07:00
Leonardo de Moura
c6c46df285 feat(library/init/lean/compiler/ir): develop expandresetreuse 2019-05-23 12:42:31 -07:00
Leonardo de Moura
8ba7dd4cff feat(library/init/lean/compiler/ir): add del instruction for releasing memory 2019-05-23 08:01:15 -07:00
Leonardo de Moura
f3e13c18f8 fix(library/init/lean/compiler/ir): reset 2019-05-21 10:28:50 -07:00
Leonardo de Moura
4ed803c564 feat(library/init/lean/compiler/ir/emitcpp): emit skeletons 2019-05-20 19:08:21 -07:00
Leonardo de Moura
83692eef6d feat(library/init/lean/compiler/ir): explicit RC 2019-05-19 16:46:51 -07:00
Leonardo de Moura
ca818e6850 feat(library/init/lean/compiler/ir): add borrow inference 2019-05-18 10:48:26 -07:00
Leonardo de Moura
d2f6befc15 chore(library/init/lean/compiler/ir): Context ==> LocalContext 2019-05-17 17:29:26 -07:00
Leonardo de Moura
c9bcd4990c feat(library/compiler): register extern constants into the new IR 2019-05-17 17:12:51 -07:00
Leonardo de Moura
999ba7670d feat(library/init/lean/compiler/ir): add ExternEntry to Decl.extern constructor 2019-05-17 16:27:58 -07:00
Leonardo de Moura
2d065c7ded feat(library/init/lean/compiler/ir): add Lean.IR.CompilerM
and environment extension for storing Lean IR declarations.
2019-05-16 10:20:00 -07:00
Leonardo de Moura
74fb8e627a feat(library/init/lean/compiler/ir/checker): improve IR checker 2019-05-08 05:47:25 -07:00
Leonardo de Moura
a24a8361f5 feat(library/init/lean/compiler/ir/boxing): add some missing cases 2019-05-07 18:23:08 -07:00
Leonardo de Moura
800569af5f chore(library/init/lean/compiler/ir/basic): cleanup 2019-05-07 16:13:22 -07:00
Leonardo de Moura
b717177a1a chore(library/init/data/array/basic): make sure Array.*foldl and List.*foldl have similar signatures 2019-05-07 15:23:03 -07:00
Leonardo de Moura
5d3c6dbac2 feat(library/init/lean/compiler/ir/basic): add IRType.isScalar 2019-05-07 15:06:55 -07:00
Leonardo de Moura
37c60da70d refactor(library/init/lean/compiler/ir): cleanup Context 2019-05-07 14:41:08 -07:00
Leonardo de Moura
2363fdf544 refactor(library/init/lean/compiler/ir): remove redundant field from FnBody.jdecl
The result type of a join point is always equal to the function return
type. Moreover, the extra bookkeeping introduces extra work, and doesn't
really help.
2019-05-07 12:26:11 -07:00
Leonardo de Moura
1295bf52bc feat(library/init/lean/compiler/ir): add Decl.checker for debugging purposes
We have also added a new `Context` object, and modified our IR
invariant. Now, we assume there is no variable or join point shadowing.
2019-05-06 18:35:06 -07:00
Leonardo de Moura
604d5fecbb feat(library/init/lean/compiler/ir/basic): add Context 2019-05-06 10:57:45 -07:00
Leonardo de Moura
439ce06a19 refactor(library/init/lean/compiler/ir): move "free variable" code to separate file 2019-05-05 08:04:33 -07:00
Leonardo de Moura
7a5e64e52e chore(library/init/lean/compiler): move IR related files to subdirectory 2019-05-05 07:55:36 -07:00
Renamed from library/init/lean/compiler/ir.lean (Browse further)