Fixed memory splitting with memcpy.
* Distinct offsets of DSA nodes which are involved in memcpys will be
  considered as aliasing.  This prevents a problem with the typical
  implementation (e.g. in clang) of struct assignments, which generate a
  memcpy instruction for the entire struct's data.  If we consider separate
  offsets in such structs as non-aliasing, then determining the memory regions
  involved in the memcpy becomes complicated.  If we force them to alias, then
  the memcpy is guaranteed not to span memory regions, for each of the source
  and destination address spans.