[DynInst_API:] [dyninst/dyninst] 87cf1e: parsing binaries with OpenMP divide-and-conquer


Date: Wed, 21 Feb 2018 14:52:00 -0800
From: Bill Williams <bill@xxxxxxxxxxx>
Subject: [DynInst_API:] [dyninst/dyninst] 87cf1e: parsing binaries with OpenMP divide-and-conquer
  Branch: refs/heads/new-parallel-parsing
  Home:   https://github.com/dyninst/dyninst
  Commit: 87cf1e1332d2ba4e54c7a81ca6b06e610f599d79
      https://github.com/dyninst/dyninst/commit/87cf1e1332d2ba4e54c7a81ca6b06e610f599d79
  Author: John Mellor-Crummey <johnmc@xxxxxxxx>
  Date:   2017-11-03 (Fri, 03 Nov 2017)

  Changed paths:
    M cmake/Modules/FindCilk.cmake
    M common/src/arch-x86.C
    M parseAPI/src/Parser.C
    M parseAPI/src/Parser.h

  Log Message:
  -----------
  parsing binaries with OpenMP divide-and-conquer

this version uses the fine-grain synchronization from the Cilk version


  Commit: a0e74aad0b809c7dcd16a4dcf3f2ba7dbf86c0cf
      https://github.com/dyninst/dyninst/commit/a0e74aad0b809c7dcd16a4dcf3f2ba7dbf86c0cf
  Author: John Mellor-Crummey <johnmc@xxxxxxxx>
  Date:   2017-11-03 (Fri, 03 Nov 2017)

  Changed paths:
    M parseAPI/src/Parser.C
    M parseAPI/src/Parser.h

  Log Message:
  -----------
  coarse-grain merging of new frames


  Commit: 47392a17f1ce4058833ed2c84308c59a5b04247a
      https://github.com/dyninst/dyninst/commit/47392a17f1ce4058833ed2c84308c59a5b04247a
  Author: John Mellor-Crummey <johnmc@xxxxxxxx>
  Date:   2017-11-04 (Sat, 04 Nov 2017)

  Changed paths:
    M parseAPI/src/Parser.C
    M parseAPI/src/Parser.h

  Log Message:
  -----------
  coarse grain merging of new frame vectors


  Commit: 1aae731da247e1dc428ad20d37fe1d166d6fdf96
      https://github.com/dyninst/dyninst/commit/1aae731da247e1dc428ad20d37fe1d166d6fdf96
  Author: John Mellor-Crummey <johnmc@xxxxxxxx>
  Date:   2017-11-04 (Sat, 04 Nov 2017)

  Changed paths:
    M parseAPI/src/Parser.C
    M parseAPI/src/Parser.h

  Log Message:
  -----------
  revert to set insertion under mutex


  Commit: 133d5c6466e946a6418ca832b82043d0ac87d0bd
      https://github.com/dyninst/dyninst/commit/133d5c6466e946a6418ca832b82043d0ac87d0bd
  Author: John Mellor-Crummey <johnmc@xxxxxxxx>
  Date:   2017-11-05 (Sun, 05 Nov 2017)

  Changed paths:
    M parseAPI/src/Parser.C
    M parseAPI/src/Parser.h
    A parseAPI/src/WaitFreeQueue.h

  Log Message:
  -----------
  add wait free queue for collecting frames that need to be analyzed.


  Commit: a54b0280918bf1aa41e059088184457a50009560
      https://github.com/dyninst/dyninst/commit/a54b0280918bf1aa41e059088184457a50009560
  Author: John Mellor-Crummey <johnmc@xxxxxxxx>
  Date:   2017-11-05 (Sun, 05 Nov 2017)

  Changed paths:
    M parseAPI/h/CodeSource.h
    M parseAPI/src/SymtabCodeSource.C

  Log Message:
  -----------
  manage SymtabCodeSource::_lookup_cache as an atomic variable


  Commit: 835fe7b9eefdff064910ca6f20fe9284b65d66a0
      https://github.com/dyninst/dyninst/commit/835fe7b9eefdff064910ca6f20fe9284b65d66a0
  Author: John Mellor-Crummey <johnmc@xxxxxxxx>
  Date:   2017-11-05 (Sun, 05 Nov 2017)

  Changed paths:
    M parseAPI/src/Parser.C

  Log Message:
  -----------
  parallel cleanup: OpenMP for loop with schedule(auto)


  Commit: 5133612b873edbb74c72769c62e38f8bc6314633
      https://github.com/dyninst/dyninst/commit/5133612b873edbb74c72769c62e38f8bc6314633
  Author: John Mellor-Crummey <johnmc@xxxxxxxx>
  Date:   2017-11-05 (Sun, 05 Nov 2017)

  Changed paths:
    A parseAPI/h/WaitFreeQueue.h
    R parseAPI/src/WaitFreeQueue.h

  Log Message:
  -----------
  relocate WaitFreeQueue.h; add Dyninst header/footer


  Commit: 760af5cc2bc7e0414ce71ea5227c53d03ed69545
      https://github.com/dyninst/dyninst/commit/760af5cc2bc7e0414ce71ea5227c53d03ed69545
  Author: John Mellor-Crummey <johnmc@xxxxxxxx>
  Date:   2017-11-06 (Mon, 06 Nov 2017)

  Changed paths:
    M parseAPI/h/CFGFactory.h
    M parseAPI/src/CFGFactory.C

  Log Message:
  -----------
  replace CFG factory edge, block, and function lists with wait-free lists


  Commit: 655af562c07a079381dfe814e8da7c40f1a19929
      https://github.com/dyninst/dyninst/commit/655af562c07a079381dfe814e8da7c40f1a19929
  Author: John Mellor-Crummey <johnmc@xxxxxxxx>
  Date:   2017-11-08 (Wed, 08 Nov 2017)

  Changed paths:
    M parseAPI/h/WaitFreeQueue.h
    M parseAPI/src/ParseData.h
    M parseAPI/src/Parser.C
    M parseAPI/src/Parser.h

  Log Message:
  -----------
  openmp parallelization of parseAPI based on (mostly) wait-free queue

- augment the wait-free queue to support the parallelization
    add peek, steal, pop operations. pop is not wait-free.

- ParseData.h now has a flag for marking when a frame is being processed

- Parser.C/h include a sophisticated OpenMP parallelization where a master
  thread spawns work found in a (mostly) wait-free queue.


  Commit: d53cdbadfc4806fddd2c6826d118a0a0bf2864bd
      https://github.com/dyninst/dyninst/commit/d53cdbadfc4806fddd2c6826d118a0a0bf2864bd
  Author: John Mellor-Crummey <johnmc@xxxxxxxx>
  Date:   2017-11-08 (Wed, 08 Nov 2017)

  Changed paths:
    M cmake/Modules/FindCilk.cmake
    M parseAPI/src/Parser.C

  Log Message:
  -----------
  commit changes to use cilk to go detect data races on another machine with an intel compiler.


  Commit: 9d64ee6ba54beb6401b465386f4f45f186b586e9
      https://github.com/dyninst/dyninst/commit/9d64ee6ba54beb6401b465386f4f45f186b586e9
  Author: John Mellor-Crummey <jmellorcrummey@xxxxxxxxxxx>
  Date:   2017-11-10 (Fri, 10 Nov 2017)

  Changed paths:
    M symtabAPI/src/Module.C

  Log Message:
  -----------
  fix race clearing vector in parseLineInformation.


  Commit: f27790a883ee86d89d04090e58fa6eb410d00143
      https://github.com/dyninst/dyninst/commit/f27790a883ee86d89d04090e58fa6eb410d00143
  Author: John Mellor-Crummey <johnmc@xxxxxxxx>
  Date:   2017-11-12 (Sun, 12 Nov 2017)

  Changed paths:
    M cmake/Modules/FindCilk.cmake
    M parseAPI/src/Parser.C

  Log Message:
  -----------
  switch from Cilk to OpenMP. Fix #if that control programming model selection.


  Commit: 425350ed1de0e6e409d116e819ddaf87fc3161bd
      https://github.com/dyninst/dyninst/commit/425350ed1de0e6e409d116e819ddaf87fc3161bd
  Author: John Mellor-Crummey <johnmc@xxxxxxxx>
  Date:   2017-11-13 (Mon, 13 Nov 2017)

  Changed paths:
    M parseAPI/h/WaitFreeQueue.h
    M parseAPI/src/Parser.C
    M parseAPI/src/Parser.h
    M parseAPI/src/ParserDetails.C

  Log Message:
  -----------
  replace frames vector with wait-free queue to eliminate data races


  Commit: 99d19717219d426cdfc827f95f3a4acfed00a369
      https://github.com/dyninst/dyninst/commit/99d19717219d426cdfc827f95f3a4acfed00a369
  Author: John Mellor-Crummey <johnmc@xxxxxxxx>
  Date:   2017-11-14 (Tue, 14 Nov 2017)

  Changed paths:
    M parseAPI/src/Parser.C

  Log Message:
  -----------
  switch cleanup frames from tasking loop to auto scheduled for loop

switch cleanup frames loop processing wfq items to one that
empties wfq into vector and applies autoscheduled for loop.


  Commit: b5d2400202395aa051f4cea5972955e4d2272460
      https://github.com/dyninst/dyninst/commit/b5d2400202395aa051f4cea5972955e4d2272460
  Author: John Mellor-Crummey <johnmc@xxxxxxxx>
  Date:   2017-11-18 (Sat, 18 Nov 2017)

  Changed paths:
    M parseAPI/h/CFGFactory.h
    A parseAPI/h/LockFreeQueue.h
    R parseAPI/h/WaitFreeQueue.h
    M parseAPI/src/Parser.C
    M parseAPI/src/Parser.h

  Log Message:
  -----------
  rename WaitFreeQueue.h to LockFreeQueue.h and fix references


  Commit: 07c1ec3fda0551b7f56e7640743b3c955af5b308
      https://github.com/dyninst/dyninst/commit/07c1ec3fda0551b7f56e7640743b3c955af5b308
  Author: John Mellor-Crummey <johnmc@xxxxxxxx>
  Date:   2017-11-19 (Sun, 19 Nov 2017)

  Changed paths:
    M parseAPI/h/CFGFactory.h
    M parseAPI/src/CFGFactory.C

  Log Message:
  -----------
  clean out dead code in CFGFactory


  Commit: 70c1c1b4e8e10bca857292f8ce299817b3b55bc9
      https://github.com/dyninst/dyninst/commit/70c1c1b4e8e10bca857292f8ce299817b3b55bc9
  Author: John Mellor-Crummey <johnmc@xxxxxxxx>
  Date:   2017-11-24 (Fri, 24 Nov 2017)

  Changed paths:
    A cmake/endian.cmake
    M cmake/shared.cmake

  Log Message:
  -----------
  check and report endianness with cmake


  Commit: a00056bec6a0265afb592944dde2ff461b525e8d
      https://github.com/dyninst/dyninst/commit/a00056bec6a0265afb592944dde2ff461b525e8d
  Author: John Mellor-Crummey <johnmc@xxxxxxxx>
  Date:   2017-11-25 (Sat, 25 Nov 2017)

  Changed paths:
    M common/CMakeLists.txt
    A common/h/mcs-lock.h
    A common/h/pfq-rwlock.h
    A common/src/mcs-lock.C
    A common/src/pfq-rwlock.C

  Log Message:
  -----------
  add support for MCS locks and phase-fair reader writer locks


  Commit: 7ada55c62e60ae61e7051892376c9eebc693f02f
      https://github.com/dyninst/dyninst/commit/7ada55c62e60ae61e7051892376c9eebc693f02f
  Author: John Mellor-Crummey <johnmc@xxxxxxxx>
  Date:   2017-11-25 (Sat, 25 Nov 2017)

  Changed paths:
    M cmake/endian.cmake

  Log Message:
  -----------
  fix cmake endian check

rename #define names so that they won't conflict with others


  Commit: 137f4a15564665bc77792eff11d978c68160badb
      https://github.com/dyninst/dyninst/commit/137f4a15564665bc77792eff11d978c68160badb
  Author: John Mellor-Crummey <johnmc@xxxxxxxx>
  Date:   2017-11-25 (Sat, 25 Nov 2017)

  Changed paths:
    M common/h/IBSTree.h

  Log Message:
  -----------
  replace synchronization in IBSTree.h with phase fair locks

boost uses mutual exclusion implemented with  pthread locks
to implement boost::upgrade_lockable_adapter<boost::upgrade_mutex>.
unnecessary mutual exclusion significantly hurts scalability of
fine-grain parallel operations. replace this synchronization with
phase-fair reader/writer locks. In the absence of writers, these
locks require only readers to perform only a fetch-and-add and a test
at entry and exit.


  Commit: 3476f519d7a6a07e451e4f5676a00a354d846ecc
      https://github.com/dyninst/dyninst/commit/3476f519d7a6a07e451e4f5676a00a354d846ecc
  Author: John Mellor-Crummey <johnmc@xxxxxxxx>
  Date:   2017-11-26 (Sun, 26 Nov 2017)

  Changed paths:
    M parseAPI/src/Parser.C

  Log Message:
  -----------
  clean up cilk and serial versions of Parser.C


  Commit: cd8ca5c0d6df1a98c27e026333710a0f5c72e691
      https://github.com/dyninst/dyninst/commit/cd8ca5c0d6df1a98c27e026333710a0f5c72e691
  Author: John Mellor-Crummey <johnmc@xxxxxxxx>
  Date:   2017-11-26 (Sun, 26 Nov 2017)

  Changed paths:
    M parseAPI/h/CFG.h

  Log Message:
  -----------
  add lock_guard to CFG.h - needed once it isn't available from IBSTree.h


  Commit: 03e1a824772079e5fa2704cec10e6cb53fd9e5cd
      https://github.com/dyninst/dyninst/commit/03e1a824772079e5fa2704cec10e6cb53fd9e5cd
  Author: John Mellor-Crummey <johnmc@xxxxxxxx>
  Date:   2017-11-27 (Mon, 27 Nov 2017)

  Changed paths:
    M common/h/IBSTree.h

  Log Message:
  -----------
  fix IBSTree iterators.


  Commit: 2d4c889dbb384f83cf71794596e81308f4669732
      https://github.com/dyninst/dyninst/commit/2d4c889dbb384f83cf71794596e81308f4669732
  Author: John Mellor-Crummey <jmellorcrummey@xxxxxxxxxxx>
  Date:   2018-01-03 (Wed, 03 Jan 2018)

  Changed paths:
    M symtabAPI/h/Symtab.h
    M symtabAPI/src/Symtab-lookup.C
    M symtabAPI/src/Symtab.C
    M symtabAPI/src/emitElf.C
    M symtabAPI/src/parseDwarf.C

  Log Message:
  -----------
  fix data races associated with Symtab error reporting
make serr a thread local variable in Symtab class
adjust Symtab files to manipulate serr through a method
add race detector annotation to avoid race reporting for thread local


  Commit: 9a383aaa80011453d35b22d303e64517be46326e
      https://github.com/dyninst/dyninst/commit/9a383aaa80011453d35b22d303e64517be46326e
  Author: John Mellor-Crummey <jmellorcrummey@xxxxxxxxxxx>
  Date:   2018-01-03 (Wed, 03 Jan 2018)

  Changed paths:
    M symtabAPI/src/Type-mem.h
    M symtabAPI/src/Type.C

  Log Message:
  -----------
  scrub any stale race detector annotations from newly allocated memory


  Commit: 22097dfaed1244999edd211b9d9053eb74cd84fe
      https://github.com/dyninst/dyninst/commit/22097dfaed1244999edd211b9d9053eb74cd84fe
  Author: John Mellor-Crummey <jmellorcrummey@xxxxxxxxxxx>
  Date:   2018-01-03 (Wed, 03 Jan 2018)

  Changed paths:
    M common/src/singleton_object_pool.h

  Log Message:
  -----------
  add race detector annotations to singleton pool


  Commit: 6cf198de5e795044a541a3a1c1f8732be174f32f
      https://github.com/dyninst/dyninst/commit/6cf198de5e795044a541a3a1c1f8732be174f32f
  Author: John Mellor-Crummey <jmellorcrummey@xxxxxxxxxxx>
  Date:   2018-01-03 (Wed, 03 Jan 2018)

  Changed paths:
    A common/src/race-detector-annotations.C

  Log Message:
  -----------
  add race detector annotations implementation


  Commit: 73cc0d40df8f4ebee0c436c68b1b02ce27f100f4
      https://github.com/dyninst/dyninst/commit/73cc0d40df8f4ebee0c436c68b1b02ce27f100f4
  Author: John Mellor-Crummey <jmellorcrummey@xxxxxxxxxxx>
  Date:   2018-01-03 (Wed, 03 Jan 2018)

  Changed paths:
    M common/src/mcs-lock.C
    M common/src/pfq-rwlock.C

  Log Message:
  -----------
  add race detector annotations to mcs and reader writer locks


  Commit: fd8073af58aaaa4be9b306a4e6406e67dd8268d3
      https://github.com/dyninst/dyninst/commit/fd8073af58aaaa4be9b306a4e6406e67dd8268d3
  Author: John Mellor-Crummey <jmellorcrummey@xxxxxxxxxxx>
  Date:   2018-01-03 (Wed, 03 Jan 2018)

  Changed paths:
    A common/h/race-detector-annotations.h

  Log Message:
  -----------
  add definition of race detector annotations


  Commit: 2233767a255ce76bc488e5e3469a13561d4455ba
      https://github.com/dyninst/dyninst/commit/2233767a255ce76bc488e5e3469a13561d4455ba
  Author: John Mellor-Crummey <jmellorcrummey@xxxxxxxxxxx>
  Date:   2018-01-03 (Wed, 03 Jan 2018)

  Changed paths:
    M instructionAPI/src/InstructionAST.C

  Log Message:
  -----------
  promote static DummyExpr to global scope
avoid overhead and data race report associated with initialization of
DummyExpr instance inside operator==


  Commit: f5d95d704d6924d4450631e1af1e7f6a84e7d8ec
      https://github.com/dyninst/dyninst/commit/f5d95d704d6924d4450631e1af1e7f6a84e7d8ec
  Author: John Mellor-Crummey <jmellorcrummey@xxxxxxxxxxx>
  Date:   2018-01-05 (Fri, 05 Jan 2018)

  Changed paths:
    M dataflowAPI/src/debug_dataflow.C
    M dataflowAPI/src/debug_dataflow.h
    M dataflowAPI/src/liveness.C
    M dataflowAPI/src/slicing.C
    M dataflowAPI/src/stackanalysis.C

  Log Message:
  -----------
  initialize and use dataflow analysis debugging flags safely

dataflow analysis debugging flags are now set upon demand just before
they are first inspected.  the new interface ensures that they are set
before they are ever inspected.  use of call_once guarantees that they
are only initialized once.  use of race detector annotations suppresses
benign races that arise from the use of the call_once idiom.


  Commit: d16b53dfc914d5c03109f942d635f50528b8cc99
      https://github.com/dyninst/dyninst/commit/d16b53dfc914d5c03109f942d635f50528b8cc99
  Author: John Mellor-Crummey <jmellorcrummey@xxxxxxxxxxx>
  Date:   2018-01-05 (Fri, 05 Jan 2018)

  Changed paths:
    M parseAPI/src/BoundFactCalculator.C
    M parseAPI/src/IndirectASTVisitor.C
    M parseAPI/src/IndirectASTVisitor.h
    M parseAPI/src/JumpTableFormatPred.C
    M parseAPI/src/JumpTableIndexPred.C
    M parseAPI/src/SymbolicExpression.C
    M parseAPI/src/SymbolicExpression.h

  Log Message:
  -----------
  change SymbolicExpression::cs from a static to a class member to eliminate data races

prior to this change, data races occurred on "static SymbolicExpression::cs"
when two threads used it concurrently, with each thread reading and writing
the variable.


  Commit: 45f9ffb470959421db6edf295a5081a44fbacb94
      https://github.com/dyninst/dyninst/commit/45f9ffb470959421db6edf295a5081a44fbacb94
  Author: John Mellor-Crummey <jmellorcrummey@xxxxxxxxxxx>
  Date:   2018-01-05 (Fri, 05 Jan 2018)

  Changed paths:
    M common/CMakeLists.txt

  Log Message:
  -----------
  add race detector annotations to CMakeLists.txt


  Commit: c83d6ca38d6ba45f758c0c6cc0bcb91a20f1f7e3
      https://github.com/dyninst/dyninst/commit/c83d6ca38d6ba45f758c0c6cc0bcb91a20f1f7e3
  Author: John Mellor-Crummey <jmellorcrummey@xxxxxxxxxxx>
  Date:   2018-01-05 (Fri, 05 Jan 2018)

  Changed paths:
    M parseAPI/src/CFGFactory.C

  Log Message:
  -----------
  after initializing a Function, scrub its access history before
adding the Function to a concurrent data structure to make it
visible to others. this avoids race reports from other threads
who read it after it becomes visible.
making the Function visible to
others.
 and making it visible to others
by adding it to a concurrent data structure,


  Commit: 4aede8d55f507dd94df0a1905fd7b53d17f3f4d1
      https://github.com/dyninst/dyninst/commit/4aede8d55f507dd94df0a1905fd7b53d17f3f4d1
  Author: John Mellor-Crummey <jmellorcrummey@xxxxxxxxxxx>
  Date:   2018-01-05 (Fri, 05 Jan 2018)

  Changed paths:
    M parseAPI/src/SymtabCodeSource.C

  Log Message:
  -----------
  suppress race reports when accessing region cache
maintained as an atomic in SymtabRegionSource::_lookup_cache


  Commit: b34022b855a16400165670a50793ab90f115d4dd
      https://github.com/dyninst/dyninst/commit/b34022b855a16400165670a50793ab90f115d4dd
  Author: John Mellor-Crummey <jmellorcrummey@xxxxxxxxxxx>
  Date:   2018-01-05 (Fri, 05 Jan 2018)

  Changed paths:
    M parseAPI/h/CFG.h

  Log Message:
  -----------
  avoid data races by adding lock_guard to Function::num_blocks and
Function::retstatus. (Function retstatus could be an atomic to
avoid locks if this is critical for performance.)


  Commit: 1c6863f1daaf4019423de601270942180891d796
      https://github.com/dyninst/dyninst/commit/1c6863f1daaf4019423de601270942180891d796
  Author: John Mellor-Crummey <jmellorcrummey@xxxxxxxxxxx>
  Date:   2018-01-07 (Sun, 07 Jan 2018)

  Changed paths:
    R cmake/Modules/FindCilk.cmake

  Log Message:
  -----------
  FindCilk not needed with icc. Cilk not interesting with icc.


  Commit: 43dd5eb6eb44df5650e7e89318c697b00605d0ec
      https://github.com/dyninst/dyninst/commit/43dd5eb6eb44df5650e7e89318c697b00605d0ec
  Author: John Mellor-Crummey <jmellorcrummey@xxxxxxxxxxx>
  Date:   2018-01-07 (Sun, 07 Jan 2018)

  Changed paths:
    M common/h/IBSTree-fast.h
    M common/h/race-detector-annotations.h
    M common/src/arch-x86.C
    M common/src/mcs-lock.C
    M common/src/pfq-rwlock.C
    M common/src/race-detector-annotations.C
    M common/src/singleton_object_pool.h
    M dataflowAPI/src/debug_dataflow.C
    M parseAPI/src/ParseData.C
    M parseAPI/src/ParseData.h
    M parseAPI/src/Parser.C
    M parseAPI/src/Parser.h
    M parseAPI/src/SymtabCodeSource.C
    M symtabAPI/src/Symtab.C

  Log Message:
  -----------
  race-free version with specific fake locks.


  Commit: cfa7543fe2b52fc826a05a5f0b451a70b277f201
      https://github.com/dyninst/dyninst/commit/cfa7543fe2b52fc826a05a5f0b451a70b277f201
  Author: John Mellor-Crummey <jmellorcrummey@xxxxxxxxxxx>
  Date:   2018-01-07 (Sun, 07 Jan 2018)

  Changed paths:
    M common/src/pfq-rwlock.C

  Log Message:
  -----------
  correct precise race detector annotations in phase-fair reader-writer lock


  Commit: 23c23303cce3b9fb1c737bcb670e0284e9e0a7dc
      https://github.com/dyninst/dyninst/commit/23c23303cce3b9fb1c737bcb670e0284e9e0a7dc
  Author: John Mellor-Crummey <jmellorcrummey@xxxxxxxxxxx>
  Date:   2018-01-07 (Sun, 07 Jan 2018)

  Changed paths:
    M symtabAPI/src/Symtab.C

  Log Message:
  -----------
  include race detector annotations in Symtab.C


  Commit: ec570aa0e577ac5ffd2fea87b6a6e8e4e5233cc6
      https://github.com/dyninst/dyninst/commit/ec570aa0e577ac5ffd2fea87b6a6e8e4e5233cc6
  Author: John Mellor-Crummey <jmellorcrummey@xxxxxxxxxxx>
  Date:   2018-01-07 (Sun, 07 Jan 2018)

  Changed paths:
    M common/h/IBSTree-fast.h

  Log Message:
  -----------
  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.


  Commit: 0451ad982bd301ac8f113584358447be76951c50
      https://github.com/dyninst/dyninst/commit/0451ad982bd301ac8f113584358447be76951c50
  Author: John Mellor-Crummey <jmellorcrummey@xxxxxxxxxxx>
  Date:   2018-01-07 (Sun, 07 Jan 2018)

  Changed paths:
    M parseAPI/src/Parser.C

  Log Message:
  -----------
  clean up race detection annotations for FuncExtent


  Commit: bcb01b9bdbcc8e11f4785fc88d41f543e88afb43
      https://github.com/dyninst/dyninst/commit/bcb01b9bdbcc8e11f4785fc88d41f543e88afb43
  Author: John Mellor-Crummey <jmellorcrummey@xxxxxxxxxxx>
  Date:   2018-01-08 (Mon, 08 Jan 2018)

  Changed paths:
    M common/src/singleton_object_pool.h

  Log Message:
  -----------
  refined (and final) support for race detection for singleton object pool


  Commit: fef15a15ab38663b6455b03d63d8c0a20ed0d054
      https://github.com/dyninst/dyninst/commit/fef15a15ab38663b6455b03d63d8c0a20ed0d054
  Author: John Mellor-Crummey <jmellorcrummey@xxxxxxxxxxx>
  Date:   2018-01-08 (Mon, 08 Jan 2018)

  Changed paths:
    M symtabAPI/src/Type.C

  Log Message:
  -----------
  fix indentation in Type.C


  Commit: 04b07505e1cb3e99519962541253b63809485ef6
      https://github.com/dyninst/dyninst/commit/04b07505e1cb3e99519962541253b63809485ef6
  Author: John Mellor-Crummey <jmellorcrummey@xxxxxxxxxxx>
  Date:   2018-01-10 (Wed, 10 Jan 2018)

  Changed paths:
    M parseAPI/src/ParseData.C
    M parseAPI/src/ParseData.h

  Log Message:
  -----------
  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


  Commit: 075dd24f73ad6b42272e368758cea8154630de8c
      https://github.com/dyninst/dyninst/commit/075dd24f73ad6b42272e368758cea8154630de8c
  Author: John Mellor-Crummey <jmellorcrummey@xxxxxxxxxxx>
  Date:   2018-01-10 (Wed, 10 Jan 2018)

  Changed paths:
    M common/h/IBSTree.h

  Log Message:
  -----------
  Merge branch 'new-parallel-parsing' of https://github.com/jmellorcrummey/dyninst into new-parallel-parsing


  Commit: 32075d0eac072ebda1db97af487bd0451d2c1544
      https://github.com/dyninst/dyninst/commit/32075d0eac072ebda1db97af487bd0451d2c1544
  Author: John Mellor-Crummey <jmellorcrummey@xxxxxxxxxxx>
  Date:   2018-01-11 (Thu, 11 Jan 2018)

  Changed paths:
    M common/src/singleton_object_pool.h
    M instructionAPI/CMakeLists.txt
    M instructionAPI/h/ArchSpecificFormatters.h
    M instructionAPI/h/BinaryFunction.h
    M instructionAPI/h/Dereference.h
    M instructionAPI/h/Instruction.h
    M instructionAPI/src/ArchSpecificFormatters.C
    M instructionAPI/src/Immediate.C
    M instructionAPI/src/Instruction.C
    M instructionAPI/src/InstructionDecoderImpl.C
    M instructionAPI/src/Register.C
    M parseAPI/CMakeLists.txt

  Log Message:
  -----------
  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


  Commit: a130b285f8727d7bb77041bb9d303d5946fc0d54
      https://github.com/dyninst/dyninst/commit/a130b285f8727d7bb77041bb9d303d5946fc0d54
  Author: John Mellor-Crummey <jmellorcrummey@xxxxxxxxxxx>
  Date:   2018-01-11 (Thu, 11 Jan 2018)

  Changed paths:
    M common/src/singleton_object_pool.h

  Log Message:
  -----------
  remove dead code in singleton_object_pool.h


  Commit: bac1d36275e43f412eb3da9a063d4d257ca20fa0
      https://github.com/dyninst/dyninst/commit/bac1d36275e43f412eb3da9a063d4d257ca20fa0
  Author: John Mellor-Crummey <johnmc@xxxxxxxx>
  Date:   2018-01-11 (Thu, 11 Jan 2018)

  Changed paths:
    M parseAPI/src/Parser.C

  Log Message:
  -----------
  remove lock guard on block map that causes deadlock.


  Commit: e6245ffa76b1ec13729624cb0cee8156ce624e87
      https://github.com/dyninst/dyninst/commit/e6245ffa76b1ec13729624cb0cee8156ce624e87
  Author: John Mellor-Crummey <jmellorcrummey@xxxxxxxxxxx>
  Date:   2018-01-11 (Thu, 11 Jan 2018)

  Changed paths:
    M parseAPI/src/Parser.C

  Log Message:
  -----------
  adjust switches to control cilk vs. openmp support


  Commit: 3006ed21ffbcb400d2cf19135cdf0088520865e8
      https://github.com/dyninst/dyninst/commit/3006ed21ffbcb400d2cf19135cdf0088520865e8
  Author: John Mellor-Crummey <johnmc@xxxxxxxx>
  Date:   2018-01-12 (Fri, 12 Jan 2018)

  Changed paths:
    M common/h/IBSTree-fast.h

  Log Message:
  -----------
  fix IBSTree-fast: add missing decl and missing unlock on one path


  Commit: 66efcc518cb676d449be6c3b17baa7f0462f6235
      https://github.com/dyninst/dyninst/commit/66efcc518cb676d449be6c3b17baa7f0462f6235
  Author: John Mellor-Crummey <johnmc@xxxxxxxx>
  Date:   2018-01-12 (Fri, 12 Jan 2018)

  Changed paths:
    M parseAPI/src/SymtabCodeSource.C

  Log Message:
  -----------
  remove unnecessary lock guard in SymtabCodeSource::lookup_region


  Commit: 6a9dac78546f6a22cf7fdbd7cd4189b3eb0e4126
      https://github.com/dyninst/dyninst/commit/6a9dac78546f6a22cf7fdbd7cd4189b3eb0e4126
  Author: John Mellor-Crummey <johnmc@xxxxxxxx>
  Date:   2018-01-14 (Sun, 14 Jan 2018)

  Changed paths:
    M parseAPI/src/SymtabCodeSource.C

  Log Message:
  -----------
  first attempt to add parallelism to symtab code source.


  Commit: e22b3c5d2be51472d1474ca62708aa13a980c4ab
      https://github.com/dyninst/dyninst/commit/e22b3c5d2be51472d1474ca62708aa13a980c4ab
  Author: John Mellor-Crummey <johnmc@xxxxxxxx>
  Date:   2018-01-15 (Mon, 15 Jan 2018)

  Changed paths:
    M common/src/linuxKludges.C

  Log Message:
  -----------
  remove unnecessary mutex guard around C++ demangler


  Commit: 85e16bbd05fecb2b1b11b68835357f65150f738d
      https://github.com/dyninst/dyninst/commit/85e16bbd05fecb2b1b11b68835357f65150f738d
  Author: John Mellor-Crummey <johnmc@xxxxxxxx>
  Date:   2018-01-15 (Mon, 15 Jan 2018)

  Changed paths:
    M parseAPI/h/CodeSource.h
    M parseAPI/src/SymtabCodeSource.C
    M symtabAPI/h/Symtab.h
    M symtabAPI/src/Symtab-edit.C
    M symtabAPI/src/Symtab-lookup.C
    M symtabAPI/src/Symtab.C

  Log Message:
  -----------
  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.


  Commit: de0889c727885887d12799d9fa692d91bf82c64f
      https://github.com/dyninst/dyninst/commit/de0889c727885887d12799d9fa692d91bf82c64f
  Author: Bill Williams <bill@xxxxxxxxxxx>
  Date:   2018-01-17 (Wed, 17 Jan 2018)

  Changed paths:
    M elf/src/Elf_X.C
    M symtabAPI/src/Object-elf.C

  Log Message:
  -----------
  Fix places where we fail to check for empty section headers/no shstrtab section.


  Commit: eaa312c96d59f6e797fe38be0c5b984f3318e40b
      https://github.com/dyninst/dyninst/commit/eaa312c96d59f6e797fe38be0c5b984f3318e40b
  Author: John Mellor-Crummey <johnmc@xxxxxxxx>
  Date:   2018-01-24 (Wed, 24 Jan 2018)

  Changed paths:
    M parseAPI/h/CodeSource.h

  Log Message:
  -----------
  refine CodeRegion:;contains so that offset() is not called redundantly


  Commit: 77af45e37d2a0a8064f65ab029567ff53f34118e
      https://github.com/dyninst/dyninst/commit/77af45e37d2a0a8064f65ab029567ff53f34118e
  Author: John Mellor-Crummey <johnmc@xxxxxxxx>
  Date:   2018-01-24 (Wed, 24 Jan 2018)

  Changed paths:
    M parseAPI/h/LockFreeQueue.h

  Log Message:
  -----------
  add debugging support to LockFreeQueue.h


  Commit: 53a61df3abf40b319ca52b95e6658b78cdcab08f
      https://github.com/dyninst/dyninst/commit/53a61df3abf40b319ca52b95e6658b78cdcab08f
  Author: John Mellor-Crummey <johnmc@xxxxxxxx>
  Date:   2018-01-24 (Wed, 24 Jan 2018)

  Changed paths:
    M parseAPI/src/Parser.C
    M parseAPI/src/Parser.h
    M parseAPI/src/ParserDetails.C

  Log Message:
  -----------
  add draft parallelization of parse frames creation


  Commit: 5d066e78c6300ec18c6355494b41804d4b0293eb
      https://github.com/dyninst/dyninst/commit/5d066e78c6300ec18c6355494b41804d4b0293eb
  Author: Bill Williams <bill@xxxxxxxxxxx>
  Date:   2018-01-24 (Wed, 24 Jan 2018)

  Changed paths:
    M symtabAPI/src/dwarfWalker.C
    M symtabAPI/src/dwarfWalker.h

  Log Message:
  -----------
  Parallelize iteration over module DIEs.


  Commit: 173c9a1f64e2aa96290edca840c8a305e82d7059
      https://github.com/dyninst/dyninst/commit/173c9a1f64e2aa96290edca840c8a305e82d7059
  Author: Bill Williams <bill@xxxxxxxxxxx>
  Date:   2018-01-24 (Wed, 24 Jan 2018)

  Changed paths:
    M cmake/options.cmake
    M cmake/packages.cmake
    M cmake/shared.cmake

  Log Message:
  -----------
  Converted more hidden options to proper options.


  Commit: 05aeee229ec9f1ef1d65863a09ee2c592bf2d9d3
      https://github.com/dyninst/dyninst/commit/05aeee229ec9f1ef1d65863a09ee2c592bf2d9d3
  Author: John Mellor-Crummey <jmellorcrummey@xxxxxxxxxxx>
  Date:   2018-01-24 (Wed, 24 Jan 2018)

  Changed paths:
    M parseAPI/h/CodeSource.h

  Log Message:
  -----------
  correct the include path for tbb hash map


  Commit: d55651bce00fd9ab6b46e44d123546dac15080d2
      https://github.com/dyninst/dyninst/commit/d55651bce00fd9ab6b46e44d123546dac15080d2
  Author: John Mellor-Crummey <jmellorcrummey@xxxxxxxxxxx>
  Date:   2018-01-24 (Wed, 24 Jan 2018)

  Changed paths:
    M parseAPI/src/SymtabCodeSource.C

  Log Message:
  -----------
  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.


  Commit: 033872a77aec11af6811bdb225ed584f97236ebc
      https://github.com/dyninst/dyninst/commit/033872a77aec11af6811bdb225ed584f97236ebc
  Author: John Mellor-Crummey <jmellorcrummey@xxxxxxxxxxx>
  Date:   2018-01-24 (Wed, 24 Jan 2018)

  Changed paths:
    M parseAPI/src/Parser.C

  Log Message:
  -----------
  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.


  Commit: 5c53059bf61ff75f611f9f7cad06b06b57650a9d
      https://github.com/dyninst/dyninst/commit/5c53059bf61ff75f611f9f7cad06b06b57650a9d
  Author: John Mellor-Crummey <jmellorcrummey@xxxxxxxxxxx>
  Date:   2018-01-24 (Wed, 24 Jan 2018)

  Changed paths:
    M symtabAPI/src/dwarfWalker.C
    M symtabAPI/src/dwarfWalker.h

  Log Message:
  -----------
  bill's changes to parallelize symtab.


  Commit: f4e87efbafe6b44bc4105be91e47040e315cb71c
      https://github.com/dyninst/dyninst/commit/f4e87efbafe6b44bc4105be91e47040e315cb71c
  Author: John Mellor-Crummey <jmellorcrummey@xxxxxxxxxxx>
  Date:   2018-01-24 (Wed, 24 Jan 2018)

  Changed paths:
    M symtabAPI/src/dwarfWalker.C
    M symtabAPI/src/dwarfWalker.h

  Log Message:
  -----------
  bill's changes to parallelize symtab.


  Commit: 0edbc2672d0679e75cb9df7f743925be23515bfc
      https://github.com/dyninst/dyninst/commit/0edbc2672d0679e75cb9df7f743925be23515bfc
  Author: John Mellor-Crummey <jmellorcrummey@xxxxxxxxxxx>
  Date:   2018-01-24 (Wed, 24 Jan 2018)

  Log Message:
  -----------
  Merge branch 'new-parallel-parsing' of https://github.com/jmellorcrummey/dyninst into new-parallel-parsing

Conflicts:
	symtabAPI/src/dwarfWalker.C


  Commit: e5e1a39dee3be19b8459685adaa0a015b4976920
      https://github.com/dyninst/dyninst/commit/e5e1a39dee3be19b8459685adaa0a015b4976920
  Author: John Mellor-Crummey <johnmc@xxxxxxxx>
  Date:   2018-02-04 (Sun, 04 Feb 2018)

  Changed paths:
    M parseAPI/src/Parser.C
    M parseAPI/src/Parser.h

  Log Message:
  -----------
  simplify openmp parallelization in Parser.C


  Commit: 988d0482f79325f9bdb6c1f948f43adc1a6a72df
      https://github.com/dyninst/dyninst/commit/988d0482f79325f9bdb6c1f948f43adc1a6a72df
  Author: John Mellor-Crummey <johnmc@xxxxxxxx>
  Date:   2018-02-08 (Thu, 08 Feb 2018)

  Changed paths:
    M dataflowAPI/rose/semantics/Registers.C

  Log Message:
  -----------
  adjust lazy initialization of rose register semantic to be thread safe using call_once


  Commit: 6f8f55d7b7ff94192382fb0872e2a37fa5419684
      https://github.com/dyninst/dyninst/commit/6f8f55d7b7ff94192382fb0872e2a37fa5419684
  Author: John Mellor-Crummey <johnmc@xxxxxxxx>
  Date:   2018-02-08 (Thu, 08 Feb 2018)

  Changed paths:
    M common/src/arch-x86.C

  Log Message:
  -----------
  avoid initializing c++ object in an inner scope, which requires synchronization


  Commit: 8ec9fd7251947a844334ae709e784066110053ca
      https://github.com/dyninst/dyninst/commit/8ec9fd7251947a844334ae709e784066110053ca
  Author: John Mellor-Crummey <johnmc@xxxxxxxx>
  Date:   2018-02-08 (Thu, 08 Feb 2018)

  Changed paths:
    M symtabAPI/src/dwarfWalker.C

  Log Message:
  -----------
  add guard around cilk include file


  Commit: f075aac4ddd10bec5b676a1196d454a7e9964def
      https://github.com/dyninst/dyninst/commit/f075aac4ddd10bec5b676a1196d454a7e9964def
  Author: Bill Williams <bill@xxxxxxxxxxx>
  Date:   2018-02-09 (Fri, 09 Feb 2018)

  Changed paths:
    M CMakeLists.txt
    M common/CMakeLists.txt
    M instructionAPI/src/InstructionDecoder-power.C
    M instructionAPI/src/Operation.C
    M instructionAPI/src/power_opcode_tables.C

  Log Message:
  -----------
  Cleanup: remove dead code, use call_once for singleton-style init


  Commit: b12f0cb69e2d5b05978ef539c83cd3b6aed1a740
      https://github.com/dyninst/dyninst/commit/b12f0cb69e2d5b05978ef539c83cd3b6aed1a740
  Author: Bill Williams <bill@xxxxxxxxxxx>
  Date:   2018-02-20 (Tue, 20 Feb 2018)

  Changed paths:
    M .gitmodules
    R cmake/Modules/FindCilk.cmake
    A cmake/endian.cmake
    M cmake/shared.cmake
    M common/CMakeLists.txt
    M common/h/IBSTree-fast.h
    M common/h/IBSTree.h
    A common/h/mcs-lock.h
    A common/h/pfq-rwlock.h
    A common/h/race-detector-annotations.h
    M common/src/arch-x86.C
    M common/src/linuxKludges.C
    A common/src/mcs-lock.C
    A common/src/pfq-rwlock.C
    A common/src/race-detector-annotations.C
    M common/src/singleton_object_pool.h
    M dataflowAPI/rose/semantics/Registers.C
    M dataflowAPI/src/debug_dataflow.C
    M dataflowAPI/src/debug_dataflow.h
    M dataflowAPI/src/liveness.C
    M dataflowAPI/src/slicing.C
    M dataflowAPI/src/stackanalysis.C
    M instructionAPI/src/InstructionAST.C
    M parseAPI/h/CFG.h
    M parseAPI/h/CFGFactory.h
    M parseAPI/h/CodeSource.h
    A parseAPI/h/LockFreeQueue.h
    M parseAPI/src/BoundFactCalculator.C
    M parseAPI/src/CFGFactory.C
    M parseAPI/src/IndirectASTVisitor.C
    M parseAPI/src/IndirectASTVisitor.h
    M parseAPI/src/JumpTableFormatPred.C
    M parseAPI/src/JumpTableIndexPred.C
    M parseAPI/src/ParseData.C
    M parseAPI/src/ParseData.h
    M parseAPI/src/Parser.C
    M parseAPI/src/Parser.h
    M parseAPI/src/ParserDetails.C
    M parseAPI/src/SymbolicExpression.C
    M parseAPI/src/SymbolicExpression.h
    M parseAPI/src/SymtabCodeSource.C
    M symtabAPI/h/Symtab.h
    M symtabAPI/src/Module.C
    M symtabAPI/src/Symtab-edit.C
    M symtabAPI/src/Symtab-lookup.C
    M symtabAPI/src/Symtab.C
    M symtabAPI/src/Type-mem.h
    M symtabAPI/src/Type.C
    M symtabAPI/src/dwarfWalker.C
    M symtabAPI/src/emitElf.C
    M symtabAPI/src/parseDwarf.C
    A testsuite

  Log Message:
  -----------
  Merge John's changes and update test suite.


  Commit: f5d27cde21e22a60c4c89d7020892c181da05983
      https://github.com/dyninst/dyninst/commit/f5d27cde21e22a60c4c89d7020892c181da05983
  Author: Bill Williams <bill@xxxxxxxxxxx>
  Date:   2018-02-21 (Wed, 21 Feb 2018)

  Changed paths:
    M CMakeLists.txt
    M common/src/arch-x86.C
    M elf/src/Elf_X.C
    M parseAPI/src/ParseData.h
    M parseAPI/src/Parser.C
    M parseAPI/src/Parser.h
    M symtabAPI/src/Object-elf.C

  Log Message:
  -----------
  Checkpoint for ARM testing


Compare: https://github.com/dyninst/dyninst/compare/cf1bc0d5c14c...f5d27cde21e2
[← Prev in Thread] Current Thread [Next in Thread→]
  • [DynInst_API:] [dyninst/dyninst] 87cf1e: parsing binaries with OpenMP divide-and-conquer, Bill Williams <=