This is an archive of the discontinued LLVM Phabricator instance.

CodeGen: Don't drop AA metadata when splitting MachineMemOperands
ClosedPublic

Authored by arsenm on Aug 10 2020, 10:54 AM.

Details

Summary

Assuming this is used to split a memory access into smaller pieces,
the new access should still have the same aliasing properties as the
original memory access. As far as I can tell, this wasn't
intentionally dropped. It may be necessary to drop this if you are
moving the operand outside of the bounds of the original object in
such a way that it may alias another IR object, but I don't think any
of the existing users are doing this. Some of the uses widen into
unused alignment padding, which I think is OK.

Diff Detail

Event Timeline

arsenm created this revision.Aug 10 2020, 10:54 AM
Herald added a project: Restricted Project. · View Herald TranscriptAug 10 2020, 10:54 AM
arsenm requested review of this revision.Aug 10 2020, 10:54 AM
jdoerfert resigned from this revision.Aug 10 2020, 10:56 AM

I don't know the operations performed here :(

efriedma accepted this revision.Aug 10 2020, 11:57 AM

This is consistent with how we handle load splitting in other places; LGTM

llvm/lib/CodeGen/MachineFunction.cpp
483

Only tangentially related, but I think this comment isn't true anymore.

This revision is now accepted and ready to land.Aug 10 2020, 11:57 AM
foad added a subscriber: foad.Aug 21 2020, 1:47 AM