Commit Graph

2506 Commits

Author SHA1 Message Date
Folkert
b9613fcdc5 clean up tag pattern match conversion 2020-03-23 17:55:02 +01:00
Folkert
a7b5768c47 use a custom type to store Union variants 2020-03-23 17:55:02 +01:00
Folkert
46062439b5 remove label from Struct layout 2020-03-23 17:55:02 +01:00
Folkert
e2a7c970bc refactor Access into AccessAtIndex 2020-03-23 17:55:02 +01:00
Richard Feldman
18f34710e1
Merge pull request #269 from rtfeldman/finish-list-set
Optimized `List.set` in LLVM
2020-03-22 12:10:11 -04:00
Richard Feldman
ee12e56d1c Fix set_shared_list_oob test 2020-03-22 11:34:36 -04:00
Folkert
c6fa301d8b fix bug in is_unique 2020-03-22 13:22:52 +01:00
Richard Feldman
db502fe2e7 Revise some tests 2020-03-21 22:51:11 -04:00
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
Richard Feldman
4cec4d2c8a
Merge pull request #272 from rtfeldman/more-patterns
More pattern features
2020-03-21 21:19:03 -04:00
Folkert
eca096bf2c disable inlining in unique when branch constraint gen 2020-03-22 01:42:28 +01:00
Folkert
a1675bc8ea Merge remote-tracking branch 'origin/trunk' into more-patterns 2020-03-22 01:29:58 +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 de Vries
fdb7d9247b
Merge pull request #267 from rtfeldman/more-patterns
More patterns
2020-03-21 14:26:05 +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
Richard Feldman
3aeba5cad4
Merge pull request #268 from rtfeldman/render-color-cli
Use human readable forms of ansi codes in reporting tests
2020-03-20 23:48:27 -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