| 359694c2 |
Improve flexibility of constant expressions |
Alexis Sellier |
|
| 62ca04d4 |
Support casting in constant expressions |
Alexis Sellier |
|
| 60ca87f0 |
Small code improvements |
Alexis Sellier |
|
| f5bdf05c |
Support constant folding |
Alexis Sellier |
|
| 19053951 |
Fix parser bug with speculative parsing |
Alexis Sellier |
|
| 3ca028fc |
Widen `ecall` intrinsic args |
Alexis Sellier |
|
| a0bdac6c |
Combine lowering and execution tests |
Alexis Sellier |
|
| 3df5cf97 |
Use `assert` instead of `panic` |
Alexis Sellier |
|
| 4579515f |
Optimize unconditional jumps |
Alexis Sellier |
|
| e5645fc3 |
Emit `RET` directly for leaf functions |
Alexis Sellier |
|
| d84d2c73 |
Optimize code generation for non-dynamic functions |
Alexis Sellier |
|
| 57e40912 |
Re-order `visit` match for better performance |
Alexis Sellier |
|
| 6d184f20 |
Skip frame allocation for leaf functions |
Alexis Sellier |
|
| d46af834 |
Optimize IL generation of loops |
Alexis Sellier |
|
| 8cacf46c |
Skip zero words in `bitset::count` |
Alexis Sellier |
|
| f82c0aaa |
Use `bits.len` instead of `wordsFor` |
Alexis Sellier |
|
| 087bce36 |
Use pointer comparison for interned variables |
Alexis Sellier |
|
| ce3e5c39 |
Use sign-extension for all W32 branch comparisons |
Alexis Sellier |
|
| da5a5cd5 |
Optimize IL when stride is `1` |
Alexis Sellier |
|
| b9832e26 |
Use sign-extension to save instructions |
Alexis Sellier |
|
| 68bd0f27 |
Return zero register directly for zero immediate |
Alexis Sellier |
|
| eace45a7 |
Optimize subtraction by small immediate |
Alexis Sellier |
|
| 6cd41da3 |
Improve instruction selection for SLT/ULT |
Alexis Sellier |
|
| 3d0bcffc |
Use zero register directly for branch comparisons |
Alexis Sellier |
|
| a80ed464 |
Skip division-by-zero check when possible |
Alexis Sellier |
|
| a81e1717 |
Strength-reduce multiplication by known constants |
Alexis Sellier |
|
| ebab4823 |
Fuse `liveIn` computation for efficiency |
Alexis Sellier |
|
| 0e8a1cce |
Optimize bitset iterator with de Bruijn |
Alexis Sellier |
|
| 28a18c72 |
Replace O(n) data symbol lookup with O(1) lookup |
Alexis Sellier |
|
| e0f33455 |
Move data emission out of `rv64` module |
Alexis Sellier |
|
| 1c550ebe |
Implement slice range assignment |
Alexis Sellier |
|
| 9be0a920 |
Simplify some `append` code |
Alexis Sellier |
|
| c6a6897f |
Simplify with support of `if let mut` |
Alexis Sellier |
|
| 5cee4d49 |
Use nested pattern matching in compiler |
Alexis Sellier |
|
| abd72ad2 |
Create new seed from `ff9c591` |
Alexis Sellier |
|
| b5aaa5b8 |
Allow identity casts |
Alexis Sellier |
|
| 08a54eea |
Make `append` return the new slice |
Alexis Sellier |
|
| 5f74ebc0 |
Add auto-deref support for nested patterns |
Alexis Sellier |
|
| d9a090bf |
Add support for nested pattern matching |
Alexis Sellier |
|
| 40bf87cb |
Simplify some optional return code |
Alexis Sellier |
|
| ff5b37ff |
Support mutable optional pattern bindings |
Alexis Sellier |
|
| 43baa252 |
Simplify `for` loops that need the index |
Alexis Sellier |
|
| a6d3edee |
Inline `pushFn`/`pushData` functions |
Alexis Sellier |
|
| 0f9c16bc |
Remove `throws` from non-fallible functions |
Alexis Sellier |
|
| 4bb2cff3 |
Allow trailing commas in parser |
Alexis Sellier |
|
| c8b1ee9e |
Print the actual parse errors if any |
Alexis Sellier |
|
| c4b1fccc |
Use growable slices throughout the compiler |
Alexis Sellier |
|
| 66129411 |
Create new seed from `b785930` |
Alexis Sellier |
|
| b7859308 |
Add append and delete methods on slices |
Alexis Sellier |
|
| ada1cb34 |
Add `Allocator` record |
Alexis Sellier |
|