This is an archive of the discontinued LLVM Phabricator instance.

[AliasAnalysis] Misc fixes for checking aliasing with scalable types.
ClosedPublic

Authored by efriedma on Mar 16 2020, 12:39 PM.

Details

Summary

This is fixing up various places that use the implicit TypeSize->uint64_t conversion.

The new overloads in MemoryLocation.h are used in various places that construct a MemoryLocation from a TypeSize, including MemorySSA. (They were using the implicit conversion before.)

Diff Detail

Event Timeline

efriedma created this revision.Mar 16 2020, 12:39 PM
Herald added a project: Restricted Project. · View Herald TranscriptMar 16 2020, 12:40 PM
sdesmalen added inline comments.Mar 17 2020, 2:56 PM
llvm/lib/IR/Value.cpp
717

From the LangRef:

Scalable vectors cannot be global variables or members of structs or arrays because their size is unknown at compile time.

So I think this can use getFixedSize().

efriedma updated this revision to Diff 250927.Mar 17 2020, 3:20 PM

Address review comment

(I really need to circle back and finish the LocationSize migration...)

Not super familiar with the intricacies of scalable vectors, but these changes LGTM. Thanks!

This revision is now accepted and ready to land.Mar 17 2020, 3:32 PM
sdesmalen accepted this revision.Mar 17 2020, 3:41 PM

Same here, LGTM!

This revision was automatically updated to reflect the committed changes.