From 22e6759409e10b774e50808687d2542f9343beaa Mon Sep 17 00:00:00 2001 From: Mattias Hansson Date: Thu, 27 Nov 2025 16:25:33 +0100 Subject: [PATCH] Minor optimization on FOR when assignment and loop var is the same --- internal/commands/for.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/internal/commands/for.go b/internal/commands/for.go index 79a8bcb..77d014a 100644 --- a/internal/commands/for.go +++ b/internal/commands/for.go @@ -234,6 +234,11 @@ func (c *ForCommand) Generate(ctx *compiler.CompilerContext) ([]string, error) { func (c *ForCommand) generateAssignment() []string { var asm []string + // If startOp is also the iterator (varName) no need to load it. + if c.startOp.IsVar && c.startOp.VarName == c.varName { + return asm + } + // Variable assignment from startOp if c.startOp.IsVar { // Destination: byte