mesa/src/intel/compiler
Jason Ekstrand 7ceec21b76 intel/fs: Use a strided MOV instead of a conversion for load_* destinations
In many cases, the compiler can just copy-prop the strided MOV whereas
the conversion is a bit trickier.  This cuts 5% of the instructions off
of one particular Vulkan CTS test which does lots of load_ssbo.

Reviewed-by: Matt Turner <mattst88@gmail.com>
2019-07-17 18:44:35 +00:00
..
brw_cfg.cpp
brw_cfg.h
brw_clip.h
brw_clip_line.c
brw_clip_point.c
brw_clip_tri.c i965: Don't emit MOVs with undefined registers for Gen4 point clipping. 2018-02-28 15:03:51 -08:00
brw_clip_unfilled.c
brw_clip_util.c
brw_compile_clip.c intel/common: move gen_debug to intel/dev 2019-04-10 13:15:33 -07:00
brw_compile_sf.c intel/common: move gen_debug to intel/dev 2019-04-10 13:15:33 -07:00
brw_compiler.c st,i965: Stop looping on 64-bit lowering 2019-07-16 16:05:16 +00:00
brw_compiler.h intel/compiler: Add a "base class" for program keys 2019-07-10 19:35:55 +00:00
brw_dead_control_flow.cpp
brw_dead_control_flow.h
brw_debug_recompile.c intel/compiler: Add a "base class" for program keys 2019-07-10 19:35:55 +00:00
brw_disasm.c intel/disasm: Disassemble immediate value properly for dim 2019-05-07 14:33:48 -07:00
brw_disasm_info.c intel/common: move gen_debug to intel/dev 2019-04-10 13:15:33 -07:00
brw_disasm_info.h
brw_eu.c intel/compiler: Enable the emission of ROR/ROL instructions 2019-07-01 10:14:22 -07:00
brw_eu.h intel/fs: Add support for SLM fence in Gen11 2019-07-11 08:29:32 -07:00
brw_eu_compact.c intel/compiler: don't compact 3-src instructions with Src1Type or Src2Type bits 2019-04-18 11:05:18 +02:00
brw_eu_defines.h intel/fs: Add support for SLM fence in Gen11 2019-07-11 08:29:32 -07:00
brw_eu_emit.c intel/fs: Add support for SLM fence in Gen11 2019-07-11 08:29:32 -07:00
brw_eu_util.c
brw_eu_validate.c intel/compiler: don't use byte operands for src1 on ICL 2019-06-29 12:56:09 +00:00
brw_fs.cpp intel/compiler: Add a "base class" for program keys 2019-07-10 19:35:55 +00:00
brw_fs.h intel/compiler: Add a "base class" for program keys 2019-07-10 19:35:55 +00:00
brw_fs_bank_conflicts.cpp i965/fs: unspills shoudn't use grf127 as dest since Gen8+ 2018-07-12 18:02:26 +02:00
brw_fs_builder.h intel/compiler: Enable the emission of ROR/ROL instructions 2019-07-01 10:14:22 -07:00
brw_fs_cmod_propagation.cpp intel/fs: Allow cmod propagation across reads and writes of different flags 2019-06-05 17:03:45 -07:00
brw_fs_combine_constants.cpp intel/fs: Fix D to W conversion in opt_combine_constants 2019-04-23 19:48:33 -07:00
brw_fs_copy_propagation.cpp intel/fs/copy-prop: Don't walk all the ACPs for each instruction 2019-05-10 09:10:17 -05:00
brw_fs_cse.cpp Revert "intel/compiler: split is_partial_write() into two variants" 2019-04-25 09:19:10 +02:00
brw_fs_dead_code_eliminate.cpp intel/fs: Properly stride NULL replacement regs in DCE 2019-07-17 18:44:35 +00:00
brw_fs_generator.cpp intel/fs: Add support for SLM fence in Gen11 2019-07-11 08:29:32 -07:00
brw_fs_live_variables.cpp intel/fs/live_variables: Do compute_start_end in BITSET_WORD chunks 2019-05-16 02:14:40 +00:00
brw_fs_live_variables.h
brw_fs_lower_pack.cpp
brw_fs_lower_regioning.cpp intel/fs: Add an UNDEF instruction to avoid excess live ranges 2019-06-04 14:27:30 -05:00
brw_fs_nir.cpp intel/fs: Use a strided MOV instead of a conversion for load_* destinations 2019-07-17 18:44:35 +00:00
brw_fs_reg_allocate.cpp intel/fs: Skip registers faster when setting spill costs 2019-06-04 14:37:56 +00:00
brw_fs_register_coalesce.cpp Revert "intel/compiler: split is_partial_write() into two variants" 2019-04-25 09:19:10 +02:00
brw_fs_saturate_propagation.cpp Revert "intel/compiler: split is_partial_write() into two variants" 2019-04-25 09:19:10 +02:00
brw_fs_sel_peephole.cpp Revert "intel/compiler: split is_partial_write() into two variants" 2019-04-25 09:19:10 +02:00
brw_fs_validate.cpp intel: disable FS IR validation in release mode. 2018-10-15 18:10:27 -07:00
brw_fs_visitor.cpp intel/compiler: Add a "base class" for program keys 2019-07-10 19:35:55 +00:00
brw_inst.h intel/compiler: add instruction setters for Src1Type and Src2Type. 2019-04-18 11:05:18 +02:00
brw_interpolation_map.c intel/compiler: Silence unused parameter warning in brw_interpolation_map.c 2019-03-06 08:35:36 -08:00
brw_ir_allocator.h intel/ir: Don't allow allocating zero registers 2018-12-11 21:26:23 -06:00
brw_ir_fs.h Revert "intel/compiler: split is_partial_write() into two variants" 2019-04-25 09:19:10 +02:00
brw_ir_vec4.h intel: Don't propagate conditional modifiers if a UD source is negated 2018-10-10 13:13:12 -05:00
brw_nir.c st,i965: Stop looping on 64-bit lowering 2019-07-16 16:05:16 +00:00
brw_nir.h intel/nir: Take nir_shader*s in brw_nir_link_shaders 2019-06-05 20:07:28 +00:00
brw_nir_analyze_boolean_resolves.c intel/fs: Mark source 0 of bcsel as needing Boolean resolve 2019-06-11 12:12:07 -07:00
brw_nir_analyze_ubo_ranges.c u_dynarray: turn util_dynarray_{grow, resize} into element-oriented macros 2019-06-12 18:30:25 -04:00
brw_nir_attribute_workarounds.c nir/builder: Remove the use_fmov parameter from nir_swizzle 2019-05-24 08:38:11 -05:00
brw_nir_lower_conversions.c intel/compiler: add a NIR pass to lower conversions 2019-04-18 11:05:18 +02:00
brw_nir_lower_cs_intrinsics.c intel/fs: Don't loop when lowering CS intrinsics 2019-04-08 19:29:33 -07:00
brw_nir_lower_image_load_store.c nir/builder: Add a nir_imm_zero helper 2019-04-14 22:25:56 +02:00
brw_nir_lower_mem_access_bit_sizes.c nir/builder: Remove the use_fmov parameter from nir_swizzle 2019-05-24 08:38:11 -05:00
brw_nir_opt_peephole_ffma.c nir: Drop imov/fmov in favor of one mov instruction 2019-05-24 08:38:11 -05:00
brw_nir_tcs_workarounds.c util: use C99 declaration in the for-loop set_foreach() macro 2018-10-25 12:43:18 +01:00
brw_nir_trig_workarounds.py python: Use the print function 2018-07-06 10:04:22 -07:00
brw_packed_float.c
brw_predicated_break.cpp
brw_reg.h intel/compiler: Expand size of the 'nr' field 2019-01-09 16:42:41 -08:00
brw_reg_type.c intel/compiler: add new half-float register type for 3-src instructions 2019-04-18 11:05:18 +02:00
brw_reg_type.h intel/compiler: add a brw_reg_type_is_integer helper 2019-04-18 11:05:18 +02:00
brw_schedule_instructions.cpp intel/compiler: Re-prefix non-logical surface opcodes with VEC4 2019-02-28 16:58:20 -06:00
brw_shader.cpp intel/compiler: Add a "base class" for program keys 2019-07-10 19:35:55 +00:00
brw_shader.h intel/nir: Take a nir_tex_instr and src index in brw_texture_offset 2019-04-14 22:25:56 +02:00
brw_vec4.cpp intel/compiler: Add a "base class" for program keys 2019-07-10 19:35:55 +00:00
brw_vec4.h intel/vec4: Try to emit a single load for multiple 3-src instruction operands 2019-07-11 10:20:03 -07:00
brw_vec4_builder.h intel/compiler: Lower flrp32 on Gen11+ 2018-02-28 11:15:47 -08:00
brw_vec4_cmod_propagation.cpp intel/compiler: use correct swizzle for replacement 2019-02-27 20:06:42 +00:00
brw_vec4_copy_propagation.cpp intel/compiler: Re-prefix non-logical surface opcodes with VEC4 2019-02-28 16:58:20 -06:00
brw_vec4_cse.cpp i965/vec4: Allow CSE on subset VF constant loads 2018-03-08 15:26:26 -08:00
brw_vec4_dead_code_eliminate.cpp i965/vec4/dce: Don't narrow the write mask if the flags are used 2018-12-17 13:47:06 -08:00
brw_vec4_generator.cpp intel/fs: Add support for SLM fence in Gen11 2019-07-11 08:29:32 -07:00
brw_vec4_gs_nir.cpp intel/vec4: Use the new nir_src_is_const and friends 2018-11-08 10:09:25 -06:00
brw_vec4_gs_visitor.cpp intel/compiler: Add a "base class" for program keys 2019-07-10 19:35:55 +00:00
brw_vec4_gs_visitor.h
brw_vec4_live_variables.cpp
brw_vec4_live_variables.h
brw_vec4_nir.cpp intel/vec4: Try to emit immediate sources for MOV 2019-07-11 10:20:03 -07:00
brw_vec4_reg_allocate.cpp intel/compiler: Prevent warnings in the following patch 2019-01-09 16:42:41 -08:00
brw_vec4_surface_builder.cpp intel/compiler: Re-prefix non-logical surface opcodes with VEC4 2019-02-28 16:58:20 -06:00
brw_vec4_surface_builder.h intel/vec4: Drop dead code for handling typed surface messages 2019-02-28 16:58:20 -06:00
brw_vec4_tcs.cpp intel/compiler: Add a "base class" for program keys 2019-07-10 19:35:55 +00:00
brw_vec4_tcs.h
brw_vec4_tes.cpp intel/compiler: Add a "base class" for program keys 2019-07-10 19:35:55 +00:00
brw_vec4_tes.h
brw_vec4_visitor.cpp intel/vec4: Delete vec4_visitor::emit_lrp 2019-07-08 11:30:11 -07:00
brw_vec4_vs.h
brw_vec4_vs_visitor.cpp intel/compiler: Add a "base class" for program keys 2019-07-10 19:35:55 +00:00
brw_vue_map.c intel/compiler: silence a warning of using different enum type 2019-06-25 10:09:22 +03:00
brw_wm_iz.cpp intel/fs: Extend thread payload layout to SIMD32 2018-06-28 13:19:38 -07:00
gen6_gs_visitor.cpp intel/compiler: Prevent warnings in the following patch 2019-01-09 16:42:41 -08:00
gen6_gs_visitor.h
meson.build intel/compiler: add a NIR pass to lower conversions 2019-04-18 11:05:18 +02:00
test_eu_compact.cpp intel/ir: Fix invalid type aliasing with undefined behavior in test_eu_compact. 2018-02-27 11:42:39 -08:00
test_eu_validate.cpp intel/compiler: don't use byte operands for src1 on ICL 2019-06-29 12:56:09 +00:00
test_fs_cmod_propagation.cpp intel/fs: Allow cmod propagation across reads and writes of different flags 2019-06-05 17:03:45 -07:00
test_fs_copy_propagation.cpp
test_fs_saturate_propagation.cpp intel/compiler: Add unit tests for sat prop for different exec sizes 2019-04-22 16:54:21 -07:00
test_vec4_cmod_propagation.cpp i965/vec4: Silence unused parameter warnings in vec4 compiler tests 2018-12-17 13:47:06 -08:00
test_vec4_copy_propagation.cpp i965/vec4: Silence unused parameter warnings in vec4 compiler tests 2018-12-17 13:47:06 -08:00
test_vec4_dead_code_eliminate.cpp i965/vec4/dce: Don't narrow the write mask if the flags are used 2018-12-17 13:47:06 -08:00
test_vec4_register_coalesce.cpp i965/vec4: Silence unused parameter warnings in vec4 compiler tests 2018-12-17 13:47:06 -08:00
test_vf_float_conversions.cpp