From 9e8ba6e00dc4a4137a5187dbe5fe5b1394219735 Mon Sep 17 00:00:00 2001 From: Melodi <62381002+Melodi17@users.noreply.github.com> Date: Fri, 5 Sep 2025 10:20:03 +1000 Subject: stuff --- Compiler/Optimizer.cs | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 Compiler/Optimizer.cs (limited to 'Compiler/Optimizer.cs') diff --git a/Compiler/Optimizer.cs b/Compiler/Optimizer.cs new file mode 100644 index 0000000..4646c1c --- /dev/null +++ b/Compiler/Optimizer.cs @@ -0,0 +1,28 @@ +namespace Q1.Compiler; + +using System.Text.RegularExpressions; + +public class Optimizer +{ + private string _instructions; + private int _currentIndex = 0; + + public Optimizer(List instructions) + { + this._instructions = string.Join(Environment.NewLine, instructions); + } + + public string Optimize() + { + string output = this._instructions; + output = this.RemoveRedundantFallbackReturns(output); + + return output; + } + + private string RemoveRedundantFallbackReturns(string input) + { + string pattern = @"(mov .*, V0\n\s*ret\n)\s*mov 0, V0\n\s*ret"; + return Regex.Replace(input, pattern, "$1"); + } +} \ No newline at end of file -- cgit v1.3.1