nir: Un-inline nir_builder_alu_instr_finish_and_insert()

This function is big and I don't think it will won't get meaningfully
constant-propagated during inlining without LTO.  Move it to a .c file so
we just have one copy, saving 2.8MB from libnir.a on an amd64 release
build.

      text       data        bss      total filename
before:
  18953406    7768312     687260   27408978 build-release/driver-symlinks/iris_dri.so
   9734366    5542453     481692   15758511 build-release/lib/libvulkan_intel.so
  28687772   13310765    1168952   43167489 (TOTALS)

after:
  15478350    7767864     687260   23933474 build-release/driver-symlinks/iris_dri.so
   6810366    5541685     481692   12833743 build-release/lib/libvulkan_intel.so
  22288716   13309549    1168952   36767217 (TOTALS)

No statistically significant performance difference on iris shader-db, n=8.

Reviewed-by: Matt Turner <mattst88@gmail.com>
Acked-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13889>
This commit is contained in:
Emma Anholt
2021-11-19 16:24:00 -08:00
committed by Marge Bot
parent 3b5b4b5d45
commit d9bfcf5f5b
3 changed files with 98 additions and 61 deletions

View File

@@ -95,6 +95,7 @@ nir_intrinsics_c = custom_target(
files_libnir = files(
'nir.c',
'nir.h',
'nir_builder.c',
'nir_builder.h',
'nir_builtin_builder.c',
'nir_builtin_builder.h',