mesa/src
Ian Romanick 619c51722b nir: Add some missing "optimization undo" patterns
d8d18516b0 and 03fb13f646 added some patterns to undo conversions like

   (('ior', ('flt', a, b), ('flt', a, c)), ('flt', a, ('fmax', b, c)))

If further optimization cause some of the operands to either be the same
or be constants, undoing the transformation can lead to further savings.

I don't know why these patterns were not added in those patches.  I did
not check to see which specific patterns actually helped.  I just added
all of them for symmetry.  This prevents some loop unrolling regressions
Plane Shift caused by Samuel's "nir: implement the GLSL equivalent of if
simplication in nir_opt_if" patch.

Skylake and Broadwell had similar results. (Skylake shown)
total instructions in shared programs: 14369768 -> 14369557 (<.01%)
instructions in affected programs: 44076 -> 43865 (-0.48%)
helped: 141
HURT: 0
helped stats (abs) min: 1 max: 5 x̄: 1.50 x̃: 1
helped stats (rel) min: 0.07% max: 1.52% x̄: 0.66% x̃: 0.60%
95% mean confidence interval for instructions value: -1.67 -1.32
95% mean confidence interval for instructions %-change: -0.72% -0.59%
Instructions are helped.

total cycles in shared programs: 532430629 -> 532425772 (<.01%)
cycles in affected programs: 1170832 -> 1165975 (-0.41%)
helped: 101
HURT: 5
helped stats (abs) min: 1 max: 160 x̄: 48.54 x̃: 32
helped stats (rel) min: <.01% max: 8.49% x̄: 2.76% x̃: 2.03%
HURT stats (abs)   min: 2 max: 22 x̄: 9.20 x̃: 4
HURT stats (rel)   min: <.01% max: 0.05% x̄: 0.02% x̃: <.01%
95% mean confidence interval for cycles value: -53.64 -38.00
95% mean confidence interval for cycles %-change: -3.06% -2.20%
Cycles are helped.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
2018-06-01 10:13:16 -07:00
..
amd radv: Handle GFX9 merged shaders in radv_flush_constants() 2018-06-01 08:53:34 +01:00
broadcom v3d: Add support for glSampleMask / glSampleCoverage. 2018-05-17 15:09:46 +01:00
compiler nir: Add some missing "optimization undo" patterns 2018-06-01 10:13:16 -07:00
egl egl/x11: fix build with DRI3 disabled 2018-05-29 17:01:21 +01:00
gallium virgl: Always assume that ORIGIN_UPPER_LEFT and PIXEL_CENTER* are supported 2018-06-01 12:04:21 +01:00
gbm gbm: remove never-implemented function 2018-03-28 16:25:52 +01:00
getopt
glx glx/drisw: make the shm/non-shm loader extensions separately. 2018-05-30 09:11:54 +10:00
gtest autotools: include meson build files in tarball 2018-01-19 16:30:51 -08:00
hgl meson: Add Haiku platform support v4 2018-02-16 16:56:34 -06:00
intel i965: Add ARB_fragment_shader_interlock support. 2018-06-01 16:36:39 +01:00
loader dri3: Stricter SBC wraparound handling 2018-05-22 17:59:53 +02:00
mapi mesa: changes to expose OES_texture_view extension 2018-05-24 12:53:07 +03:00
mesa i965: Add ARB_fragment_shader_interlock support. 2018-06-01 16:36:39 +01:00
util util: Add a randomized test for the virtual memory allocator 2018-05-31 16:51:35 -07:00
vulkan vulkan: don't free uninitialised memory 2018-05-29 17:44:13 +01:00
Makefile.am vulkan: Drop vk_android_native_buffer.xml 2018-04-10 19:29:49 -07:00
SConscript
git_sha1.h.in
meson.build meson: only build mesa_st tests when build-tests is true 2018-04-24 14:08:15 -07:00