Since we added the memory attribute it was clear that AAMemoryLocation
and AAMemoryBehavior should be merged. We do this now and replace all
the custom bit-fiddling with the existing logic in llvm::MemoryEffects.
Since we want to track more locations, we made that class extensible in
https://reviews.llvm.org/D153305.
The new AA is a combination of the former two, though we tried to reduce
the compile time during the rewrite. We do not track accesses
transitively anymore (so a call site needs to be checked by the user of
checkForAllAccessesToMemoryKind). We also use a single
AAMemoryLocation for a call site or function to model the call
site/function as well as the arguments.
return ternary operator?