Adds fastpath instrumentation for esan's working set tool. The
instrumentation for aligned loads and stores consists of inlined writes
to shadow memory bits for each accessed cache line.
Adds a basic test for this instrumentation.
Differential D20483
[esan] EfficiencySanitizer working set tool fastpath bruening on May 20 2016, 1:17 PM. Authored by
Details Adds fastpath instrumentation for esan's working set tool. The Adds a basic test for this instrumentation.
Diff Detail Event Timeline
Comment Actions I would prefer having a working tool before adding the fast-paths. Thanks for woking on this, Filipe
Comment Actions I think the right way to share the constants between instrumentation and the runtime library is to put them in an LLVM header, install that to the build directory (under include/llvm) and locate that through llvm-config under if (COMPILER_RT_STANDALONE_BUILD). Comment Actions Given that we are now talking about refactoring existing code, let's move that to a separate CL. Perhaps if someone has ideas for precisely how to do it and knows more about the setup you could lead the way by refactoring one of the other sanitizers -- I'm not sure what the COMPILER_RT_STANDALONE_BUILD supports (comments in the code make it sound unsupported; does it support building with an installed clang rather than a local build dir and in that case won't llvm-config not work unless we install our header which seems overkill; if it really requires a local llvm build dir in what sense is it standalone; etc.)
|
Is the 4 on purpose, with three constants? Either way, I'd prefer to have no bound on the declaration and have an explicit initialization (with the last one as 0), to explicitly show it's on purpose (or keep the size *and* add the extra 0. If we had a lot of zeros at the end, then I'd be more ok with having the bounds + "hidden" zeros.