radv: run the EarlyCSEMemSSA LLVM pass
authorSamuel Pitoiset <samuel.pitoiset@gmail.com>
Thu, 24 May 2018 20:55:54 +0000 (22:55 +0200)
committerSamuel Pitoiset <samuel.pitoiset@gmail.com>
Fri, 25 May 2018 12:24:14 +0000 (14:24 +0200)
commit45eb24fedf5b790237263d79d72cd1e433931b87
tree7c70ad5c22bfafdc6d9dba5070048c0197c14421
parent66e38654c9fef548b9f5a77f0d376aea57b89b50
radv: run the EarlyCSEMemSSA LLVM pass

It's recommended by the instruction combining pass, and
RadeonSI also runs it.

This pass used to segfault with one shader of F12017 in the
past, but it no longer crashes. Maybe the LLVM IR generated
by RADV has changed.

Polaris10:
Totals from affected shaders:
SGPRS: 441352 -> 441648 (0.07 %)
VGPRS: 310888 -> 300784 (-3.25 %)
Spilled SGPRs: 13576 -> 12983 (-4.37 %)
Code Size: 22560328 -> 22420544 (-0.62 %) bytes
Max Waves: 40755 -> 41366 (1.50 %)

Vega10:
Totals from affected shaders:
SGPRS: 442848 -> 442000 (-0.19 %)
VGPRS: 310396 -> 300460 (-3.20 %)
Spilled SGPRs: 13708 -> 12906 (-5.85 %)
Code Size: 22479428 -> 22336216 (-0.64 %) bytes
Max Waves: 45783 -> 46506 (1.58 %)

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
src/amd/vulkan/radv_nir_to_llvm.c