summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/freedreno/a4xx
diff options
context:
space:
mode:
authorRob Clark <[email protected]>2015-06-09 17:17:06 -0400
committerRob Clark <[email protected]>2015-06-21 07:54:38 -0400
commit457f7c2a2a93b45396ac66e0d4b3896d2db8fdf3 (patch)
tree1286493bc6b7fd01738125b6fc91db78c3dc805f /src/gallium/drivers/freedreno/a4xx
parent660d5c1646f5d63f9626b24beabc9cfc318849d4 (diff)
freedreno/ir3: block reshuffling and loops!
This shuffles things around to allow the shader to have multiple basic blocks. We drop the entire CFG structure from nir and just preserve the blocks. At scheduling we know whether to schedule conditional branches or unconditional jumps at the end of the block based on the # of block successors. (Dropping jumps to the following instruction, etc.) One slight complication is that variables (load_var/store_var, ie. arrays) are not in SSA form, so we have to figure out where to put the phi's ourself. For this, we use the predecessor set information from nir_block. (We could perhaps use NIR's dominance frontier information to help with this?) Signed-off-by: Rob Clark <[email protected]>
Diffstat (limited to 'src/gallium/drivers/freedreno/a4xx')
0 files changed, 0 insertions, 0 deletions