Commit graph

397 commits

Author SHA1 Message Date
Leonardo de Moura
bbb45bfc95 fix(library/compiler/csimp): another join-point management bug 2018-10-10 13:42:32 -07:00
Leonardo de Moura
18093f3f24 feat(library/compiler/csimp): eta-expand lambda-expressions during simplification 2018-10-09 19:16:41 -07:00
Leonardo de Moura
e958f20874 fix(library/compiler/csimp): beta_reduce was not preserving the "join-point" invariant 2018-10-09 19:11:16 -07:00
Leonardo de Moura
256112be5b chore(library/compiler/lcnf): disable lambda eta-expansion during LCNF conversion
We should do it at `csimp`
2018-10-09 15:25:57 -07:00
Leonardo de Moura
27e6f7f424 feat(library/compiler): invoke specialize skeleton 2018-10-09 15:23:42 -07:00
Leonardo de Moura
5d726eb210 feat(library/compiler/compiler): switch to new compiler frontend
We also rename `vm_compiler` module to `emit_bytecode`.
We will eventually replace this module with the new IR emitter.
2018-10-08 17:38:17 -07:00
Leonardo de Moura
662c0ebb31 feat(library/compiler/compiler): cache stage1 2018-10-08 17:06:45 -07:00
Leonardo de Moura
124b4d37fe feat(library/compiler): port simp_inductive to the new compiler stack
This commit also fixes a bug in the old `simp_inductive` module, and
removes now obsolete files (`compiler_step_visitor` and `old_util`).
2018-10-08 16:58:43 -07:00
Leonardo de Moura
d2fcb7af39 chore(library/compiler/compiler): add tracing to new compiler frontend 2018-10-08 15:22:36 -07:00
Leonardo de Moura
787d1ecb93 feat(library/compiler/lambda_lifting): new lambda lifting 2018-10-08 15:04:59 -07:00
Leonardo de Moura
fc62e8f3a4 chore(library/compiler): cdecl ==> comp_decl 2018-10-05 17:30:27 -07:00
Leonardo de Moura
d75b1c57bf chore(library/compiler/preprocess): remove dependency 2018-10-05 17:30:27 -07:00
Leonardo de Moura
b1f98e8f38 feat(library/compiler/lcnf): eta expand lambdas 2018-10-05 17:30:27 -07:00
Leonardo de Moura
4fd546c132 feat(library/compiler): remove old extract_values 2018-10-05 17:30:27 -07:00
Leonardo de Moura
2eea3d4c4b chore(library/compiler): simplify procedure class
Remark: `procedure` will be deleted soon.
2018-10-05 17:30:27 -07:00
Leonardo de Moura
dc5dbb3b81 chore(library/compiler): remove dead code 2018-10-05 17:30:27 -07:00
Leonardo de Moura
d93b2a2656 chore(library/compiler): remove dead code 2018-10-05 17:30:27 -07:00
Leonardo de Moura
335b37d480 chore(library/compiler): remove old reduce_arity 2018-10-05 17:30:27 -07:00
Leonardo de Moura
6b8008a222 feat(library/compiler): new compiler entry point (skeleton) 2018-10-05 17:30:27 -07:00
Leonardo de Moura
1d1efdd5f3 chore(library/compiler/preprocess): remove dead global 2018-10-05 17:30:27 -07:00
Leonardo de Moura
a21dac4384 chore(library/compiler/vm_compiler): remove option 2018-10-05 17:30:27 -07:00
Leonardo de Moura
135a8d7508 chore(library/compiler): remove old compiler steps that have already been replaced 2018-10-05 17:30:27 -07:00
Leonardo de Moura
e18af852c8 feat(library/compiler): add code specialization skeleton 2018-10-05 17:30:27 -07:00
Leonardo de Moura
66fe6463fe fix(library/compiler/csimp): missing mk_let 2018-10-04 15:25:03 -07:00
Leonardo de Moura
78842d4b9b fix(library/compiler/util): macro_inline was ignoring constants 2018-10-04 15:25:03 -07:00
Leonardo de Moura
08425c456a chore(library/compiler/preprocess): remove dead code 2018-10-03 16:22:44 -07:00
Leonardo de Moura
adfc0e28ea feat(library/compiler/erase_irrelevant): missing is_irrelevant checks, missing terms being visited, mixing erased with non-erased terms 2018-10-03 16:22:44 -07:00
Leonardo de Moura
826e63873e feat(library/compiler/preprocess): use new compiler stack that has already been implemented 2018-10-03 13:24:01 -07:00
Leonardo de Moura
1b95cbeca1 fix(library/compiler/simp_inductive): adjust kernel projections 2018-10-02 18:56:13 -07:00
Leonardo de Moura
c9aab6ef50 feat(library/compiler): register noinline attribute 2018-10-02 18:56:13 -07:00
Leonardo de Moura
fa906c6bda fix(library/compiler/lambda_lifting): use user_name 2018-10-02 18:56:13 -07:00
Leonardo de Moura
e89e0075a5 fix(library/compiler/lcnf): do not expand projections of builtin types 2018-10-02 18:56:13 -07:00
Leonardo de Moura
cd8dc8670d fix(library/compiler/erase_irrelevant): visit_constant 2018-10-02 18:56:13 -07:00
Leonardo de Moura
49425aa80c fix(library/compiler/erase_irrelevant): assertion violation 2018-10-02 18:56:13 -07:00
Leonardo de Moura
24bd5782e0 fix(library/compiler/erase_irrelevant): make sure lambda that return irrelevant data is marked as irrelevant 2018-10-02 18:56:13 -07:00
Leonardo de Moura
85c58e8f0e feat(library/compiler): add support for string literals in the old VM 2018-10-02 18:56:13 -07:00
Leonardo de Moura
dc937281b3 chore(library/init/string): remove string.iterator_imp 2018-10-02 13:46:01 -07:00
Leonardo de Moura
fd46adb7b3 fix(library/compiler/erase_irrelevant): minor issues 2018-10-02 13:36:48 -07:00
Leonardo de Moura
20e7edd4ac feat(library/compiler): erase trivial structures and flat cases on structures 2018-10-02 11:05:15 -07:00
Leonardo de Moura
c3569dc72d feat(kernel): store structure name in proj-expressions 2018-10-02 09:23:11 -07:00
Leonardo de Moura
c05e7a31a3 chore(library/compiler): add is_runtime_scalar_type and is_runtime_builtin_type 2018-10-02 09:03:53 -07:00
Leonardo de Moura
fbe702510d fix(library/compiler/csimp): missing projection of instance simplification 2018-10-01 17:23:29 -07:00
Leonardo de Moura
25b45d6f9e feat(library/compiler): add erase_irrelevant transformation to new compiler stack 2018-10-01 17:06:56 -07:00
Leonardo de Moura
efa77c2a5b fix(library/compiler/inliner): bug in the old compiler
The bug was being masked by the `elim_recursors` transformation.
When this transformation was used, the bug would manifest itself as a
performance bug.
2018-10-01 14:17:11 -07:00
Leonardo de Moura
e466ecd263 chore(library/compiler/lambda_lifting): fix debug mode compilation errors 2018-10-01 14:17:11 -07:00
Leonardo de Moura
b4c2861939 refactor(library/compiler): rename "erasure normal form" functions 2018-10-01 14:17:11 -07:00
Leonardo de Moura
81e9e95570 chore(library/compiler): erase_irrelevant ==> old_erase_irrelevant 2018-10-01 14:17:11 -07:00
Leonardo de Moura
0279cb0766 fix(library/compiler/lcnf): must process constants too 2018-10-01 11:41:57 -07:00
Leonardo de Moura
70041bf43f feat(library/compiler/vm_compiler): add option codegen 2018-10-01 11:41:57 -07:00
Leonardo de Moura
990fbe3c30 feat(library/compiler): provide options to vm_compile 2018-09-30 08:50:40 -07:00