| b3d179a0 |
resolver: document opaque pointer cast safety gap |
Alexis Sellier |
|
| 1d1204a9 |
vim: add unsafe keyword to radiance.vim |
Alexis Sellier |
|
| 37008440 |
vim: update ril.vim for new IL instructions |
Alexis Sellier |
|
| 07d2c0e8 |
il: rename WordToPtr to MakePtr, print as 'ptr' |
Alexis Sellier |
|
| 24e13086 |
il: remove PtrToWord instruction |
Alexis Sellier |
|
| 01ef2d04 |
Update RIL safety TODO: reflect current state and future work |
Alexis Sellier |
|
| 86e83beb |
lower: use Elem for all internal bounded pointer arithmetic |
Alexis Sellier |
|
| 0202a038 |
lower: use Elem for all user-facing memory access patterns |
Alexis Sellier |
|
| 6a612093 |
verify: track pointer bounds for static offset checking |
Alexis Sellier |
|
| c1192d4f |
il: add Elem instruction for bounds-checked element access |
Alexis Sellier |
|
| f583c417 |
Update Phase 6 design: dominance-based bounds verification |
Alexis Sellier |
|
| c22390f5 |
il: add RIL type verifier |
Alexis Sellier |
|
| 985a1b92 |
Add unsafe keyword for pointer-integer boundary crossing |
Alexis Sellier |
|
| 2f7beb74 |
il: document pointer provenance rules |
Alexis Sellier |
|
| e8882a03 |
il: add PtrToWord/WordToPtr conversion instructions |
Alexis Sellier |
|
| aedb2dec |
lower: use Ptr type for pointer-typed loads and stores |
Alexis Sellier |
|
| b1f8d523 |
il: add Ptr type distinct from W64 |
Alexis Sellier |
|
| 41b8d492 |
Remove source-level `void` keyword |
Alexis Sellier |
|
| f08c3877 |
Remove source-level `void` uses from tests |
Alexis Sellier |
|
| d5d7f927 |
Deduplicate `isel` code |
Alexis Sellier |
|
| 043ee151 |
Use loop for large BLITs |
Alexis Sellier |
|
| ab23f64b |
Skip extension for zero immediates |
Alexis Sellier |
|
| 845f7ebb |
Skip redundant jump-to-epilogue |
Alexis Sellier |
|
| 60a9450d |
Use unlabeled records in more places |
Alexis Sellier |
|
| e291fc36 |
Move and refactor `Reg` type |
Alexis Sellier |
|
| eb28109d |
Create seed from `b82377e` |
Alexis Sellier |
|
| b82377ea |
Fix resolution of unlabeled records |
Alexis Sellier |
|
| 260e2e2f |
Use constant instead of magic number |
Alexis Sellier |
|
| 30d36e9f |
Implement deref for single-field unlabeled records |
Alexis Sellier |
|
| f0e50b22 |
Properly cleanup `bin/` folder |
Alexis Sellier |
|
| f1bc2ebd |
Fix a small instruction selection bug |
Alexis Sellier |
|
| 7bfd64dd |
Fix some long-standing tech debt |
Alexis Sellier |
|
| e0e2e01d |
Fix a bunch of disparate issues around integers |
Alexis Sellier |
|
| a1e8824d |
General code simplifications |
Alexis Sellier |
|
| 29fdb962 |
Add support for standalone methods |
Alexis Sellier |
|
| d91f35a2 |
Use expressions in constants, for clarity |
Alexis Sellier |
|
| 32bb87b2 |
Create seed from `f402634` |
Alexis Sellier |
|
| f4026342 |
Fix type resolution order |
Alexis Sellier |
|
| 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 |
|