From 290441dd446999fae909368d22e73fd229fc565b Mon Sep 17 00:00:00 2001 From: George Hotz <72895+geohot@users.noreply.github.com> Date: Thu, 6 Nov 2025 09:57:09 -0800 Subject: [PATCH] do loads early (#13131) * do loads early * local and reg --- tinygrad/codegen/late/linearizer.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tinygrad/codegen/late/linearizer.py b/tinygrad/codegen/late/linearizer.py index 9e8095540f..622ac9a587 100644 --- a/tinygrad/codegen/late/linearizer.py +++ b/tinygrad/codegen/late/linearizer.py @@ -22,9 +22,12 @@ def linearize(u:UOp) -> list[UOp]: # simple priority override match u.op: + # the order and placement of these is important + case Ops.DEFINE_GLOBAL | Ops.DEFINE_LOCAL | Ops.DEFINE_REG | Ops.DEFINE_VAR: priority = -20 + # early consts case Ops.CONST: priority = -10 # place loads early - #case Ops.LOAD: priority = -1 + case Ops.LOAD: priority = -1 # control flow resets priority case Ops.RANGE|Ops.END|Ops.IF|Ops.ENDIF: priority = 0 # prevent priority inversion