Ulf Norell
|
758f836bf6
|
Remove optimization for if-then-else
|
2019-05-07 13:16:38 +02:00 |
|
Ulf Norell
|
b3131504b0
|
Handle switch_body in optimizations
|
2019-05-07 13:16:38 +02:00 |
|
Ulf Norell
|
771e4aa967
|
Fix various bugs in pattern match compilation
|
2019-05-07 13:16:38 +02:00 |
|
Ulf Norell
|
e597a3780a
|
compile list literals
|
2019-05-07 13:16:38 +02:00 |
|
Ulf Norell
|
42c7fde413
|
Shortcut let x = y in ...
|
2019-05-07 13:16:38 +02:00 |
|
Ulf Norell
|
961af8ba93
|
Simplify variables bindings in environment
|
2019-05-07 13:16:38 +02:00 |
|
Ulf Norell
|
66413ae7fe
|
Compile case trees all the way to Fate assembly
|
2019-05-07 13:16:38 +02:00 |
|
Ulf Norell
|
ab13222d29
|
Pattern matching on booleans
|
2019-05-07 13:16:38 +02:00 |
|
Ulf Norell
|
59845dec54
|
Limit the number of iterations for the optimization loop
Should finish in one iteration, but we shouldn't loop if there are bugs
or corner cases where it doesn't.
|
2019-05-07 13:16:38 +02:00 |
|
Ulf Norell
|
4814cfbf96
|
Keep better track of liveness annotations when swapping instructions
|
2019-05-07 13:16:38 +02:00 |
|
Ulf Norell
|
d05130a569
|
Get rid of unnecessary STORE instructions
|
2019-05-07 13:16:38 +02:00 |
|
Ulf Norell
|
4b6191aa25
|
Reannotate and repeat optimization pass once it done
Could try hard to keep annotations more precise, but would be more error prone
|
2019-05-07 13:16:38 +02:00 |
|
Ulf Norell
|
41387ce0b1
|
Compile nested pattern matching to case trees
(Only tuple and variable patterns so far)
|
2019-05-07 13:16:38 +02:00 |
|
Ulf Norell
|
ac25a8fc55
|
Improve instruction analysis and generalize some optimizations
|
2019-05-07 13:16:38 +02:00 |
|
Ulf Norell
|
788840f0fa
|
Compile tuple construction
|
2019-05-07 13:16:38 +02:00 |
|
Ulf Norell
|
3ec156a4b4
|
Refactor optimization rules
|
2019-05-07 13:16:38 +02:00 |
|
Ulf Norell
|
185487afda
|
Nicer debug printing
|
2019-05-07 13:16:38 +02:00 |
|
Ulf Norell
|
e224aadff7
|
Use RETURNR when possible
|
2019-05-07 13:16:38 +02:00 |
|
Ulf Norell
|
68ee18fe70
|
Liveness analysis for local variables
|
2019-05-07 13:16:38 +02:00 |
|
Ulf Norell
|
200f80cc89
|
Compile shallow matching on tuples
|
2019-05-07 13:16:38 +02:00 |
|
Ulf Norell
|
d37ef8cec2
|
Basic tuple patterns
|
2019-05-07 13:16:38 +02:00 |
|
Ulf Norell
|
216fbc6144
|
Fix and improve broken bytecode optimisations
|
2019-05-07 13:16:38 +02:00 |
|
Ulf Norell
|
33bb8a37d0
|
Compile let to FATE
|
2019-05-07 13:16:38 +02:00 |
|
Ulf Norell
|
bc8b2d1c81
|
Start on new intermediate code for FATE
|
2019-05-07 13:16:38 +02:00 |
|