FATE backend optimisations #696

Merged
zxq9 merged 19 commits from fate-flatten-store into lima 2019-12-12 17:22:38 +09:00

19 Commits

Author SHA1 Message Date
Ulf Norell 954af13f59 Fix debug printing of store registers 2019-12-12 09:14:34 +01:00
Ulf Norell 2e4558b3b4 Changelog 2019-12-10 12:57:52 +01:00
Ulf Norell a403a9d227 Unbox singleton tuples and records 2019-12-10 12:24:05 +01:00
Ulf Norell 46a30b118f Get rid of unnecessary return instruction after tail-call 2019-11-26 13:33:11 +01:00
Ulf Norell bb1a45c557 Improve case-on-constructor optimisation 2019-11-26 13:10:58 +01:00
Ulf Norell 0a22c7a34a More let-floating 2019-11-26 13:10:58 +01:00
Ulf Norell c8153f94a6 More aggressive freshening to avoid shadowing issues 2019-11-26 13:10:58 +01:00
Ulf Norell 63d51baaa3 Dialyzer issues 2019-11-26 13:10:58 +01:00
Ulf Norell cb045b0256 whitespace 2019-11-26 13:10:58 +01:00
Ulf Norell c84064da7f Inline local functions and simplify case-on-constructor 2019-11-26 13:10:58 +01:00
Ulf Norell ad88797cef Proper handling of lets in term_to_fate 2019-11-26 13:10:58 +01:00
Ulf Norell 6c3932b10c Flattened state layout
... with necessary optimizations.
2019-11-26 13:10:56 +01:00
Ulf Norell 8d7c637241 Don't confuse variables and store registers in fate asm generation 2019-11-26 13:10:04 +01:00
Ulf Norell a8119f1219 Track state layout
... but only default layout still.
2019-11-26 13:10:04 +01:00
Ulf Norell d0fdd06d66 Change get_state and set_state fcode primitives to take a register 2019-11-26 13:10:04 +01:00
Ulf Norell 99ecda4b7b Fix warnings in test suites 2019-11-26 13:10:04 +01:00
Ulf Norell e645a8d034 Optimize before lambda lifting
(lambdas are either in dead code or not dead, so dead code elimination won't be affected)
2019-11-26 13:10:04 +01:00
Ulf Norell 499e2f8200 Handle records and type aliases correctly in fcode 2019-11-26 13:10:04 +01:00
Ulf Norell 5465b74ac9 Allow specifying store register in FATE backend 2019-11-26 13:10:04 +01:00