Richard Feldman
39249f3905
Add test for List.set bounds checking
2020-03-21 22:14:02 -04:00
Richard Feldman
52bfe3ce9e
Add bounds checking to List.setInPlace
2020-03-21 22:12:51 -04:00
Richard Feldman
3e71b5a38d
Extract bounds_check_comparison
2020-03-21 22:11:06 -04:00
Richard Feldman
ef38095003
Fix optimization test
...
The reason this was failing was that `x` was getting
dropped by dead code elimination, and therefore wasn't
considered a reason to share any values it used.
2020-03-21 21:19:18 -04:00
Richard Feldman
a0dd31ee51
Add bounds checking for List.set in LLVM
2020-03-21 21:19:18 -04:00
Richard Feldman
63a8daa4c7
Reproduce no bounds checking on List.set in LLVM
2020-03-21 21:19:18 -04:00
Richard Feldman
d9fe38efce
Remove unnecessary lifetime annotations
2020-03-21 21:19:18 -04:00
Richard Feldman
d0a1adfef9
Fix set_shared_int_list for LLVM
2020-03-21 21:19:18 -04:00
Richard Feldman
8a26cac3f2
Add a test of just List.set by itself
2020-03-21 21:19:18 -04:00
Richard Feldman
facdc1e2f4
Revise some tests a bit
2020-03-21 21:19:18 -04:00
Richard Feldman
cc8683d241
Fix use of GEP (was using byte offset, not index)
2020-03-21 21:19:18 -04:00
Richard Feldman
4182e51877
Fix set_shared_int_list test
2020-03-21 21:19:18 -04:00
Richard Feldman
e6704d1fcb
Streamline empty list LLVM code gen
2020-03-21 21:19:18 -04:00
Richard Feldman
d2e7e373e6
Remove unused lifetimes
2020-03-21 21:19:18 -04:00
Richard Feldman
3a6018d223
Reproduce List.set uniqueness bug
2020-03-21 21:19:18 -04:00
Richard Feldman
a286dec4cc
Reorganize some things
2020-03-21 21:19:18 -04:00
Richard Feldman
f86c3f1e7e
Avoid some redundant stores/loads
2020-03-21 21:19:18 -04:00
Richard Feldman
5b902b5a49
Use ptr_int over hardcoded i64
2020-03-21 21:19:18 -04:00
Richard Feldman
f2419bb9f8
Use struct_type.get_undef()
2020-03-21 21:19:18 -04:00
Richard Feldman
fc036453d9
Have List.set in LLVM clone before mutating
2020-03-21 21:19:18 -04:00
Richard Feldman
48954eb52b
Update to Inkwell version with memcpy
2020-03-21 21:19:18 -04:00
Folkert
eca096bf2c
disable inlining in unique when branch constraint gen
2020-03-22 01:42:28 +01:00
Folkert
9a0234e5dd
make bound variables available in guards
2020-03-22 01:11:19 +01:00
Folkert
1f3b8f7d68
guard exhaustiveness
2020-03-21 23:33:37 +01:00
Folkert
a16d48a6a9
code gen for simple guards
...
Guards cannot use variables bound in the pattern yet
2020-03-21 22:27:36 +01:00
Folkert
bd7ad318cf
fix bug in guard constraint gen
2020-03-21 15:12:01 +01:00
Folkert
a040bc971a
don't drop guard, and desugar it
2020-03-21 14:58:28 +01:00
Folkert
97acf1363d
cleanup after review
2020-03-21 12:52:10 +01:00
Richard Feldman
d7e66fa9a0
Merge branch 'trunk' into more-patterns
2020-03-20 23:48:40 -04:00
Chad Stearns
ab61d3d357
Use human readable forms of ansi codes in reporting tests
2020-03-20 22:03:08 -04:00
Folkert
caaf6370ce
fix solve test
2020-03-21 01:06:51 +01:00
Folkert
c57b5c8bc3
make old tests pass again
2020-03-21 01:02:02 +01:00
Folkert
920928399a
type inference for pattern guards
2020-03-21 00:39:52 +01:00
Folkert
655dc32098
support nested pattern matches on tag unions
2020-03-20 22:14:38 +01:00
Folkert
0f22cbbf7d
fix incorrect layout for Switch
2020-03-20 19:56:50 +01:00
Folkert
d0da300042
fix equality/hash issue
...
lead to tests not being merged/shared
2020-03-20 16:23:56 +01:00
Folkert
e062404a63
support more complex nested patterns
2020-03-20 14:27:07 +01:00
Folkert
fbadd9d620
add pointer Layout
2020-03-20 11:53:21 +01:00
Folkert
e4566b9757
clean up comment
2020-03-20 11:47:22 +01:00
Richard Feldman
b33af811d0
Merge branch 'trunk' into unit-types
2020-03-19 22:05:22 -04:00
Richard Feldman
b5ab2b2201
Merge branch 'trunk' into render-color-cli
2020-03-19 21:50:58 -04:00
Folkert
14979ceb41
Merge remote-tracking branch 'origin/trunk' into unit-types
2020-03-20 01:02:13 +01:00
Folkert
f44fea42bb
Boolean and/or in cranelift
2020-03-20 00:59:26 +01:00
Folkert
e6bee2656d
add Bool.and for llvm
2020-03-19 23:18:44 +01:00
Folkert
82655556ab
exhaustiveness for record guards
2020-03-19 22:34:08 +01:00
Folkert
0985037754
expand record pattern matches to bind all unused fields with underscore
...
this will simplify exhaustiveness checking, because a record is not like a one-tag union
2020-03-19 20:42:58 +01:00
Folkert
5fc96c09ee
Add record patterns
2020-03-19 17:08:29 +01:00
Folkert
9745d86efb
add tests
2020-03-19 14:59:05 +01:00
Folkert
006b1f8696
Switch on floats in llvm
2020-03-19 14:58:28 +01:00
Folkert
9b81a94786
Switch on floats in crane
2020-03-19 14:43:58 +01:00