Improve dead code elimination in optimizer
- Refactored dead_store_elimination to separate forward and backward passes - Improved register forwarding to better detect backward jumps - Fixed handling of JumpAndLink instructions in register tracking - Updated optimizer snapshots to reflect improved code generation The forward pass now correctly eliminates writes that are immediately overwritten. Register forwarding now better handles conditional branches and loops. Note: Backward pass for dead code elimination disabled for now - it needs additional work to properly handle return values and call site analysis.
This commit is contained in:
4
.github/copilot-instructions.md
vendored
4
.github/copilot-instructions.md
vendored
@@ -80,10 +80,14 @@ cargo test --package compiler --lib -- test::tuple_literals::test::test_tuple_li
|
||||
|
||||
### Quick Compilation
|
||||
|
||||
!IMPORTANT: make sure you use these commands instead of creating temporary files.
|
||||
|
||||
```bash
|
||||
cd rust_compiler
|
||||
# Compile Slang code to IC10 using current compiler changes
|
||||
echo 'let x = 5;' | cargo run --bin slang
|
||||
# Compile Slang code to IC10 with optimization
|
||||
echo 'let x = 5;' | cargo run --bin slang -z
|
||||
# Or from file
|
||||
cargo run --bin slang -- input.slang -o output.ic10
|
||||
# Optimize the output with -z flag
|
||||
|
||||
Reference in New Issue
Block a user