On Fri Apr 5 20:12:52 2024 +0000, Zebediah Figura wrote:
Note also, curiously, that you get the same difference even if you get rid of the continue block. Regardless, I would prefer to set aside this optimization for now. I'd rather review a version of copyprop that does not rely on it, before adding that potential complexity, whether or not it's required (and native notwithstanding, it's not clear to me that we will require it).
I wouldn't call this an optimization, we will not be able to unroll loops with `continue`s at all if we drop 3/6 and 4/6.
Note also, curiously, that you get the same difference even if you get rid of the continue block.
This also happens with this MR as copy prop will mark `i` as invalid in the root block of the function as it is being stored to inside the `if (!broken)` blocks we generate (see below). I can only imagine something similar is happening to the native compiler.