[Mesa-dev] [PATCH 00/10] RadeonSI: Better LLVM IR generation

Marek Olšák maraeo at gmail.com
Sat Oct 10 18:29:40 PDT 2015


Hi,

This patch series improves IR generation for radeonsi. Most of it removes uses of AMDGPU intrinsics.

There is one piglit regression caused by aggressive handling of "undef" in LLVM, breaking piglit/glsl-routing. I have a lit test which I'll send later.

Complete stats from shader-db are below. Decreasing scratch usage is certainly nice, but there is not much else.

7063 shaders
Totals:
SGPRS: 345216 -> 344944 (-0.08 %)
VGPRS: 197684 -> 197024 (-0.33 %)
Code Size: 7390408 -> 7325624 (-0.88 %) bytes
LDS: 91 -> 91 (0.00 %) blocks
Scratch: 1842176 -> 1510400 (-18.01 %) bytes per wave

Totals from affected shaders:
SGPRS: 229736 -> 229464 (-0.12 %)
VGPRS: 130668 -> 130008 (-0.51 %)
Code Size: 5554088 -> 5489304 (-1.17 %) bytes
LDS: 56 -> 56 (0.00 %) blocks
Scratch: 1764352 -> 1432576 (-18.80 %) bytes per wave

Increases:
SGPRS: 485 (0.07 %)
VGPRS: 508 (0.07 %)
Code Size: 1355 (0.19 %)
LDS: 0 (0.00 %)
Scratch: 65 (0.01 %)

Decreases:
SGPRS: 462 (0.07 %)
VGPRS: 631 (0.09 %)
Code Size: 2226 (0.32 %)
LDS: 0 (0.00 %)
Scratch: 137 (0.02 %)

*** BY PERCENTAGE ***

Max Increase:

SGPRS: 40 -> 104 (160.00 %)  (lines 10083 -> 10083)
VGPRS: 4 -> 8 (100.00 %)  (lines 19667 -> 19667)
Code Size: 388 -> 444 (14.43 %)  (lines 32696 -> 32696) bytes
LDS: 0 -> 0 (0.00 %)  (lines -1 -> -1) blocks
Scratch: 1024 -> 12288 (1100.00 %)  (lines 29684 -> 29684) bytes per wave

Max Decrease:

SGPRS: 80 -> 32 (-60.00 %)  (lines 3125 -> 3125)
VGPRS: 36 -> 16 (-55.56 %)  (lines 18113 -> 18113)
Code Size: 2548 -> 1160 (-54.47 %)  (lines 18617 -> 18617) bytes
LDS: 0 -> 0 (0.00 %)  (lines -1 -> -1) blocks
Scratch: 3072 -> 0 (-100.00 %)  (lines 1522 -> 1522) bytes per wave

*** BY UNIT ***

Max Increase:

SGPRS: 40 -> 104 (160.00 %)  (lines 10083 -> 10083)
VGPRS: 76 -> 92 (21.05 %)  (lines 528 -> 528)
Code Size: 3064 -> 3336 (8.88 %)  (lines 29684 -> 29684) bytes
LDS: 0 -> 0 (0.00 %)  (lines -1 -> -1) blocks
Scratch: 1024 -> 12288 (1100.00 %)  (lines 29684 -> 29684) bytes per wave

Max Decrease:

SGPRS: 80 -> 32 (-60.00 %)  (lines 3125 -> 3125)
VGPRS: 156 -> 124 (-20.51 %)  (lines 29866 -> 29866)
Code Size: 2940 -> 1408 (-52.11 %)  (lines 17413 -> 17413) bytes
LDS: 0 -> 0 (0.00 %)  (lines -1 -> -1) blocks
Scratch: 14336 -> 0 (-100.00 %)  (lines 30496 -> 30496) bytes per wave

Marek


More information about the mesa-dev mailing list