| 41b8d49 |
Remove source-level `void` keyword |
Alexis Sellier |
|
| f08c387 |
Remove source-level `void` uses from tests |
Alexis Sellier |
|
| d5d7f92 |
Deduplicate `isel` code |
Alexis Sellier |
|
| 043ee15 |
Use loop for large BLITs |
Alexis Sellier |
|
| ab23f64 |
Skip extension for zero immediates |
Alexis Sellier |
|
| 845f7eb |
Skip redundant jump-to-epilogue |
Alexis Sellier |
|
| 60a9450 |
Use unlabeled records in more places |
Alexis Sellier |
|
| e291fc3 |
Move and refactor `Reg` type |
Alexis Sellier |
|
| eb28109 |
Create seed from `b82377e` |
Alexis Sellier |
|
| b82377e |
Fix resolution of unlabeled records |
Alexis Sellier |
|
| 260e2e2 |
Use constant instead of magic number |
Alexis Sellier |
|
| 30d36e9 |
Implement deref for single-field unlabeled records |
Alexis Sellier |
|
| f0e50b2 |
Properly cleanup `bin/` folder |
Alexis Sellier |
|
| f1bc2eb |
Fix a small instruction selection bug |
Alexis Sellier |
|
| 7bfd64d |
Fix some long-standing tech debt |
Alexis Sellier |
|
| e0e2e01 |
Fix a bunch of disparate issues around integers |
Alexis Sellier |
|
| a1e8824 |
General code simplifications |
Alexis Sellier |
|
| 29fdb96 |
Add support for standalone methods |
Alexis Sellier |
|
| d91f35a |
Use expressions in constants, for clarity |
Alexis Sellier |
|
| 32bb87b |
Create seed from `f402634` |
Alexis Sellier |
|
| f402634 |
Fix type resolution order |
Alexis Sellier |
|
| 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 |
|