On Sat Apr 6 00:07:04 2024 +0000, Victor Chiletto wrote:
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.
Well, it is an optimization, albeit a quite important one.
Part of what I'm asking here is that, to make review easier, we start with the basic, generic version of unrolling, then add the necessary optimizations to make it reasonably performant. That'll aid review quite a lot.