This is an archive of the discontinued LLVM Phabricator instance.

tsan: unify all shadow mappings
ClosedPublic

Authored by dvyukov on Aug 9 2021, 12:52 AM.

Details

Summary

Currently we have ifdef's for Go/C++ and Windows/non-Windows
in MemToShadow, MemToMeta, ShadowToMem. This does not allow
to test all mappings on a single platform.
Make all these functions support a superset of mappings for
all platforms by defining missing mapping consts to 0.
E.g. we always do ^A+B, but if A and B are defined to 0,
then these operations become no-op.

Depends on D107739.

Diff Detail

Event Timeline

dvyukov requested review of this revision.Aug 9 2021, 12:52 AM
dvyukov created this revision.
Herald added a project: Restricted Project. · View Herald TranscriptAug 9 2021, 12:52 AM
Herald added a subscriber: Restricted Project. · View Herald Transcript
melver accepted this revision.Aug 9 2021, 4:29 AM
This revision is now accepted and ready to land.Aug 9 2021, 4:29 AM
dvyukov updated this revision to Diff 365241.Aug 9 2021, 11:46 AM

changed SelectMapping to use template Arg and rebased

This revision was landed with ongoing or failed builds.Aug 10 2021, 11:07 AM
This revision was automatically updated to reflect the committed changes.