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.
Details
Details
Summary
Diff Detail
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
Herald added subscribers: jeroen.dobbelaere, hiraditya. · View Herald TranscriptJan 24 2022, 4:11 AM
ebrevnov added a parent revision: D118031: [NFC] New test case for BasicAA and memcy/memmove with deopt.Jan 24 2022, 4:12 AM
ebrevnov added a child revision: D117095: [BasicAA] Add support for memmove intrinsic.Jan 24 2022, 4:15 AM
ebrevnov mentioned this in D117095: [BasicAA] Add support for memmove intrinsic.Jan 24 2022, 4:39 AM
This revision is now accepted and ready to land.Jan 24 2022, 5:39 AM
This revision was landed with ongoing or failed builds.Jan 24 2022, 7:15 PM
Closed by commit rG0e55d4fab018: [AA] Refine ModRefInfo for llvm.memcpy.* in presence of operand bundles (authored by Evgeniy Brevnov <ybrevnov@azul.com>). · Explain Why
This revision was automatically updated to reflect the committed changes.