Ulf Norell
|
d019e44924
|
Compile values to immediates when possible
|
2019-12-16 17:04:49 +01:00 |
|
Ulf Norell
|
954af13f59
|
Fix debug printing of store registers
|
2019-12-12 09:14:34 +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
|
63d51baaa3
|
Dialyzer issues
|
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
|
8d7c637241
|
Don't confuse variables and store registers in fate asm generation
|
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
|
5465b74ac9
|
Allow specifying store register in FATE backend
|
2019-11-26 13:10:04 +01:00 |
|
Ulf Norell
|
bd64260e37
|
Remove impossible case
h/t dialyzer
|
2019-11-25 10:42:37 +01:00 |
|
Ulf Norell
|
6380e04a97
|
Strip switches on variants with only catch-all
|
2019-11-19 16:39:01 +01:00 |
|
Ulf Norell
|
2be3c9194d
|
Optimize switches with a single successful branch
Typical case: require(_, _)
|
2019-11-19 15:14:00 +01:00 |
|
Ulf Norell
|
d0cfd9cbbe
|
Export to_basic_blocks for tests
|
2019-11-19 13:11:06 +01:00 |
|
Ulf Norell
|
7f7f53e044
|
Fix issue in basic block generation
|
2019-11-19 13:10:56 +01:00 |
|
Ulf Norell
|
7d8a773d6a
|
Fix type specs
|
2019-11-19 13:10:26 +01:00 |
|
Ulf Norell
|
d3f5d7f5c5
|
Fix lost dependency when inlining switch target
|
2019-11-18 12:20:32 +01:00 |
|
Ulf Norell
|
0b474843f9
|
Protect against ill-typed code
|
2019-11-18 12:20:32 +01:00 |
|
Ulf Norell
|
1a628ab29f
|
Fix bad annotations on switch-body
|
2019-11-18 12:20:32 +01:00 |
|
Ulf Norell
|
03ad1ad1dd
|
Protect switch optimizations against ill-typed code
|
2019-11-18 12:20:32 +01:00 |
|
Ulf Norell
|
bfcb9ab324
|
Annotate switch bodies
|
2019-11-18 12:20:32 +01:00 |
|
Ulf Norell
|
4cc88be296
|
Desugar STORE R a to POP R
|
2019-11-18 12:20:32 +01:00 |
|
Ulf Norell
|
505603ad71
|
More optimizations for impure instructions
|
2019-11-18 12:20:32 +01:00 |
|
Ulf Norell
|
2d7c860e3a
|
Rewrite liveness analysis
|
2019-11-18 12:20:32 +01:00 |
|
Ulf Norell
|
4976e0402e
|
Don't crash constant propagation on ill-typed code
|
2019-11-18 12:20:32 +01:00 |
|
Ulf Norell
|
0478df72fc
|
Fix dependency analysis for loops
|
2019-11-18 12:20:32 +01:00 |
|
Ulf Norell
|
35b20800c9
|
Refactor argument inlining optimization
|
2019-11-18 12:20:32 +01:00 |
|
Ulf Norell
|
d4c5c610ee
|
Don't include stack and immediates in liveness annotations
|
2019-11-18 12:20:32 +01:00 |
|
Ulf Norell
|
6868bec3ed
|
Fix bug in dependency analysis of GAS
|
2019-11-18 12:20:32 +01:00 |
|
Ulf Norell
|
e5702c068c
|
Impure == writes to the chain
Reading is ok
|
2019-11-18 12:20:31 +01:00 |
|
Ulf Norell
|
a4b21063e3
|
Get rid of IsOp
|
2019-11-18 12:20:31 +01:00 |
|
Ulf Norell
|
aca6b89fcf
|
Store arguments are now separate from vars
|
2019-11-18 12:20:31 +01:00 |
|
Ulf Norell
|
13b196568b
|
Handle reads from undefined variables in liveness analysis
Doesn't affect well-formed code, but makes testing easier.
|
2019-11-18 12:20:31 +01:00 |
|
Ulf Norell
|
eba4f1c79c
|
Call instructions read the function argument
|
2019-11-18 12:20:31 +01:00 |
|
Ulf Norell
|
1ca3018958
|
Don't run pretty printer if not pretty printing
|
2019-11-18 12:20:31 +01:00 |
|
Ulf Norell
|
e6b5c5a526
|
Fix bug in short-cut for IS_NIL
|
2019-11-18 12:20:31 +01:00 |
|
Ulf Norell
|
47ad607dd5
|
Handle arbitrary store registers
|
2019-11-18 12:20:31 +01:00 |
|
Ulf Norell
|
e8a54395bf
|
Export optimize_fun for tests
|
2019-11-18 12:20:31 +01:00 |
|
Ulf Norell
|
f42353b300
|
Handle encoding/decoding bits
Fixes GH-174
|
2019-11-18 12:16:04 +01:00 |
|
Ulf Norell
|
f5b2732b04
|
Don't get rid of store updates!
|
2019-10-10 14:19:56 +02:00 |
|
Ulf Norell
|
5fc6e18cd2
|
Add Address.to_contract
Casts an address to a (any) contract type.
|
2019-09-30 14:47:05 +02:00 |
|
Ulf Norell
|
214a5f0a91
|
Fix issues with liveness analysis
|
2019-09-24 16:23:50 +02:00 |
|
Ulf Norell
|
b752965443
|
don't call aeb_fate_ops with {store, _} arg
(to not upset dialyzer)
|
2019-09-24 10:47:26 +02:00 |
|
Ulf Norell
|
0019d92e45
|
Don't confuse variables and store registers in fate asm generation
|
2019-09-23 16:52:16 +02:00 |
|
Ulf Norell
|
3ea8470dc8
|
Compile Bytes.concat and split to FATE
|
2019-09-09 18:40:45 +02:00 |
|
Ulf Norell
|
58ab771dff
|
Make init do the state updates in FATE (instead of a new INIT function)
|
2019-09-03 09:01:11 +02:00 |
|
sennui
|
83d06977f9
|
add extra argument to claim for bidding
|
2019-09-01 10:58:49 +02:00 |
|
Ulf Norell
|
07cf162703
|
Fix performance problem in FATE optimiser caused by debug printing
|
2019-08-23 10:07:43 +02:00 |
|
Ulf Norell
|
20064b72fa
|
Compile tail-calls to current function to jumps
|
2019-08-22 14:50:15 +02:00 |
|
Ulf Norell
|
a942561907
|
Improved optimizations of FATE code
|
2019-08-22 14:49:48 +02:00 |
|
Ulf Norell
|
cbc8909954
|
Add default init function in fcode pass instead of in assembler
|
2019-08-21 11:51:36 +02:00 |
|