Mesa (master): nvc0/ir: unlink values pre- and post-call to division function
Ilia Mirkin
imirkin at kemper.freedesktop.org
Sat Aug 12 18:50:43 UTC 2017
Module: Mesa
Branch: master
Commit: ea22ac23e04c093f9dd0bb8f9b946e61d79824ff
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=ea22ac23e04c093f9dd0bb8f9b946e61d79824ff
Author: Ilia Mirkin <imirkin at alum.mit.edu>
Date: Sat Aug 12 00:02:34 2017 -0400
nvc0/ir: unlink values pre- and post-call to division function
While technically correct, this can lead to e.g. getImmediate assuming
that it can walk up the value chain. It could be fixed to not do this,
but it seems easier and less error-prone to just not link the two values
to save on one LValue object.
Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu>
---
src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nvc0.cpp | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nvc0.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nvc0.cpp
index 64d743708a..c8f0701572 100644
--- a/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nvc0.cpp
+++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nvc0.cpp
@@ -45,11 +45,10 @@ NVC0LegalizeSSA::handleDIV(Instruction *i)
{
FlowInstruction *call;
int builtin;
- Value *def[2];
bld.setPosition(i, false);
- def[0] = bld.mkMovToReg(0, i->getSrc(0))->getDef(0);
- def[1] = bld.mkMovToReg(1, i->getSrc(1))->getDef(0);
+ bld.mkMovToReg(0, i->getSrc(0));
+ bld.mkMovToReg(1, i->getSrc(1));
switch (i->dType) {
case TYPE_U32: builtin = NVC0_BUILTIN_DIV_U32; break;
case TYPE_S32: builtin = NVC0_BUILTIN_DIV_S32; break;
@@ -57,7 +56,7 @@ NVC0LegalizeSSA::handleDIV(Instruction *i)
return;
}
call = bld.mkFlow(OP_CALL, NULL, CC_ALWAYS, NULL);
- bld.mkMov(i->getDef(0), def[(i->op == OP_DIV) ? 0 : 1]);
+ bld.mkMovFromReg(i->getDef(0), i->op == OP_DIV ? 0 : 1);
bld.mkClobber(FILE_GPR, (i->op == OP_DIV) ? 0xe : 0xd, 2);
bld.mkClobber(FILE_PREDICATE, (i->dType == TYPE_S32) ? 0xf : 0x3, 0);
More information about the mesa-commit
mailing list