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.
-- v2: 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: Return an hlsl_ir_node pointer from hlsl_new_float_constant(). vkd3d-shader/hlsl: Return an hlsl_ir_node pointer from hlsl_new_cast() and hlsl_new_copy(). vkd3d-shader/hlsl: Return an hlsl_ir_node pointer from hlsl_new_bool_constant().