De-pessimize ScalarEvolution's handling of nsw/nuw?

Thanks all of you for the input! I’m learning a lot about ScalarEvolution.

I understand, even in the NVPTX64 backend which doesn’t natively support i64 but uses 64-bit pointers, indvar widening can still be beneficial. However, I chose to disable widening all together because it’s hard to evaluate the benefits of indvar widening before really trying it. For instance, if we widen the indvar and found the widening doesn’t improve LSR (which runs as a backend IR pass), it’s too late for us to rollback and the widened indvar costs at least one extra 32-bit addition when being incremented. That said, it seems hard to reach a uniformly optimal solution here, so I’d probably leave the compiler as is and resort to source code changes.

Jingyue