This is an archive of the discontinued LLVM Phabricator instance.

[sanitizer] Don't always instrument on every lifetime.start
AbandonedPublic

Authored by StephenFan on Jul 18 2022, 2:40 AM.

Details

Reviewers
vitalybuka
Summary

In D129448, the solution to deal with bypassed variables makes multiple
lifetime start intrinsics for the same alloca object appears in multiple
different basic block. But MemorySanitizer assumes that the variable is
always uninitialized at the place of lifetime.start intrinsic and
instruments poisoning code for it. After D129448, this assumption is broken.

This patch fix the broken assumption by analysis the dominance relation
of lifetime start/end intrinsics.

Diff Detail

Event Timeline

StephenFan created this revision.Jul 18 2022, 2:40 AM
Herald added a project: Restricted Project. · View Herald TranscriptJul 18 2022, 2:40 AM
StephenFan requested review of this revision.Jul 18 2022, 2:40 AM
Herald added a project: Restricted Project. · View Herald TranscriptJul 18 2022, 2:40 AM
vitalybuka requested changes to this revision.Dec 7 2022, 1:50 PM

I assume we are going to abandon this?

This revision now requires changes to proceed.Dec 7 2022, 1:50 PM
StephenFan abandoned this revision.Dec 8 2022, 3:16 AM