mesa/src/intel
Kenneth Graunke ed3e4c16dc intel/brw: Do not create empty basic blocks when removing instructions
If there's only a single instruction in a basic block, then removing it
would create an empty block.  We seem to have trouble representing those
as there are no instructions with an IP inside the block; several places
mess up connections.  While most blocks end in control flow instructions
(which are rarely eliminated), ones preceding a DO instruction may end
in an ordinary instruction.  This makes such blocks tricky to merge with
adjacent blocks - they may be between loops.  Any optimization pass may
may find such an instruction and want to eliminate it, and most of them
are unprepared to perform such CFG link surgery.  Nor do we want to make
every pass aware of this issue.

To work around this, we simply replace an instruction with a NOP when
removing it from a block containing only that instruction, leaving the
block in place.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28971>
2024-04-30 17:16:39 -07:00
..
blorp intel/blorp: remove unused blorp batch flag 2024-04-10 05:38:24 +00:00
ci ci: uprev CTS to vulkan-cts-1.3.8.0 2024-04-17 21:22:36 +00:00
common intel/elk: Remove multi-polygon support 2024-03-07 15:53:19 +00:00
compiler intel/brw: Do not create empty basic blocks when removing instructions 2024-04-30 17:16:39 -07:00
decoder intel/decoder: Add intel_print_group_custom_spacing() 2024-04-24 17:07:50 +00:00
dev intel/dev: Read GFX IP version during runtime 2024-04-24 18:06:04 +00:00
ds intel/ds: add pipe control reasons to perfetto flushes 2024-03-08 07:52:20 +00:00
genxml intel/genxml/xe2: Update definition of INTERFACE_DESCRIPTOR_DATA 2024-04-03 20:21:04 +00:00
isl isl: Set MOCS to uncached for Gfx12.0 blitter sources/destinations 2024-04-25 08:05:48 +00:00
nullhw-layer docs: replace references to the deprecated VK_INSTANCE_LAYERS with the new VK_LOADER_LAYERS_ENABLE 2024-04-02 18:08:52 +00:00
perf treewide: Replace usage of macro DEBUG with MESA_DEBUG when possible 2024-03-22 18:22:34 +00:00
shaders intel: Build float64 shader only for Vulkan 2024-04-26 14:08:32 +00:00
tools intel/tools: Parse INSTDONE registers in Xe KMD error dump 2024-04-24 17:07:50 +00:00
vulkan anv: enable EDS3 AlphaToCoverageEnable & RasterizationSamples 2024-04-26 05:13:03 +00:00
vulkan_hasvk vulkan: pass cmdbuf level to vk_command_buffer_ops::create() 2024-04-23 06:33:31 +00:00
meson.build intel: Only build shaders with anv and iris 2024-02-21 20:53:36 +00:00