[DynInst_API:] [dyninst/dyninst] bab542: Start to split jump table analysis to two differen...


Date: Thu, 29 Jun 2017 15:04:13 -0700
From: Bill Williams <bill@xxxxxxxxxxx>
Subject: [DynInst_API:] [dyninst/dyninst] bab542: Start to split jump table analysis to two differen...
  Branch: refs/heads/new-parallel-parsing
  Home:   https://github.com/dyninst/dyninst
  Commit: bab542b4d47e8b1d1c5b374065bda24309ba58d0
      https://github.com/dyninst/dyninst/commit/bab542b4d47e8b1d1c5b374065bda24309ba58d0
  Author: Xiaozhu Meng <xmeng@xxxxxxxxxxx>
  Date:   2017-05-09 (Tue, 09 May 2017)

  Changed paths:
    M common/h/Graph.h
    M common/src/Graph.C
    M dataflowAPI/h/slicing.h
    M dataflowAPI/src/slicing.C
    M parseAPI/CMakeLists.txt
    M parseAPI/src/IndirectASTVisitor.C
    M parseAPI/src/IndirectASTVisitor.h
    M parseAPI/src/IndirectAnalyzer.C
    A parseAPI/src/JumpTableFormatPred.C
    A parseAPI/src/JumpTableFormatPred.h
    M parseAPI/src/JumpTablePred.C
    A parseAPI/src/SymbolicExpression.C
    A parseAPI/src/SymbolicExpression.h

  Log Message:
  -----------
  Start to split jump table analysis to two different slices.
1. Jump table format slice. This commit contains its initial implementation
2. Jump table index slice. To be done


  Commit: 556bc2b3a01bcd4f8400def6444a3451e3277589
      https://github.com/dyninst/dyninst/commit/556bc2b3a01bcd4f8400def6444a3451e3277589
  Author: Bill Williams <bill@xxxxxxxxxxx>
  Date:   2017-05-10 (Wed, 10 May 2017)

  Changed paths:
    M CMakeLists.txt
    A cmake/Modules/FindCilk.cmake
    M cmake/Modules/FindLibDwarf.cmake
    M cmake/packages.cmake
    M cmake/shared.cmake
    M common/CMakeLists.txt
    M common/h/IBSTree-fast.h
    M common/h/IBSTree.h
    M common/h/util.h
    M common/src/arch-x86.C
    M common/src/arch-x86.h
    M common/src/dthread.C
    M common/src/dthread.h
    M common/src/singleton_object_pool.h
    M dataflowAPI/src/AbslocInterface.C
    M dataflowAPI/src/slicing.C
    M dyninstAPI/h/BPatch_snippet.h
    M dyninstAPI/src/BPatch_memoryAccessAdapter.C
    M dyninstAPI/src/BPatch_snippet.C
    M dyninstAPI/src/Relocation/Widgets/CFWidget-x86.C
    M dyninstAPI/src/Relocation/Widgets/CFWidget.C
    M dyninstAPI/src/Relocation/Widgets/RelDataWidget.C
    M dyninstAPI/src/Relocation/Widgets/StackModWidget.C
    M dyninstAPI/src/ast.C
    M dyninstAPI/src/ast.h
    M dyninstAPI/src/codegen-x86.C
    M dyninstAPI/src/image.C
    M instructionAPI/CMakeLists.txt
    M instructionAPI/src/InstructionDecoder-x86.C
    M instructionAPI/src/InstructionDecoder-x86.h
    M instructionAPI/src/InstructionDecoderImpl.C
    M instructionAPI/src/InstructionDecoderImpl.h
    M parseAPI/CMakeLists.txt
    M parseAPI/h/CFG.h
    M parseAPI/h/CFGFactory.h
    M parseAPI/h/InstructionAdapter.h
    M parseAPI/src/Block.C
    M parseAPI/src/CFGFactory.C
    M parseAPI/src/Function.C
    M parseAPI/src/IA_IAPI.h
    M parseAPI/src/IA_x86.C
    M parseAPI/src/IndirectAnalyzer.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.h
    M patchAPI/CMakeLists.txt
    M stackwalk/CMakeLists.txt
    M symtabAPI/src/LineInformation.C

  Log Message:
  -----------
  WIP towards parallel parsing


  Commit: 39683879626ae6b090243af1ff730927b7b2cf4b
      https://github.com/dyninst/dyninst/commit/39683879626ae6b090243af1ff730927b7b2cf4b
  Author: Xiaozhu Meng <xmeng@xxxxxxxxxxx>
  Date:   2017-05-11 (Thu, 11 May 2017)

  Changed paths:
    M dataflowAPI/h/slicing.h
    M parseAPI/CMakeLists.txt
    M parseAPI/src/BoundFactCalculator.C
    M parseAPI/src/BoundFactCalculator.h
    M parseAPI/src/BoundFactData.C
    M parseAPI/src/BoundFactData.h
    M parseAPI/src/IndirectASTVisitor.C
    M parseAPI/src/IndirectASTVisitor.h
    M parseAPI/src/IndirectAnalyzer.C
    M parseAPI/src/IndirectAnalyzer.h
    M parseAPI/src/JumpTableFormatPred.C
    M parseAPI/src/JumpTableFormatPred.h
    A parseAPI/src/JumpTableIndexPred.C
    A parseAPI/src/JumpTableIndexPred.h
    R parseAPI/src/JumpTablePred.C
    R parseAPI/src/JumpTablePred.h

  Log Message:
  -----------
  Initial implementation of jump table index slice. Basically reusing lots of code of from class JumpTablePred.
As we only track value bound for the index variable, we only need struct StridedInterval and there is no need for struct BoundValue.


  Commit: 3310af625c5f7432980e39a2be2ae6524d5517a0
      https://github.com/dyninst/dyninst/commit/3310af625c5f7432980e39a2be2ae6524d5517a0
  Author: Xiaozhu Meng <xmeng@xxxxxxxxxxx>
  Date:   2017-05-14 (Sun, 14 May 2017)

  Changed paths:
    M dataflowAPI/src/slicing.C
    M parseAPI/src/IndirectASTVisitor.C
    M parseAPI/src/IndirectASTVisitor.h
    M parseAPI/src/IndirectAnalyzer.C
    M parseAPI/src/IndirectAnalyzer.h
    M parseAPI/src/JumpTableFormatPred.C
    M parseAPI/src/JumpTableFormatPred.h

  Log Message:
  -----------
  1. Refactor code of reading contents from jump tables and determining jump target by visiting the jump target AST.
2. Currently when backward slicing, a absloc that is written by call defined by abi will be killed, however, caller saved registers can/should survive


  Commit: aeaf6135d25a08a62f0daa526281b8c63e057966
      https://github.com/dyninst/dyninst/commit/aeaf6135d25a08a62f0daa526281b8c63e057966
  Author: Xiaozhu Meng <xmeng@xxxxxxxxxxx>
  Date:   2017-05-15 (Mon, 15 May 2017)

  Changed paths:
    M parseAPI/src/IndirectAnalyzer.C

  Log Message:
  -----------
  Perform table scan when the jump table index bound is unknown


  Commit: 8442f1ace5c1f3184d3afb3feecd6989f9e97129
      https://github.com/dyninst/dyninst/commit/8442f1ace5c1f3184d3afb3feecd6989f9e97129
  Author: Xiaozhu Meng <xmeng@xxxxxxxxxxx>
  Date:   2017-05-17 (Wed, 17 May 2017)

  Changed paths:
    M parseAPI/src/IndirectASTVisitor.C
    M parseAPI/src/IndirectAnalyzer.C
    M parseAPI/src/JumpTableFormatPred.C
    M parseAPI/src/JumpTableFormatPred.h

  Log Message:
  -----------
  Fix indirect jumps in variable argument functions, where there is no memory read


  Commit: a38bacc5a028edcf0133a85b61447314a3d50ee1
      https://github.com/dyninst/dyninst/commit/a38bacc5a028edcf0133a85b61447314a3d50ee1
  Author: Bill Williams <bill@xxxxxxxxxxx>
  Date:   2017-05-17 (Wed, 17 May 2017)

  Changed paths:
    R LGPL
    A LICENSE.md
    M cmake/packages.cmake
    M common/h/Graph.h
    M common/src/Graph.C
    A common/src/LockTraits.h
    M dataflowAPI/h/ABI.h
    M dataflowAPI/h/slicing.h
    M dataflowAPI/h/stackanalysis.h
    M dataflowAPI/src/ABI.C
    M dataflowAPI/src/slicing.C
    M dataflowAPI/src/stackanalysis.C
    M dyninstAPI/src/BPatch_object.C
    M dyninstAPI/src/Relocation/CFG/RelocBlock.C
    M dyninstAPI/src/Relocation/CFG/RelocGraph.C
    M dyninstAPI/src/Relocation/CodeBuffer.C
    M dyninstAPI/src/Relocation/Transformers/Movement-adhoc.C
    M dyninstAPI/src/Relocation/Transformers/Movement-adhoc.h
    M dyninstAPI/src/StackMod/StackAccess.C
    M dyninstAPI/src/StackMod/StackAccess.h
    M dyninstAPI/src/StackMod/StackModChecker.C
    M dyninstAPI/src/codegen-x86.C
    M dyninstAPI/src/function.C
    M dyninstAPI/src/function.h
    M parseAPI/CMakeLists.txt
    M parseAPI/h/CFG.h
    M parseAPI/src/BoundFactCalculator.C
    M parseAPI/src/BoundFactCalculator.h
    M parseAPI/src/BoundFactData.C
    M parseAPI/src/BoundFactData.h
    M parseAPI/src/Function.C
    M parseAPI/src/IndirectASTVisitor.C
    M parseAPI/src/IndirectASTVisitor.h
    M parseAPI/src/IndirectAnalyzer.C
    M parseAPI/src/IndirectAnalyzer.h
    A parseAPI/src/JumpTableFormatPred.C
    A parseAPI/src/JumpTableFormatPred.h
    A parseAPI/src/JumpTableIndexPred.C
    A parseAPI/src/JumpTableIndexPred.h
    R parseAPI/src/JumpTablePred.C
    R parseAPI/src/JumpTablePred.h
    M parseAPI/src/Parser.C
    M parseAPI/src/ParserDetails.h
    A parseAPI/src/SymbolicExpression.C
    A parseAPI/src/SymbolicExpression.h

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

# Conflicts:
#	dyninstAPI/src/Relocation/CFG/RelocBlock.C
#	dyninstAPI/src/Relocation/Transformers/Movement-analysis.C


  Commit: cec8fc87b895cf10ae2a2c343bc9e1ec318c1d9c
      https://github.com/dyninst/dyninst/commit/cec8fc87b895cf10ae2a2c343bc9e1ec318c1d9c
  Author: Bill Williams <bill@xxxxxxxxxxx>
  Date:   2017-05-17 (Wed, 17 May 2017)

  Changed paths:
    M parseAPI/src/IndirectASTVisitor.C
    M parseAPI/src/IndirectAnalyzer.C
    M parseAPI/src/JumpTableFormatPred.C
    M parseAPI/src/JumpTableFormatPred.h

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


Compare: https://github.com/dyninst/dyninst/compare/bab542b4d47e^...cec8fc87b895
[← Prev in Thread] Current Thread [Next in Thread→]
  • [DynInst_API:] [dyninst/dyninst] bab542: Start to split jump table analysis to two differen..., Bill Williams <=