This is an archive of the discontinued LLVM Phabricator instance.

[TBAA] Drop support for "old style" scalar TBAA
ClosedPublic

Authored by sanjoy on Nov 1 2016, 7:36 PM.

Details

Summary

We've had support for auto upgrading old style scalar TBAA access
metadata into the "new" struct path aware TBAA metadata for 3 years now.
The only way to actually generate old style TBAA was explicitly through
the IRBuilder API. I think this is a good time for dropping support for
old style scalar TBAA.

I will start an RFC on llvm-dev on this topic, but I wanted to have a
patch to link to first.

Diff Detail

Repository
rL LLVM

Event Timeline

sanjoy updated this revision to Diff 76668.Nov 1 2016, 7:36 PM
sanjoy retitled this revision from to [TBAA] Drop support for "old style" scalar TBAA.
sanjoy updated this object.
sanjoy added reviewers: manmanren, chandlerc, sunfish.
sanjoy added a subscriber: llvm-commits.
mehdi_amini accepted this revision.Nov 7 2016, 3:40 PM
mehdi_amini added a reviewer: mehdi_amini.
mehdi_amini added a subscriber: mehdi_amini.

LGTM.

This is akin to our "unstable" APIs. Only the bitcode backward compatibility is supported.

This revision is now accepted and ready to land.Nov 7 2016, 3:40 PM

Note: the title mislead me to think that you were dropping support from the auto-upgrade path.

mehdi_amini added inline comments.Nov 7 2016, 3:42 PM
lib/Analysis/TypeBasedAliasAnalysis.cpp
419 ↗(On Diff #76668)

You could preserve this comment partially?

manmanren edited edge metadata.Nov 8 2016, 7:47 AM

Nice clean up!

Can you also update the documentation? I noticed that the language reference manual is still describing the old scalar TBAA. And I am the one to be blamed.

Cheers,
Manman

sanjoy added a comment.Nov 8 2016, 9:36 AM

Nice clean up!

Can you also update the documentation? I noticed that the language reference manual is still describing the old scalar TBAA.

Yes, I will. My next steps are to:

  1. Add some verification around tbaa nodes so that bad TBAA nodes are caught by the verifier as much as possible
  2. Update the language reference
This revision was automatically updated to reflect the committed changes.
sanjoy marked an inline comment as done.
llvm/trunk/lib/IR/Verifier.cpp