* rename many functions to do with shadow memory handling, to
more clearly differentiate reads and writes directly of the
shadow state from client reads and writes, each of which
generate both a read and a write of the client state. It was
getting confusing (== hard to verify) in there.
* use idempotency of memory state machine transition rules to
speed up long sequential sections, speedups in range 0% to 28%
* remove 4-way Pord (EQ, LT, GT, UN) and associated machinery,
and replace it with something that merely computes LEQ in the
partial ordering, since that's all that is necessary, and
this simplifies some fast-case paths.
* add optional approx history mechanism a la DRD (start/end stack
of conflicting segment), much faster if you don't need exact
conflicting-access details
* libhb_so_recv: tick the VTS in the receiving thread; don't just
join with the VC in the SO. It's probably correct without this
modification, but that correctness is fragile and depends on
complex properties of how SOs are used/created. Much better to
be completely safe. (Needs cache-isation).
* get rid of unnecessary shadow memory state "SVal_NOACCESS"
and simplify associated fast-case paths in msmc{read,write}
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10589
thread is being created by code for suppressing the memory allocated
from inside the pthread_create() call. The new implementation should be
a more portable solution for suppressing data races triggered by the
thread-local-storage implementation of a Pthreads library.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10584
* lookupXA_UNSAFE -- binary search in array without being forced
to sortXA it first -- dangerous because if the array isn't in order
then the lookup can loop forever
* dropHeadXA -- drop the first N elements (kinda like dropTailXA, but
unfortunately O(N) not O(1)), so that xarrays can be used to
implement FIFOs, after a fashion.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10583
were longer than 200 chars. Now dynamic memory is used and so they can be
arbitrarily long in theory, although in practice it bombs out at 100,000 for
sanity purposes. This required adjusting the core/tool interface for
read_extra_suppression_info().
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10581
number of Linux machines. This change makes it more reliable, at the cost
of being less specific.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10575
and the PID was removed. This commit adds it back in. It also adds a basic
test that would have detected this regression, and also the breakage in bug
200990.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10573
This causes the regression test to fail with the "million" benchmark
on a Fedora 9 system. For now, remove the pc-file part of the test,
and later I'll come up with a better way of testing this feature.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10571