Re: [DynInst_API:] [dyninst/dyninst] 738a1c: Make interval trees containers


Date: Wed, 07 Sep 2016 22:09:25 +0000
From: Bill Williams <bill@xxxxxxxxxxx>
Subject: Re: [DynInst_API:] [dyninst/dyninst] 738a1c: Make interval trees containers
This PR is a bit more involved than the commit logs imply; there are some design/structural changes under the hood that will make Symtab more powerful and maintainable, but do need to get hammered out cleanly for all platforms. The overview is here: https://github.com/dyninst/dyninst/pull/135#issuecomment-245434780

Feedback on this one is particularly encouraged.

________________________________________
From: Dyninst-api <dyninst-api-bounces@xxxxxxxxxxx> on behalf of Bill Williams <bill@xxxxxxxxxxx>
Sent: Wednesday, September 7, 2016 4:49 PM
To: dyninst-api@xxxxxxxxxxx
Subject: [DynInst_API:] [dyninst/dyninst] 738a1c: Make interval trees   containers

  Branch: refs/heads/release9.2/fixes/line_info
  Home:   https://github.com/dyninst/dyninst
  Commit: 738a1cdddd458a2cd4ea2fee3b016b0836728ea4
      https://github.com/dyninst/dyninst/commit/738a1cdddd458a2cd4ea2fee3b016b0836728ea4
  Author: Bill Williams <bill@xxxxxxxxxxx>
  Date:   2016-09-07 (Wed, 07 Sep 2016)

  Changed paths:
    M common/h/IBSTree.h

  Log Message:
  -----------
  Make interval trees containers


  Commit: 4699c82c5471315d5d67b15372dd5f82f1d779ab
      https://github.com/dyninst/dyninst/commit/4699c82c5471315d5d67b15372dd5f82f1d779ab
  Author: Bill Williams <bill@xxxxxxxxxxx>
  Date:   2016-09-07 (Wed, 07 Sep 2016)

  Changed paths:
    M dyninstAPI/h/BPatch_addressSpace.h
    M dyninstAPI/h/BPatch_image.h
    M dyninstAPI/h/BPatch_module.h
    M dyninstAPI/h/BPatch_statement.h
    M dyninstAPI/src/BPatch_addressSpace.C
    M dyninstAPI/src/BPatch_image.C
    M dyninstAPI/src/BPatch_module.C
    M dyninstAPI/src/BPatch_statement.C
    M symtabAPI/h/LineInformation.h
    M symtabAPI/h/Module.h
    M symtabAPI/h/RangeLookup.h
    M symtabAPI/h/Symtab.h
    M symtabAPI/src/LineInformation.C
    M symtabAPI/src/Module.C
    M symtabAPI/src/Symtab.C

  Log Message:
  -----------
  Gut RangeLookup and replace with boost::multi_index_container as our line information implementation. Still has some obvious performance problems, but appears to work.


  Commit: 7530ec107b951558ed2e24dae6b2681d7dad9b51
      https://github.com/dyninst/dyninst/commit/7530ec107b951558ed2e24dae6b2681d7dad9b51
  Author: Bill Williams <bill@xxxxxxxxxxx>
  Date:   2016-09-07 (Wed, 07 Sep 2016)

  Changed paths:
    M symtabAPI/h/LineInformation.h
    M symtabAPI/h/Module.h
    M symtabAPI/h/RangeLookup.h
    M symtabAPI/src/LineInformation.C
    M symtabAPI/src/Module.C
    M symtabAPI/src/Object-elf.C
    M symtabAPI/src/Object-elf.h
    M symtabAPI/src/Object.h
    M symtabAPI/src/Symtab.C
    M symtabAPI/src/dwarfWalker.C

  Log Message:
  -----------
  Lots of refactoring and some optimizations. We're not saving space or time anymore but at least it's clean and we're only missing ~10k entries (down from ~100k) on nwchem.


  Commit: 6d11dfdf626cc6069fb4019cd438ec61a10b26ef
      https://github.com/dyninst/dyninst/commit/6d11dfdf626cc6069fb4019cd438ec61a10b26ef
  Author: Bill Williams <bill@xxxxxxxxxxx>
  Date:   2016-09-07 (Wed, 07 Sep 2016)

  Changed paths:
    M cmake/warnings.cmake
    M dyninstAPI/src/BPatch_module.C
    M symtabAPI/h/LineInformation.h
    M symtabAPI/h/Module.h
    M symtabAPI/h/RangeLookup.h
    A symtabAPI/h/StringTable.h
    M symtabAPI/h/Symtab.h
    M symtabAPI/src/LineInformation.C
    M symtabAPI/src/Module.C
    M symtabAPI/src/Object-elf.C
    M symtabAPI/src/Object-elf.h
    M symtabAPI/src/Object-nt.C
    M symtabAPI/src/Object-nt.h
    M symtabAPI/src/Object.C
    M symtabAPI/src/Object.h
    M symtabAPI/src/Symtab.C
    M symtabAPI/src/dwarfWalker.C
    M symtabAPI/src/dwarfWalker.h

  Log Message:
  -----------
  Line info fixes: nwchem is now running clean. There's a good bit of room for performance improvements (notably in ensuring that we don't have redundant module intervals).


  Commit: 47c8e27e51b884ecdc603cfeb92803cfd3eb5f31
      https://github.com/dyninst/dyninst/commit/47c8e27e51b884ecdc603cfeb92803cfd3eb5f31
  Author: Bill Williams <bill@xxxxxxxxxxx>
  Date:   2016-09-07 (Wed, 07 Sep 2016)

  Changed paths:
    M common/h/IBSTree-fast.h
    M parseAPI/h/CFG.h
    M parseAPI/h/CFGFactory.h
    M parseAPI/src/Block.C
    M symtabAPI/h/LineInformation.h
    M symtabAPI/h/Module.h
    M symtabAPI/h/RangeLookup.h
    M symtabAPI/src/LineInformation.C
    M symtabAPI/src/Module.C
    M symtabAPI/src/Object-elf.C
    M symtabAPI/src/dwarfWalker.C

  Log Message:
  -----------
  Assorted cleanup. Fixed infinite loop in IBSTree_fast::find.


  Commit: 714b5c5eb06e78b627e453f583393d3ff3be2bbd
      https://github.com/dyninst/dyninst/commit/714b5c5eb06e78b627e453f583393d3ff3be2bbd
  Author: Bill Williams <bill@xxxxxxxxxxx>
  Date:   2016-09-07 (Wed, 07 Sep 2016)

  Changed paths:
    M common/src/debug_common.h
    M symtabAPI/h/Function.h
    M symtabAPI/h/LineInformation.h
    M symtabAPI/h/Module.h
    M symtabAPI/h/StringTable.h
    M symtabAPI/src/Function.C
    M symtabAPI/src/LineInformation.C
    M symtabAPI/src/Module.C
    M symtabAPI/src/Object-elf.C
    M symtabAPI/src/dwarfWalker.C
    M symtabAPI/src/dwarfWalker.h

  Log Message:
  -----------
  Added interface for line info find-with-hint.
Fixed dwarfWalker bug where we doubled up on compensating for one-based indexing.
dwarfWalker now uses/fills a Module's stringtable directly.
StringTables now streamable for debugging.
Inlines use string table entries for filenames.


Compare: https://github.com/dyninst/dyninst/compare/58d4c19640e9...714b5c5eb06e
[← Prev in Thread] Current Thread [Next in Thread→]