This is an archive of the discontinued LLVM Phabricator instance.

[AddressSanitizer] Split out memory intrinsic handling
ClosedPublic

Authored by thejh on Apr 6 2020, 6:02 PM.

Details

Summary

In both AddressSanitizer and HWAddressSanitizer, we first collect
instructions whose operands should be instrumented and memory intrinsics,
then instrument them. Both during collection and when inserting
instrumentation, they are handled separately.

Collect them separately and instrument them separately. This is a bit
more straightforward, and prepares for collecting operands instead of
instructions in a future patch.

This is patch 2/4 of a patch series:
https://reviews.llvm.org/D77616 [PATCH 1/4] [AddressSanitizer] Refactor ClDebug{Min,Max} handling
https://reviews.llvm.org/D77617 [PATCH 2/4] [AddressSanitizer] Split out memory intrinsic handling
https://reviews.llvm.org/D77618 [PATCH 3/4] [AddressSanitizer] Refactor: Permit >1 interesting operands per instruction
https://reviews.llvm.org/D77619 [PATCH 4/4] [AddressSanitizer] Instrument byval call arguments

Diff Detail

Event Timeline

thejh created this revision.Apr 6 2020, 6:02 PM
thejh edited the summary of this revision. (Show Details)Apr 6 2020, 6:13 PM
thejh added reviewers: kcc, glider.
thejh updated this revision to Diff 257386.Apr 14 2020, 9:48 AM

fix clang-format warnings

thejh updated this revision to Diff 257437.Apr 14 2020, 12:02 PM

move one declaration from patch 3 to patch 2

glider accepted this revision.Apr 15 2020, 8:16 AM
This revision is now accepted and ready to land.Apr 15 2020, 8:16 AM
thejh updated this revision to Diff 259925.Apr 24 2020, 10:35 AM

rebase to make harbormaster happy

thejh updated this revision to Diff 260221.Apr 26 2020, 11:59 PM

resend patch to trigger new build

thejh updated this revision to Diff 261150.Apr 30 2020, 2:01 AM
glider updated this revision to Diff 261227.Apr 30 2020, 7:41 AM

fix what I broke

This revision was automatically updated to reflect the committed changes.