| 359694c |
Improve flexibility of constant expressions |
Alexis Sellier |
|
| 62ca04d |
Support casting in constant expressions |
Alexis Sellier |
|
| 60ca87f |
Small code improvements |
Alexis Sellier |
|
| f5bdf05 |
Support constant folding |
Alexis Sellier |
|
| 1905395 |
Fix parser bug with speculative parsing |
Alexis Sellier |
|
| 3ca028f |
Widen `ecall` intrinsic args |
Alexis Sellier |
|
| a0bdac6 |
Combine lowering and execution tests |
Alexis Sellier |
|
| 3df5cf9 |
Use `assert` instead of `panic` |
Alexis Sellier |
|
| 4579515 |
Optimize unconditional jumps |
Alexis Sellier |
|
| e5645fc |
Emit `RET` directly for leaf functions |
Alexis Sellier |
|
| d84d2c7 |
Optimize code generation for non-dynamic functions |
Alexis Sellier |
|
| 57e4091 |
Re-order `visit` match for better performance |
Alexis Sellier |
|
| 6d184f2 |
Skip frame allocation for leaf functions |
Alexis Sellier |
|
| d46af83 |
Optimize IL generation of loops |
Alexis Sellier |
|
| 8cacf46 |
Skip zero words in `bitset::count` |
Alexis Sellier |
|
| f82c0aa |
Use `bits.len` instead of `wordsFor` |
Alexis Sellier |
|
| 087bce3 |
Use pointer comparison for interned variables |
Alexis Sellier |
|
| ce3e5c3 |
Use sign-extension for all W32 branch comparisons |
Alexis Sellier |
|
| da5a5cd |
Optimize IL when stride is `1` |
Alexis Sellier |
|
| b9832e2 |
Use sign-extension to save instructions |
Alexis Sellier |
|
| 68bd0f2 |
Return zero register directly for zero immediate |
Alexis Sellier |
|
| eace45a |
Optimize subtraction by small immediate |
Alexis Sellier |
|
| 6cd41da |
Improve instruction selection for SLT/ULT |
Alexis Sellier |
|
| 3d0bcff |
Use zero register directly for branch comparisons |
Alexis Sellier |
|
| a80ed46 |
Skip division-by-zero check when possible |
Alexis Sellier |
|
| a81e171 |
Strength-reduce multiplication by known constants |
Alexis Sellier |
|
| ebab482 |
Fuse `liveIn` computation for efficiency |
Alexis Sellier |
|
| 0e8a1cc |
Optimize bitset iterator with de Bruijn |
Alexis Sellier |
|
| 28a18c7 |
Replace O(n) data symbol lookup with O(1) lookup |
Alexis Sellier |
|
| e0f3345 |
Move data emission out of `rv64` module |
Alexis Sellier |
|
| 1c550eb |
Implement slice range assignment |
Alexis Sellier |
|
| 9be0a92 |
Simplify some `append` code |
Alexis Sellier |
|
| c6a6897 |
Simplify with support of `if let mut` |
Alexis Sellier |
|
| 5cee4d4 |
Use nested pattern matching in compiler |
Alexis Sellier |
|
| abd72ad |
Create new seed from `ff9c591` |
Alexis Sellier |
|
| b5aaa5b |
Allow identity casts |
Alexis Sellier |
|
| 08a54ee |
Make `append` return the new slice |
Alexis Sellier |
|
| 5f74ebc |
Add auto-deref support for nested patterns |
Alexis Sellier |
|
| d9a090b |
Add support for nested pattern matching |
Alexis Sellier |
|
| 40bf87c |
Simplify some optional return code |
Alexis Sellier |
|
| ff5b37f |
Support mutable optional pattern bindings |
Alexis Sellier |
|
| 43baa25 |
Simplify `for` loops that need the index |
Alexis Sellier |
|
| a6d3ede |
Inline `pushFn`/`pushData` functions |
Alexis Sellier |
|
| 0f9c16b |
Remove `throws` from non-fallible functions |
Alexis Sellier |
|
| 4bb2cff |
Allow trailing commas in parser |
Alexis Sellier |
|
| c8b1ee9 |
Print the actual parse errors if any |
Alexis Sellier |
|
| c4b1fcc |
Use growable slices throughout the compiler |
Alexis Sellier |
|
| 6612941 |
Create new seed from `b785930` |
Alexis Sellier |
|
| b785930 |
Add append and delete methods on slices |
Alexis Sellier |
|
| ada1cb3 |
Add `Allocator` record |
Alexis Sellier |
|