mesa/src/intel/compiler
Ian Romanick c506d7e511 intel/fs: Combine constants for integer instructions too
v2: Remove type change for SHR with negation.  This was a leftover from
a previous attempt to deal with SHR and negation.  Now all right-shifts
with unsigned parameters are marked as not being able to have source
modifiers.

v3: Disallow negations on right shifts of unsigned sources by setting
the no_negations flag in add_candidate_immediate.  This eliminates the
need to exclude SHR in can_do_source_mods.

Tiger Lake
total instructions in shared programs: 21102817 -> 21099443 (-0.02%)
instructions in affected programs: 296796 -> 293422 (-1.14%)
helped: 92 / HURT: 356

total cycles in shared programs: 790564691 -> 790393358 (-0.02%)
cycles in affected programs: 36456886 -> 36285553 (-0.47%)
helped: 171 / HURT: 286

total spills in shared programs: 3951 -> 3959 (0.20%)
spills in affected programs: 176 -> 184 (4.55%)
helped: 0 / HURT: 2

total fills in shared programs: 2631 -> 2639 (0.30%)
fills in affected programs: 176 -> 184 (4.55%)
helped: 0 / HURT: 2

LOST:   0
GAINED: 4

Ice Lake
total instructions in shared programs: 19954204 -> 19949122 (-0.03%)
instructions in affected programs: 40301 -> 35219 (-12.61%)
helped: 23 / HURT: 2

total cycles in shared programs: 858377735 -> 858462082 (<.01%)
cycles in affected programs: 75537286 -> 75621633 (0.11%)
helped: 124 / HURT: 319

total spills in shared programs: 6255 -> 6190 (-1.04%)
spills in affected programs: 392 -> 327 (-16.58%)
helped: 1 / HURT: 2

total fills in shared programs: 7813 -> 7382 (-5.52%)
fills in affected programs: 942 -> 511 (-45.75%)
helped: 1 / HURT: 2

LOST:   0
GAINED: 3

Skylake
total instructions in shared programs: 18049362 -> 18044440 (-0.03%)
instructions in affected programs: 48317 -> 43395 (-10.19%)
helped: 26 / HURT: 2

total cycles in shared programs: 844884806 -> 844915655 (<.01%)
cycles in affected programs: 76137133 -> 76167982 (0.04%)
helped: 171 / HURT: 293

total spills in shared programs: 6148 -> 6149 (0.02%)
spills in affected programs: 595 -> 596 (0.17%)
helped: 4 / HURT: 2

total fills in shared programs: 7484 -> 7067 (-5.57%)
fills in affected programs: 1226 -> 809 (-34.01%)
helped: 4 / HURT: 2

LOST:   0
GAINED: 8

Broadwell
total instructions in shared programs: 17826844 -> 17821805 (-0.03%)
instructions in affected programs: 60687 -> 55648 (-8.30%)
helped: 28 / HURT: 8

total cycles in shared programs: 905332682 -> 904369499 (-0.11%)
cycles in affected programs: 76743509 -> 75780326 (-1.26%)
helped: 179 / HURT: 225

total spills in shared programs: 17922 -> 17908 (-0.08%)
spills in affected programs: 2495 -> 2481 (-0.56%)
helped: 6 / HURT: 8

total fills in shared programs: 26290 -> 25397 (-3.40%)
fills in affected programs: 2606 -> 1713 (-34.27%)
helped: 8 / HURT: 6

LOST:   1
GAINED: 1

Haswell
total instructions in shared programs: 16678878 -> 16674444 (-0.03%)
instructions in affected programs: 78458 -> 74024 (-5.65%)
helped: 87 / HURT: 6

total cycles in shared programs: 880189381 -> 880301043 (0.01%)
cycles in affected programs: 29956463 -> 30068125 (0.37%)
helped: 169 / HURT: 163

total spills in shared programs: 14428 -> 14378 (-0.35%)
spills in affected programs: 2384 -> 2334 (-2.10%)
helped: 8 / HURT: 6

total fills in shared programs: 16975 -> 16881 (-0.55%)
fills in affected programs: 1334 -> 1240 (-7.05%)
helped: 10 / HURT: 4

Ivy Bridge
total instructions in shared programs: 15706048 -> 15706035 (<.01%)
instructions in affected programs: 9941 -> 9928 (-0.13%)
helped: 13 / HURT: 0

total cycles in shared programs: 433618834 -> 433624637 (<.01%)
cycles in affected programs: 12926714 -> 12932517 (0.04%)
helped: 52 / HURT: 41

Sandy Bridge
total cycles in shared programs: 741223552 -> 741223443 (<.01%)
cycles in affected programs: 19814 -> 19705 (-0.55%)
helped: 14 / HURT: 0

No changes on Iron Lake or GM45

fossil-db changes:

Tiger Lake
Instructions in all programs: 156858030 -> 156905532 (+0.0%)
Instructions helped: 3915
Instructions hurt: 15411

Cycles in all programs: 7529667771 -> 7532117340 (+0.0%)
Cycles helped: 10260
Cycles hurt: 9990

Spills in all programs: 5610 -> 5457 (-2.7%)
Spills helped: 18

Fills in all programs: 6274 -> 6091 (-2.9%)
Fills helped: 18

Gained: 2
Lost: 16

Ice Lake
Instructions in all programs: 141308082 -> 141303083 (-0.0%)
Instructions helped: 574
Instructions hurt: 172

Cycles in all programs: 9091361325 -> 9094622766 (+0.0%)
Cycles helped: 8764
Cycles hurt: 11702

Spills in all programs: 7531 -> 7385 (-1.9%)
Spills helped: 19

Fills in all programs: 8462 -> 8294 (-2.0%)
Fills helped: 19

Gained: 22
Lost: 15

Skylake
Instructions in all programs: 131872162 -> 131867263 (-0.0%)
Instructions helped: 566
Instructions hurt: 172

Cycles in all programs: 8795095440 -> 8799676943 (+0.1%)
Cycles helped: 8333
Cycles hurt: 12182

Spills in all programs: 7006 -> 6884 (-1.7%)
Spills helped: 13

Fills in all programs: 7696 -> 7552 (-1.9%)
Fills helped: 13

Gained: 24
Lost: 1

Tested-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7698>
2023-08-29 19:01:36 +00:00
..
brw_cfg.cpp
brw_cfg.h
brw_clip.h
brw_clip_line.c intel/compiler,intel/blorp,intel/vulkan: decouple vulkan driver and compiler from gallium 2023-08-03 22:00:15 +00:00
brw_clip_point.c intel/compiler,intel/blorp,intel/vulkan: decouple vulkan driver and compiler from gallium 2023-08-03 22:00:15 +00:00
brw_clip_tri.c intel/compiler,intel/blorp,intel/vulkan: decouple vulkan driver and compiler from gallium 2023-08-03 22:00:15 +00:00
brw_clip_unfilled.c intel/compiler,intel/blorp,intel/vulkan: decouple vulkan driver and compiler from gallium 2023-08-03 22:00:15 +00:00
brw_clip_util.c intel/compiler,intel/blorp,intel/vulkan: decouple vulkan driver and compiler from gallium 2023-08-03 22:00:15 +00:00
brw_compile_clip.c compiler: Rename shader_prim to mesa_prim and replace all usage of pipe_prim_type with mesa_prim 2023-06-03 03:29:03 +00:00
brw_compile_ff_gs.c
brw_compile_sf.c
brw_compiler.c nir: unify lower_find_msb with has_{find_msb_rev,uclz} 2023-08-22 12:08:37 +00:00
brw_compiler.h anv/hasvk: track robustness per pipeline stage 2023-08-09 09:00:12 +03:00
brw_dead_control_flow.cpp
brw_dead_control_flow.h
brw_debug_recompile.c intel/compiler: Delete sampler key handling for planar format stuff 2022-12-09 10:18:25 +00:00
brw_disasm.c intel/fs: enable extended bindless surface offset 2023-05-30 06:36:37 +00:00
brw_disasm_info.c
brw_disasm_info.h
brw_eu.c intel/compiler: export brw_num_sources_from_inst 2022-12-10 03:59:19 +00:00
brw_eu.h intel/fs: enable extended bindless surface offset 2023-05-30 06:36:37 +00:00
brw_eu_compact.c intel/compiler: don't allocate compaction arrays on the stack 2022-10-28 07:10:58 +00:00
brw_eu_defines.h intel/fs: add support for sparse accesses 2023-07-27 02:02:30 +03:00
brw_eu_emit.c intel/fs: enable extended bindless surface offset 2023-05-30 06:36:37 +00:00
brw_eu_util.c
brw_eu_validate.c intel/eu/validate: Add some validation of ADD3 2023-06-06 06:10:53 +00:00
brw_fs.cpp intel/fs: Dump IR for pre-RA scheduler modes in DEBUG_OPTIMIZER 2023-08-23 21:34:38 +00:00
brw_fs.h intel/compiler: Respect NIR_DEBUG_PRINT_INTERNAL for DEBUG_OPTIMIZER 2023-08-17 18:19:53 +00:00
brw_fs_bank_conflicts.cpp
brw_fs_builder.h intel/compiler: Remove unused functions and declarations 2023-06-09 20:09:51 +00:00
brw_fs_cmod_propagation.cpp intel/fs: avoid cmod optimization on instruction with different write_mask 2023-01-24 07:35:42 +00:00
brw_fs_combine_constants.cpp intel/fs: Combine constants for integer instructions too 2023-08-29 19:01:36 +00:00
brw_fs_copy_propagation.cpp intel/fs: Combine constants for integer instructions too 2023-08-29 19:01:36 +00:00
brw_fs_cse.cpp
brw_fs_dead_code_eliminate.cpp intel/compiler: Eliminate SHADER_OPCODE_UNTYPED_ATOMIC_FLOAT 2023-01-19 08:42:22 +00:00
brw_fs_generator.cpp intel/compiler: use shader source hash in shader dump code 2023-07-20 09:08:08 +00:00
brw_fs_live_variables.cpp intel/fs: Simplify compute_start_end(). 2023-08-22 23:34:30 +00:00
brw_fs_live_variables.h
brw_fs_lower_pack.cpp intel/fs: Move packHalf2x16 handling to lower_pack() 2023-03-09 23:26:17 +00:00
brw_fs_lower_regioning.cpp intel/compiler/gfx12.5+: Lower 64-bit cluster_broadcast with 32-bit ops 2023-04-20 11:41:10 -07:00
brw_fs_nir.cpp intel/brw: use 4 instead of MAX_VERTEX_STREAMS to avoid #include "mesa/main/config.h" 2023-08-24 02:54:08 +00:00
brw_fs_reg_allocate.cpp intel/fs: Add a parameter to speed up register spilling 2023-07-28 14:51:42 +00:00
brw_fs_register_coalesce.cpp intel/fs: Fix register coalesce in presence of force_writemask_all copy source writes. 2023-03-17 03:05:24 -07:00
brw_fs_saturate_propagation.cpp brw: fix saturate propagation region overlap range 2022-12-09 00:39:05 +00:00
brw_fs_scoreboard.cpp Revert "intel/fs: Fix inferred_sync_pipe for F16TO32 opcodes" 2023-03-09 23:26:17 +00:00
brw_fs_sel_peephole.cpp
brw_fs_thread_payload.cpp intel/fs: make tcs input_vertices dynamic 2023-05-24 18:32:07 +00:00
brw_fs_validate.cpp intel/compiler: add more validation for acc register usage 2023-06-21 08:15:59 +00:00
brw_fs_visitor.cpp intel/fs: add support for sparse accesses 2023-07-27 02:02:30 +03:00
brw_gfx_ver_enum.h
brw_inst.h intel/fs: enable extended bindless surface offset 2023-05-30 06:36:37 +00:00
brw_interpolation_map.c
brw_ir.h intel/fs: add support for sparse accesses 2023-07-27 02:02:30 +03:00
brw_ir_allocator.h intel/compiler,intel/blorp,intel/vulkan: decouple vulkan driver and compiler from gallium 2023-08-03 22:00:15 +00:00
brw_ir_analysis.h
brw_ir_fs.h intel/fs: add support for sparse accesses 2023-07-27 02:02:30 +03:00
brw_ir_performance.cpp intel/compiler: Use SHADER_OPCODE_SEND for PI messages 2023-02-06 09:12:17 +00:00
brw_ir_performance.h
brw_ir_vec4.h
brw_isa_info.h
brw_kernel.c nir: Drop nir_dest 2023-08-14 21:22:53 +00:00
brw_kernel.h
brw_lower_logical_sends.cpp intel/fs: track more steps with INTEL_DEBUG=optimizer 2023-08-10 06:39:57 +00:00
brw_mesh.cpp treewide: Also handle struct nir_builder form 2023-08-24 15:48:02 +00:00
brw_nir.c treewide: Also handle struct nir_builder form 2023-08-24 15:48:02 +00:00
brw_nir.h nir: Drop "SSA" from NIR language 2023-08-12 16:44:41 -04:00
brw_nir_analyze_boolean_resolves.c intel: Collapse is_ssa checks 2023-08-03 22:40:29 +00:00
brw_nir_analyze_ubo_ranges.c nir: Drop nir_dest 2023-08-14 21:22:53 +00:00
brw_nir_attribute_workarounds.c nir: Drop nir_dest 2023-08-14 21:22:53 +00:00
brw_nir_blockify_uniform_loads.c nir: s/live_ssa_def/live_def/ 2023-08-15 17:44:27 +00:00
brw_nir_clamp_image_1d_2d_array_sizes.c nir: Drop nir_dest 2023-08-14 21:22:53 +00:00
brw_nir_clamp_per_vertex_loads.c treewide: Use nir_shader_intrinsic_pass sometimes 2023-08-24 15:48:02 +00:00
brw_nir_lower_alpha_to_coverage.c nir: Drop most uses if nir_instr_rewrite_src() 2023-08-18 01:00:15 +00:00
brw_nir_lower_conversions.c nir: Drop nir_alu_dest 2023-08-14 21:22:53 +00:00
brw_nir_lower_cs_intrinsics.c nir: Drop nir_dest 2023-08-14 21:22:53 +00:00
brw_nir_lower_intersection_shader.c nir: Drop nir_dest 2023-08-14 21:22:53 +00:00
brw_nir_lower_non_uniform_resource_intel.c treewide: Use nir_shader_intrinsic_pass sometimes 2023-08-24 15:48:02 +00:00
brw_nir_lower_ray_queries.c nir: Drop nir_dest 2023-08-14 21:22:53 +00:00
brw_nir_lower_rt_intrinsics.c nir: Drop nir_dest 2023-08-14 21:22:53 +00:00
brw_nir_lower_shader_calls.c treewide: Also handle struct nir_builder form 2023-08-24 15:48:02 +00:00
brw_nir_lower_shading_rate_output.c treewide: Use nir_shader_intrinsic_pass sometimes 2023-08-24 15:48:02 +00:00
brw_nir_lower_sparse.c nir: Drop nir_dest 2023-08-14 21:22:53 +00:00
brw_nir_lower_storage_image.c nir: Drop most uses if nir_instr_rewrite_src() 2023-08-18 01:00:15 +00:00
brw_nir_opt_peephole_ffma.c nir: Drop nir_alu_dest 2023-08-14 21:22:53 +00:00
brw_nir_opt_peephole_imul32x16.c nir: Drop nir_alu_dest 2023-08-14 21:22:53 +00:00
brw_nir_rt.c nir: Drop most uses if nir_instr_rewrite_src() 2023-08-18 01:00:15 +00:00
brw_nir_rt.h
brw_nir_rt_builder.h nir: Drop "SSA" from NIR language 2023-08-12 16:44:41 -04:00
brw_nir_tcs_workarounds.c nir: Drop "SSA" from NIR language 2023-08-12 16:44:41 -04:00
brw_nir_trig_workarounds.py
brw_packed_float.c
brw_predicated_break.cpp
brw_prim.h
brw_private.h intel/compiler: Respect NIR_DEBUG_PRINT_INTERNAL flag 2023-06-21 00:01:10 +00:00
brw_reg.h intel/compiler,intel/blorp,intel/vulkan: decouple vulkan driver and compiler from gallium 2023-08-03 22:00:15 +00:00
brw_reg_type.c
brw_reg_type.h
brw_rt.h intel/rt: Fix L3 bank performance bottlenecks due to SW stack stride alignment. 2023-02-26 11:48:33 -08:00
brw_schedule_instructions.cpp intel/compiler: Move SCHEDULE_NONE handling into schedule_instructions() 2023-08-23 21:34:38 +00:00
brw_shader.cpp anv/hasvk: track robustness per pipeline stage 2023-08-09 09:00:12 +03:00
brw_shader.h intel/compiler: rework input parameters 2023-07-20 09:08:08 +00:00
brw_simd_selection.cpp intel/compiler: fine-grained control of dispatch widths 2023-01-27 11:00:41 +00:00
brw_vec4.cpp anv/hasvk: track robustness per pipeline stage 2023-08-09 09:00:12 +03:00
brw_vec4.h intel/vec4: Stop passing around nir_dest 2023-08-14 21:22:53 +00:00
brw_vec4_builder.h
brw_vec4_cmod_propagation.cpp intel: fixes -Werror,-Wunused-but-set-variable for clang-15 2022-11-17 23:17:40 +00:00
brw_vec4_copy_propagation.cpp
brw_vec4_cse.cpp
brw_vec4_dead_code_eliminate.cpp
brw_vec4_generator.cpp intel/compiler: use shader source hash in shader dump code 2023-07-20 09:08:08 +00:00
brw_vec4_gs_nir.cpp nir: Drop nir_dest 2023-08-14 21:22:53 +00:00
brw_vec4_gs_visitor.cpp intel/brw: use 4 instead of MAX_VERTEX_STREAMS to avoid #include "mesa/main/config.h" 2023-08-24 02:54:08 +00:00
brw_vec4_gs_visitor.h intel/compiler: rework input parameters 2023-07-20 09:08:08 +00:00
brw_vec4_live_variables.cpp
brw_vec4_live_variables.h
brw_vec4_nir.cpp nir: Rename nir_instr_type_ssa_undef to nir_instr_type_undef 2023-08-15 17:44:27 +00:00
brw_vec4_reg_allocate.cpp
brw_vec4_surface_builder.cpp
brw_vec4_surface_builder.h
brw_vec4_tcs.cpp nir: Drop nir_dest 2023-08-14 21:22:53 +00:00
brw_vec4_tcs.h intel/compiler: rework input parameters 2023-07-20 09:08:08 +00:00
brw_vec4_tes.cpp nir: Drop nir_dest 2023-08-14 21:22:53 +00:00
brw_vec4_tes.h intel/compiler: rework input parameters 2023-07-20 09:08:08 +00:00
brw_vec4_visitor.cpp intel/brw: Define and use BRW_SWIZZLE_* instead of SWIZZLE_* 2023-08-03 22:00:15 +00:00
brw_vec4_vs.h intel/compiler: rework input parameters 2023-07-20 09:08:08 +00:00
brw_vec4_vs_visitor.cpp intel/compiler: rework input parameters 2023-07-20 09:08:08 +00:00
brw_vue_map.c
gfx6_gs_visitor.cpp
gfx6_gs_visitor.h intel/compiler: rework input parameters 2023-07-20 09:08:08 +00:00
intel_clc.c clc: rework optional subgroup feature 2023-07-07 12:27:35 +00:00
meson.build intel/compiler,intel/blorp,intel/vulkan: decouple vulkan driver and compiler from gallium 2023-08-03 22:00:15 +00:00
test_eu_compact.cpp
test_eu_validate.cpp intel/eu/validate: Add some validation of ADD3 2023-06-06 06:10:53 +00:00
test_fs_cmod_propagation.cpp intel/compiler,intel/blorp,intel/vulkan: decouple vulkan driver and compiler from gallium 2023-08-03 22:00:15 +00:00
test_fs_copy_propagation.cpp intel/compiler,intel/blorp,intel/vulkan: decouple vulkan driver and compiler from gallium 2023-08-03 22:00:15 +00:00
test_fs_saturate_propagation.cpp intel/compiler,intel/blorp,intel/vulkan: decouple vulkan driver and compiler from gallium 2023-08-03 22:00:15 +00:00
test_fs_scoreboard.cpp intel/compiler,intel/blorp,intel/vulkan: decouple vulkan driver and compiler from gallium 2023-08-03 22:00:15 +00:00
test_simd_selection.cpp intel/compiler: fine-grained control of dispatch widths 2023-01-27 11:00:41 +00:00
test_vec4_cmod_propagation.cpp intel/compiler,intel/blorp,intel/vulkan: decouple vulkan driver and compiler from gallium 2023-08-03 22:00:15 +00:00
test_vec4_copy_propagation.cpp intel/compiler,intel/blorp,intel/vulkan: decouple vulkan driver and compiler from gallium 2023-08-03 22:00:15 +00:00
test_vec4_dead_code_eliminate.cpp intel/compiler,intel/blorp,intel/vulkan: decouple vulkan driver and compiler from gallium 2023-08-03 22:00:15 +00:00
test_vec4_register_coalesce.cpp intel/compiler,intel/blorp,intel/vulkan: decouple vulkan driver and compiler from gallium 2023-08-03 22:00:15 +00:00
test_vf_float_conversions.cpp