This is an archive of the discontinued LLVM Phabricator instance.

[AA] Refine ModRefInfo for llvm.memcpy.* in presence of operand bundles
ClosedPublic

Authored by ebrevnov on Jan 24 2022, 4:11 AM.

Details

Summary

Presence of operand bundles changes semantics in respect to ModRef. In particular, spec says: "From the compilers perspective, deoptimization operand bundles make the call sites theyre attached to at least readonly. They read through all of their pointer typed operands (even if theyre not otherwise escaped) and the entire visible heap. Deoptimization operand bundles do not capture their operands except during deoptimization, in which case control will not be returned to the compiled frame". Fix handling of llvm.memcpy.* according to the spec.

Diff Detail

Event Timeline

ebrevnov created this revision.Jan 24 2022, 4:11 AM
ebrevnov requested review of this revision.Jan 24 2022, 4:11 AM
Herald added a project: Restricted Project. · View Herald TranscriptJan 24 2022, 4:11 AM
nikic accepted this revision.Jan 24 2022, 5:39 AM

LGTM

This revision is now accepted and ready to land.Jan 24 2022, 5:39 AM

LGTM as well.