Lines Matching refs:TBAA
10 // metadata-based TBAA.
13 // suitable for doing TBAA. Instead, metadata is added to the IR to describe
15 // typical C/C++ TBAA, but it can also be used to implement custom alias
18 // We now support two types of metadata format: scalar TBAA and struct-path
19 // aware TBAA. After all testing cases are upgraded to use struct-path aware
20 // TBAA and we can auto-upgrade existing bc files, the support for scalar TBAA
23 // The scalar TBAA metadata format is very simple. TBAA MDNodes have up to
47 // With struct-path aware TBAA, the MDNodes attached to an instruction using
55 // The last field has the same meaning as the last field of our scalar TBAA:
76 // !0 = !{!"Simple C/C++ TBAA"}
127 // A handy option for disabling TBAA functionality. The same effect can also be
362 /// it as struct-path aware TBAA format, otherwise, we treat it as scalar TBAA
365 // Anonymous TBAA root starts with a MDNode and dragonegg uses it as
366 // a TBAA tag.
377 if (Aliases(LocA.AATags.TBAA, LocB.AATags.TBAA))
390 const MDNode *M = Loc.AATags.TBAA;
431 if (const MDNode *L = Loc.AATags.TBAA)
464 // For struct-path aware TBAA, we use the access type of the tag.
493 report_fatal_error("Cycle found in TBAA metadata.");
502 report_fatal_error("Cycle found in TBAA metadata.");
525 N.TBAA =
526 MDNode::getMostGenericTBAA(N.TBAA, getMetadata(LLVMContext::MD_tbaa));
533 N.TBAA = getMetadata(LLVMContext::MD_tbaa);
663 // Accesses with no TBAA information may alias with any other accesses.