Currently there is only an add function for constant range without considering wrap flag. It may produce a conservative range.
For example, currently, full_set +nsw [1,3) will get full_set. But right range should be [SINT_MIN + 1, SINT_MIN)
Add a helper function to consider wrap flag, so we can get a more accurate range.
This is splitted from https://reviews.llvm.org/D64869.
My preference would be to add this as an optional argument to add() instead. In the future, we'll likely want to accept NoWrapKind on more methods, and also thread it through binaryOp().