mesa/src/intel/compiler/elk
Daniel Schürmann f3d8bd18dd nir: introduce discard_is_demote compiler option
This new option indicates that the driver emits the same
code for nir_intrinsic_discard and nir_intrinsic_demote.
Otherwise, it is assumed that discard is implemented as
terminate.

spirv_to_nir uses this option in order to directly emit
nir_demote in case of OpKill.

RADV GFX11:
Totals from 3965 (4.99% of 79439) affected shaders:
MaxWaves: 119418 -> 119424 (+0.01%); split: +0.03%, -0.03%
Instrs: 1608753 -> 1620830 (+0.75%); split: -0.18%, +0.93%
CodeSize: 8759152 -> 8785152 (+0.30%); split: -0.18%, +0.48%
VGPRs: 152292 -> 149232 (-2.01%); split: -2.37%, +0.36%
Latency: 9162314 -> 10033923 (+9.51%); split: -0.46%, +9.97%
InvThroughput: 1491656 -> 1493408 (+0.12%); split: -0.10%, +0.22%
VClause: 21424 -> 21452 (+0.13%); split: -0.31%, +0.44%
SClause: 53598 -> 55871 (+4.24%); split: -2.15%, +6.39%
Copies: 90553 -> 90462 (-0.10%); split: -2.91%, +2.81%
Branches: 16283 -> 16311 (+0.17%)
PreSGPRs: 113993 -> 113254 (-0.65%); split: -1.84%, +1.19%
PreVGPRs: 110951 -> 108914 (-1.84%); split: -2.08%, +0.24%
VALU: 963192 -> 963167 (-0.00%); split: -0.01%, +0.01%
SALU: 87926 -> 90795 (+3.26%); split: -2.92%, +6.18%
VMEM: 25937 -> 25936 (-0.00%)
SMEM: 110012 -> 109799 (-0.19%); split: -0.20%, +0.01%

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27617>
2024-06-17 19:37:15 +00:00
..
tests intel/elk: Remove a bunch of files that don't apply for Gfx8- 2024-02-24 00:24:30 +00:00
elk_asm.h intel/elk: Remove SYNC opcode and SWSB annotations 2024-03-07 15:53:18 +00:00
elk_asm_tool.c intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_cfg.cpp intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_cfg.h intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_clip.h intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_clip_line.c intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_clip_point.c intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_clip_tri.c intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_clip_unfilled.c intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_clip_util.c intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_compile_clip.c intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_compile_ff_gs.c intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_compile_sf.c intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_compiler.c intel/elk: Remove dsign optimization 2024-05-14 01:28:20 +00:00
elk_compiler.h intel: Move slm functions from brw_compiler.h to intel_compute_slm.c/h 2024-05-30 16:46:16 +00:00
elk_dead_control_flow.cpp intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_dead_control_flow.h intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_debug_recompile.c intel/elk: Remove coarse pixel handling 2024-03-07 15:53:18 +00:00
elk_disasm.c treewide: Replace usage of macro DEBUG with MESA_DEBUG when possible 2024-03-22 18:22:34 +00:00
elk_disasm.h intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_disasm_info.c intel/compiler: Remove nir_print_instr hack in disasm_info 2024-02-29 23:08:16 +00:00
elk_disasm_info.h intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_disasm_tool.c intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_eu.c intel/elk: Remove Gfx9+ from EU emission 2024-03-07 15:53:18 +00:00
elk_eu.h intel/elk: Remove remaining Gfx9+ code 2024-03-07 15:53:19 +00:00
elk_eu_compact.c intel/elk: Remove EU compaction logic for Gfx9+ 2024-03-07 15:53:18 +00:00
elk_eu_defines.h intel/elk: Remove FB_WRITE_LOGICAL_SRC_SRC_STENCIL 2024-03-07 15:53:18 +00:00
elk_eu_emit.c intel/elk: Remove uses of intel_device_info_is_9lp() 2024-03-07 15:53:18 +00:00
elk_eu_opcodes.h intel/elk: Remove unused sources from ELK_SHADER_OPCODE_SEND 2024-03-07 15:53:18 +00:00
elk_eu_util.c intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_eu_validate.c intel/elk: Remove uses of intel_device_info_is_9lp() 2024-03-07 15:53:18 +00:00
elk_fs.cpp intel/elk: Remove multi-polygon support 2024-03-07 15:53:19 +00:00
elk_fs.h intel/elk: Remove multi-polygon support 2024-03-07 15:53:19 +00:00
elk_fs_bank_conflicts.cpp intel/elk: Remove Gfx9+ from passes 2024-03-07 15:53:18 +00:00
elk_fs_builder.h intel/elk: Remove remaining Gfx9+ code 2024-03-07 15:53:19 +00:00
elk_fs_cmod_propagation.cpp intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_fs_combine_constants.cpp treewide: Replace usage of macro DEBUG with MESA_DEBUG when possible 2024-03-22 18:22:34 +00:00
elk_fs_copy_propagation.cpp intel/elk: Remove multi-polygon support 2024-03-07 15:53:19 +00:00
elk_fs_cse.cpp intel/elk: Remove ex_desc and ex_mlen from elk_inst 2024-03-07 15:53:18 +00:00
elk_fs_dead_code_eliminate.cpp intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_fs_generator.cpp intel/elk: Remove multi-polygon support 2024-03-07 15:53:19 +00:00
elk_fs_live_variables.cpp intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_fs_live_variables.h intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_fs_lower_pack.cpp intel/elk: Remove Gfx9+ from passes 2024-03-07 15:53:18 +00:00
elk_fs_lower_regioning.cpp intel/elk: Remove Gfx9+ from passes 2024-03-07 15:53:18 +00:00
elk_fs_nir.cpp nir: remove unpack_half_flush_to_zero 2024-05-31 09:46:35 +00:00
elk_fs_reg_allocate.cpp intel/elk: Remove Gfx9+ from passes 2024-03-07 15:53:18 +00:00
elk_fs_register_coalesce.cpp intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_fs_saturate_propagation.cpp intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_fs_sel_peephole.cpp intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_fs_thread_payload.cpp intel/elk: Remove coarse pixel handling 2024-03-07 15:53:18 +00:00
elk_fs_validate.cpp intel/elk: Remove validation code for Gfx9+ 2024-03-07 15:53:18 +00:00
elk_fs_visitor.cpp intel/elk: Remove multi-polygon support 2024-03-07 15:53:19 +00:00
elk_gfx6_gs_visitor.cpp intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_gfx6_gs_visitor.h intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_gram.y intel/elk: Remove Gfx9+ from asm grammar 2024-03-07 15:53:18 +00:00
elk_inst.h intel/elk: Remove remaining Gfx9+ code 2024-03-07 15:53:19 +00:00
elk_interpolation_map.c intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_ir.h intel/elk: Remove unused SEND features 2024-03-07 15:53:18 +00:00
elk_ir_allocator.h intel/elk: Rename C++ namespace 2024-02-24 00:24:31 +00:00
elk_ir_analysis.h intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_ir_fs.h intel/elk: Remove Gfx9+ from Reg related code 2024-03-07 15:53:18 +00:00
elk_ir_performance.cpp intel/elk: Remove Gfx9+ from passes 2024-03-07 15:53:18 +00:00
elk_ir_performance.h intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_ir_vec4.h intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_isa_info.h intel/elk: Create separate header for opcodes 2024-02-24 00:24:31 +00:00
elk_lex.l intel/elk: Remove SYNC opcode and SWSB annotations 2024-03-07 15:53:18 +00:00
elk_lower_logical_sends.cpp intel/elk: Actually retype integer sources of sampler message payload 2024-06-12 18:59:17 +00:00
elk_nir.c intel/elk: Delete stray nir_opt_dce 2024-04-04 23:42:28 +00:00
elk_nir.h intel/elk: Move nir_options to its own c/h file pair 2024-02-24 00:24:32 +00:00
elk_nir_analyze_boolean_resolves.c intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_nir_analyze_ubo_ranges.c intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_nir_attribute_workarounds.c intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_nir_lower_alpha_to_coverage.c intel/elk: Create separate header for opcodes 2024-02-24 00:24:31 +00:00
elk_nir_lower_cs_intrinsics.c intel/elk: Remove Gfx9+ from passes 2024-03-07 15:53:18 +00:00
elk_nir_lower_storage_image.c intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_nir_options.c nir: introduce discard_is_demote compiler option 2024-06-17 19:37:15 +00:00
elk_nir_options.h intel/elk: Move nir_options to its own c/h file pair 2024-02-24 00:24:32 +00:00
elk_nir_private.h intel/elk: Don't include elk_eu_defines.h in elk_nir.h 2024-02-24 00:24:31 +00:00
elk_nir_trig_workarounds.py intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_packed_float.c intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_predicated_break.cpp intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_prim.h intel/elk: Rename header guards 2024-02-24 00:24:31 +00:00
elk_private.h intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_reg.h intel/elk: Remove Gfx9+ from Reg related code 2024-03-07 15:53:18 +00:00
elk_reg_type.c intel/elk: Remove Gfx9+ from Reg related code 2024-03-07 15:53:18 +00:00
elk_reg_type.h intel/elk: Remove Gfx9+ from Reg related code 2024-03-07 15:53:18 +00:00
elk_schedule_instructions.cpp intel/elk: Remove Gfx9+ dataport messages 2024-03-07 15:53:18 +00:00
elk_shader.cpp intel/elk: Remove Gfx9+ from compile/run functions 2024-03-07 15:53:18 +00:00
elk_shader.h intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_simd_selection.cpp intel/elk: Remove Gfx9+ from compile/run functions 2024-03-07 15:53:18 +00:00
elk_test_eu_compact.cpp intel/elk: Remove tests for Gfx9+ 2024-02-24 01:41:31 +00:00
elk_test_eu_validate.cpp intel/elk: Remove uses of intel_device_info_is_9lp() 2024-03-07 15:53:18 +00:00
elk_test_fs_cmod_propagation.cpp intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_test_fs_combine_constants.cpp intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_test_fs_copy_propagation.cpp intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_test_fs_saturate_propagation.cpp intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_test_predicated_break.cpp intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_test_simd_selection.cpp intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_test_vec4_cmod_propagation.cpp intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_test_vec4_copy_propagation.cpp intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_test_vec4_dead_code_eliminate.cpp intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_test_vec4_register_coalesce.cpp intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_test_vf_float_conversions.cpp intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_vec4.cpp intel/elk: Remove multi-polygon support 2024-03-07 15:53:19 +00:00
elk_vec4.h intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_vec4_builder.h intel/elk: Remove remaining Gfx9+ code 2024-03-07 15:53:19 +00:00
elk_vec4_cmod_propagation.cpp intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_vec4_copy_propagation.cpp intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_vec4_cse.cpp intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_vec4_dead_code_eliminate.cpp intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_vec4_generator.cpp intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_vec4_gs_nir.cpp intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_vec4_gs_visitor.cpp intel/elk: Remove BTD and RT opcodes 2024-03-07 15:53:17 +00:00
elk_vec4_gs_visitor.h intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_vec4_live_variables.cpp intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_vec4_live_variables.h intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_vec4_nir.cpp intel/elk: Remove dsign optimization 2024-05-14 01:28:20 +00:00
elk_vec4_reg_allocate.cpp intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_vec4_surface_builder.cpp intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_vec4_surface_builder.h intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_vec4_tcs.cpp intel/elk: Remove use_tcs_multi_patch 2024-03-07 15:53:18 +00:00
elk_vec4_tcs.h intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_vec4_tes.cpp intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_vec4_tes.h intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_vec4_visitor.cpp intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_vec4_vs.h intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_vec4_vs_visitor.cpp intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_vue_map.c intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
meson.build intel/compiler: Remove nir_print_instr hack in disasm_info 2024-02-29 23:08:16 +00:00