aboutsummaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/nouveau
diff options
context:
space:
mode:
authorKarol Herbst <[email protected]>2018-05-02 18:36:41 +0200
committerKarol Herbst <[email protected]>2018-06-23 03:00:24 +0200
commit133e8bf4de0439b37ec1b684087571e349991cd9 (patch)
tree236b51a493e8c8ef99c2ce339d93edb33c444605 /src/gallium/drivers/nouveau
parentced3df5623ca362a528ce06df46299701efa3644 (diff)
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 <[email protected]>
Diffstat (limited to 'src/gallium/drivers/nouveau')
-rw-r--r--src/gallium/drivers/nouveau/codegen/nv50_ir_ra.cpp4
1 files 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
}
}
}