Folkert
6a19009acf
32-bit float mov instruction
2023-07-09 15:47:29 +02:00
Folkert
bb97c384bb
preserve semantics in the glue generation
2023-07-09 15:47:28 +02:00
Folkert
6d2d65bb1e
remove Boxed layout
2023-07-09 15:47:28 +02:00
Folkert
d64930c17f
remove box and unbox expressions
2023-07-09 15:47:28 +02:00
Folkert
a9813aeae7
use a NonNullableUnwrapped union for Box
2023-07-09 15:47:27 +02:00
Kiryl Dziamura
1bb3c3d1dd
Make has
have 4 identation spaces
2023-07-04 11:24:40 +02:00
Joshua Warner
654248ad47
Allow spaces before and after the colon in the packages
header section
...
Fixes #4902
2023-07-03 15:46:50 -07:00
Ayaz
f2e013a4e0
Merge pull request #5628 from roc-lang/i5617
...
Do not drop uninhabited captures from lambda sets
2023-07-01 13:15:14 -05:00
Folkert
3b18494ddd
use Ptr instead of Boxed in the code-gen-help
2023-06-30 15:57:33 +02:00
Ayaz
cde3615ec2
Merge pull request #5627 from roc-lang/cleanup-file-rs
...
Extract some modules out of file.rs
2023-06-29 17:49:41 -05:00
Ayaz Hafiz
a5e1558a6e
Do not drop uninhabited captures from lambda sets
...
Previously, we would drop uninhabited captures from lambda sets' runtime
representations, which meant sets like
```
[L1 {a: Str}, L2 {a: []}]
```
had runtime representation
```
{Str}
```
rather than
```
Union({Str}, {[]})
```
if we drop unreachable lambdas from the representation, then the
reachable lambdas are somewhat more efficient to compile (as there are
less material tag options), but the compiler complexity increases
because we must represent voided capture sets in the lambda set.
Even if a lambda has voided captures, we must specialize it, because
failing to do so opens us up to losing relevant specializations needed
later on. See 2f7020aa31
for a
previous occurence of that.
As such, simply keep voided layouts in place during lambda set
compilation. The optimizer should elide them anyway.
2023-06-29 17:32:50 -05:00
Ayaz Hafiz
e27a06849d
Unwrap rec pointers when getting lambda set
2023-06-29 14:51:29 -05:00
Folkert
0308e02ba9
update some logic and comments
2023-06-29 18:40:27 +02:00
Folkert
b29e612a4d
refactor
2023-06-29 18:40:26 +02:00
Folkert
f27cb83a02
remove Reuse
2023-06-29 18:40:26 +02:00
Folkert
1daf975391
use Tag instead of Reuse constructor
2023-06-29 18:40:26 +02:00
Folkert
463f739c06
add reuse info to normal Tag ir constructor
2023-06-29 18:40:26 +02:00
Anton-4
c4b0a2ec29
Merge pull request #5620 from roc-lang/dict-set
...
Add some missing Dict and Set functions
2023-06-29 12:06:49 +02:00
Richard Feldman
40f2dd7030
Extract some modules out of file.rs
2023-06-28 22:35:59 -04:00
Richard Feldman
0ade2a85d2
Merge pull request #5622 from roc-lang/reset-reuse-free
...
free or reuse unconditionally when value is unique
2023-06-28 09:58:10 -04:00
Richard Feldman
f12b378249
cargo uitest
2023-06-27 16:20:27 -04:00
Folkert de Vries
fa721d9b29
Merge pull request #5600 from roc-lang/compiler-rt-cleanup
...
Compiler-rt cleanup macos
2023-06-27 21:12:55 +02:00
Folkert
48e6ef79a4
we no longer care where a tag layout stores the tag id
2023-06-27 20:55:28 +02:00
Richard Feldman
437fb7e46c
Update mono tests
2023-06-27 14:53:48 -04:00
Folkert
e95d093461
in dev/wasm backends, always clear tag id bits from a reset pointer
2023-06-27 20:50:43 +02:00
Folkert
8c02cc4ef0
only clear tag id in reset when needed
2023-06-27 20:25:32 +02:00
Folkert
7e380d9533
update mono tests
2023-06-27 19:39:26 +02:00
Folkert
f04295863d
reuse free'ing logic
2023-06-27 19:37:22 +02:00
Richard Feldman
ed9d9b12f5
Add some missing Dict and Set functions
...
Also remove some unnecessary Hash and Eq restrictions
2023-06-27 11:50:58 -04:00
Folkert
fc3004da58
free or reuse unconditionally when value is unique
2023-06-27 17:37:45 +02:00
Folkert
1c52c23c5f
Revert "use 32-bit GEP indices where easily possible"
...
This reverts commit 7c9c3d829c
.
2023-06-27 11:02:24 +02:00
Folkert
7c9c3d829c
use 32-bit GEP indices where easily possible
2023-06-27 00:37:09 +02:00
Folkert
7311c565f1
use updated llvm type signatures
2023-06-27 00:09:23 +02:00
Folkert
8738c95d6f
give 0
as a value to our enum attributes
2023-06-27 00:07:33 +02:00
Ayaz
0edcd23657
Merge pull request #5569 from roc-lang/finally-trmc
...
tail recursion modulo cons
2023-06-25 15:31:34 -05:00
Brendan Hansknecht
4f97ab2965
remove old compiler-rt workarounds for macos
2023-06-24 17:27:11 -07:00
Folkert
ae47cc5171
in TRMC, still apply normal TCE
2023-06-24 19:45:44 +02:00
Folkert
9d10389c2b
make trmc candidate set cheaper to clone
2023-06-24 14:49:58 +02:00
Folkert
654cf7b861
changes after review
2023-06-24 14:49:57 +02:00
Folkert
26308f1dae
reformat test
2023-06-24 14:49:56 +02:00
Folkert
41af8ff969
fix invalid register write
2023-06-24 14:49:56 +02:00
Folkert
c38f8bec75
fix llvm gen tests
2023-06-24 14:49:56 +02:00
Folkert
f7104bfe54
update mono tests
2023-06-24 14:49:55 +02:00
Folkert
e19f0ae6d6
don't capture from outside join point for the dev backend
2023-06-24 14:49:55 +02:00
Folkert
c87519c209
search for multiple TRMC opportunities
2023-06-24 14:49:55 +02:00
Folkert
284fd3ee6c
disable dev test for now
2023-06-24 14:49:54 +02:00
Folkert
249f9bcf1e
use base pointer, not stack pointer
2023-06-24 14:49:54 +02:00
Folkert
bc64e4b92b
fix layout check issue
2023-06-24 14:49:53 +02:00
Folkert
a3b2de147e
clippy
2023-06-24 14:49:53 +02:00
Folkert
c21f80ea24
don't use pointer as union child
2023-06-24 14:49:52 +02:00