mesa/src
Ian Romanick dfe2258cc1 Revert "nir: add late opt to turn inot/b2f combos back to bcsel"
This reverts commit 7acc865226.

With these optimizations in place, the extra constant folding added in
the next commit extends some live ranges of 0.0 and ±1.0 constants, and
that causes several hundred shaders to have more spills and fills.

I believe this optimization we made basically irrelevant by 7725d60938
"intel/fs: Emit better code for b2f(inot(a)) and b2i(inot(a))".

All Gen7.5+ platforms had similar results. (Ice Lake shown)
total instructions in shared programs: 17225303 -> 17224634 (<.01%)
instructions in affected programs: 879402 -> 878733 (-0.08%)
helped: 679
HURT: 1
helped stats (abs) min: 1 max: 1 x̄: 1.00 x̃: 1
helped stats (rel) min: 0.03% max: 0.93% x̄: 0.24% x̃: 0.05%
HURT stats (abs)   min: 10 max: 10 x̄: 10.00 x̃: 10
HURT stats (rel)   min: 0.45% max: 0.45% x̄: 0.45% x̃: 0.45%
95% mean confidence interval for instructions value: -1.02 -0.95
95% mean confidence interval for instructions %-change: -0.26% -0.22%
Instructions are helped.

total cycles in shared programs: 360842595 -> 360828542 (<.01%)
cycles in affected programs: 110443594 -> 110429541 (-0.01%)
helped: 389
HURT: 265
helped stats (abs) min: 1 max: 7525 x̄: 162.81 x̃: 28
helped stats (rel) min: <.01% max: 18.66% x̄: 1.11% x̃: 0.11%
HURT stats (abs)   min: 1 max: 7614 x̄: 185.96 x̃: 48
HURT stats (rel)   min: <.01% max: 25.08% x̄: 0.95% x̃: 0.10%
95% mean confidence interval for cycles value: -75.65 32.67
95% mean confidence interval for cycles %-change: -0.49% -0.06%
Inconclusive result (value mean confidence interval includes 0).

total spills in shared programs: 12159 -> 12161 (0.02%)
spills in affected programs: 13 -> 15 (15.38%)
helped: 0
HURT: 1

total fills in shared programs: 25207 -> 25208 (<.01%)
fills in affected programs: 25 -> 26 (4.00%)
helped: 0
HURT: 1

Ivy Bridge
total instructions in shared programs: 12082019 -> 12082013 (<.01%)
instructions in affected programs: 1033 -> 1027 (-0.58%)
helped: 6
HURT: 0
helped stats (abs) min: 1 max: 1 x̄: 1.00 x̃: 1
helped stats (rel) min: 0.41% max: 0.83% x̄: 0.61% x̃: 0.59%
95% mean confidence interval for instructions value: -1.00 -1.00
95% mean confidence interval for instructions %-change: -0.78% -0.45%
Instructions are helped.

total cycles in shared programs: 179849270 -> 179849157 (<.01%)
cycles in affected programs: 4735 -> 4622 (-2.39%)
helped: 4
HURT: 0
helped stats (abs) min: 2 max: 74 x̄: 28.25 x̃: 18
helped stats (rel) min: 0.13% max: 6.53% x̄: 2.85% x̃: 2.36%
95% mean confidence interval for cycles value: -82.73 26.23
95% mean confidence interval for cycles %-change: -7.98% 2.28%
Inconclusive result (value mean confidence interval includes 0).

Sandy Bridge
total instructions in shared programs: 10882750 -> 10882748 (<.01%)
instructions in affected programs: 266 -> 264 (-0.75%)
helped: 2
HURT: 0

Iron Lake
total cycles in shared programs: 188609440 -> 188609448 (<.01%)
cycles in affected programs: 4320 -> 4328 (0.19%)
helped: 0
HURT: 2

GM45
total cycles in shared programs: 129016868 -> 129016872 (<.01%)
cycles in affected programs: 2302 -> 2306 (0.17%)
helped: 0
HURT: 1

Reviewed-by: Matt Turner <mattst88@gmail.com>
(cherry picked from commit d2a9ba03e3)
Conflicts resolved by Dylan

Conflicts:
	src/compiler/nir/nir_opt_algebraic.py
2019-05-17 15:30:00 -07:00
..
amd radv: add a workaround for Monster Hunter World and LLVM 7&8 2019-05-17 15:20:14 -07:00
broadcom v3d: Bump the maximum texture size to 4k for V3D 4.x. 2019-04-05 09:07:57 -07:00
compiler Revert "nir: add late opt to turn inot/b2f combos back to bcsel" 2019-05-17 15:30:00 -07:00
egl egl: return correct error code for a case req ver < 3 with forward-compatible 2019-05-08 16:40:18 -07:00
freedreno Revert "nir/opt_peephole_select: Don't peephole_select expensive math instructions" 2019-02-12 09:42:16 -08:00
gallium Revert "softpipe/buffer: load only as many components as the the buffer resource type provides" 2019-05-17 15:24:45 -07:00
gbm meson: Add tests to suites 2018-11-20 09:09:22 -08:00
getopt
glx Revert "glx: Fix synthetic error generation in __glXSendError" 2019-05-08 16:40:19 -07:00
gtest meson: hide warnings from external project gtest 2018-10-31 18:20:25 +00:00
hgl meson: Add Haiku platform support v4 2018-02-16 16:56:34 -06:00
intel anv: Only consider minSampleShading when sampleShadingEnable is set 2019-05-17 15:20:39 -07:00
loader loader/dri3: Use strlen instead of sizeof for creating VRR property atom 2019-02-05 11:41:48 -08:00
mapi Revert "meson: drop GLESv1 .so version back to 1.0.0" 2019-05-08 16:40:18 -07:00
mesa st/mesa: fix 2 crashes in st_tgsi_lower_yuv 2019-05-13 11:27:40 -07:00
util radeonsi: add config entry for Counter-Strike Global Offensive 2019-05-08 16:40:19 -07:00
vulkan vulkan/wsi/wayland: Respect non-blocking AcquireNextImage 2019-05-08 16:40:18 -07:00
Makefile.am freedreno: move drm to common location 2018-11-27 15:44:02 -05:00
meson.build TODO: glx: meson: build dri based glx tests, only with -Dglx=dri 2018-12-12 17:47:36 +00:00
SConscript scons: Remove gles option. 2018-10-19 16:50:26 +01:00