This is an archive of the discontinued LLVM Phabricator instance.

llvm.noalias - computeKnownBits should look through them
ClosedPublic

Authored by hfinkel on Apr 30 2015, 9:15 AM.

Details

Summary

This is part of the series started by D9375, and teaches computeKnownBits to look through calls to llvm.noalias. This is necessary for pointer-alignment propagation to work.

Diff Detail

Event Timeline

hfinkel updated this revision to Diff 24736.Apr 30 2015, 9:15 AM
hfinkel retitled this revision from to llvm.noalias - computeKnownBits should look through them.
hfinkel updated this object.
hfinkel edited the test plan for this revision. (Show Details)
hfinkel added reviewers: chandlerc, reames.
hfinkel added a subscriber: Unknown Object (MLST).
reames accepted this revision.May 12 2015, 3:57 PM
reames edited edge metadata.

LGTM

This revision is now accepted and ready to land.May 12 2015, 3:57 PM
hfinkel updated this revision to Diff 63344.Jul 8 2016, 3:56 PM
hfinkel edited edge metadata.

Rebased.

majnemer added inline comments.
lib/Analysis/ValueTracking.cpp
1463–1465

I wonder if it'd make sense to make this intrinsic's pointer parameter as returned and then teach computeKnownBitsFromOperator how to recurse onto a returned parameter.

hfinkel added inline comments.Jul 10 2016, 8:34 AM
lib/Analysis/ValueTracking.cpp
1463–1465

Excellent! This applies to many of the patches, however. I'll rework the relevant patches to be about the returned attribute, not the noalias intrinsic specifically. That makes me happier.

This revision was automatically updated to reflect the committed changes.