tree aea60d6d96f02b60fe54d10f75b840261693422b
parent 07ec4f83c5f17550fe76d99e5d6316afa52964c9
author Jaebaek Seo <jaebaek@google.com> 1619555229 -0400
committer GitHub <noreply@github.com> 1619555229 -0400
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsBcBAABCAAQBQJgiHOdCRBK7hj4Ov3rIwAAmPYIADvXC2qh0O0bvt1/I8/jflLL
 hRptaU4IRI+9hb/luBCiDL2Pbo7RHYJHwytzo/2Db9Tnxk13SmhTqjIOcO4aMDsj
 T7+ewEGseM4XYSU9d1aUgtFHqVX6PY5Nrn5cHvN74ZP6bIxsXkdgKtgQ4fOzXwSZ
 SNccI2O0khKFsNnpWcx2RZcm0g/CUJ/D7Z5VocIpbo/XqSlkmrK27KaviYa0SUBp
 KAtW4IQD5n4nPHV6vp67M+6f8h/vlsGPGG9fCYjniEddKe2JoWzpPoAVBqicqiQR
 PNx9+fMlarbStBttHvpdBoO/XJiD2GiN7IXGwHN+5mQ+zKFGfC0OeIOg/ImRatg=
 =jmQW
 -----END PGP SIGNATURE-----
 

Fix dangling phi bug from loop-unroll (#4239)

Fix dangling phi bug from loop-unroll

When unrolling the following loop:
```
%const0 = OpConstant ...
%const1 = OpConstant ...
...
%LoopHeader = OpLabel
%phi0 = OpPhi %float %const0 %PreHeader %phi1 %Latch
%phi1 = OpPhi %float %const1 %PreHeader %x    %Latch
...
%LoopBody = OpLabel
%x = OpFSub %float %phi1 %phi0
...
```

the loop-unroll pass sets the value of `%phi0` as `%phi1` for the second
copy of the loop body. For example, the second copy of
`%x = OpFSub %float %phi1 %phi0` will be
`%y = OpFSub %float %x %phi1`.

Since all phi instructions for inductions will are removed after the
loop unrolling, `%phi1` will be a dead dangling phi.

It happens only for the phi values of the first loop iteration. Replacing those
dangling phis with their initial values fixes this issue.

For example, the second copy of `%x = OpFSub %float %phi1 %phi0` should be
`%y = OpFSub %float %x %const1` because the value of `%phi1` from the
first loop iteration is `%const1`.