Leonardo de Moura
88a62f9f7e
fix : #121 in the old frontend
...
This is temporary hack. We will delete this module in the near future.
2020-03-06 13:43:19 -08:00
Leonardo de Moura
8db309a079
feat: remove hack
...
We can't solve
```
```
anymore, but the hack was unstable. For example, it is weird that the
one above could be solved, but the following failed.
```
```
The difference is that the types in the first example were atomic
`Unit` and `Bool`, but not in the second.
2020-03-06 13:43:19 -08:00
Leonardo de Moura
3c5d2d4269
refactor: cleanup
...
closes #112
Previous two commits contributed too.
2020-03-06 13:43:19 -08:00
Leonardo de Moura
bce4912505
fix: remove bad condition
...
Recall that `processAssignmentFOApprox` will unfold `v` if possible.
2020-03-06 13:43:19 -08:00
Leonardo de Moura
482e078b92
chore: minor cleanup
2020-03-06 13:43:19 -08:00
Sebastian Ullrich
1b5ace4c39
chore: profile C code generation time
2020-03-06 17:20:25 +01:00
Leonardo de Moura
8b5d75a2dd
chore: missing space
2020-03-05 18:44:33 -08:00
Leonardo de Moura
35000ff4cd
feat: add mkNoConfusion
2020-03-05 18:44:33 -08:00
Leonardo de Moura
414f674bb6
feat: skip, subst and HEq => Eq transitions
2020-03-05 18:44:33 -08:00
Leonardo de Moura
d9fd9bb1b3
feat: add mkEqOfHEq
2020-03-05 18:44:33 -08:00
Leonardo de Moura
4eaee1147b
feat: unifyEqs skeleton
2020-03-05 18:44:33 -08:00
Leonardo de Moura
6fb526ee00
feat: add elimAuxIndices
2020-03-05 18:44:33 -08:00
Leonardo de Moura
8d7ed8a9b8
refactor: FVarSubst
2020-03-05 18:44:33 -08:00
Leonardo de Moura
ee0fd6ab40
chore: add assertion
2020-03-05 18:44:33 -08:00
Leonardo de Moura
2f60e82049
fix: isHeadBetaTarget
2020-03-05 18:44:33 -08:00
Leonardo de Moura
74c9d54362
feat: simple case
2020-03-05 18:44:33 -08:00
Leonardo de Moura
83383b505f
chore: auxiliary functions
2020-03-05 18:44:33 -08:00
Leonardo de Moura
b5ec4ef2bd
feat: add evalCases
2020-03-05 18:44:33 -08:00
Leonardo de Moura
9626ceda09
fix: eta expansion before lazy delta
2020-03-05 18:44:33 -08:00
Sebastian Ullrich
ed1ce9b59f
chore: make lock error message more precise
2020-03-04 19:09:14 -08:00
Leonardo de Moura
4400c82c4d
feat: add cases tactic syntax
2020-03-04 19:00:37 -08:00
Leonardo de Moura
dfa392fa17
feat: add generalizeIndices
...
Helper tactic for `cases`
2020-03-04 16:27:01 -08:00
Leonardo de Moura
21ca370961
feat: add cases tactic skeleton
2020-03-02 17:55:56 -08:00
Leonardo de Moura
eca569f237
chore: use NonScalar
2020-03-02 17:55:33 -08:00
Leonardo de Moura
0893b62598
perf: avoid unnecessary overhead at HashSet
...
List instead of AssocList saves one word per entry.
2020-03-02 08:40:15 -08:00
Leonardo de Moura
641cf90cc9
feat: add StateM.subsingleton
2020-03-02 08:37:55 -08:00
Leonardo de Moura
58ddeedced
feat: add List.replace
2020-03-02 08:30:20 -08:00
Leonardo de Moura
88dc110260
feat: add Squash
2020-03-02 08:30:05 -08:00
Leonardo de Moura
b379bca28b
chore: rename PtrEqResult.yes ==> PtrEqResult.yesEqual
2020-03-02 08:29:49 -08:00
Leonardo de Moura
0f8b59eed7
fix: typo Prop => Type
2020-02-29 11:22:17 -08:00
Leonardo de Moura
684554e979
feat: add PtrEqResult
2020-02-29 11:00:50 -08:00
Leonardo de Moura
94cfcbbefe
chore: withPtrEqSubsingleton ==> withPtrEqResult
2020-02-29 10:12:06 -08:00
Leonardo de Moura
d511ddfa9e
feat: add SemiDeciable and withPtrEqSubsingleton
2020-02-29 09:50:31 -08:00
Leonardo de Moura
796fff26d2
fix: check_optarg
2020-02-29 07:25:30 -08:00
Leonardo de Moura
1dc9f9a7d8
chore: remove old names
2020-02-28 10:53:42 -08:00
Leonardo de Moura
090b1e664d
feat: rename maxSharing => shareCommon
2020-02-28 10:53:41 -08:00
Leonardo de Moura
4a05a2568a
chore: add new primitive names
2020-02-28 10:53:41 -08:00
Leonardo de Moura
1f8bfa0c11
chore: rename maxsharing.cpp => sharecommon.cpp
2020-02-28 10:53:41 -08:00
Leonardo de Moura
271b753f30
feat: optimization for Bool+Decidable code
2020-02-27 16:59:18 -08:00
Leonardo de Moura
cca90b5f9f
chore: simplify withPtrEqDecEq
2020-02-27 11:45:02 -08:00
Leonardo de Moura
b83691baa2
feat: compute fvarSubst
2020-02-27 10:58:46 -08:00
Leonardo de Moura
021d906542
fix: remove filler fields (part 2)
2020-02-27 10:02:26 -08:00
Leonardo de Moura
966e5bc60d
perf: remove "filler" fields
...
See previous commit.
2020-02-27 10:02:26 -08:00
Leonardo de Moura
e5d824a748
feat: initialize last word
...
Motivation: trying to get rid of explicit "filler" fields because
they slow down modules such as `RBMap`.
2020-02-27 10:02:26 -08:00
Leonardo de Moura
2719eaeb63
fix: closes #119
2020-02-27 08:10:29 -08:00
Leonardo de Moura
657f3792b1
feat: maxsharing scalar arrays
2020-02-25 18:08:49 -08:00
Leonardo de Moura
131f2d202e
chore: ignore closures at maxsharing
...
Closures may capture huge objects that user may be unaware.
For example, any closure created by the interpreter contains
a reference to the `Environment`.
@dselsam @kha I don't see many applications for maximizing sharing in
values captured by closures. If we want this feature, we should at
least wrap the `Environment` and `Decl` using external objects
at `mk_stub_closure` at `ir_interpreter.cpp`.
2020-02-25 17:13:05 -08:00
Leonardo de Moura
1653e75b6b
feat: maxsharing for arrays and strings
2020-02-25 16:15:26 -08:00
Leonardo de Moura
46e8d193ca
feat: maxsharing for constructors
2020-02-25 15:43:10 -08:00
Leonardo de Moura
53b57af125
fix: dangling file
2020-02-25 14:33:54 -08:00