This is an archive of the discontinued LLVM Phabricator instance.

[BasicAA] Remove special casing of memset_pattern16 in favor of generic attribute inference
ClosedPublic

Authored by reames on Jan 4 2016, 5:32 PM.

Details

Summary

BasicAA doesn't need to know about memset_pattern16. Since this rule was added, we've added attributes which are sufficient to encode all relevant aliasing facts. (Well, except for the ones encoded in MemoryLocation.cpp w.r.t. access size.)

Diff Detail

Event Timeline

reames updated this revision to Diff 43948.Jan 4 2016, 5:32 PM
reames retitled this revision from to [BasicAA] Remove special casing of memset_pattern16 in favor of generic attribute inference.
reames updated this object.
reames added reviewers: chandlerc, nlopes, dberlin.
reames added a subscriber: llvm-commits.
reames added a comment.Jan 4 2016, 5:44 PM

Actually, this patch is slightly wrong. The problem is that argument 0 of memset_pattern16 should be Mod, not ModRef. We don't have the equivalent of a writeonly attribute today.

I still think the rest of the change is worthwhile, but I will have to leave the Mod return special case in BasicAA.

dberlin accepted this revision.Jan 5 2016, 12:09 PM
dberlin edited edge metadata.
This revision is now accepted and ready to land.Jan 5 2016, 12:09 PM
This revision was automatically updated to reflect the committed changes.