Branch: refs/heads/new-parallel-parsing
  Home:   https://github.com/dyninst/dyninst
  Commit: 67fce2e5d95c1e999e94e82765a334eaab6ef4a2
      
https://github.com/dyninst/dyninst/commit/67fce2e5d95c1e999e94e82765a334eaab6ef4a2
  Author: Xiaozhu Meng <xm...@cs.wisc.edu>
  Date:   2018-06-11 (Mon, 11 Jun 2018)

  Changed paths:
    M parseAPI/src/CFGModifier.C
    M parseAPI/src/CodeObject.C
    M parseAPI/src/ParseData.C
    M parseAPI/src/ParseData.h
    M parseAPI/src/Parser.C
    M parseAPI/src/ParserDetails.C
    M parseAPI/src/SymtabCodeSource.C

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


  Commit: 902261cef12a7c21b0b1936b7bf824384e9442e3
      
https://github.com/dyninst/dyninst/commit/902261cef12a7c21b0b1936b7bf824384e9442e3
  Author: Xiaozhu Meng <xm...@cs.wisc.edu>
  Date:   2018-06-11 (Mon, 11 Jun 2018)

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

  Log Message:
  -----------
  We should not need finalize_block as the block should have been splited
during parsing.

Also delete some unnecessary code


  Commit: 49a4f51e6ab03d2473392074f3f60e51e06cde0f
      
https://github.com/dyninst/dyninst/commit/49a4f51e6ab03d2473392074f3f60e51e06cde0f
  Author: Xiaozhu Meng <xm...@cs.wisc.edu>
  Date:   2018-06-11 (Mon, 11 Jun 2018)

  Changed paths:
    M parseAPI/src/Parser.C

  Log Message:
  -----------
  When updating block ends, also need to update block range lookups


  Commit: eb0953387dde0c0514d4b3b0d0a5e2181a000836
      
https://github.com/dyninst/dyninst/commit/eb0953387dde0c0514d4b3b0d0a5e2181a000836
  Author: Xiaozhu Meng <xm...@cs.wisc.edu>
  Date:   2018-06-11 (Mon, 11 Jun 2018)

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

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


Compare: https://github.com/dyninst/dyninst/compare/d62e3491ac54...eb0953387dde
      **NOTE:** This service been marked for deprecation: 
https://developer.github.com/changes/2018-04-25-github-services-deprecation/

      Functionality will be removed from GitHub.com on January 31st, 2019.
_______________________________________________
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api

Reply via email to