mesa/src/intel/compiler
Jason Ekstrand e6f0def97d intel/eu: Don't double-loop as often in brw_set_uip_jip
brw_find_next_block_end() scans through the instructions to find the end
of the block.  We were calling it for every instruction in the program
which is, if you have a single basic block, makes the whole mess a nice
clean O(n^2) when it really doesn't need to be.  Instead, only call
brw_find_next_block_end() as-needed.  This brings it back to O(n) like
it should have been.

This cuts the runtime of the following Vulkan CTS on my SKL box by 5%
from 1:51 to 1:45:  dEQP-VK.ssbo.phys.layout.random.16bit.scalar.13

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13734>
2021-12-18 01:46:19 +00:00
..
brw_cfg.cpp intel/compiler: Add the ability to defer IP updates in backend_instruction::remove 2021-07-14 09:56:46 -07:00
brw_cfg.h intel/compiler: Add cfg_t::adjust_block_ips() method 2021-07-14 09:56:59 -07:00
brw_clip.h
brw_clip_line.c intel: Rename gen_device prefix to intel_device 2021-04-20 20:06:33 +00:00
brw_clip_point.c
brw_clip_tri.c intel: Rename gen_device prefix to intel_device 2021-04-20 20:06:33 +00:00
brw_clip_unfilled.c
brw_clip_util.c intel: move away from booleans to identify platforms 2021-11-08 16:48:06 +00:00
brw_compile_clip.c intel: fix INTEL_DEBUG environment variable on 32-bit systems 2021-10-15 19:55:14 +00:00
brw_compile_ff_gs.c intel: fix INTEL_DEBUG environment variable on 32-bit systems 2021-10-15 19:55:14 +00:00
brw_compile_sf.c intel: fix INTEL_DEBUG environment variable on 32-bit systems 2021-10-15 19:55:14 +00:00
brw_compiler.c intel/compiler: Don't store "scalar stage" bits on Gfx8 or Gfx9 2021-12-08 14:59:32 -08:00
brw_compiler.h intel/compiler: Use a struct for brw_compile_bs parameters 2021-12-13 01:08:16 +00:00
brw_dead_control_flow.cpp intel/compiler: Pass detailed dependency classes to invalidate_analysis() 2020-03-06 10:20:39 -08:00
brw_dead_control_flow.h
brw_debug_recompile.c intel/fs: Drop high_quality_derivatives 2021-12-10 21:20:47 +00:00
brw_disasm.c intel/compiler: Prepare disasm for 16-bit sampler params 2021-11-22 21:27:30 -08:00
brw_disasm_info.c intel: fix INTEL_DEBUG environment variable on 32-bit systems 2021-10-15 19:55:14 +00:00
brw_disasm_info.h intel: Rename gen_device prefix to intel_device 2021-04-20 20:06:33 +00:00
brw_eu.cpp intel: fix INTEL_DEBUG environment variable on 32-bit systems 2021-10-15 19:55:14 +00:00
brw_eu.h intel/fs,vec4: Drop support for shader time 2021-12-10 21:20:47 +00:00
brw_eu_compact.c intel: move away from booleans to identify platforms 2021-11-08 16:48:06 +00:00
brw_eu_defines.h intel/fs,vec4: Drop support for shader time 2021-12-10 21:20:47 +00:00
brw_eu_emit.c intel/eu: Don't double-loop as often in brw_set_uip_jip 2021-12-18 01:46:19 +00:00
brw_eu_util.c intel: Rename genx keyword to gfxx in source files 2021-04-02 18:33:07 +00:00
brw_eu_validate.c intel: move away from booleans to identify platforms 2021-11-08 16:48:06 +00:00
brw_fs.cpp intel/fs: Use OPT() for split_virtual_grfs 2021-12-18 01:46:19 +00:00
brw_fs.h intel/fs: Use OPT() for split_virtual_grfs 2021-12-18 01:46:19 +00:00
brw_fs_bank_conflicts.cpp intel: Fix alignment and line wrapping due to gen_device renaming 2021-04-20 20:06:33 +00:00
brw_fs_builder.h intel/compiler: Fix instruction size written calculation 2021-11-22 21:27:30 -08:00
brw_fs_cmod_propagation.cpp intel/fs: Fix a cmod prop bug when cmod is set to inst that doesn't support it 2021-11-01 21:08:12 +00:00
brw_fs_combine_constants.cpp intel/compiler: Fix missing break in switch 2021-07-22 23:38:04 +00:00
brw_fs_copy_propagation.cpp intel/compiler: Add new variant for TXF_CMS_W 2021-11-22 21:27:30 -08:00
brw_fs_cse.cpp intel/fs: sel.cond writes the flags on Gfx4 and Gfx5 2021-08-11 13:09:20 -07:00
brw_fs_dead_code_eliminate.cpp intel/fs: sel.cond writes the flags on Gfx4 and Gfx5 2021-08-11 13:09:20 -07:00
brw_fs_generator.cpp intel/fs: Use HF as destination type for F32TOF16 in fquantize2f16 2021-12-15 20:03:51 +00:00
brw_fs_live_variables.cpp intel/fs: sel.cond writes the flags on Gfx4 and Gfx5 2021-08-11 13:09:20 -07:00
brw_fs_live_variables.h intel: Rename gen_device prefix to intel_device 2021-04-20 20:06:33 +00:00
brw_fs_lower_pack.cpp intel/compiler: Pass detailed dependency classes to invalidate_analysis() 2020-03-06 10:20:39 -08:00
brw_fs_lower_regioning.cpp intel: move away from booleans to identify platforms 2021-11-08 16:48:06 +00:00
brw_fs_nir.cpp intel/fs: Implement the sample_pos_or_center system value 2021-12-17 16:02:16 +00:00
brw_fs_reg_allocate.cpp intel/fs: Implement spilling on XeHP 2021-06-25 00:18:29 +00:00
brw_fs_register_coalesce.cpp intel/compiler: Update block IPs once in register_coalesce 2021-07-14 09:57:04 -07:00
brw_fs_saturate_propagation.cpp intel/compiler/fs: Switch liveness analysis to IR analysis framework 2020-03-06 10:20:57 -08:00
brw_fs_scoreboard.cpp intel/fs/xehp: Teach SWSB pass about the exec pipeline of FS_OPCODE_PACK_HALF_2x16_SPLIT. 2021-12-08 02:47:11 +00:00
brw_fs_sel_peephole.cpp intel/fs: sel.cond writes the flags on Gfx4 and Gfx5 2021-08-11 13:09:20 -07:00
brw_fs_validate.cpp
brw_fs_visitor.cpp intel/fs,vec4: Drop support for shader time 2021-12-10 21:20:47 +00:00
brw_gfx_ver_enum.h intel: Rename gen enum to gfx_ver 2021-04-20 20:06:34 +00:00
brw_inst.h intel: move away from booleans to identify platforms 2021-11-08 16:48:06 +00:00
brw_interpolation_map.c intel: Rename genx keyword to gfxx in source files 2021-04-02 18:33:07 +00:00
brw_ir.h intel/compiler: Add the ability to defer IP updates in backend_instruction::remove 2021-07-14 09:56:46 -07:00
brw_ir_allocator.h
brw_ir_analysis.h intel/compiler: use C++ template instead of preprocessor 2020-11-03 10:42:29 +00:00
brw_ir_fs.h intel: move away from booleans to identify platforms 2021-11-08 16:48:06 +00:00
brw_ir_performance.cpp intel/compiler: Use uppercase enum values in brw_ir_performance.cpp 2021-12-16 09:00:57 +00:00
brw_ir_performance.h intel/ir: Import shader performance analysis pass. 2020-04-28 23:01:03 -07:00
brw_ir_vec4.h intel/vec4: sel.cond writes the flags on Gfx4 and Gfx5 2021-08-11 13:09:32 -07:00
brw_mesh.cpp intel/fs,vec4: Drop support for shader time 2021-12-10 21:20:47 +00:00
brw_nir.c intel/compiler: Use nir_lower_tex_options::lower_offset_filter for tg4 on XeHP 2021-12-13 16:59:37 -08:00
brw_nir.h intel/compiler: extract brw_nir_load_global_const out of rt code 2021-12-04 00:41:46 +00:00
brw_nir_analyze_boolean_resolves.c
brw_nir_analyze_ubo_ranges.c intel/nir,i965: Move HW generation check for UBO pushing to i965 2021-06-03 05:12:33 +00:00
brw_nir_attribute_workarounds.c intel/compiler: use nir_shader_instructions_pass in brw_nir_apply_attribute_workarounds 2021-08-11 11:23:30 +00:00
brw_nir_clamp_image_1d_2d_array_sizes.c intel/compiler: use nir_shader_instructions_pass in brw_nir_clamp_image_1d_2d_array_sizes 2021-10-05 10:02:54 +00:00
brw_nir_lower_alpha_to_coverage.c intel/nir: Clean up lower_alpha_to_coverage a bit 2020-08-29 16:41:05 +00:00
brw_nir_lower_conversions.c intel/compiler: use nir_shader_instructions_pass in brw_nir_lower_conversions 2021-10-05 10:02:54 +00:00
brw_nir_lower_cs_intrinsics.c intel/compiler: Lower Task/Mesh local_invocation_{id,index} 2021-12-04 00:41:46 +00:00
brw_nir_lower_intersection_shader.c intel: Rename gen_device prefix to intel_device 2021-04-20 20:06:33 +00:00
brw_nir_lower_mem_access_bit_sizes.c intel/nir: preserve access value when duping intrinsic 2021-12-04 20:46:35 +00:00
brw_nir_lower_rt_intrinsics.c intel/compiler: extract brw_nir_load_global_const out of rt code 2021-12-04 00:41:46 +00:00
brw_nir_lower_scoped_barriers.c intel/compiler: use nir_shader_instructions_pass in brw_nir_lower_scoped_barriers 2021-10-05 10:02:54 +00:00
brw_nir_lower_shader_calls.c intel/compiler: drop glsl options from brw_compiler 2021-12-07 08:52:36 +00:00
brw_nir_lower_storage_image.c intel/nir: also allow unknown format for getting the size of a storage image 2021-11-17 21:06:23 +00:00
brw_nir_opt_peephole_ffma.c intel/compiler: use nir_shader_instructions_pass in brw_nir_opt_peephole_ffma 2021-10-05 10:02:54 +00:00
brw_nir_rt.c intel/compiler: drop glsl options from brw_compiler 2021-12-07 08:52:36 +00:00
brw_nir_rt.h intel/rt: switch to common pass for shader calls lowering 2021-06-22 21:09:25 +00:00
brw_nir_rt_builder.h nir: drop the btd_resume_intel intrinsic 2021-06-22 21:09:25 +00:00
brw_nir_tcs_workarounds.c intel/compiler: use nir_metadata_none instead of its value 2021-10-05 10:02:54 +00:00
brw_nir_trig_workarounds.py python: drop python2 support 2021-08-14 21:44:32 +00:00
brw_packed_float.c
brw_predicated_break.cpp intel/compiler: Don't predicate a WHILE if there is a CONT 2021-12-08 14:56:32 -08:00
brw_private.h intel/compiler: Use SIMD selection helpers for variable workgroup size 2021-10-26 17:49:09 +00:00
brw_reg.h intel/compiler: Move type_is_unsigned_int to brw_reg_type.h 2021-08-30 14:00:14 -07:00
brw_reg_type.c intel: Rename gen_device prefix to intel_device 2021-04-20 20:06:33 +00:00
brw_reg_type.h intel/compiler: Move type_is_unsigned_int to brw_reg_type.h 2021-08-30 14:00:14 -07:00
brw_rt.h intel: Rename gen_device prefix to intel_device 2021-04-20 20:06:33 +00:00
brw_schedule_instructions.cpp intel: move away from booleans to identify platforms 2021-11-08 16:48:06 +00:00
brw_shader.cpp intel/compiler: Use a struct for brw_compile_tes parameters 2021-12-13 01:08:16 +00:00
brw_shader.h intel/compiler: Implement Mesh Output 2021-12-04 00:41:46 +00:00
brw_simd_selection.c intel/compiler: Don't use SIMD larger than needed for workgroup 2021-10-26 17:49:09 +00:00
brw_vec4.cpp intel/fs,vec4: Drop support for shader time 2021-12-10 21:20:47 +00:00
brw_vec4.h intel/vec4: Inline emit_texture and move helpers to brw_vec4_nir.cpp 2021-12-16 00:09:45 -08:00
brw_vec4_builder.h intel: Rename Genx keyword to Gfxx 2021-04-02 18:33:07 +00:00
brw_vec4_cmod_propagation.cpp intel/vec4: sel.cond writes the flags on Gfx4 and Gfx5 2021-08-11 13:09:32 -07:00
brw_vec4_copy_propagation.cpp intel: Rename gen_device prefix to intel_device 2021-04-20 20:06:33 +00:00
brw_vec4_cse.cpp intel/vec4: sel.cond writes the flags on Gfx4 and Gfx5 2021-08-11 13:09:32 -07:00
brw_vec4_dead_code_eliminate.cpp intel/vec4: sel.cond writes the flags on Gfx4 and Gfx5 2021-08-11 13:09:32 -07:00
brw_vec4_generator.cpp intel/fs,vec4: Drop prog_data binding tables 2021-12-10 21:20:47 +00:00
brw_vec4_gs_nir.cpp nir: Add ability to count emitted GS primitives. 2020-10-09 15:26:14 +02:00
brw_vec4_gs_visitor.cpp intel/compiler: Use a struct for brw_compile_gs parameters 2021-12-13 01:08:16 +00:00
brw_vec4_gs_visitor.h intel/fs,vec4: Drop support for shader time 2021-12-10 21:20:47 +00:00
brw_vec4_live_variables.cpp intel/vec4: sel.cond writes the flags on Gfx4 and Gfx5 2021-08-11 13:09:32 -07:00
brw_vec4_live_variables.h intel/vec4: sel.cond writes the flags on Gfx4 and Gfx5 2021-08-11 13:09:32 -07:00
brw_vec4_nir.cpp intel/vec4: Inline emit_texture and move helpers to brw_vec4_nir.cpp 2021-12-16 00:09:45 -08:00
brw_vec4_reg_allocate.cpp intel/vec4: Use ra_alloc_contig_reg_class() to reduce RA overhead. 2021-06-04 19:08:57 +00:00
brw_vec4_surface_builder.cpp intel: move away from booleans to identify platforms 2021-11-08 16:48:06 +00:00
brw_vec4_surface_builder.h
brw_vec4_tcs.cpp intel/compiler: Use a struct for brw_compile_tcs parameters 2021-12-13 01:08:16 +00:00
brw_vec4_tcs.h intel/fs,vec4: Drop support for shader time 2021-12-10 21:20:47 +00:00
brw_vec4_tes.cpp intel/fs,vec4: Drop support for shader time 2021-12-10 21:20:47 +00:00
brw_vec4_tes.h intel/fs,vec4: Drop support for shader time 2021-12-10 21:20:47 +00:00
brw_vec4_visitor.cpp intel/vec4: Inline emit_texture and move helpers to brw_vec4_nir.cpp 2021-12-16 00:09:45 -08:00
brw_vec4_vs.h intel/fs,vec4: Drop support for shader time 2021-12-10 21:20:47 +00:00
brw_vec4_vs_visitor.cpp intel/fs,vec4: Drop support for shader time 2021-12-10 21:20:47 +00:00
brw_vue_map.c intel: Rename gen_device prefix to intel_device 2021-04-20 20:06:33 +00:00
brw_wm_iz.cpp intel: Rename genx keyword to gfxx in source files 2021-04-02 18:33:07 +00:00
gfx6_gs_visitor.cpp intel/vec4: Don't override emit_urb_write_opcode for SNB GS 2021-08-11 23:57:52 +00:00
gfx6_gs_visitor.h intel/fs,vec4: Drop support for shader time 2021-12-10 21:20:47 +00:00
meson.build intel/compiler: Add backend compiler basics for Task/Mesh 2021-12-04 00:41:46 +00:00
test_eu_compact.cpp intel: move away from booleans to identify platforms 2021-11-08 16:48:06 +00:00
test_eu_validate.cpp intel: move away from booleans to identify platforms 2021-11-08 16:48:06 +00:00
test_fs_cmod_propagation.cpp intel/fs,vec4: Drop support for shader time 2021-12-10 21:20:47 +00:00
test_fs_copy_propagation.cpp intel/fs,vec4: Drop support for shader time 2021-12-10 21:20:47 +00:00
test_fs_saturate_propagation.cpp intel/fs,vec4: Drop support for shader time 2021-12-10 21:20:47 +00:00
test_fs_scoreboard.cpp intel/fs,vec4: Drop support for shader time 2021-12-10 21:20:47 +00:00
test_simd_selection.cpp intel/compiler: Initialize SIMDSelectionTest member error. 2021-11-03 04:22:35 +00:00
test_vec4_cmod_propagation.cpp intel/fs,vec4: Drop support for shader time 2021-12-10 21:20:47 +00:00
test_vec4_copy_propagation.cpp intel/fs,vec4: Drop support for shader time 2021-12-10 21:20:47 +00:00
test_vec4_dead_code_eliminate.cpp intel/fs,vec4: Drop support for shader time 2021-12-10 21:20:47 +00:00
test_vec4_register_coalesce.cpp intel/fs,vec4: Drop support for shader time 2021-12-10 21:20:47 +00:00
test_vf_float_conversions.cpp