On 1/19/22 06:53, Giovanni Mascellani wrote:
Signed-off-by: Giovanni Mascellani gmascellani@codeweavers.com
A new var_def is now initialized to the content of the same var_def in earlier stack frames.
I still believe this is more complicated than it should be (i.e., harder to check and therefore more prone to bugs), but maybe it's correct anyway.
Zebediah said she doesn't like it in this way, but I couldn't understand in which direction I should change it to make it better; since my last submission has been evicted from the patch tracker, I am sending again without changes.
As pointed out, the whole point of searching parent scopes (whether recursively or with an array) in copy_propagation_get_var_def() is to avoid duplicating the state. This patch feels like half of one thing and half of the other.
Since we need a way to distinguish "written in this scope, and can be resolved to a single instr" vs "written in this scope, and cannot be resolved" vs "not written in this scope", that sounds to me like we need to store an extra bool of information along with the hlsl_ir_node pointer.