Nikita Popov

Results 517 comments of Nikita Popov

Also cc @SchrodingerZhu who did recent work on LTO + ifuncs.

Causes an assertion failure: ``` X0 = COPY W8 unimplemented reg-to-reg copy ```

Is this a false positive? It says that in target `%1` is INF, and then `%F = fabs(%1)` is poison. But isn't `fabs(INF) == INF`?

Oh sorry, I missed the fact that there's a `fast` flag there, implying `ninf`. So yeah, this transform needs to drop at least `ninf` on the fabs.

Can you please provide the `-S -emit-llvm -Xclang -disable-llvm-optzns -o -` output, so this is reproducible independent of environment?

I just took a quick look, and SCCP only seems relevant in that it folds a `br i1 undef` produced by a previous GVN pass into unreachable (correctly). GVN produces...

I spent some time looking into this, but wasn't able to identify where the miscompile occurs. Possibly it's in coroutine-specific parts that I'm not familiar with.

@ChuanqiXu9 The bad pattern is a missing `i32` store writing the variant tag.

As I explained before, the miscompile here is caused by an incorrectly removed store to the variant tag. The SCCP changes only make the miscompile easy to reproduce, by not...

Yes, the type seems to make the difference: https://llvm.godbolt.org/z/6E9Mqz3of