nv50/ir: improve LoadPropagation with a static constant table

Normally one way to get rid of constants load is to extract all constants
and have a buffer attached to the shader as another compilation result. One
big disadvantage with that is, that it would also require reuploading a
different constant table each time a different shader gets bound.

This drawback can be mostly mitigated by having a single static table with
the most used constants, which can't be optimized in any other way. This
table get uploaded once at screen creation time and won't be touched ever
again.

Because this table is put into the driver constbuf we don't even use more
memory as the full buffer is already allocated anyway.

From experiments using a per shader constant table would give around 25%
better results, but this can be added later on still.

The biggest concern with a per shader table is, that CPU bound workloads
would be the most affected, especially games like Civilization IV and V
doing a lot of different draws with a lot of different shaders.

total instructions in shared programs : 10240501 -> 10188599 (-0.51%)
total gprs used in shared programs    : 1125555 -> 1119673 (-0.52%)
total shared used in shared programs  : 702868 -> 702868 (0.00%)
total local used in shared programs   : 36424 -> 36420 (-0.01%)

                 local      shared         gpr        inst       bytes
    helped           1           0        4704       20948       20948
      hurt           0           0          69         214         214
Status Job ID Name Coverage
  Container
manual #2596458
aarch64 manual
arm_build
manual #2596459
aarch64 manual
arm_test
manual #2596461
windows shell 1809 mesa manual
windows_build_vs2019
manual #2596454
manual
x86_build
manual #2596457
manual
x86_build_old
manual #2596455
manual
x86_test-gl
manual #2596456
manual
x86_test-vk
 
  Meson X86 64
created #2596470
meson-clang
created #2596468
meson-classic
created #2596472
meson-clover
created #2596473
meson-clover-old-llvm
created #2596466
meson-gallium
created #2596465
meson-testing
created #2596475
meson-vulkan
 
  Scons
created #2596477
allowed to fail
scons-win64
 
  Meson Misc
created #2596480
aarch64
meson-arm64
created #2596482
aarch64
meson-arm64-build-test
created #2596478
aarch64
meson-armhf
created #2596491
meson-i386
created #2596499
meson-mingw32-x86_64
created #2596497
kvm
meson-ppc64el
created #2596494
kvm
meson-s390x
created #2596485
windows docker 1809 mesa
meson-windows-vs2019