From 133e8bf4de0439b37ec1b684087571e349991cd9 Mon Sep 17 00:00:00 2001 From: Karol Herbst Date: Wed, 2 May 2018 18:36:41 +0200 Subject: [PATCH] nv50/ir: only avoid spilling constrained def if a mov is added fix spilling regression introduced by 5428066f5e this is just a minor mistake done while moving the code out into a new function. The function contained a loop which might have been terminated earlier and skipped setting noSpill to 1. After the refactoring it was always set. Fixes: 5428066f5e1ef5ea6ae04c84019f270023cfc6aa ("nv50/ir: make a copy of tex src if it's referenced multiple times") Signed-off-by: Karol Herbst --- src/gallium/drivers/nouveau/codegen/nv50_ir_ra.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_ra.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_ra.cpp index 28e0e260cee..b660fec75c9 100644 --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_ra.cpp +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_ra.cpp @@ -2353,6 +2353,8 @@ RegAlloc::InsertConstraintsPass::insertConstraintMove(Instruction *cst, int s) cst->setSrc(s, mov->getDef(0)); cst->bb->insertBefore(cst, mov); + + cst->getDef(0)->asLValue()->noSpill = 1; // doesn't help } // Insert extra moves so that, if multiple register constraints on a value are @@ -2397,8 +2399,6 @@ RegAlloc::InsertConstraintsPass::insertConstraintMoves() } insertConstraintMove(cst, s); - - cst->getDef(0)->asLValue()->noSpill = 1; // doesn't help } } } -- 2.30.2