From dbc4c72c3b00be364eff6c254bc4a60ed4f9d2bd Mon Sep 17 00:00:00 2001 From: Devin Bidwell Date: Tue, 30 Dec 2025 23:00:55 -0700 Subject: [PATCH] Add .snap.new files to gitignore --- .gitignore | 1 + ...sts__tests__dead_code_elimination.snap.new | 33 ------ ...sts__tests__nested_function_calls.snap.new | 108 ------------------ rust_compiler/libs/optimizer/src/dead_code.rs | 4 +- rust_compiler/libs/optimizer/src/lib.rs | 4 +- 5 files changed, 5 insertions(+), 145 deletions(-) delete mode 100644 rust_compiler/libs/integration_tests/src/snapshots/integration_tests__tests__dead_code_elimination.snap.new delete mode 100644 rust_compiler/libs/integration_tests/src/snapshots/integration_tests__tests__nested_function_calls.snap.new diff --git a/.gitignore b/.gitignore index 78b5f00..4566789 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ target *.ic10 +*.snap.new release csharp_mod/bin obj diff --git a/rust_compiler/libs/integration_tests/src/snapshots/integration_tests__tests__dead_code_elimination.snap.new b/rust_compiler/libs/integration_tests/src/snapshots/integration_tests__tests__dead_code_elimination.snap.new deleted file mode 100644 index 1126ee1..0000000 --- a/rust_compiler/libs/integration_tests/src/snapshots/integration_tests__tests__dead_code_elimination.snap.new +++ /dev/null @@ -1,33 +0,0 @@ ---- -source: libs/integration_tests/src/lib.rs -assertion_line: 103 -expression: output ---- -## Unoptimized Output - -j main -compute: -pop r8 -push sp -push ra -move r9 20 -add r1 r8 1 -move r15 r1 -j __internal_L1 -__internal_L1: -pop ra -pop sp -j ra - -## Optimized Output - -j main -pop r8 -push sp -push ra -add r1 r8 1 -move r15 r1 -j 7 -pop ra -pop sp -j ra diff --git a/rust_compiler/libs/integration_tests/src/snapshots/integration_tests__tests__nested_function_calls.snap.new b/rust_compiler/libs/integration_tests/src/snapshots/integration_tests__tests__nested_function_calls.snap.new deleted file mode 100644 index 91f844b..0000000 --- a/rust_compiler/libs/integration_tests/src/snapshots/integration_tests__tests__nested_function_calls.snap.new +++ /dev/null @@ -1,108 +0,0 @@ ---- -source: libs/integration_tests/src/lib.rs -assertion_line: 173 -expression: output ---- -## Unoptimized Output - -j main -add: -pop r8 -pop r9 -push sp -push ra -add r1 r9 r8 -move r15 r1 -j __internal_L1 -__internal_L1: -pop ra -pop sp -j ra -multiply: -pop r8 -pop r9 -push sp -push ra -mul r1 r9 2 -move r15 r1 -j __internal_L2 -__internal_L2: -pop ra -pop sp -j ra -complex: -pop r8 -pop r9 -push sp -push ra -push r8 -push r9 -push r9 -push r8 -jal add -pop r9 -pop r8 -move r10 r15 -push r8 -push r9 -push r10 -push r10 -push 2 -jal multiply -pop r10 -pop r9 -pop r8 -move r11 r15 -move r15 r11 -j __internal_L3 -__internal_L3: -pop ra -pop sp -j ra - -## Optimized Output - -j main -pop r8 -pop r9 -push sp -push ra -add r1 r9 r8 -move r15 r1 -j 8 -pop ra -pop sp -j ra -pop r9 -push sp -push ra -add r1 r9 r9 -move r15 r1 -j 17 -pop ra -pop sp -j ra -pop r8 -pop r9 -push sp -push ra -push r8 -push r9 -push r9 -push r8 -jal 1 -pop r9 -pop r8 -move r10 r15 -push r8 -push r9 -push r10 -push r10 -push 2 -jal 11 -move r11 r15 -move r15 r11 -j 41 -pop ra -pop sp -j ra diff --git a/rust_compiler/libs/optimizer/src/dead_code.rs b/rust_compiler/libs/optimizer/src/dead_code.rs index 18687de..ca5333b 100644 --- a/rust_compiler/libs/optimizer/src/dead_code.rs +++ b/rust_compiler/libs/optimizer/src/dead_code.rs @@ -51,7 +51,7 @@ pub fn remove_redundant_jumps<'a>( ) -> (Vec>, bool) { let mut output = Vec::with_capacity(input.len()); let mut changed = false; - + for (i, node) in input.iter().enumerate() { // Check if this is a jump to the next line number if let Instruction::Jump(Operand::Number(target)) = &node.instruction { @@ -64,7 +64,7 @@ pub fn remove_redundant_jumps<'a>( } output.push(node.clone()); } - + (output, changed) } diff --git a/rust_compiler/libs/optimizer/src/lib.rs b/rust_compiler/libs/optimizer/src/lib.rs index 74399b2..d8144b7 100644 --- a/rust_compiler/libs/optimizer/src/lib.rs +++ b/rust_compiler/libs/optimizer/src/lib.rs @@ -92,9 +92,9 @@ pub fn optimize<'a>(instructions: Instructions<'a>) -> Instructions<'a> { // Final Pass: Resolve Labels to Line Numbers let mut instructions = resolve_labels(instructions); - + // Post-resolution Pass: Remove redundant jumps (must run after label resolution) let (instructions, _) = remove_redundant_jumps(instructions); - + Instructions::new(instructions) }