dyninst.git
16 months agoFix compilation on ARM
Xiaozhu Meng [Mon, 9 Jul 2018 14:50:25 +0000 (09:50 -0500)]
Fix compilation on ARM

16 months agoFix compilation issue on powerpc
Xiaozhu Meng [Fri, 6 Jul 2018 19:44:13 +0000 (14:44 -0500)]
Fix compilation issue on powerpc

16 months ago1. More static variables should be declared in TLS
Xiaozhu Meng [Fri, 6 Jul 2018 15:08:38 +0000 (10:08 -0500)]
1. More static variables should be declared in TLS
2. std::stringstream is not thread-safe, even using two separate objects
concurrently may cause crashes
3. Disable parallel dwarf parsing
4. Remove testsuite as a submodule

16 months agoThe static ABI pointers should be thread local
Xiaozhu Meng [Thu, 5 Jul 2018 14:10:52 +0000 (09:10 -0500)]
The static ABI pointers should be thread local

16 months agoParallelize function finalizing
Xiaozhu Meng [Wed, 4 Jul 2018 19:38:12 +0000 (14:38 -0500)]
Parallelize function finalizing

16 months agoDefer constructing blocksByRange to function finalizing, and removing the use blocksB...
Xiaozhu Meng [Sun, 1 Jul 2018 20:22:41 +0000 (15:22 -0500)]
Defer constructing blocksByRange to function finalizing, and removing the use blocksByRange in tail call identificatin and jump table analysis

16 months agoParseData::record_block should not need locking. We should rely on the return value...
Xiaozhu Meng [Fri, 29 Jun 2018 15:53:03 +0000 (10:53 -0500)]
ParseData::record_block should not need locking. We should rely on the return value of concurrent_hash_map::insert to determine which thread succeeds in inserting and which threads failed. The failed threads should just use the already inserted block and give up insertion

16 months ago1. IFUNC is real code
Xiaozhu Meng [Wed, 20 Jun 2018 18:33:04 +0000 (13:33 -0500)]
1. IFUNC is real code
2. remove unused std::map (it is only written), which is not thread-safe and may cause crashes

16 months ago1. Do not make testsuite a requirement for installing dyninst
Xiaozhu Meng [Tue, 19 Jun 2018 22:17:16 +0000 (17:17 -0500)]
1. Do not make testsuite a requirement for installing dyninst
2. After parallel parsing, we should not need locks for read operations

17 months agoRefactor ParseFrame::leadersToBlock from a hash map to a std::map so
Xiaozhu Meng [Tue, 12 Jun 2018 01:11:13 +0000 (20:11 -0500)]
Refactor ParseFrame::leadersToBlock from a hash map to a std::map so
that when we try to find a block that may contains an address, we do not
need to iterate every iten in the map. Instead, we can just use
upper_bound or lower_bound to find the only candidate

17 months agoWhen updating block ends, also need to update block range lookups
Xiaozhu Meng [Mon, 11 Jun 2018 23:54:28 +0000 (18:54 -0500)]
When updating block ends, also need to update block range lookups

17 months agoWe should not need finalize_block as the block should have been splited
Xiaozhu Meng [Mon, 11 Jun 2018 20:52:44 +0000 (15:52 -0500)]
We should not need finalize_block as the block should have been splited
during parsing.

Also delete some unnecessary code

17 months agoRevisit locking for parallel parsing
Xiaozhu Meng [Mon, 11 Jun 2018 20:04:10 +0000 (15:04 -0500)]
Revisit locking for parallel parsing

1. We sometimes need to check whether a frame exists or not, and only
create a new frame when it does not exist. The lookup and the creation
should be one atomic operation. Parser::createAndRecordFrame implements
this atomic operation.
2. Similarly, Parser::createAndRecordFunc atomically creates a function
when it does not exist.
3. record_block is should require locking because multiple threads may
parse the same address.
4. The parse of a frame and the post-processing of a frame should be one
atomic operation. Right now, we use a scoped lock for this.
5. We should first initialize a frame before updating the frame status
or record the frame. Updating frame status or recording frame make the
frame available to other threads.

17 months agoFix handling of changing function return status and checking of cyclic
Xiaozhu Meng [Thu, 31 May 2018 16:26:21 +0000 (11:26 -0500)]
Fix handling of changing function return status and checking of cyclic
dependencies
1. Even blocked frame can have a changed return status, so need to
resume delayed caller
2. Due to parallel parsing, when a thread parses a call site, the
callee may still have a UNSET return status, and the callee is being
parsed by another thread. When all threads' work is done, the UNSET
return status is expired, and we need to revalidate delayed work

17 months agoChange function return status to std::atomic to avoid races and deadlock
Xiaozhu Meng [Tue, 29 May 2018 20:38:36 +0000 (15:38 -0500)]
Change function return status to std::atomic to avoid races and deadlock

17 months agostd::once_flag should not be declared as local variables
Xiaozhu Meng [Tue, 29 May 2018 13:52:52 +0000 (08:52 -0500)]
std::once_flag should not be declared as local variables

17 months agoFix implicit operands
Xiaozhu Meng [Tue, 22 May 2018 16:32:09 +0000 (11:32 -0500)]
Fix implicit operands

17 months ago1. Reduce duplicated read/written registers
Xiaozhu Meng [Mon, 21 May 2018 16:32:09 +0000 (11:32 -0500)]
1. Reduce duplicated read/written registers
2. Tail call target may not be parsed during the lookup

18 months agoShould not just treat unbinded registers as 0 when convering
Xiaozhu Meng [Tue, 15 May 2018 15:03:00 +0000 (10:03 -0500)]
Should not just treat unbinded registers as 0 when convering
instructions to assignments

18 months ago1. If finalizing a function needs to invoke a parse, it should invoke
Xiaozhu Meng [Thu, 10 May 2018 15:17:17 +0000 (10:17 -0500)]
1. If finalizing a function needs to invoke a parse, it should invoke
the version that allows overlapping regions.

2. Properly handle the case where an edge split its into own source

18 months ago1. For each new block generated during spliting, we should also mark the
Xiaozhu Meng [Wed, 9 May 2018 20:38:12 +0000 (15:38 -0500)]
1. For each new block generated during spliting, we should also mark the
new block visited because the boundary of the new block has been
determined.

2. Properly set up virtual functions to lookup frame status

18 months agoNeed to decode REX prefix when determining which bytes to change for
Xiaozhu Meng [Wed, 9 May 2018 15:48:23 +0000 (10:48 -0500)]
Need to decode REX prefix when determining which bytes to change for
relocation

18 months ago1. Add more non-returning functions
Xiaozhu Meng [Tue, 8 May 2018 20:39:38 +0000 (15:39 -0500)]
1. Add more non-returning functions
2. Conditional tail call should be treated as a call work element
3. Need to record block boundary during finalizing
4. Fix edge linking for function calls

18 months ago1. Clean up CMake files for finding and linking boost and CMake files
Xiaozhu Meng [Wed, 25 Apr 2018 15:51:55 +0000 (10:51 -0500)]
1. Clean up CMake files for finding and linking boost and CMake files
for examples
2. Instruction prefix decoding on x86 should not default to 32-bit
3. m_Suceessors in the InstructionAPI::Instruction class is not copied in the assignment
operator and copy constructor
4. Because InstructionAPI::Instruction objects are now copied by value,
the raw bytes of an instruction may now live on stack and the pointer to
these raw bytes are not persistent.

19 months agoMerge, fix test4_3, fix examples build
Bill Williams [Mon, 16 Apr 2018 17:00:07 +0000 (12:00 -0500)]
Merge, fix test4_3, fix examples build

19 months agoMerge, fix test4_3, fix examples build
Bill Williams [Mon, 16 Apr 2018 16:58:44 +0000 (11:58 -0500)]
Merge, fix test4_3, fix examples build

19 months agoFixes for test crashes
Bill Williams [Thu, 5 Apr 2018 18:54:04 +0000 (13:54 -0500)]
Fixes for test crashes

19 months agoCorrecting declaration of variable for the value of DW_AT_comp_dir of Modules.
Sasha Nicolas [Wed, 4 Apr 2018 22:58:11 +0000 (17:58 -0500)]
Correcting declaration of variable for the value of DW_AT_comp_dir of Modules.

19 months agoMerge branch 'master' into new-parallel-parsing
Bill Williams [Tue, 3 Apr 2018 16:19:36 +0000 (11:19 -0500)]
Merge branch 'master' into new-parallel-parsing

19 months agoMerge branch 'sasha/dwarf-absolute-filenames'
Sasha Nicolas [Sat, 31 Mar 2018 00:42:15 +0000 (19:42 -0500)]
Merge branch 'sasha/dwarf-absolute-filenames'

19 months agoAdding getCompDir method to Module.
Sasha Nicolas [Sat, 31 Mar 2018 00:37:56 +0000 (19:37 -0500)]
Adding getCompDir method to Module.
This method returns the DW_AT_comp_dir of Compilation Units.

19 months agoMerge pull request #446 from mxz297/powerpc_and_loop
Xiaozhu Meng [Thu, 29 Mar 2018 21:28:36 +0000 (16:28 -0500)]
Merge pull request #446 from mxz297/powerpc_and_loop

Fixes for testsuite failures on powerv7 and block boundary aligning for overlapping instructions

19 months agoWhen checking whether an address is consistent with instructionsin a 446/head
Xiaozhu Meng [Thu, 29 Mar 2018 20:55:56 +0000 (15:55 -0500)]
When checking whether an address is consistent with instructionsin a
block, first check whether the address is within the block

19 months agoShould continue to check other CIEs when we cannot find FDE in one of the CIE
Xiaozhu Meng [Thu, 29 Mar 2018 15:11:04 +0000 (10:11 -0500)]
Should continue to check other CIEs when we cannot find FDE in one of the CIE

19 months agoppc32 and ppc64 should use the same formatter
Xiaozhu Meng [Wed, 28 Mar 2018 21:36:00 +0000 (16:36 -0500)]
ppc32 and ppc64 should use the same formatter

19 months agoNeed to flush trap mapping table into the mutatee after instrumentation for registeri...
Xiaozhu Meng [Mon, 26 Mar 2018 21:31:36 +0000 (16:31 -0500)]
Need to flush trap mapping table into the mutatee after instrumentation for registering callbacks

19 months agoWhen dealing with overlapping instructions, we should align block as
Xiaozhu Meng [Thu, 22 Mar 2018 17:14:15 +0000 (12:14 -0500)]
When dealing with overlapping instructions, we should align block as
soon as possible, correctly split blocks, anc create new fall-through
edges

19 months agoAdd instruction semantics for extsw on powerpc
Xiaozhu Meng [Mon, 19 Mar 2018 16:56:34 +0000 (11:56 -0500)]
Add instruction semantics for extsw on powerpc

19 months agoFixing problem of relative paths from libdw.
Sasha Nicolas [Tue, 27 Mar 2018 21:12:12 +0000 (16:12 -0500)]
Fixing problem of relative paths from libdw.
Now all paths coming from libdw dwarf_filesrc() and dwarf_linesrc() are
being checked and converted to be absolute.

19 months agoPrevious commits broke the build. This is to fix the compiling, but the changes done...
Sasha Nicolas [Wed, 21 Mar 2018 22:34:18 +0000 (17:34 -0500)]
Previous commits broke the build. This is to fix the compiling, but the changes done in the commits should be examined.

19 months agoMerge pull request #441 from thomasdullien/master
Bill Williams [Tue, 20 Mar 2018 19:50:43 +0000 (14:50 -0500)]
Merge pull request #441 from thomasdullien/master

Very minor clean-up a particualrly ugly piece of code.

19 months agoFix segfault due to missing arguments in call to parse_printf 441/head
Thomas Dullien [Tue, 20 Mar 2018 15:09:57 +0000 (16:09 +0100)]
Fix segfault due to missing arguments in call to parse_printf

19 months agoMerge remote-tracking branch 'upstream/master'
Thomas Dullien [Tue, 20 Mar 2018 09:28:07 +0000 (10:28 +0100)]
Merge remote-tracking branch 'upstream/master'

19 months agoSW cleanup
Bill Williams [Mon, 19 Mar 2018 20:01:11 +0000 (15:01 -0500)]
SW cleanup

19 months agoMerge pull request #437 from mxz297/ret_crossarch
Xiaozhu Meng [Mon, 19 Mar 2018 16:12:34 +0000 (11:12 -0500)]
Merge pull request #437 from mxz297/ret_crossarch

Fixes for non-returning functions, endianness for cross architecture parsing, and powerpc instruction decoding. In addition, fix failures in testsuite on x86/64

19 months agoFix DWARF parsing for arraies 437/head
Xiaozhu Meng [Mon, 19 Mar 2018 16:09:01 +0000 (11:09 -0500)]
Fix DWARF parsing for arraies

20 months agoVery minor clean-up a particualrly ugly piece of code.
Thomas Dullien [Mon, 19 Mar 2018 11:37:55 +0000 (12:37 +0100)]
Very minor clean-up a particualrly ugly piece of code.

20 months agoIn loop anaylsis, visit blocks according to the starting addresses to
Xiaozhu Meng [Fri, 16 Mar 2018 14:10:52 +0000 (09:10 -0500)]
In loop anaylsis, visit blocks according to the starting addresses to
ensure deterministic results. And ignore catch edges in loop analysis

20 months agoDisable testing code
Bill Williams [Tue, 13 Mar 2018 17:57:21 +0000 (12:57 -0500)]
Disable testing code

20 months agoFix unsafe iteration
Bill Williams [Tue, 13 Mar 2018 17:57:06 +0000 (12:57 -0500)]
Fix unsafe iteration

20 months agoFix for libelf install glob
Bill Williams [Tue, 13 Mar 2018 17:56:50 +0000 (12:56 -0500)]
Fix for libelf install glob

20 months agoParseAPI fixes: test1_1 create now passes
Bill Williams [Tue, 13 Mar 2018 17:56:30 +0000 (12:56 -0500)]
ParseAPI fixes: test1_1 create now passes

20 months agoHandle wait instruction on powerpc and add vrsave SPR
Xiaozhu Meng [Thu, 8 Mar 2018 20:11:24 +0000 (14:11 -0600)]
Handle wait instruction on powerpc and add vrsave SPR

20 months agoFix a few powerpc instruction decoding problems and the endianness issue
Xiaozhu Meng [Thu, 8 Mar 2018 19:15:50 +0000 (13:15 -0600)]
Fix a few powerpc instruction decoding problems and the endianness issue
of code sections that are not named ".text"

20 months agoSymtab fixes for ARM
Bill Williams [Tue, 6 Mar 2018 21:37:37 +0000 (15:37 -0600)]
Symtab fixes for ARM

20 months agoDelete deprecated #ifdef in liveness analysis
Xiaozhu Meng [Thu, 1 Mar 2018 19:41:10 +0000 (13:41 -0600)]
Delete deprecated #ifdef in liveness analysis

20 months agoCheckpoint for ARM testing
Bill Williams [Wed, 21 Feb 2018 19:45:49 +0000 (13:45 -0600)]
Checkpoint for ARM testing

20 months agoMerge John's changes and update test suite.
Bill Williams [Tue, 20 Feb 2018 20:35:23 +0000 (14:35 -0600)]
Merge John's changes and update test suite.

20 months agoShould ignore setting function return status when the function is known
Xiaozhu Meng [Sun, 18 Feb 2018 16:56:06 +0000 (10:56 -0600)]
Should ignore setting function return status when the function is known
as non-returning.

20 months agoHandle data endianness in parsing try/catch blocks, so it can be
Xiaozhu Meng [Sun, 18 Feb 2018 16:18:40 +0000 (10:18 -0600)]
Handle data endianness in parsing try/catch blocks, so it can be
cross-architecture

21 months agoShould delay parsing tail call edges when the return status of the tail
Xiaozhu Meng [Fri, 16 Feb 2018 16:40:11 +0000 (10:40 -0600)]
Should delay parsing tail call edges when the return status of the tail
callee is still UNSET

21 months agoFor known non-returning functions, we should ignore possible conflicting
Xiaozhu Meng [Fri, 16 Feb 2018 16:22:46 +0000 (10:22 -0600)]
For known non-returning functions, we should ignore possible conflicting
non-returning analysis results and still treat them as non-returning.

21 months agoCleanup: remove dead code, use call_once for singleton-style init
Bill Williams [Fri, 9 Feb 2018 17:24:32 +0000 (11:24 -0600)]
Cleanup: remove dead code, use call_once for singleton-style init

21 months agoadd guard around cilk include file 416/head
John Mellor-Crummey [Fri, 9 Feb 2018 02:28:23 +0000 (20:28 -0600)]
add guard around cilk include file

21 months agoavoid initializing c++ object in an inner scope, which requires synchronization
John Mellor-Crummey [Fri, 9 Feb 2018 02:26:58 +0000 (20:26 -0600)]
avoid initializing c++ object in an inner scope, which requires synchronization

21 months agoadjust lazy initialization of rose register semantic to be thread safe using call_once
John Mellor-Crummey [Thu, 8 Feb 2018 21:37:49 +0000 (15:37 -0600)]
adjust lazy initialization of rose register semantic to be thread safe using call_once

21 months agosimplify openmp parallelization in Parser.C
John Mellor-Crummey [Sun, 4 Feb 2018 06:42:42 +0000 (00:42 -0600)]
simplify openmp parallelization in Parser.C

21 months agoMerge pull request #410 from jmellorcrummey/cuda-machine
Bill Williams [Fri, 26 Jan 2018 20:04:10 +0000 (14:04 -0600)]
Merge pull request #410 from jmellorcrummey/cuda-machine

Add basic support for EM_CUDA binary type

21 months agoMerge branch 'new-parallel-parsing' of https://github.com/jmellorcrummey/dyninst...
John Mellor-Crummey [Thu, 25 Jan 2018 05:19:40 +0000 (23:19 -0600)]
Merge branch 'new-parallel-parsing' of https://github.com/jmellorcrummey/dyninst into new-parallel-parsing

Conflicts:
symtabAPI/src/dwarfWalker.C

21 months agobill's changes to parallelize symtab.
John Mellor-Crummey [Thu, 25 Jan 2018 05:15:37 +0000 (23:15 -0600)]
bill's changes to parallelize symtab.

21 months agobill's changes to parallelize symtab.
John Mellor-Crummey [Thu, 25 Jan 2018 05:15:37 +0000 (23:15 -0600)]
bill's changes to parallelize symtab.

21 months agorefine cilk configuration of Parser.C for data race detection
John Mellor-Crummey [Thu, 25 Jan 2018 03:34:38 +0000 (21:34 -0600)]
refine cilk configuration of Parser.C for data race detection

add a lock for cilkscreen that causes a deadlock in openmp.
is this really correct?

fix cilk configuration for lock free queue.

21 months agouse cilk to eliminate a data race in SymtabCodeSource.C
John Mellor-Crummey [Thu, 25 Jan 2018 03:29:26 +0000 (21:29 -0600)]
use cilk to eliminate a data race in SymtabCodeSource.C

add configuration that enables cilk and openmp to coexist
so the programming model can be flipped with a cmake setting

eliminate an inconsequential data race that occurred when
marking an item as "seen" more than once in a tbb concurrent
hash table.

21 months agocorrect the include path for tbb hash map
John Mellor-Crummey [Wed, 24 Jan 2018 22:49:17 +0000 (16:49 -0600)]
correct the include path for tbb hash map

21 months agoConverted more hidden options to proper options.
Bill Williams [Wed, 24 Jan 2018 19:36:56 +0000 (13:36 -0600)]
Converted more hidden options to proper options.

21 months agoParallelize iteration over module DIEs.
Bill Williams [Wed, 24 Jan 2018 19:31:22 +0000 (13:31 -0600)]
Parallelize iteration over module DIEs.

21 months agoadd draft parallelization of parse frames creation
John Mellor-Crummey [Wed, 24 Jan 2018 17:18:51 +0000 (11:18 -0600)]
add draft parallelization of parse frames creation

21 months agoadd debugging support to LockFreeQueue.h
John Mellor-Crummey [Wed, 24 Jan 2018 17:18:20 +0000 (11:18 -0600)]
add debugging support to LockFreeQueue.h

21 months agorefine CodeRegion:;contains so that offset() is not called redundantly
John Mellor-Crummey [Wed, 24 Jan 2018 17:16:59 +0000 (11:16 -0600)]
refine CodeRegion:;contains so that offset() is not called redundantly

21 months agoMerge pull request #427 from nedwill/master
Bill Williams [Mon, 22 Jan 2018 16:55:04 +0000 (10:55 -0600)]
Merge pull request #427 from nedwill/master

Fix sh_info for VERNEED section

21 months agoFix places where we fail to check for empty section headers/no shstrtab section.
Bill Williams [Wed, 17 Jan 2018 20:15:13 +0000 (14:15 -0600)]
Fix places where we fail to check for empty section headers/no shstrtab section.

22 months agoadd openmp parallelism to SymtabCodeSource init_regions and init_hints
John Mellor-Crummey [Mon, 15 Jan 2018 23:29:58 +0000 (17:29 -0600)]
add openmp parallelism to SymtabCodeSource init_regions and init_hints

to avoid serialization in these parallel regions, replaced mutual
exclusion in symtab queries with phase-fair read locks.

22 months agoremove unnecessary mutex guard around C++ demangler
John Mellor-Crummey [Mon, 15 Jan 2018 23:27:51 +0000 (17:27 -0600)]
remove unnecessary mutex guard around C++ demangler

22 months agofirst attempt to add parallelism to symtab code source.
John Mellor-Crummey [Sun, 14 Jan 2018 19:04:37 +0000 (13:04 -0600)]
first attempt to add parallelism to symtab code source.

22 months agoremove unnecessary lock guard in SymtabCodeSource::lookup_region
John Mellor-Crummey [Sat, 13 Jan 2018 03:51:24 +0000 (21:51 -0600)]
remove unnecessary lock guard in SymtabCodeSource::lookup_region

22 months agoShould only check for thunk call when it is a call instruction
Xiaozhu Meng [Fri, 12 Jan 2018 21:54:30 +0000 (15:54 -0600)]
Should only check for thunk call when it is a call instruction

22 months agofix IBSTree-fast: add missing decl and missing unlock on one path
John Mellor-Crummey [Fri, 12 Jan 2018 14:06:00 +0000 (08:06 -0600)]
fix IBSTree-fast: add missing decl and missing unlock on one path

22 months agoFix sh_info for VERNEED section 427/head
Ned Williamson [Fri, 12 Jan 2018 01:41:20 +0000 (17:41 -0800)]
Fix sh_info for VERNEED section

This field used to contain verneednum, but now is hardcoded to 2.
This changes restores the original correct behavior.

22 months agoadjust switches to control cilk vs. openmp support
John Mellor-Crummey [Thu, 11 Jan 2018 22:23:17 +0000 (16:23 -0600)]
adjust switches to control cilk vs. openmp support

22 months agoParseAPI should treat IFUNC type symbols as code
Xiaozhu Meng [Thu, 11 Jan 2018 22:19:13 +0000 (16:19 -0600)]
ParseAPI should treat IFUNC type symbols as code

22 months agoremove lock guard on block map that causes deadlock.
John Mellor-Crummey [Thu, 11 Jan 2018 21:46:48 +0000 (15:46 -0600)]
remove lock guard on block map that causes deadlock.

22 months agoremove dead code in singleton_object_pool.h
John Mellor-Crummey [Thu, 11 Jan 2018 15:51:47 +0000 (09:51 -0600)]
remove dead code in singleton_object_pool.h

22 months agoMove to tbb::scalable_alloc instead of boost::pool for small object allocation in...
John Mellor-Crummey [Thu, 11 Jan 2018 15:38:55 +0000 (09:38 -0600)]
Move to tbb::scalable_alloc instead of boost::pool for small object allocation in InstructionAPI.

resolved conflict with common/src/singleton_object_pool.h by completely replacing old version
resolved build failure by adding tbbmalloc to libraries list in parseAPI/CMakeLists.txt

22 months agoMerge branch 'new-parallel-parsing' of https://github.com/jmellorcrummey/dyninst...
John Mellor-Crummey [Wed, 10 Jan 2018 17:36:05 +0000 (11:36 -0600)]
Merge branch 'new-parallel-parsing' of https://github.com/jmellorcrummey/dyninst into new-parallel-parsing

22 months agofinalize race detector annotations for ParseData
John Mellor-Crummey [Wed, 10 Jan 2018 17:13:29 +0000 (11:13 -0600)]
finalize  race detector annotations for ParseData

remove annotations from IBSTree operations
use TBB concurrent hash map as fake lock protecting its operations
add missing annotations to cover all TBB concurrent hash map operations

22 months agofix indentation in Type.C
John Mellor-Crummey [Mon, 8 Jan 2018 23:31:42 +0000 (17:31 -0600)]
fix indentation in Type.C

22 months agorefined (and final) support for race detection for singleton object pool
John Mellor-Crummey [Mon, 8 Jan 2018 23:26:47 +0000 (17:26 -0600)]
refined (and final) support for race detection for singleton object pool

22 months agoclean up race detection annotations for FuncExtent
John Mellor-Crummey [Mon, 8 Jan 2018 04:42:27 +0000 (22:42 -0600)]
clean up race detection annotations for FuncExtent

22 months agoreplace boost locks with phase-fair reader-writer locks
John Mellor-Crummey [Mon, 8 Jan 2018 04:36:22 +0000 (22:36 -0600)]
replace boost locks with phase-fair reader-writer locks

race detector annotations in phase-fair reader-writer lock suppress
race reports that would occur with boost reader/writer locks.

22 months agoinclude race detector annotations in Symtab.C
John Mellor-Crummey [Mon, 8 Jan 2018 04:19:37 +0000 (22:19 -0600)]
include race detector annotations in Symtab.C