summaryrefslogtreecommitdiffstats
path: root/src/compiler/glsl/opt_copy_propagation.cpp
diff options
context:
space:
mode:
authorCaio Marcelo de Oliveira Filho <[email protected]>2018-06-27 14:39:54 -0700
committerCaio Marcelo de Oliveira Filho <[email protected]>2018-07-27 10:51:25 -0700
commit134b5a7047f97fbf2537c5e4f31fa08264e1c130 (patch)
tree9b45982b75c328b58caefd77e4e0321a6726cdd4 /src/compiler/glsl/opt_copy_propagation.cpp
parent399228ecad37f420be3028165b94d5d8d33516fc (diff)
glsl: teach copy_propagation_elements to deal with whole variables
Keep information in acp_entry whether the entry is full or not, and use the ACP in more nodes when visiting the instructions: - add_copy: write whole variables to the ACP state (regardless the type). - visit(ir_dereference_variable *): perform the propagation here if we have a full candidate. Element-wise here doesn't apply because the mask isn't available at this point. - visit_leave(ir_assignment *): process beyond scalar and vector, as the full variables might have other types. Also import an improvement from opt_copy_propagation.cpp: if ir_call is an intrinsic, we know the variables affected, so keep going. v2: (all from Eric Anholt) Describe how acp_entry attributes are used. Don't do book-keeping to avoid adding repeated element to the dsts in write_elements(). v3: Use _mesa_set_remove_key. (Thomas Helland) Reviewed-by: Eric Anholt <[email protected]> Reviewed-by: Thomas Helland <[email protected]>
Diffstat (limited to 'src/compiler/glsl/opt_copy_propagation.cpp')
0 files changed, 0 insertions, 0 deletions