This is an archive of the discontinued LLVM Phabricator instance.

[MSan] Don't emit __msan_instrument_asm_load() calls in conservative assembly handling mode
ClosedPublic

Authored by glider on Dec 19 2018, 6:27 AM.

Details

Reviewers
dvyukov
eugenis
Summary

LLVM treats void* pointers passed to assembly routines as pointers to sized types.
We used to emit calls to __msan_instrument_asm_load() for every such void*, which sometimes led to false positives.
A less error-prone (and truly "conservative") approach is to unpoison only assembly output arguments.

Diff Detail

Event Timeline

glider created this revision.Dec 19 2018, 6:27 AM
eugenis accepted this revision.Dec 19 2018, 1:34 PM

LGTM

This revision is now accepted and ready to land.Dec 19 2018, 1:34 PM
glider closed this revision.Dec 20 2018, 2:09 AM

Landed r349734, thank you!