nv50/ir: allow to swap sources for OP_SUB
authorSamuel Pitoiset <samuel.pitoiset@gmail.com>
Wed, 20 Jul 2016 18:07:35 +0000 (20:07 +0200)
committerSamuel Pitoiset <samuel.pitoiset@gmail.com>
Fri, 22 Jul 2016 20:51:37 +0000 (22:51 +0200)
commit3f5cf8c488bfc401d1d5503c1ec61874d7c1477d
treefe52b73e7918516dd8b2c62fe00407e3433e51db
parent2e890b535012d76d190776368b7f82aad2668461
nv50/ir: allow to swap sources for OP_SUB

This allows the load-propagation pass to swap the sources in presence
of immediate values.

Maxwell (GM107):

total instructions in shared programs :1928187 -> 1927634 (-0.03%)
total gprs used in shared programs    :330741 -> 330154 (-0.18%)
total local used in shared programs   :28032 -> 28032 (0.00%)

                local        gpr       inst      bytes
    helped           0         271         425         425
      hurt           0           0         194         194

Fermi (GF114):

total instructions in shared programs :2334474 -> 2333829 (-0.03%)
total gprs used in shared programs    :380934 -> 380215 (-0.19%)
total local used in shared programs   :33304 -> 33264 (-0.12%)

                local        gpr       inst      bytes
    helped           5         314         521         521
      hurt           0           4         195         195

No regressions on GM107 and GF114 with full piglit.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp