This is an archive of the discontinued LLVM Phabricator instance.

[IR][VP] Remove IntrArgMemOnly from vp.gather/scatter.
ClosedPublic

Authored by craig.topper on Sep 14 2022, 2:26 PM.

Details

Summary

IntrArgMemOnly is only valid for intrinsics that use a scalar
pointer argument. These intrinsics use a vector of pointer.

Alias analysis will try to find a scalar pointer argument and
will return incorrect alias results when it doesn't find one.

Diff Detail

Event Timeline

craig.topper created this revision.Sep 14 2022, 2:26 PM
Herald added a project: Restricted Project. · View Herald TranscriptSep 14 2022, 2:26 PM
Herald added a subscriber: StephenFan. · View Herald Transcript
craig.topper requested review of this revision.Sep 14 2022, 2:26 PM
Herald added a project: Restricted Project. · View Herald TranscriptSep 14 2022, 2:26 PM
Herald added a subscriber: jdoerfert. · View Herald Transcript
craig.topper retitled this revision from [IR] Remove IntrArgMemOnly from vp.gather/scatter. to [IR][VP] Remove IntrArgMemOnly from vp.gather/scatter..Sep 14 2022, 2:26 PM
craig.topper added a reviewer: frasercrmck.
reames accepted this revision.Sep 14 2022, 2:48 PM

LGTM - though I see this mostly as a workaround. I think we should revise the argmemonly semantics to allow vector of pointers, but that's a broader topic. We should fix the bug in the meantime.

This revision is now accepted and ready to land.Sep 14 2022, 2:48 PM
This revision was landed with ongoing or failed builds.Sep 14 2022, 3:00 PM
This revision was automatically updated to reflect the committed changes.