mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-25 19:30:11 +01:00
nv50/ir: optimize sub(a, 0) to a
helped some ue4 demos and divinity OS shaders
total instructions in shared programs : 2818674 -> 2818606 (-0.00%)
total gprs used in shared programs : 379273 -> 379273 (0.00%)
total local used in shared programs : 9505 -> 9505 (0.00%)
total bytes used in shared programs : 25837792 -> 25837192 (-0.00%)
local gpr inst bytes
helped 0 0 33 33
hurt 0 0 0 0
Signed-off-by: Karol Herbst <karolherbst@gmail.com>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Pierre Moreau <pierre.morrow@free.fr>
This commit is contained in:
parent
6963f94e98
commit
f96945c5b5
1 changed files with 3 additions and 0 deletions
|
|
@ -1037,12 +1037,15 @@ ConstantFolding::opnd(Instruction *i, ImmediateValue &imm0, int s)
|
|||
}
|
||||
break;
|
||||
case OP_ADD:
|
||||
case OP_SUB:
|
||||
if (i->usesFlags())
|
||||
break;
|
||||
if (imm0.isInteger(0)) {
|
||||
if (s == 0) {
|
||||
i->setSrc(0, i->getSrc(1));
|
||||
i->src(0).mod = i->src(1).mod;
|
||||
if (i->op == OP_SUB)
|
||||
i->src(0).mod = i->src(0).mod ^ Modifier(NV50_IR_MOD_NEG);
|
||||
}
|
||||
i->setSrc(1, NULL);
|
||||
i->op = i->src(0).mod.getOp();
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue