This is a reboot of D120371, which adds support for noalias calls in foldAllocaCmp(). The only difference to alloca handling is that allocators might return null, in which case we must make sure that we don't fold away comparisons to null.
Once this lands, I'll commit the removal of the old incorrect InstSimplify/CaptureTracking code in a separate commit, to reduce risk.
Maybe cache these in an optional so the second call to canFold doesn't need to recompute?