For some reason we used to only handle address space aliasing through
chaining a target specific AA pass. We need never-fail simple queries
in order to lower memmove intrinsics based purely on the address
spaces.
I also think it would be better if BasicAA checked this, rather than
relying on the target AA passes. Currently we go through the more
expensive AA analyses before getting to the trivial address space
checks.
Nit: Now that we don't need to use AliasResult::MayAlias/NoAlias I do not see these macros improving readability over the plain true/false.
If you do prefer to use ASMay/ASNo, just make them const bool.