The analyzer tries to simplify address computations inside the loop
body, but not outside the loop. This means we currently fail to
recognize some pointer compares as free.
This patch adds machinery to simplify address computations outside the
loop. We use it directly in visitCmpInst, because it do not visit the
instructions outside the loop currently.
This helps with cost modelling of loops like the on in PR43305.
Requiring the base to be a SCEVUnknown seems too restrictive to me... but I guess it's an existing restriction, so I guess it's okay for now.