[hlsl][ir] Skip promoting lets to lets
In the `PromoteInitializers` transform, if a let is used as a value, we
may determine that the value needs to be hoisted to a new let. But, this
ends up just creating a let of a let. Skip creating the duplicate let in
this case.
Bug: 369450791
Change-Id: I45178ec0029b13019314ab189df8073781a9dd9b
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/211817
Reviewed-by: James Price <jrprice@google.com>
Commit-Queue: dan sinclair <dsinclair@chromium.org>
Reviewed-by: Antonio Maiorano <amaiorano@google.com>
diff --git a/test/tint/samples/cube.wgsl.expected.ir.dxc.hlsl b/test/tint/samples/cube.wgsl.expected.ir.dxc.hlsl
index 8a866c9..bd056e4 100644
--- a/test/tint/samples/cube.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/samples/cube.wgsl.expected.ir.dxc.hlsl
@@ -52,14 +52,12 @@
vtx_main_outputs vtx_main(vtx_main_inputs inputs) {
VertexInput v_5 = {inputs.VertexInput_cur_position, inputs.VertexInput_color};
VertexOutput v_6 = vtx_main_inner(v_5);
- VertexOutput v_7 = v_6;
- VertexOutput v_8 = v_6;
- vtx_main_outputs v_9 = {v_7.vtxFragColor, v_8.Position};
- return v_9;
+ vtx_main_outputs v_7 = {v_6.vtxFragColor, v_6.Position};
+ return v_7;
}
frag_main_outputs frag_main(frag_main_inputs inputs) {
- frag_main_outputs v_10 = {frag_main_inner(inputs.fragColor)};
- return v_10;
+ frag_main_outputs v_8 = {frag_main_inner(inputs.fragColor)};
+ return v_8;
}