[PATCH] D122573: [TBAA] Emit distinct TBAA tags for pointers with different depths,types.

Florian Hahn via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Mon Apr 10 13:34:04 PDT 2023


fhahn added a comment.

In D122573#4125641 <https://reviews.llvm.org/D122573#4125641>, @bipmis wrote:

> @fhahn We are also observing scenarios where this maybe necessary. A couple of points on where it may be missing
>
> 1. createScalarTypeNode(OutName, AnyPtr, Size) -> This will generate different Base type. However the accessTy being "any pointer" , the check "access to the base object is through a field of the subobject's type" will return alias as we traverse from BaseTag Node until we reach Root or we find a SubobjectTag BaseType. In this case the match would be true on "any pointer". Can this be potentially be thought of as  createScalarTypeNode(OutName, getChar(), Size) as a pointer type can edge to char?
>
> 2. The pointer type is restricted to isa<BuiltinType>(Ty). There can be potential scenarios where we may want pointer to struct or class.
>
> I can provide some examples if that would be helpful. Thanks.

Please share examples if you can. The initial implementation is limited in scope intentionally and can be extended later. Staggering the change helps adopters with tracking down mis-compiles.

In D122573#4253837 <https://reviews.llvm.org/D122573#4253837>, @xbolva00 wrote:

> @fhahn do you plan to continue with this change?

On my side yes, but it is still not clear what checkers need to be in place before strengthening TBAA.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D122573/new/

https://reviews.llvm.org/D122573



More information about the cfe-commits mailing list