{ let c let d c := calldataload(0) // This assignment will be overwritten in all branches and thus can be removed. d := 1 if c { d := 2 } d := 3 mstore(0, d) } // ==== // step: redundantAssignEliminator // ---- // { // let c // let d // c := calldataload(0) // if c // { // } // d := 3 // mstore(0, d) // }