[Metadata] Add TBAA struct metadata to `AAMDNode`

Authored by anton-afanasyev on Nov 29 2019, 3:22 AM.


[Metadata] Add TBAA struct metadata to AAMDNode

Make AAMDNodes' getAAMetadata() and setAAMetadata() to take !tbaa.struct
into account as well as !tbaa. This impacts llvm.org/pr42022.
This is a temprorary fix needed to keep !tbaa.struct tag by SROA pass.
New field TBAAStruct should be deleted when !tbaa tag replaces !tbaa.struct.
Merging two !tbaa.struct's to one is conservatively considered to be nullptr
(giving MayAlias) -- this could be enhanced, but relying on the said future

Reviewers: RKSimon, spatel, vporpo

Subscribers: hiraditya, kosarev, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D70924