mesa/src
Jason Ekstrand 800df942ea nir/lower_vec_to_movs: Only coalesce if the vec had a SSA destination
Otherwise we may end up trying to coalesce in a case such as

ssa_1 = fadd r1, r2
r3.x = fneg(r2);
r3 = vec4(ssa_1, ssa_1.y, ...)

and that would cause us to move the writes to r3 from the vec to the
fadd which would re-order them with respect to the write from the fneg.
In order to solve this, we just don't coalesce if the destination of the
vec is not SSA.  We could try to get clever and still coalesce if there
are no writes to the destination of the vec between the vec and the ALU
source.  However, since registers only come from phi webs and indirects,
the chances of having a vec with a register destination that is actually
coalescable into its source is very slim.

Shader-db results on Haswell:

    total instructions in shared programs: 13657906 -> 13659101 (<.01%)
    instructions in affected programs: 149291 -> 150486 (0.80%)
    helped: 0
    HURT: 592

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=105440
Fixes: 2458ea95c5 "nir/lower_vec_to_movs: Coalesce movs on-the-fly when possible"
Reported-by: Vadym Shovkoplias <vadym.shovkoplias@globallogic.com>
Tested-by: Vadym Shovkoplias <vadym.shovkoplias@globallogic.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
2018-04-03 22:21:23 -07:00
..
amd radv: enable VK_EXT_shader_viewport_index_layer 2018-04-03 14:05:46 +02:00
broadcom util: Move util_is_power_of_two to bitscan.h and rename to util_is_power_of_two_or_zero 2018-03-29 14:09:23 -07:00
compiler nir/lower_vec_to_movs: Only coalesce if the vec had a SSA destination 2018-04-03 22:21:23 -07:00
egl x11: Only report supported DRI3/Present versions 2018-03-30 16:53:51 +01:00
gallium radeonsi/gfx9: fix bad LLVM params in monolithic LS+HS 2018-04-03 11:07:28 -04:00
gbm gbm: remove never-implemented function 2018-03-28 16:25:52 +01:00
getopt
glx x11: Only report supported DRI3/Present versions 2018-03-30 16:53:51 +01: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 anv: Fix close(fd) before import issue in vkCreateDmaBufImageINTEL 2018-04-03 18:33:17 -07:00
loader dri3: Don't fail on version mismatch 2018-03-20 08:52:59 +00:00
mapi glapi: define GL_API to be KEYWORD1 in glapi_dispatch.c (v2) 2018-03-30 14:33:33 -06:00
mesa st/mesa: Also use PIPE_FORMAT_R8G8B8A8_SRGB for framebuffer_sRGB. 2018-04-03 17:48:52 +01:00
util util: Include bitscan.h directly 2018-03-29 14:09:30 -07:00
vulkan vulkan/wsi/wayland: fix leaks 2018-04-03 22:09:57 +01:00
git_sha1.h.in meson: Build i965 and dri stack 2017-10-09 13:42:44 -07:00
Makefile.am autotools: include meson build files in tarball 2018-01-19 16:30:51 -08:00
meson.build meson: fix building without GL 2018-02-26 09:32:14 -08:00
SConscript buildsys: move file regeneration logic to the script itself 2017-10-27 13:38:37 +01:00