The motivation for this is twofold.
Firstly, this makes code a little nicer to read, by virtue of removing a ubiquitous &(...)->node.
Secondly, and more importantly, this allows for the possibility of constructors returning a different instruction type than intended. The ultimate goal here is to return a preallocated "error" instruction when allocation fails, instead of returning NULL and propagating out-of-memory handling to the caller.
-- v3: vkd3d-shader/hlsl: Return an hlsl_ir_node pointer from hlsl_new_if(). vkd3d-shader/hlsl: Pass hlsl_block pointers to hlsl_new_if(). vkd3d-shader/hlsl: Initialize the block in clone_block(). vkd3d-shader/hlsl: Introduce a hlsl_block_cleanup() helper.