> One more question regarding helgrind performance: > is it possible to track only certain memory addresses in helgrind and > simply ignore others (i.e. don't even keep shadow values for them)?
Certainly the old (2.2.0) Helgrind had a mode in which it could ignore stack references. That should improve performance, although it can be difficult to decide for sure what is and is not a stack reference. I have for a while been considering a different idea, which is to take advantage of the facts that (1) Valgrind only runs one thread at once and (2) for periods of time when a thread is running and does not do any sync events or lock events, these state machines tend to be idempotent -- that is, the second and subsequent presentations of the same address to the state machine do not change its state. The basic idea would be to note all memory references in a small cache. Then, when a new reference appears, first see if it is already in the cache; if so ignore it. When there is a thread switch or synchronisation event, the cache is flushed. The core provides enough hints to know when this cache should be flushed. If the cache access is fast enough relative to the full SM, and enough duplicate addresses appear, this could provide a substantial speedup. The advantage, relative to skipping stack references, is that you don't lose any functionality. J ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ Valgrind-developers mailing list Valgrind-developers@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/valgrind-developers